From eff1103a34e37893a473b98c136f78329a1b1185 Mon Sep 17 00:00:00 2001 From: Xiong Date: Fri, 20 Oct 2023 15:41:21 -0400 Subject: [PATCH 01/15] bump: cosmos-sdk -> v0.47.5 ibc-go -> v7.3.0 tendermint -> cometbft v0.37.2 tm-db -> cometbft-db v0.8.0 compile error fixed --- .gitignore | 6 + api/stratos/evm/module/v1/module.pulsar.go | 716 ++++++++++++ api/stratos/pot/module/v1/module.pulsar.go | 716 ++++++++++++ .../register/module/v1/module.pulsar.go | 719 ++++++++++++ api/stratos/sds/module/v1/module.pulsar.go | 716 ++++++++++++ app/ante/ante.go | 9 +- app/ante/eth.go | 93 +- app/ante/fee.go | 131 +-- app/ante/handler_options.go | 40 +- app/ante/reject_msgs.go | 6 +- app/ante/validator_tx_fee.go | 67 ++ app/app.go | 1007 ++++++---------- app/app_config.go | 302 +++++ app/app_module_config.go | 218 ++++ app/encoding.go | 19 - app/export.go | 42 +- app/post_handler.go | 14 + app/test_helpers.go | 556 +-------- app/upgrades.go | 6 + app/utils.go | 18 - buf.work.yaml | 8 + client/config.go | 2 +- client/export.go | 13 +- client/import.go | 4 +- client/keys.go | 13 +- client/keys/add.go | 72 +- client/keys/utils.go | 70 +- cmd/stchaind/genaccounts.go | 6 +- cmd/stchaind/genmetanodes.go | 4 +- cmd/stchaind/loadtest.go | 537 --------- cmd/stchaind/main.go | 16 +- cmd/stchaind/root.go | 218 ++-- crypto/codec/amino.go | 10 +- crypto/codec/{codec.go => proto.go} | 1 + crypto/ethsecp256k1/ethsecp256k1.go | 10 +- crypto/ethsecp256k1/keys.pb.go | 6 +- encoding/config.go | 31 - encoding/encoding.go | 21 + encoding/params/amino.go | 15 + encoding/params/params.go | 25 + encoding/{codec/codec.go => params/proto.go} | 11 +- ethereum/eip712/eip712.go | 29 +- go.mod | 210 ++-- go.sum | 1019 ++++++++++++----- proto/buf.gen.gogo.yaml | 8 + proto/buf.gen.pulsar.yaml | 17 + proto/buf.gen.swagger.yaml | 5 + proto/buf.yaml | 12 +- .../stratos/crypto/v1/ethsecp256k1/keys.proto | 6 +- proto/stratos/evm/module/v1/module.proto | 21 + proto/stratos/evm/v1/evm.proto | 18 + proto/stratos/evm/v1/genesis.proto | 1 + proto/stratos/evm/v1/query.proto | 7 +- proto/stratos/evm/v1/tx.proto | 30 +- proto/stratos/pot/module/v1/module.proto | 21 + proto/stratos/pot/v1/genesis.proto | 4 + proto/stratos/pot/v1/pot.proto | 7 + proto/stratos/pot/v1/tx.proto | 5 +- proto/stratos/register/module/v1/module.proto | 21 + proto/stratos/register/v1/genesis.proto | 3 + proto/stratos/register/v1/query.proto | 1 + proto/stratos/register/v1/register.proto | 6 + proto/stratos/register/v1/tx.proto | 3 +- proto/stratos/sds/module/v1/module.proto | 21 + proto/stratos/sds/v1/genesis.proto | 1 + proto/stratos/sds/v1/query.proto | 5 + proto/stratos/sds/v1/sds.proto | 3 + proto/stratos/sds/v1/tx.proto | 1 + rpc/apis.go | 2 +- rpc/backend/backend.go | 26 +- rpc/backend/evm_backend.go | 34 +- rpc/backend/utils.go | 9 +- rpc/namespaces/ethereum/debug/api.go | 6 +- rpc/namespaces/ethereum/debug/utils.go | 2 +- rpc/namespaces/ethereum/eth/api.go | 32 +- rpc/namespaces/ethereum/eth/filters/api.go | 10 +- .../ethereum/eth/filters/filter_system.go | 10 +- .../ethereum/eth/filters/filters.go | 4 +- .../ethereum/eth/filters/subscription.go | 2 +- rpc/namespaces/ethereum/miner/api.go | 21 +- rpc/namespaces/ethereum/personal/api.go | 21 +- rpc/namespaces/ethereum/txpool/api.go | 2 +- rpc/server.go | 2 +- rpc/types/block.go | 2 +- rpc/types/query_client.go | 4 +- rpc/types/types.go | 1 + rpc/types/utils.go | 73 +- runtime/app.go | 233 ++++ runtime/builder.go | 50 + runtime/module.go | 138 +++ runtime/services.go | 22 + scripts/protoc-swagger-gen.sh | 20 + scripts/protocgen-pulsar.sh | 31 + scripts/protocgen.sh | 28 + scripts/readme.md | 17 + server/config/config.go | 41 +- server/flags/flags.go | 2 +- server/json_rpc.go | 2 +- server/start.go | 91 +- server/util.go | 191 ++- testutil/stratos/app_helpers.go | 31 + testutil/stratos/tx_helpers.go | 125 ++ third_party/proto/buf.yaml | 33 - .../proto/cosmos/auth/v1beta1/auth.proto | 50 - .../proto/cosmos/auth/v1beta1/genesis.proto | 17 - .../proto/cosmos/auth/v1beta1/query.proto | 68 -- .../proto/cosmos/authz/v1beta1/authz.proto | 26 - .../proto/cosmos/authz/v1beta1/event.proto | 24 - .../proto/cosmos/authz/v1beta1/genesis.proto | 23 - .../proto/cosmos/authz/v1beta1/query.proto | 34 - .../proto/cosmos/authz/v1beta1/tx.proto | 67 -- .../proto/cosmos/bank/v1beta1/authz.proto | 17 - .../proto/cosmos/bank/v1beta1/bank.proto | 92 -- .../proto/cosmos/bank/v1beta1/genesis.proto | 39 - .../proto/cosmos/bank/v1beta1/query.proto | 159 --- .../proto/cosmos/bank/v1beta1/tx.proto | 42 - .../proto/cosmos/base/abci/v1beta1/abci.proto | 137 --- .../proto/cosmos/base/kv/v1beta1/kv.proto | 17 - .../base/query/v1beta1/pagination.proto | 53 - .../base/reflection/v1beta1/reflection.proto | 44 - .../base/reflection/v2alpha1/reflection.proto | 217 ---- .../base/snapshots/v1beta1/snapshot.proto | 20 - .../base/store/v1beta1/commit_info.proto | 29 - .../cosmos/base/store/v1beta1/listening.proto | 14 - .../cosmos/base/store/v1beta1/snapshot.proto | 28 - .../base/tendermint/v1beta1/query.proto | 136 --- .../proto/cosmos/base/v1beta1/coin.proto | 40 - .../capability/v1beta1/capability.proto | 30 - .../cosmos/capability/v1beta1/genesis.proto | 26 - .../proto/cosmos/crisis/v1beta1/genesis.proto | 15 - .../proto/cosmos/crisis/v1beta1/tx.proto | 25 - .../proto/cosmos/crypto/ed25519/keys.proto | 23 - .../proto/cosmos/crypto/multisig/keys.proto | 18 - .../crypto/multisig/v1beta1/multisig.proto | 25 - .../proto/cosmos/crypto/secp256k1/keys.proto | 22 - .../proto/cosmos/crypto/secp256r1/keys.proto | 22 - .../distribution/v1beta1/distribution.proto | 157 --- .../cosmos/distribution/v1beta1/genesis.proto | 155 --- .../cosmos/distribution/v1beta1/query.proto | 218 ---- .../cosmos/distribution/v1beta1/tx.proto | 79 -- .../cosmos/evidence/v1beta1/evidence.proto | 21 - .../cosmos/evidence/v1beta1/genesis.proto | 12 - .../proto/cosmos/evidence/v1beta1/query.proto | 51 - .../proto/cosmos/evidence/v1beta1/tx.proto | 32 - .../cosmos/feegrant/v1beta1/feegrant.proto | 77 -- .../cosmos/feegrant/v1beta1/genesis.proto | 12 - .../proto/cosmos/feegrant/v1beta1/query.proto | 54 - .../proto/cosmos/feegrant/v1beta1/tx.proto | 47 - .../cosmos/genutil/v1beta1/genesis.proto | 16 - .../proto/cosmos/gov/v1beta1/genesis.proto | 26 - .../proto/cosmos/gov/v1beta1/gov.proto | 197 ---- .../proto/cosmos/gov/v1beta1/query.proto | 190 --- third_party/proto/cosmos/gov/v1beta1/tx.proto | 93 -- .../proto/cosmos/mint/v1beta1/genesis.proto | 16 - .../proto/cosmos/mint/v1beta1/mint.proto | 53 - .../proto/cosmos/mint/v1beta1/query.proto | 57 - .../proto/cosmos/params/v1beta1/params.proto | 27 - .../proto/cosmos/params/v1beta1/query.proto | 32 - .../cosmos/slashing/v1beta1/genesis.proto | 50 - .../proto/cosmos/slashing/v1beta1/query.proto | 63 - .../cosmos/slashing/v1beta1/slashing.proto | 58 - .../proto/cosmos/slashing/v1beta1/tx.proto | 26 - .../proto/cosmos/staking/v1beta1/authz.proto | 43 - .../cosmos/staking/v1beta1/genesis.proto | 53 - .../proto/cosmos/staking/v1beta1/query.proto | 348 ------ .../cosmos/staking/v1beta1/staking.proto | 337 ------ .../proto/cosmos/staking/v1beta1/tx.proto | 126 -- .../cosmos/tx/signing/v1beta1/signing.proto | 79 -- .../proto/cosmos/tx/v1beta1/service.proto | 132 --- third_party/proto/cosmos/tx/v1beta1/tx.proto | 183 --- .../proto/cosmos/upgrade/v1beta1/query.proto | 90 -- .../cosmos/upgrade/v1beta1/upgrade.proto | 76 -- .../proto/cosmos/vesting/v1beta1/tx.proto | 31 - .../cosmos/vesting/v1beta1/vesting.proto | 83 -- third_party/proto/cosmos_proto/cosmos.proto | 16 - third_party/proto/gogoproto/gogo.proto | 145 --- .../proto/google/api/annotations.proto | 31 - third_party/proto/google/api/http.proto | 325 ------ third_party/proto/google/api/httpbody.proto | 78 -- third_party/proto/google/protobuf/any.proto | 161 --- .../proto/google/protobuf/descriptor.proto | 895 --------------- third_party/proto/tendermint/abci/types.proto | 407 ------- .../proto/tendermint/crypto/keys.proto | 17 - .../proto/tendermint/crypto/proof.proto | 41 - .../proto/tendermint/libs/bits/types.proto | 9 - third_party/proto/tendermint/p2p/types.proto | 34 - .../proto/tendermint/types/block.proto | 15 - .../proto/tendermint/types/evidence.proto | 38 - .../proto/tendermint/types/params.proto | 80 -- .../proto/tendermint/types/types.proto | 157 --- .../proto/tendermint/types/validator.proto | 25 - .../proto/tendermint/version/types.proto | 24 - types/account.go | 2 +- types/account.pb.go | 12 +- types/address_test.go | 2 +- types/coin.go | 5 +- types/config.go | 7 +- types/errors.go | 10 +- types/gasmeter.go | 4 + types/hdpath.go | 2 +- types/validation.go | 10 +- types/wrappers.pb.go | 4 +- x/evm/{keeper => }/abci.go | 18 +- x/evm/client/rest/rest.go | 104 -- x/evm/context.go | 10 +- x/evm/genesis.go | 7 +- x/evm/handler.go | 3 +- x/evm/keeper/grpc_query.go | 9 +- x/evm/keeper/hooks.go | 8 +- x/evm/keeper/keeper.go | 54 +- x/evm/keeper/msg_server.go | 13 +- x/evm/keeper/params.go | 3 +- x/evm/keeper/state_transition.go | 64 +- x/evm/keeper/statedb.go | 18 +- x/evm/keeper/utils.go | 26 +- x/evm/module.go | 226 ++-- x/evm/pool/tx_noncer.go | 2 +- x/evm/pool/tx_pool.go | 9 +- x/evm/simulation/operations.go | 26 +- x/evm/simulation/params.go | 14 +- x/evm/statedb/state_object.go | 4 +- x/evm/statedb/statedb.go | 41 +- x/evm/tracers/js/goja.go | 2 +- x/evm/types/access_list_tx.go | 31 +- x/evm/types/chain_config.go | 81 +- x/evm/types/codec.go | 15 +- x/evm/types/dynamic_fee_tx.go | 39 +- x/evm/types/errors.go | 53 +- x/evm/types/evm.pb.go | 666 +++++++++-- x/evm/types/expected.go | 16 + x/evm/types/genesis.go | 9 +- x/evm/types/genesis.pb.go | 118 +- x/evm/types/interfaces.go | 10 +- x/evm/types/legacy_tx.go | 22 +- x/evm/types/msg.go | 34 +- x/evm/types/params.go | 9 +- x/evm/types/query.pb.go | 212 ++-- x/evm/types/query.pb.gw.go | 79 +- x/evm/types/storage.go | 8 +- x/evm/types/tx.pb.go | 421 ++++++- x/evm/types/tx.pb.gw.go | 9 +- x/evm/types/tx_args.go | 19 +- x/evm/types/utils.go | 32 +- x/pot/abci.go | 3 +- x/pot/app_benchmark_test.go | 46 +- x/pot/app_test.go | 95 +- x/pot/client/cli/query.go | 8 +- x/pot/client/cli/tx.go | 161 +-- x/pot/client/rest/query.go | 261 ----- x/pot/client/rest/rest.go | 20 - x/pot/client/rest/tx.go | 251 ---- x/pot/genesis.go | 5 +- x/pot/handler.go | 3 +- x/pot/keeper/distribute.go | 94 +- x/pot/keeper/formula.go | 40 +- x/pot/keeper/grpc_query.go | 15 +- x/pot/keeper/keeper.go | 86 +- x/pot/keeper/mature.go | 7 +- x/pot/keeper/msg_server.go | 47 +- x/pot/keeper/params.go | 3 +- x/pot/keeper/querier.go | 196 ---- x/pot/keeper/slashing.go | 13 +- x/pot/keeper/store.go | 31 +- x/pot/keeper/withdraw.go | 3 +- x/pot/module.go | 224 ++-- x/pot/types/codec.go | 10 +- x/pot/types/distribute.go | 2 +- x/pot/types/errors.go | 78 +- x/pot/types/expected.go | 16 + x/pot/types/expected_keepers.go | 23 +- x/pot/types/genesis.go | 13 +- x/pot/types/genesis.pb.go | 208 +++- x/pot/types/key.go | 7 +- x/pot/types/msg.go | 7 +- x/pot/types/params.go | 79 +- x/pot/types/pot.pb.go | 395 +++++-- x/pot/types/querier.go | 13 +- x/pot/types/query.pb.go | 6 +- x/pot/types/query.pb.gw.go | 44 +- x/pot/types/tx.pb.go | 493 ++++++-- x/pot/types/tx.pb.gw.go | 29 +- x/pot/types/types.go | 5 +- x/register/abci.go | 6 +- x/register/client/cli/query.go | 12 +- x/register/client/cli/tx.go | 183 ++- x/register/client/rest/query.go | 274 ----- x/register/client/rest/rest.go | 25 - x/register/client/rest/tx.go | 509 -------- x/register/exported/exported.go | 6 +- x/register/genesis.go | 21 +- x/register/handler.go | 5 +- x/register/keeper/grpc_query.go | 4 +- x/register/keeper/keeper.go | 111 +- x/register/keeper/meta_node.go | 41 +- x/register/keeper/msg_server.go | 91 +- x/register/keeper/node_state_change.go | 2 +- x/register/keeper/params.go | 4 - x/register/keeper/querier.go | 399 +------ x/register/keeper/resource_node.go | 55 +- x/register/keeper/slashing.go | 11 +- x/register/keeper/store.go | 49 +- x/register/keeper/utils.go | 35 - x/register/module.go | 207 ++-- x/register/types/codec.go | 10 +- x/register/types/errors.go | 124 +- x/register/types/expected.go | 16 + x/register/types/expected_keepers.go | 1 - x/register/types/genesis.go | 20 +- x/register/types/genesis.pb.go | 240 +++- x/register/types/keys.go | 4 +- x/register/types/meta_node.go | 9 +- x/register/types/msg.go | 13 +- x/register/types/params.go | 13 +- x/register/types/querier.go | 21 +- x/register/types/query.pb.go | 203 ++-- x/register/types/query.pb.gw.go | 44 +- x/register/types/register.pb.go | 403 +++++-- x/register/types/registration.go | 11 +- x/register/types/resource_node.go | 11 +- x/register/types/tx.pb.go | 786 +++++++++++-- x/register/types/tx.pb.gw.go | 59 +- x/register/types/unbonding_node.go | 8 +- x/sds/abci.go | 13 +- x/sds/client/cli/query.go | 8 +- x/sds/client/cli/tx.go | 34 +- x/sds/client/common/common.go | 31 - x/sds/client/rest/query.go | 171 --- x/sds/client/rest/rest.go | 32 - x/sds/client/rest/tx.go | 103 -- x/sds/handler.go | 3 +- x/sds/keeper/keeper.go | 65 +- x/sds/keeper/msg_server.go | 13 +- x/sds/keeper/querier.go | 97 -- x/sds/module.go | 198 +++- x/sds/oz_price_test.go | 366 +++--- x/sds/types/codec.go | 10 +- x/sds/types/errors.go | 32 +- x/sds/types/expected.go | 16 + x/sds/types/expected_keepers.go | 27 + x/sds/types/genesis.go | 4 +- x/sds/types/genesis.pb.go | 77 +- x/sds/types/key.go | 3 +- x/sds/types/msg.go | 19 +- x/sds/types/params.go | 9 +- x/sds/types/querier.go | 21 - x/sds/types/query.pb.go | 105 +- x/sds/types/query.pb.gw.go | 29 +- x/sds/types/sds.pb.go | 106 +- x/sds/types/tx.pb.go | 187 ++- x/sds/types/tx.pb.gw.go | 14 +- x/sds/types/types.go | 4 +- 351 files changed, 12641 insertions(+), 15638 deletions(-) create mode 100644 api/stratos/evm/module/v1/module.pulsar.go create mode 100644 api/stratos/pot/module/v1/module.pulsar.go create mode 100644 api/stratos/register/module/v1/module.pulsar.go create mode 100644 api/stratos/sds/module/v1/module.pulsar.go create mode 100644 app/ante/validator_tx_fee.go create mode 100644 app/app_config.go create mode 100644 app/app_module_config.go delete mode 100644 app/encoding.go create mode 100644 app/post_handler.go create mode 100644 app/upgrades.go delete mode 100644 app/utils.go create mode 100644 buf.work.yaml delete mode 100644 cmd/stchaind/loadtest.go rename crypto/codec/{codec.go => proto.go} (82%) delete mode 100644 encoding/config.go create mode 100644 encoding/encoding.go create mode 100644 encoding/params/amino.go create mode 100644 encoding/params/params.go rename encoding/{codec/codec.go => params/proto.go} (60%) create mode 100644 proto/buf.gen.gogo.yaml create mode 100644 proto/buf.gen.pulsar.yaml create mode 100644 proto/buf.gen.swagger.yaml create mode 100644 proto/stratos/evm/module/v1/module.proto create mode 100644 proto/stratos/pot/module/v1/module.proto create mode 100644 proto/stratos/register/module/v1/module.proto create mode 100644 proto/stratos/sds/module/v1/module.proto create mode 100644 runtime/app.go create mode 100644 runtime/builder.go create mode 100644 runtime/module.go create mode 100644 runtime/services.go create mode 100644 scripts/protoc-swagger-gen.sh create mode 100644 scripts/protocgen-pulsar.sh create mode 100644 scripts/protocgen.sh create mode 100644 scripts/readme.md create mode 100644 testutil/stratos/app_helpers.go create mode 100644 testutil/stratos/tx_helpers.go delete mode 100644 third_party/proto/buf.yaml delete mode 100644 third_party/proto/cosmos/auth/v1beta1/auth.proto delete mode 100644 third_party/proto/cosmos/auth/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/auth/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/authz/v1beta1/authz.proto delete mode 100644 third_party/proto/cosmos/authz/v1beta1/event.proto delete mode 100644 third_party/proto/cosmos/authz/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/authz/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/authz/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/bank/v1beta1/authz.proto delete mode 100644 third_party/proto/cosmos/bank/v1beta1/bank.proto delete mode 100644 third_party/proto/cosmos/bank/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/bank/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/bank/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/base/abci/v1beta1/abci.proto delete mode 100644 third_party/proto/cosmos/base/kv/v1beta1/kv.proto delete mode 100644 third_party/proto/cosmos/base/query/v1beta1/pagination.proto delete mode 100644 third_party/proto/cosmos/base/reflection/v1beta1/reflection.proto delete mode 100644 third_party/proto/cosmos/base/reflection/v2alpha1/reflection.proto delete mode 100644 third_party/proto/cosmos/base/snapshots/v1beta1/snapshot.proto delete mode 100644 third_party/proto/cosmos/base/store/v1beta1/commit_info.proto delete mode 100644 third_party/proto/cosmos/base/store/v1beta1/listening.proto delete mode 100644 third_party/proto/cosmos/base/store/v1beta1/snapshot.proto delete mode 100644 third_party/proto/cosmos/base/tendermint/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/base/v1beta1/coin.proto delete mode 100644 third_party/proto/cosmos/capability/v1beta1/capability.proto delete mode 100644 third_party/proto/cosmos/capability/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/crisis/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/crisis/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/crypto/ed25519/keys.proto delete mode 100644 third_party/proto/cosmos/crypto/multisig/keys.proto delete mode 100644 third_party/proto/cosmos/crypto/multisig/v1beta1/multisig.proto delete mode 100644 third_party/proto/cosmos/crypto/secp256k1/keys.proto delete mode 100644 third_party/proto/cosmos/crypto/secp256r1/keys.proto delete mode 100644 third_party/proto/cosmos/distribution/v1beta1/distribution.proto delete mode 100644 third_party/proto/cosmos/distribution/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/distribution/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/distribution/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/evidence/v1beta1/evidence.proto delete mode 100644 third_party/proto/cosmos/evidence/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/evidence/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/evidence/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/feegrant/v1beta1/feegrant.proto delete mode 100644 third_party/proto/cosmos/feegrant/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/feegrant/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/feegrant/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/genutil/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/gov/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/gov/v1beta1/gov.proto delete mode 100644 third_party/proto/cosmos/gov/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/gov/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/mint/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/mint/v1beta1/mint.proto delete mode 100644 third_party/proto/cosmos/mint/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/params/v1beta1/params.proto delete mode 100644 third_party/proto/cosmos/params/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/slashing/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/slashing/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/slashing/v1beta1/slashing.proto delete mode 100644 third_party/proto/cosmos/slashing/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/staking/v1beta1/authz.proto delete mode 100644 third_party/proto/cosmos/staking/v1beta1/genesis.proto delete mode 100644 third_party/proto/cosmos/staking/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/staking/v1beta1/staking.proto delete mode 100644 third_party/proto/cosmos/staking/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/tx/signing/v1beta1/signing.proto delete mode 100644 third_party/proto/cosmos/tx/v1beta1/service.proto delete mode 100644 third_party/proto/cosmos/tx/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/upgrade/v1beta1/query.proto delete mode 100644 third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto delete mode 100644 third_party/proto/cosmos/vesting/v1beta1/tx.proto delete mode 100644 third_party/proto/cosmos/vesting/v1beta1/vesting.proto delete mode 100644 third_party/proto/cosmos_proto/cosmos.proto delete mode 100644 third_party/proto/gogoproto/gogo.proto delete mode 100644 third_party/proto/google/api/annotations.proto delete mode 100644 third_party/proto/google/api/http.proto delete mode 100644 third_party/proto/google/api/httpbody.proto delete mode 100644 third_party/proto/google/protobuf/any.proto delete mode 100644 third_party/proto/google/protobuf/descriptor.proto delete mode 100644 third_party/proto/tendermint/abci/types.proto delete mode 100644 third_party/proto/tendermint/crypto/keys.proto delete mode 100644 third_party/proto/tendermint/crypto/proof.proto delete mode 100644 third_party/proto/tendermint/libs/bits/types.proto delete mode 100644 third_party/proto/tendermint/p2p/types.proto delete mode 100644 third_party/proto/tendermint/types/block.proto delete mode 100644 third_party/proto/tendermint/types/evidence.proto delete mode 100644 third_party/proto/tendermint/types/params.proto delete mode 100644 third_party/proto/tendermint/types/types.proto delete mode 100644 third_party/proto/tendermint/types/validator.proto delete mode 100644 third_party/proto/tendermint/version/types.proto rename x/evm/{keeper => }/abci.go (74%) delete mode 100644 x/evm/client/rest/rest.go create mode 100644 x/evm/types/expected.go delete mode 100644 x/pot/client/rest/query.go delete mode 100644 x/pot/client/rest/rest.go delete mode 100644 x/pot/client/rest/tx.go delete mode 100644 x/pot/keeper/querier.go create mode 100644 x/pot/types/expected.go delete mode 100644 x/register/client/rest/query.go delete mode 100644 x/register/client/rest/rest.go delete mode 100644 x/register/client/rest/tx.go create mode 100644 x/register/types/expected.go delete mode 100644 x/sds/client/common/common.go delete mode 100644 x/sds/client/rest/query.go delete mode 100644 x/sds/client/rest/rest.go delete mode 100644 x/sds/client/rest/tx.go delete mode 100644 x/sds/keeper/querier.go create mode 100644 x/sds/types/expected.go delete mode 100644 x/sds/types/querier.go diff --git a/.gitignore b/.gitignore index 62dfce57..90489d94 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,9 @@ playground.go /tmp-swagger-gen/ /github.com/ .DS_Store +/proto/amino/ +/proto/cosmos/ +/proto/cosmos_proto/ +/proto/gogoproto/ +/proto/google/ +/proto/tendermint/ diff --git a/api/stratos/evm/module/v1/module.pulsar.go b/api/stratos/evm/module/v1/module.pulsar.go new file mode 100644 index 00000000..c50f37ca --- /dev/null +++ b/api/stratos/evm/module/v1/module.pulsar.go @@ -0,0 +1,716 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package modulev1 + +import ( + _ "cosmossdk.io/api/cosmos/app/v1alpha1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_Module_1_list)(nil) + +type _Module_1_list struct { + list *[]string +} + +func (x *_Module_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Module_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_Module_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Module_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Module_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Module at list field HooksOrder as it is not of Message kind")) +} + +func (x *_Module_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Module_1_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_Module_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_Module protoreflect.MessageDescriptor + fd_Module_hooks_order protoreflect.FieldDescriptor + fd_Module_authority protoreflect.FieldDescriptor +) + +func init() { + file_stratos_evm_module_v1_module_proto_init() + md_Module = File_stratos_evm_module_v1_module_proto.Messages().ByName("Module") + fd_Module_hooks_order = md_Module.Fields().ByName("hooks_order") + fd_Module_authority = md_Module.Fields().ByName("authority") +} + +var _ protoreflect.Message = (*fastReflection_Module)(nil) + +type fastReflection_Module Module + +func (x *Module) ProtoReflect() protoreflect.Message { + return (*fastReflection_Module)(x) +} + +func (x *Module) slowProtoReflect() protoreflect.Message { + mi := &file_stratos_evm_module_v1_module_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) +} + +var _fastReflection_Module_messageType fastReflection_Module_messageType +var _ protoreflect.MessageType = fastReflection_Module_messageType{} + +type fastReflection_Module_messageType struct{} + +func (x fastReflection_Module_messageType) Zero() protoreflect.Message { + return (*fastReflection_Module)(nil) +} +func (x fastReflection_Module_messageType) New() protoreflect.Message { + return new(fastReflection_Module) +} +func (x fastReflection_Module_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Module +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Module) Descriptor() protoreflect.MessageDescriptor { + return md_Module +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Module) Type() protoreflect.MessageType { + return _fastReflection_Module_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Module) New() protoreflect.Message { + return new(fastReflection_Module) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Module) Interface() protoreflect.ProtoMessage { + return (*Module)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Module) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.HooksOrder) != 0 { + value := protoreflect.ValueOfList(&_Module_1_list{list: &x.HooksOrder}) + if !f(fd_Module_hooks_order, value) { + return + } + } + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_Module_authority, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Module) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "stratos.evm.module.v1.Module.hooks_order": + return len(x.HooksOrder) != 0 + case "stratos.evm.module.v1.Module.authority": + return x.Authority != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.evm.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.evm.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "stratos.evm.module.v1.Module.hooks_order": + x.HooksOrder = nil + case "stratos.evm.module.v1.Module.authority": + x.Authority = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.evm.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.evm.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Module) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "stratos.evm.module.v1.Module.hooks_order": + if len(x.HooksOrder) == 0 { + return protoreflect.ValueOfList(&_Module_1_list{}) + } + listValue := &_Module_1_list{list: &x.HooksOrder} + return protoreflect.ValueOfList(listValue) + case "stratos.evm.module.v1.Module.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.evm.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.evm.module.v1.Module does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "stratos.evm.module.v1.Module.hooks_order": + lv := value.List() + clv := lv.(*_Module_1_list) + x.HooksOrder = *clv.list + case "stratos.evm.module.v1.Module.authority": + x.Authority = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.evm.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.evm.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "stratos.evm.module.v1.Module.hooks_order": + if x.HooksOrder == nil { + x.HooksOrder = []string{} + } + value := &_Module_1_list{list: &x.HooksOrder} + return protoreflect.ValueOfList(value) + case "stratos.evm.module.v1.Module.authority": + panic(fmt.Errorf("field authority of message stratos.evm.module.v1.Module is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.evm.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.evm.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Module) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "stratos.evm.module.v1.Module.hooks_order": + list := []string{} + return protoreflect.ValueOfList(&_Module_1_list{list: &list}) + case "stratos.evm.module.v1.Module.authority": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.evm.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.evm.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Module) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in stratos.evm.module.v1.Module", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Module) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Module) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Module) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.HooksOrder) > 0 { + for _, s := range x.HooksOrder { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + l = len(x.Authority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + i-- + dAtA[i] = 0x12 + } + if len(x.HooksOrder) > 0 { + for iNdEx := len(x.HooksOrder) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.HooksOrder[iNdEx]) + copy(dAtA[i:], x.HooksOrder[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.HooksOrder[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HooksOrder", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.HooksOrder = append(x.HooksOrder, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: stratos/evm/module/v1/module.proto + +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) +) + +// Module is the config object of the posts module. +type Module struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // hooks_order specifies the order of posts hooks and should be a list + // of module names which provide a posts hooks instance. If no order is + // provided, then hooks will be applied in alphabetical order of module names. + HooksOrder []string `protobuf:"bytes,1,rep,name=hooks_order,json=hooksOrder,proto3" json:"hooks_order,omitempty"` + // authority defines the custom module authority. If not set, defaults to the + // governance module. + Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"` +} + +func (x *Module) Reset() { + *x = Module{} + if protoimpl.UnsafeEnabled { + mi := &file_stratos_evm_module_v1_module_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Module) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Module) ProtoMessage() {} + +// Deprecated: Use Module.ProtoReflect.Descriptor instead. +func (*Module) Descriptor() ([]byte, []int) { + return file_stratos_evm_module_v1_module_proto_rawDescGZIP(), []int{0} +} + +func (x *Module) GetHooksOrder() []string { + if x != nil { + return x.HooksOrder + } + return nil +} + +func (x *Module) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +var File_stratos_evm_module_v1_module_proto protoreflect.FileDescriptor + +var file_stratos_evm_module_v1_module_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2f, 0x65, 0x76, 0x6d, 0x2f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x65, 0x76, + 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7a, 0x0a, + 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x3a, 0x31, 0xba, 0xc0, 0x96, 0xda, 0x01, 0x2b, 0x0a, 0x29, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x6f, 0x73, 0x6e, 0x65, 0x74, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x65, 0x76, 0x6d, 0x42, 0xd0, 0x01, 0x0a, 0x19, 0x63, 0x6f, + 0x6d, 0x2e, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x65, 0x76, 0x6d, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, + 0x2f, 0x65, 0x76, 0x6d, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x45, 0x4d, 0xaa, 0x02, 0x15, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x45, 0x76, 0x6d, 0x2e, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x5c, + 0x45, 0x76, 0x6d, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x5c, 0x45, 0x76, 0x6d, 0x5c, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x18, 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x45, 0x76, 0x6d, + 0x3a, 0x3a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_stratos_evm_module_v1_module_proto_rawDescOnce sync.Once + file_stratos_evm_module_v1_module_proto_rawDescData = file_stratos_evm_module_v1_module_proto_rawDesc +) + +func file_stratos_evm_module_v1_module_proto_rawDescGZIP() []byte { + file_stratos_evm_module_v1_module_proto_rawDescOnce.Do(func() { + file_stratos_evm_module_v1_module_proto_rawDescData = protoimpl.X.CompressGZIP(file_stratos_evm_module_v1_module_proto_rawDescData) + }) + return file_stratos_evm_module_v1_module_proto_rawDescData +} + +var file_stratos_evm_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_stratos_evm_module_v1_module_proto_goTypes = []interface{}{ + (*Module)(nil), // 0: stratos.evm.module.v1.Module +} +var file_stratos_evm_module_v1_module_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_stratos_evm_module_v1_module_proto_init() } +func file_stratos_evm_module_v1_module_proto_init() { + if File_stratos_evm_module_v1_module_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_stratos_evm_module_v1_module_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Module); 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_stratos_evm_module_v1_module_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_stratos_evm_module_v1_module_proto_goTypes, + DependencyIndexes: file_stratos_evm_module_v1_module_proto_depIdxs, + MessageInfos: file_stratos_evm_module_v1_module_proto_msgTypes, + }.Build() + File_stratos_evm_module_v1_module_proto = out.File + file_stratos_evm_module_v1_module_proto_rawDesc = nil + file_stratos_evm_module_v1_module_proto_goTypes = nil + file_stratos_evm_module_v1_module_proto_depIdxs = nil +} diff --git a/api/stratos/pot/module/v1/module.pulsar.go b/api/stratos/pot/module/v1/module.pulsar.go new file mode 100644 index 00000000..f85521fb --- /dev/null +++ b/api/stratos/pot/module/v1/module.pulsar.go @@ -0,0 +1,716 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package modulev1 + +import ( + _ "cosmossdk.io/api/cosmos/app/v1alpha1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_Module_1_list)(nil) + +type _Module_1_list struct { + list *[]string +} + +func (x *_Module_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Module_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_Module_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Module_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Module_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Module at list field HooksOrder as it is not of Message kind")) +} + +func (x *_Module_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Module_1_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_Module_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_Module protoreflect.MessageDescriptor + fd_Module_hooks_order protoreflect.FieldDescriptor + fd_Module_authority protoreflect.FieldDescriptor +) + +func init() { + file_stratos_pot_module_v1_module_proto_init() + md_Module = File_stratos_pot_module_v1_module_proto.Messages().ByName("Module") + fd_Module_hooks_order = md_Module.Fields().ByName("hooks_order") + fd_Module_authority = md_Module.Fields().ByName("authority") +} + +var _ protoreflect.Message = (*fastReflection_Module)(nil) + +type fastReflection_Module Module + +func (x *Module) ProtoReflect() protoreflect.Message { + return (*fastReflection_Module)(x) +} + +func (x *Module) slowProtoReflect() protoreflect.Message { + mi := &file_stratos_pot_module_v1_module_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) +} + +var _fastReflection_Module_messageType fastReflection_Module_messageType +var _ protoreflect.MessageType = fastReflection_Module_messageType{} + +type fastReflection_Module_messageType struct{} + +func (x fastReflection_Module_messageType) Zero() protoreflect.Message { + return (*fastReflection_Module)(nil) +} +func (x fastReflection_Module_messageType) New() protoreflect.Message { + return new(fastReflection_Module) +} +func (x fastReflection_Module_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Module +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Module) Descriptor() protoreflect.MessageDescriptor { + return md_Module +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Module) Type() protoreflect.MessageType { + return _fastReflection_Module_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Module) New() protoreflect.Message { + return new(fastReflection_Module) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Module) Interface() protoreflect.ProtoMessage { + return (*Module)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Module) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.HooksOrder) != 0 { + value := protoreflect.ValueOfList(&_Module_1_list{list: &x.HooksOrder}) + if !f(fd_Module_hooks_order, value) { + return + } + } + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_Module_authority, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Module) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "stratos.pot.module.v1.Module.hooks_order": + return len(x.HooksOrder) != 0 + case "stratos.pot.module.v1.Module.authority": + return x.Authority != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.pot.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.pot.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "stratos.pot.module.v1.Module.hooks_order": + x.HooksOrder = nil + case "stratos.pot.module.v1.Module.authority": + x.Authority = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.pot.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.pot.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Module) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "stratos.pot.module.v1.Module.hooks_order": + if len(x.HooksOrder) == 0 { + return protoreflect.ValueOfList(&_Module_1_list{}) + } + listValue := &_Module_1_list{list: &x.HooksOrder} + return protoreflect.ValueOfList(listValue) + case "stratos.pot.module.v1.Module.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.pot.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.pot.module.v1.Module does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "stratos.pot.module.v1.Module.hooks_order": + lv := value.List() + clv := lv.(*_Module_1_list) + x.HooksOrder = *clv.list + case "stratos.pot.module.v1.Module.authority": + x.Authority = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.pot.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.pot.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "stratos.pot.module.v1.Module.hooks_order": + if x.HooksOrder == nil { + x.HooksOrder = []string{} + } + value := &_Module_1_list{list: &x.HooksOrder} + return protoreflect.ValueOfList(value) + case "stratos.pot.module.v1.Module.authority": + panic(fmt.Errorf("field authority of message stratos.pot.module.v1.Module is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.pot.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.pot.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Module) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "stratos.pot.module.v1.Module.hooks_order": + list := []string{} + return protoreflect.ValueOfList(&_Module_1_list{list: &list}) + case "stratos.pot.module.v1.Module.authority": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.pot.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.pot.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Module) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in stratos.pot.module.v1.Module", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Module) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Module) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Module) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.HooksOrder) > 0 { + for _, s := range x.HooksOrder { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + l = len(x.Authority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + i-- + dAtA[i] = 0x12 + } + if len(x.HooksOrder) > 0 { + for iNdEx := len(x.HooksOrder) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.HooksOrder[iNdEx]) + copy(dAtA[i:], x.HooksOrder[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.HooksOrder[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HooksOrder", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.HooksOrder = append(x.HooksOrder, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: stratos/pot/module/v1/module.proto + +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) +) + +// Module is the config object of the posts module. +type Module struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // hooks_order specifies the order of posts hooks and should be a list + // of module names which provide a posts hooks instance. If no order is + // provided, then hooks will be applied in alphabetical order of module names. + HooksOrder []string `protobuf:"bytes,1,rep,name=hooks_order,json=hooksOrder,proto3" json:"hooks_order,omitempty"` + // authority defines the custom module authority. If not set, defaults to the + // governance module. + Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"` +} + +func (x *Module) Reset() { + *x = Module{} + if protoimpl.UnsafeEnabled { + mi := &file_stratos_pot_module_v1_module_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Module) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Module) ProtoMessage() {} + +// Deprecated: Use Module.ProtoReflect.Descriptor instead. +func (*Module) Descriptor() ([]byte, []int) { + return file_stratos_pot_module_v1_module_proto_rawDescGZIP(), []int{0} +} + +func (x *Module) GetHooksOrder() []string { + if x != nil { + return x.HooksOrder + } + return nil +} + +func (x *Module) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +var File_stratos_pot_module_v1_module_proto protoreflect.FileDescriptor + +var file_stratos_pot_module_v1_module_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2f, 0x70, 0x6f, 0x74, 0x2f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x70, 0x6f, + 0x74, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7a, 0x0a, + 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x3a, 0x31, 0xba, 0xc0, 0x96, 0xda, 0x01, 0x2b, 0x0a, 0x29, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x6f, 0x73, 0x6e, 0x65, 0x74, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x70, 0x6f, 0x74, 0x42, 0xd0, 0x01, 0x0a, 0x19, 0x63, 0x6f, + 0x6d, 0x2e, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x70, 0x6f, 0x74, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, + 0x2f, 0x70, 0x6f, 0x74, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x50, 0x4d, 0xaa, 0x02, 0x15, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x50, 0x6f, 0x74, 0x2e, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x5c, + 0x50, 0x6f, 0x74, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x5c, 0x50, 0x6f, 0x74, 0x5c, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x18, 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x50, 0x6f, 0x74, + 0x3a, 0x3a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_stratos_pot_module_v1_module_proto_rawDescOnce sync.Once + file_stratos_pot_module_v1_module_proto_rawDescData = file_stratos_pot_module_v1_module_proto_rawDesc +) + +func file_stratos_pot_module_v1_module_proto_rawDescGZIP() []byte { + file_stratos_pot_module_v1_module_proto_rawDescOnce.Do(func() { + file_stratos_pot_module_v1_module_proto_rawDescData = protoimpl.X.CompressGZIP(file_stratos_pot_module_v1_module_proto_rawDescData) + }) + return file_stratos_pot_module_v1_module_proto_rawDescData +} + +var file_stratos_pot_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_stratos_pot_module_v1_module_proto_goTypes = []interface{}{ + (*Module)(nil), // 0: stratos.pot.module.v1.Module +} +var file_stratos_pot_module_v1_module_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_stratos_pot_module_v1_module_proto_init() } +func file_stratos_pot_module_v1_module_proto_init() { + if File_stratos_pot_module_v1_module_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_stratos_pot_module_v1_module_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Module); 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_stratos_pot_module_v1_module_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_stratos_pot_module_v1_module_proto_goTypes, + DependencyIndexes: file_stratos_pot_module_v1_module_proto_depIdxs, + MessageInfos: file_stratos_pot_module_v1_module_proto_msgTypes, + }.Build() + File_stratos_pot_module_v1_module_proto = out.File + file_stratos_pot_module_v1_module_proto_rawDesc = nil + file_stratos_pot_module_v1_module_proto_goTypes = nil + file_stratos_pot_module_v1_module_proto_depIdxs = nil +} diff --git a/api/stratos/register/module/v1/module.pulsar.go b/api/stratos/register/module/v1/module.pulsar.go new file mode 100644 index 00000000..92f93058 --- /dev/null +++ b/api/stratos/register/module/v1/module.pulsar.go @@ -0,0 +1,719 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package modulev1 + +import ( + _ "cosmossdk.io/api/cosmos/app/v1alpha1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_Module_1_list)(nil) + +type _Module_1_list struct { + list *[]string +} + +func (x *_Module_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Module_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_Module_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Module_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Module_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Module at list field HooksOrder as it is not of Message kind")) +} + +func (x *_Module_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Module_1_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_Module_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_Module protoreflect.MessageDescriptor + fd_Module_hooks_order protoreflect.FieldDescriptor + fd_Module_authority protoreflect.FieldDescriptor +) + +func init() { + file_stratos_register_module_v1_module_proto_init() + md_Module = File_stratos_register_module_v1_module_proto.Messages().ByName("Module") + fd_Module_hooks_order = md_Module.Fields().ByName("hooks_order") + fd_Module_authority = md_Module.Fields().ByName("authority") +} + +var _ protoreflect.Message = (*fastReflection_Module)(nil) + +type fastReflection_Module Module + +func (x *Module) ProtoReflect() protoreflect.Message { + return (*fastReflection_Module)(x) +} + +func (x *Module) slowProtoReflect() protoreflect.Message { + mi := &file_stratos_register_module_v1_module_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) +} + +var _fastReflection_Module_messageType fastReflection_Module_messageType +var _ protoreflect.MessageType = fastReflection_Module_messageType{} + +type fastReflection_Module_messageType struct{} + +func (x fastReflection_Module_messageType) Zero() protoreflect.Message { + return (*fastReflection_Module)(nil) +} +func (x fastReflection_Module_messageType) New() protoreflect.Message { + return new(fastReflection_Module) +} +func (x fastReflection_Module_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Module +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Module) Descriptor() protoreflect.MessageDescriptor { + return md_Module +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Module) Type() protoreflect.MessageType { + return _fastReflection_Module_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Module) New() protoreflect.Message { + return new(fastReflection_Module) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Module) Interface() protoreflect.ProtoMessage { + return (*Module)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Module) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.HooksOrder) != 0 { + value := protoreflect.ValueOfList(&_Module_1_list{list: &x.HooksOrder}) + if !f(fd_Module_hooks_order, value) { + return + } + } + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_Module_authority, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Module) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "stratos.register.module.v1.Module.hooks_order": + return len(x.HooksOrder) != 0 + case "stratos.register.module.v1.Module.authority": + return x.Authority != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.register.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.register.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "stratos.register.module.v1.Module.hooks_order": + x.HooksOrder = nil + case "stratos.register.module.v1.Module.authority": + x.Authority = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.register.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.register.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Module) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "stratos.register.module.v1.Module.hooks_order": + if len(x.HooksOrder) == 0 { + return protoreflect.ValueOfList(&_Module_1_list{}) + } + listValue := &_Module_1_list{list: &x.HooksOrder} + return protoreflect.ValueOfList(listValue) + case "stratos.register.module.v1.Module.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.register.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.register.module.v1.Module does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "stratos.register.module.v1.Module.hooks_order": + lv := value.List() + clv := lv.(*_Module_1_list) + x.HooksOrder = *clv.list + case "stratos.register.module.v1.Module.authority": + x.Authority = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.register.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.register.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "stratos.register.module.v1.Module.hooks_order": + if x.HooksOrder == nil { + x.HooksOrder = []string{} + } + value := &_Module_1_list{list: &x.HooksOrder} + return protoreflect.ValueOfList(value) + case "stratos.register.module.v1.Module.authority": + panic(fmt.Errorf("field authority of message stratos.register.module.v1.Module is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.register.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.register.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Module) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "stratos.register.module.v1.Module.hooks_order": + list := []string{} + return protoreflect.ValueOfList(&_Module_1_list{list: &list}) + case "stratos.register.module.v1.Module.authority": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.register.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.register.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Module) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in stratos.register.module.v1.Module", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Module) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Module) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Module) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.HooksOrder) > 0 { + for _, s := range x.HooksOrder { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + l = len(x.Authority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + i-- + dAtA[i] = 0x12 + } + if len(x.HooksOrder) > 0 { + for iNdEx := len(x.HooksOrder) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.HooksOrder[iNdEx]) + copy(dAtA[i:], x.HooksOrder[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.HooksOrder[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HooksOrder", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.HooksOrder = append(x.HooksOrder, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: stratos/register/module/v1/module.proto + +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) +) + +// Module is the config object of the posts module. +type Module struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // hooks_order specifies the order of posts hooks and should be a list + // of module names which provide a posts hooks instance. If no order is + // provided, then hooks will be applied in alphabetical order of module names. + HooksOrder []string `protobuf:"bytes,1,rep,name=hooks_order,json=hooksOrder,proto3" json:"hooks_order,omitempty"` + // authority defines the custom module authority. If not set, defaults to the + // governance module. + Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"` +} + +func (x *Module) Reset() { + *x = Module{} + if protoimpl.UnsafeEnabled { + mi := &file_stratos_register_module_v1_module_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Module) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Module) ProtoMessage() {} + +// Deprecated: Use Module.ProtoReflect.Descriptor instead. +func (*Module) Descriptor() ([]byte, []int) { + return file_stratos_register_module_v1_module_proto_rawDescGZIP(), []int{0} +} + +func (x *Module) GetHooksOrder() []string { + if x != nil { + return x.HooksOrder + } + return nil +} + +func (x *Module) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +var File_stratos_register_module_v1_module_proto protoreflect.FileDescriptor + +var file_stratos_register_module_v1_module_proto_rawDesc = []byte{ + 0x0a, 0x27, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x70, + 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7f, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x3a, 0x36, 0xba, 0xc0, 0x96, 0xda, 0x01, 0x30, 0x0a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x6e, 0x65, 0x74, 0x2f, + 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, + 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x42, 0xee, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, + 0x2e, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x34, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x6f, 0x73, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, + 0xa2, 0x02, 0x03, 0x53, 0x52, 0x4d, 0xaa, 0x02, 0x1a, 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, + 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x5c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x26, 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x5c, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x53, 0x74, 0x72, 0x61, + 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x3a, 0x3a, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_stratos_register_module_v1_module_proto_rawDescOnce sync.Once + file_stratos_register_module_v1_module_proto_rawDescData = file_stratos_register_module_v1_module_proto_rawDesc +) + +func file_stratos_register_module_v1_module_proto_rawDescGZIP() []byte { + file_stratos_register_module_v1_module_proto_rawDescOnce.Do(func() { + file_stratos_register_module_v1_module_proto_rawDescData = protoimpl.X.CompressGZIP(file_stratos_register_module_v1_module_proto_rawDescData) + }) + return file_stratos_register_module_v1_module_proto_rawDescData +} + +var file_stratos_register_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_stratos_register_module_v1_module_proto_goTypes = []interface{}{ + (*Module)(nil), // 0: stratos.register.module.v1.Module +} +var file_stratos_register_module_v1_module_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_stratos_register_module_v1_module_proto_init() } +func file_stratos_register_module_v1_module_proto_init() { + if File_stratos_register_module_v1_module_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_stratos_register_module_v1_module_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Module); 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_stratos_register_module_v1_module_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_stratos_register_module_v1_module_proto_goTypes, + DependencyIndexes: file_stratos_register_module_v1_module_proto_depIdxs, + MessageInfos: file_stratos_register_module_v1_module_proto_msgTypes, + }.Build() + File_stratos_register_module_v1_module_proto = out.File + file_stratos_register_module_v1_module_proto_rawDesc = nil + file_stratos_register_module_v1_module_proto_goTypes = nil + file_stratos_register_module_v1_module_proto_depIdxs = nil +} diff --git a/api/stratos/sds/module/v1/module.pulsar.go b/api/stratos/sds/module/v1/module.pulsar.go new file mode 100644 index 00000000..34ab9923 --- /dev/null +++ b/api/stratos/sds/module/v1/module.pulsar.go @@ -0,0 +1,716 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package modulev1 + +import ( + _ "cosmossdk.io/api/cosmos/app/v1alpha1" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var _ protoreflect.List = (*_Module_1_list)(nil) + +type _Module_1_list struct { + list *[]string +} + +func (x *_Module_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_Module_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_Module_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_Module_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_Module_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message Module at list field HooksOrder as it is not of Message kind")) +} + +func (x *_Module_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_Module_1_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_Module_1_list) IsValid() bool { + return x.list != nil +} + +var ( + md_Module protoreflect.MessageDescriptor + fd_Module_hooks_order protoreflect.FieldDescriptor + fd_Module_authority protoreflect.FieldDescriptor +) + +func init() { + file_stratos_sds_module_v1_module_proto_init() + md_Module = File_stratos_sds_module_v1_module_proto.Messages().ByName("Module") + fd_Module_hooks_order = md_Module.Fields().ByName("hooks_order") + fd_Module_authority = md_Module.Fields().ByName("authority") +} + +var _ protoreflect.Message = (*fastReflection_Module)(nil) + +type fastReflection_Module Module + +func (x *Module) ProtoReflect() protoreflect.Message { + return (*fastReflection_Module)(x) +} + +func (x *Module) slowProtoReflect() protoreflect.Message { + mi := &file_stratos_sds_module_v1_module_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) +} + +var _fastReflection_Module_messageType fastReflection_Module_messageType +var _ protoreflect.MessageType = fastReflection_Module_messageType{} + +type fastReflection_Module_messageType struct{} + +func (x fastReflection_Module_messageType) Zero() protoreflect.Message { + return (*fastReflection_Module)(nil) +} +func (x fastReflection_Module_messageType) New() protoreflect.Message { + return new(fastReflection_Module) +} +func (x fastReflection_Module_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Module +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Module) Descriptor() protoreflect.MessageDescriptor { + return md_Module +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Module) Type() protoreflect.MessageType { + return _fastReflection_Module_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Module) New() protoreflect.Message { + return new(fastReflection_Module) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Module) Interface() protoreflect.ProtoMessage { + return (*Module)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Module) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.HooksOrder) != 0 { + value := protoreflect.ValueOfList(&_Module_1_list{list: &x.HooksOrder}) + if !f(fd_Module_hooks_order, value) { + return + } + } + if x.Authority != "" { + value := protoreflect.ValueOfString(x.Authority) + if !f(fd_Module_authority, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Module) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "stratos.sds.module.v1.Module.hooks_order": + return len(x.HooksOrder) != 0 + case "stratos.sds.module.v1.Module.authority": + return x.Authority != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.sds.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.sds.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "stratos.sds.module.v1.Module.hooks_order": + x.HooksOrder = nil + case "stratos.sds.module.v1.Module.authority": + x.Authority = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.sds.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.sds.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Module) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "stratos.sds.module.v1.Module.hooks_order": + if len(x.HooksOrder) == 0 { + return protoreflect.ValueOfList(&_Module_1_list{}) + } + listValue := &_Module_1_list{list: &x.HooksOrder} + return protoreflect.ValueOfList(listValue) + case "stratos.sds.module.v1.Module.authority": + value := x.Authority + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.sds.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.sds.module.v1.Module does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "stratos.sds.module.v1.Module.hooks_order": + lv := value.List() + clv := lv.(*_Module_1_list) + x.HooksOrder = *clv.list + case "stratos.sds.module.v1.Module.authority": + x.Authority = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.sds.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.sds.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "stratos.sds.module.v1.Module.hooks_order": + if x.HooksOrder == nil { + x.HooksOrder = []string{} + } + value := &_Module_1_list{list: &x.HooksOrder} + return protoreflect.ValueOfList(value) + case "stratos.sds.module.v1.Module.authority": + panic(fmt.Errorf("field authority of message stratos.sds.module.v1.Module is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.sds.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.sds.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Module) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "stratos.sds.module.v1.Module.hooks_order": + list := []string{} + return protoreflect.ValueOfList(&_Module_1_list{list: &list}) + case "stratos.sds.module.v1.Module.authority": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: stratos.sds.module.v1.Module")) + } + panic(fmt.Errorf("message stratos.sds.module.v1.Module does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Module) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in stratos.sds.module.v1.Module", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Module) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Module) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Module) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Module) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.HooksOrder) > 0 { + for _, s := range x.HooksOrder { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + l = len(x.Authority) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Authority) > 0 { + i -= len(x.Authority) + copy(dAtA[i:], x.Authority) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Authority))) + i-- + dAtA[i] = 0x12 + } + if len(x.HooksOrder) > 0 { + for iNdEx := len(x.HooksOrder) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.HooksOrder[iNdEx]) + copy(dAtA[i:], x.HooksOrder[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.HooksOrder[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Module) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, 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 protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Module: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field HooksOrder", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.HooksOrder = append(x.HooksOrder, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Authority", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: stratos/sds/module/v1/module.proto + +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) +) + +// Module is the config object of the posts module. +type Module struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // hooks_order specifies the order of posts hooks and should be a list + // of module names which provide a posts hooks instance. If no order is + // provided, then hooks will be applied in alphabetical order of module names. + HooksOrder []string `protobuf:"bytes,1,rep,name=hooks_order,json=hooksOrder,proto3" json:"hooks_order,omitempty"` + // authority defines the custom module authority. If not set, defaults to the + // governance module. + Authority string `protobuf:"bytes,2,opt,name=authority,proto3" json:"authority,omitempty"` +} + +func (x *Module) Reset() { + *x = Module{} + if protoimpl.UnsafeEnabled { + mi := &file_stratos_sds_module_v1_module_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Module) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Module) ProtoMessage() {} + +// Deprecated: Use Module.ProtoReflect.Descriptor instead. +func (*Module) Descriptor() ([]byte, []int) { + return file_stratos_sds_module_v1_module_proto_rawDescGZIP(), []int{0} +} + +func (x *Module) GetHooksOrder() []string { + if x != nil { + return x.HooksOrder + } + return nil +} + +func (x *Module) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +var File_stratos_sds_module_v1_module_proto protoreflect.FileDescriptor + +var file_stratos_sds_module_v1_module_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2f, 0x73, 0x64, 0x73, 0x2f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x73, 0x64, + 0x73, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x70, 0x70, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7a, 0x0a, + 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f, 0x6f, 0x6b, 0x73, + 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, + 0x6f, 0x6b, 0x73, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x3a, 0x31, 0xba, 0xc0, 0x96, 0xda, 0x01, 0x2b, 0x0a, 0x29, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, + 0x6f, 0x73, 0x6e, 0x65, 0x74, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2d, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x2f, 0x78, 0x2f, 0x73, 0x64, 0x73, 0x42, 0xd0, 0x01, 0x0a, 0x19, 0x63, 0x6f, + 0x6d, 0x2e, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x73, 0x64, 0x73, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, + 0x2f, 0x73, 0x64, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x53, 0x53, 0x4d, 0xaa, 0x02, 0x15, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x2e, 0x53, 0x64, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x5c, + 0x53, 0x64, 0x73, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x5c, 0x53, 0x64, 0x73, 0x5c, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x18, 0x53, 0x74, 0x72, 0x61, 0x74, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x64, 0x73, + 0x3a, 0x3a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_stratos_sds_module_v1_module_proto_rawDescOnce sync.Once + file_stratos_sds_module_v1_module_proto_rawDescData = file_stratos_sds_module_v1_module_proto_rawDesc +) + +func file_stratos_sds_module_v1_module_proto_rawDescGZIP() []byte { + file_stratos_sds_module_v1_module_proto_rawDescOnce.Do(func() { + file_stratos_sds_module_v1_module_proto_rawDescData = protoimpl.X.CompressGZIP(file_stratos_sds_module_v1_module_proto_rawDescData) + }) + return file_stratos_sds_module_v1_module_proto_rawDescData +} + +var file_stratos_sds_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_stratos_sds_module_v1_module_proto_goTypes = []interface{}{ + (*Module)(nil), // 0: stratos.sds.module.v1.Module +} +var file_stratos_sds_module_v1_module_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_stratos_sds_module_v1_module_proto_init() } +func file_stratos_sds_module_v1_module_proto_init() { + if File_stratos_sds_module_v1_module_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_stratos_sds_module_v1_module_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Module); 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_stratos_sds_module_v1_module_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_stratos_sds_module_v1_module_proto_goTypes, + DependencyIndexes: file_stratos_sds_module_v1_module_proto_depIdxs, + MessageInfos: file_stratos_sds_module_v1_module_proto_msgTypes, + }.Build() + File_stratos_sds_module_v1_module_proto = out.File + file_stratos_sds_module_v1_module_proto_rawDesc = nil + file_stratos_sds_module_v1_module_proto_goTypes = nil + file_stratos_sds_module_v1_module_proto_depIdxs = nil +} diff --git a/app/ante/ante.go b/app/ante/ante.go index 12962846..8496efb7 100644 --- a/app/ante/ante.go +++ b/app/ante/ante.go @@ -4,8 +4,9 @@ import ( "fmt" "runtime/debug" - tmlog "github.com/tendermint/tendermint/libs/log" + tmlog "github.com/cometbft/cometbft/libs/log" + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/types/tx/signing" @@ -40,7 +41,7 @@ func NewAnteHandler(options HandlerOptions) sdk.AnteHandler { // handle as *evmtypes.MsgEthereumTx anteHandler = newEthAnteHandler(options) default: - return ctx, sdkerrors.Wrapf( + return ctx, errors.Wrapf( sdkerrors.ErrUnknownExtensionOptions, "rejecting tx with unsupported extension option: %s", typeURL, ) @@ -55,7 +56,7 @@ func NewAnteHandler(options HandlerOptions) sdk.AnteHandler { case sdk.Tx: anteHandler = newCosmosAnteHandler(options) default: - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid transaction type: %T", tx) + return ctx, errors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid transaction type: %T", tx) } return anteHandler(ctx, tx, sim) @@ -64,7 +65,7 @@ func NewAnteHandler(options HandlerOptions) sdk.AnteHandler { func Recover(logger tmlog.Logger, err *error) { if r := recover(); r != nil { - *err = sdkerrors.Wrapf(sdkerrors.ErrPanic, "%v", r) + *err = errors.Wrapf(sdkerrors.ErrPanic, "%v", r) if e, ok := r.(error); ok { logger.Error( diff --git a/app/ante/eth.go b/app/ante/eth.go index 71add19b..a014d354 100644 --- a/app/ante/eth.go +++ b/app/ante/eth.go @@ -1,9 +1,10 @@ package ante import ( - "errors" "math/big" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" authante "github.com/cosmos/cosmos-sdk/x/auth/ante" @@ -28,24 +29,24 @@ func NewEthTxPayloadVerificationDecorator() EthTxPayloadVerificationDecorator { // AnteHandle validates msgs count, some signature protection and applied limitations func (tpvd EthTxPayloadVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error) { if len(tx.GetMsgs()) > 1 { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrInvalidType, "evm transactions only operates with 1 msg") + return ctx, errors.Wrapf(sdkerrors.ErrInvalidType, "evm transactions only operates with 1 msg") } for _, msg := range tx.GetMsgs() { msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) if !ok { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) + return ctx, errors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) } ethTx := msgEthTx.AsTransaction() // EIP-155 only allowed if !ethTx.Protected() { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrNotSupported, "legacy pre-eip-155 transactions not supported") + return ctx, errors.Wrapf(sdkerrors.ErrNotSupported, "legacy pre-eip-155 transactions not supported") } // forbid EIP-2930 update with access list if len(ethTx.AccessList()) > 0 { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrNotSupported, "eip-2930 transactions not supported") + return ctx, errors.Wrapf(sdkerrors.ErrNotSupported, "eip-2930 transactions not supported") } } @@ -79,12 +80,12 @@ func (esvd EthSigVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, s for _, msg := range tx.GetMsgs() { msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) if !ok { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) + return ctx, errors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) } sender, err := signer.Sender(msgEthTx.AsTransaction()) if err != nil { - return ctx, sdkerrors.Wrapf( + return ctx, errors.Wrapf( sdkerrors.ErrorInvalidSigner, "couldn't retrieve sender address ('%s') from the ethereum transaction: %s", msgEthTx.From, @@ -127,18 +128,18 @@ func (avd EthAccountVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx for i, msg := range tx.GetMsgs() { msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) if !ok { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) + return ctx, errors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) } txData, err := evmtypes.UnpackTxData(msgEthTx.Data) if err != nil { - return ctx, sdkerrors.Wrapf(err, "failed to unpack tx data any for tx %d", i) + return ctx, errors.Wrapf(err, "failed to unpack tx data any for tx %d", i) } // sender address should be in the tx cache from the previous AnteHandle call from := msgEthTx.GetFrom() if from.Empty() { - return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "from address cannot be empty") + return ctx, errors.Wrap(sdkerrors.ErrInvalidAddress, "from address cannot be empty") } // check whether the sender address is EOA @@ -150,12 +151,12 @@ func (avd EthAccountVerificationDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx avd.ak.SetAccount(ctx, acc) acct = statedb.NewEmptyAccount() } else if acct.IsContract() { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrInvalidType, + return ctx, errors.Wrapf(sdkerrors.ErrInvalidType, "the sender is not EOA: address %s, codeHash <%s>", fromAddr, acct.CodeHash) } - if err := evmkeeper.CheckSenderBalance(sdk.NewIntFromBigInt(acct.Balance), txData); err != nil { - return ctx, sdkerrors.Wrap(err, "failed to check sender balance") + if err := evmkeeper.CheckSenderBalance(sdkmath.NewIntFromBigInt(acct.Balance), txData); err != nil { + return ctx, errors.Wrap(err, "failed to check sender balance") } } @@ -210,12 +211,12 @@ func (egcd EthGasConsumeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula for _, msg := range tx.GetMsgs() { msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) if !ok { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) + return ctx, errors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) } txData, err := evmtypes.UnpackTxData(msgEthTx.Data) if err != nil { - return ctx, sdkerrors.Wrap(err, "failed to unpack tx data") + return ctx, errors.Wrap(err, "failed to unpack tx data") } if ctx.IsCheckTx() { @@ -239,7 +240,7 @@ func (egcd EthGasConsumeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula london, ) if err != nil { - return ctx, sdkerrors.Wrapf(err, "failed to deduct transaction costs from user balance") + return ctx, errors.Wrapf(err, "failed to deduct transaction costs from user balance") } events = append(events, sdk.NewEvent(sdk.EventTypeTx, sdk.NewAttribute(sdk.AttributeKeyFee, fees.String()))) @@ -291,14 +292,14 @@ func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate for _, msg := range tx.GetMsgs() { msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) if !ok { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) + return ctx, errors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) } baseFee := ctd.evmKeeper.GetBaseFee(ctx, ethCfg) coreMsg, err := msgEthTx.AsMessage(signer, baseFee) if err != nil { - return ctx, sdkerrors.Wrapf( + return ctx, errors.Wrapf( err, "failed to create an ethereum core.Message from signer %T", signer, ) @@ -317,7 +318,7 @@ func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate // check that caller has enough balance to cover asset transfer for **topmost** call // NOTE: here the gas consumed is from the context with the infinite gas meter if coreMsg.Value().Sign() > 0 && !evm.Context.CanTransfer(stateDB, coreMsg.From(), coreMsg.Value()) { - return ctx, sdkerrors.Wrapf( + return ctx, errors.Wrapf( sdkerrors.ErrInsufficientFunds, "failed to transfer %s from address %s using the EVM block context transfer function", coreMsg.Value(), @@ -327,13 +328,13 @@ func (ctd CanTransferDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate if evmtypes.IsLondon(ethCfg, ctx.BlockHeight()) { if baseFee == nil { - return ctx, sdkerrors.Wrap( + return ctx, errors.Wrap( evmtypes.ErrInvalidBaseFee, "base fee is supported but evm block context value is nil", ) } if coreMsg.GasFeeCap().Cmp(baseFee) < 0 { - return ctx, sdkerrors.Wrapf( + return ctx, errors.Wrapf( sdkerrors.ErrInsufficientFee, "max fee per gas less than block base fee (%s < %s)", coreMsg.GasFeeCap(), baseFee, @@ -364,18 +365,18 @@ func (issd EthIncrementSenderSequenceDecorator) AnteHandle(ctx sdk.Context, tx s for _, msg := range tx.GetMsgs() { msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) if !ok { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) + return ctx, errors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) } txData, err := evmtypes.UnpackTxData(msgEthTx.Data) if err != nil { - return ctx, sdkerrors.Wrap(err, "failed to unpack tx data") + return ctx, errors.Wrap(err, "failed to unpack tx data") } // increase sequence of sender acc := issd.ak.GetAccount(ctx, msgEthTx.GetFrom()) if acc == nil { - return ctx, sdkerrors.Wrapf( + return ctx, errors.Wrapf( sdkerrors.ErrUnknownAddress, "account %s is nil", common.BytesToAddress(msgEthTx.GetFrom().Bytes()), ) @@ -385,14 +386,14 @@ func (issd EthIncrementSenderSequenceDecorator) AnteHandle(ctx sdk.Context, tx s // we merged the nonce verification to nonce increment, so when tx includes multiple messages // with same sender, they'll be accepted. if txData.GetNonce() != nonce { - return ctx, sdkerrors.Wrapf( + return ctx, errors.Wrapf( sdkerrors.ErrInvalidSequence, "invalid nonce; got %d, expected %d", txData.GetNonce(), nonce, ) } if err := acc.SetSequence(nonce + 1); err != nil { - return ctx, sdkerrors.Wrapf(err, "failed to set sequence to %d", acc.GetSequence()+1) + return ctx, errors.Wrapf(err, "failed to set sequence to %d", acc.GetSequence()+1) } issd.ak.SetAccount(ctx, acc) @@ -422,8 +423,8 @@ func (vbd EthValidateBasicDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simu err := tx.ValidateBasic() // ErrNoSignatures is fine with eth tx - if err != nil && !errors.Is(err, sdkerrors.ErrNoSignatures) { - return ctx, sdkerrors.Wrap(err, "tx basic validation failed") + if err != nil && !errors.IsOf(err, sdkerrors.ErrNoSignatures) { + return ctx, errors.Wrap(err, "tx basic validation failed") } // For eth type cosmos tx, some fields should be veified as zero values, @@ -432,12 +433,12 @@ func (vbd EthValidateBasicDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simu protoTx := wrapperTx.GetProtoTx() body := protoTx.Body if body.Memo != "" || body.TimeoutHeight != uint64(0) || len(body.NonCriticalExtensionOptions) > 0 { - return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, + return ctx, errors.Wrap(sdkerrors.ErrInvalidRequest, "for eth tx body Memo TimeoutHeight NonCriticalExtensionOptions should be empty") } if len(body.ExtensionOptions) != 1 { - return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "for eth tx length of ExtensionOptions should be 1") + return ctx, errors.Wrap(sdkerrors.ErrInvalidRequest, "for eth tx length of ExtensionOptions should be 1") } txFee := sdk.Coins{} @@ -450,50 +451,50 @@ func (vbd EthValidateBasicDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simu for _, msg := range protoTx.GetMsgs() { msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) if !ok { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) + return ctx, errors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) } txGasLimit += msgEthTx.GetGas() txData, err := evmtypes.UnpackTxData(msgEthTx.Data) if err != nil { - return ctx, sdkerrors.Wrap(err, "failed to unpack MsgEthereumTx Data") + return ctx, errors.Wrap(err, "failed to unpack MsgEthereumTx Data") } // return error if contract creation or call are disabled through governance if !params.EnableCreate && txData.GetTo() == nil { - return ctx, sdkerrors.Wrap(evmtypes.ErrCreateDisabled, "failed to create new contract") + return ctx, errors.Wrap(evmtypes.ErrCreateDisabled, "failed to create new contract") } else if !params.EnableCall && txData.GetTo() != nil { - return ctx, sdkerrors.Wrap(evmtypes.ErrCallDisabled, "failed to call contract") + return ctx, errors.Wrap(evmtypes.ErrCallDisabled, "failed to call contract") } if baseFee == nil && txData.TxType() == ethtypes.DynamicFeeTxType { - return ctx, sdkerrors.Wrap(ethtypes.ErrTxTypeNotSupported, "dynamic fee tx not supported") + return ctx, errors.Wrap(ethtypes.ErrTxTypeNotSupported, "dynamic fee tx not supported") } - txFee = txFee.Add(sdk.NewCoin(params.EvmDenom, sdk.NewIntFromBigInt(txData.Fee()))) + txFee = txFee.Add(sdk.NewCoin(params.EvmDenom, sdkmath.NewIntFromBigInt(txData.Fee()))) } authInfo := protoTx.AuthInfo if len(authInfo.SignerInfos) > 0 { - return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "for eth tx AuthInfo SignerInfos should be empty") + return ctx, errors.Wrap(sdkerrors.ErrInvalidRequest, "for eth tx AuthInfo SignerInfos should be empty") } if authInfo.Fee.Payer != "" || authInfo.Fee.Granter != "" { - return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "for eth tx AuthInfo Fee payer and granter should be empty") + return ctx, errors.Wrap(sdkerrors.ErrInvalidRequest, "for eth tx AuthInfo Fee payer and granter should be empty") } if !authInfo.Fee.Amount.IsEqual(txFee) { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid AuthInfo Fee Amount (%s != %s)", authInfo.Fee.Amount, txFee) + return ctx, errors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid AuthInfo Fee Amount (%s != %s)", authInfo.Fee.Amount, txFee) } if authInfo.Fee.GasLimit != txGasLimit { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid AuthInfo Fee GasLimit (%d != %d)", authInfo.Fee.GasLimit, txGasLimit) + return ctx, errors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid AuthInfo Fee GasLimit (%d != %d)", authInfo.Fee.GasLimit, txGasLimit) } sigs := protoTx.Signatures if len(sigs) > 0 { - return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "for eth tx Signatures should be empty") + return ctx, errors.Wrap(sdkerrors.ErrInvalidRequest, "for eth tx Signatures should be empty") } } @@ -516,7 +517,7 @@ func (esc EthSetupContextDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simul // all transactions must implement GasTx _, ok := tx.(authante.GasTx) if !ok { - return newCtx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be GasTx") + return newCtx, errors.Wrap(sdkerrors.ErrTxDecode, "Tx must be GasTx") } newCtx = ctx.WithGasMeter(sdk.NewInfiniteGasMeter()) @@ -556,7 +557,7 @@ func (mfd EthMempoolFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulat for _, msg := range tx.GetMsgs() { ethMsg, ok := msg.(*evmtypes.MsgEthereumTx) if !ok { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) + return ctx, errors.Wrapf(sdkerrors.ErrUnknownRequest, "invalid message type %T, expected %T", msg, (*evmtypes.MsgEthereumTx)(nil)) } var feeAmt *big.Int @@ -566,10 +567,10 @@ func (mfd EthMempoolFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulat } else { feeAmt = ethMsg.GetEffectiveFee(baseFee) } - glDec := sdk.NewDec(int64(ethMsg.GetGas())) + glDec := sdkmath.LegacyNewDec(int64(ethMsg.GetGas())) requiredFee := ctx.MinGasPrices().AmountOf(evmDenom).Mul(glDec) - if sdk.NewDecFromBigInt(feeAmt).LT(requiredFee) { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", feeAmt, requiredFee) + if sdkmath.LegacyNewDecFromBigInt(feeAmt).LT(requiredFee) { + return ctx, errors.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", feeAmt, requiredFee) } } } diff --git a/app/ante/fee.go b/app/ante/fee.go index 9ce272e5..d1226dfc 100644 --- a/app/ante/fee.go +++ b/app/ante/fee.go @@ -3,122 +3,113 @@ package ante import ( "fmt" + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/auth/types" ) -// MempoolFeeDecorator will check if the transaction's fee is at least as large -// as the local validator's minimum gasFee (defined in validator config). -// If fee is too low, decorator returns error and tx is rejected from mempool. -// Note this only applies when ctx.CheckTx = true -// If fee is high enough or not CheckTx, then call next AnteHandler -// CONTRACT: Tx must implement FeeTx to use MempoolFeeDecorator -type MempoolFeeDecorator struct{} +// TxFeeChecker check if the provided fee is enough and returns the effective fee and tx priority, +// the effective fee should be deducted later, and the priority should be returned in abci response. +type TxFeeChecker func(ctx sdk.Context, tx sdk.Tx) (sdk.Coins, int64, error) -func NewMempoolFeeDecorator() MempoolFeeDecorator { - return MempoolFeeDecorator{} -} - -func (mfd MempoolFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error) { - feeTx, ok := tx.(sdk.FeeTx) - if !ok { - return ctx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") - } - - feeCoins, err := sdk.ParseCoinsNormalized(feeTx.GetFee().String()) - if err != nil { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "fee parsing error: %s", feeCoins) - } - gas := feeTx.GetGas() - - // Ensure that the provided fees meet a minimum threshold for the validator, - // if this is a CheckTx. This is only for local mempool purposes, and thus - // is only ran on check tx. - if ctx.IsCheckTx() && !simulate { - minGasPrices := ctx.MinGasPrices() - if !minGasPrices.IsZero() { - requiredFees := make(sdk.Coins, len(minGasPrices)) - - // Determine the required fees by multiplying each required minimum gas - // price by the gas limit, where fee = ceil(minGasPrice * gasLimit). - glDec := sdk.NewDec(int64(gas)) - for i, gp := range minGasPrices { - fee := gp.Amount.Mul(glDec) - requiredFees[i] = sdk.NewCoin(gp.Denom, fee.Ceil().RoundInt()) - } - - if !feeCoins.IsAnyGTE(requiredFees) { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", feeCoins, requiredFees) - } - } - } - - return next(ctx, tx, simulate) -} - -// DeductFeeDecorator deducts fees from the first signer of the tx -// If the first signer does not have the funds to pay for the fees, return with InsufficientFunds error -// Call next AnteHandler if fees successfully deducted +// DeductFeeDecorator deducts fees from the fee payer. The fee payer is the fee granter (if specified) or first signer of the tx. +// If the fee payer does not have the funds to pay for the fees, return an InsufficientFunds error. +// Call next AnteHandler if fees successfully deducted. // CONTRACT: Tx must implement FeeTx interface to use DeductFeeDecorator type DeductFeeDecorator struct { - ak AccountKeeper + accountKeeper AccountKeeper bankKeeper types.BankKeeper feegrantKeeper FeegrantKeeper + txFeeChecker TxFeeChecker } -func NewDeductFeeDecorator(ak AccountKeeper, bk types.BankKeeper, fk FeegrantKeeper) DeductFeeDecorator { +func NewDeductFeeDecorator(ak AccountKeeper, bk types.BankKeeper, fk FeegrantKeeper, tfc TxFeeChecker) DeductFeeDecorator { + if tfc == nil { + tfc = checkTxFeeWithValidatorMinGasPrices + } + return DeductFeeDecorator{ - ak: ak, + accountKeeper: ak, bankKeeper: bk, feegrantKeeper: fk, + txFeeChecker: tfc, } } -func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error) { +func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) { feeTx, ok := tx.(sdk.FeeTx) if !ok { - return ctx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") + return ctx, errors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") } - if addr := dfd.ak.GetModuleAddress(types.FeeCollectorName); addr == nil { - return ctx, fmt.Errorf("fee collector module account (%s) has not been set", types.FeeCollectorName) + if !simulate && ctx.BlockHeight() > 0 && feeTx.GetGas() == 0 { + return ctx, errors.Wrap(sdkerrors.ErrInvalidGasLimit, "must provide positive gas") } + var ( + priority int64 + err error + ) + fee, err := sdk.ParseCoinsNormalized(feeTx.GetFee().String()) if err != nil { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "fee parsing error: %s", fee) + return ctx, errors.Wrapf(sdkerrors.ErrInsufficientFee, "fee parsing error: %s", fee) + } + if !simulate { + fee, priority, err = dfd.txFeeChecker(ctx, tx) + if err != nil { + return ctx, err + } + } + if err := dfd.checkDeductFee(ctx, tx, fee); err != nil { + return ctx, err + } + + newCtx := ctx.WithPriority(priority) + + return next(newCtx, tx, simulate) +} + +func (dfd DeductFeeDecorator) checkDeductFee(ctx sdk.Context, sdkTx sdk.Tx, fee sdk.Coins) error { + feeTx, ok := sdkTx.(sdk.FeeTx) + if !ok { + return errors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") + } + + if addr := dfd.accountKeeper.GetModuleAddress(types.FeeCollectorName); addr == nil { + return fmt.Errorf("fee collector module account (%s) has not been set", types.FeeCollectorName) } + feePayer := feeTx.FeePayer() feeGranter := feeTx.FeeGranter() - deductFeesFrom := feePayer // if feegranter set deduct fee from feegranter account. // this works with only when feegrant enabled. if feeGranter != nil { if dfd.feegrantKeeper == nil { - return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "fee grants are not enabled") + return sdkerrors.ErrInvalidRequest.Wrap("fee grants are not enabled") } else if !feeGranter.Equals(feePayer) { - err := dfd.feegrantKeeper.UseGrantedFees(ctx, feeGranter, feePayer, fee, tx.GetMsgs()) + err := dfd.feegrantKeeper.UseGrantedFees(ctx, feeGranter, feePayer, fee, sdkTx.GetMsgs()) if err != nil { - return ctx, sdkerrors.Wrapf(err, "%s not allowed to pay fees from %s", feeGranter, feePayer) + return errors.Wrapf(err, "%s does not allow to pay fees for %s", feeGranter, feePayer) } } deductFeesFrom = feeGranter } - deductFeesFromAcc := dfd.ak.GetAccount(ctx, deductFeesFrom) + deductFeesFromAcc := dfd.accountKeeper.GetAccount(ctx, deductFeesFrom) if deductFeesFromAcc == nil { - return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownAddress, "fee payer address: %s does not exist", deductFeesFrom) + return sdkerrors.ErrUnknownAddress.Wrapf("fee payer address: %s does not exist", deductFeesFrom) } // deduct the fees if !fee.IsZero() { - err = DeductFees(dfd.bankKeeper, ctx, deductFeesFromAcc, fee) + err := DeductFees(dfd.bankKeeper, ctx, deductFeesFromAcc, fee) if err != nil { - return ctx, err + return err } } @@ -131,18 +122,18 @@ func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bo } ctx.EventManager().EmitEvents(events) - return next(ctx, tx, simulate) + return nil } // DeductFees deducts fees from the given account. func DeductFees(bankKeeper types.BankKeeper, ctx sdk.Context, acc types.AccountI, fees sdk.Coins) error { if !fees.IsValid() { - return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "invalid fee amount: %s", fees) + return errors.Wrapf(sdkerrors.ErrInsufficientFee, "invalid fee amount: %s", fees) } err := bankKeeper.SendCoinsFromAccountToModule(ctx, acc.GetAddress(), types.FeeCollectorName, fees) if err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, err.Error()) + return errors.Wrapf(sdkerrors.ErrInsufficientFunds, err.Error()) } return nil diff --git a/app/ante/handler_options.go b/app/ante/handler_options.go index 507a0766..0318adce 100644 --- a/app/ante/handler_options.go +++ b/app/ante/handler_options.go @@ -1,6 +1,7 @@ package ante import ( + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/types/tx/signing" @@ -8,8 +9,8 @@ import ( authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - ibcante "github.com/cosmos/ibc-go/v3/modules/core/ante" - ibckeeper "github.com/cosmos/ibc-go/v3/modules/core/keeper" + ibcante "github.com/cosmos/ibc-go/v7/modules/core/ante" + ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" ) @@ -17,28 +18,30 @@ import ( // HandlerOptions extend the SDK's AnteHandler options by requiring the IBC // channel keeper, EVM Keeper and Fee Market Keeper. type HandlerOptions struct { - AccountKeeper evmtypes.AccountKeeper - BankKeeper evmtypes.BankKeeper - IBCKeeper *ibckeeper.Keeper - EvmKeeper EVMKeeper - FeegrantKeeper ante.FeegrantKeeper - SignModeHandler authsigning.SignModeHandler - SigGasConsumer func(meter sdk.GasMeter, sig signing.SignatureV2, params authtypes.Params) error - MaxTxGasWanted uint64 + AccountKeeper evmtypes.AccountKeeper + BankKeeper evmtypes.BankKeeper + ExtensionOptionChecker ante.ExtensionOptionChecker + IBCKeeper *ibckeeper.Keeper + EvmKeeper EVMKeeper + FeegrantKeeper ante.FeegrantKeeper + SignModeHandler authsigning.SignModeHandler + SigGasConsumer func(meter sdk.GasMeter, sig signing.SignatureV2, params authtypes.Params) error + MaxEthTxGasWanted uint64 + TxFeeChecker TxFeeChecker } func (options HandlerOptions) Validate() error { if options.AccountKeeper == nil { - return sdkerrors.Wrap(sdkerrors.ErrLogic, "account keeper is required for AnteHandler") + return errors.Wrap(sdkerrors.ErrLogic, "account keeper is required for AnteHandler") } if options.BankKeeper == nil { - return sdkerrors.Wrap(sdkerrors.ErrLogic, "bank keeper is required for AnteHandler") + return errors.Wrap(sdkerrors.ErrLogic, "bank keeper is required for AnteHandler") } if options.SignModeHandler == nil { - return sdkerrors.Wrap(sdkerrors.ErrLogic, "sign mode handler is required for ante builder") + return errors.Wrap(sdkerrors.ErrLogic, "sign mode handler is required for ante builder") } if options.EvmKeeper == nil { - return sdkerrors.Wrap(sdkerrors.ErrLogic, "evm keeper is required for AnteHandler") + return errors.Wrap(sdkerrors.ErrLogic, "evm keeper is required for AnteHandler") } return nil } @@ -51,7 +54,7 @@ func newEthAnteHandler(options HandlerOptions) sdk.AnteHandler { NewEthTxPayloadVerificationDecorator(), NewEthSigVerificationDecorator(options.EvmKeeper), NewEthAccountVerificationDecorator(options.AccountKeeper, options.EvmKeeper), - NewEthGasConsumeDecorator(options.EvmKeeper, options.MaxTxGasWanted), + NewEthGasConsumeDecorator(options.EvmKeeper, options.MaxEthTxGasWanted), NewCanTransferDecorator(options.EvmKeeper), NewEthIncrementSenderSequenceDecorator(options.AccountKeeper), // innermost AnteDecorator. ) @@ -61,19 +64,18 @@ func newCosmosAnteHandler(options HandlerOptions) sdk.AnteHandler { return sdk.ChainAnteDecorators( RejectMessagesDecorator{}, // reject MsgEthereumTxs ante.NewSetUpContextDecorator(), - ante.NewRejectExtensionOptionsDecorator(), - NewMempoolFeeDecorator(), + ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker), ante.NewValidateBasicDecorator(), ante.NewTxTimeoutHeightDecorator(), ante.NewValidateMemoDecorator(options.AccountKeeper), ante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper), - NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper), + NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, options.TxFeeChecker), // SetPubKeyDecorator must be called before all signature verification decorators ante.NewSetPubKeyDecorator(options.AccountKeeper), ante.NewValidateSigCountDecorator(options.AccountKeeper), ante.NewSigGasConsumeDecorator(options.AccountKeeper, options.SigGasConsumer), ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler), ante.NewIncrementSequenceDecorator(options.AccountKeeper), - ibcante.NewAnteDecorator(options.IBCKeeper), + ibcante.NewRedundantRelayDecorator(options.IBCKeeper), ) } diff --git a/app/ante/reject_msgs.go b/app/ante/reject_msgs.go index 962c3ce1..f64b49f8 100644 --- a/app/ante/reject_msgs.go +++ b/app/ante/reject_msgs.go @@ -1,8 +1,10 @@ package ante import ( + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" ) @@ -10,12 +12,12 @@ import ( type RejectMessagesDecorator struct{} // AnteHandle rejects messages that requires ethereum-specific authentication. -// For example `MsgEthereumTx` requires fee to be deducted in the antehandler in +// For example `MsgEthereumTx` requires fee to be deducted in the anteHandler in // order to perform the refund. func (rmd RejectMessagesDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error) { for _, msg := range tx.GetMsgs() { if _, ok := msg.(*evmtypes.MsgEthereumTx); ok { - return ctx, sdkerrors.Wrapf( + return ctx, errors.Wrapf( sdkerrors.ErrInvalidType, "MsgEthereumTx needs to be contained within a tx with 'ExtensionOptionsEthereumTx' option", ) diff --git a/app/ante/validator_tx_fee.go b/app/ante/validator_tx_fee.go new file mode 100644 index 00000000..74f295cf --- /dev/null +++ b/app/ante/validator_tx_fee.go @@ -0,0 +1,67 @@ +package ante + +import ( + "math" + + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +// checkTxFeeWithValidatorMinGasPrices implements the default fee logic, where the minimum price per +// unit of gas is fixed and set by each validator, can the tx priority is computed from the gas price. +func checkTxFeeWithValidatorMinGasPrices(ctx sdk.Context, tx sdk.Tx) (sdk.Coins, int64, error) { + feeTx, ok := tx.(sdk.FeeTx) + if !ok { + return nil, 0, errors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") + } + + feeCoins := feeTx.GetFee() + gas := feeTx.GetGas() + + // Ensure that the provided fees meet a minimum threshold for the validator, + // if this is a CheckTx. This is only for local mempool purposes, and thus + // is only ran on check tx. + if ctx.IsCheckTx() { + minGasPrices := ctx.MinGasPrices() + if !minGasPrices.IsZero() { + requiredFees := make(sdk.Coins, len(minGasPrices)) + + // Determine the required fees by multiplying each required minimum gas + // price by the gas limit, where fee = ceil(minGasPrice * gasLimit). + glDec := sdkmath.LegacyNewDec(int64(gas)) + for i, gp := range minGasPrices { + fee := gp.Amount.Mul(glDec) + requiredFees[i] = sdk.NewCoin(gp.Denom, fee.Ceil().RoundInt()) + } + + if !feeCoins.IsAnyGTE(requiredFees) { + return nil, 0, errors.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", feeCoins, requiredFees) + } + } + } + + priority := getTxPriority(feeCoins, int64(gas)) + return feeCoins, priority, nil +} + +// getTxPriority returns a naive tx priority based on the amount of the smallest denomination of the gas price +// provided in a transaction. +// NOTE: This implementation should be used with a great consideration as it opens potential attack vectors +// where txs with multiple coins could not be prioritized as expected. +func getTxPriority(fee sdk.Coins, gas int64) int64 { + var priority int64 + for _, c := range fee { + p := int64(math.MaxInt64) + gasPrice := c.Amount.QuoRaw(gas) + if gasPrice.IsInt64() { + p = gasPrice.Int64() + } + if priority == 0 || p < priority { + priority = p + } + } + + return priority +} diff --git a/app/app.go b/app/app.go index 75648a47..91797861 100644 --- a/app/app.go +++ b/app/app.go @@ -1,238 +1,131 @@ package app import ( - "encoding/json" "io" - "net/http" "os" - "github.com/gorilla/mux" - "github.com/rakyll/statik/fs" + dbm "github.com/cometbft/cometbft-db" + abci "github.com/cometbft/cometbft/abci/types" + "github.com/cometbft/cometbft/libs/log" "github.com/spf13/cast" + "github.com/stratosnet/stratos-chain/runtime" + evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" - dbm "github.com/tendermint/tm-db" - + "cosmossdk.io/depinject" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/grpc/tmservice" - "github.com/cosmos/cosmos-sdk/client/rpc" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" + sdkruntime "github.com/cosmos/cosmos-sdk/runtime" + "github.com/cosmos/cosmos-sdk/server" "github.com/cosmos/cosmos-sdk/server/api" "github.com/cosmos/cosmos-sdk/server/config" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - "github.com/cosmos/cosmos-sdk/simapp" - sdkparams "github.com/cosmos/cosmos-sdk/simapp/params" + sdkservertypes "github.com/cosmos/cosmos-sdk/server/types" + "github.com/cosmos/cosmos-sdk/store/streaming" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" - "github.com/cosmos/cosmos-sdk/version" "github.com/cosmos/cosmos-sdk/x/auth" authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation" - authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/cosmos/cosmos-sdk/x/auth/vesting" - vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" - "github.com/cosmos/cosmos-sdk/x/authz" authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" - authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" - "github.com/cosmos/cosmos-sdk/x/bank" bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/cosmos/cosmos-sdk/x/capability" capabilitykeeper "github.com/cosmos/cosmos-sdk/x/capability/keeper" - capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" - "github.com/cosmos/cosmos-sdk/x/crisis" + consensuskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper" crisiskeeper "github.com/cosmos/cosmos-sdk/x/crisis/keeper" - crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" - distr "github.com/cosmos/cosmos-sdk/x/distribution" - distrclient "github.com/cosmos/cosmos-sdk/x/distribution/client" distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" - distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "github.com/cosmos/cosmos-sdk/x/evidence" evidencekeeper "github.com/cosmos/cosmos-sdk/x/evidence/keeper" - evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" - "github.com/cosmos/cosmos-sdk/x/feegrant" feegrantkeeper "github.com/cosmos/cosmos-sdk/x/feegrant/keeper" - feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module" - "github.com/cosmos/cosmos-sdk/x/genutil" - genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" - "github.com/cosmos/cosmos-sdk/x/gov" govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" - "github.com/cosmos/cosmos-sdk/x/mint" + govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" mintkeeper "github.com/cosmos/cosmos-sdk/x/mint/keeper" - minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" "github.com/cosmos/cosmos-sdk/x/params" - paramsclient "github.com/cosmos/cosmos-sdk/x/params/client" paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" paramproposal "github.com/cosmos/cosmos-sdk/x/params/types/proposal" - "github.com/cosmos/cosmos-sdk/x/slashing" slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper" - slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" - "github.com/cosmos/cosmos-sdk/x/staking" stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" - stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/cosmos/cosmos-sdk/x/upgrade" - upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" upgradekeeper "github.com/cosmos/cosmos-sdk/x/upgrade/keeper" upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" - "github.com/cosmos/ibc-go/v3/modules/apps/transfer" - ibctransferkeeper "github.com/cosmos/ibc-go/v3/modules/apps/transfer/keeper" - ibctransfertypes "github.com/cosmos/ibc-go/v3/modules/apps/transfer/types" - ibc "github.com/cosmos/ibc-go/v3/modules/core" - ibcclient "github.com/cosmos/ibc-go/v3/modules/core/02-client" - ibcclientclient "github.com/cosmos/ibc-go/v3/modules/core/02-client/client" - porttypes "github.com/cosmos/ibc-go/v3/modules/core/05-port/types" - ibchost "github.com/cosmos/ibc-go/v3/modules/core/24-host" - ibckeeper "github.com/cosmos/ibc-go/v3/modules/core/keeper" + ica "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts" + icacontroller "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller" + icacontrollerkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/keeper" + icacontrollertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types" + icahost "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host" + icahostkeeper "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/keeper" + icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" + ibcfee "github.com/cosmos/ibc-go/v7/modules/apps/29-fee" + ibcfeekeeper "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/keeper" + ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" + ibctransfer "github.com/cosmos/ibc-go/v7/modules/apps/transfer" + ibctransferkeeper "github.com/cosmos/ibc-go/v7/modules/apps/transfer/keeper" + ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + ibc "github.com/cosmos/ibc-go/v7/modules/core" + ibcclient "github.com/cosmos/ibc-go/v7/modules/core/02-client" + ibcclienttypes "github.com/cosmos/ibc-go/v7/modules/core/02-client/types" + porttypes "github.com/cosmos/ibc-go/v7/modules/core/05-port/types" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + ibckeeper "github.com/cosmos/ibc-go/v7/modules/core/keeper" + solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine" + ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" "github.com/stratosnet/stratos-chain/app/ante" srvflags "github.com/stratosnet/stratos-chain/server/flags" - stratos "github.com/stratosnet/stratos-chain/types" - "github.com/stratosnet/stratos-chain/x/evm" - evmrest "github.com/stratosnet/stratos-chain/x/evm/client/rest" evmkeeper "github.com/stratosnet/stratos-chain/x/evm/keeper" - evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" - "github.com/stratosnet/stratos-chain/x/pot" potkeeper "github.com/stratosnet/stratos-chain/x/pot/keeper" - pottypes "github.com/stratosnet/stratos-chain/x/pot/types" - "github.com/stratosnet/stratos-chain/x/register" registerkeeper "github.com/stratosnet/stratos-chain/x/register/keeper" - registertypes "github.com/stratosnet/stratos-chain/x/register/types" - "github.com/stratosnet/stratos-chain/x/sds" sdskeeper "github.com/stratosnet/stratos-chain/x/sds/keeper" - sdstypes "github.com/stratosnet/stratos-chain/x/sds/types" -) - -const ( - appName = "stchain" ) -func init() { - version.AppName = appName + "d" -} - var ( - DefaultNodeHome = os.ExpandEnv("$HOME/.stchaind") - - ModuleBasics = module.NewBasicManager( - auth.AppModuleBasic{}, - genutil.AppModuleBasic{}, - bank.AppModuleBasic{}, - capability.AppModuleBasic{}, - staking.AppModuleBasic{}, - mint.AppModuleBasic{}, - distr.AppModuleBasic{}, - gov.NewAppModuleBasic( - paramsclient.ProposalHandler, - distrclient.ProposalHandler, - upgradeclient.ProposalHandler, - upgradeclient.CancelProposalHandler, - ibcclientclient.UpdateClientProposalHandler, - ibcclientclient.UpgradeProposalHandler, - ), - params.AppModuleBasic{}, - crisis.AppModuleBasic{}, - slashing.AppModuleBasic{}, - ibc.AppModuleBasic{}, - authzmodule.AppModuleBasic{}, - feegrantmodule.AppModuleBasic{}, - upgrade.AppModuleBasic{}, - evidence.AppModuleBasic{}, - transfer.AppModuleBasic{}, - vesting.AppModuleBasic{}, - // stratos modules - register.AppModuleBasic{}, - pot.AppModuleBasic{}, - sds.AppModuleBasic{}, - evm.AppModuleBasic{}, - ) - - maccPerms = map[string][]string{ - authtypes.FeeCollectorName: nil, - distrtypes.ModuleName: {authtypes.Burner}, - minttypes.ModuleName: {authtypes.Minter}, - stakingtypes.BondedPoolName: {authtypes.Burner, authtypes.Staking}, - stakingtypes.NotBondedPoolName: {authtypes.Burner, authtypes.Staking}, - govtypes.ModuleName: {authtypes.Burner}, - ibctransfertypes.ModuleName: {authtypes.Minter, authtypes.Burner}, - //pot.FoundationAccount: nil, - registertypes.ModuleName: {authtypes.Minter, authtypes.Burner}, - //upgrading module accounts - registertypes.ResourceNodeBondedPool: {authtypes.Minter}, - registertypes.ResourceNodeNotBondedPool: {authtypes.Minter}, - registertypes.MetaNodeBondedPool: {authtypes.Minter}, - registertypes.MetaNodeNotBondedPool: {authtypes.Minter}, - registertypes.TotalUnissuedPrepay: {authtypes.Minter}, - - pottypes.ModuleName: {authtypes.Minter}, - pottypes.FoundationAccount: {authtypes.Minter, authtypes.Burner}, - pottypes.TotalRewardPool: nil, - //pottypes.TotalMinedTokens: {authtypes.Minter, authtypes.Burner}, - - sdstypes.ModuleName: nil, - evmtypes.ModuleName: {authtypes.Minter, authtypes.Burner}, // used for secure addition and subtraction of balance using module account - //pottypes.ModuleName: {authtypes.Minter, authtypes.Burner}, // used for secure addition and subtraction of balance using module account - //pottypes.FoundationAccount: {authtypes.Minter, authtypes.Burner}, // used for secure addition and subtraction of balance using module account - //pottypes.MiningRewardPool: {authtypes.Minter, authtypes.Burner}, // used for secure addition and subtraction of balance using module account - //pottypes.TrafficRewardPool: {authtypes.Minter, authtypes.Burner}, // used for secure addition and subtraction of balance using module account - - } - - // module accounts that are allowed to receive tokens - allowedReceivingModAcc = map[string]bool{ - distrtypes.ModuleName: true, - authtypes.FeeCollectorName: true, - //pot.FoundationAccount: true, - } + _ sdkruntime.AppI = (*StratosApp)(nil) + _ sdkservertypes.Application = (*StratosApp)(nil) ) type EVMKeeperApp interface { GetEVMKeeper() *evmkeeper.Keeper } -type NewApp struct { - *baseapp.BaseApp - - appName string - - cdc *codec.LegacyAmino +type StratosApp struct { + *runtime.App + legacyAmino *codec.LegacyAmino appCodec codec.Codec + txConfig client.TxConfig interfaceRegistry codectypes.InterfaceRegistry - invCheckPeriod uint - - // keys to access the substores - keys map[string]*sdk.KVStoreKey - tKeys map[string]*sdk.TransientStoreKey - memKeys map[string]*sdk.MemoryStoreKey - + // Cosmos keepers accountKeeper authkeeper.AccountKeeper bankKeeper bankkeeper.Keeper capabilityKeeper *capabilitykeeper.Keeper - stakingKeeper stakingkeeper.Keeper + stakingKeeper *stakingkeeper.Keeper slashingKeeper slashingkeeper.Keeper mintKeeper mintkeeper.Keeper distrKeeper distrkeeper.Keeper - govKeeper govkeeper.Keeper - crisisKeeper crisiskeeper.Keeper - upgradeKeeper upgradekeeper.Keeper + govKeeper *govkeeper.Keeper + crisisKeeper *crisiskeeper.Keeper + upgradeKeeper *upgradekeeper.Keeper paramsKeeper paramskeeper.Keeper - ibcKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly authzKeeper authzkeeper.Keeper evidenceKeeper evidencekeeper.Keeper feeGrantKeeper feegrantkeeper.Keeper - transferKeeper ibctransferkeeper.Keeper + consensusKeeper consensuskeeper.Keeper + + // IBC keepers + transferKeeper ibctransferkeeper.Keeper + ibcKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly + ibcFeeKeeper ibcfeekeeper.Keeper + icaControllerKeeper icacontrollerkeeper.Keeper + icaHostKeeper icahostkeeper.Keeper // make scoped keepers public for test purposes - ScopedIBCKeeper capabilitykeeper.ScopedKeeper - ScopedTransferKeeper capabilitykeeper.ScopedKeeper + ScopedIBCKeeper capabilitykeeper.ScopedKeeper + ScopedIBCTransferKeeper capabilitykeeper.ScopedKeeper + ScopedICAHostKeeper capabilitykeeper.ScopedKeeper + ScopedICAControllerKeeper capabilitykeeper.ScopedKeeper // stratos keepers registerKeeper registerkeeper.Keeper @@ -240,576 +133,422 @@ type NewApp struct { sdsKeeper sdskeeper.Keeper evmKeeper *evmkeeper.Keeper - // the module manager - mm *module.Manager // simulation manager sm *module.SimulationManager - // module configurator - configurator module.Configurator } -var _ simapp.App = (*NewApp)(nil) - -func NewInitApp( - logger log.Logger, - db dbm.DB, - traceStore io.Writer, - loadLatest bool, - skipUpgradeHeights map[int64]bool, - homePath string, - invCheckPeriod uint, - encodingConfig sdkparams.EncodingConfig, - appOpts servertypes.AppOptions, - baseAppOptions ...func(*baseapp.BaseApp), -) *NewApp { - appCodec := encodingConfig.Marshaler - cdc := encodingConfig.Amino - interfaceRegistry := encodingConfig.InterfaceRegistry - - bApp := baseapp.NewBaseApp(appName, logger, db, encodingConfig.TxConfig.TxDecoder(), baseAppOptions...) - bApp.SetCommitMultiStoreTracer(traceStore) - bApp.SetVersion(version.Version) - bApp.SetInterfaceRegistry(interfaceRegistry) - - keys := sdk.NewKVStoreKeys( - // SDK keys - authtypes.StoreKey, banktypes.StoreKey, stakingtypes.StoreKey, - minttypes.StoreKey, distrtypes.StoreKey, slashingtypes.StoreKey, - govtypes.StoreKey, paramstypes.StoreKey, upgradetypes.StoreKey, - evidencetypes.StoreKey, capabilitytypes.StoreKey, feegrant.StoreKey, - authzkeeper.StoreKey, - // ibc keys - ibchost.StoreKey, ibctransfertypes.StoreKey, - // stratos keys - registertypes.StoreKey, - pottypes.StoreKey, - sdstypes.StoreKey, - evmtypes.StoreKey, +func NewStratosApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLatest bool, + appOpts sdkservertypes.AppOptions, baseAppOptions ...func(*baseapp.BaseApp), +) *StratosApp { + var ( + app = &StratosApp{} + appBuilder *runtime.AppBuilder + + // merge the AppConfig and other configuration in one config + appConfig = depinject.Configs( + StratosAppConfig, + depinject.Supply( + // supply the application options + appOpts, + + // ADVANCED CONFIGURATION + + // + // AUTH + // + // For providing a custom function required in auth to generate custom account types + // add it below. By default the auth module uses simulation.RandomGenesisAccounts. + // + // authtypes.RandomGenesisAccountsFn(simulation.RandomGenesisAccounts), + + // For providing a custom a base account type add it below. + // By default the auth module uses authtypes.ProtoBaseAccount(). + // + // func() authtypes.AccountI { return authtypes.ProtoBaseAccount() }, + + // + // MINT + // + + // For providing a custom inflation function for x/mint add here your + // custom function that implements the minttypes.InflationCalculationFn + // interface. + ), + ) ) + if err := depinject.Inject(appConfig, + &appBuilder, + &app.appCodec, + &app.legacyAmino, + &app.txConfig, + &app.interfaceRegistry, + &app.accountKeeper, + &app.bankKeeper, + &app.capabilityKeeper, + &app.stakingKeeper, + &app.slashingKeeper, + &app.mintKeeper, + &app.distrKeeper, + &app.govKeeper, + &app.crisisKeeper, + &app.upgradeKeeper, + &app.paramsKeeper, + &app.authzKeeper, + &app.evidenceKeeper, + &app.feeGrantKeeper, + &app.consensusKeeper, + + // Stratos keepers + &app.registerKeeper, + &app.potKeeper, + &app.sdsKeeper, + &app.evmKeeper, + ); err != nil { + panic(err) + } + + // Below we could construct and set an application specific mempool and + // ABCI 1.0 PrepareProposal and ProcessProposal handlers. These defaults are + // already set in the SDK's BaseApp, this shows an example of how to override + // them. + // + // Example: + // + // app.App = appBuilder.Build(...) + // nonceMempool := mempool.NewSenderNonceMempool() + // abciPropHandler := NewDefaultProposalHandler(nonceMempool, app.App.BaseApp) + // + // app.App.BaseApp.SetMempool(nonceMempool) + // app.App.BaseApp.SetPrepareProposal(abciPropHandler.PrepareProposalHandler()) + // app.App.BaseApp.SetProcessProposal(abciPropHandler.ProcessProposalHandler()) + // + // Alternatively, you can construct BaseApp options, append those to + // baseAppOptions and pass them to the appBuilder. + // + // Example: + // + // prepareOpt = func(app *baseapp.BaseApp) { + // abciPropHandler := baseapp.NewDefaultProposalHandler(nonceMempool, app) + // app.SetPrepareProposal(abciPropHandler.PrepareProposalHandler()) + // } + // baseAppOptions = append(baseAppOptions, prepareOpt) + app.App = appBuilder.Build(logger, db, traceStore, baseAppOptions...) + + evmTracer := cast.ToString(appOpts.Get(srvflags.EVMTracer)) + app.evmKeeper.SetTracer(evmTracer) + // Add the EVM transient store key - tKeys := sdk.NewTransientStoreKeys(paramstypes.TStoreKey, evmtypes.TransientKey) - memKeys := sdk.NewMemoryStoreKeys(capabilitytypes.MemStoreKey) - - app := &NewApp{ - BaseApp: bApp, - cdc: cdc, - appCodec: appCodec, - interfaceRegistry: interfaceRegistry, - invCheckPeriod: invCheckPeriod, - keys: keys, - tKeys: tKeys, - memKeys: memKeys, + evmTransientKey := sdk.NewTransientStoreKey(evmtypes.TransientKey) + app.evmKeeper.SetTransientKey(evmTransientKey) + err := app.RegisterStores(evmTransientKey) + if err != nil { + panic(err) } - // init params keeper and subspaces - app.paramsKeeper = initParamsKeeper(appCodec, cdc, keys[paramstypes.StoreKey], tKeys[paramstypes.TStoreKey]) - // set the BaseApp's parameter store - bApp.SetParamStore(app.paramsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramskeeper.ConsensusParamsKeyTable())) - // add capability keeper and ScopeToModule for ibc module - app.capabilityKeeper = capabilitykeeper.NewKeeper(appCodec, keys[capabilitytypes.StoreKey], memKeys[capabilitytypes.MemStoreKey]) + // set up non depinject support modules store keys + storeKeys := sdk.NewKVStoreKeys( + ibcexported.StoreKey, ibctransfertypes.StoreKey, ibcfeetypes.StoreKey, + icahosttypes.StoreKey, icacontrollertypes.StoreKey, + ) + for _, key := range storeKeys { + err = app.RegisterStores(key) + if err != nil { + panic(err) + } + } - scopedIBCKeeper := app.capabilityKeeper.ScopeToModule(ibchost.ModuleName) - scopedTransferKeeper := app.capabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName) + // load state streaming if enabled + if _, _, err := streaming.LoadStreamingServices(app.App.BaseApp, appOpts, app.appCodec, logger, app.kvStoreKeys()); err != nil { + logger.Error("failed to load state streaming", "err", err) + os.Exit(1) + } - // Applications that wish to enforce statically created ScopedKeepers should call `Seal` after creating - // their scoped modules in `NewApp` with `ScopeToModule` - app.capabilityKeeper.Seal() + /**** Module Options ****/ - app.accountKeeper = authkeeper.NewAccountKeeper( - appCodec, keys[authtypes.StoreKey], app.GetSubspace(authtypes.ModuleName), stratos.ProtoAccount, maccPerms, - ) - app.bankKeeper = bankkeeper.NewBaseKeeper( - appCodec, keys[banktypes.StoreKey], app.accountKeeper, app.GetSubspace(banktypes.ModuleName), app.BlockedAddrs(), - ) - stakingKeeper := stakingkeeper.NewKeeper( - appCodec, keys[stakingtypes.StoreKey], app.accountKeeper, app.bankKeeper, app.GetSubspace(stakingtypes.ModuleName), - ) - app.mintKeeper = mintkeeper.NewKeeper( - appCodec, keys[minttypes.StoreKey], app.GetSubspace(minttypes.ModuleName), &stakingKeeper, - app.accountKeeper, app.bankKeeper, authtypes.FeeCollectorName, - ) - app.distrKeeper = distrkeeper.NewKeeper( - appCodec, keys[distrtypes.StoreKey], app.GetSubspace(distrtypes.ModuleName), app.accountKeeper, app.bankKeeper, - &stakingKeeper, authtypes.FeeCollectorName, app.ModuleAccountAddrs(), - ) - app.slashingKeeper = slashingkeeper.NewKeeper( - appCodec, keys[slashingtypes.StoreKey], &stakingKeeper, app.GetSubspace(slashingtypes.ModuleName), - ) - app.crisisKeeper = crisiskeeper.NewKeeper( - app.GetSubspace(crisistypes.ModuleName), invCheckPeriod, app.bankKeeper, authtypes.FeeCollectorName, - ) - app.feeGrantKeeper = feegrantkeeper.NewKeeper( - appCodec, keys[feegrant.StoreKey], app.accountKeeper, - ) - app.upgradeKeeper = upgradekeeper.NewKeeper( - skipUpgradeHeights, keys[upgradetypes.StoreKey], appCodec, homePath, app.BaseApp, - ) - // register the staking hooks - // NOTE: stakingKeeper above is passed by reference, so that it will contain these hooks - app.stakingKeeper = *stakingKeeper.SetHooks( - stakingtypes.NewMultiStakingHooks(app.distrKeeper.Hooks(), app.slashingKeeper.Hooks()), - ) - app.authzKeeper = authzkeeper.NewKeeper( - keys[authzkeeper.StoreKey], appCodec, app.BaseApp.MsgServiceRouter(), - ) + // set params subspaces + for _, m := range []string{ibctransfertypes.ModuleName, ibcexported.ModuleName, icahosttypes.SubModuleName, icacontrollertypes.SubModuleName} { + app.paramsKeeper.Subspace(m) + } - tracer := cast.ToString(appOpts.Get(srvflags.EVMTracer)) - app.evmKeeper = evmkeeper.NewKeeper( - appCodec, keys[evmtypes.StoreKey], tKeys[evmtypes.TransientKey], app.GetSubspace(evmtypes.ModuleName), - app.accountKeeper, app.bankKeeper, app.stakingKeeper, tracer, - ) + // add capability keeper and ScopeToModule for ibc module + scopedIBCKeeper := app.capabilityKeeper.ScopeToModule(ibcexported.ModuleName) + scopedIBCTransferKeeper := app.capabilityKeeper.ScopeToModule(ibctransfertypes.ModuleName) + scopedICAControllerKeeper := app.capabilityKeeper.ScopeToModule(icacontrollertypes.SubModuleName) + scopedICAHostKeeper := app.capabilityKeeper.ScopeToModule(icahosttypes.SubModuleName) - // Create IBC Keeper + // Create IBC keeper app.ibcKeeper = ibckeeper.NewKeeper( - appCodec, keys[ibchost.StoreKey], app.GetSubspace(ibchost.ModuleName), app.stakingKeeper, app.upgradeKeeper, scopedIBCKeeper, + app.appCodec, app.GetKey(ibcexported.StoreKey), app.GetSubspace(ibcexported.ModuleName), app.stakingKeeper, app.upgradeKeeper, scopedIBCKeeper, ) - // register the proposal types - govRouter := govtypes.NewRouter() - govRouter.AddRoute(govtypes.RouterKey, govtypes.ProposalHandler). - AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.paramsKeeper)). - AddRoute(distrtypes.RouterKey, distr.NewCommunityPoolSpendProposalHandler(app.distrKeeper)). - AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.upgradeKeeper)). - AddRoute(ibchost.RouterKey, ibcclient.NewClientProposalHandler(app.ibcKeeper.ClientKeeper)) - govKeeper := govkeeper.NewKeeper( - appCodec, keys[govtypes.StoreKey], app.GetSubspace(govtypes.ModuleName), app.accountKeeper, app.bankKeeper, - &stakingKeeper, govRouter, - ) + // Register the proposal types + // Deprecated: Avoid adding new handlers, instead use the new proposal flow + // by granting the governance module the right to execute the message. + // See: https://docs.cosmos.network/main/modules/gov#proposal-messages + govRouter := govv1beta1.NewRouter() + govRouter.AddRoute(govtypes.RouterKey, govv1beta1.ProposalHandler). + AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.paramsKeeper)). // This should be removed. It is still in place to avoid failures of modules that have not yet been upgraded. + AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.upgradeKeeper)). + AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.ibcKeeper.ClientKeeper)) - app.govKeeper = *govKeeper.SetHooks( - govtypes.NewMultiGovHooks( - // register the governance hooks - ), + app.ibcFeeKeeper = ibcfeekeeper.NewKeeper( + app.appCodec, app.GetKey(ibcfeetypes.StoreKey), + app.ibcKeeper.ChannelKeeper, // may be replaced with IBC middleware + app.ibcKeeper.ChannelKeeper, + &app.ibcKeeper.PortKeeper, app.accountKeeper, app.bankKeeper, ) - // Create Transfer Keepers + // Create IBC transfer keeper app.transferKeeper = ibctransferkeeper.NewKeeper( - appCodec, keys[ibctransfertypes.StoreKey], app.GetSubspace(ibctransfertypes.ModuleName), - app.ibcKeeper.ChannelKeeper, app.ibcKeeper.ChannelKeeper, &app.ibcKeeper.PortKeeper, - app.accountKeeper, app.bankKeeper, scopedTransferKeeper, - ) - transferModule := transfer.NewAppModule(app.transferKeeper) - transferIBCModule := transfer.NewIBCModule(app.transferKeeper) - - // Create static IBC router, add transfer route, then set and seal it - ibcRouter := porttypes.NewRouter() - ibcRouter.AddRoute(ibctransfertypes.ModuleName, transferIBCModule) - app.ibcKeeper.SetRouter(ibcRouter) - - // create evidence keeper with router - evidenceKeeper := evidencekeeper.NewKeeper( - appCodec, keys[evidencetypes.StoreKey], &app.stakingKeeper, app.slashingKeeper, - ) - // If evidence needs to be handled for the app, set routes in router here and seal - app.evidenceKeeper = *evidenceKeeper - - // Create Stratos keepers - app.registerKeeper = registerkeeper.NewKeeper( - appCodec, - keys[registertypes.StoreKey], - app.GetSubspace(registertypes.ModuleName), + app.appCodec, + app.GetKey(ibctransfertypes.StoreKey), + app.GetSubspace(ibctransfertypes.ModuleName), + app.ibcKeeper.ChannelKeeper, + app.ibcKeeper.ChannelKeeper, + &app.ibcKeeper.PortKeeper, app.accountKeeper, app.bankKeeper, - app.distrKeeper, + scopedIBCTransferKeeper, ) - app.potKeeper = potkeeper.NewKeeper( - appCodec, - keys[pottypes.StoreKey], - app.GetSubspace(pottypes.ModuleName), - authtypes.FeeCollectorName, - app.bankKeeper, - //app.supplyKeeper, + // Create interchain account keepers + app.icaHostKeeper = icahostkeeper.NewKeeper( + app.appCodec, + app.GetKey(icahosttypes.StoreKey), + app.GetSubspace(icahosttypes.SubModuleName), + app.ibcFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack + app.ibcKeeper.ChannelKeeper, + &app.ibcKeeper.PortKeeper, app.accountKeeper, - app.stakingKeeper, - app.registerKeeper, - app.distrKeeper, + scopedICAHostKeeper, + app.MsgServiceRouter(), ) - - app.sdsKeeper = sdskeeper.NewKeeper( - appCodec, - keys[sdstypes.StoreKey], - app.GetSubspace(sdstypes.ModuleName), - app.bankKeeper, - app.registerKeeper, - app.potKeeper, + app.icaControllerKeeper = icacontrollerkeeper.NewKeeper( + app.appCodec, + app.GetKey(icacontrollertypes.StoreKey), + app.GetSubspace(icacontrollertypes.SubModuleName), + app.ibcFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack + app.ibcKeeper.ChannelKeeper, + &app.ibcKeeper.PortKeeper, + scopedICAControllerKeeper, + app.MsgServiceRouter(), ) - // set PotKeeper to evm module - app.evmKeeper.SetPotKeeper(app.potKeeper) - /**** Module Options ****/ + // Set legacy router for backwards compatibility with gov v1beta1 + app.govKeeper.SetLegacyRouter(govRouter) - // NOTE: we may consider parsing `appOpts` inside module constructors. For the moment - // we prefer to be more strict in what arguments the modules expect. - var skipGenesisInvariants = cast.ToBool(appOpts.Get(crisis.FlagSkipGenesisInvariants)) - - app.mm = module.NewManager( - genutil.NewAppModule(app.accountKeeper, app.stakingKeeper, app.BaseApp.DeliverTx, encodingConfig.TxConfig), - auth.NewAppModule(appCodec, app.accountKeeper, authsims.RandomGenesisAccounts), - vesting.NewAppModule(app.accountKeeper, app.bankKeeper), - bank.NewAppModule(appCodec, app.bankKeeper, app.accountKeeper), - capability.NewAppModule(appCodec, *app.capabilityKeeper), - crisis.NewAppModule(&app.crisisKeeper, skipGenesisInvariants), - gov.NewAppModule(appCodec, app.govKeeper, app.accountKeeper, app.bankKeeper), - mint.NewAppModule(appCodec, app.mintKeeper, app.accountKeeper), - slashing.NewAppModule(appCodec, app.slashingKeeper, app.accountKeeper, app.bankKeeper, app.stakingKeeper), - distr.NewAppModule(appCodec, app.distrKeeper, app.accountKeeper, app.bankKeeper, app.stakingKeeper), - staking.NewAppModule(appCodec, app.stakingKeeper, app.accountKeeper, app.bankKeeper), - upgrade.NewAppModule(app.upgradeKeeper), - evidence.NewAppModule(app.evidenceKeeper), - params.NewAppModule(app.paramsKeeper), - feegrantmodule.NewAppModule(appCodec, app.accountKeeper, app.bankKeeper, app.feeGrantKeeper, app.interfaceRegistry), - authzmodule.NewAppModule(appCodec, app.authzKeeper, app.accountKeeper, app.bankKeeper, app.interfaceRegistry), - // ibc modules - ibc.NewAppModule(app.ibcKeeper), - transferModule, + // Create IBC modules with ibcfee middleware + transferIBCModule := ibcfee.NewIBCMiddleware(ibctransfer.NewIBCModule(app.transferKeeper), app.ibcFeeKeeper) - // Stratos app modules - evm.NewAppModule(app.evmKeeper, app.accountKeeper), - register.NewAppModule(app.registerKeeper, app.accountKeeper, app.bankKeeper), - pot.NewAppModule(app.potKeeper, app.bankKeeper, app.accountKeeper, app.stakingKeeper, app.registerKeeper), - sds.NewAppModule(app.sdsKeeper, app.bankKeeper, app.registerKeeper, app.potKeeper), + // integration point for custom authentication modules + // see https://medium.com/the-interchain-foundation/ibc-go-v6-changes-to-interchain-accounts-and-how-it-impacts-your-chain-806c185300d7 + // TODO: Once a public ICA auth module is released, replace nil with the module + var noAuthzModule porttypes.IBCModule + icaControllerIBCModule := ibcfee.NewIBCMiddleware( + icacontroller.NewIBCMiddleware(noAuthzModule, app.icaControllerKeeper), + app.ibcFeeKeeper, ) - // During begin block slashing happens after distr.BeginBlocker so that - // there is nothing left over in the validator fee pool, so as to keep the - // CanWithdrawInvariant invariant. - // NOTE: upgrade module must go first to handle software upgrades. - // NOTE: staking module is required if HistoricalEntries param > 0. - // NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC) - app.mm.SetOrderBeginBlockers( - upgradetypes.ModuleName, - capabilitytypes.ModuleName, - evmtypes.ModuleName, - minttypes.ModuleName, - distrtypes.ModuleName, - slashingtypes.ModuleName, - evidencetypes.ModuleName, - stakingtypes.ModuleName, - ibchost.ModuleName, - // no-op modules - ibctransfertypes.ModuleName, - authtypes.ModuleName, - banktypes.ModuleName, - govtypes.ModuleName, - crisistypes.ModuleName, - genutiltypes.ModuleName, - authz.ModuleName, - feegrant.ModuleName, - paramstypes.ModuleName, - vestingtypes.ModuleName, - // stratos - registertypes.ModuleName, - pottypes.ModuleName, - sdstypes.ModuleName, - ) + icaHostIBCModule := ibcfee.NewIBCMiddleware(icahost.NewIBCModule(app.icaHostKeeper), app.ibcFeeKeeper) - // NOTE: fee market module must go last in order to retrieve the block gas used. - app.mm.SetOrderEndBlockers( - crisistypes.ModuleName, - govtypes.ModuleName, - stakingtypes.ModuleName, - registertypes.ModuleName, - sdstypes.ModuleName, - evmtypes.ModuleName, - // no-op modules - ibchost.ModuleName, - ibctransfertypes.ModuleName, - capabilitytypes.ModuleName, - authtypes.ModuleName, - banktypes.ModuleName, - distrtypes.ModuleName, - slashingtypes.ModuleName, - minttypes.ModuleName, - genutiltypes.ModuleName, - evidencetypes.ModuleName, - authz.ModuleName, - feegrant.ModuleName, - pottypes.ModuleName, - paramstypes.ModuleName, - upgradetypes.ModuleName, - vestingtypes.ModuleName, - ) + // Create static IBC router, add transfer route, then set and seal it + ibcRouter := porttypes.NewRouter(). + AddRoute(ibctransfertypes.ModuleName, transferIBCModule). + AddRoute(icacontrollertypes.SubModuleName, icaControllerIBCModule). + AddRoute(icahosttypes.SubModuleName, icaHostIBCModule) - // NOTE: The genutils module must occur after staking so that pools are - // properly initialized with tokens from genesis accounts. - // NOTE: Capability module must occur first so that it can initialize any capabilities - // so that other modules that want to create or claim capabilities afterwards in InitChain - // can do so safely. - app.mm.SetOrderInitGenesis( - // SDK modules - capabilitytypes.ModuleName, - authtypes.ModuleName, - banktypes.ModuleName, - distrtypes.ModuleName, - stakingtypes.ModuleName, - slashingtypes.ModuleName, - govtypes.ModuleName, - minttypes.ModuleName, - ibchost.ModuleName, - genutiltypes.ModuleName, - evidencetypes.ModuleName, - ibctransfertypes.ModuleName, - authz.ModuleName, - feegrant.ModuleName, - paramstypes.ModuleName, - upgradetypes.ModuleName, - vestingtypes.ModuleName, - // Stratos modules - registertypes.ModuleName, - pottypes.ModuleName, - sdstypes.ModuleName, - evmtypes.ModuleName, - - // NOTE: crisis module must go at the end to check for invariants on each module - crisistypes.ModuleName, - ) + app.ibcKeeper.SetRouter(ibcRouter) - app.mm.RegisterInvariants(&app.crisisKeeper) - app.mm.RegisterRoutes(app.Router(), app.QueryRouter(), encodingConfig.Amino) - app.configurator = module.NewConfigurator(app.appCodec, app.MsgServiceRouter(), app.GRPCQueryRouter()) - app.mm.RegisterServices(app.configurator) + // NOTE: Any module instantiated in the module manager that is later modified + // must be passed by reference here. + legacyModules := []module.AppModule{ + ibc.NewAppModule(app.ibcKeeper), + ibctransfer.NewAppModule(app.transferKeeper), + ibcfee.NewAppModule(app.ibcFeeKeeper), + ica.NewAppModule(&app.icaControllerKeeper, &app.icaHostKeeper), + } - // create the simulation manager and define the order of the modules for deterministic simulations + if err := app.RegisterModules(legacyModules...); err != nil { + panic(err) + } + // create the simulation manager and define the order of the modules for deterministic simulations + // // NOTE: this is not required apps that don't use the simulator for fuzz testing // transactions - app.sm = module.NewSimulationManager( - auth.NewAppModule(appCodec, app.accountKeeper, RandomGenesisAccounts), - bank.NewAppModule(appCodec, app.bankKeeper, app.accountKeeper), - capability.NewAppModule(appCodec, *app.capabilityKeeper), - gov.NewAppModule(appCodec, app.govKeeper, app.accountKeeper, app.bankKeeper), - mint.NewAppModule(appCodec, app.mintKeeper, app.accountKeeper), - staking.NewAppModule(appCodec, app.stakingKeeper, app.accountKeeper, app.bankKeeper), - distr.NewAppModule(appCodec, app.distrKeeper, app.accountKeeper, app.bankKeeper, app.stakingKeeper), - slashing.NewAppModule(appCodec, app.slashingKeeper, app.accountKeeper, app.bankKeeper, app.stakingKeeper), - params.NewAppModule(app.paramsKeeper), - evidence.NewAppModule(app.evidenceKeeper), - feegrantmodule.NewAppModule(appCodec, app.accountKeeper, app.bankKeeper, app.feeGrantKeeper, app.interfaceRegistry), - authzmodule.NewAppModule(appCodec, app.authzKeeper, app.accountKeeper, app.bankKeeper, app.interfaceRegistry), - ibc.NewAppModule(app.ibcKeeper), - transferModule, - evm.NewAppModule(app.evmKeeper, app.accountKeeper), - ) + overrideModules := map[string]module.AppModuleSimulation{ + authtypes.ModuleName: auth.NewAppModule(app.appCodec, app.accountKeeper, authsims.RandomGenesisAccounts, app.GetSubspace(authtypes.ModuleName)), + } + + // NOTE: Simulation manager, invariants and upgrade handlers must be after all the modules are registered + app.sm = module.NewSimulationManagerFromAppModules(app.ModuleManager.Modules, overrideModules) app.sm.RegisterStoreDecoders() + app.ModuleManager.RegisterInvariants(app.crisisKeeper) + app.registerUpgradeHandlers() - // initialize stores - app.MountKVStores(keys) - app.MountTransientStores(tKeys) - app.MountMemoryStores(memKeys) + // register additional types + ibctm.AppModuleBasic{}.RegisterInterfaces(app.interfaceRegistry) + solomachine.AppModuleBasic{}.RegisterInterfaces(app.interfaceRegistry) - // initialize BaseApp - app.SetInitChainer(app.InitChainer) - app.SetBeginBlocker(app.BeginBlocker) + app.ScopedIBCKeeper = scopedIBCKeeper + app.ScopedIBCTransferKeeper = scopedIBCTransferKeeper + app.ScopedICAHostKeeper = scopedICAHostKeeper + app.ScopedICAControllerKeeper = scopedICAControllerKeeper // custom AnteHandler - maxGasWanted := cast.ToUint64(appOpts.Get(srvflags.EVMMaxTxGasWanted)) + maxEthTxGasWanted := cast.ToUint64(appOpts.Get(srvflags.EVMMaxTxGasWanted)) options := ante.HandlerOptions{ - AccountKeeper: app.accountKeeper, - BankKeeper: app.bankKeeper, - EvmKeeper: app.evmKeeper, - FeegrantKeeper: app.feeGrantKeeper, - IBCKeeper: app.ibcKeeper, - SignModeHandler: encodingConfig.TxConfig.SignModeHandler(), - SigGasConsumer: ante.DefaultSigVerificationGasConsumer, - MaxTxGasWanted: maxGasWanted, + AccountKeeper: app.accountKeeper, + BankKeeper: app.bankKeeper, + EvmKeeper: app.evmKeeper, + FeegrantKeeper: app.feeGrantKeeper, + IBCKeeper: app.ibcKeeper, + SignModeHandler: app.txConfig.SignModeHandler(), + SigGasConsumer: ante.DefaultSigVerificationGasConsumer, + MaxEthTxGasWanted: maxEthTxGasWanted, } - if err := options.Validate(); err != nil { panic(err) } - app.SetAnteHandler(ante.NewAnteHandler(options)) - app.SetEndBlocker(app.EndBlocker) - if loadLatest { - if err := app.LoadLatestVersion(); err != nil { - tmos.Exit(err.Error()) - } + // In v0.46, the SDK introduces _postHandlers_. PostHandlers are like + // antehandlers, but are run _after_ the `runMsgs` execution. They are also + // defined as a chain, and have the same signature as antehandlers. + // + // In baseapp, postHandlers are run in the same store branch as `runMsgs`, + // meaning that both `runMsgs` and `postHandler` state will be committed if + // both are successful, and both will be reverted if any of the two fails. + // + // The SDK exposes a default postHandlers chain, which comprises of only + // one decorator: the Transaction Tips decorator. However, some chains do + // not need it by default, so feel free to comment the next line if you do + // not need tips. + // To read more about tips: + // https://docs.cosmos.network/main/core/tips.html + // + // Please note that changing any of the anteHandler or postHandler chain is + // likely to be a state-machine breaking change, which needs a coordinated + // upgrade. + postHandler, err := NewPostHandler() + if err != nil { + panic(err) } - - app.ScopedIBCKeeper = scopedIBCKeeper - app.ScopedTransferKeeper = scopedTransferKeeper - - return app -} - -func (app *NewApp) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { - var genesisState simapp.GenesisState - if err := json.Unmarshal(req.AppStateBytes, &genesisState); err != nil { + app.SetPostHandler(postHandler) + + // A custom InitChainer can be set if extra pre-init-genesis logic is required. + // By default, when using app wiring enabled module, this is not required. + // For instance, the upgrade module will set automatically the module version map in its init genesis thanks to app wiring. + // However, when registering a module manually (i.e. that does not support app wiring), the module version map + // must be set manually as follow. The upgrade module will de-duplicate the module version map. + app.SetInitChainer(func(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { + app.upgradeKeeper.SetModuleVersionMap(ctx, app.ModuleManager.GetVersionMap()) + return app.App.InitChainer(ctx, req) + }) + + if err = app.Load(loadLatest); err != nil { panic(err) } - app.upgradeKeeper.SetModuleVersionMap(ctx, app.mm.GetVersionMap()) - return app.mm.InitGenesis(ctx, app.appCodec, genesisState) -} -func (app *NewApp) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock { - return app.mm.BeginBlock(ctx, req) + return app } -func (app *NewApp) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock { - //todo: this is hotfix for voting power overflow of tendermint. - if ctx.BlockHeight() >= 16601 { - sdk.DefaultPowerReduction = sdk.NewIntFromUint64(1_000_000_000_000) - } - - //todo: NOTE: fix the validator power store issue with mainnet launch - if ctx.BlockHeight() == 95000 { - err := app.stakingKeeper.FixValidatorByPowerIndexRecords(ctx) - if err != nil { - app.Logger().Error("An error occurred while fixing the ValidatorRecords", "ErrMsg", err.Error()) - } - } - return app.mm.EndBlock(ctx, req) -} +// Name returns the name of the App +func (app *StratosApp) Name() string { return app.BaseApp.Name() } -func (app *NewApp) LoadHeight(height int64) error { - return app.LoadVersion(height) +// SimulationManager implements the SimulationApp interface +func (app *StratosApp) SimulationManager() *module.SimulationManager { + return app.sm } -// ModuleAccountAddrs returns all the app's module account addresses. -func (app *NewApp) ModuleAccountAddrs() map[string]bool { - modAccAddrs := make(map[string]bool) - for acc := range maccPerms { - modAccAddrs[authtypes.NewModuleAddress(acc).String()] = true +// RegisterAPIRoutes registers all application module routes with the provided +// API server. +func (app *StratosApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) { + app.App.RegisterAPIRoutes(apiSvr, apiConfig) + // register swagger API in app.go so that other applications can override easily + if err := server.RegisterSwaggerAPI(apiSvr.ClientCtx, apiSvr.Router, apiConfig.Swagger); err != nil { + panic(err) } - - return modAccAddrs } -// BlockedAddrs returns all the app's module account addresses that are not -// allowed to receive external tokens. -func (app *NewApp) BlockedAddrs() map[string]bool { - blockedAddrs := make(map[string]bool) - for acc := range maccPerms { - blockedAddrs[authtypes.NewModuleAddress(acc).String()] = !allowedReceivingModAcc[acc] - } - - return blockedAddrs +// LegacyAmino returns StratosApp's amino codec. +// +// NOTE: This is solely to be used for testing purposes as it may be desirable +// for modules to register their own custom testing types. +func (app *StratosApp) LegacyAmino() *codec.LegacyAmino { + return app.legacyAmino } -func (app *NewApp) AppCodec() codec.Codec { +// AppCodec returns StratosApp's app codec. +// +// NOTE: This is solely to be used for testing purposes as it may be desirable +// for modules to register their own custom testing types. +func (app *StratosApp) AppCodec() codec.Codec { return app.appCodec } -func (app *NewApp) SimulationManager() *module.SimulationManager { - return app.sm -} - -func GetMaccPerms() map[string][]string { - modAccPerms := make(map[string][]string) - for k, v := range maccPerms { - modAccPerms[k] = v - } - return modAccPerms -} - // GetSubspace returns a param subspace for a given module name. // // NOTE: This is solely to be used for testing purposes. -func (app *NewApp) GetSubspace(moduleName string) paramstypes.Subspace { +func (app *StratosApp) GetSubspace(moduleName string) paramstypes.Subspace { subspace, _ := app.paramsKeeper.GetSubspace(moduleName) return subspace } -func (app *NewApp) LegacyAmino() *codec.LegacyAmino { - return app.cdc -} - -func (app *NewApp) RegisterTxService(clientCtx client.Context) { - authtx.RegisterTxService(app.BaseApp.GRPCQueryRouter(), clientCtx, app.BaseApp.Simulate, app.interfaceRegistry) -} - -func (app *NewApp) RegisterTendermintService(clientCtx client.Context) { - tmservice.RegisterTendermintService(app.BaseApp.GRPCQueryRouter(), clientCtx, app.interfaceRegistry) +// GetKey returns the KVStoreKey for the provided store key. +// +// NOTE: This is solely to be used for testing purposes. +func (app *StratosApp) GetKey(storeKey string) *storetypes.KVStoreKey { + sk := app.UnsafeFindStoreKey(storeKey) + kvStoreKey, ok := sk.(*storetypes.KVStoreKey) + if !ok { + return nil + } + return kvStoreKey } -// RegisterAPIRoutes registers all application module routes with the provided -// API server. -func (app *NewApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.APIConfig) { - clientCtx := apiSvr.ClientCtx - rpc.RegisterRoutes(clientCtx, apiSvr.Router) - - evmrest.RegisterTxRoutes(clientCtx, apiSvr.Router) - - // Register new tx routes from grpc-gateway. - authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - // Register new tendermint queries routes from grpc-gateway. - tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // Register legacy and grpc-gateway routes for all modules. - ModuleBasics.RegisterRESTRoutes(clientCtx, apiSvr.Router) - ModuleBasics.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) - - // register swagger API from root so that other applications can override easily - if apiConfig.Swagger { - RegisterSwaggerAPI(clientCtx, apiSvr.Router) +// kvStoreKeys returns all the kv store keys registered inside StratosApp +func (app *StratosApp) kvStoreKeys() map[string]*storetypes.KVStoreKey { + keys := make(map[string]*storetypes.KVStoreKey) + for _, k := range app.GetStoreKeys() { + if kv, ok := k.(*storetypes.KVStoreKey); ok { + keys[kv.Name()] = kv + } } + + return keys } -func (app *NewApp) GetAccountKeeper() authkeeper.AccountKeeper { +func (app *StratosApp) GetAccountKeeper() authkeeper.AccountKeeper { return app.accountKeeper } -func (app *NewApp) GetBankKeeper() bankkeeper.Keeper { +func (app *StratosApp) GetBankKeeper() bankkeeper.Keeper { return app.bankKeeper } -func (app *NewApp) GetStakingKeeper() stakingkeeper.Keeper { +func (app *StratosApp) GetStakingKeeper() *stakingkeeper.Keeper { return app.stakingKeeper } -func (app *NewApp) GetRegisterKeeper() registerkeeper.Keeper { +func (app *StratosApp) GetRegisterKeeper() registerkeeper.Keeper { return app.registerKeeper } -func (app *NewApp) GetPotKeeper() potkeeper.Keeper { +func (app *StratosApp) GetPotKeeper() potkeeper.Keeper { return app.potKeeper } -func (app *NewApp) GetDistrKeeper() distrkeeper.Keeper { +func (app *StratosApp) GetDistrKeeper() distrkeeper.Keeper { return app.distrKeeper } - -func (app *NewApp) GetEVMKeeper() *evmkeeper.Keeper { +func (app *StratosApp) GetEVMKeeper() *evmkeeper.Keeper { return app.evmKeeper } -// RegisterSwaggerAPI registers swagger route with API Server -func RegisterSwaggerAPI(_ client.Context, rtr *mux.Router) { - statikFS, err := fs.New() - if err != nil { - panic(err) - } - - staticServer := http.FileServer(statikFS) - rtr.PathPrefix("/swagger/").Handler(http.StripPrefix("/swagger/", staticServer)) -} - -// initParamsKeeper init params keeper and its subspaces -func initParamsKeeper( - appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino, key, tkey sdk.StoreKey) paramskeeper.Keeper { - paramsKeeper := paramskeeper.NewKeeper(appCodec, legacyAmino, key, tkey) - - // SDK subspaces - paramsKeeper.Subspace(authtypes.ModuleName) - paramsKeeper.Subspace(banktypes.ModuleName) - paramsKeeper.Subspace(stakingtypes.ModuleName) - paramsKeeper.Subspace(minttypes.ModuleName) - paramsKeeper.Subspace(distrtypes.ModuleName) - paramsKeeper.Subspace(slashingtypes.ModuleName) - paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govtypes.ParamKeyTable()) - paramsKeeper.Subspace(crisistypes.ModuleName) - // ibc subspaces - paramsKeeper.Subspace(ibctransfertypes.ModuleName) - paramsKeeper.Subspace(ibchost.ModuleName) - // stratos subspaces - paramsKeeper.Subspace(registertypes.ModuleName) - paramsKeeper.Subspace(pottypes.ModuleName) - paramsKeeper.Subspace(sdstypes.ModuleName) - paramsKeeper.Subspace(evmtypes.ModuleName) - - return paramsKeeper +// TxConfig returns StratosApp's txConfig +func (app *StratosApp) TxConfig() client.TxConfig { + return app.txConfig } diff --git a/app/app_config.go b/app/app_config.go new file mode 100644 index 00000000..e7fd2592 --- /dev/null +++ b/app/app_config.go @@ -0,0 +1,302 @@ +package app + +import ( + "os" + + ica "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts" + icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types" + ibcfee "github.com/cosmos/ibc-go/v7/modules/apps/29-fee" + ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" + ibctransfer "github.com/cosmos/ibc-go/v7/modules/apps/transfer" + ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + ibc "github.com/cosmos/ibc-go/v7/modules/core" + ibcclientclient "github.com/cosmos/ibc-go/v7/modules/core/02-client/client" + ibcexported "github.com/cosmos/ibc-go/v7/modules/core/exported" + solomachine "github.com/cosmos/ibc-go/v7/modules/light-clients/06-solomachine" + ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" + + authmodulev1 "cosmossdk.io/api/cosmos/auth/module/v1" + "github.com/cosmos/cosmos-sdk/types/module" + "github.com/cosmos/cosmos-sdk/version" + "github.com/cosmos/cosmos-sdk/x/auth" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + "github.com/cosmos/cosmos-sdk/x/auth/vesting" + vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" + "github.com/cosmos/cosmos-sdk/x/authz" + authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" + "github.com/cosmos/cosmos-sdk/x/bank" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/cosmos/cosmos-sdk/x/capability" + capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + "github.com/cosmos/cosmos-sdk/x/consensus" + consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" + "github.com/cosmos/cosmos-sdk/x/crisis" + crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" + distr "github.com/cosmos/cosmos-sdk/x/distribution" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + "github.com/cosmos/cosmos-sdk/x/evidence" + evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" + "github.com/cosmos/cosmos-sdk/x/feegrant" + feegrantmodule "github.com/cosmos/cosmos-sdk/x/feegrant/module" + "github.com/cosmos/cosmos-sdk/x/genutil" + genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" + "github.com/cosmos/cosmos-sdk/x/gov" + govclient "github.com/cosmos/cosmos-sdk/x/gov/client" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + "github.com/cosmos/cosmos-sdk/x/mint" + minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + "github.com/cosmos/cosmos-sdk/x/params" + paramsclient "github.com/cosmos/cosmos-sdk/x/params/client" + paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" + "github.com/cosmos/cosmos-sdk/x/slashing" + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + "github.com/cosmos/cosmos-sdk/x/staking" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + "github.com/cosmos/cosmos-sdk/x/upgrade" + upgradeclient "github.com/cosmos/cosmos-sdk/x/upgrade/client" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + + "github.com/stratosnet/stratos-chain/x/evm" + evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" + "github.com/stratosnet/stratos-chain/x/pot" + pottypes "github.com/stratosnet/stratos-chain/x/pot/types" + "github.com/stratosnet/stratos-chain/x/register" + registertypes "github.com/stratosnet/stratos-chain/x/register/types" + "github.com/stratosnet/stratos-chain/x/sds" + sdstypes "github.com/stratosnet/stratos-chain/x/sds/types" +) + +const ( + appName = "stchain" +) + +var ( + // DefaultNodeHome sets the folder where the application data and configuration will be stored + DefaultNodeHome = os.ExpandEnv("$HOME/.stchaind") + + // ModuleBasics is in charge of setting up basic module elements + ModuleBasics = module.NewBasicManager( + auth.AppModuleBasic{}, + genutil.NewAppModuleBasic(genutiltypes.DefaultMessageValidator), + bank.AppModuleBasic{}, + capability.AppModuleBasic{}, + staking.AppModuleBasic{}, + mint.AppModuleBasic{}, + distr.AppModuleBasic{}, + gov.NewAppModuleBasic( + []govclient.ProposalHandler{ + paramsclient.ProposalHandler, + upgradeclient.LegacyProposalHandler, + upgradeclient.LegacyCancelProposalHandler, + ibcclientclient.UpdateClientProposalHandler, + ibcclientclient.UpgradeProposalHandler, + }, + ), + params.AppModuleBasic{}, + crisis.AppModuleBasic{}, + slashing.AppModuleBasic{}, + feegrantmodule.AppModuleBasic{}, + upgrade.AppModuleBasic{}, + evidence.AppModuleBasic{}, + authzmodule.AppModuleBasic{}, + vesting.AppModuleBasic{}, + consensus.AppModuleBasic{}, + + // IBC modules + ibc.AppModuleBasic{}, + solomachine.AppModuleBasic{}, + ibctm.AppModuleBasic{}, + ibctransfer.AppModuleBasic{}, + ibcfee.AppModuleBasic{}, + ica.AppModuleBasic{}, + + // Stratos modules + register.AppModuleBasic{}, + pot.AppModuleBasic{}, + sds.AppModuleBasic{}, + evm.AppModuleBasic{}, + ) + + maccPerms = []*authmodulev1.ModuleAccountPermission{ + {Account: authtypes.FeeCollectorName}, + {Account: distrtypes.ModuleName, Permissions: []string{authtypes.Burner}}, + {Account: minttypes.ModuleName, Permissions: []string{authtypes.Minter}}, + {Account: stakingtypes.BondedPoolName, Permissions: []string{authtypes.Burner, authtypes.Staking}}, + {Account: stakingtypes.NotBondedPoolName, Permissions: []string{authtypes.Burner, authtypes.Staking}}, + {Account: govtypes.ModuleName, Permissions: []string{authtypes.Burner}}, + {Account: ibctransfertypes.ModuleName, Permissions: []string{authtypes.Minter, authtypes.Burner}}, + {Account: ibcfeetypes.ModuleName}, + {Account: icatypes.ModuleName}, + + {Account: registertypes.ModuleName, Permissions: []string{authtypes.Minter, authtypes.Burner}}, + {Account: registertypes.ResourceNodeBondedPool, Permissions: []string{authtypes.Minter}}, + {Account: registertypes.ResourceNodeNotBondedPool, Permissions: []string{authtypes.Minter}}, + {Account: registertypes.MetaNodeBondedPool, Permissions: []string{authtypes.Minter}}, + {Account: registertypes.MetaNodeNotBondedPool, Permissions: []string{authtypes.Minter}}, + {Account: registertypes.TotalUnissuedPrepay, Permissions: []string{authtypes.Minter}}, + + {Account: pottypes.ModuleName, Permissions: []string{authtypes.Minter}}, + {Account: pottypes.FoundationAccount, Permissions: []string{authtypes.Minter, authtypes.Burner}}, + {Account: pottypes.TotalRewardPool}, + + {Account: sdstypes.ModuleName}, + {Account: evmtypes.ModuleName, Permissions: []string{authtypes.Minter, authtypes.Burner}}, + } + + // During begin block slashing happens after distr.BeginBlocker so that + // there is nothing left over in the validator fee pool, so as to keep the + // CanWithdrawInvariant invariant. + // NOTE: upgrade module must go first to handle software upgrades. + // NOTE: staking module is required if HistoricalEntries param > 0. + // NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC) + beginBlockerOrder = []string{ + upgradetypes.ModuleName, + capabilitytypes.ModuleName, + evmtypes.ModuleName, + minttypes.ModuleName, + distrtypes.ModuleName, + slashingtypes.ModuleName, + evidencetypes.ModuleName, + stakingtypes.ModuleName, + authtypes.ModuleName, + banktypes.ModuleName, + govtypes.ModuleName, + crisistypes.ModuleName, + genutiltypes.ModuleName, + authz.ModuleName, + feegrant.ModuleName, + paramstypes.ModuleName, + vestingtypes.ModuleName, + consensusparamtypes.ModuleName, + + // IBC modules + ibcexported.ModuleName, + ibctransfertypes.ModuleName, + ibcfeetypes.ModuleName, + icatypes.ModuleName, + + // Stratos modules + registertypes.ModuleName, + pottypes.ModuleName, + sdstypes.ModuleName, + } + + endBlockerOrder = []string{ + crisistypes.ModuleName, + govtypes.ModuleName, + stakingtypes.ModuleName, + registertypes.ModuleName, + sdstypes.ModuleName, + evmtypes.ModuleName, + capabilitytypes.ModuleName, + authtypes.ModuleName, + banktypes.ModuleName, + distrtypes.ModuleName, + slashingtypes.ModuleName, + minttypes.ModuleName, + genutiltypes.ModuleName, + evidencetypes.ModuleName, + authz.ModuleName, + feegrant.ModuleName, + pottypes.ModuleName, + paramstypes.ModuleName, + upgradetypes.ModuleName, + vestingtypes.ModuleName, + consensusparamtypes.ModuleName, + + // IBC modules + ibcexported.ModuleName, + ibctransfertypes.ModuleName, + ibcfeetypes.ModuleName, + icatypes.ModuleName, + } + + // NOTE: The genutils module must occur after staking so that pools are + // properly initialized with tokens from genesis accounts. + // NOTE: The genutils module must also occur after auth so that it can access the params from auth. + // NOTE: Capability module must occur first so that it can initialize any capabilities + // so that other modules that want to create or claim capabilities afterwards in InitChain + // can do so safely. + genesisModuleOrder = []string{ + capabilitytypes.ModuleName, + authtypes.ModuleName, + banktypes.ModuleName, + distrtypes.ModuleName, + stakingtypes.ModuleName, + slashingtypes.ModuleName, + govtypes.ModuleName, + minttypes.ModuleName, + genutiltypes.ModuleName, + evidencetypes.ModuleName, + authz.ModuleName, + feegrant.ModuleName, + paramstypes.ModuleName, + upgradetypes.ModuleName, + vestingtypes.ModuleName, + consensusparamtypes.ModuleName, + + // IBC modules + ibcexported.ModuleName, + ibctransfertypes.ModuleName, + ibcfeetypes.ModuleName, + icatypes.ModuleName, + + // Stratos modules + registertypes.ModuleName, + pottypes.ModuleName, + sdstypes.ModuleName, + evmtypes.ModuleName, + + // NOTE: crisis module must go at the end to check for invariants on each module + crisistypes.ModuleName, + } + + // NOTE: The auth module must occur before everyone else. All other modules can be sorted + // alphabetically (default order) + // NOTE: The relationships module must occur before the profiles module, or all relationships will be deleted + migrationModuleOrder = []string{ + authtypes.ModuleName, + authz.ModuleName, + banktypes.ModuleName, + capabilitytypes.ModuleName, + distrtypes.ModuleName, + evidencetypes.ModuleName, + feegrant.ModuleName, + genutiltypes.ModuleName, + govtypes.ModuleName, + minttypes.ModuleName, + slashingtypes.ModuleName, + stakingtypes.ModuleName, + paramstypes.ModuleName, + upgradetypes.ModuleName, + vestingtypes.ModuleName, + consensusparamtypes.ModuleName, + + // IBC modules + ibcexported.ModuleName, + ibctransfertypes.ModuleName, + ibcfeetypes.ModuleName, + icatypes.ModuleName, + + // Stratos modules + registertypes.ModuleName, + pottypes.ModuleName, + sdstypes.ModuleName, + evmtypes.ModuleName, + + crisistypes.ModuleName, + } +) + +func init() { + version.AppName = appName + "d" +} + +// GetMaccPerms returns a copy of the module account permissions +func GetMaccPerms() map[string][]string { + dupMaccPerms := make(map[string][]string) + for _, perms := range maccPerms { + dupMaccPerms[perms.Account] = perms.Permissions + } + return dupMaccPerms +} diff --git a/app/app_module_config.go b/app/app_module_config.go new file mode 100644 index 00000000..7c80d648 --- /dev/null +++ b/app/app_module_config.go @@ -0,0 +1,218 @@ +package app + +import ( + icatypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/types" + ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" + ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + + runtimev1alpha1 "cosmossdk.io/api/cosmos/app/runtime/v1alpha1" + appv1alpha1 "cosmossdk.io/api/cosmos/app/v1alpha1" + authmodulev1 "cosmossdk.io/api/cosmos/auth/module/v1" + authzmodulev1 "cosmossdk.io/api/cosmos/authz/module/v1" + bankmodulev1 "cosmossdk.io/api/cosmos/bank/module/v1" + capabilitymodulev1 "cosmossdk.io/api/cosmos/capability/module/v1" + consensusmodulev1 "cosmossdk.io/api/cosmos/consensus/module/v1" + crisismodulev1 "cosmossdk.io/api/cosmos/crisis/module/v1" + distrmodulev1 "cosmossdk.io/api/cosmos/distribution/module/v1" + evidencemodulev1 "cosmossdk.io/api/cosmos/evidence/module/v1" + feegrantmodulev1 "cosmossdk.io/api/cosmos/feegrant/module/v1" + genutilmodulev1 "cosmossdk.io/api/cosmos/genutil/module/v1" + govmodulev1 "cosmossdk.io/api/cosmos/gov/module/v1" + mintmodulev1 "cosmossdk.io/api/cosmos/mint/module/v1" + paramsmodulev1 "cosmossdk.io/api/cosmos/params/module/v1" + slashingmodulev1 "cosmossdk.io/api/cosmos/slashing/module/v1" + stakingmodulev1 "cosmossdk.io/api/cosmos/staking/module/v1" + txconfigv1 "cosmossdk.io/api/cosmos/tx/config/v1" + upgrademodulev1 "cosmossdk.io/api/cosmos/upgrade/module/v1" + vestingmodulev1 "cosmossdk.io/api/cosmos/vesting/module/v1" + sdkappconfig "cosmossdk.io/core/appconfig" + + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" + "github.com/cosmos/cosmos-sdk/x/authz" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" + consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" + crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + evidencetypes "github.com/cosmos/cosmos-sdk/x/evidence/types" + "github.com/cosmos/cosmos-sdk/x/feegrant" + genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + + evmmodulev1 "github.com/stratosnet/stratos-chain/api/stratos/evm/module/v1" + potmodulev1 "github.com/stratosnet/stratos-chain/api/stratos/pot/module/v1" + registermodulev1 "github.com/stratosnet/stratos-chain/api/stratos/register/module/v1" + sdsmodulev1 "github.com/stratosnet/stratos-chain/api/stratos/sds/module/v1" + stratos "github.com/stratosnet/stratos-chain/types" + evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" + pottypes "github.com/stratosnet/stratos-chain/x/pot/types" + registertypes "github.com/stratosnet/stratos-chain/x/register/types" + sdstypes "github.com/stratosnet/stratos-chain/x/sds/types" +) + +var ( + // blocked account addresses + blockAccAddrs = []string{ + govtypes.ModuleName, + minttypes.ModuleName, + stakingtypes.BondedPoolName, + stakingtypes.NotBondedPoolName, + ibctransfertypes.ModuleName, + ibcfeetypes.ModuleName, + icatypes.ModuleName, + registertypes.ModuleName, + registertypes.ResourceNodeBondedPool, + registertypes.ResourceNodeNotBondedPool, + registertypes.MetaNodeBondedPool, + registertypes.MetaNodeNotBondedPool, + registertypes.TotalUnissuedPrepay, + pottypes.ModuleName, + pottypes.FoundationAccount, + pottypes.TotalRewardPool, + sdstypes.ModuleName, + evmtypes.ModuleName, + + // We allow the following module accounts to receive funds: + // distrtypes.ModuleName + // authtypes.FeeCollectorName + } + + // application configuration (used by depinject) + StratosAppConfig = sdkappconfig.Compose(&appv1alpha1.Config{ + Modules: []*appv1alpha1.ModuleConfig{ + // SDK modules + { + Name: "runtime", + Config: sdkappconfig.WrapAny(&runtimev1alpha1.Module{ + AppName: appName, + // During begin block slashing happens after distr.BeginBlocker so that + // there is nothing left over in the validator fee pool, so as to keep the + // CanWithdrawInvariant invariant. + // NOTE: staking module is required if HistoricalEntries param > 0 + // NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC) + BeginBlockers: beginBlockerOrder, + EndBlockers: endBlockerOrder, + OverrideStoreKeys: []*runtimev1alpha1.StoreKeyConfig{ + { + ModuleName: authtypes.ModuleName, + KvStoreKey: "acc", + }, + }, + InitGenesis: genesisModuleOrder, + // When ExportGenesis is not specified, the export genesis module order + // is equal to the init genesis order + // ExportGenesis: genesisModuleOrder, + // Uncomment if you want to set a custom migration order here. + // OrderMigrations: nil, + OrderMigrations: migrationModuleOrder, + }), + }, + { + Name: authtypes.ModuleName, + Config: sdkappconfig.WrapAny(&authmodulev1.Module{ + Bech32Prefix: stratos.AccountAddressPrefix, + ModuleAccountPermissions: maccPerms, + // By default, modules authority is the governance module. This is configurable with the following: + // Authority: "group", // A custom module authority can be set using a module name + // Authority: "cosmos1cwwv22j5ca08ggdv9c2uky355k908694z577tv", // or a specific address + }), + }, + { + Name: vestingtypes.ModuleName, + Config: sdkappconfig.WrapAny(&vestingmodulev1.Module{}), + }, + { + Name: banktypes.ModuleName, + Config: sdkappconfig.WrapAny(&bankmodulev1.Module{ + BlockedModuleAccountsOverride: blockAccAddrs, + }), + }, + { + Name: stakingtypes.ModuleName, + Config: sdkappconfig.WrapAny(&stakingmodulev1.Module{}), + }, + { + Name: slashingtypes.ModuleName, + Config: sdkappconfig.WrapAny(&slashingmodulev1.Module{}), + }, + { + Name: paramstypes.ModuleName, + Config: sdkappconfig.WrapAny(¶msmodulev1.Module{}), + }, + { + Name: "tx", + Config: sdkappconfig.WrapAny(&txconfigv1.Config{}), + }, + { + Name: genutiltypes.ModuleName, + Config: sdkappconfig.WrapAny(&genutilmodulev1.Module{}), + }, + { + Name: authz.ModuleName, + Config: sdkappconfig.WrapAny(&authzmodulev1.Module{}), + }, + { + Name: upgradetypes.ModuleName, + Config: sdkappconfig.WrapAny(&upgrademodulev1.Module{}), + }, + { + Name: distrtypes.ModuleName, + Config: sdkappconfig.WrapAny(&distrmodulev1.Module{}), + }, + { + Name: capabilitytypes.ModuleName, + Config: sdkappconfig.WrapAny(&capabilitymodulev1.Module{ + SealKeeper: true, + }), + }, + { + Name: evidencetypes.ModuleName, + Config: sdkappconfig.WrapAny(&evidencemodulev1.Module{}), + }, + { + Name: minttypes.ModuleName, + Config: sdkappconfig.WrapAny(&mintmodulev1.Module{}), + }, + { + Name: feegrant.ModuleName, + Config: sdkappconfig.WrapAny(&feegrantmodulev1.Module{}), + }, + { + Name: govtypes.ModuleName, + Config: sdkappconfig.WrapAny(&govmodulev1.Module{}), + }, + { + Name: crisistypes.ModuleName, + Config: sdkappconfig.WrapAny(&crisismodulev1.Module{}), + }, + { + Name: consensustypes.ModuleName, + Config: sdkappconfig.WrapAny(&consensusmodulev1.Module{}), + }, + + // Stratos modules + { + Name: registertypes.ModuleName, + Config: sdkappconfig.WrapAny(®istermodulev1.Module{}), + }, + { + Name: pottypes.ModuleName, + Config: sdkappconfig.WrapAny(&potmodulev1.Module{}), + }, + { + Name: sdstypes.ModuleName, + Config: sdkappconfig.WrapAny(&sdsmodulev1.Module{}), + }, + { + Name: evmtypes.ModuleName, + Config: sdkappconfig.WrapAny(&evmmodulev1.Module{}), + }, + }, + }) +) diff --git a/app/encoding.go b/app/encoding.go deleted file mode 100644 index fd2d01e9..00000000 --- a/app/encoding.go +++ /dev/null @@ -1,19 +0,0 @@ -package app - -import ( - simappparams "github.com/cosmos/cosmos-sdk/simapp/params" - "github.com/cosmos/cosmos-sdk/std" -) - -// MakeTestEncodingConfig creates an EncodingConfig for testing. This function -// should be used only in tests or when creating a new app instance (NewApp*()). -// App user shouldn't create new codecs - use the app.AppCodec instead. -// [DEPRECATED] -func MakeTestEncodingConfig() simappparams.EncodingConfig { - encodingConfig := simappparams.MakeTestEncodingConfig() - std.RegisterLegacyAminoCodec(encodingConfig.Amino) - std.RegisterInterfaces(encodingConfig.InterfaceRegistry) - ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino) - ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry) - return encodingConfig -} diff --git a/app/export.go b/app/export.go index e7ca6558..41af8975 100644 --- a/app/export.go +++ b/app/export.go @@ -2,7 +2,7 @@ package app import ( "encoding/json" - "fmt" + "log" servertypes "github.com/cosmos/cosmos-sdk/server/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -10,13 +10,13 @@ import ( "github.com/cosmos/cosmos-sdk/x/staking" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" ) // ExportAppStateAndValidators exports the state of the application for a genesis // file. -func (app *NewApp) ExportAppStateAndValidators( - forZeroHeight bool, jailAllowedAddrs []string, +func (app *StratosApp) ExportAppStateAndValidators( + forZeroHeight bool, jailAllowedAddrs []string, modulesToExport []string, ) (servertypes.ExportedApp, error) { // Creates context with current height and checks txs for ctx to be usable by start of next block ctx := app.NewContext(true, tmproto.Header{Height: app.LastBlockHeight()}) @@ -26,13 +26,10 @@ func (app *NewApp) ExportAppStateAndValidators( height := app.LastBlockHeight() + 1 if forZeroHeight { height = 0 - - if err := app.prepForZeroHeightGenesis(ctx, jailAllowedAddrs); err != nil { - return servertypes.ExportedApp{}, err - } + app.prepForZeroHeightGenesis(ctx, jailAllowedAddrs) } - genState := app.mm.ExportGenesis(ctx, app.appCodec) + genState := app.ModuleManager.ExportGenesisForModules(ctx, app.appCodec, modulesToExport) appState, err := json.MarshalIndent(genState, "", " ") if err != nil { return servertypes.ExportedApp{}, err @@ -53,8 +50,9 @@ func (app *NewApp) ExportAppStateAndValidators( // prepare for fresh start at zero height // NOTE zero height genesis is a temporary feature which will be deprecated -// in favor of export at a block height -func (app *NewApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []string) error { +// +// in favor of export at a block height +func (app *StratosApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs []string) { applyAllowedAddrs := false // check if there is a allowed address list @@ -67,7 +65,7 @@ func (app *NewApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs [] for _, addr := range jailAllowedAddrs { _, err := sdk.ValAddressFromBech32(addr) if err != nil { - return err + log.Fatal(err) } allowedAddrsMap[addr] = true } @@ -88,12 +86,12 @@ func (app *NewApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs [] for _, delegation := range dels { valAddr, err := sdk.ValAddressFromBech32(delegation.ValidatorAddress) if err != nil { - return err + panic(err) } delAddr, err := sdk.AccAddressFromBech32(delegation.DelegatorAddress) if err != nil { - return err + panic(err) } _, _ = app.distrKeeper.WithdrawDelegationRewards(ctx, delAddr, valAddr) } @@ -124,11 +122,11 @@ func (app *NewApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs [] for _, del := range dels { valAddr, err := sdk.ValAddressFromBech32(del.ValidatorAddress) if err != nil { - return err + panic(err) } delAddr, err := sdk.AccAddressFromBech32(del.DelegatorAddress) if err != nil { - return err + panic(err) } app.distrKeeper.Hooks().BeforeDelegationCreated(ctx, delAddr, valAddr) app.distrKeeper.Hooks().AfterDelegationModified(ctx, delAddr, valAddr) @@ -159,14 +157,15 @@ func (app *NewApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs [] // Iterate through validators by power descending, reset bond heights, and // update bond intra-tx counters. - store := ctx.KVStore(app.keys[stakingtypes.StoreKey]) + store := ctx.KVStore(app.GetKey(stakingtypes.StoreKey)) iter := sdk.KVStoreReversePrefixIterator(store, stakingtypes.ValidatorsKey) + counter := int16(0) for ; iter.Valid(); iter.Next() { addr := sdk.ValAddress(stakingtypes.AddressFromValidatorsKey(iter.Key())) validator, found := app.stakingKeeper.GetValidator(ctx, addr) if !found { - return fmt.Errorf("expected validator %s not found", addr) + panic("expected validator, not found") } validator.UnbondingHeight = 0 @@ -175,14 +174,16 @@ func (app *NewApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs [] } app.stakingKeeper.SetValidator(ctx, validator) + counter++ } if err := iter.Close(); err != nil { - return err + app.Logger().Error("error while closing the key-value store reverse prefix iterator: ", err) + return } if _, err := app.stakingKeeper.ApplyAndReturnValidatorSetUpdates(ctx); err != nil { - return err + panic(err) } /* Handle slashing state. */ @@ -196,5 +197,4 @@ func (app *NewApp) prepForZeroHeightGenesis(ctx sdk.Context, jailAllowedAddrs [] return false }, ) - return nil } diff --git a/app/post_handler.go b/app/post_handler.go new file mode 100644 index 00000000..9b842ac2 --- /dev/null +++ b/app/post_handler.go @@ -0,0 +1,14 @@ +package app + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/x/auth/posthandler" +) + +// NewPostHandler returns an empty PostHandler chain. +// PostHandler is like AnteHandler but it executes after RunMsgs. +func NewPostHandler() (sdk.PostHandler, error) { + return posthandler.NewPostHandler( + posthandler.HandlerOptions{}, + ) +} diff --git a/app/test_helpers.go b/app/test_helpers.go index c6340047..e58191c8 100644 --- a/app/test_helpers.go +++ b/app/test_helpers.go @@ -1,42 +1,33 @@ package app import ( - "bytes" - "encoding/hex" "encoding/json" - "fmt" - "math/rand" - "strconv" "testing" "time" - "github.com/stratosnet/stratos-chain/server/config" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmtypes "github.com/tendermint/tendermint/types" - dbm "github.com/tendermint/tm-db" + dbm "github.com/cometbft/cometbft-db" + abci "github.com/cometbft/cometbft/abci/types" + "github.com/cometbft/cometbft/libs/log" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmtypes "github.com/cometbft/cometbft/types" - bam "github.com/cosmos/cosmos-sdk/baseapp" - "github.com/cosmos/cosmos-sdk/client" + sdkmath "cosmossdk.io/math" + "cosmossdk.io/simapp" + simappparams "cosmossdk.io/simapp/params" + "github.com/cosmos/cosmos-sdk/client/flags" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" - "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" - cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" - "github.com/cosmos/cosmos-sdk/simapp" + "github.com/cosmos/cosmos-sdk/server" + "github.com/cosmos/cosmos-sdk/std" + simstestutil "github.com/cosmos/cosmos-sdk/testutil/sims" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/cosmos/cosmos-sdk/types/simulation" - "github.com/cosmos/cosmos-sdk/types/tx/signing" - authsign "github.com/cosmos/cosmos-sdk/x/auth/signing" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + stratostestutil "github.com/stratosnet/stratos-chain/testutil/stratos" stratos "github.com/stratosnet/stratos-chain/types" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" pottypes "github.com/stratosnet/stratos-chain/x/pot/types" @@ -44,65 +35,20 @@ import ( sdstypes "github.com/stratosnet/stratos-chain/x/sds/types" ) -const ( - DefaultGenTxGas = 50000000000 - //SimAppChainID = "simulation-app" -) - -// DefaultConsensusParams defines the default Tendermint consensus params used in -// SimApp testing. -var DefaultConsensusParams = &abci.ConsensusParams{ - Block: &abci.BlockParams{ - MaxBytes: 200000, - MaxGas: -1, - }, - Evidence: &tmproto.EvidenceParams{ - MaxAgeNumBlocks: 302400, - MaxAgeDuration: 504 * time.Hour, // 3 weeks is the max duration - MaxBytes: 10000, - }, - Validator: &tmproto.ValidatorParams{ - PubKeyTypes: []string{ - tmtypes.ABCIPubKeyTypeEd25519, - }, - }, +// MakeTestEncodingConfig creates an EncodingConfig for testing. This function +// should be used only in tests or when creating a new app instance (NewApp*()). +// App user shouldn't create new codecs - use the app.AppCodec instead. +// [DEPRECATED] +func MakeTestEncodingConfig() simappparams.EncodingConfig { + encodingConfig := simappparams.MakeTestEncodingConfig() + std.RegisterLegacyAminoCodec(encodingConfig.Amino) + std.RegisterInterfaces(encodingConfig.InterfaceRegistry) + ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino) + ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry) + return encodingConfig } -func setup(withGenesis bool, invCheckPeriod uint) (*NewApp, simapp.GenesisState) { - db := dbm.NewMemDB() - encCdc := MakeTestEncodingConfig() - app := NewInitApp(log.NewNopLogger(), db, nil, true, map[int64]bool{}, DefaultNodeHome, invCheckPeriod, encCdc, EmptyAppOptions{}) - if withGenesis { - return app, simapp.NewDefaultGenesisState(encCdc.Marshaler) - } - return app, simapp.GenesisState{} -} - -// Setup initializes a new SimApp. A Nop logger is set in SimApp. -func Setup(isCheckTx bool, chainId string) *NewApp { - app, genesisState := setup(!isCheckTx, 5) - if !isCheckTx { - // init chain must be called to stop deliverState from being nil - stateBytes, err := json.MarshalIndent(genesisState, "", " ") - if err != nil { - panic(err) - } - - // Initialize the chain - app.InitChain( - abci.RequestInitChain{ - Validators: []abci.ValidatorUpdate{}, - ConsensusParams: DefaultConsensusParams, - AppStateBytes: stateBytes, - ChainId: chainId, - }, - ) - } - - return app -} - -// SetupWithGenesisValSet initializes a new SimApp with a validator set and genesis accounts +// SetupWithGenesisNodeSet initializes a new SimApp with a validator set and genesis accounts // that also act as delegators. For simplicity, each validator is bonded with a delegation // of one consensus engine unit (10^6) in the default token of the simapp from first genesis // account. A Nop logger is set in SimApp. @@ -113,7 +59,7 @@ func SetupWithGenesisNodeSet(t *testing.T, resourceNodes []registertypes.ResourceNode, genAccs []authtypes.GenesisAccount, chainId string, - balances ...banktypes.Balance) *NewApp { + balances ...banktypes.Balance) *StratosApp { app, genesisState := setup(true, 5) // set genesis accounts @@ -123,8 +69,8 @@ func SetupWithGenesisNodeSet(t *testing.T, validators := make([]stakingtypes.Validator, 0, len(valSet.Validators)) delegations := make([]stakingtypes.Delegation, 0, len(valSet.Validators)) - validatorBondedAmt := sdk.ZeroInt() - bondAmt := sdk.NewInt(1000000) + validatorBondedAmt := sdkmath.ZeroInt() + bondAmt := sdkmath.NewInt(1000000) for _, val := range valSet.Validators { pk, err := cryptocodec.FromTmPubKeyInterface(val.PubKey) @@ -137,15 +83,15 @@ func SetupWithGenesisNodeSet(t *testing.T, Jailed: false, Status: stakingtypes.Bonded, Tokens: bondAmt, - DelegatorShares: sdk.OneDec(), + DelegatorShares: sdkmath.LegacyOneDec(), Description: stakingtypes.Description{}, UnbondingHeight: int64(0), UnbondingTime: time.Unix(0, 0).UTC(), - Commission: stakingtypes.NewCommission(sdk.ZeroDec(), sdk.ZeroDec(), sdk.ZeroDec()), - MinSelfDelegation: sdk.ZeroInt(), + Commission: stakingtypes.NewCommission(sdkmath.LegacyZeroDec(), sdkmath.LegacyZeroDec(), sdkmath.LegacyZeroDec()), + MinSelfDelegation: sdkmath.ZeroInt(), } validators = append(validators, validator) - delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress(), val.Address.Bytes(), sdk.OneDec())) + delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress(), val.Address.Bytes(), sdkmath.LegacyOneDec())) validatorBondedAmt = validatorBondedAmt.Add(bondAmt) } // set validators and delegations @@ -155,12 +101,13 @@ func SetupWithGenesisNodeSet(t *testing.T, stakingtypes.DefaultMaxValidators, stakingtypes.DefaultMaxEntries, stakingtypes.DefaultHistoricalEntries, - stratos.Wei), + stratos.Wei, + stakingtypes.DefaultMinCommissionRate), validators, delegations) genesisState[stakingtypes.ModuleName] = app.AppCodec().MustMarshalJSON(stakingGenesis) - initRemainingOzoneLimit := sdk.ZeroInt() + initRemainingOzoneLimit := sdkmath.ZeroInt() if !freshStart { // add bonded amount to bonded pool module account balances = append(balances, banktypes.Balance{ @@ -169,7 +116,7 @@ func SetupWithGenesisNodeSet(t *testing.T, }) // add bonded amount of resource nodes to module account - resNodeBondedAmt := sdk.ZeroInt() + resNodeBondedAmt := sdkmath.ZeroInt() for _, resNode := range resourceNodes { resNodeBondedAmt = resNodeBondedAmt.Add(resNode.Tokens) } @@ -179,7 +126,7 @@ func SetupWithGenesisNodeSet(t *testing.T, }) // add bonded amount of meta nodes to module account - metaNodeBondedAmt := sdk.ZeroInt() + metaNodeBondedAmt := sdkmath.ZeroInt() for _, metaNode := range metaNodes { metaNodeBondedAmt = metaNodeBondedAmt.Add(metaNode.Tokens) } @@ -188,7 +135,7 @@ func SetupWithGenesisNodeSet(t *testing.T, Coins: sdk.Coins{sdk.NewCoin(stratos.Wei, metaNodeBondedAmt)}, }) - initRemainingOzoneLimit = resNodeBondedAmt.ToDec(). + initRemainingOzoneLimit = resNodeBondedAmt.ToLegacyDec(). Quo(registertypes.DefaultDepositNozRate). TruncateInt() } @@ -200,7 +147,7 @@ func SetupWithGenesisNodeSet(t *testing.T, } // update total supply - bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}) + bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{}) genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenesis) //registerGenesis := registertypes.DefaultGenesisState() @@ -231,7 +178,7 @@ func SetupWithGenesisNodeSet(t *testing.T, app.InitChain( abci.RequestInitChain{ Validators: []abci.ValidatorUpdate{}, - ConsensusParams: DefaultConsensusParams, + ConsensusParams: stratostestutil.DefaultConsensusParams, AppStateBytes: stateBytes, ChainId: chainId, }, @@ -250,423 +197,22 @@ func SetupWithGenesisNodeSet(t *testing.T, return app } -// SetupWithGenesisAccounts initializes a new SimApp with the provided genesis -// accounts and possible balances. -func SetupWithGenesisAccounts(genAccs []authtypes.GenesisAccount, chainId string, balances ...banktypes.Balance) *NewApp { - app, genesisState := setup(true, 0) - authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs) - genesisState[authtypes.ModuleName] = app.AppCodec().MustMarshalJSON(authGenesis) - - totalSupply := sdk.NewCoins() - for _, b := range balances { - totalSupply = totalSupply.Add(b.Coins...) - } - - bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}) - genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenesis) - - evmGenesis := evmtypes.DefaultGenesisState() - genesisState[evmtypes.ModuleName] = app.AppCodec().MustMarshalJSON(evmGenesis) - - stateBytes, err := json.MarshalIndent(genesisState, "", " ") - if err != nil { - panic(err) - } - - app.InitChain( - abci.RequestInitChain{ - Validators: []abci.ValidatorUpdate{}, - ConsensusParams: DefaultConsensusParams, - AppStateBytes: stateBytes, - ChainId: chainId, - }, - ) - - app.Commit() - app.BeginBlock(abci.RequestBeginBlock{Header: tmproto.Header{Height: app.LastBlockHeight() + 1, ChainID: chainId}}) - - return app -} - -type GenerateAccountStrategy func(int) []sdk.AccAddress - -// createRandomAccounts is a strategy used by addTestAddrs() in order to generated addresses in random order. -func createRandomAccounts(accNum int) []sdk.AccAddress { - testAddrs := make([]sdk.AccAddress, accNum) - for i := 0; i < accNum; i++ { - pk := ed25519.GenPrivKey().PubKey() - testAddrs[i] = sdk.AccAddress(pk.Address()) - } - - return testAddrs -} - -// createIncrementalAccounts is a strategy used by addTestAddrs() in order to generated addresses in ascending order. -func createIncrementalAccounts(accNum int) []sdk.AccAddress { - var addresses []sdk.AccAddress - var buffer bytes.Buffer - - // start at 100 so we can make up to 999 test addresses with valid test addresses - for i := 100; i < (accNum + 100); i++ { - numString := strconv.Itoa(i) - buffer.WriteString("A58856F0FD53BF058B4909A21AEC019107BA6") // base address string - - buffer.WriteString(numString) // adding on final two digits to make addresses unique - res, _ := sdk.AccAddressFromHex(buffer.String()) - bech := res.String() - addr, _ := TestAddr(buffer.String(), bech) - - addresses = append(addresses, addr) - buffer.Reset() - } - - return addresses -} - -// AddTestAddrsFromPubKeys adds the addresses into the SimApp providing only the public keys. -func AddTestAddrsFromPubKeys(app *NewApp, ctx sdk.Context, pubKeys []cryptotypes.PubKey, accAmt sdk.Int) { - initCoins := sdk.NewCoins(sdk.NewCoin(app.stakingKeeper.BondDenom(ctx), accAmt)) - - for _, pk := range pubKeys { - initAccountWithCoins(app, ctx, sdk.AccAddress(pk.Address()), initCoins) - } -} - -// AddTestAddrs constructs and returns accNum amount of accounts with an -// initial balance of accAmt in random order -func AddTestAddrs(app *NewApp, ctx sdk.Context, accNum int, accAmt sdk.Int) []sdk.AccAddress { - return addTestAddrs(app, ctx, accNum, accAmt, createRandomAccounts) -} - -// AddTestAddrs constructs and returns accNum amount of accounts with an -// initial balance of accAmt in random order -func AddTestAddrsIncremental(app *NewApp, ctx sdk.Context, accNum int, accAmt sdk.Int) []sdk.AccAddress { - return addTestAddrs(app, ctx, accNum, accAmt, createIncrementalAccounts) -} - -func addTestAddrs(app *NewApp, ctx sdk.Context, accNum int, accAmt sdk.Int, strategy GenerateAccountStrategy) []sdk.AccAddress { - testAddrs := strategy(accNum) - - initCoins := sdk.NewCoins(sdk.NewCoin(app.stakingKeeper.BondDenom(ctx), accAmt)) - - for _, addr := range testAddrs { - initAccountWithCoins(app, ctx, addr, initCoins) - } - - return testAddrs -} - -func initAccountWithCoins(app *NewApp, ctx sdk.Context, addr sdk.AccAddress, coins sdk.Coins) { - err := app.bankKeeper.MintCoins(ctx, minttypes.ModuleName, coins) - if err != nil { - panic(err) - } - - err = app.bankKeeper.SendCoinsFromModuleToAccount(ctx, minttypes.ModuleName, addr, coins) - if err != nil { - panic(err) - } -} - -// ConvertAddrsToValAddrs converts the provided addresses to ValAddress. -func ConvertAddrsToValAddrs(addrs []sdk.AccAddress) []sdk.ValAddress { - valAddrs := make([]sdk.ValAddress, len(addrs)) - - for i, addr := range addrs { - valAddrs[i] = sdk.ValAddress(addr) - } - - return valAddrs -} +func setup(withGenesis bool, invCheckPeriod uint) (*StratosApp, simapp.GenesisState) { + db := dbm.NewMemDB() -func TestAddr(addr string, bech string) (sdk.AccAddress, error) { - res, err := sdk.AccAddressFromHex(addr) - if err != nil { - return nil, err - } - bechexpected := res.String() - if bech != bechexpected { - return nil, fmt.Errorf("bech encoding doesn't match reference") - } + appOptions := make(simstestutil.AppOptionsMap, 0) + appOptions[flags.FlagHome] = DefaultNodeHome + appOptions[server.FlagInvCheckPeriod] = invCheckPeriod - bechres, err := sdk.AccAddressFromBech32(bech) - if err != nil { - return nil, err - } - if !bytes.Equal(bechres, res) { - return nil, err + app := NewStratosApp(log.NewNopLogger(), db, nil, true, appOptions) + if withGenesis { + return app, app.DefaultGenesis() } - - return res, nil + return app, simapp.GenesisState{} } // CheckBalance checks the balance of an account. -func CheckBalance(t *testing.T, app *NewApp, addr sdk.AccAddress, balances sdk.Coins) { +func CheckBalance(t *testing.T, app *StratosApp, addr sdk.AccAddress, balances sdk.Coins) { ctxCheck := app.BaseApp.NewContext(true, tmproto.Header{}) - require.True(t, balances.IsEqual(app.bankKeeper.GetAllBalances(ctxCheck, addr))) -} - -// SignCheckDeliver checks a generated signed transaction and simulates a -// block commitment with the given transaction. A test assertion is made using -// the parameter 'expPass' against the result. A corresponding result is -// returned. -func SignCheckDeliver( - t *testing.T, txCfg client.TxConfig, app *bam.BaseApp, header tmproto.Header, msgs []sdk.Msg, - chainID string, accNums, accSeqs []uint64, expSimPass, expPass bool, priv ...cryptotypes.PrivKey, -) (sdk.GasInfo, *sdk.Result, error) { - - tx, err := GenTx( - txCfg, - msgs, - sdk.Coins{sdk.NewInt64Coin(stratos.Wei, 0)}, - DefaultGenTxGas, - chainID, - accNums, - accSeqs, - priv..., - ) - require.NoError(t, err) - txBytes, err := txCfg.TxEncoder()(tx) - require.Nil(t, err) - - // Must simulate now as CheckTx doesn't run Msgs anymore - _, res, err := app.Simulate(txBytes) - - if expSimPass { - require.NoError(t, err) - require.NotNil(t, res) - } else { - require.Error(t, err) - require.Nil(t, res) - } - - // Simulate a sending a transaction and committing a block - app.BeginBlock(abci.RequestBeginBlock{Header: header}) - gInfo, res, err := app.Deliver(txCfg.TxEncoder(), tx) - - if expPass { - require.NoError(t, err) - require.NotNil(t, res) - } else { - require.Error(t, err) - require.Nil(t, res) - } - - app.EndBlock(abci.RequestEndBlock{}) - app.Commit() - - return gInfo, res, err -} - -func SignCheckDeliverWithFee( - t *testing.T, txCfg client.TxConfig, app *bam.BaseApp, header tmproto.Header, msgs []sdk.Msg, - chainID string, accNums, accSeqs []uint64, expSimPass, expPass bool, priv ...cryptotypes.PrivKey, -) (sdk.GasInfo, *sdk.Result, error) { - - feeAmount := sdk.NewInt(int64(config.DefaultMinGasPrices)).Mul(sdk.NewInt(DefaultGenTxGas)) - - tx, err := GenTx( - txCfg, - msgs, - sdk.Coins{sdk.NewCoin(stratos.Wei, feeAmount)}, - DefaultGenTxGas, - chainID, - accNums, - accSeqs, - priv..., - ) - require.NoError(t, err) - txBytes, err := txCfg.TxEncoder()(tx) - require.Nil(t, err) - - // Must simulate now as CheckTx doesn't run Msgs anymore - _, res, err := app.Simulate(txBytes) - - if expSimPass { - require.NoError(t, err) - require.NotNil(t, res) - } else { - require.Error(t, err) - require.Nil(t, res) - } - - beginTime := time.Now() - - // Simulate a sending a transaction and committing a block - app.BeginBlock(abci.RequestBeginBlock{Header: header}) - gInfo, res, err := app.Deliver(txCfg.TxEncoder(), tx) - - if expPass { - require.NoError(t, err) - require.NotNil(t, res) - } else { - require.Error(t, err) - require.Nil(t, res) - } - - app.EndBlock(abci.RequestEndBlock{}) - app.Commit() - - endTime := time.Since(beginTime) - fmt.Println("##### time cost:", endTime) - - return gInfo, res, err -} - -// GenSequenceOfTxs generates a set of signed transactions of messages, such -// that they differ only by having the sequence numbers incremented between -// every transaction. -func GenSequenceOfTxs(txGen client.TxConfig, msgs []sdk.Msg, accNums []uint64, initSeqNums []uint64, numToGenerate int, priv ...cryptotypes.PrivKey) ([]sdk.Tx, error) { - txs := make([]sdk.Tx, numToGenerate) - var err error - for i := 0; i < numToGenerate; i++ { - txs[i], err = GenTx( - txGen, - msgs, - sdk.Coins{sdk.NewInt64Coin(stratos.Wei, 0)}, - DefaultGenTxGas, - "", - accNums, - initSeqNums, - priv..., - ) - if err != nil { - break - } - incrementAllSequenceNumbers(initSeqNums) - } - - return txs, err -} - -func incrementAllSequenceNumbers(initSeqNums []uint64) { - for i := 0; i < len(initSeqNums); i++ { - initSeqNums[i]++ - } -} - -// CreateTestPubKeys returns a total of numPubKeys public keys in ascending order. -func CreateTestPubKeys(numPubKeys int) []cryptotypes.PubKey { - var publicKeys []cryptotypes.PubKey - var buffer bytes.Buffer - - // start at 10 to avoid changing 1 to 01, 2 to 02, etc - for i := 100; i < (numPubKeys + 100); i++ { - numString := strconv.Itoa(i) - buffer.WriteString("0B485CFC0EECC619440448436F8FC9DF40566F2369E72400281454CB552AF") // base pubkey string - buffer.WriteString(numString) // adding on final two digits to make pubkeys unique - publicKeys = append(publicKeys, NewPubKeyFromHex(buffer.String())) - buffer.Reset() - } - - return publicKeys -} - -// NewPubKeyFromHex returns a PubKey from a hex string. -func NewPubKeyFromHex(pk string) (res cryptotypes.PubKey) { - pkBytes, err := hex.DecodeString(pk) - if err != nil { - panic(err) - } - if len(pkBytes) != ed25519.PubKeySize { - panic(errors.Wrap(errors.ErrInvalidPubKey, "invalid pubkey size")) - } - return &ed25519.PubKey{Key: pkBytes} -} - -// EmptyAppOptions is a stub implementing AppOptions -type EmptyAppOptions struct{} - -// Get implements AppOptions -func (ao EmptyAppOptions) Get(o string) interface{} { - return nil -} - -// FundAccount is a utility function that funds an account by minting and -// sending the coins to the address. This should be used for testing purposes -// only! -// -// TODO: Instead of using the mint module account, which has the -// permission of minting, create a "faucet" account. (@fdymylja) -func FundAccount(bankKeeper bankkeeper.Keeper, ctx sdk.Context, addr sdk.AccAddress, amounts sdk.Coins) error { - if err := bankKeeper.MintCoins(ctx, minttypes.ModuleName, amounts); err != nil { - return err - } - - return bankKeeper.SendCoinsFromModuleToAccount(ctx, minttypes.ModuleName, addr, amounts) -} - -// FundModuleAccount is a utility function that funds a module account by -// minting and sending the coins to the address. This should be used for testing -// purposes only! -// -// TODO: Instead of using the mint module account, which has the -// permission of minting, create a "faucet" account. (@fdymylja) -func FundModuleAccount(bankKeeper bankkeeper.Keeper, ctx sdk.Context, recipientMod string, amounts sdk.Coins) error { - if err := bankKeeper.MintCoins(ctx, minttypes.ModuleName, amounts); err != nil { - return err - } - - return bankKeeper.SendCoinsFromModuleToModule(ctx, minttypes.ModuleName, recipientMod, amounts) -} - -// GenTx generates a signed mock transaction. -func GenTx(gen client.TxConfig, msgs []sdk.Msg, feeAmt sdk.Coins, gas uint64, chainID string, accNums, accSeqs []uint64, priv ...cryptotypes.PrivKey) (sdk.Tx, error) { - sigs := make([]signing.SignatureV2, len(priv)) - - // create a random length memo - r := rand.New(rand.NewSource(time.Now().UnixNano())) - - memo := simulation.RandStringOfLength(r, simulation.RandIntBetween(r, 0, 100)) - - signMode := gen.SignModeHandler().DefaultMode() - - // 1st round: set SignatureV2 with empty signatures, to set correct - // signer infos. - for i, p := range priv { - sigs[i] = signing.SignatureV2{ - PubKey: p.PubKey(), - Data: &signing.SingleSignatureData{ - SignMode: signMode, - }, - Sequence: accSeqs[i], - } - } - - tx := gen.NewTxBuilder() - err := tx.SetMsgs(msgs...) - if err != nil { - return nil, err - } - err = tx.SetSignatures(sigs...) - if err != nil { - return nil, err - } - tx.SetMemo(memo) - tx.SetFeeAmount(feeAmt) - tx.SetGasLimit(gas) - - // 2nd round: once all signer infos are set, every signer can sign. - for i, p := range priv { - signerData := authsign.SignerData{ - ChainID: chainID, - AccountNumber: accNums[i], - Sequence: accSeqs[i], - } - signBytes, err := gen.SignModeHandler().GetSignBytes(signMode, signerData, tx.GetTx()) - if err != nil { - panic(err) - } - sig, err := p.Sign(signBytes) - if err != nil { - panic(err) - } - sigs[i].Data.(*signing.SingleSignatureData).Signature = sig - err = tx.SetSignatures(sigs...) - if err != nil { - panic(err) - } - } - - return tx.GetTx(), nil + require.True(t, balances.IsEqual(app.GetBankKeeper().GetAllBalances(ctxCheck, addr))) } diff --git a/app/upgrades.go b/app/upgrades.go new file mode 100644 index 00000000..03fdea94 --- /dev/null +++ b/app/upgrades.go @@ -0,0 +1,6 @@ +package app + +// registerUpgradeHandlers registers all the upgrade handlers that are supported by the app +func (app *StratosApp) registerUpgradeHandlers() { + +} diff --git a/app/utils.go b/app/utils.go deleted file mode 100644 index 8a26813e..00000000 --- a/app/utils.go +++ /dev/null @@ -1,18 +0,0 @@ -package app - -import ( - "github.com/cosmos/cosmos-sdk/types/module" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" -) - -// RandomGenesisAccounts is used by the auth module to create random genesis accounts in simulation when a genesis.json is not specified. -// In contrast, the default auth module's RandomGenesisAccounts implementation creates only base accounts and vestings accounts. -func RandomGenesisAccounts(simState *module.SimulationState) authtypes.GenesisAccounts { - genesisAccs := make(authtypes.GenesisAccounts, len(simState.Accounts)) - for i, acc := range simState.Accounts { - bacc := authtypes.NewBaseAccountWithAddress(acc.Address) - genesisAccs[i] = bacc - } - - return genesisAccs -} diff --git a/buf.work.yaml b/buf.work.yaml new file mode 100644 index 00000000..1b4a0d95 --- /dev/null +++ b/buf.work.yaml @@ -0,0 +1,8 @@ +# Generated by "buf config migrate-v1beta1". Edit as necessary, and +# remove this comment when you're finished. +# +# This workspace file points to the roots found in your +# previous "buf.yaml" configuration. +version: v1 +directories: + - proto diff --git a/client/config.go b/client/config.go index 0f391d26..f3925bb3 100644 --- a/client/config.go +++ b/client/config.go @@ -7,7 +7,7 @@ import ( "github.com/spf13/cobra" "github.com/spf13/viper" - "github.com/tendermint/tendermint/libs/cli" + "github.com/cometbft/cometbft/libs/cli" "github.com/cosmos/cosmos-sdk/client/flags" ) diff --git a/client/export.go b/client/export.go index 5b34f0c8..8b2eaf98 100644 --- a/client/export.go +++ b/client/export.go @@ -5,15 +5,18 @@ import ( "fmt" "strings" + "github.com/spf13/cobra" + + "github.com/ethereum/go-ethereum/common/hexutil" + ethcrypto "github.com/ethereum/go-ethereum/crypto" + + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/input" "github.com/cosmos/cosmos-sdk/crypto" + "github.com/cosmos/cosmos-sdk/crypto/keyring" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/ethereum/go-ethereum/common/hexutil" - ethcrypto "github.com/ethereum/go-ethereum/crypto" - "github.com/spf13/cobra" - "github.com/cosmos/cosmos-sdk/crypto/keyring" "github.com/stratosnet/stratos-chain/crypto/ethsecp256k1" "github.com/stratosnet/stratos-chain/crypto/hd" ) @@ -30,12 +33,14 @@ func UnsafeExportEthKeyCommand() *cobra.Command { keyringBackend, _ := cmd.Flags().GetString(flags.FlagKeyringBackend) rootDir, _ := cmd.Flags().GetString(flags.FlagHome) + clientCtx := client.GetClientContextFromCmd(cmd) kr, err := keyring.New( sdk.KeyringServiceName(), keyringBackend, rootDir, inBuf, + clientCtx.Codec, hd.EthSecp256k1Option(), ) if err != nil { diff --git a/client/import.go b/client/import.go index 2c04bb41..852e9122 100644 --- a/client/import.go +++ b/client/import.go @@ -5,6 +5,7 @@ import ( "github.com/spf13/cobra" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/input" "github.com/cosmos/cosmos-sdk/crypto" @@ -31,12 +32,13 @@ func runImportCmd(cmd *cobra.Command, args []string) error { inBuf := bufio.NewReader(cmd.InOrStdin()) keyringBackend, _ := cmd.Flags().GetString(flags.FlagKeyringBackend) rootDir, _ := cmd.Flags().GetString(flags.FlagHome) - + clientCtx := client.GetClientContextFromCmd(cmd) kb, err := keyring.New( sdk.KeyringServiceName(), keyringBackend, rootDir, inBuf, + clientCtx.Codec, hd.EthSecp256k1Option(), ) if err != nil { diff --git a/client/keys.go b/client/keys.go index df93b5bc..fec30674 100644 --- a/client/keys.go +++ b/client/keys.go @@ -5,7 +5,7 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/libs/cli" + "github.com/cometbft/cometbft/libs/cli" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -51,7 +51,7 @@ The pass backend requires GnuPG: https://gnupg.org/ addCmd := keys.AddKeyCommand() // update the default signing algorithm value to "eth_secp256k1" - algoFlag := addCmd.Flag(flags.FlagKeyAlgorithm) + algoFlag := addCmd.Flag(flags.FlagKeyType) algoFlag.DefValue = string(stratoshd.EthSecp256k1Type) err := algoFlag.Value.Set(string(stratoshd.EthSecp256k1Type)) if err != nil { @@ -94,7 +94,14 @@ func runAddCmd(cmd *cobra.Command, args []string) error { dryRun, _ := cmd.Flags().GetBool(flags.FlagDryRun) if dryRun { - kr, err = keyring.New(sdk.KeyringServiceName(), keyring.BackendMemory, clientCtx.KeyringDir, buf, stratoshd.EthSecp256k1Option()) + kr, err = keyring.New( + sdk.KeyringServiceName(), + keyring.BackendMemory, + clientCtx.KeyringDir, + buf, + clientCtx.Codec, + stratoshd.EthSecp256k1Option(), + ) clientCtx = clientCtx.WithKeyring(kr) } diff --git a/client/keys/add.go b/client/keys/add.go index 98fced8f..f118ab11 100644 --- a/client/keys/add.go +++ b/client/keys/add.go @@ -3,10 +3,15 @@ package keys import ( "bufio" "bytes" + "encoding/json" "errors" "fmt" "sort" + "github.com/cosmos/go-bip39" + "github.com/spf13/cobra" + "github.com/spf13/pflag" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/input" @@ -16,8 +21,7 @@ import ( "github.com/cosmos/cosmos-sdk/crypto/keys/multisig" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/go-bip39" - "github.com/spf13/cobra" + stratoshd "github.com/stratosnet/stratos-chain/crypto/hd" stratos "github.com/stratosnet/stratos-chain/types" ) @@ -78,7 +82,16 @@ Example: f.Uint32(flagCoinType, stratos.GetConfig().GetCoinType(), "coin type number for HD derivation") f.Uint32(flagAccount, 0, "Account number for HD derivation") f.Uint32(flagIndex, 0, "Address index number for HD derivation") - f.String(flags.FlagKeyAlgorithm, string(stratoshd.EthSecp256k1Type), "Key signing algorithm to generate keys for") + f.String(flags.FlagKeyType, string(stratoshd.EthSecp256k1Type), "Key signing algorithm to generate keys for") + + // support old flags name for backwards compatibility + f.SetNormalizeFunc(func(f *pflag.FlagSet, name string) pflag.NormalizedName { + if name == "algo" { + name = flags.FlagKeyType + } + + return pflag.NormalizedName(name) + }) return cmd } @@ -94,6 +107,7 @@ func runAddCmdPrepare(cmd *cobra.Command, args []string) error { } /* +RunAddCmd input - bip39 mnemonic - bip39 passphrase @@ -114,7 +128,7 @@ func RunAddCmd(ctx client.Context, cmd *cobra.Command, args []string, inBuf *buf outputFormat := ctx.OutputFormat keyringAlgos, _ := kb.SupportedAlgorithms() - algoStr, _ := cmd.Flags().GetString(flags.FlagKeyAlgorithm) + algoStr, _ := cmd.Flags().GetString(flags.FlagKeyType) algo, err := keyring.NewSigningAlgoFromString(algoStr, keyringAlgos) if err != nil { return err @@ -122,7 +136,7 @@ func RunAddCmd(ctx client.Context, cmd *cobra.Command, args []string, inBuf *buf if dryRun, _ := cmd.Flags().GetBool(flags.FlagDryRun); dryRun { // use in memory keybase - kb = keyring.NewInMemory(stratoshd.EthSecp256k1Option()) + kb = keyring.NewInMemory(ctx.Codec, stratoshd.EthSecp256k1Option()) } else { _, err = kb.Key(name) if err == nil { @@ -156,7 +170,11 @@ func RunAddCmd(ctx client.Context, cmd *cobra.Command, args []string, inBuf *buf return err } - pks[i] = k.GetPubKey() + key, err := k.GetPubKey() + if err != nil { + return err + } + pks[i] = key } if noSort, _ := cmd.Flags().GetBool(flagNoSort); !noSort { @@ -166,29 +184,28 @@ func RunAddCmd(ctx client.Context, cmd *cobra.Command, args []string, inBuf *buf } pk := multisig.NewLegacyAminoPubKey(multisigThreshold, pks) - info, err := kb.SaveMultisig(name, pk) + k, err := kb.SaveMultisig(name, pk) if err != nil { return err } - return printCreate(cmd, info, false, "", outputFormat) + return printCreate(cmd, k, false, "", outputFormat) } } pubKey, _ := cmd.Flags().GetString(keys.FlagPublicKey) if pubKey != "" { var pk cryptotypes.PubKey - err = ctx.Codec.UnmarshalInterfaceJSON([]byte(pubKey), &pk) - if err != nil { + if err = ctx.Codec.UnmarshalInterfaceJSON([]byte(pubKey), &pk); err != nil { return err } - info, err := kb.SavePubKey(name, pk, algo.Name()) + k, err := kb.SaveOfflineKey(name, pk) if err != nil { return err } - return printCreate(cmd, info, false, "", outputFormat) + return printCreate(cmd, k, false, "", outputFormat) } coinType, _ := cmd.Flags().GetUint32(flagCoinType) @@ -206,19 +223,19 @@ func RunAddCmd(ctx client.Context, cmd *cobra.Command, args []string, inBuf *buf // If we're using ledger, only thing we need is the path and the bech32 prefix. if useLedger { bech32PrefixAccAddr := sdk.GetConfig().GetBech32AccountAddrPrefix() - info, err := kb.SaveLedgerKey(name, algo, bech32PrefixAccAddr, coinType, account, index) + k, err := kb.SaveLedgerKey(name, algo, bech32PrefixAccAddr, coinType, account, index) if err != nil { return err } - return printCreate(cmd, info, false, "", outputFormat) + return printCreate(cmd, k, false, "", outputFormat) } // Get bip39 mnemonic var mnemonic, bip39Passphrase string - recover, _ := cmd.Flags().GetBool(flagRecover) - if recover { + isRecover, _ := cmd.Flags().GetBool(flagRecover) + if isRecover { mnemonic, err = input.GetString("Enter your bip39 mnemonic", inBuf) if err != nil { return err @@ -273,36 +290,37 @@ func RunAddCmd(ctx client.Context, cmd *cobra.Command, args []string, inBuf *buf } } - info, err := kb.NewAccount(name, mnemonic, bip39Passphrase, hdPath, algo) + k, err := kb.NewAccount(name, mnemonic, bip39Passphrase, hdPath, algo) if err != nil { return err } // Recover key from seed passphrase - if recover { + if isRecover { // Hide mnemonic from output showMnemonic = false mnemonic = "" } - return printCreate(cmd, info, showMnemonic, mnemonic, outputFormat) + return printCreate(cmd, k, showMnemonic, mnemonic, outputFormat) } -func printCreate(cmd *cobra.Command, info keyring.Info, showMnemonic bool, mnemonic, outputFormat string) error { +func printCreate(cmd *cobra.Command, k *keyring.Record, showMnemonic bool, mnemonic, outputFormat string) error { switch outputFormat { case OutputFormatText: cmd.PrintErrln() - printKeyInfo(cmd.OutOrStdout(), info, keyring.MkAccKeyOutput, outputFormat) + if err := printKeyringRecord(cmd.OutOrStdout(), k, keyring.MkAccKeyOutput, outputFormat); err != nil { + return err + } // print mnemonic unless requested not to. if showMnemonic { - fmt.Fprintln(cmd.ErrOrStderr(), "\n**Important** write this mnemonic phrase in a safe place.") - fmt.Fprintln(cmd.ErrOrStderr(), "It is the only way to recover your account if you ever forget your password.") - fmt.Fprintln(cmd.ErrOrStderr(), "") - fmt.Fprintln(cmd.ErrOrStderr(), mnemonic) + if _, err := fmt.Fprintf(cmd.ErrOrStderr(), "\n**Important** write this mnemonic phrase in a safe place.\nIt is the only way to recover your account if you ever forget your password.\n\n%s\n", mnemonic); err != nil { + return fmt.Errorf("failed to print mnemonic: %v", err) + } } case OutputFormatJSON: - out, err := keyring.MkAccKeyOutput(info) + out, err := keyring.MkAccKeyOutput(k) if err != nil { return err } @@ -311,7 +329,7 @@ func printCreate(cmd *cobra.Command, info keyring.Info, showMnemonic bool, mnemo out.Mnemonic = mnemonic } - jsonString, err := keys.KeysCdc.MarshalJSON(out) + jsonString, err := json.Marshal(out) if err != nil { return err } diff --git a/client/keys/utils.go b/client/keys/utils.go index d054c783..c71cbd6c 100644 --- a/client/keys/utils.go +++ b/client/keys/utils.go @@ -1,13 +1,12 @@ package keys import ( + "encoding/json" "fmt" "io" - "path/filepath" "gopkg.in/yaml.v2" - "github.com/cosmos/cosmos-sdk/client/keys" cryptokeyring "github.com/cosmos/cosmos-sdk/crypto/keyring" ) @@ -15,49 +14,74 @@ import ( const ( OutputFormatText = "text" OutputFormatJSON = "json" - - // defaultKeyDBName is the client's subdirectory where keys are stored. - defaultKeyDBName = "keys" ) -type bechKeyOutFn func(keyInfo cryptokeyring.Info) (cryptokeyring.KeyOutput, error) +type bechKeyOutFn func(k *cryptokeyring.Record) (cryptokeyring.KeyOutput, error) -// NewLegacyKeyBaseFromDir initializes a legacy keybase at the rootDir directory. Keybase -// options can be applied when generating this new Keybase. -func NewLegacyKeyBaseFromDir(rootDir string, opts ...cryptokeyring.KeybaseOption) (cryptokeyring.LegacyKeybase, error) { - return getLegacyKeyBaseFromDir(rootDir, opts...) -} +func printKeyringRecord(w io.Writer, k *cryptokeyring.Record, bechKeyOut bechKeyOutFn, output string) error { + ko, err := bechKeyOut(k) + if err != nil { + return err + } + + switch output { + case OutputFormatText: + if err := printTextRecords(w, []cryptokeyring.KeyOutput{ko}); err != nil { + return err + } + + case OutputFormatJSON: + out, err := json.Marshal(ko) + if err != nil { + return err + } -func getLegacyKeyBaseFromDir(rootDir string, opts ...cryptokeyring.KeybaseOption) (cryptokeyring.LegacyKeybase, error) { - return cryptokeyring.NewLegacy(defaultKeyDBName, filepath.Join(rootDir, "keys"), opts...) + if _, err := fmt.Fprintln(w, string(out)); err != nil { + return err + } + } + + return nil } -func printKeyInfo(w io.Writer, keyInfo cryptokeyring.Info, bechKeyOut bechKeyOutFn, output string) { - ko, err := bechKeyOut(keyInfo) +func printKeyringRecords(w io.Writer, records []*cryptokeyring.Record, output string) error { + kos, err := cryptokeyring.MkAccKeysOutput(records) if err != nil { - panic(err) + return err } switch output { case OutputFormatText: - printTextInfos(w, []cryptokeyring.KeyOutput{ko}) + if err := printTextRecords(w, kos); err != nil { + return err + } case OutputFormatJSON: - out, err := keys.KeysCdc.MarshalJSON(ko) + // TODO https://github.com/cosmos/cosmos-sdk/issues/8046 + out, err := json.Marshal(kos) if err != nil { - panic(err) + return err } - fmt.Fprintln(w, string(out)) + if _, err := fmt.Fprintf(w, "%s", out); err != nil { + return err + } } + + return nil } -func printTextInfos(w io.Writer, kos []cryptokeyring.KeyOutput) { +func printTextRecords(w io.Writer, kos []cryptokeyring.KeyOutput) error { out, err := yaml.Marshal(&kos) if err != nil { - panic(err) + return err + } + + if _, err := fmt.Fprintln(w, string(out)); err != nil { + return err } - fmt.Fprintln(w, string(out)) + + return nil } func validateMultisigThreshold(k, nKeys int) error { diff --git a/cmd/stchaind/genaccounts.go b/cmd/stchaind/genaccounts.go index 30b449d9..f1d40f3e 100644 --- a/cmd/stchaind/genaccounts.go +++ b/cmd/stchaind/genaccounts.go @@ -62,6 +62,7 @@ contain valid denominations. Accounts may optionally be supplied with vesting pa keyringBackend, clientCtx.HomeDir, inBuf, + clientCtx.Codec, hd.EthSecp256k1Option(), ) if err != nil { @@ -76,7 +77,10 @@ contain valid denominations. Accounts may optionally be supplied with vesting pa return fmt.Errorf("failed to get address from Keyring: %w", err) } - addr = info.GetAddress() + addr, err = info.GetAddress() + if err != nil { + return fmt.Errorf("failed to parse address: %w", err) + } } coins, err := sdk.ParseCoinsNormalized(args[1]) diff --git a/cmd/stchaind/genmetanodes.go b/cmd/stchaind/genmetanodes.go index 0c04973c..9c907369 100644 --- a/cmd/stchaind/genmetanodes.go +++ b/cmd/stchaind/genmetanodes.go @@ -11,8 +11,8 @@ import ( "github.com/spf13/cobra" "github.com/spf13/viper" - "github.com/tendermint/tendermint/libs/cli" - tmtypes "github.com/tendermint/tendermint/types" + "github.com/cometbft/cometbft/libs/cli" + tmtypes "github.com/cometbft/cometbft/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" diff --git a/cmd/stchaind/loadtest.go b/cmd/stchaind/loadtest.go deleted file mode 100644 index 38580fe6..00000000 --- a/cmd/stchaind/loadtest.go +++ /dev/null @@ -1,537 +0,0 @@ -package main - -//import ( -// "bufio" -// "encoding/json" -// "fmt" -// "github.com/cosmos/cosmos-sdk/client/context" -// "github.com/cosmos/cosmos-sdk/client/flags" -// "github.com/cosmos/cosmos-sdk/codec" -// "github.com/cosmos/cosmos-sdk/server" -// sdk "github.com/cosmos/cosmos-sdk/types" -// sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" -// "github.com/cosmos/cosmos-sdk/x/auth" -// "github.com/cosmos/cosmos-sdk/x/auth/client/utils" -// "github.com/cosmos/cosmos-sdk/x/auth/exported" -// authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" -// "github.com/cosmos/cosmos-sdk/x/bank" -// "github.com/spf13/cobra" -// "github.com/spf13/viper" -// "github.com/tendermint/tendermint/libs/cli" -// tmtypes "github.com/tendermint/tendermint/types" -// "os" -// "os/signal" -// "strconv" -// "strings" -// "sync" -// "time" -//) -// -//const ( -// flagThreads = "threads" -// flagInterval = "interval" -// flagRandomRecv = "random-recv" -// flagMaxTx = "max-tx" -// flagAddr = "addr" -// flagShowTxHash = "show-txhash" -// flagSkipInit = "skip-init" -// -// defaultOutputFlag = "text" -// -// defaultNodeURI = "tcp://127.0.0.1:26657" -// defaultKeyringBackend = "test" -// defaultHome = "build/node/stchaincli" -// defaultDenom = "wei" -// defaultChainId = "test-chain" -//) -// -////var ModuleCdc *codec.Codec -// -//// global to load command line args -//var loadTestArgs = LoadTestArgs{} -// -//// struct to hold the command-line args -//type LoadTestArgs struct { -// threads int // no. of threads in the load test; for concurrency -// interval int // interval (in milliseconds) between two successive send transactions on a thread -// randomRecv bool // whether to send tokens to a random address every time or no, the default is false -// maxTx int // max transactions after which the load test should stop, default is 10000(10k) -// address []byte -//} -// -//func LoadTestCommands(ctx *server.Context, cdc *codec.Codec, defaultNodeHome, defaultClientHome string) *cobra.Command { -// cmd := &cobra.Command{ -// Use: "load", -// Short: "Run a load test", -// Long: `Run a load test with fixed senders or random senders`, -// } -// cmd.AddCommand( -// AddFixedLoadTestCmd(ctx, cdc, defaultNodeHome, defaultClientHome), -// AddRandomLoadTestCmd(ctx, cdc, defaultNodeHome, defaultClientHome), -// ) -// return cmd -//} -// -//// AddLoadTestCmd returns load test cobra Command. -//func AddFixedLoadTestCmd( -// ctx *server.Context, cdc *codec.Codec, defaultNodeHome, defaultClientHome string, -//) *cobra.Command { -// -// cmd := &cobra.Command{ -// Use: "fixed", -// Short: "Run a load test with fixed senders and receivers", -// Args: cobra.RangeArgs(0, 5), -// RunE: func(cmd *cobra.Command, args []string) (err error) { -// config := ctx.Config -// config.SetRoot(viper.GetString(cli.HomeFlag)) -// -// loadTestArgs.threads = viper.GetInt(flagThreads) -// loadTestArgs.interval = viper.GetInt(flagInterval) -// loadTestArgs.maxTx = viper.GetInt(flagMaxTx) -// loadTestArgs.randomRecv = viper.GetBool(flagRandomRecv) -// senderAddr := viper.GetString(flagAddr) -// senderAddrBytes, err := sdk.AccAddressFromBech32(senderAddr) -// if err != nil { -// return fmt.Errorf("failed to parse bech32 address: %w", err) -// } -// loadTestArgs.address = senderAddrBytes -// -// if loadTestArgs.address == nil { -// genesis := ctx.Config.GenesisFile() -// loadTestArgs.address, err = getFirstAccAddressFromGenesis(cdc, genesis) -// if err != nil { -// return fmt.Errorf("failed to parse genesis: %w", err) -// } -// fmt.Printf("No sender account specified, using accounts in genesis for load test\n") -// } -// -// ctx.Logger.Info("Starting load test with fixed senders/receivers...") -// -// // create a channel to catch os.Interrupt from a SIGTERM or similar kill signal -// c := make(chan os.Signal, 1) -// signal.Notify(c, os.Interrupt) -// -// // create vars for concurrency management -// stopChan := make(chan bool, loadTestArgs.threads) -// waiter := sync.WaitGroup{} -// counterChan := make(chan int, loadTestArgs.threads) -// -// // spawn a goroutine to handle sigterm and max transactions -// waiter.Add(1) -// counter := 0 -// go handleSigTerm(c, counterChan, stopChan, loadTestArgs.threads, loadTestArgs.maxTx, &waiter, &counter) -// -// genesis := ctx.Config.GenesisFile() -// accsFromGenesis, err := getAllAccAddressFromGenesis(cdc, genesis) -// if err != nil { -// return fmt.Errorf("failed to parse bech32 address: %w", err) -// } -// -// if loadTestArgs.threads > len(accsFromGenesis) { -// loadTestArgs.threads = len(accsFromGenesis) -// fmt.Printf("Total available accounts: %d, max threads num set to %d", len(accsFromGenesis), len(accsFromGenesis)) -// } -// seqStart := make(map[int]uint64) -// // start threads -// for i := 0; i < loadTestArgs.threads; i++ { -// inBuf := bufio.NewReader(cmd.InOrStdin()) -// if !viper.IsSet(flags.FlagChainID) { -// viper.Set(flags.FlagChainID, defaultChainId) -// } -// txBldr := auth.NewTxBuilderFromCLI(inBuf).WithTxEncoder(utils.GetTxEncoder(cdc)).WithChainID(viper.GetString(flags.FlagChainID)) -// viper.Set(flags.FlagBroadcastMode, "async") -// viper.Set(flags.FlagSkipConfirmation, true) -// if !viper.IsSet(flags.FlagKeyringBackend) { -// viper.Set(flags.FlagKeyringBackend, defaultKeyringBackend) -// } -// if viper.GetBool(flagShowTxHash) { -// viper.Set(cli.OutputFlag, defaultOutputFlag) -// } -// if !viper.IsSet(flags.FlagNode) { -// viper.Set(flags.FlagNode, defaultNodeURI) -// } -// if !viper.IsSet(flags.FlagHome) { -// viper.Set(flags.FlagHome, defaultHome) -// } -// viper.Set(flags.FlagTrustNode, true) -// from := accsFromGenesis[i] -// if len(loadTestArgs.address) != 0 { -// from = loadTestArgs.address -// } -// cliCtx := context.NewCLIContextWithInputAndFrom(inBuf, from.String()).WithCodec(cdc) -// to := accsFromGenesis[0] -// if len(accsFromGenesis)-1 > i && (i != loadTestArgs.threads-1 || i == 0) { -// to = accsFromGenesis[i+1] -// } -// ctx.Logger.Info(fmt.Sprintf("thread: %d, from addr %s, to addr %s", i, from, to)) -// txBldr, _ = utils.PrepareTxBuilder(txBldr, cliCtx) -// ctx.Logger.Info(fmt.Sprintf("thread: %d, first sequence in this thread: %d\n", i, int(txBldr.Sequence()))) -// seqStart[i] = txBldr.Sequence() -// -// // single-threading start -------- -// //for j := 0; j < loadTestArgs.maxTx; j++ { -// // ctx.Logger.Info(fmt.Sprintf("current sequence: %d\n", int(firstSeqUint64+uint64(j)))) -// // doSendTransaction(cliCtx, txBldr.WithSequence(seqStart[i]+uint64(j)), i, to, from, loadTestArgs.randomRecv, sdk.Coin{Amount: sdk.NewInt(10), Denom: defaultDenom}, seqStart[i]) // send coin to temp account -// // counter += 1 -// //} -// // single-threading end -------- -// -// // multi-threading start -------- -// threadIndex := i -// threadTo := to -// threadFrom := from -// threadTxBldr := txBldr -// threadCliCtx := cliCtx -// // start a thread to keep sending transactions after some interval -// go func(stop chan bool) { -// waitDuration := getWaitDuration(loadTestArgs.interval) -// cliCtx.SkipConfirm = true -// iter := 0 -// for true { -// currSeqInt := int(seqStart[threadIndex] + uint64(iter)) -// ctx.Logger.Info(fmt.Sprintf("thread: %d, sending tx with sequence: %d\n", threadIndex, currSeqInt)) -// doSendTransaction(threadCliCtx, threadTxBldr.WithSequence(seqStart[threadIndex]+uint64(iter)).WithMemo(strconv.Itoa(currSeqInt)).WithGas(uint64(400000)), threadIndex, threadTo, threadFrom, loadTestArgs.randomRecv, sdk.Coin{Amount: sdk.NewInt(1), Denom: defaultDenom}, seqStart[threadIndex]) // send coin to temp account -// iter += 1 -// counterChan <- 1 -// -// select { -// case <-stop: -// waiter.Done() -// return -// default: -// time.Sleep(waitDuration) -// } -// } -// }(stopChan) -// } -// //// wait for all threads to close through sigterm; indefinitely -// waiter.Wait() -// // multi-threading end -------- -// -// // print stats -// fmt.Println("####################################################################") -// fmt.Println("################ Terminating load test ###############") -// fmt.Println("####################################################################") -// fmt.Printf("################ Messages sent: % 9d ###############\n", counter) -// fmt.Println("####################################################################") -// return nil -// }, -// } -// -// cmd.Flags().String(cli.HomeFlag, defaultNodeHome, "node's home directory") -// cmd.Flags().String(flagClientHome, defaultClientHome, "client's home directory") -// cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|test)") -// cmd.Flags().Int(flagThreads, 1, "no. of threads in the load test; for concurrency") -// cmd.Flags().Int(flagInterval, 10, "interval (in milliseconds) between two successive send transactions on a thread") -// cmd.Flags().Bool(flagRandomRecv, false, "whether to send tokens to a random address every time or no, the default is false") -// cmd.Flags().Bool(flagShowTxHash, false, "whether to show tx hash after sending it") -// cmd.Flags().Int(flagMaxTx, 10000, "max transactions after which the load test should stop, default is 10000(10k)") -// cmd.Flags().String(flagAddr, "", "fund address that load test uses") -// cmd.Flags().String(flags.FlagChainID, "", "chain id") -// -// return cmd -//} -// -//// AddLoadTestCmd returns load test cobra Command. -//func AddRandomLoadTestCmd( -// ctx *server.Context, cdc *codec.Codec, defaultNodeHome, defaultClientHome string, -//) *cobra.Command { -// -// cmd := &cobra.Command{ -// Use: "random", -// Short: "Run a load test with random senders and receivers", -// Args: cobra.RangeArgs(0, 1), -// RunE: func(cmd *cobra.Command, args []string) (err error) { -// config := ctx.Config -// config.SetRoot(viper.GetString(cli.HomeFlag)) -// -// loadTestArgs.threads = viper.GetInt(flagThreads) -// loadTestArgs.interval = viper.GetInt(flagInterval) -// loadTestArgs.maxTx = viper.GetInt(flagMaxTx) -// loadTestArgs.randomRecv = viper.GetBool(flagRandomRecv) -// senderAddr := viper.GetString(flagAddr) -// senderAddrBytes, err := sdk.AccAddressFromBech32(senderAddr) -// if err != nil { -// return fmt.Errorf("failed to parse bech32 address: %w", err) -// } -// loadTestArgs.address = senderAddrBytes -// -// if loadTestArgs.address == nil { -// genesis := ctx.Config.GenesisFile() -// loadTestArgs.address, err = getFirstAccAddressFromGenesis(cdc, genesis) -// if err != nil { -// return fmt.Errorf("failed to parse genesis: %w", err) -// } -// fmt.Printf("No sender account specified, using accounts in genesis for load test\n") -// } -// -// ctx.Logger.Info("Starting load test with random senders/receivers...") -// -// // create a channel to catch os.Interrupt from a SIGTERM or similar kill signal -// c := make(chan os.Signal, 1) -// signal.Notify(c, os.Interrupt) -// -// // create vars for concurrency management -// stopChan := make(chan bool, loadTestArgs.threads) -// waiter := sync.WaitGroup{} -// counterChan := make(chan int, loadTestArgs.threads) -// -// // spawn a goroutine to handle sigterm and max transactions -// waiter.Add(1) -// counter := 0 -// go handleSigTerm(c, counterChan, stopChan, loadTestArgs.threads, loadTestArgs.maxTx, &waiter, &counter) -// -// genesis := ctx.Config.GenesisFile() -// accsFromGenesis, err := getAllAccAddressFromGenesis(cdc, genesis) -// if err != nil { -// return fmt.Errorf("failed to parse bech32 address: %w", err) -// } -// -// fundFrom := accsFromGenesis[0] -// if len(loadTestArgs.address) != 0 { -// fundFrom = loadTestArgs.address -// } -// -// inBuf := bufio.NewReader(cmd.InOrStdin()) -// if !viper.IsSet(flags.FlagChainID) { -// viper.Set(flags.FlagChainID, defaultChainId) -// } -// -// if !viper.GetBool(flagSkipInit) { -// initDistribution(ctx, inBuf, cdc, fundFrom, accsFromGenesis) -// } -// -// if loadTestArgs.threads > len(accsFromGenesis) { -// loadTestArgs.threads = len(accsFromGenesis) -// fmt.Printf("Total available accounts: %d, max threads num set to %d", len(accsFromGenesis), len(accsFromGenesis)) -// } -// -// fmt.Printf("Start testing in multiple threads\n") -// seqStart := make(map[int]uint64) -// // start threads -// for i := 0; i < loadTestArgs.threads; i++ { -// //waiter.Add(1) -// inBuf := bufio.NewReader(cmd.InOrStdin()) -// if !viper.IsSet(flags.FlagChainID) { -// viper.Set(flags.FlagChainID, defaultChainId) -// } -// //if !viper.IsSet("gas") { -// // viper.Set("gas", flags.GasFlagAuto) -// //} -// txBldr := auth.NewTxBuilderFromCLI(inBuf).WithTxEncoder(utils.GetTxEncoder(cdc)).WithChainID(viper.GetString(flags.FlagChainID)) -// viper.Set(flags.FlagBroadcastMode, "block") -// viper.Set(flags.FlagSkipConfirmation, true) -// if !viper.IsSet(flags.FlagKeyringBackend) { -// viper.Set(flags.FlagKeyringBackend, defaultKeyringBackend) -// } -// if viper.GetBool(flagShowTxHash) { -// viper.Set(cli.OutputFlag, defaultOutputFlag) -// } -// if !viper.IsSet(flags.FlagNode) { -// viper.Set(flags.FlagNode, defaultNodeURI) -// } -// if !viper.IsSet(flags.FlagHome) { -// viper.Set(flags.FlagHome, defaultHome) -// } -// viper.Set(flags.FlagTrustNode, true) -// -// //ctx.Logger.Info(fmt.Sprintf("From addr: %s, chain-id: %s, keyring-backend: %s, home: %s", from.String(), -// cliCtx := context.NewCLIContextWithInputAndFrom(inBuf, accsFromGenesis[i].String()).WithCodec(cdc) -// from := accsFromGenesis[i] -// to := accsFromGenesis[0] -// if len(accsFromGenesis) > i && (i != loadTestArgs.threads-1 || i == 0) { -// to = accsFromGenesis[i+1] -// } -// ctx.Logger.Info(fmt.Sprintf("thread: %d, from addr %s, to addr %s", i, accsFromGenesis[i], to)) -// txBldr, _ = utils.PrepareTxBuilder(txBldr, cliCtx) -// ctx.Logger.Info(fmt.Sprintf("thread: %d, first sequence in this thread: %d\n", i, int(txBldr.Sequence()))) -// seqStart[i] = txBldr.Sequence() -// -// // multi-threading start -------- -// threadIndex := i -// threadTo := to -// threadFrom := from -// threadTxBldr := txBldr -// threadCliCtx := cliCtx -// // start a thread to keep sending transactions after some interval -// go func(stop chan bool) { -// waitDuration := getWaitDuration(loadTestArgs.interval) -// cliCtx.SkipConfirm = true -// iter := 0 -// for true { -// currSeqInt := int(seqStart[threadIndex] + uint64(iter)) -// ctx.Logger.Info(fmt.Sprintf("thread: %d, sending tx with sequence: %d\n", threadIndex, currSeqInt)) -// doSendTransaction(threadCliCtx, threadTxBldr.WithSequence(seqStart[threadIndex]+uint64(iter)).WithMemo(strconv.Itoa(currSeqInt)).WithGas(uint64(400000)), threadIndex, threadTo, threadFrom, loadTestArgs.randomRecv, sdk.Coin{Amount: sdk.NewInt(1), Denom: defaultDenom}, seqStart[threadIndex]) // send coin to temp account -// iter += 1 -// counterChan <- 1 -// -// select { -// case <-stop: -// waiter.Done() -// return -// default: -// time.Sleep(waitDuration) -// } -// } -// }(stopChan) -// } -// //// wait for all threads to close through sigterm; indefinitely -// waiter.Wait() -// // multi-threading end -------- -// -// // print stats -// fmt.Println("####################################################################") -// fmt.Println("################ Terminating load test ###############") -// fmt.Println("####################################################################") -// fmt.Printf("################ Messages sent: % 9d ###############\n", counter) -// fmt.Println("####################################################################") -// return nil -// }, -// } -// -// cmd.Flags().String(cli.HomeFlag, defaultNodeHome, "node's home directory") -// cmd.Flags().String(flagClientHome, defaultClientHome, "client's home directory") -// cmd.Flags().String(flags.FlagKeyringBackend, flags.DefaultKeyringBackend, "Select keyring's backend (os|file|test)") -// cmd.Flags().Int(flagThreads, 1, "no. of threads in the load test; for concurrency") -// cmd.Flags().Int(flagInterval, 10, "interval (in milliseconds) between two successive send transactions on a thread") -// cmd.Flags().Bool(flagRandomRecv, true, "whether to send tokens to a random address every time or no, the default is false") -// cmd.Flags().Bool(flagShowTxHash, false, "whether to show tx hash after sending it") -// cmd.Flags().Bool(flagSkipInit, false, "whether to skip init distribution") -// cmd.Flags().Int(flagMaxTx, 10000, "max transactions after which the load test should stop, default is 10000(10k)") -// cmd.Flags().String(flagAddr, "", "fund address that load test uses") -// cmd.Flags().String(flags.FlagChainID, "", "chain id") -// -// return cmd -//} -// -//func initDistribution(ctx *server.Context, inBuf *bufio.Reader, cdc *codec.Codec, fundFrom sdk.AccAddress, accsFromGenesis []sdk.AccAddress) { -// txBldrFund := auth.NewTxBuilderFromCLI(inBuf).WithTxEncoder(utils.GetTxEncoder(cdc)).WithChainID(viper.GetString(flags.FlagChainID)) -// viper.Set(flags.FlagBroadcastMode, "async") -// viper.Set(flags.FlagSkipConfirmation, true) -// if !viper.IsSet(flags.FlagKeyringBackend) { -// viper.Set(flags.FlagKeyringBackend, defaultKeyringBackend) -// } -// if viper.GetBool(flagShowTxHash) { -// viper.Set(cli.OutputFlag, defaultOutputFlag) -// } -// if !viper.IsSet(flags.FlagNode) { -// viper.Set(flags.FlagNode, defaultNodeURI) -// } -// if !viper.IsSet(flags.FlagHome) { -// viper.Set(flags.FlagHome, defaultHome) -// } -// //if !viper.IsSet("gas") { -// // viper.Set("gas", flags.GasFlagAuto) -// //} -// viper.Set(flags.FlagTrustNode, true) -// -// cliCtxFund := context.NewCLIContextWithInputAndFrom(inBuf, fundFrom.String()).WithCodec(cdc) -// txBldrFund, _ = utils.PrepareTxBuilder(txBldrFund, cliCtxFund) -// seqStartFund := txBldrFund.Sequence() -// ctx.Logger.Info(fmt.Sprintf("Preparing funds for each test account, seq starts from %d", int(seqStartFund))) -// doInitDistribution(ctx, cliCtxFund, txBldrFund, seqStartFund, fundFrom, accsFromGenesis, sdk.Coin{Amount: sdk.NewInt(1000000000), Denom: defaultDenom}) -//} -// -//func doInitDistribution(ctx *server.Context, cliCtx context.CLIContext, txBldr authtypes.TxBuilder, seqStartFund uint64, fundAcc sdk.AccAddress, subAccs []sdk.AccAddress, coin sdk.Coin) { -// for i := 0; i < len(subAccs); i++ { -// msg := bank.NewMsgSend(fundAcc, subAccs[i], sdk.Coins{coin}) -// currSeqInt := seqStartFund + uint64(i) -// //// build and sign the transaction, then broadcast to Tendermint -// err := utils.GenerateOrBroadcastMsgs(cliCtx, txBldr.WithSequence(currSeqInt).WithGas(uint64(400000)), []sdk.Msg{msg}) -// ctx.Logger.Info(fmt.Sprintf("Transfered fund to account %s (index: %d, seq: %d)", subAccs[i].String(), i, int(currSeqInt))) -// if err != nil { -// fmt.Println(err) -// } -// time.Sleep(getWaitDuration(20)) // 20ms -// } -//} -// -//// doSendTransaction takes in an account and currency object and sends random amounts of coin from the -//// node account. It prints any errors to ctx.logger and returns -//func doSendTransaction(cliCtx context.CLIContext, txBldr authtypes.TxBuilder, threadNo int, to sdk.AccAddress, from sdk.AccAddress, randomRev bool, coin sdk.Coin, firstSeq uint64) { -// msg := bank.NewMsgSend(from, to, sdk.Coins{coin}) -// //// build and sign the transaction, then broadcast to Tendermint -// err := utils.GenerateOrBroadcastMsgs(cliCtx, txBldr, []sdk.Msg{msg}) -// if err != nil { -// fmt.Println(err) -// } -//} -// -//// handleSigTerm keeps a count of messages sent and if the maximum number of transactions is reached it stops -//// all threads and proceeds to shut down the main thread. If it catches a SIGTERM or a CTRL C it similarly shuts down -//// gracefully. This function is blocking and is called as a go routine. -//func handleSigTerm(c chan os.Signal, counterChan chan int, stopChan chan bool, -// n int, maxTx int, waiter *sync.WaitGroup, cnt *int) { -// -// // indefinite loop listens over the counter and os.Signal for interrupt signal -// for true { -// select { -// case <-c: -// // signal the goroutines to stop -// for i := 0; i < n; i++ { -// stopChan <- true -// } -// // wait for the goroutines to stop -// time.Sleep(time.Second) -// -// waiter.Done() -// -// case <-counterChan: -// // increment counter -// *cnt++ -// -// // send shutdown signal if max no. of transactions is reached -// if *cnt >= maxTx { -// c <- os.Interrupt -// } -// } -// } -//} -// -//func getAllAccAddressFromGenesis(cdc *codec.Codec, genesisFilePath string) (accAddrs []sdk.AccAddress, err error) { -// var genDoc *tmtypes.GenesisDoc -// if genDoc, err = tmtypes.GenesisDocFromFile(strings.ReplaceAll(genesisFilePath, "cli", "d")); err != nil { -// return nil, fmt.Errorf("error loading genesis doc from %s: %s", genesisFilePath, err.Error()) -// } -// var genState map[string]json.RawMessage -// if err = cdc.UnmarshalJSON(genDoc.AppState, &genState); err != nil { -// return nil, fmt.Errorf("error unmarshalling genesis doc %s: %s", genesisFilePath, err.Error()) -// } -// var addresses []sdk.AccAddress -// auth.GenesisAccountIterator{}.IterateGenesisAccounts( -// cdc, genState, func(acc exported.Account) (stop bool) { -// addresses = append(addresses, acc.GetAddress()) -// return false -// }, -// ) -// if len(addresses) > 0 { -// return addresses, nil -// } -// return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownAddress, "No account initiated in genesis") -//} -// -//func getWaitDuration(interval int) time.Duration { -// return time.Millisecond * time.Duration(interval) -//} -// -//func getFirstAccAddressFromGenesis(cdc *codec.Codec, genesisFilePath string) (accAddr sdk.AccAddress, err error) { -// var genDoc *tmtypes.GenesisDoc -// if genDoc, err = tmtypes.GenesisDocFromFile(strings.ReplaceAll(genesisFilePath, "cli", "d")); err != nil { -// return nil, fmt.Errorf("error loading genesis doc from %s: %s", genesisFilePath, err.Error()) -// } -// var genState map[string]json.RawMessage -// if err = cdc.UnmarshalJSON(genDoc.AppState, &genState); err != nil { -// return nil, fmt.Errorf("error unmarshalling genesis doc %s: %s", genesisFilePath, err.Error()) -// } -// var addresses []sdk.AccAddress -// auth.GenesisAccountIterator{}.IterateGenesisAccounts( -// cdc, genState, func(acc exported.Account) (stop bool) { -// addresses = append(addresses, acc.GetAddress()) -// return false -// }, -// ) -// if len(addresses) > 0 { -// return addresses[0], nil -// } -// return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownAddress, "No account initiated in genesis") -//} diff --git a/cmd/stchaind/main.go b/cmd/stchaind/main.go index 003ff121..b7734b75 100644 --- a/cmd/stchaind/main.go +++ b/cmd/stchaind/main.go @@ -4,16 +4,17 @@ import ( "go/doc/comment" "os" - "github.com/cosmos/cosmos-sdk/crypto/ledger" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/server" svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/stratosnet/stratos-chain/crypto/ethsecp256k1" "github.com/stratosnet/stratos-chain/app" stratos "github.com/stratosnet/stratos-chain/types" ) +const EnvPrefix = "" + var ( // Force to build with go1.19, because sorting algorithm has been rewritten since go1.19 // The order of sorted results will be different between go1.18 & go1.19 if the values of the compared elements are equal @@ -22,10 +23,11 @@ var ( func main() { registerDenoms() - ledger.InitLedger(ethsecp256k1.MakePubKey, ledger.SignMode_SIGN_MODE_DIRECT) + //TODO: enable when customized cosmos-sdk pushed + //ledger.InitLedger(ethsecp256k1.MakePubKey, ledger.SignMode_SIGN_MODE_DIRECT) rootCmd, _ := NewRootCmd() - if err := svrcmd.Execute(rootCmd, app.DefaultNodeHome); err != nil { + if err := svrcmd.Execute(rootCmd, EnvPrefix, app.DefaultNodeHome); err != nil { switch e := err.(type) { case server.ErrorCode: os.Exit(e.Code) @@ -38,15 +40,15 @@ func main() { // RegisterDenoms registers the base and display denominations to the SDK. func registerDenoms() { - if err := sdk.RegisterDenom(stratos.Stos, sdk.OneDec()); err != nil { + if err := sdk.RegisterDenom(stratos.Stos, sdkmath.LegacyOneDec()); err != nil { panic(err) } - if err := sdk.RegisterDenom(stratos.Gwei, sdk.NewDecWithPrec(1, stratos.GweiDenomUnit)); err != nil { + if err := sdk.RegisterDenom(stratos.Gwei, sdkmath.LegacyNewDecWithPrec(1, stratos.GweiDenomUnit)); err != nil { panic(err) } - if err := sdk.RegisterDenom(stratos.Wei, sdk.NewDecWithPrec(1, stratos.WeiDenomUnit)); err != nil { + if err := sdk.RegisterDenom(stratos.Wei, sdkmath.LegacyNewDecWithPrec(1, stratos.WeiDenomUnit)); err != nil { panic(err) } } diff --git a/cmd/stchaind/root.go b/cmd/stchaind/root.go index 6e58853d..e4be8795 100644 --- a/cmd/stchaind/root.go +++ b/cmd/stchaind/root.go @@ -2,35 +2,35 @@ package main import ( "errors" - "fmt" "io" "os" - "path/filepath" - "github.com/spf13/cast" "github.com/spf13/cobra" + "github.com/spf13/viper" - tmcli "github.com/tendermint/tendermint/libs/cli" - "github.com/tendermint/tendermint/libs/log" - dbm "github.com/tendermint/tm-db" + dbm "github.com/cometbft/cometbft-db" + tmcfg "github.com/cometbft/cometbft/config" + tmcli "github.com/cometbft/cometbft/libs/cli" + "github.com/cometbft/cometbft/libs/log" - "github.com/cosmos/cosmos-sdk/baseapp" + simappparams "cosmossdk.io/simapp/params" + rosettaCmd "cosmossdk.io/tools/rosetta/cmd" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/config" "github.com/cosmos/cosmos-sdk/client/debug" "github.com/cosmos/cosmos-sdk/client/flags" + "github.com/cosmos/cosmos-sdk/client/pruning" "github.com/cosmos/cosmos-sdk/client/rpc" + "github.com/cosmos/cosmos-sdk/client/snapshot" sdkserver "github.com/cosmos/cosmos-sdk/server" - servertypes "github.com/cosmos/cosmos-sdk/server/types" - "github.com/cosmos/cosmos-sdk/simapp/params" - "github.com/cosmos/cosmos-sdk/snapshots" - "github.com/cosmos/cosmos-sdk/store" - sdk "github.com/cosmos/cosmos-sdk/types" + sdkservertypes "github.com/cosmos/cosmos-sdk/server/types" authcmd "github.com/cosmos/cosmos-sdk/x/auth/client/cli" - "github.com/cosmos/cosmos-sdk/x/auth/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/cosmos/cosmos-sdk/x/crisis" + "github.com/cosmos/cosmos-sdk/x/genutil" genutilcli "github.com/cosmos/cosmos-sdk/x/genutil/client/cli" + genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types" "github.com/stratosnet/stratos-chain/app" stratosclient "github.com/stratosnet/stratos-chain/client" @@ -42,23 +42,21 @@ import ( stratos "github.com/stratosnet/stratos-chain/types" ) -const EnvPrefix = "" - // NewRootCmd creates a new root command for simd. It is called once in the // main function. -func NewRootCmd() (*cobra.Command, params.EncodingConfig) { - encodingConfig := encoding.MakeConfig(app.ModuleBasics) +func NewRootCmd() (*cobra.Command, simappparams.EncodingConfig) { + encodingConfig := encoding.MakeEncodingConfig(app.ModuleBasics) initClientCtx := client.Context{}. - WithCodec(encodingConfig.Marshaler). + WithCodec(encodingConfig.Codec). WithInterfaceRegistry(encodingConfig.InterfaceRegistry). WithTxConfig(encodingConfig.TxConfig). WithLegacyAmino(encodingConfig.Amino). WithInput(os.Stdin). - WithAccountRetriever(types.AccountRetriever{}). - WithBroadcastMode(flags.BroadcastBlock). + WithAccountRetriever(authtypes.AccountRetriever{}). WithHomeDir(app.DefaultNodeHome). WithKeyringOptions(hd.EthSecp256k1Option()). - WithViper(EnvPrefix) // In simapp, we don't use any prefix for env variables. + WithBroadcastMode(flags.BroadcastSync). + WithViper("") rootCmd := &cobra.Command{ Use: "stchaind", @@ -83,40 +81,40 @@ func NewRootCmd() (*cobra.Command, params.EncodingConfig) { } customAppTemplate, customAppConfig := servercfg.AppConfig(stratos.Wei) + customTMConfig := tmcfg.DefaultConfig() - return sdkserver.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig) + return sdkserver.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig, customTMConfig) }, } cfg := stratos.GetConfig() cfg.Seal() - //ccfg:= simapp.MakeTestEncodingConfig() - initRootCmd(rootCmd, encodingConfig) return rootCmd, encodingConfig } -func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) { +func initRootCmd(rootCmd *cobra.Command, encodingConfig simappparams.EncodingConfig) { + genTxModule := app.ModuleBasics[genutiltypes.ModuleName].(genutil.AppModuleBasic) + rootCmd.AddCommand( genutilcli.InitCmd(app.ModuleBasics, app.DefaultNodeHome), - genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome), - genutilcli.MigrateGenesisCmd(), genutilcli.GenTxCmd(app.ModuleBasics, encodingConfig.TxConfig, banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome), + genutilcli.MigrateGenesisCmd(), + genutilcli.CollectGenTxsCmd(banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome, genTxModule.GenTxValidator), genutilcli.ValidateGenesisCmd(app.ModuleBasics), AddGenesisAccountCmd(app.DefaultNodeHome), AddGenesisMetaNodeCmd(banktypes.GenesisBalancesIterator{}, app.DefaultNodeHome), - //TODO: fix these cmds - //LoadTestCommands(ctx, cdc, app.DefaultNodeHome, app.DefaultCLIHome), tmcli.NewCompletionCmd(rootCmd, true), - //testnetCmd(simapp.ModuleBasics, banktypes.GenesisBalancesIterator{}), + //testnetCmd(app.ModuleBasics, banktypes.GenesisBalancesIterator{}), debug.Cmd(), config.Cmd(), + pruning.Cmd(newApp, app.DefaultNodeHome), + snapshot.Cmd(newApp), ) - a := appCreator{encodingConfig} - server.AddCommands(rootCmd, app.DefaultNodeHome, a.newApp, a.appExport, addModuleInitFlags) + server.AddCommands(rootCmd, app.DefaultNodeHome, newApp, createStratosAppAndExport, addModuleInitFlags) // add keybase, auxiliary RPC, query, and tx child commands rootCmd.AddCommand( @@ -132,7 +130,60 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig params.EncodingConfig) { } // add rosetta - rootCmd.AddCommand(sdkserver.RosettaCommand(encodingConfig.InterfaceRegistry, encodingConfig.Marshaler)) + rootCmd.AddCommand(rosettaCmd.RosettaCommand(encodingConfig.InterfaceRegistry, encodingConfig.Codec)) +} + +func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts sdkservertypes.AppOptions) sdkservertypes.Application { + baseAppOptions := server.DefaultBaseAppOptions(appOpts) + return app.NewStratosApp( + logger, + db, + traceStore, + true, + appOpts, + baseAppOptions..., + ) +} + +// createStratosAppAndExport creates a new app (optionally at a given height) +// and exports state. +func createStratosAppAndExport( + logger log.Logger, + db dbm.DB, + traceStore io.Writer, + height int64, + forZeroHeight bool, + jailAllowedAddrs []string, + appOpts sdkservertypes.AppOptions, + modulesToExport []string, +) (sdkservertypes.ExportedApp, error) { + var stratosApp *app.StratosApp + homePath, ok := appOpts.Get(flags.FlagHome).(string) + if !ok || homePath == "" { + return sdkservertypes.ExportedApp{}, errors.New("application home is not set") + } + + viperAppOpts, ok := appOpts.(*viper.Viper) + if !ok { + return sdkservertypes.ExportedApp{}, errors.New("appOpts is not viper.Viper") + } + + // overwrite the FlagInvCheckPeriod + viperAppOpts.Set(sdkserver.FlagInvCheckPeriod, 1) + appOpts = viperAppOpts + + stratosApp = app.NewStratosApp( + logger, db, traceStore, height == -1, + appOpts, + ) + + if height != -1 { + if err := stratosApp.LoadHeight(height); err != nil { + return sdkservertypes.ExportedApp{}, err + } + } + + return stratosApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs, modulesToExport) } func addModuleInitFlags(startCmd *cobra.Command) { @@ -188,104 +239,3 @@ func txCommand() *cobra.Command { return cmd } - -type appCreator struct { - encCfg params.EncodingConfig -} - -// newApp is an appCreator -func (a appCreator) newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts servertypes.AppOptions) servertypes.Application { - var cache sdk.MultiStorePersistentCache - - if cast.ToBool(appOpts.Get(sdkserver.FlagInterBlockCache)) { - cache = store.NewCommitKVStoreCacheManager() - } - - skipUpgradeHeights := make(map[int64]bool) - for _, h := range cast.ToIntSlice(appOpts.Get(sdkserver.FlagUnsafeSkipUpgrades)) { - skipUpgradeHeights[int64(h)] = true - } - - pruningOpts, err := sdkserver.GetPruningOptionsFromFlags(appOpts) - if err != nil { - panic(err) - } - - snapshotDir := filepath.Join(cast.ToString(appOpts.Get(flags.FlagHome)), "data", "snapshots") - snapshotDB, err := sdk.NewLevelDB("metadata", snapshotDir) - if err != nil { - panic(err) - } - snapshotStore, err := snapshots.NewStore(snapshotDB, snapshotDir) - if err != nil { - panic(err) - } - - return app.NewInitApp( - logger, db, traceStore, true, skipUpgradeHeights, - cast.ToString(appOpts.Get(flags.FlagHome)), - cast.ToUint(appOpts.Get(sdkserver.FlagInvCheckPeriod)), - a.encCfg, - appOpts, - baseapp.SetPruning(pruningOpts), - baseapp.SetMinGasPrices(checkMinGasPrices(appOpts, logger)), - baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(sdkserver.FlagHaltHeight))), - baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(sdkserver.FlagHaltTime))), - baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(sdkserver.FlagMinRetainBlocks))), - baseapp.SetInterBlockCache(cache), - baseapp.SetTrace(cast.ToBool(appOpts.Get(sdkserver.FlagTrace))), - baseapp.SetIndexEvents(cast.ToStringSlice(appOpts.Get(sdkserver.FlagIndexEvents))), - baseapp.SetSnapshotStore(snapshotStore), - baseapp.SetSnapshotInterval(cast.ToUint64(appOpts.Get(sdkserver.FlagStateSyncSnapshotInterval))), - baseapp.SetSnapshotKeepRecent(cast.ToUint32(appOpts.Get(sdkserver.FlagStateSyncSnapshotKeepRecent))), - baseapp.SetIAVLCacheSize(cast.ToInt(appOpts.Get("iavl-cache-size"))), - ) -} - -func checkMinGasPrices(appOpts servertypes.AppOptions, logger log.Logger) string { - minGasPricesInputStr := cast.ToString(appOpts.Get(sdkserver.FlagMinGasPrices)) - minGasPricesInput, err := sdk.ParseCoinNormalized(minGasPricesInputStr) - if err != nil { - panic(err) - } - - minimalMinGasPricesStr := servercfg.GetMinimalMinGasPricesCoinStr() - minimalMinGasPrices, err := sdk.ParseCoinNormalized(minimalMinGasPricesStr) - if err != nil { - panic(err) - } - - if minGasPricesInput.IsLT(minimalMinGasPrices) { - logger.Info(fmt.Sprintf("min-gas-prices %v is less than minimal value %v, set to minimal value", - minGasPricesInputStr, minimalMinGasPricesStr)) - return minimalMinGasPricesStr - } - - return minGasPricesInput.String() -} - -// appExport creates a new simapp (optionally at a given height) -// and exports state. -func (a appCreator) appExport( - logger log.Logger, db dbm.DB, traceStore io.Writer, height int64, forZeroHeight bool, jailAllowedAddrs []string, - appOpts servertypes.AppOptions, -) (servertypes.ExportedApp, error) { - - var stratosApp *app.NewApp - homePath, ok := appOpts.Get(flags.FlagHome).(string) - if !ok || homePath == "" { - return servertypes.ExportedApp{}, errors.New("application home not set") - } - - if height != -1 { - stratosApp = app.NewInitApp(logger, db, traceStore, false, map[int64]bool{}, homePath, uint(1), a.encCfg, appOpts) - - if err := stratosApp.LoadHeight(height); err != nil { - return servertypes.ExportedApp{}, err - } - } else { - stratosApp = app.NewInitApp(logger, db, traceStore, true, map[int64]bool{}, homePath, uint(1), a.encCfg, appOpts) - } - - return stratosApp.ExportAppStateAndValidators(forZeroHeight, jailAllowedAddrs) -} diff --git a/crypto/codec/amino.go b/crypto/codec/amino.go index b8cc9212..7615f7a3 100644 --- a/crypto/codec/amino.go +++ b/crypto/codec/amino.go @@ -1,7 +1,6 @@ package codec import ( - "github.com/cosmos/cosmos-sdk/client/keys" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/legacy" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" @@ -13,16 +12,13 @@ import ( // RegisterCrypto registers all crypto dependency types with the provided Amino // codec. func RegisterCrypto(cdc *codec.LegacyAmino) { - cdc.RegisterConcrete(ðsecp256k1.PubKey{}, - ethsecp256k1.PubKeyName, nil) - cdc.RegisterConcrete(ðsecp256k1.PrivKey{}, - ethsecp256k1.PrivKeyName, nil) - keyring.RegisterLegacyAminoCodec(cdc) cryptocodec.RegisterCrypto(cdc) + cdc.RegisterConcrete(ðsecp256k1.PubKey{}, ethsecp256k1.PubKeyName, nil) + cdc.RegisterConcrete(ðsecp256k1.PrivKey{}, ethsecp256k1.PrivKeyName, nil) + // NOTE: update SDK's amino codec to include the ethsecp256k1 keys. // DO NOT REMOVE unless deprecated on the SDK. legacy.Cdc = cdc - keys.KeysCdc = cdc } diff --git a/crypto/codec/codec.go b/crypto/codec/proto.go similarity index 82% rename from crypto/codec/codec.go rename to crypto/codec/proto.go index 00475d39..b12370c2 100644 --- a/crypto/codec/codec.go +++ b/crypto/codec/proto.go @@ -10,4 +10,5 @@ import ( // RegisterInterfaces register the stratos key concrete types. func RegisterInterfaces(registry codectypes.InterfaceRegistry) { registry.RegisterImplementations((*cryptotypes.PubKey)(nil), ðsecp256k1.PubKey{}) + registry.RegisterImplementations((*cryptotypes.PrivKey)(nil), ðsecp256k1.PrivKey{}) } diff --git a/crypto/ethsecp256k1/ethsecp256k1.go b/crypto/ethsecp256k1/ethsecp256k1.go index 97b04fa6..f7e5bbfc 100644 --- a/crypto/ethsecp256k1/ethsecp256k1.go +++ b/crypto/ethsecp256k1/ethsecp256k1.go @@ -6,13 +6,15 @@ import ( "crypto/subtle" "fmt" + "github.com/ethereum/go-ethereum/crypto" + + tmcrypto "github.com/cometbft/cometbft/crypto" + + "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/crypto/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/ethereum/go-ethereum/crypto" - - tmcrypto "github.com/tendermint/tendermint/crypto" ) const ( @@ -187,7 +189,7 @@ func (pubKey PubKey) MarshalAmino() ([]byte, error) { // UnmarshalAmino overrides Amino binary marshaling. func (pubKey *PubKey) UnmarshalAmino(bz []byte) error { if len(bz) != PubKeySize { - return sdkerrors.Wrapf(sdkerrors.ErrInvalidPubKey, "invalid pubkey size, expected %d, got %d", PubKeySize, len(bz)) + return errors.Wrapf(sdkerrors.ErrInvalidPubKey, "invalid pubkey size, expected %d, got %d", PubKeySize, len(bz)) } pubKey.Key = bz diff --git a/crypto/ethsecp256k1/keys.pb.go b/crypto/ethsecp256k1/keys.pb.go index 8770368f..bf9ecf5b 100644 --- a/crypto/ethsecp256k1/keys.pb.go +++ b/crypto/ethsecp256k1/keys.pb.go @@ -5,8 +5,8 @@ package ethsecp256k1 import ( fmt "fmt" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" @@ -27,6 +27,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // Tendermint's PubKey interface. It represents the 33-byte compressed public // key format. type PubKey struct { + // key is the public key in byte form Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` } @@ -72,6 +73,7 @@ func (m *PubKey) GetKey() []byte { // PrivKey defines a type alias for an ecdsa.PrivateKey that implements // Tendermint's PrivateKey interface. type PrivKey struct { + // key is the private key in byte form Key []byte `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` } diff --git a/encoding/config.go b/encoding/config.go deleted file mode 100644 index 605728ee..00000000 --- a/encoding/config.go +++ /dev/null @@ -1,31 +0,0 @@ -package encoding - -import ( - sdkcodec "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/codec/types" - "github.com/cosmos/cosmos-sdk/simapp/params" - "github.com/cosmos/cosmos-sdk/types/module" - "github.com/cosmos/cosmos-sdk/x/auth/tx" - - "github.com/stratosnet/stratos-chain/encoding/codec" -) - -// MakeConfig creates an EncodingConfig for testing -func MakeConfig(mb module.BasicManager) params.EncodingConfig { - cdc := sdkcodec.NewLegacyAmino() - interfaceRegistry := types.NewInterfaceRegistry() - marshaler := sdkcodec.NewProtoCodec(interfaceRegistry) - - encodingConfig := params.EncodingConfig{ - InterfaceRegistry: interfaceRegistry, - Marshaler: marshaler, - TxConfig: tx.NewTxConfig(marshaler, tx.DefaultSignModes), - Amino: cdc, - } - - codec.RegisterLegacyAminoCodec(encodingConfig.Amino) - mb.RegisterLegacyAminoCodec(encodingConfig.Amino) - codec.RegisterInterfaces(encodingConfig.InterfaceRegistry) - mb.RegisterInterfaces(encodingConfig.InterfaceRegistry) - return encodingConfig -} diff --git a/encoding/encoding.go b/encoding/encoding.go new file mode 100644 index 00000000..ed0d5cd2 --- /dev/null +++ b/encoding/encoding.go @@ -0,0 +1,21 @@ +package encoding + +import ( + simappparams "cosmossdk.io/simapp/params" + "github.com/cosmos/cosmos-sdk/types/module" + + "github.com/stratosnet/stratos-chain/encoding/params" +) + +// MakeEncodingConfig creates an EncodingConfig for testing. This function +// should be used only in tests or when creating a new app instance (NewApp*()). +// App user shouldn't create new codecs - use the app.AppCodec instead. +func MakeEncodingConfig(mb module.BasicManager) simappparams.EncodingConfig { + encodingConfig := params.MakeEncodingConfig() + + params.RegisterLegacyAminoCodec(encodingConfig.Amino) + mb.RegisterLegacyAminoCodec(encodingConfig.Amino) + params.RegisterInterfaces(encodingConfig.InterfaceRegistry) + mb.RegisterInterfaces(encodingConfig.InterfaceRegistry) + return encodingConfig +} diff --git a/encoding/params/amino.go b/encoding/params/amino.go new file mode 100644 index 00000000..f580efb6 --- /dev/null +++ b/encoding/params/amino.go @@ -0,0 +1,15 @@ +package params + +import ( + "github.com/cosmos/cosmos-sdk/codec" + sdk "github.com/cosmos/cosmos-sdk/types" + + cryptocodec "github.com/stratosnet/stratos-chain/crypto/codec" +) + +// RegisterLegacyAminoCodec registers Interfaces from types, crypto, and SDK std. +func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { + sdk.RegisterLegacyAminoCodec(cdc) + cryptocodec.RegisterCrypto(cdc) + codec.RegisterEvidences(cdc) +} diff --git a/encoding/params/params.go b/encoding/params/params.go new file mode 100644 index 00000000..12e5c206 --- /dev/null +++ b/encoding/params/params.go @@ -0,0 +1,25 @@ +package params + +import ( + simappparams "cosmossdk.io/simapp/params" + + "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/x/auth/tx" +) + +func MakeEncodingConfig() simappparams.EncodingConfig { + amino := codec.NewLegacyAmino() + interfaceRegistry := types.NewInterfaceRegistry() + protoCodec := codec.NewProtoCodec(interfaceRegistry) + txCfg := tx.NewTxConfig(protoCodec, tx.DefaultSignModes) + + encodingConfig := simappparams.EncodingConfig{ + InterfaceRegistry: interfaceRegistry, + Codec: protoCodec, + TxConfig: txCfg, + Amino: amino, + } + + return encodingConfig +} diff --git a/encoding/codec/codec.go b/encoding/params/proto.go similarity index 60% rename from encoding/codec/codec.go rename to encoding/params/proto.go index 98cb4a1b..02207edd 100644 --- a/encoding/codec/codec.go +++ b/encoding/params/proto.go @@ -1,22 +1,13 @@ -package codec +package params import ( - "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/std" - sdk "github.com/cosmos/cosmos-sdk/types" cryptocodec "github.com/stratosnet/stratos-chain/crypto/codec" stratos "github.com/stratosnet/stratos-chain/types" ) -// RegisterLegacyAminoCodec registers Interfaces from types, crypto, and SDK std. -func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { - sdk.RegisterLegacyAminoCodec(cdc) - cryptocodec.RegisterCrypto(cdc) - codec.RegisterEvidences(cdc) -} - // RegisterInterfaces registers Interfaces from types, crypto, and SDK std. func RegisterInterfaces(interfaceRegistry codectypes.InterfaceRegistry) { std.RegisterInterfaces(interfaceRegistry) diff --git a/ethereum/eip712/eip712.go b/ethereum/eip712/eip712.go index 35a05dc2..bd9ec3ad 100644 --- a/ethereum/eip712/eip712.go +++ b/ethereum/eip712/eip712.go @@ -8,10 +8,11 @@ import ( "reflect" "strings" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/math" "github.com/ethereum/go-ethereum/crypto" @@ -22,13 +23,13 @@ import ( func ComputeTypedDataHash(typedData apitypes.TypedData) ([]byte, error) { domainSeparator, err := typedData.HashStruct("EIP712Domain", typedData.Domain.Map()) if err != nil { - err = sdkerrors.Wrap(err, "failed to pack and hash typedData EIP712Domain") + err = errors.Wrap(err, "failed to pack and hash typedData EIP712Domain") return nil, err } typedDataHash, err := typedData.HashStruct(typedData.PrimaryType, typedData.Message) if err != nil { - err = sdkerrors.Wrap(err, "failed to pack and hash typedData primary type") + err = errors.Wrap(err, "failed to pack and hash typedData primary type") return nil, err } @@ -48,7 +49,7 @@ func WrapTxToTypedData( txData := make(map[string]interface{}) if err := json.Unmarshal(data, &txData); err != nil { - return apitypes.TypedData{}, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, "failed to JSON unmarshal data") + return apitypes.TypedData{}, errors.Wrap(sdkerrors.ErrJSONUnmarshal, "failed to JSON unmarshal data") } domain := apitypes.TypedDataDomain{ @@ -67,7 +68,7 @@ func WrapTxToTypedData( if feeDelegation != nil { feeInfo, ok := txData["fee"].(map[string]interface{}) if !ok { - return apitypes.TypedData{}, sdkerrors.Wrap(sdkerrors.ErrInvalidType, "cannot parse fee from tx data") + return apitypes.TypedData{}, errors.Wrap(sdkerrors.ErrInvalidType, "cannot parse fee from tx data") } feeInfo["feePayer"] = feeDelegation.FeePayer.String() @@ -209,17 +210,17 @@ func traverseFields( fieldName := jsonNameFromTag(t.Field(i).Tag) if fieldType == cosmosAnyType { - any, ok := field.Interface().(*codectypes.Any) + anyType, ok := field.Interface().(*codectypes.Any) if !ok { - return sdkerrors.Wrapf(sdkerrors.ErrPackAny, "%T", field.Interface()) + return errors.Wrapf(sdkerrors.ErrPackAny, "%T", field.Interface()) } anyWrapper := &cosmosAnyWrapper{ - Type: any.TypeUrl, + Type: anyType.TypeUrl, } - if err := cdc.UnpackAny(any, &anyWrapper.Value); err != nil { - return sdkerrors.Wrap(err, "failed to unpack Any in msg struct") + if err := cdc.UnpackAny(anyType, &anyWrapper.Value); err != nil { + return errors.Wrap(err, "failed to unpack Any in msg struct") } fieldType = reflect.TypeOf(anyWrapper) @@ -362,8 +363,8 @@ func sanitizeTypedef(str string) string { continue } - subparts := strings.Split(part, "_") - for _, subpart := range subparts { + subParts := strings.Split(part, "_") + for _, subpart := range subParts { buf.WriteString(strings.Title(subpart)) } } @@ -375,7 +376,7 @@ var ( hashType = reflect.TypeOf(common.Hash{}) addressType = reflect.TypeOf(common.Address{}) bigIntType = reflect.TypeOf(big.Int{}) - cosmIntType = reflect.TypeOf(sdk.Int{}) + cosmIntType = reflect.TypeOf(sdkmath.Int{}) cosmosAnyType = reflect.TypeOf(&codectypes.Any{}) ) @@ -439,7 +440,7 @@ func typToEth(typ reflect.Type) string { func doRecover(err *error) { if r := recover(); r != nil { if e, ok := r.(error); ok { - e = sdkerrors.Wrap(e, "panicked with error") + e = errors.Wrap(e, "panicked with error") *err = e return } diff --git a/go.mod b/go.mod index 56d1ac4d..795b4894 100644 --- a/go.mod +++ b/go.mod @@ -3,92 +3,120 @@ module github.com/stratosnet/stratos-chain go 1.19 require ( + cosmossdk.io/api v0.3.1 + cosmossdk.io/core v0.5.1 + cosmossdk.io/depinject v1.0.0-alpha.4 + cosmossdk.io/math v1.1.2 + cosmossdk.io/simapp v0.0.0-20230828070859-c9144f02dda8 + cosmossdk.io/tools/rosetta v0.2.1 github.com/Nik-U/pbc v0.0.0-20181205041846-3e516ca0c5d6 github.com/btcsuite/btcd v0.23.4 github.com/btcsuite/btcd/btcutil v1.1.2 - github.com/cosmos/cosmos-sdk v0.45.9 + github.com/cometbft/cometbft v0.37.2 + github.com/cometbft/cometbft-db v0.8.0 + github.com/cosmos/cosmos-proto v1.0.0-beta.2 + github.com/cosmos/cosmos-sdk v0.47.5 github.com/cosmos/go-bip39 v1.0.0 - github.com/cosmos/ibc-go/v3 v3.0.0 + github.com/cosmos/gogoproto v1.4.10 + github.com/cosmos/ibc-go/v7 v7.3.0 github.com/davecgh/go-spew v1.1.1 github.com/dop251/goja v0.0.0-20220405120441-9037c2b61cbf github.com/ethereum/go-ethereum v1.10.26 - github.com/gogo/protobuf v1.3.3 - github.com/golang/protobuf v1.5.2 + github.com/gogo/protobuf v1.3.2 + github.com/golang/protobuf v1.5.3 github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 - github.com/improbable-eng/grpc-web v0.15.0 github.com/ipfs/go-cid v0.1.0 github.com/kelindar/bitmap v1.4.1 github.com/pkg/errors v0.9.1 - github.com/rakyll/statik v0.1.7 - github.com/regen-network/cosmos-proto v0.3.1 - github.com/spf13/cast v1.5.0 - github.com/spf13/cobra v1.6.0 + github.com/spf13/cast v1.5.1 + github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.14.0 - github.com/stretchr/testify v1.8.1 - github.com/tendermint/tendermint v0.34.25-0.20221221220620-936221e0a8d9 - github.com/tendermint/tm-db v0.6.7 + github.com/spf13/viper v1.16.0 + github.com/stretchr/testify v1.8.4 github.com/tyler-smith/go-bip39 v1.1.0 - google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e - google.golang.org/grpc v1.50.1 - google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 + google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 + google.golang.org/grpc v1.58.2 + google.golang.org/protobuf v1.31.0 gopkg.in/yaml.v2 v2.4.0 ) require ( - filippo.io/edwards25519 v1.0.0-beta.2 // indirect - github.com/99designs/keyring v1.1.6 // indirect + cloud.google.com/go v0.110.8 // indirect + cloud.google.com/go/compute v1.23.0 // indirect + cloud.google.com/go/compute/metadata v0.2.3 // indirect + cloud.google.com/go/iam v1.1.2 // indirect + cloud.google.com/go/storage v1.30.1 // indirect + cosmossdk.io/errors v1.0.0 // indirect + cosmossdk.io/log v1.2.1 // 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.1 // indirect github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect - github.com/DataDog/zstd v1.4.5 // indirect github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 // indirect github.com/VictoriaMetrics/fastcache v1.6.0 // indirect - github.com/Workiva/go-datastructures v1.0.53 // indirect github.com/allegro/bigcache v1.2.1 // indirect - github.com/armon/go-metrics v0.4.0 // indirect + github.com/armon/go-metrics v0.4.1 // indirect + github.com/aws/aws-sdk-go v1.44.203 // indirect github.com/beorn7/perks v1.0.1 // indirect + github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 // indirect - github.com/cenkalti/backoff/v4 v4.1.1 // indirect + github.com/cenkalti/backoff/v4 v4.1.3 // indirect github.com/cespare/xxhash v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect - github.com/coinbase/rosetta-sdk-go v0.7.0 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/chzyer/readline v1.5.1 // indirect + github.com/cockroachdb/apd/v2 v2.0.2 // indirect + github.com/cockroachdb/errors v1.10.0 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/redact v1.1.5 // indirect + github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect github.com/confio/ics23/go v0.9.0 // indirect - github.com/cosmos/btcutil v1.0.4 // indirect - github.com/cosmos/gorocksdb v1.2.0 // indirect - github.com/cosmos/iavl v0.19.4 // indirect + github.com/cosmos/btcutil v1.0.5 // indirect + github.com/cosmos/gogogateway v1.2.0 // indirect + github.com/cosmos/iavl v0.20.0 // indirect + github.com/cosmos/ics23/go v0.10.0 // indirect + github.com/cosmos/ledger-cosmos-go v0.12.1 // indirect + github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect - github.com/creachadair/taskgroup v0.3.2 // indirect + github.com/creachadair/taskgroup v0.4.2 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/deckarep/golang-set v1.8.0 // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f // indirect - github.com/dgraph-io/badger/v2 v2.2007.2 // indirect - github.com/dgraph-io/ristretto v0.0.3 // indirect + github.com/dgraph-io/badger/v2 v2.2007.4 // indirect + github.com/dgraph-io/ristretto v0.1.1 // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 // indirect - github.com/dustin/go-humanize v1.0.0 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect github.com/dvsekhvalnov/jose2go v1.5.0 // indirect github.com/edsrzf/mmap-go v1.0.0 // indirect - github.com/felixge/httpsnoop v1.0.1 // indirect + github.com/felixge/httpsnoop v1.0.2 // indirect github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff // indirect + github.com/getsentry/sentry-go v0.23.0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect - github.com/go-logfmt/logfmt v0.5.1 // indirect - github.com/go-ole/go-ole v1.2.1 // indirect - github.com/go-playground/validator/v10 v10.4.1 // indirect + github.com/go-logfmt/logfmt v0.6.0 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect github.com/go-stack/stack v1.8.0 // indirect github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect - github.com/gogo/gateway v1.1.0 // indirect + github.com/gogo/googleapis v1.4.1 // indirect github.com/golang-jwt/jwt/v4 v4.3.0 // indirect + github.com/golang/glog v1.1.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/mock v1.6.0 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/google/btree v1.0.0 // indirect + github.com/google/btree v1.1.2 // indirect + github.com/google/go-cmp v0.5.9 // indirect github.com/google/orderedcode v0.0.1 // indirect + github.com/google/s2a-go v0.1.4 // indirect github.com/google/uuid v1.3.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.2.4 // indirect + github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect @@ -96,31 +124,43 @@ require ( github.com/gtank/merlin v0.1.1 // indirect github.com/gtank/ristretto255 v0.1.2 // indirect github.com/hashicorp/go-bexpr v0.1.10 // indirect + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-getter v1.7.1 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-safetemp v1.0.0 // indirect + github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 // indirect + github.com/hdevalence/ed25519consensus v0.1.0 // indirect github.com/holiman/bloomfilter/v2 v2.0.3 // indirect github.com/holiman/uint256 v1.2.0 // indirect + github.com/huandu/skiplist v1.2.0 // indirect github.com/huin/goupnp v1.0.3 // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect + github.com/improbable-eng/grpc-web v0.15.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jackpal/go-nat-pmp v1.0.2 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/kelindar/simd v1.1.2 // indirect - github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d // indirect - github.com/klauspost/compress v1.15.11 // indirect + github.com/klauspost/compress v1.16.3 // indirect github.com/klauspost/cpuid/v2 v2.0.12 // indirect - github.com/lib/pq v1.10.6 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect + github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/magiconair/properties v1.8.6 // indirect + github.com/linxGnu/grocksdb v1.7.16 // indirect + github.com/magiconair/properties v1.8.7 // indirect + github.com/manifoldco/promptui v0.9.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.16 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 // indirect github.com/minio/blake2b-simd v0.0.0-20160723061019-3f5f724cb5b1 // indirect github.com/minio/highwayhash v1.0.2 // indirect github.com/minio/sha256-simd v1.0.0 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/go-testing-interface v1.14.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/pointerstructure v1.2.0 // indirect github.com/mr-tron/base58 v1.2.0 // indirect @@ -132,54 +172,76 @@ require ( github.com/multiformats/go-varint v0.0.6 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/onsi/ginkgo v1.16.5 // indirect - github.com/pelletier/go-toml v1.9.5 // indirect - github.com/pelletier/go-toml/v2 v2.0.5 // indirect - github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect + github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_golang v1.12.2 // indirect - github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.34.0 // indirect - github.com/prometheus/procfs v0.8.0 // indirect + github.com/prometheus/client_golang v1.17.0 // indirect + github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect + github.com/prometheus/common v0.44.0 // indirect + github.com/prometheus/procfs v0.11.1 // indirect github.com/prometheus/tsdb v0.7.1 // indirect + github.com/rakyll/statik v0.1.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rjeczalik/notify v0.9.1 // indirect - github.com/rs/cors v1.8.2 // indirect - github.com/rs/zerolog v1.27.0 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect + github.com/rs/cors v1.8.3 // indirect + github.com/rs/zerolog v1.30.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible // indirect - github.com/spf13/afero v1.9.2 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/spf13/afero v1.9.5 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 // indirect - github.com/stratosnet/ledger-stratos-go v0.0.0-20230728192009-175657d24cb0 // indirect - github.com/subosito/gotenv v1.4.1 // indirect - github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect + github.com/subosito/gotenv v1.4.2 // indirect + github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect - github.com/tidwall/btree v1.5.0 // indirect - github.com/tklauser/go-sysconf v0.3.5 // indirect - github.com/tklauser/numcpus v0.2.2 // indirect + github.com/tidwall/btree v1.6.0 // indirect + github.com/tklauser/go-sysconf v0.3.11 // indirect + github.com/tklauser/numcpus v0.6.0 // indirect + github.com/ulikunitz/xz v0.5.11 // indirect github.com/urfave/cli/v2 v2.10.2 // indirect github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect github.com/zondax/hid v0.9.1 // indirect github.com/zondax/ledger-go v0.14.1 // indirect - go.etcd.io/bbolt v1.3.6 // indirect - golang.org/x/crypto v0.4.0 // indirect - golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect - golang.org/x/net v0.4.0 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.3.0 // indirect - golang.org/x/term v0.3.0 // indirect - golang.org/x/text v0.5.0 // indirect + go.etcd.io/bbolt v1.3.7 // indirect + go.opencensus.io v0.24.0 // indirect + golang.org/x/crypto v0.12.0 // indirect + golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect + golang.org/x/net v0.14.0 // indirect + golang.org/x/oauth2 v0.10.0 // indirect + golang.org/x/sync v0.3.0 // indirect + golang.org/x/sys v0.11.0 // indirect + golang.org/x/term v0.11.0 // indirect + golang.org/x/text v0.12.0 // indirect + golang.org/x/tools v0.12.0 // indirect + golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect + google.golang.org/api v0.128.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.6 // indirect + pgregory.net/rapid v0.5.5 // indirect + sigs.k8s.io/yaml v1.3.0 // indirect ) replace ( - github.com/99designs/keyring => github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 + // use cosmos fork of keyring + github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 - github.com/cosmos/cosmos-sdk => github.com/stratosnet/cosmos-sdk v0.45.12-0.20230927180229-33a41a26eb19 - github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1 - google.golang.org/grpc => google.golang.org/grpc v1.33.2 + + // dgrijalva/jwt-go is deprecated and doesn't receive security updates. + // TODO: remove it: https://github.com/cosmos/cosmos-sdk/issues/13134 + github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt/v4 v4.4.2 + + // Fix upstream GHSA-h395-qcrw-5vmq and GHSA-3vp4-m3rf-835h vulnerabilities. + // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 + github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.9.0 + + // replace broken goleveldb + github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 ) diff --git a/go.sum b/go.sum index 447ee777..5d8be668 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,4 @@ +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.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= @@ -16,49 +17,203 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= +cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= +cloud.google.com/go v0.104.0/go.mod h1:OO6xxXdJyvuJPcEPBLN9BJPD+jep5G1+2U5B5gkRYtA= +cloud.google.com/go v0.110.8 h1:tyNdfIxjzaWctIiLYOTalaLKZ17SI44SKFW26QbOhME= +cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= +cloud.google.com/go/aiplatform v1.22.0/go.mod h1:ig5Nct50bZlzV6NvKaTwmplLLddFx0YReh9WfTO5jKw= +cloud.google.com/go/aiplatform v1.24.0/go.mod h1:67UUvRBKG6GTayHKV8DBv2RtR1t93YRu5B1P3x99mYY= +cloud.google.com/go/analytics v0.11.0/go.mod h1:DjEWCu41bVbYcKyvlws9Er60YE4a//bK6mnhWvQeFNI= +cloud.google.com/go/analytics v0.12.0/go.mod h1:gkfj9h6XRf9+TS4bmuhPEShsh3hH8PAZzm/41OOhQd4= +cloud.google.com/go/area120 v0.5.0/go.mod h1:DE/n4mp+iqVyvxHN41Vf1CR602GiHQjFPusMFW6bGR4= +cloud.google.com/go/area120 v0.6.0/go.mod h1:39yFJqWVgm0UZqWTOdqkLhjoC7uFfgXRC8g/ZegeAh0= +cloud.google.com/go/artifactregistry v1.6.0/go.mod h1:IYt0oBPSAGYj/kprzsBjZ/4LnG/zOcHyFHjWPCi6SAQ= +cloud.google.com/go/artifactregistry v1.7.0/go.mod h1:mqTOFOnGZx8EtSqK/ZWcsm/4U8B77rbcLP6ruDU2Ixk= +cloud.google.com/go/asset v1.5.0/go.mod h1:5mfs8UvcM5wHhqtSv8J1CtxxaQq3AdBxxQi2jGW/K4o= +cloud.google.com/go/asset v1.7.0/go.mod h1:YbENsRK4+xTiL+Ofoj5Ckf+O17kJtgp3Y3nn4uzZz5s= +cloud.google.com/go/asset v1.8.0/go.mod h1:mUNGKhiqIdbr8X7KNayoYvyc4HbbFO9URsjbytpUaW0= +cloud.google.com/go/assuredworkloads v1.5.0/go.mod h1:n8HOZ6pff6re5KYfBXcFvSViQjDwxFkAkmUFffJRbbY= +cloud.google.com/go/assuredworkloads v1.6.0/go.mod h1:yo2YOk37Yc89Rsd5QMVECvjaMKymF9OP+QXWlKXUkXw= +cloud.google.com/go/assuredworkloads v1.7.0/go.mod h1:z/736/oNmtGAyU47reJgGN+KVoYoxeLBoj4XkKYscNI= +cloud.google.com/go/automl v1.5.0/go.mod h1:34EjfoFGMZ5sgJ9EoLsRtdPSNZLcfflJR39VbVNS2M0= +cloud.google.com/go/automl v1.6.0/go.mod h1:ugf8a6Fx+zP0D59WLhqgTDsQI9w07o64uf/Is3Nh5p8= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigquery v1.42.0/go.mod h1:8dRTJxhtG+vwBKzE5OseQn/hiydoQN3EedCaOdYmxRA= +cloud.google.com/go/billing v1.4.0/go.mod h1:g9IdKBEFlItS8bTtlrZdVLWSSdSyFUZKXNS02zKMOZY= +cloud.google.com/go/billing v1.5.0/go.mod h1:mztb1tBc3QekhjSgmpf/CV4LzWXLzCArwpLmP2Gm88s= +cloud.google.com/go/binaryauthorization v1.1.0/go.mod h1:xwnoWu3Y84jbuHa0zd526MJYmtnVXn0syOjaJgy4+dM= +cloud.google.com/go/binaryauthorization v1.2.0/go.mod h1:86WKkJHtRcv5ViNABtYMhhNWRrD1Vpi//uKEy7aYEfI= +cloud.google.com/go/cloudtasks v1.5.0/go.mod h1:fD92REy1x5woxkKEkLdvavGnPJGEn8Uic9nWuLzqCpY= +cloud.google.com/go/cloudtasks v1.6.0/go.mod h1:C6Io+sxuke9/KNRkbQpihnW93SWDU3uXt92nu85HkYI= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= +cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= +cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= +cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= +cloud.google.com/go/compute v1.23.0 h1:tP41Zoavr8ptEqaW6j+LQOnyBBhO7OkOMAGrgLopTwY= +cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +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/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= +cloud.google.com/go/containeranalysis v0.6.0/go.mod h1:HEJoiEIu+lEXM+k7+qLCci0h33lX3ZqoYFdmPcoO7s4= +cloud.google.com/go/datacatalog v1.3.0/go.mod h1:g9svFY6tuR+j+hrTw3J2dNcmI0dzmSiyOzm8kpLq0a0= +cloud.google.com/go/datacatalog v1.5.0/go.mod h1:M7GPLNQeLfWqeIm3iuiruhPzkt65+Bx8dAKvScX8jvs= +cloud.google.com/go/datacatalog v1.6.0/go.mod h1:+aEyF8JKg+uXcIdAmmaMUmZ3q1b/lKLtXCmXdnc0lbc= +cloud.google.com/go/dataflow v0.6.0/go.mod h1:9QwV89cGoxjjSR9/r7eFDqqjtvbKxAK2BaYU6PVk9UM= +cloud.google.com/go/dataflow v0.7.0/go.mod h1:PX526vb4ijFMesO1o202EaUmouZKBpjHsTlCtB4parQ= +cloud.google.com/go/dataform v0.3.0/go.mod h1:cj8uNliRlHpa6L3yVhDOBrUXH+BPAO1+KFMQQNSThKo= +cloud.google.com/go/dataform v0.4.0/go.mod h1:fwV6Y4Ty2yIFL89huYlEkwUPtS7YZinZbzzj5S9FzCE= +cloud.google.com/go/datalabeling v0.5.0/go.mod h1:TGcJ0G2NzcsXSE/97yWjIZO0bXj0KbVlINXMG9ud42I= +cloud.google.com/go/datalabeling v0.6.0/go.mod h1:WqdISuk/+WIGeMkpw/1q7bK/tFEZxsrFJOJdY2bXvTQ= +cloud.google.com/go/dataqna v0.5.0/go.mod h1:90Hyk596ft3zUQ8NkFfvICSIfHFh1Bc7C4cK3vbhkeo= +cloud.google.com/go/dataqna v0.6.0/go.mod h1:1lqNpM7rqNLVgWBJyk5NF6Uen2PHym0jtVJonplVsDA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/datastream v1.2.0/go.mod h1:i/uTP8/fZwgATHS/XFu0TcNUhuA0twZxxQ3EyCUQMwo= +cloud.google.com/go/datastream v1.3.0/go.mod h1:cqlOX8xlyYF/uxhiKn6Hbv6WjwPPuI9W2M9SAXwaLLQ= +cloud.google.com/go/dialogflow v1.15.0/go.mod h1:HbHDWs33WOGJgn6rfzBW1Kv807BE3O1+xGbn59zZWI4= +cloud.google.com/go/dialogflow v1.16.1/go.mod h1:po6LlzGfK+smoSmTBnbkIZY2w8ffjz/RcGSS+sh1el0= +cloud.google.com/go/dialogflow v1.17.0/go.mod h1:YNP09C/kXA1aZdBgC/VtXX74G/TKn7XVCcVumTflA+8= +cloud.google.com/go/documentai v1.7.0/go.mod h1:lJvftZB5NRiFSX4moiye1SMxHx0Bc3x1+p9e/RfXYiU= +cloud.google.com/go/documentai v1.8.0/go.mod h1:xGHNEB7CtsnySCNrCFdCyyMz44RhFEEX2Q7UD0c5IhU= +cloud.google.com/go/domains v0.6.0/go.mod h1:T9Rz3GasrpYk6mEGHh4rymIhjlnIuB4ofT1wTxDeT4Y= +cloud.google.com/go/domains v0.7.0/go.mod h1:PtZeqS1xjnXuRPKE/88Iru/LdfoRyEHYA9nFQf4UKpg= +cloud.google.com/go/edgecontainer v0.1.0/go.mod h1:WgkZ9tp10bFxqO8BLPqv2LlfmQF1X8lZqwW4r1BTajk= +cloud.google.com/go/edgecontainer v0.2.0/go.mod h1:RTmLijy+lGpQ7BXuTDa4C4ssxyXT34NIuHIgKuP4s5w= +cloud.google.com/go/functions v1.6.0/go.mod h1:3H1UA3qiIPRWD7PeZKLvHZ9SaQhR26XIJcC0A5GbvAk= +cloud.google.com/go/functions v1.7.0/go.mod h1:+d+QBcWM+RsrgZfV9xo6KfA1GlzJfxcfZcRPEhDDfzg= +cloud.google.com/go/gaming v1.5.0/go.mod h1:ol7rGcxP/qHTRQE/RO4bxkXq+Fix0j6D4LFPzYTIrDM= +cloud.google.com/go/gaming v1.6.0/go.mod h1:YMU1GEvA39Qt3zWGyAVA9bpYz/yAhTvaQ1t2sK4KPUA= +cloud.google.com/go/gkeconnect v0.5.0/go.mod h1:c5lsNAg5EwAy7fkqX/+goqFsU1Da/jQFqArp+wGNr/o= +cloud.google.com/go/gkeconnect v0.6.0/go.mod h1:Mln67KyU/sHJEBY8kFZ0xTeyPtzbq9StAVvEULYK16A= +cloud.google.com/go/gkehub v0.9.0/go.mod h1:WYHN6WG8w9bXU0hqNxt8rm5uxnk8IH+lPY9J2TV7BK0= +cloud.google.com/go/gkehub v0.10.0/go.mod h1:UIPwxI0DsrpsVoWpLB0stwKCP+WFVG9+y977wO+hBH0= +cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= +cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= +cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= +cloud.google.com/go/iam v1.1.2 h1:gacbrBdWcoVmGLozRuStX45YKvJtzIjJdAolzUs1sm4= +cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= +cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= +cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= +cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= +cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= +cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= +cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= +cloud.google.com/go/memcache v1.5.0/go.mod h1:dk3fCK7dVo0cUU2c36jKb4VqKPS22BTkf81Xq617aWM= +cloud.google.com/go/metastore v1.5.0/go.mod h1:2ZNrDcQwghfdtCwJ33nM0+GrBGlVuh8rakL3vdPY3XY= +cloud.google.com/go/metastore v1.6.0/go.mod h1:6cyQTls8CWXzk45G55x57DVQ9gWg7RiH65+YgPsNh9s= +cloud.google.com/go/networkconnectivity v1.4.0/go.mod h1:nOl7YL8odKyAOtzNX73/M5/mGZgqqMeryi6UPZTk/rA= +cloud.google.com/go/networkconnectivity v1.5.0/go.mod h1:3GzqJx7uhtlM3kln0+x5wyFvuVH1pIBJjhCpjzSt75o= +cloud.google.com/go/networksecurity v0.5.0/go.mod h1:xS6fOCoqpVC5zx15Z/MqkfDwH4+m/61A3ODiDV1xmiQ= +cloud.google.com/go/networksecurity v0.6.0/go.mod h1:Q5fjhTr9WMI5mbpRYEbiexTzROf7ZbDzvzCrNl14nyU= +cloud.google.com/go/notebooks v1.2.0/go.mod h1:9+wtppMfVPUeJ8fIWPOq1UnATHISkGXGqTkxeieQ6UY= +cloud.google.com/go/notebooks v1.3.0/go.mod h1:bFR5lj07DtCPC7YAAJ//vHskFBxA5JzYlH68kXVdk34= +cloud.google.com/go/osconfig v1.7.0/go.mod h1:oVHeCeZELfJP7XLxcBGTMBvRO+1nQ5tFG9VQTmYS2Fs= +cloud.google.com/go/osconfig v1.8.0/go.mod h1:EQqZLu5w5XA7eKizepumcvWx+m8mJUhEwiPqWiZeEdg= +cloud.google.com/go/oslogin v1.4.0/go.mod h1:YdgMXWRaElXz/lDk1Na6Fh5orF7gvmJ0FGLIs9LId4E= +cloud.google.com/go/oslogin v1.5.0/go.mod h1:D260Qj11W2qx/HVF29zBg+0fd6YCSjSqLUkY/qEenQU= +cloud.google.com/go/phishingprotection v0.5.0/go.mod h1:Y3HZknsK9bc9dMi+oE8Bim0lczMU6hrX0UpADuMefr0= +cloud.google.com/go/phishingprotection v0.6.0/go.mod h1:9Y3LBLgy0kDTcYET8ZH3bq/7qni15yVUoAxiFxnlSUA= +cloud.google.com/go/privatecatalog v0.5.0/go.mod h1:XgosMUvvPyxDjAVNDYxJ7wBW8//hLDDYmnsNcMGq1K0= +cloud.google.com/go/privatecatalog v0.6.0/go.mod h1:i/fbkZR0hLN29eEWiiwue8Pb+GforiEIBnV9yrRUOKI= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/recaptchaenterprise v1.3.1/go.mod h1:OdD+q+y4XGeAlxRaMn1Y7/GveP6zmq76byL6tjPE7d4= +cloud.google.com/go/recaptchaenterprise/v2 v2.1.0/go.mod h1:w9yVqajwroDNTfGuhmOjPDN//rZGySaf6PtFVcSCa7o= +cloud.google.com/go/recaptchaenterprise/v2 v2.2.0/go.mod h1:/Zu5jisWGeERrd5HnlS3EUGb/D335f9k51B/FVil0jk= +cloud.google.com/go/recaptchaenterprise/v2 v2.3.0/go.mod h1:O9LwGCjrhGHBQET5CA7dd5NwwNQUErSgEDit1DLNTdo= +cloud.google.com/go/recommendationengine v0.5.0/go.mod h1:E5756pJcVFeVgaQv3WNpImkFP8a+RptV6dDLGPILjvg= +cloud.google.com/go/recommendationengine v0.6.0/go.mod h1:08mq2umu9oIqc7tDy8sx+MNJdLG0fUi3vaSVbztHgJ4= +cloud.google.com/go/recommender v1.5.0/go.mod h1:jdoeiBIVrJe9gQjwd759ecLJbxCDED4A6p+mqoqDvTg= +cloud.google.com/go/recommender v1.6.0/go.mod h1:+yETpm25mcoiECKh9DEScGzIRyDKpZ0cEhWGo+8bo+c= +cloud.google.com/go/redis v1.7.0/go.mod h1:V3x5Jq1jzUcg+UNsRvdmsfuFnit1cfe3Z/PGyq/lm4Y= +cloud.google.com/go/redis v1.8.0/go.mod h1:Fm2szCDavWzBk2cDKxrkmWBqoCiL1+Ctwq7EyqBCA/A= +cloud.google.com/go/retail v1.8.0/go.mod h1:QblKS8waDmNUhghY2TI9O3JLlFk8jybHeV4BF19FrE4= +cloud.google.com/go/retail v1.9.0/go.mod h1:g6jb6mKuCS1QKnH/dpu7isX253absFl6iE92nHwlBUY= +cloud.google.com/go/scheduler v1.4.0/go.mod h1:drcJBmxF3aqZJRhmkHQ9b3uSSpQoltBPGPxGAWROx6s= +cloud.google.com/go/scheduler v1.5.0/go.mod h1:ri073ym49NW3AfT6DZi21vLZrG07GXr5p3H1KxN5QlI= +cloud.google.com/go/secretmanager v1.6.0/go.mod h1:awVa/OXF6IiyaU1wQ34inzQNc4ISIDIrId8qE5QGgKA= +cloud.google.com/go/security v1.5.0/go.mod h1:lgxGdyOKKjHL4YG3/YwIL2zLqMFCKs0UbQwgyZmfJl4= +cloud.google.com/go/security v1.7.0/go.mod h1:mZklORHl6Bg7CNnnjLH//0UlAlaXqiG7Lb9PsPXLfD0= +cloud.google.com/go/security v1.8.0/go.mod h1:hAQOwgmaHhztFhiQ41CjDODdWP0+AE1B3sX4OFlq+GU= +cloud.google.com/go/securitycenter v1.13.0/go.mod h1:cv5qNAqjY84FCN6Y9z28WlkKXyWsgLO832YiWwkCWcU= +cloud.google.com/go/securitycenter v1.14.0/go.mod h1:gZLAhtyKv85n52XYWt6RmeBdydyxfPeTrpToDPw4Auc= +cloud.google.com/go/servicedirectory v1.4.0/go.mod h1:gH1MUaZCgtP7qQiI+F+A+OpeKF/HQWgtAddhTbhL2bs= +cloud.google.com/go/servicedirectory v1.5.0/go.mod h1:QMKFL0NUySbpZJ1UZs3oFAmdvVxhhxB6eJ/Vlp73dfg= +cloud.google.com/go/speech v1.6.0/go.mod h1:79tcr4FHCimOp56lwC01xnt/WPJZc4v3gzyT7FoBkCM= +cloud.google.com/go/speech v1.7.0/go.mod h1:KptqL+BAQIhMsj1kOP2la5DSEEerPDuOP/2mmkhHhZQ= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= +cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= +cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= +cloud.google.com/go/storage v1.27.0/go.mod h1:x9DOL8TK/ygDUMieqwfhdpQryTeEkhGKMi80i/iqR2s= +cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= +cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/talent v1.1.0/go.mod h1:Vl4pt9jiHKvOgF9KoZo6Kob9oV4lwd/ZD5Cto54zDRw= +cloud.google.com/go/talent v1.2.0/go.mod h1:MoNF9bhFQbiJ6eFD3uSsg0uBALw4n4gaCaEjBw9zo8g= +cloud.google.com/go/videointelligence v1.6.0/go.mod h1:w0DIDlVRKtwPCn/C4iwZIJdvC69yInhW0cfi+p546uU= +cloud.google.com/go/videointelligence v1.7.0/go.mod h1:k8pI/1wAhjznARtVT9U1llUaFNPh7muw8QyOUpavru4= +cloud.google.com/go/vision v1.2.0/go.mod h1:SmNwgObm5DpFBme2xpyOyasvBc1aPdjvMk2bBk0tKD0= +cloud.google.com/go/vision/v2 v2.2.0/go.mod h1:uCdV4PpN1S0jyCyq8sIM42v2Y6zOLkZs+4R9LrGYwFo= +cloud.google.com/go/vision/v2 v2.3.0/go.mod h1:UO61abBx9QRMFkNBbf1D8B1LXdS2cGiiCRx0vSpZoUo= +cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xXZmFiHmGE= +cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= +cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= +cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= +cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= +cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= +cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= +cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= +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/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= +cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= +cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk= +cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4= +cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM= +cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= +cosmossdk.io/simapp v0.0.0-20230828070859-c9144f02dda8 h1:xQBu6b8LinrtmUkpYhCfnz9/aF1iW0BxHp7D71Z4CyI= +cosmossdk.io/simapp v0.0.0-20230828070859-c9144f02dda8/go.mod h1:1kVkzonF2p6SYsSMXXURz/kx50QWArqazCk1Myulu8g= +cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= +cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -filippo.io/edwards25519 v1.0.0-beta.2 h1:/BZRNzm8N4K4eWfK28dL4yescorxtO7YG1yun8fy+pI= -filippo.io/edwards25519 v1.0.0-beta.2/go.mod h1:X+pm78QAUPtFLi1z9PYIlS/bdDnvbCOGKtZ+ACWEf7o= -github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= -github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= -github.com/Azure/azure-storage-blob-go v0.7.0/go.mod h1:f9YQKtsG1nMisotuTPpO0tjNuEjKRYAcJU8/ydDI++4= +filippo.io/edwards25519 v1.0.0 h1:0wAIcmJUqRdI8IJ/3eGi5/HwXZWPujYXXlkrQogz0Ek= +filippo.io/edwards25519 v1.0.0/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 h1:/vQbFIOMbk2FiG/kXiLl8BRyzTWDw7gX/Hz7Dd5eDMs= +github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4/go.mod h1:hN7oaIRCjzsZ2dE+yG5k+rsdt3qcwykqK6HVGcKwsw4= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= -github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= -github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= -github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= -github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= -github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= -github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= -github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= -github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= 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/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= -github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ= -github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= github.com/Nik-U/pbc v0.0.0-20181205041846-3e516ca0c5d6 h1:GU/vL5sj0IgGYEOIIAJ1HDI9dgqT0gJXkhXINri7Otc= @@ -70,14 +225,10 @@ github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWX github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= -github.com/VictoriaMetrics/fastcache v1.5.7/go.mod h1:ptDBkNMQI4RtmVo8VS/XwRY6RoTu1dAWCbrk+6WsEM8= github.com/VictoriaMetrics/fastcache v1.6.0 h1:C/3Oi3EiBCqufydp1neRZkqcwmEiuRT9c3fqvvgKm5o= github.com/VictoriaMetrics/fastcache v1.6.0/go.mod h1:0qHz5QP0GMX4pfmMA/zt5RgfNuXJrTP0zS7DqpHGGTw= github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= -github.com/Workiva/go-datastructures v1.0.53 h1:J6Y/52yX10Xc5JjXmGtWoSSxs3mZnGSaq37xZZh7Yig= -github.com/Workiva/go-datastructures v1.0.53/go.mod h1:1yZL+zfsztete+ePzZz/Zb1/t5BnDuE2Ya2MMGhzP6A= -github.com/Zilliqa/gozilliqa-sdk v1.2.1-0.20201201074141-dd0ecada1be6/go.mod h1:eSYp2T6f0apnuW8TzhV3f6Aff2SE8Dwio++U4ha4yEM= github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= @@ -92,29 +243,29 @@ github.com/allegro/bigcache v1.2.1/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2uc github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= -github.com/aristanetworks/goarista v0.0.0-20170210015632-ea17b1a17847/go.mod h1:D/tb0zPVXnP7fmsLZjtdUhSsumbK/ij54UXjjVgMGxQ= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-metrics v0.4.0 h1:yCQqn7dwca4ITXb+CbubHmedzaQYHhNhrEXLYUeEe8Q= -github.com/armon/go-metrics v0.4.0/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= +github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= -github.com/aws/aws-sdk-go v1.25.48/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.44.203 h1:pcsP805b9acL3wUqa4JR2vg1k2wnItkDYNvfmcy6F+U= +github.com/aws/aws-sdk-go v1.44.203/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1UJrqV3uuy861HCTo708pDMbjHHdCas= +github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 h1:41iFGWnSlI2gVpmOtVTJZNodLdLQLn/KsJqFvXwnd/s= github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/btcsuite/btcd v0.0.0-20171128150713-2e60448ffcc6/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ= -github.com/btcsuite/btcd v0.0.0-20190315201642-aa6e0f35703c/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= -github.com/btcsuite/btcd v0.21.0-beta/go.mod h1:ZSWyehm27aAuS9bvkATT+Xte3hjHZ+MRgMY/8NJ7K94= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= github.com/btcsuite/btcd v0.23.0/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= github.com/btcsuite/btcd v0.23.4 h1:IzV6qqkfwbItOS/sg/aDfPDsjPP8twrCOE2R93hxMlQ= @@ -131,9 +282,7 @@ github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtyd github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20190207003914-4c204d697803/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= -github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= @@ -141,142 +290,188 @@ github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= +github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= +github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA= +github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= -github.com/cenkalti/backoff/v4 v4.1.1 h1:G2HAfAmvm/GcKan2oOQpBXOd2tT2G57ZnZGWa1PxPBQ= github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= +github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/cp v0.1.0 h1:SE+dxFebS7Iik5LK0tsi1k9ZCxEaFX4AjQmoyA+1dJk= -github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW+s= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= +github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/readline v1.5.1 h1:upd/6fQk4src78LMRzh5vItIt361/o4uq553V8B5sGI= +github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= +github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= -github.com/cloudflare/cloudflare-go v0.10.2-0.20190916151808-a80f83b9add9/go.mod h1:1MxXX1Ux4x6mqPmjkUgTP1CdXIBXKX7T+Jk9Gxrmx+U= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= +github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= +github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/coinbase/rosetta-sdk-go v0.7.0 h1:lmTO/JEpCvZgpbkOITL95rA80CPKb5CtMzLaqF2mCNg= -github.com/coinbase/rosetta-sdk-go v0.7.0/go.mod h1:7nD3oBPIiHqhRprqvMgPoGxe/nyq3yftRmpsy29coWE= +github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= +github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c= +github.com/cometbft/cometbft v0.37.2 h1:XB0yyHGT0lwmJlFmM4+rsRnczPlHoAKFX6K8Zgc2/Jc= +github.com/cometbft/cometbft v0.37.2/go.mod h1:Y2MMMN//O5K4YKd8ze4r9jmk4Y7h0ajqILXbH5JQFVs= +github.com/cometbft/cometbft-db v0.8.0 h1:vUMDaH3ApkX8m0KZvOFFy9b5DZHBAjsnEuo9AKVZpjo= +github.com/cometbft/cometbft-db v0.8.0/go.mod h1:6ASCP4pfhmrCBpfk01/9E1SI29nD3HfVHrY4PG8x5c0= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= -github.com/cosmos/btcutil v1.0.4 h1:n7C2ngKXo7UC9gNyMNLbzqz7Asuf+7Qv4gnX/rOdQ44= -github.com/cosmos/btcutil v1.0.4/go.mod h1:Ffqc8Hn6TJUdDgHBwIZLtrLQC1KdJ9jGJl/TvgUaxbU= +github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= +github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= +github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= +github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= +github.com/cosmos/cosmos-sdk v0.47.5 h1:n1+WjP/VM/gAEOx3TqU2/Ny734rj/MX1kpUnn7zVJP8= +github.com/cosmos/cosmos-sdk v0.47.5/go.mod h1:EHwCeN9IXonsjKcjpS12MqeStdZvIdxt3VYXhus3G3c= github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 h1:iKclrn3YEOwk4jQHT2ulgzuXyxmzmPczUalMwW4XH9k= github.com/cosmos/cosmos-sdk/ics23/go v0.8.0/go.mod h1:2a4dBq88TUoqoWAU5eu0lGvpFP3wWDPgdHPargtyw30= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= -github.com/cosmos/gorocksdb v1.2.0 h1:d0l3jJG8M4hBouIZq0mDUHZ+zjOx044J3nGRskwTb4Y= -github.com/cosmos/gorocksdb v1.2.0/go.mod h1:aaKvKItm514hKfNJpUJXnnOWeBnk2GL4+Qw9NHizILw= -github.com/cosmos/iavl v0.19.4 h1:t82sN+Y0WeqxDLJRSpNd8YFX5URIrT+p8n6oJbJ2Dok= -github.com/cosmos/iavl v0.19.4/go.mod h1:X9PKD3J0iFxdmgNLa7b2LYWdsGd90ToV5cAONApkEPw= -github.com/cosmos/ibc-go/v3 v3.0.0 h1:XUNplHVS51Q2gMnTFsFsH9QJ7flsovMamnltKbEgPQ4= -github.com/cosmos/ibc-go/v3 v3.0.0/go.mod h1:Mb+1NXiPOLd+CPFlOC6BKeAUaxXlhuWenMmRiUiSmwY= -github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76 h1:DdzS1m6o/pCqeZ8VOAit/gyATedRgjvkVI+UCrLpyuU= -github.com/cosmos/keyring v1.1.7-0.20210622111912-ef00f8ac3d76/go.mod h1:0mkLWIoZuQ7uBoospo5Q9zIpqq6rYCPJDSUdeCJvPM8= +github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= +github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= +github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= +github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI= +github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek= +github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= +github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= +github.com/cosmos/ibc-go/v7 v7.3.0 h1:QtGeVMi/3JeLWuvEuC60sBHpAF40Oenx/y+bP8+wRRw= +github.com/cosmos/ibc-go/v7 v7.3.0/go.mod h1:mUmaHFXpXrEdcxfdXyau+utZf14pGKVUiXwYftRZZfQ= +github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= +github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= +github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= +github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= +github.com/cosmos/ledger-cosmos-go v0.12.1 h1:sMBxza5p/rNK/06nBSNmsI/WDqI0pVJFVNihy1Y984w= +github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g= +github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= +github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creachadair/taskgroup v0.3.2 h1:zlfutDS+5XG40AOxcHDSThxKzns8Tnr9jnr6VqkYlkM= -github.com/creachadair/taskgroup v0.3.2/go.mod h1:wieWwecHVzsidg2CsUnFinW1faVN4+kq+TDlRJQ0Wbk= +github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8= +github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/danieljoos/wincred v1.0.2/go.mod h1:SnuYRW9lp1oJrZX/dXJqr0cPK5gYXqx3EJbmjhLdK9U= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set v0.0.0-20180603214616-504e848d77ea/go.mod h1:93vsz/8Wt4joVM7c2AVqh+YRMiUSc14yDtF28KmMOgQ= github.com/deckarep/golang-set v1.8.0 h1:sk9/l/KqpunDwP7pSjUg0keiOOLEnOBHzykLrsPppp4= github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS383rP6+o6qqo= github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 h1:HbphB4TFFXpv7MNrT52FGrrgVXF1owhMVTHFZIlnvd4= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0/go.mod h1:DZGJHZMqrU4JJqFAWUS2UO1+lbSKsdiOoYi9Zzey7Fc= github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f h1:U5y3Y5UE0w7amNe7Z5G/twsBW0KEalRQXZzf8ufSh9I= github.com/desertbit/timer v0.0.0-20180107155436-c41aec40b27f/go.mod h1:xH/i4TFMt8koVQZ6WFms69WAsDWr2XsYL3Hkl7jkoLE= -github.com/dgraph-io/badger/v2 v2.2007.2 h1:EjjK0KqwaFMlPin1ajhP943VPENHJdEz1KLIegjaI3k= -github.com/dgraph-io/badger/v2 v2.2007.2/go.mod h1:26P/7fbL4kUZVEVKLAKXkBXKOydDmM2p1e+NhhnBCAE= +github.com/dgraph-io/badger/v2 v2.2007.4 h1:TRWBQg8UrlUhaFdco01nO2uXwzKS7zd+HVdwV/GHc4o= +github.com/dgraph-io/badger/v2 v2.2007.4/go.mod h1:vSw/ax2qojzbN6eXHIx6KPKtCSHJN/Uz0X0VPruTIhk= github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= -github.com/dgraph-io/ristretto v0.0.3 h1:jh22xisGBjrEVnRZ1DVTpBVQm0Xndu8sMl0CWDzSIBI= -github.com/dgraph-io/ristretto v0.0.3/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= -github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8= +github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 h1:Izz0+t1Z5nI16/II7vuEo/nHjodOg0p7+OiDpjX5t1E= github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc= -github.com/docker/docker v1.4.2-0.20180625184442-8e610b2b55bf/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/dop251/goja v0.0.0-20200721192441-a695b0cdd498/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA= github.com/dop251/goja v0.0.0-20220405120441-9037c2b61cbf h1:Yt+4K30SdjOkRoRRm3vYNQgR+/ZIy0RmeUDZo7Y8zeQ= github.com/dop251/goja v0.0.0-20220405120441-9037c2b61cbf/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk= github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dvsekhvalnov/jose2go v0.0.0-20200901110807-248326c1351b/go.mod h1:7BvyPhdbLxMXIYTFPLsyJRFMsKmOZnQmzh6Gb+uquuM= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/dvsekhvalnov/jose2go v1.5.0 h1:3j8ya4Z4kMCwT5nXIKFSV84YS+HdqSSO0VsTQxaLAeM= github.com/dvsekhvalnov/jose2go v1.5.0/go.mod h1:QsHjhyTlD/lAVqn/NSbVZmSCGeDehTB/mPZadG+mhXU= -github.com/dvyukov/go-fuzz v0.0.0-20200318091601-be3528f3a813/go.mod h1:11Gm+ccJnvAhCNLlf5+cS9KjtbaD5I5zaZpFMsTHWTw= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= -github.com/edsrzf/mmap-go v0.0.0-20160512033002-935e0e8a636c/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum/go-ethereum v1.9.25/go.mod h1:vMkFiYLHI4tgPw4k2j4MHKoovchFE8plZ0M9VMk4/oM= github.com/ethereum/go-ethereum v1.10.26 h1:i/7d9RBBwiXCEuyduBQzJw/mKmnvzsN14jqBmytw72s= github.com/ethereum/go-ethereum v1.10.26/go.mod h1:EYFyF19u3ezGLD4RqOkLq+ZCXzYbLoNDdZlMt7kyKFg= -github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= -github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= -github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= -github.com/fatih/color v1.3.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= -github.com/felixge/httpsnoop v1.0.1 h1:lvB5Jl89CsZtGIWuTcDM1E/vkVs49/Ml7JJe07l8SPQ= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/fjl/memsize v0.0.0-20180418122429-ca190fb6ffbc/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= +github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= +github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5/go.mod h1:VvhXpOYNQvB+uIk2RvXzuaQtkQJzzIx6lSBe1xv7hi0= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= +github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= +github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU= +github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= +github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -285,26 +480,22 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-kit/kit v0.12.0 h1:e4o3o3IsBfAKQh5Qbbiqyfu97Ku7jrO/JbohvztANh4= github.com/go-kit/kit v0.12.0/go.mod h1:lHd+EkCZPIwYItmGDDRdhinkzX2A1sj+M9biaEaizzs= -github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= -github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= -github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= -github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E= -github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= -github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= -github.com/go-sourcemap/sourcemap v2.1.2+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= +github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= +github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU= +github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s= github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= @@ -317,25 +508,43 @@ github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= +github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/gateway v1.1.0 h1:u0SuhL9+Il+UbjM9VIE3ntfRujKbvVpFvNB4HbjeVQ0= -github.com/gogo/gateway v1.1.0/go.mod h1:S7rR8FRQyG3QFESeSv4l2WnsyzlCLG0CzBbUUo/mbic= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= +github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.3.0 h1:kHL1vqdqWNfATmA0FNMdmZNMyZI1U6O31X4rlIPoBog= github.com/golang-jwt/jwt/v4 v4.3.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= +github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -352,17 +561,18 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.3-0.20201103224600-674baa8c7fc3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.1.2 h1:xf4v41cLI2Z6FxbKm+8Bu+m8ifhj15JuZ9sa0jZCMUU= +github.com/google/btree v1.1.2/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -371,16 +581,23 @@ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa h1:Q75Upo5UN4JbPFURXZ8nLKYUvF85dyFRop/vQ0Rv+64= -github.com/google/gofuzz v1.1.1-0.20200604201612-c04b05f3adfa/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/martian v2.1.0+incompatible h1:/CP5g8u/VJHijgedC/Legn3BAbAaWPgecwXBIDzw5no= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= github.com/google/orderedcode v0.0.1 h1:UzfcAexk9Vhv8+9pNOgRu41f16lHq725vPwnSeiG/Us= github.com/google/orderedcode v0.0.1/go.mod h1:iVyU4/qPKHY5h/wSd6rZZCDcLJNxiWO6dvsYES2Sb20= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= @@ -393,14 +610,35 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= +github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= +github.com/googleapis/enterprise-certificate-proxy v0.2.0/go.mod h1:8C0jb7/mgJe/9KK8Lm7X9ctZC2t60YyIpYEI16jx0Qg= +github.com/googleapis/enterprise-certificate-proxy v0.2.4 h1:uGy6JWR/uMIILU8wbf+OkstIrNiMjGpEIyhx8f6W7s4= +github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= +github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= +github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= +github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= +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/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= @@ -411,17 +649,14 @@ github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2z github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1-0.20190629185528-ae1634f6a989/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/graph-gophers/graphql-go v0.0.0-20191115155744-f33e81362277/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= @@ -439,6 +674,10 @@ github.com/hashicorp/go-bexpr v0.1.10 h1:9kuI5PFotCboP3dkDYFr/wi0gg0QVbSNz5oFRpx github.com/hashicorp/go-bexpr v0.1.10/go.mod h1:oxlubA2vC/gFVfX1A6JGp7ls7uCDlfJn732ehYYg+g0= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= 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.1 h1:SWiSWN/42qdpR0MdhaOc/bLR48PLuP1ZQtYLRlM69uY= +github.com/hashicorp/go-getter v1.7.1/go.mod h1:W7TalhMmbPmsSMdNjD0ZskARur/9GJ17cfHTRtXV744= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -446,16 +685,19 @@ github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iP github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-safetemp v1.0.0 h1:2HR189eFNrjHQyENnQMMpCiBAsRxzbTMIgBhEyExpmo= +github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d h1:dg1dEPuWpEqDnvIw251EVy4zlP8gWbsGj4BsUKCRpYs= github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= @@ -464,16 +706,18 @@ github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87 h1:uUjLpLt6bVvZ72SQc/B4dXcPBw4Vgd7soowdRl52qEM= -github.com/hdevalence/ed25519consensus v0.0.0-20210204194344-59a8610d2b87/go.mod h1:XGsKKeXxeRr95aEOgipvluMPlgjr7dGlk9ZTWOjcUcg= +github.com/hdevalence/ed25519consensus v0.1.0 h1:jtBwzzcHuTmFrQN6xQZn6CQEO/V9f7HsjsjeEZ6auqU= +github.com/hdevalence/ed25519consensus v0.1.0/go.mod h1:w3BHWjwJbFU29IRHL1Iqkw3sus+7FctEyM4RqDxYNzo= github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao= github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA= -github.com/holiman/uint256 v1.1.1/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/holiman/uint256 v1.2.0 h1:gpSYcPLWGv4sG43I2mVLiDZCNDh/EpGjSk8tmtxitHM= github.com/holiman/uint256 v1.2.0/go.mod h1:y4ga/t+u+Xwd7CpDgZESaRcWy0I7XMlTMA25ApIH5Jw= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/go-assert v1.1.5 h1:fjemmA7sSfYHJD7CUqs9qTwwfdNAx7/j2/ZlHXzNB3c= +github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U= +github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw= +github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= -github.com/huin/goupnp v1.0.0/go.mod h1:n9v9KO1tAxYH82qOn+UTIFQDmx5n1Zxd/ClZDMX7Bnc= github.com/huin/goupnp v1.0.3 h1:N8No57ls+MnjlB+JPiCVSOyy/ot7MJTqlo7rn+NYSqQ= github.com/huin/goupnp v1.0.3/go.mod h1:ZxNlw5WqJj6wSsRK5+YfflQGXYfccj5VgQsMNixHM7Y= github.com/huin/goutil v0.0.0-20170803182201-1ca381bf3150/go.mod h1:PpLOETDnJ0o3iZrZfqZzyLl6l7F3c6L1oWn7OICBi6o= @@ -482,20 +726,21 @@ github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1: github.com/improbable-eng/grpc-web v0.15.0 h1:BN+7z6uNXZ1tQGcNAuaU1YjsLTApzkjt2tzCixLaUPQ= github.com/improbable-eng/grpc-web v0.15.0/go.mod h1:1sy9HKV4Jt9aEs9JSnkWlRJPuPtwNr0l57L4f878wP8= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/influxdata/influxdb v1.2.3-0.20180221223340-01288bdb0883/go.mod h1:qZna6X/4elxqT3yI9iZYdZrWWdeFOOprn86kgg4+IzY= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/ipfs/go-cid v0.1.0 h1:YN33LQulcRHjfom/i25yoOZR4Telp1Hr/2RU3d0PnC0= github.com/ipfs/go-cid v0.1.0/go.mod h1:rH5/Xv83Rfy8Rw6xG+id3DYAMUVmem1MowoKwdXmN2o= -github.com/jackpal/go-nat-pmp v1.0.2-0.20160603034137-1fa385a6f458/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= github.com/jackpal/go-nat-pmp v1.0.2 h1:KzKSgb7qkJvOUTqYl9/Hg/me3pWgBmERKrTGD7BdWus= github.com/jackpal/go-nat-pmp v1.0.2/go.mod h1:QPH045xvCAeXUZOxsnwmrtiCoxIr9eob+4orBN1SBKc= -github.com/jedisct1/go-minisign v0.0.0-20190909160543-45766022959e/go.mod h1:G1CVv03EnqU1wYL2dFwXxW2An0az9JTl/ZsqXQeBlkU= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jhump/protoreflect v1.13.1-0.20220928232736-101791cb1b4c h1:XImQJfpJLmGEEd8ll5yPVyL/aEvmgGHW4WYTyNseLOM= +github.com/jhump/protoreflect v1.15.1 h1:HUMERORf3I3ZdX05WaQ6MIpd/NJ434hTp5YiKgfCL6c= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jmhodges/levigo v1.0.0 h1:q5EC36kV79HWeTBWsod3mG11EgStG3qArTKcvlksN1U= github.com/jmhodges/levigo v1.0.0/go.mod h1:Q6Qx+uH3RAqyK4rFQroq9RL7mdkABMcfhEI+nNuzMJQ= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -506,30 +751,30 @@ github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.1.1-0.20170430222011-975b5c4c7c21/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/karalabe/usb v0.0.0-20190919080040-51dc0efba356/go.mod h1:Od972xHfMJowv7NGVDiWVxk2zxnWgjLlJzE+F4F7AGU= github.com/kelindar/bitmap v1.4.1 h1:Ih0BWMYXkkZxPMU536DsQKRhdvqFl7tuNjImfLJWC6E= github.com/kelindar/bitmap v1.4.1/go.mod h1:4QyD+TDbfgy8oYB9oC4JzqfudYCYIjhbSP7iLraP+28= github.com/kelindar/simd v1.1.2 h1:KduKb+M9cMY2HIH8S/cdJyD+5n5EGgq+Aeeleos55To= github.com/kelindar/simd v1.1.2/go.mod h1:inq4DFudC7W8L5fhxoeZflLRNpWSs0GNx6MlWFvuvr0= -github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d h1:Z+RDyXzjKE0i2sTjZ/b1uxiGtPhFy34Ou/Tk0qwN0kM= -github.com/keybase/go-keychain v0.0.0-20190712205309-48d3d31d256d/go.mod h1:JJNrCn9otv/2QP4D7SMJBgaleKpOf66PnW6F5WGNRIc= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.11.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.15.11 h1:Lcadnb3RKGin4FYM/orgq0qde+nc15E5Cbqg4B9Sx9c= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/klauspost/compress v1.15.11/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM= +github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0PcNQY= +github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.12 h1:p9dKCg8i4gmOxtv35DvrYoWqYzQrvEVdjQ762Y0OqZE= github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -537,49 +782,48 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxv github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/lib/pq v1.10.6 h1:jbk+ZieJ0D7EVGJYpL9QTz7/YW6UHbmdnZWYyK5cdBs= -github.com/lib/pq v1.10.6/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= +github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= -github.com/lucasjones/reggen v0.0.0-20180717132126-cdb49ff09d77/go.mod h1:5ELEyG+X8f+meRWHuqUOewBOhvHkl7M76pdGEansxW4= +github.com/linxGnu/grocksdb v1.7.16 h1:Q2co1xrpdkr5Hx3Fp+f+f7fRGhQFQhvi/+226dtLmA8= +github.com/linxGnu/grocksdb v1.7.16/go.mod h1:JkS7pl5qWpGpuVb3bPqTz8nC12X3YtPZT+Xq7+QfQo4= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= -github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA= +github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.0/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-ieproxy v0.0.0-20190610004146-91bb50d98149/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= -github.com/mattn/go-ieproxy v0.0.0-20190702010315-6dee0af9227d/go.mod h1:31jz6HNzdxOmlERGGEc4v/dMssOfmp2p5bT/okiKFFc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.5-0.20180830101745-3fb116b82035/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= -github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mimoo/StrobeGo v0.0.0-20181016162300-f8f6d4d2b643/go.mod h1:43+3pMjjKimDBf5Kr4ZFNGbLql1zKkbImw+fZbw3geM= github.com/mimoo/StrobeGo v0.0.0-20210601165009-122bf33a46e0 h1:QRUSJEgZn2Snx0EmT/QLXibWjSUDjKWvXIT19NBVp94= @@ -592,13 +836,15 @@ github.com/minio/sha256-simd v1.0.0 h1:v1ta+49hkWZyvaKwrQB8elexRqm6Y0aMLjCNsrYxo github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= +github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -630,8 +876,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76/go.mod h1:x5OoJHDHqxHS801UIuhqGl6QdSAEJvtausosHSdazIo= -github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= -github.com/naoina/toml v0.1.2-0.20170918210437-9fafd6967416/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= @@ -639,7 +883,6 @@ github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzE github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/neilotoole/errgroup v0.1.5/go.mod h1:Q2nLGf+594h0CLBs/Mbg6qOr7GtqDK7C2S41udRnToE= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= @@ -648,8 +891,6 @@ github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtb github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.1/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= -github.com/olekukonko/tablewriter v0.0.2-0.20190409134802-7e037d187b0c/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -661,8 +902,8 @@ github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042 github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/image-spec v1.1.0-rc2 h1:2zx/Stx4Wc5pIPDvIxHXvXtQFW/7XWJGmnM7r3wg034= @@ -676,25 +917,23 @@ github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJ github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= -github.com/otiai10/copy v1.6.0 h1:IinKAryFFuPONZ7cm6T6E2QX/vcJwSnlaA5lfoaXIiQ= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pborman/uuid v0.0.0-20170112150404-1b00554d8222/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= 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 v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= -github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= -github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= +github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= +github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= -github.com/peterh/liner v1.1.1-0.20190123174540-a2c9a5303de7/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0= -github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6R18ax0tZ2BJeNB3NehB3trOwYBsdU= +github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -710,17 +949,16 @@ 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.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= -github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= -github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= 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= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= +github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -728,21 +966,16 @@ github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt2 github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= -github.com/prometheus/common v0.34.0 h1:RBmGO9d/FVjqHT0yUGQwBJhkwKV+wPCn7KGpvfab0uE= -github.com/prometheus/common v0.34.0/go.mod h1:gB3sOl7P0TvJabZpLY5uQMpUqRCPPCyRLCZYc7JZTNE= +github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= -github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= -github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= github.com/prometheus/tsdb v0.7.1 h1:YZcsG11NqnK4czYLrWd9mpEuAJIHVQLwdrleYfszMAA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rakyll/statik v0.1.7 h1:OF3QCZUuyPxuGEP7B4ypUa7sB/iHtqOTDYZXGM8KOdQ= @@ -750,24 +983,22 @@ github.com/rakyll/statik v0.1.7/go.mod h1:AlZONWzMtEnMs7W4e/1LURLiI49pIMmp6V9Ung github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= -github.com/regen-network/cosmos-proto v0.3.1 h1:rV7iM4SSFAagvy8RiyhiACbWEGotmqzywPxOvwMdxcg= -github.com/regen-network/cosmos-proto v0.3.1/go.mod h1:jO0sVX6a1B36nmE8C9xBFXpNwWejXC7QqCOnH3O0+YM= -github.com/regen-network/protobuf v1.3.3-alpha.regen.1 h1:OHEc+q5iIAXpqiqFKeLpu5NwTIkVXUs48vFMwzqpqY4= -github.com/regen-network/protobuf v1.3.3-alpha.regen.1/go.mod h1:2DjTFR1HhMQhiWC5sZ4OhQ3+NtdbZ6oBDKQwq5Ou+FI= github.com/rjeczalik/notify v0.9.1 h1:CLCKso/QK1snAlnhNR/CNvNiFU2saUtjV0bx3EwNeCE= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= -github.com/rs/cors v0.0.0-20160617231935-a62a804a8a00/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= -github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= -github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/xhandler v0.0.0-20160618193221-ed27b6fd6521/go.mod h1:RvLn4FgxWubrpZHtQLnOf6EwhN2hEMusxZOhcW9H3UQ= -github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= -github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= +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.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c= +github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w= 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= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= @@ -777,8 +1008,6 @@ github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0 github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/segmentio/fasthash v1.0.3/go.mod h1:waKX8l2N8yckOgmSsXJi7x1ZfdKZ4x7KRMzBtS3oedY= -github.com/shirou/gopsutil v2.20.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= 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/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= @@ -786,7 +1015,8 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -795,15 +1025,15 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw= -github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= +github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= +github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= +github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.6.0 h1:42a0n6jwCot1pUmomAp4T7DeMD+20LFv4Q54pxLf2LI= -github.com/spf13/cobra v1.6.0/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= +github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= +github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -812,22 +1042,15 @@ 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.14.0 h1:Rg7d3Lo706X9tHsJMUjdiwMpHB7W8WnSVOssIY+JElU= -github.com/spf13/viper v1.14.0/go.mod h1:WT//axPky3FdvXHzGw33dNdXXXfFQqmEalje+egj8As= +github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= +github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57NRNuZ2d3rmvB3pcmbu7O1RS3m8WRx7ilrg= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= -github.com/steakknife/bloomfilter v0.0.0-20180922174646-6819c0d2a570/go.mod h1:8OR4w3TdeIHIh1g6EMY5p0gVNOovcWC+1vpc7naMuAw= -github.com/steakknife/hamming v0.0.0-20180906055917-c99c65617cd3/go.mod h1:hpGUWaI9xL8pRQCTXQgocU38Qw1g0Us7n5PxxTwTCYU= -github.com/stratosnet/cosmos-sdk v0.45.12-0.20230927180229-33a41a26eb19 h1:CzoM/996Swk5McIUlYAhaLL1Sd5PWFp0l+7akaFEo0M= -github.com/stratosnet/cosmos-sdk v0.45.12-0.20230927180229-33a41a26eb19/go.mod h1:S+xNysh6M/EWH/iikUBZ0b1OdMd9jU/tfoHe8R27YGc= -github.com/stratosnet/ledger-stratos-go v0.0.0-20230728192009-175657d24cb0 h1:Y8vzNO2ieC7ViVbge7v0eT/ft3nzwVCH78soFeqSJr4= -github.com/stratosnet/ledger-stratos-go v0.0.0-20230728192009-175657d24cb0/go.mod h1:9T0Ii/AMWWnJRtvKYKB4kDdraaOP76J+K5/IbRXQgyc= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -839,65 +1062,55 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= -github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= -github.com/syndtr/goleveldb v1.0.1-0.20200815110645-5c35d600f0ca/go.mod h1:u2MKkTVTVJWe5D1rCvame8WqhBd88EuIwODJZ1VHCPM= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= +github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 h1:epCh84lMvA70Z7CTTCmYQn2CKbY8j86K7/FAIr141uY= github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= -github.com/tendermint/tendermint v0.34.25-0.20221221220620-936221e0a8d9 h1:qwG0fu6MPoP/nsYIneHs1t2zQEzG4ZGS+GIaG7/pj7U= -github.com/tendermint/tendermint v0.34.25-0.20221221220620-936221e0a8d9/go.mod h1:TCGT4eRe5OW979YKVTpFOM57B4YkN+7FSDWpsgzAGwY= -github.com/tendermint/tm-db v0.6.7 h1:fE00Cbl0jayAoqlExN6oyQJ7fR/ZtoVOmvPJ//+shu8= -github.com/tendermint/tm-db v0.6.7/go.mod h1:byQDzFkZV1syXr/ReXS808NxA2xvyuuVgXOJ/088L6I= -github.com/tidwall/btree v1.5.0 h1:iV0yVY/frd7r6qGBXfEYs7DH0gTDgrKTrDjS7xt/IyQ= -github.com/tidwall/btree v1.5.0/go.mod h1:LGm8L/DZjPLmeWGjv5kFrY8dL4uVhMmzmmLYmsObdKE= -github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= -github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= -github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tidwall/sjson v1.1.4/go.mod h1:wXpKXu8CtDjKAZ+3DrKY5ROCorDFahq8l0tey/Lx1fg= -github.com/tinylib/msgp v1.1.5/go.mod h1:eQsjooMTnV42mHu917E26IogZ2930nFyBQdofk10Udg= -github.com/tklauser/go-sysconf v0.3.5 h1:uu3Xl4nkLzQfXNsWn15rPc/HQCJKObbt1dKJeWp3vU4= -github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= -github.com/tklauser/numcpus v0.2.2 h1:oyhllyrScuYI6g+h/zUvNXNp1wy7x8qQy3t/piefldA= -github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= +github.com/tidwall/btree v1.6.0 h1:LDZfKfQIBHGHWSwckhXI0RPSXzlo+KYdjK7FWSqOzzg= +github.com/tidwall/btree v1.6.0/go.mod h1:twD9XRA5jj9VUQGELzDO4HPQTNJsoWWfYEL+EUQ2cKY= +github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= +github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= +github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= +github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= -github.com/tyler-smith/go-bip39 v1.0.2/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= -github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ugorji/go/codec v1.2.9 h1:rmenucSohSTiyL09Y+l2OCk+FrMxGMzho2+tjr5ticU= +github.com/ugorji/go/codec v1.2.9/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= +github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli/v2 v2.10.2 h1:x3p8awjp/2arX+Nl/G2040AZpOCHS/eMJJ1/a+mye4Y= github.com/urfave/cli/v2 v2.10.2/go.mod h1:f8iq5LtQ/bLxafbdBSLPPNsgaW0l/2fYYEHhAyPlwvo= -github.com/vmihailenco/msgpack/v5 v5.1.4/go.mod h1:C5gboKD0TJPqWDTVTtrQNfRbiBwHZGo8UTqP/9/XvLI= -github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= -github.com/wsddn/go-ecdh v0.0.0-20161211032359-48726bab9208/go.mod h1:IotVbo4F+mw0EzQ08zFqg7pK3FebNXpaMsRy2RT+Ees= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= -github.com/ybbus/jsonrpc v2.1.2+incompatible/go.mod h1:XJrh1eMSzdIYFbM08flv0wp5G35eRniyeGut1z+LSiE= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zondax/hid v0.9.1 h1:gQe66rtmyZ8VeGFcOpbuH3r7erYtNEAezCAYu8LdkJo= github.com/zondax/hid v0.9.1/go.mod h1:l5wttcP0jwtdLjqjMMWFVEE7d1zO0jvSPA9OPZxWpEM= github.com/zondax/ledger-go v0.14.1 h1:Pip65OOl4iJ84WTpA4BKChvOufMhhbxED3BaihoZN4c= github.com/zondax/ledger-go v0.14.1/go.mod h1:fZ3Dqg6qcdXWSOJFKMG8GCTnD7slO/RL2feOQv8K320= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= -go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= +go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= 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= @@ -907,6 +1120,10 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -915,33 +1132,32 @@ go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190909091759-094676da4a83/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= 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-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8= -golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= +golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= 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-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190731235908-ec7cb31e5a56/go.mod h1:JhuoJpWY28nO4Vef9tZUw9qufEGTyX1+7lmHxV5q5G4= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= @@ -950,10 +1166,11 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= -golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= @@ -964,23 +1181,24 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mobile v0.0.0-20200801112145-973feb4309de/go.mod h1:skQtrUTUwhdJvXM/2KKJzY8pDgNr9I/FOMqDVRPBUS4= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191209134235-331c550502dd/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.7.0 h1:LapD9S96VoQRhi/GrNTqeBJFrUjs5UHCAtTlgwA5oZA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1015,18 +1233,34 @@ golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.4.0 h1:Q5QPcMlvfxFTAPV0+07Xz/MpK9NTXu2VDUuy0FeMfaU= -golang.org/x/net v0.4.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220607020251-c690dde0001d/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= +golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= +golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= 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-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1036,8 +1270,24 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= +golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= +golang.org/x/oauth2 v0.1.0/go.mod h1:G9FE4dLTsbXUu90h/Pf85g4w1D+SSAgR+q46nJZ8M4A= +golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1049,9 +1299,13 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1069,10 +1323,10 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1082,7 +1336,6 @@ golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1100,55 +1353,96 @@ golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200824131525-c12d262b63d8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220315194320-039c03cc5b86/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220502124256-b6088ccd6cba/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= -golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= 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.3.0 h1:qoo4akIqOcDME5bhc/NgxUdovd6BSS2uMsVjB56q1xI= -golang.org/x/term v0.3.0/go.mod h1:q750SLmJuPmVoN1blW3UFBPREJfb1KmY3vwxfr+nFDA= +golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= +golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/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= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= -golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= @@ -1173,7 +1467,6 @@ golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117012304-6edc0a871e69/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -1194,7 +1487,6 @@ golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -1203,12 +1495,23 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.4.0 h1:7mTAgkunk3fr4GAloyyCasadO6h9zSsQZbwvcaIciV4= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss= +golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 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-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= 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= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -1229,12 +1532,45 @@ google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz513 google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/api v0.75.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.77.0/go.mod h1:pU9QmyHLnzlpar1Mjt4IbapUCy8J+6HD6GeELN69ljA= +google.golang.org/api v0.78.0/go.mod h1:1Sg78yoMLOhlQTeF+ARBoytAcH1NNyyl390YMy6rKmw= +google.golang.org/api v0.80.0/go.mod h1:xY3nI94gbvBrE0J6NHXhxOmW97HG7Khjkku6AFB3Hyg= +google.golang.org/api v0.84.0/go.mod h1:NTsGnUFJMYROtiquksZHBWtHfeMC7iYthki7Eq3pa8o= +google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6FO2g= +google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.93.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= +google.golang.org/api v0.95.0/go.mod h1:eADj+UBuxkh5zlrSntJghuNeg8HwQ1w5lTKkuqaETEI= +google.golang.org/api v0.96.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= +google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= +google.golang.org/api v0.128.0 h1:RjPESny5CnQRn9V6siglged+DZCgfu9l6mO9dkX9VOg= +google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= +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= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1258,7 +1594,6 @@ google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200324203455-a04cca1dde73/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -1277,11 +1612,124 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210126160654-44e461bb6506/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e h1:S9GbmC1iCgvbLyAokVCwiO6tVIrU9Y7c5oMx1V/ki/Y= -google.golang.org/genproto v0.0.0-20221024183307-1bc688fe9f3e/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/grpc v1.33.2 h1:EQyQC3sa8M+p6Ulc8yy9SWSS2GVwyRc83gAbG8lrl4o= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210329143202-679c6ae281ee/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220314164441-57ef72a4c106/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/genproto v0.0.0-20220407144326-9054f6ed7bac/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220413183235-5e96e2839df9/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220414192740-2d67ff6cf2b4/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220421151946-72621c1f0bd3/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220429170224-98d788798c3e/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220505152158-f39f71e6c8f3/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220518221133-4f43b3371335/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220523171625-347a074981d8/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= +google.golang.org/genproto v0.0.0-20220608133413-ed9918b62aac/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220616135557-88e70c0c3a90/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= +google.golang.org/genproto v0.0.0-20220722212130-b98a9ff5e252/go.mod h1:GkXuJDJ6aQ7lnJcRF+SJVgFdQhypqgl3LB1C9vabdRE= +google.golang.org/genproto v0.0.0-20220801145646-83ce21fca29f/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= +google.golang.org/genproto v0.0.0-20220815135757-37a418bb8959/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220817144833-d7fd3f11b9b1/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220822174746-9e6da59bd2fc/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829144015-23454907ede3/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220829175752-36a9c930ecbf/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk= +google.golang.org/genproto v0.0.0-20220913154956-18f8339a66a5/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220914142337-ca0e39ece12f/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220915135415-7fd63a7952de/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220916172020-2692e8806bfa/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220919141832-68c03719ef51/go.mod h1:0Nb8Qy+Sk5eDzHnzlStwW3itdNaWoZA5XeSG+R3JHSo= +google.golang.org/genproto v0.0.0-20220920201722-2b89144ce006/go.mod h1:ht8XFiar2npT/g4vkk7O0WYS1sHOHbdujxbEp7CJWbw= +google.golang.org/genproto v0.0.0-20220926165614-551eb538f295/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20220926220553-6981cbe3cfce/go.mod h1:woMGP53BroOrRY3xTxlbr8Y3eB/nzAvvFM83q7kG2OI= +google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U= +google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= +google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= +google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13 h1:vlzZttNJGVqTsRFU9AmdnrcO1Znh8Ew9kCD//yjigk0= +google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:CCviP9RmpZ1mxVr8MUjCnSiY09IbAXZxhLE6EhHIdPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:N3bU/SQDCDyD6R528GJ/PwW9KjYcJA3dgyH+MovAkIM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= +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= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I= +google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= 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= @@ -1294,8 +1742,11 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk= -google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +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.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1304,6 +1755,7 @@ gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= @@ -1311,11 +1763,9 @@ gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce h1:+JknDZhAj8YMt7GC73Ei8pv4MzjDUNPHgQWJdtMAaDU= gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce/go.mod h1:5AcXVHNjg+BDxry382+8OKon8SEWiKktQR07RKPsv1c= -gopkg.in/olebedev/go-duktape.v3 v3.0.0-20200619000410-60c24ae608a6/go.mod h1:uAJfkITjFhyEEuUfm7bsmCZRbW5WRq8s9EY8HZ6hCns= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/urfave/cli.v1 v1.20.0/go.mod h1:vuBzUtMdQeixQj8LVd+/98pzhxNGQoyuPBlsXHOQNO0= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1331,7 +1781,9 @@ gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1341,8 +1793,13 @@ honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9 honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= nhooyr.io/websocket v1.8.6 h1:s+C3xAMLwGmlI31Nyn/eAehUlZPwfYZu2JXM621Q5/k= nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= +pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/proto/buf.gen.gogo.yaml b/proto/buf.gen.gogo.yaml new file mode 100644 index 00000000..855ea251 --- /dev/null +++ b/proto/buf.gen.gogo.yaml @@ -0,0 +1,8 @@ +version: v1 +plugins: + - name: gocosmos + out: .. + opt: plugins=grpc,Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types + - name: grpc-gateway + out: .. + opt: logtostderr=true,allow_colon_final_segments=true \ No newline at end of file diff --git a/proto/buf.gen.pulsar.yaml b/proto/buf.gen.pulsar.yaml new file mode 100644 index 00000000..fada5e7d --- /dev/null +++ b/proto/buf.gen.pulsar.yaml @@ -0,0 +1,17 @@ +version: v1 +managed: + enabled: true + go_package_prefix: + default: cosmossdk.io/api + except: + - buf.build/googleapis/googleapis + - buf.build/cosmos/gogo-proto + - buf.build/cosmos/cosmos-proto + override: +plugins: + - name: go-pulsar + out: ../api + opt: paths=source_relative + - name: go-grpc + out: ../api + opt: paths=source_relative diff --git a/proto/buf.gen.swagger.yaml b/proto/buf.gen.swagger.yaml new file mode 100644 index 00000000..d0f7535b --- /dev/null +++ b/proto/buf.gen.swagger.yaml @@ -0,0 +1,5 @@ +version: v1 +plugins: + - name: swagger + out: ../tmp-swagger-gen + opt: logtostderr=true,fqn_for_swagger_name=true,simple_operation_ids=true diff --git a/proto/buf.yaml b/proto/buf.yaml index bda80539..5a31027e 100644 --- a/proto/buf.yaml +++ b/proto/buf.yaml @@ -1,4 +1,12 @@ version: v1 +name: buf.build/stratosnet/stratos +deps: + - buf.build/cosmos/cosmos-sdk:v0.47.5 + - buf.build/cosmos/cosmos-proto + - buf.build/cosmos/gogo-proto + - buf.build/cosmos/ibc + - buf.build/googleapis/googleapis + - buf.build/stratosnet/stratos lint: use: - DEFAULT @@ -10,10 +18,6 @@ lint: - SERVICE_SUFFIX - PACKAGE_VERSION_SUFFIX - RPC_REQUEST_STANDARD_NAME - - RPC_REQUEST_RESPONSE_UNIQUE - - RPC_RESPONSE_STANDARD_NAME - - RPC_REQUEST_RESPONSE_UNIQUE - - COMMENT_MESSAGE breaking: use: - FILE \ No newline at end of file diff --git a/proto/stratos/crypto/v1/ethsecp256k1/keys.proto b/proto/stratos/crypto/v1/ethsecp256k1/keys.proto index 45e25a51..cb407309 100644 --- a/proto/stratos/crypto/v1/ethsecp256k1/keys.proto +++ b/proto/stratos/crypto/v1/ethsecp256k1/keys.proto @@ -11,9 +11,13 @@ option go_package = "github.com/stratosnet/stratos-chain/crypto/ethsecp256k1"; message PubKey { option (gogoproto.goproto_stringer) = false; + // key is the public key in byte form bytes key = 1; } // PrivKey defines a type alias for an ecdsa.PrivateKey that implements // Tendermint's PrivateKey interface. -message PrivKey { bytes key = 1; } +message PrivKey { + // key is the private key in byte form + bytes key = 1; +} \ No newline at end of file diff --git a/proto/stratos/evm/module/v1/module.proto b/proto/stratos/evm/module/v1/module.proto new file mode 100644 index 00000000..70bceb02 --- /dev/null +++ b/proto/stratos/evm/module/v1/module.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package stratos.evm.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the posts module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import : "github.com/stratosnet/stratos-chain/x/evm" + }; + + // hooks_order specifies the order of posts hooks and should be a list + // of module names which provide a posts hooks instance. If no order is + // provided, then hooks will be applied in alphabetical order of module names. + repeated string hooks_order = 1; + + // authority defines the custom module authority. If not set, defaults to the + // governance module. + string authority = 2; +} \ No newline at end of file diff --git a/proto/stratos/evm/v1/evm.proto b/proto/stratos/evm/v1/evm.proto index 8d5dfe35..80c84387 100644 --- a/proto/stratos/evm/v1/evm.proto +++ b/proto/stratos/evm/v1/evm.proto @@ -2,7 +2,9 @@ syntax = "proto3"; package stratos.evm.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/evm/types"; // Params defines the EVM module parameters @@ -36,17 +38,20 @@ message ChainConfig { // chainId identifies the current chain and is used for replay protection string chain_id = 1 [ (gogoproto.customname) = "ChainID", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"chain_id\"" ]; // Homestead switch block (nil no fork, 0 = already homestead) string homestead_block = 2 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"homestead_block\"" ]; // TheDAO hard-fork switch block (nil no fork) string dao_fork_block = 3 [ (gogoproto.customname) = "DAOForkBlock", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"dao_fork_block\"" ]; @@ -59,6 +64,7 @@ message ChainConfig { // (https://github.com/ethereum/EIPs/issues/150) EIP150 HF block (nil no fork) string eip150_block = 5 [ (gogoproto.customname) = "EIP150Block", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"eip150_block\"" ]; @@ -70,42 +76,50 @@ message ChainConfig { // EIP155Block HF block string eip155_block = 7 [ (gogoproto.customname) = "EIP155Block", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"eip155_block\"" ]; // EIP158 HF block string eip158_block = 8 [ (gogoproto.customname) = "EIP158Block", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"eip158_block\"" ]; // Byzantium switch block (nil no fork, 0 = already on byzantium) string byzantium_block = 9 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"byzantium_block\"" ]; // Constantinople switch block (nil no fork, 0 = already activated) string constantinople_block = 10 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"constantinople_block\"" ]; // Petersburg switch block (nil same as Constantinople) string petersburg_block = 11 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"petersburg_block\"" ]; // Istanbul switch block (nil no fork, 0 = already on istanbul) string istanbul_block = 12 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"istanbul_block\"" ]; // Eip-2384 (bomb delay) switch block (nil no fork, 0 = already activated) string muir_glacier_block = 13 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"muir_glacier_block\"" ]; // Berlin switch block (nil = no fork, 0 = already on berlin) string berlin_block = 14 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"berlin_block\"" ]; @@ -114,16 +128,19 @@ message ChainConfig { reserved "yolo_v3_block", "ewasm_block", "catalyst_block"; // London switch block (nil = no fork, 0 = already on london) string london_block = 18 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"london_block\"" ]; // Eip-4345 (bomb delay) switch block (nil = no fork, 0 = already activated) string arrow_glacier_block = 19 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"arrow_glacier_block\"" ]; // EIP-3675 (TheMerge) switch block (nil = no fork, 0 = already in merge proceedings) string merge_fork_block = 20 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.moretags) = "yaml:\"merge_fork_block\"" ]; @@ -258,6 +275,7 @@ message FeeMarketParams { int64 enable_height = 5; // base fee for EIP-1559 blocks. string base_fee = 6 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false ]; diff --git a/proto/stratos/evm/v1/genesis.proto b/proto/stratos/evm/v1/genesis.proto index 7b17bb76..962f5bca 100644 --- a/proto/stratos/evm/v1/genesis.proto +++ b/proto/stratos/evm/v1/genesis.proto @@ -4,6 +4,7 @@ package stratos.evm.v1; import "gogoproto/gogo.proto"; import "stratos/evm/v1/evm.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/evm/types"; // GenesisState defines the evm module's genesis state. diff --git a/proto/stratos/evm/v1/query.proto b/proto/stratos/evm/v1/query.proto index 8d0b1417..42afc2cf 100644 --- a/proto/stratos/evm/v1/query.proto +++ b/proto/stratos/evm/v1/query.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package stratos.evm.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; import "cosmos/base/query/v1beta1/pagination.proto"; import "google/api/annotations.proto"; import "stratos/evm/v1/evm.proto"; @@ -295,8 +296,10 @@ message QueryBaseFeeRequest {} // BaseFeeResponse returns the EIP1559 base fee. message QueryBaseFeeResponse { - string base_fee = 1 - [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int"]; + string base_fee = 1 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; } // QueryBlockGasRequest defines the request type for querying the EIP1559 base diff --git a/proto/stratos/evm/v1/tx.proto b/proto/stratos/evm/v1/tx.proto index 63dbd710..b3fc6237 100644 --- a/proto/stratos/evm/v1/tx.proto +++ b/proto/stratos/evm/v1/tx.proto @@ -7,6 +7,7 @@ import "google/protobuf/any.proto"; import "cosmos_proto/cosmos.proto"; import "stratos/evm/v1/evm.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/evm/types"; // Msg defines the evm Msg service. @@ -43,14 +44,17 @@ message LegacyTx { // nonce corresponds to the account nonce (transaction sequence). uint64 nonce = 1; // gas price defines the value for each gas unit - string gas_price = 2 - [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; + string gas_price = 2 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; // gas defines the gas limit defined for the transaction. uint64 gas = 3 [ (gogoproto.customname) = "GasLimit" ]; // hex formatted address of the recipient string to = 4; // value defines the unsigned integer value of the transaction amount. string value = 5 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customname) = "Amount" ]; @@ -71,6 +75,7 @@ message AccessListTx { // destination EVM chain ID string chain_id = 1 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customname) = "ChainID", (gogoproto.jsontag) = "chainID" @@ -78,14 +83,17 @@ message AccessListTx { // nonce corresponds to the account nonce (transaction sequence). uint64 nonce = 2; // gas price defines the value for each gas unit - string gas_price = 3 - [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; + string gas_price = 3 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; // gas defines the gas limit defined for the transaction. uint64 gas = 4 [ (gogoproto.customname) = "GasLimit" ]; // hex formatted address of the recipient string to = 5; // value defines the unsigned integer value of the transaction amount. string value = 6 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customname) = "Amount" ]; @@ -111,6 +119,7 @@ message DynamicFeeTx { // destination EVM chain ID string chain_id = 1 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customname) = "ChainID", (gogoproto.jsontag) = "chainID" @@ -118,17 +127,22 @@ message DynamicFeeTx { // nonce corresponds to the account nonce (transaction sequence). uint64 nonce = 2; // gas tip cap defines the max value for the gas tip - string gas_tip_cap = 3 - [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; + string gas_tip_cap = 3 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; // gas fee cap defines the max value for the gas fee - string gas_fee_cap = 4 - [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; + string gas_fee_cap = 4 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; // gas defines the gas limit defined for the transaction. uint64 gas = 5 [ (gogoproto.customname) = "GasLimit" ]; // hex formatted address of the recipient string to = 6; // value defines the the transaction amount. string value = 7 [ + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.customname) = "Amount" ]; diff --git a/proto/stratos/pot/module/v1/module.proto b/proto/stratos/pot/module/v1/module.proto new file mode 100644 index 00000000..cbe973de --- /dev/null +++ b/proto/stratos/pot/module/v1/module.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package stratos.pot.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the posts module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import : "github.com/stratosnet/stratos-chain/x/pot" + }; + + // hooks_order specifies the order of posts hooks and should be a list + // of module names which provide a posts hooks instance. If no order is + // provided, then hooks will be applied in alphabetical order of module names. + repeated string hooks_order = 1; + + // authority defines the custom module authority. If not set, defaults to the + // governance module. + string authority = 2; +} \ No newline at end of file diff --git a/proto/stratos/pot/v1/genesis.proto b/proto/stratos/pot/v1/genesis.proto index b3717a17..2799a74f 100644 --- a/proto/stratos/pot/v1/genesis.proto +++ b/proto/stratos/pot/v1/genesis.proto @@ -2,9 +2,11 @@ syntax = "proto3"; package stratos.pot.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; import "cosmos/base/v1beta1/coin.proto"; import "stratos/pot/v1/pot.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; // GenesisState defines the register module's genesis state. @@ -23,6 +25,7 @@ message GenesisState { (gogoproto.nullable) = false, (gogoproto.jsontag) = "last_distributed_epoch", (gogoproto.moretags) = "yaml:\"last_distributed_epoch\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; repeated ImmatureTotal immature_total_info = 4 [ @@ -44,6 +47,7 @@ message GenesisState { (gogoproto.nullable) = false, (gogoproto.jsontag) = "matured_epoch", (gogoproto.moretags) = "yaml:\"matured_epoch\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; } diff --git a/proto/stratos/pot/v1/pot.proto b/proto/stratos/pot/v1/pot.proto index eebe96a4..4f9c3368 100644 --- a/proto/stratos/pot/v1/pot.proto +++ b/proto/stratos/pot/v1/pot.proto @@ -2,8 +2,10 @@ syntax = "proto3"; package stratos.pot.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; import "cosmos/base/v1beta1/coin.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; // Params defines the PoT module parameters @@ -29,6 +31,7 @@ message Params { (gogoproto.nullable) = false, (gogoproto.jsontag) = "community_tax", (gogoproto.moretags) = "yaml:\"community_tax\"", + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec" ]; cosmos.base.v1beta1.Coin initial_total_supply = 6 [ @@ -58,18 +61,21 @@ message MiningRewardParam { (gogoproto.nullable) = false, (gogoproto.jsontag) = "block_chain_percentage_in_bp", (gogoproto.moretags) = "yaml:\"block_chain_percentage_in_bp\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string resource_node_percentage_in_bp = 5 [ (gogoproto.nullable) = false, (gogoproto.jsontag) = "resource_node_percentage_in_bp", (gogoproto.moretags) = "yaml:\"resource_node_percentage_in_bp\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string meta_node_percentage_in_bp = 6 [ (gogoproto.nullable) = false, (gogoproto.jsontag) = "meta_node_percentage_in_bp", (gogoproto.moretags) = "yaml:\"meta_node_percentage_in_bp\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; } @@ -102,6 +108,7 @@ message SingleWalletVolume { (gogoproto.nullable) = false, (gogoproto.jsontag) = "volume", (gogoproto.moretags) = "yaml:\"volume\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; } diff --git a/proto/stratos/pot/v1/tx.proto b/proto/stratos/pot/v1/tx.proto index 0cab6c4b..7dc91692 100644 --- a/proto/stratos/pot/v1/tx.proto +++ b/proto/stratos/pot/v1/tx.proto @@ -2,11 +2,12 @@ syntax = "proto3"; package stratos.pot.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; import "google/api/annotations.proto"; import "stratos/pot/v1/pot.proto"; import "cosmos/base/v1beta1/coin.proto"; - +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; // Msg defines the evm Msg service. @@ -43,6 +44,7 @@ message MsgVolumeReport { (gogoproto.nullable) = false, (gogoproto.jsontag) = "epoch", (gogoproto.moretags) = "yaml:\"epoch\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string report_reference = 4 [ @@ -141,6 +143,7 @@ message MsgSlashingResourceNode { string slashing = 5 [ (gogoproto.jsontag) = "slashing", (gogoproto.moretags) = "yaml:\"slashing\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; bool suspend = 6 [ diff --git a/proto/stratos/register/module/v1/module.proto b/proto/stratos/register/module/v1/module.proto new file mode 100644 index 00000000..2f0739e7 --- /dev/null +++ b/proto/stratos/register/module/v1/module.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package stratos.register.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the posts module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import : "github.com/stratosnet/stratos-chain/x/register" + }; + + // hooks_order specifies the order of posts hooks and should be a list + // of module names which provide a posts hooks instance. If no order is + // provided, then hooks will be applied in alphabetical order of module names. + repeated string hooks_order = 1; + + // authority defines the custom module authority. If not set, defaults to the + // governance module. + string authority = 2; +} \ No newline at end of file diff --git a/proto/stratos/register/v1/genesis.proto b/proto/stratos/register/v1/genesis.proto index 714c920f..80332863 100644 --- a/proto/stratos/register/v1/genesis.proto +++ b/proto/stratos/register/v1/genesis.proto @@ -7,6 +7,7 @@ import "cosmos_proto/cosmos.proto"; import "cosmos/staking/v1beta1/staking.proto"; import "stratos/register/v1/register.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/register/types"; // GenesisState defines the register module's genesis state. @@ -32,6 +33,7 @@ message GenesisState { (gogoproto.nullable) = false, (gogoproto.jsontag) = "remaining_noz_limit", (gogoproto.moretags) = "yaml:\"remaining_noz_limit\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; // remaining noz limit repeated Slashing slashing = 5 [ @@ -43,6 +45,7 @@ message GenesisState { (gogoproto.nullable) = false, (gogoproto.jsontag) = "deposit_noz_rate", (gogoproto.moretags) = "yaml:\"deposit_noz_rate\"", + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec" ]; //fixed rate of deposit over noz } diff --git a/proto/stratos/register/v1/query.proto b/proto/stratos/register/v1/query.proto index ebd4180c..5fcfd9a3 100644 --- a/proto/stratos/register/v1/query.proto +++ b/proto/stratos/register/v1/query.proto @@ -170,6 +170,7 @@ message DepositInfo { (gogoproto.nullable) = false, (gogoproto.jsontag) = "tokens", (gogoproto.moretags) = "yaml:\"tokens\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string owner_address = 6 [ diff --git a/proto/stratos/register/v1/register.proto b/proto/stratos/register/v1/register.proto index a45b347b..4696670e 100644 --- a/proto/stratos/register/v1/register.proto +++ b/proto/stratos/register/v1/register.proto @@ -9,6 +9,7 @@ import "cosmos_proto/cosmos.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/staking/v1beta1/staking.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/register/types"; // Params defines the Register module parameters @@ -74,6 +75,7 @@ message ResourceNode { (gogoproto.nullable) = false, (gogoproto.jsontag) = "tokens", (gogoproto.moretags) = "yaml:\"tokens\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string owner_address = 6 [ @@ -99,6 +101,7 @@ message ResourceNode { (gogoproto.nullable) = false, (gogoproto.jsontag) = "effective_tokens", (gogoproto.moretags) = "yaml:\"effective_tokens\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; } @@ -127,6 +130,7 @@ message MetaNode { (gogoproto.nullable) = false, (gogoproto.jsontag) = "tokens", (gogoproto.moretags) = "yaml:\"tokens\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string owner_address = 6 [ @@ -227,11 +231,13 @@ message UnbondingNodeEntry { string initial_balance = 3 [ (gogoproto.jsontag) = "initial_balance", (gogoproto.moretags) = "yaml:\"initial_balance\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string balance = 4 [ (gogoproto.jsontag) = "balance", (gogoproto.moretags) = "yaml:\"balance\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; } diff --git a/proto/stratos/register/v1/tx.proto b/proto/stratos/register/v1/tx.proto index 5fa6d706..b4c0f326 100644 --- a/proto/stratos/register/v1/tx.proto +++ b/proto/stratos/register/v1/tx.proto @@ -9,7 +9,7 @@ import "cosmos_proto/cosmos.proto"; import "stratos/register/v1/register.proto"; import "cosmos/base/v1beta1/coin.proto"; - +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/register/types"; // Msg defines the register module Msg service. @@ -234,6 +234,7 @@ message MsgUpdateEffectiveDeposit { (gogoproto.nullable) = false, (gogoproto.jsontag) = "effective_tokens", (gogoproto.moretags) = "yaml:\"effective_tokens\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; } diff --git a/proto/stratos/sds/module/v1/module.proto b/proto/stratos/sds/module/v1/module.proto new file mode 100644 index 00000000..47897bb2 --- /dev/null +++ b/proto/stratos/sds/module/v1/module.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package stratos.sds.module.v1; + +import "cosmos/app/v1alpha1/module.proto"; + +// Module is the config object of the posts module. +message Module { + option (cosmos.app.v1alpha1.module) = { + go_import : "github.com/stratosnet/stratos-chain/x/sds" + }; + + // hooks_order specifies the order of posts hooks and should be a list + // of module names which provide a posts hooks instance. If no order is + // provided, then hooks will be applied in alphabetical order of module names. + repeated string hooks_order = 1; + + // authority defines the custom module authority. If not set, defaults to the + // governance module. + string authority = 2; +} \ No newline at end of file diff --git a/proto/stratos/sds/v1/genesis.proto b/proto/stratos/sds/v1/genesis.proto index a6137af3..3dc20736 100644 --- a/proto/stratos/sds/v1/genesis.proto +++ b/proto/stratos/sds/v1/genesis.proto @@ -4,6 +4,7 @@ package stratos.sds.v1; import "gogoproto/gogo.proto"; import "stratos/sds/v1/sds.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/sds/types"; // GenesisState defines the register module's genesis state. diff --git a/proto/stratos/sds/v1/query.proto b/proto/stratos/sds/v1/query.proto index d7104f3b..65b4c210 100644 --- a/proto/stratos/sds/v1/query.proto +++ b/proto/stratos/sds/v1/query.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package stratos.sds.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; import "google/api/annotations.proto"; import "cosmos/base/v1beta1/coin.proto"; import "stratos/sds/v1/sds.proto"; @@ -58,6 +59,7 @@ message QuerySimPrepayResponse { (gogoproto.nullable) = false, (gogoproto.jsontag) = "noz", (gogoproto.moretags) = "yaml:\"noz\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; } @@ -68,6 +70,7 @@ message QueryNozPriceResponse { string price = 1 [ (gogoproto.jsontag) = "price", (gogoproto.moretags) = "yaml:\"price\"", + (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false ]; @@ -80,12 +83,14 @@ message QueryNozSupplyResponse { (gogoproto.nullable) = false, (gogoproto.jsontag) = "remaining", (gogoproto.moretags) = "yaml:\"remaining\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string total = 2 [ (gogoproto.nullable) = false, (gogoproto.jsontag) = "total", (gogoproto.moretags) = "yaml:\"total\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; } diff --git a/proto/stratos/sds/v1/sds.proto b/proto/stratos/sds/v1/sds.proto index 4aeb49d3..aded4dd9 100644 --- a/proto/stratos/sds/v1/sds.proto +++ b/proto/stratos/sds/v1/sds.proto @@ -2,7 +2,9 @@ syntax = "proto3"; package stratos.sds.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/sds/types"; // Params defines the Register module parameters @@ -18,6 +20,7 @@ message FileInfo { (gogoproto.nullable) = false, (gogoproto.jsontag) = "height", (gogoproto.moretags) = "yaml:\"height\"", + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; bytes reporters = 2 [ diff --git a/proto/stratos/sds/v1/tx.proto b/proto/stratos/sds/v1/tx.proto index 20416852..b444e0a8 100644 --- a/proto/stratos/sds/v1/tx.proto +++ b/proto/stratos/sds/v1/tx.proto @@ -5,6 +5,7 @@ import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; import "cosmos/base/v1beta1/coin.proto"; +option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/sds/types"; // Msg defines the sds module Msg service. diff --git a/rpc/apis.go b/rpc/apis.go index 6d89e610..d6ff286b 100644 --- a/rpc/apis.go +++ b/rpc/apis.go @@ -3,7 +3,7 @@ package rpc import ( - "github.com/tendermint/tendermint/node" + "github.com/cometbft/cometbft/node" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/server" diff --git a/rpc/backend/backend.go b/rpc/backend/backend.go index 039da512..66e14b3f 100644 --- a/rpc/backend/backend.go +++ b/rpc/backend/backend.go @@ -5,18 +5,6 @@ import ( "math/big" "time" - cs "github.com/tendermint/tendermint/consensus" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/mempool" - "github.com/tendermint/tendermint/node" - "github.com/tendermint/tendermint/p2p" - tmrpctypes "github.com/tendermint/tendermint/rpc/core/types" - "github.com/tendermint/tendermint/store" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/server" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/core" @@ -24,10 +12,22 @@ import ( "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/rpc" + cs "github.com/cometbft/cometbft/consensus" + "github.com/cometbft/cometbft/libs/log" + "github.com/cometbft/cometbft/mempool" + "github.com/cometbft/cometbft/node" + "github.com/cometbft/cometbft/p2p" + tmrpctypes "github.com/cometbft/cometbft/rpc/core/types" + "github.com/cometbft/cometbft/store" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/server" storetypes "github.com/cosmos/cosmos-sdk/store/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/rpc/types" "github.com/stratosnet/stratos-chain/server/config" - evm "github.com/stratosnet/stratos-chain/x/evm" + "github.com/stratosnet/stratos-chain/x/evm" evmkeeper "github.com/stratosnet/stratos-chain/x/evm/keeper" "github.com/stratosnet/stratos-chain/x/evm/pool" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" diff --git a/rpc/backend/evm_backend.go b/rpc/backend/evm_backend.go index abecdf9d..16389ae1 100644 --- a/rpc/backend/evm_backend.go +++ b/rpc/backend/evm_backend.go @@ -6,8 +6,6 @@ import ( "math/big" "time" - "github.com/pkg/errors" - "github.com/ethereum/go-ethereum/accounts/keystore" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" @@ -15,17 +13,17 @@ import ( "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/rpc" - tmrpctypes "github.com/tendermint/tendermint/rpc/core/types" - tmjsonrpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + tmrpccore "github.com/cometbft/cometbft/rpc/core" + tmrpctypes "github.com/cometbft/cometbft/rpc/core/types" + tmjsonrpctypes "github.com/cometbft/cometbft/rpc/jsonrpc/types" + "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/client/flags" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stratosnet/stratos-chain/rpc/types" stratos "github.com/stratosnet/stratos-chain/types" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" - tmrpccore "github.com/tendermint/tendermint/rpc/core" ) // BlockNumber returns the current block number in abci app state. @@ -38,7 +36,7 @@ func (b *Backend) BlockNumber() (hexutil.Uint64, error) { } if res.Block == nil { - return hexutil.Uint64(0), errors.Errorf("block store not loaded") + return hexutil.Uint64(0), fmt.Errorf("block store not loaded") } return hexutil.Uint64(res.Block.Height), nil @@ -145,7 +143,7 @@ func (b *Backend) GetTendermintBlockByNumber(blockNum types.BlockNumber) (*tmrpc height = 1 default: if blockNum < 0 { - return nil, errors.Errorf("cannot fetch a negative block height: %d", height) + return nil, fmt.Errorf("cannot fetch a negative block height: %d", height) } if height > int64(currentBlockNumber) { return nil, nil @@ -217,7 +215,7 @@ func (b *Backend) HeaderByNumber(blockNum types.BlockNumber) (*types.Header, err height = 1 default: if blockNum < 0 { - return nil, errors.Errorf("incorrect block height: %d", height) + return nil, fmt.Errorf("incorrect block height: %d", height) } } @@ -264,7 +262,7 @@ func (b *Backend) HeaderByHash(blockHash common.Hash) (*types.Header, error) { } if resBlock == nil || resBlock.Block == nil { - return nil, errors.Errorf("block not found for hash %s", blockHash.Hex()) + return nil, fmt.Errorf("block not found for hash %s", blockHash.Hex()) } ethHeader, err := types.EthHeaderFromTendermint(resBlock.Block.Header) @@ -320,7 +318,7 @@ func (b *Backend) GetLogsByHeight(height *int64) ([][]*ethtypes.Log, error) { return nil, err } - blockLogs := [][]*ethtypes.Log{} + blockLogs := make([][]*ethtypes.Log, 0) for _, txResult := range blockRes.TxsResults { logs, err := AllTxLogsFromEvents(txResult.Events) if err != nil { @@ -360,7 +358,7 @@ func (b *Backend) GetLogsByNumber(blockNum types.BlockNumber) ([][]*ethtypes.Log height = 1 default: if blockNum < 0 { - return nil, errors.Errorf("incorrect block height: %d", height) + return nil, fmt.Errorf("incorrect block height: %d", height) } } @@ -437,7 +435,7 @@ func (b *Backend) GetTxByTxIndex(height int64, index uint) (*tmrpctypes.ResultTx return nil, err } if len(resTxs.Txs) == 0 { - return nil, errors.Errorf("ethereum tx not found for block %d index %d", height, index) + return nil, fmt.Errorf("ethereum tx not found for block %d index %d", height, index) } return resTxs.Txs[0], nil } @@ -501,7 +499,7 @@ func (b *Backend) SendTransaction(args evmtypes.TransactionArgs) (common.Hash, e ethTx := msg.AsTransaction() if !ethTx.Protected() { // Ensure only eip155 signed transactions are submitted. - return common.Hash{}, errors.New("legacy pre-eip-155 transactions not supported") + return common.Hash{}, fmt.Errorf("legacy pre-eip-155 transactions not supported") } txHash := ethTx.Hash() @@ -511,7 +509,7 @@ func (b *Backend) SendTransaction(args evmtypes.TransactionArgs) (common.Hash, e syncCtx := b.clientCtx.WithBroadcastMode(flags.BroadcastSync) rsp, err := syncCtx.BroadcastTx(txBytes) if rsp != nil && rsp.Code != 0 { - err = sdkerrors.ABCIError(rsp.Codespace, rsp.Code, rsp.RawLog) + err = errors.ABCIError(rsp.Codespace, rsp.Code, rsp.RawLog) } if err != nil { b.logger.Error("failed to broadcast tx", "error", err.Error()) @@ -590,7 +588,7 @@ func (b *Backend) RPCEVMTimeout() time.Duration { return b.cfg.JSONRPC.EVMTimeout } -// RPCGasCap is the global gas cap for eth-call variants. +// RPCTxFeeCap is the global gas cap for eth-call variants. func (b *Backend) RPCTxFeeCap() float64 { return b.cfg.JSONRPC.TxFeeCap } @@ -637,12 +635,12 @@ func (b *Backend) RPCMinGasPrice() int64 { // ChainConfig returns the latest ethereum chain configuration func (b *Backend) ChainConfig() *params.ChainConfig { sdkCtx := b.GetEVMContext().GetSdkContext() - params, err := b.GetEVMKeeper().Params(sdk.WrapSDKContext(sdkCtx), &evmtypes.QueryParamsRequest{}) + evmParams, err := b.GetEVMKeeper().Params(sdk.WrapSDKContext(sdkCtx), &evmtypes.QueryParamsRequest{}) if err != nil { return nil } - return params.Params.ChainConfig.EthereumConfig() + return evmParams.Params.ChainConfig.EthereumConfig() } // SuggestGasTipCap returns the suggested tip cap diff --git a/rpc/backend/utils.go b/rpc/backend/utils.go index 22467d68..c648acad 100644 --- a/rpc/backend/utils.go +++ b/rpc/backend/utils.go @@ -12,8 +12,8 @@ import ( "github.com/ethereum/go-ethereum/common/hexutil" ethtypes "github.com/ethereum/go-ethereum/core/types" - abci "github.com/tendermint/tendermint/abci/types" - tmrpctypes "github.com/tendermint/tendermint/rpc/core/types" + abci "github.com/cometbft/cometbft/abci/types" + tmrpctypes "github.com/cometbft/cometbft/rpc/core/types" "github.com/stratosnet/stratos-chain/rpc/types" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" @@ -326,12 +326,13 @@ func TxLogsFromEvents(events []abci.Event, msgIndex int) ([]*ethtypes.Log, error func ParseTxLogsFromEvent(event abci.Event) ([]*ethtypes.Log, error) { logs := make([]*evmtypes.Log, 0, len(event.Attributes)) for _, attr := range event.Attributes { - if !bytes.Equal(attr.Key, []byte(evmtypes.AttributeKeyTxLog)) { + if attr.GetKey() != evmtypes.AttributeKeyTxLog { continue } + bAttrValue := []byte(attr.Value) var log evmtypes.Log - if err := json.Unmarshal(attr.Value, &log); err != nil { + if err := json.Unmarshal(bAttrValue, &log); err != nil { return nil, err } diff --git a/rpc/namespaces/ethereum/debug/api.go b/rpc/namespaces/ethereum/debug/api.go index 6ec028d4..5f4d277d 100644 --- a/rpc/namespaces/ethereum/debug/api.go +++ b/rpc/namespaces/ethereum/debug/api.go @@ -21,8 +21,8 @@ import ( "github.com/ethereum/go-ethereum/eth/tracers/logger" - "github.com/tendermint/tendermint/libs/log" - tmrpctypes "github.com/tendermint/tendermint/rpc/core/types" + "github.com/cometbft/cometbft/libs/log" + tmrpctypes "github.com/cometbft/cometbft/rpc/core/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/server" @@ -34,12 +34,12 @@ import ( "github.com/ethereum/go-ethereum/consensus/ethash" "github.com/ethereum/go-ethereum/rlp" + tmrpccore "github.com/cometbft/cometbft/rpc/core" "github.com/stratosnet/stratos-chain/rpc/backend" rpctypes "github.com/stratosnet/stratos-chain/rpc/types" jstracers "github.com/stratosnet/stratos-chain/x/evm/tracers/js" nativetracers "github.com/stratosnet/stratos-chain/x/evm/tracers/native" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" - tmrpccore "github.com/tendermint/tendermint/rpc/core" ) const ( diff --git a/rpc/namespaces/ethereum/debug/utils.go b/rpc/namespaces/ethereum/debug/utils.go index 7f270ed7..4f7ba0e8 100644 --- a/rpc/namespaces/ethereum/debug/utils.go +++ b/rpc/namespaces/ethereum/debug/utils.go @@ -7,8 +7,8 @@ import ( "runtime/pprof" "strings" + "github.com/cometbft/cometbft/libs/log" "github.com/cosmos/cosmos-sdk/server" - "github.com/tendermint/tendermint/libs/log" ) // isCPUProfileConfigurationActivated checks if cpuprofile was configured via flag diff --git a/rpc/namespaces/ethereum/eth/api.go b/rpc/namespaces/ethereum/eth/api.go index 047e2fb8..e9077529 100644 --- a/rpc/namespaces/ethereum/eth/api.go +++ b/rpc/namespaces/ethereum/eth/api.go @@ -12,8 +12,8 @@ import ( "github.com/spf13/viper" - "github.com/tendermint/tendermint/libs/log" - tmrpctypes "github.com/tendermint/tendermint/rpc/core/types" + "github.com/cometbft/cometbft/libs/log" + tmrpctypes "github.com/cometbft/cometbft/rpc/core/types" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" @@ -30,6 +30,7 @@ import ( "github.com/ethereum/go-ethereum/rpc" "github.com/ethereum/go-ethereum/signer/core/apitypes" + tmrpccore "github.com/cometbft/cometbft/rpc/core" "github.com/stratosnet/stratos-chain/crypto/hd" "github.com/stratosnet/stratos-chain/ethereum/eip712" "github.com/stratosnet/stratos-chain/rpc/backend" @@ -37,7 +38,6 @@ import ( rpctypes "github.com/stratosnet/stratos-chain/rpc/types" stratos "github.com/stratosnet/stratos-chain/types" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" - tmrpccore "github.com/tendermint/tendermint/rpc/core" ) // PublicAPI is the eth_ prefixed set of APIs in the Web3 JSON-RPC spec. @@ -66,6 +66,7 @@ func NewPublicAPI( viper.GetString(flags.FlagKeyringBackend), clientCtx.KeyringDir, clientCtx.Input, + clientCtx.Codec, hd.EthSecp256k1Option(), ) if err != nil { @@ -134,18 +135,18 @@ func (e *PublicAPI) Syncing() (interface{}, error) { return false, nil } - status, err := tmrpccore.Status(nil) + tmStatus, err := tmrpccore.Status(nil) if err != nil { return false, err } - if !status.SyncInfo.CatchingUp { + if !tmStatus.SyncInfo.CatchingUp { return false, nil } return map[string]interface{}{ - "startingBlock": hexutil.Uint64(status.SyncInfo.EarliestBlockHeight), - "currentBlock": hexutil.Uint64(status.SyncInfo.LatestBlockHeight), + "startingBlock": hexutil.Uint64(tmStatus.SyncInfo.EarliestBlockHeight), + "currentBlock": hexutil.Uint64(tmStatus.SyncInfo.LatestBlockHeight), "highestBlock": nil, // NA "pulledStates": nil, // NA "knownStates": nil, // NA @@ -227,8 +228,11 @@ func (e *PublicAPI) Accounts() ([]common.Address, error) { } for _, info := range infos { - addressBytes := info.GetPubKey().Address().Bytes() - addresses = append(addresses, common.BytesToAddress(addressBytes)) + addr, err := info.GetAddress() + if err != nil { + continue + } + addresses = append(addresses, common.BytesToAddress(addr.Bytes())) } return addresses, nil @@ -800,17 +804,17 @@ func (e *PublicAPI) GetTransactionReceipt(hash common.Hash) (*rpctypes.Transacti logs = make([]*ethtypes.Log, 0) ) // Set status codes based on tx result - status := ethtypes.ReceiptStatusSuccessful + receiptStatus := ethtypes.ReceiptStatusSuccessful if res.TxResult.GetCode() == 1 { - status = ethtypes.ReceiptStatusFailed + receiptStatus = ethtypes.ReceiptStatusFailed } else { // Get the transaction result from the log _, found := attrs[evmtypes.AttributeKeyEthereumTxFailed] if found { - status = ethtypes.ReceiptStatusFailed + receiptStatus = ethtypes.ReceiptStatusFailed } - if status == ethtypes.ReceiptStatusSuccessful { + if receiptStatus == ethtypes.ReceiptStatusSuccessful { // parse tx logs from events logs, err = backend.TxLogsFromEvents(res.TxResult.Events, 0) if err != nil { @@ -848,7 +852,7 @@ func (e *PublicAPI) GetTransactionReceipt(hash common.Hash) (*rpctypes.Transacti } receipt := &rpctypes.TransactionReceipt{ - Status: hexutil.Uint64(status), + Status: hexutil.Uint64(receiptStatus), CumulativeGasUsed: hexutil.Uint64(cumulativeGasUsed), LogsBloom: bloom, Logs: logs, diff --git a/rpc/namespaces/ethereum/eth/filters/api.go b/rpc/namespaces/ethereum/eth/filters/api.go index 0edbde03..a49df436 100644 --- a/rpc/namespaces/ethereum/eth/filters/api.go +++ b/rpc/namespaces/ethereum/eth/filters/api.go @@ -6,9 +6,9 @@ import ( "sync" "time" - "github.com/tendermint/tendermint/libs/log" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" + "github.com/cometbft/cometbft/libs/log" + coretypes "github.com/cometbft/cometbft/rpc/core/types" + tmtypes "github.com/cometbft/cometbft/types" "github.com/cosmos/cosmos-sdk/client" @@ -368,8 +368,8 @@ func (api *PublicFilterAPI) Logs(ctx context.Context, crit filters.FilterCriteri } matchedLogs := FilterLogs(evmtypes.LogsToEthereum(txResponse.Logs), crit.FromBlock, crit.ToBlock, crit.Addresses, crit.Topics) - for _, log := range matchedLogs { - err = notifier.Notify(rpcSub.ID, log) + for _, logInfo := range matchedLogs { + err = notifier.Notify(rpcSub.ID, logInfo) if err != nil { logsSub.err <- err return diff --git a/rpc/namespaces/ethereum/eth/filters/filter_system.go b/rpc/namespaces/ethereum/eth/filters/filter_system.go index 45ffa1f0..bc7c487f 100644 --- a/rpc/namespaces/ethereum/eth/filters/filter_system.go +++ b/rpc/namespaces/ethereum/eth/filters/filter_system.go @@ -6,13 +6,13 @@ import ( "sync" "time" + "github.com/cometbft/cometbft/libs/log" + tmpubsub "github.com/cometbft/cometbft/libs/pubsub" + tmquery "github.com/cometbft/cometbft/libs/pubsub/query" + coretypes "github.com/cometbft/cometbft/rpc/core/types" + tmtypes "github.com/cometbft/cometbft/types" "github.com/cosmos/cosmos-sdk/client" "github.com/pkg/errors" - "github.com/tendermint/tendermint/libs/log" - tmpubsub "github.com/tendermint/tendermint/libs/pubsub" - tmquery "github.com/tendermint/tendermint/libs/pubsub/query" - coretypes "github.com/tendermint/tendermint/rpc/core/types" - tmtypes "github.com/tendermint/tendermint/types" sdk "github.com/cosmos/cosmos-sdk/types" diff --git a/rpc/namespaces/ethereum/eth/filters/filters.go b/rpc/namespaces/ethereum/eth/filters/filters.go index 98faa945..315a09d5 100644 --- a/rpc/namespaces/ethereum/eth/filters/filters.go +++ b/rpc/namespaces/ethereum/eth/filters/filters.go @@ -5,8 +5,8 @@ import ( "encoding/binary" "math/big" + "github.com/cometbft/cometbft/libs/log" "github.com/pkg/errors" - "github.com/tendermint/tendermint/libs/log" "github.com/ethereum/go-ethereum/common" ethtypes "github.com/ethereum/go-ethereum/core/types" @@ -91,7 +91,7 @@ const ( // Logs searches the blockchain for matching log entries, returning all from the // first block that contains matches, updating the start of the filter accordingly. func (f *Filter) Logs(_ context.Context, logLimit int, blockLimit int64) ([]*ethtypes.Log, error) { - logs := []*ethtypes.Log{} + logs := make([]*ethtypes.Log, 0) var err error // If we're doing singleton block filtering, execute and return diff --git a/rpc/namespaces/ethereum/eth/filters/subscription.go b/rpc/namespaces/ethereum/eth/filters/subscription.go index 288dac60..6b85ae1c 100644 --- a/rpc/namespaces/ethereum/eth/filters/subscription.go +++ b/rpc/namespaces/ethereum/eth/filters/subscription.go @@ -3,8 +3,8 @@ package filters import ( "time" + coretypes "github.com/cometbft/cometbft/rpc/core/types" "github.com/stratosnet/stratos-chain/rpc/types" - coretypes "github.com/tendermint/tendermint/rpc/core/types" "github.com/ethereum/go-ethereum/common" ethtypes "github.com/ethereum/go-ethereum/core/types" diff --git a/rpc/namespaces/ethereum/miner/api.go b/rpc/namespaces/ethereum/miner/api.go index 59084403..bef85e56 100644 --- a/rpc/namespaces/ethereum/miner/api.go +++ b/rpc/namespaces/ethereum/miner/api.go @@ -3,22 +3,23 @@ package miner import ( "math/big" - "github.com/tendermint/tendermint/libs/log" - tmtypes "github.com/tendermint/tendermint/types" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/hexutil" + + "github.com/cometbft/cometbft/libs/log" + tmtypes "github.com/cometbft/cometbft/types" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/tx" "github.com/cosmos/cosmos-sdk/server" sdkconfig "github.com/cosmos/cosmos-sdk/server/config" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" distributiontypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - "github.com/stratosnet/stratos-chain/rpc/backend" rpctypes "github.com/stratosnet/stratos-chain/rpc/types" "github.com/stratosnet/stratos-chain/server/config" @@ -116,7 +117,7 @@ func (api *API) SetEtherbase(etherbase common.Address) bool { txFactory = txFactory.WithGas(gas) value := new(big.Int).SetUint64(gas * minGasPriceValue.Ceil().TruncateInt().Uint64()) - fees := sdk.Coins{sdk.NewCoin(denom, sdk.NewIntFromBigInt(value))} + fees := sdk.Coins{sdk.NewCoin(denom, sdkmath.NewIntFromBigInt(value))} builder.SetFeeAmount(fees) builder.SetGasLimit(gas) @@ -126,7 +127,7 @@ func (api *API) SetEtherbase(etherbase common.Address) bool { return false } - if err := tx.Sign(txFactory, keyInfo.GetName(), builder, false); err != nil { + if err := tx.Sign(txFactory, keyInfo.Name, builder, false); err != nil { api.logger.Debug("failed to sign tx", "error", err.Error()) return false } @@ -146,7 +147,7 @@ func (api *API) SetEtherbase(etherbase common.Address) bool { syncCtx := api.clientCtx.WithBroadcastMode(flags.BroadcastSync) rsp, err := syncCtx.BroadcastTx(txBytes) if rsp != nil && rsp.Code != 0 { - err = sdkerrors.ABCIError(rsp.Codespace, rsp.Code, rsp.RawLog) + err = errors.ABCIError(rsp.Codespace, rsp.Code, rsp.RawLog) } if err != nil { api.logger.Debug("failed to broadcast tx", "error", err.Error()) @@ -182,7 +183,7 @@ func (api *API) SetGasPrice(gasPrice hexutil.Big) bool { unit = minGasPrices[0].Denom } - c := sdk.NewDecCoin(unit, sdk.NewIntFromBigInt(gasPrice.ToInt())) + c := sdk.NewDecCoin(unit, sdkmath.NewIntFromBigInt(gasPrice.ToInt())) appConf.SetMinGasPrices(sdk.DecCoins{c}) sdkconfig.WriteConfigFile(api.ctx.Viper.ConfigFileUsed(), appConf) diff --git a/rpc/namespaces/ethereum/personal/api.go b/rpc/namespaces/ethereum/personal/api.go index 62d61272..913ef9b4 100644 --- a/rpc/namespaces/ethereum/personal/api.go +++ b/rpc/namespaces/ethereum/personal/api.go @@ -6,7 +6,7 @@ import ( "os" "time" - "github.com/tendermint/tendermint/libs/log" + "github.com/cometbft/cometbft/libs/log" "github.com/cosmos/cosmos-sdk/client" sdkcrypto "github.com/cosmos/cosmos-sdk/crypto" @@ -95,7 +95,7 @@ func (api *PrivateAccountAPI) ImportRawKey(privkey, password string) (common.Add // ListAccounts will return a list of addresses for accounts this node manages. func (api *PrivateAccountAPI) ListAccounts() ([]common.Address, error) { api.logger.Debug("personal_listAccounts") - addrs := []common.Address{} + addrs := make([]common.Address, 0) list, err := api.clientCtx.Keyring.List() if err != nil { @@ -103,7 +103,11 @@ func (api *PrivateAccountAPI) ListAccounts() ([]common.Address, error) { } for _, info := range list { - addrs = append(addrs, common.BytesToAddress(info.GetPubKey().Address())) + addr, err := info.GetAddress() + if err != nil { + continue + } + addrs = append(addrs, common.BytesToAddress(addr)) } return addrs, nil @@ -132,11 +136,16 @@ func (api *PrivateAccountAPI) NewAccount(password string) (common.Address, error return common.Address{}, err } - addr := common.BytesToAddress(info.GetPubKey().Address().Bytes()) - api.logger.Info("Your new key was generated", "address", addr.String()) + addr, err := info.GetAddress() + if err != nil { + return common.Address{}, err + } + + hexAddr := common.BytesToAddress(addr.Bytes()) + api.logger.Info("Your new key was generated", "address", hexAddr.String()) api.logger.Info("Please backup your key file!", "path", os.Getenv("HOME")+"/.stratos/"+name) // TODO: pass the correct binary api.logger.Info("Please remember your password!") - return addr, nil + return hexAddr, nil } // UnlockAccount will unlock the account associated with the given address with diff --git a/rpc/namespaces/ethereum/txpool/api.go b/rpc/namespaces/ethereum/txpool/api.go index ea1dd0a7..e9d8344c 100644 --- a/rpc/namespaces/ethereum/txpool/api.go +++ b/rpc/namespaces/ethereum/txpool/api.go @@ -3,7 +3,7 @@ package txpool import ( "fmt" - "github.com/tendermint/tendermint/libs/log" + "github.com/cometbft/cometbft/libs/log" "github.com/cosmos/cosmos-sdk/client" "github.com/ethereum/go-ethereum/common" diff --git a/rpc/server.go b/rpc/server.go index fdfc495e..6fb51aeb 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -5,10 +5,10 @@ import ( "net/http" "time" + "github.com/cometbft/cometbft/libs/log" "github.com/ethereum/go-ethereum/node" "github.com/ethereum/go-ethereum/rpc" "github.com/stratosnet/stratos-chain/server/config" - "github.com/tendermint/tendermint/libs/log" ) type Web3Server struct { diff --git a/rpc/types/block.go b/rpc/types/block.go index a516f405..e7c9bba2 100644 --- a/rpc/types/block.go +++ b/rpc/types/block.go @@ -46,10 +46,10 @@ func NewBlockNumber(n *big.Int) BlockNumber { return BlockNumber(n.Int64()) } -// NOTE: Legacy, should be removed after cli rework // ContextWithHeight wraps a context with the a gRPC block height header. If the provided height is // 0, it will return an empty context and the gRPC query will use the latest block height for querying. // Note that all metadata are processed and removed by tendermint layer, so it wont be accessible at gRPC server level. +// NOTE: Legacy, should be removed after cli rework func ContextWithHeight(height int64) context.Context { if height == 0 { return context.Background() diff --git a/rpc/types/query_client.go b/rpc/types/query_client.go index 57af7559..15afac0e 100644 --- a/rpc/types/query_client.go +++ b/rpc/types/query_client.go @@ -6,8 +6,8 @@ import ( "github.com/cosmos/cosmos-sdk/types/tx" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/proto/tendermint/crypto" + abci "github.com/cometbft/cometbft/abci/types" + "github.com/cometbft/cometbft/proto/tendermint/crypto" "github.com/cosmos/cosmos-sdk/client" diff --git a/rpc/types/types.go b/rpc/types/types.go index 1bff3337..8ed4fc73 100644 --- a/rpc/types/types.go +++ b/rpc/types/types.go @@ -88,6 +88,7 @@ type OneFeeHistory struct { GasUsedRatio float64 // the ratio of gas used to the gas limit for each block } +// Header // NOTE: Forked because tendermint block hash calculated in another way // default ethereum take rlp from the struct type Header struct { diff --git a/rpc/types/utils.go b/rpc/types/utils.go index 6064d17f..efc0603b 100644 --- a/rpc/types/utils.go +++ b/rpc/types/utils.go @@ -4,35 +4,35 @@ import ( "bytes" "crypto/sha1" "encoding/hex" - "errors" "fmt" "math/big" "sort" "strconv" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/hexutil" + ethtypes "github.com/ethereum/go-ethereum/core/types" + + abci "github.com/cometbft/cometbft/abci/types" + "github.com/cometbft/cometbft/mempool" + "github.com/cometbft/cometbft/proto/tendermint/crypto" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmrpccore "github.com/cometbft/cometbft/rpc/core" + tmrpccoretypes "github.com/cometbft/cometbft/rpc/core/types" + tmtypes "github.com/cometbft/cometbft/types" + + "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/client" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/mempool" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmtypes "github.com/tendermint/tendermint/types" - "github.com/cosmos/cosmos-sdk/types/tx/signing" authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - ethtypes "github.com/ethereum/go-ethereum/core/types" stratos "github.com/stratosnet/stratos-chain/types" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" - "github.com/tendermint/tendermint/proto/tendermint/crypto" - tmrpccore "github.com/tendermint/tendermint/rpc/core" - tmrpccoretypes "github.com/tendermint/tendermint/rpc/core/types" ) -var bAttributeKeyEthereumBloom = []byte(evmtypes.AttributeKeyEthereumBloom) var MempoolCapacity = 100 // HashToUint64 used to convert string or hash string to uint64 @@ -50,11 +50,11 @@ func HashToUint64(s string) uint64 { return result } -// RawTxToEthTx returns a evm MsgEthereum transaction from raw tx bytes. +// RawTxToEthTx returns an evm MsgEthereum transaction from raw tx bytes. func RawTxToEthTx(clientCtx client.Context, txBz tmtypes.Tx) ([]*evmtypes.MsgEthereumTx, error) { tx, err := clientCtx.TxConfig.TxDecoder()(txBz) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) + return nil, errors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) } ethTxs := make([]*evmtypes.MsgEthereumTx, len(tx.GetMsgs())) @@ -75,15 +75,16 @@ func GetBlockBloom(blockResults *tmrpccoretypes.ResultBlockResults) (ethtypes.Bl } for _, attr := range event.Attributes { - if bytes.Equal(attr.Key, bAttributeKeyEthereumBloom) { - return ethtypes.BytesToBloom(attr.Value), nil + if attr.GetKey() == evmtypes.AttributeKeyEthereumBloom { + bBloom := []byte(attr.Value) + return ethtypes.BytesToBloom(bBloom), nil } } } - return ethtypes.Bloom{}, errors.New("block bloom event is not found") + return ethtypes.Bloom{}, fmt.Errorf("block bloom event is not found") } -// EthHeaderFromTendermint is an util function that returns an Ethereum Header +// EthHeaderFromTendermint is a util function that returns an Ethereum Header // from a tendermint Header. func EthHeaderFromTendermint(header tmtypes.Header) (*Header, error) { results, err := tmrpccore.BlockResults(nil, &header.Height) @@ -335,7 +336,7 @@ func GetNonEVMSignatures(sig []byte) (v, r, s *big.Int) { return } -// GetTxHash get hash depends on what type, unfortunatelly system support two tx hash algo +// GetTxHash get hash depends on what type, unfortunately system support two tx hash algo // in order to have opportunity for off chain tx hash computation func GetTxHash(txDecoder sdk.TxDecoder, tmTx tmtypes.Tx) (common.Hash, error) { tx, err := txDecoder(tmTx) @@ -343,7 +344,7 @@ func GetTxHash(txDecoder sdk.TxDecoder, tmTx tmtypes.Tx) (common.Hash, error) { return common.Hash{}, err } if len(tx.GetMsgs()) == 0 { - return common.Hash{}, errors.New("tx contain empty msgs") + return common.Hash{}, fmt.Errorf("tx contain empty msgs") } msg := tx.GetMsgs()[0] if ethMsg, ok := msg.(*evmtypes.MsgEthereumTx); ok { @@ -447,14 +448,14 @@ func TmTxToEthTx( } } -// NewTransactionFromData returns a transaction that will serialize to the RPC +// NewRPCTransaction returns a transaction that will serialize to the RPC // representation, with the given location metadata set (if available). func NewRPCTransaction( tx *ethtypes.Transaction, blockHash *common.Hash, blockNumber, index *uint64, ) (*Transaction, error) { // Determine the signer. For replay-protected transactions, use the most permissive // signer, because we assume that signers are backwards-compatible with old - // transactions. For non-protected transactions, the homestead signer signer is used + // transactions. For non-protected transactions, the homestead signer is used // because the return value of ChainId is zero for those transactions. var signer ethtypes.Signer if tx.Protected() { @@ -507,8 +508,8 @@ func BaseFeeFromEvents(events []abci.Event) *big.Int { } for _, attr := range event.Attributes { - if bytes.Equal(attr.Key, []byte(evmtypes.AttributeKeyBaseFee)) { - result, success := new(big.Int).SetString(string(attr.Value), 10) + if attr.GetKey() == evmtypes.AttributeKeyBaseFee { + result, success := new(big.Int).SetString(attr.Value, 10) if success { return result } @@ -531,15 +532,15 @@ func FindTxAttributes(events []abci.Event, txHash string) (int, map[string]strin msgIndex++ - value := FindAttribute(event.Attributes, []byte(evmtypes.AttributeKeyEthereumTxHash)) - if !bytes.Equal(value, []byte(txHash)) { + value := FindAttribute(event.Attributes, evmtypes.AttributeKeyEthereumTxHash) + if value != txHash { continue } // found, convert attributes to map for later lookup attrs := make(map[string]string, len(event.Attributes)) for _, attr := range event.Attributes { - attrs[string(attr.Key)] = string(attr.Value) + attrs[attr.Key] = attr.Value } return msgIndex, attrs } @@ -550,8 +551,8 @@ func FindTxAttributes(events []abci.Event, txHash string) (int, map[string]strin // FindTxAttributesByIndex search the msg in tx events by txIndex // returns the msgIndex, returns -1 if not found. func FindTxAttributesByIndex(events []abci.Event, txIndex uint64) int { - strIndex := []byte(strconv.FormatUint(txIndex, 10)) - txIndexKey := []byte(evmtypes.AttributeKeyTxIndex) + strIndex := strconv.FormatUint(txIndex, 10) + txIndexKey := evmtypes.AttributeKeyTxIndex msgIndex := -1 for _, event := range events { if event.Type != evmtypes.EventTypeEthereumTx { @@ -561,7 +562,7 @@ func FindTxAttributesByIndex(events []abci.Event, txIndex uint64) int { msgIndex++ value := FindAttribute(event.Attributes, txIndexKey) - if !bytes.Equal(value, strIndex) { + if value != strIndex { continue } @@ -573,14 +574,14 @@ func FindTxAttributesByIndex(events []abci.Event, txIndex uint64) int { } // FindAttribute find event attribute with specified key, if not found returns nil. -func FindAttribute(attrs []abci.EventAttribute, key []byte) []byte { +func FindAttribute(attrs []abci.EventAttribute, key string) string { for _, attr := range attrs { - if !bytes.Equal(attr.Key, key) { + if attr.GetKey() != key { continue } return attr.Value } - return nil + return "" } // GetUint64Attribute parses the uint64 value from event attributes @@ -612,9 +613,9 @@ func AccumulativeGasUsedOfMsg(events []abci.Event, msgIndex int) (gasUsed uint64 } msgIndex-- - value := FindAttribute(event.Attributes, []byte(evmtypes.AttributeKeyTxGasUsed)) + value := FindAttribute(event.Attributes, evmtypes.AttributeKeyTxGasUsed) var result int64 - result, err := strconv.ParseInt(string(value), 10, 64) + result, err := strconv.ParseInt(value, 10, 64) if err != nil { continue } diff --git a/runtime/app.go b/runtime/app.go new file mode 100644 index 00000000..f6359e26 --- /dev/null +++ b/runtime/app.go @@ -0,0 +1,233 @@ +package runtime + +import ( + "encoding/json" + "fmt" + + "golang.org/x/exp/slices" + + abci "github.com/cometbft/cometbft/abci/types" + + runtimev1alpha1 "cosmossdk.io/api/cosmos/app/runtime/v1alpha1" + appv1alpha1 "cosmossdk.io/api/cosmos/app/v1alpha1" + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/client" + nodeservice "github.com/cosmos/cosmos-sdk/client/grpc/node" + "github.com/cosmos/cosmos-sdk/client/grpc/tmservice" + "github.com/cosmos/cosmos-sdk/codec" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + sdkruntime "github.com/cosmos/cosmos-sdk/runtime" + "github.com/cosmos/cosmos-sdk/server/api" + "github.com/cosmos/cosmos-sdk/server/config" + sdkservertypes "github.com/cosmos/cosmos-sdk/server/types" + storetypes "github.com/cosmos/cosmos-sdk/store/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" +) + +var _ sdkservertypes.Application = &App{} + +// App is a wrapper around BaseApp and ModuleManager that can be used in hybrid +// app.go/app config scenarios or directly as a servertypes.Application instance. +// To get an instance of *App, *AppBuilder must be requested as a dependency +// in a container which declares the runtime module and the AppBuilder.Build() +// method must be called. +// +// App can be used to create a hybrid app.go setup where some configuration is +// done declaratively with an app config and the rest of it is done the old way. +// See simapp/app.go for an example of this setup. +type App struct { + *baseapp.BaseApp + + ModuleManager *module.Manager + configurator module.Configurator + config *runtimev1alpha1.Module + storeKeys []storetypes.StoreKey + interfaceRegistry codectypes.InterfaceRegistry + cdc codec.Codec + amino *codec.LegacyAmino + basicManager module.BasicManager + baseAppOptions []sdkruntime.BaseAppOption + msgServiceRouter *baseapp.MsgServiceRouter + appConfig *appv1alpha1.Config + // initChainer is the init chainer function defined by the app config. + // this is only required if the chain wants to add special InitChainer logic. + initChainer sdk.InitChainer +} + +// RegisterModules registers the provided modules with the module manager and +// the basic module manager. This is the primary hook for integrating with +// modules which are not registered using the app config. +func (a *App) RegisterModules(modules ...module.AppModule) error { + for _, appModule := range modules { + name := appModule.Name() + if _, ok := a.ModuleManager.Modules[name]; ok { + return fmt.Errorf("AppModule named %q already exists", name) + } + + if _, ok := a.basicManager[name]; ok { + return fmt.Errorf("AppModuleBasic named %q already exists", name) + } + + a.ModuleManager.Modules[name] = appModule + a.basicManager[name] = appModule + appModule.RegisterInterfaces(a.interfaceRegistry) + appModule.RegisterLegacyAminoCodec(a.amino) + + if module, ok := appModule.(module.HasServices); ok { + module.RegisterServices(a.configurator) + } + } + + return nil +} + +// RegisterStores registers the provided store keys. +// This method should only be used for registering extra stores +// wiich is necessary for modules that not registered using the app config. +// To be used in combination of RegisterModules. +func (a *App) RegisterStores(keys ...storetypes.StoreKey) error { + a.storeKeys = append(a.storeKeys, keys...) + a.MountStores(keys...) + + return nil +} + +// Load finishes all initialization operations and loads the app. +func (a *App) Load(loadLatest bool) error { + // register runtime module services + if err := a.registerRuntimeServices(); err != nil { + return err + } + + if len(a.config.InitGenesis) != 0 { + a.ModuleManager.SetOrderInitGenesis(a.config.InitGenesis...) + if a.initChainer == nil { + a.SetInitChainer(a.InitChainer) + } + } + + if len(a.config.ExportGenesis) != 0 { + a.ModuleManager.SetOrderExportGenesis(a.config.ExportGenesis...) + } else if len(a.config.InitGenesis) != 0 { + a.ModuleManager.SetOrderExportGenesis(a.config.InitGenesis...) + } + + if len(a.config.BeginBlockers) != 0 { + a.ModuleManager.SetOrderBeginBlockers(a.config.BeginBlockers...) + a.SetBeginBlocker(a.BeginBlocker) + } + + if len(a.config.EndBlockers) != 0 { + a.ModuleManager.SetOrderEndBlockers(a.config.EndBlockers...) + a.SetEndBlocker(a.EndBlocker) + } + + if len(a.config.OrderMigrations) != 0 { + a.ModuleManager.SetOrderMigrations(a.config.OrderMigrations...) + } + + if loadLatest { + if err := a.LoadLatestVersion(); err != nil { + return err + } + } + + return nil +} + +// BeginBlocker application updates every begin block +func (a *App) BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock) abci.ResponseBeginBlock { + return a.ModuleManager.BeginBlock(ctx, req) +} + +// EndBlocker application updates every end block +func (a *App) EndBlocker(ctx sdk.Context, req abci.RequestEndBlock) abci.ResponseEndBlock { + return a.ModuleManager.EndBlock(ctx, req) +} + +// InitChainer initializes the chain. +func (a *App) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.ResponseInitChain { + var genesisState map[string]json.RawMessage + if err := json.Unmarshal(req.AppStateBytes, &genesisState); err != nil { + panic(err) + } + return a.ModuleManager.InitGenesis(ctx, a.cdc, genesisState) +} + +// RegisterAPIRoutes registers all application module routes with the provided +// API server. +func (a *App) RegisterAPIRoutes(apiSvr *api.Server, _ config.APIConfig) { + clientCtx := apiSvr.ClientCtx + // Register new tx routes from grpc-gateway. + authtx.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) + + // Register new tendermint queries routes from grpc-gateway. + tmservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) + + // Register node gRPC service for grpc-gateway. + nodeservice.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) + + // Register grpc-gateway routes for all modules. + a.basicManager.RegisterGRPCGatewayRoutes(clientCtx, apiSvr.GRPCGatewayRouter) +} + +// RegisterTxService implements the Application.RegisterTxService method. +func (a *App) RegisterTxService(clientCtx client.Context) { + authtx.RegisterTxService(a.GRPCQueryRouter(), clientCtx, a.Simulate, a.interfaceRegistry) +} + +// RegisterTendermintService implements the Application.RegisterTendermintService method. +func (a *App) RegisterTendermintService(clientCtx client.Context) { + tmservice.RegisterTendermintService( + clientCtx, + a.GRPCQueryRouter(), + a.interfaceRegistry, + a.Query, + ) +} + +// RegisterNodeService registers the node gRPC service on the app gRPC router. +func (a *App) RegisterNodeService(clientCtx client.Context) { + nodeservice.RegisterNodeService(clientCtx, a.GRPCQueryRouter()) +} + +// Configurator returns the app's configurator. +func (a *App) Configurator() module.Configurator { + return a.configurator +} + +// LoadHeight loads a particular height +func (a *App) LoadHeight(height int64) error { + return a.LoadVersion(height) +} + +// DefaultGenesis returns a default genesis from the registered AppModuleBasic's. +func (a *App) DefaultGenesis() map[string]json.RawMessage { + return a.basicManager.DefaultGenesis(a.cdc) +} + +// GetStoreKeys returns all the stored store keys. +func (a *App) GetStoreKeys() []storetypes.StoreKey { + return a.storeKeys +} + +// SetInitChainer sets the init chainer function +// It wraps `BaseApp.SetInitChainer` to allow setting a custom init chainer from an app. +func (a *App) SetInitChainer(initChainer sdk.InitChainer) { + a.initChainer = initChainer + a.BaseApp.SetInitChainer(initChainer) +} + +// UnsafeFindStoreKey fetches a registered StoreKey from the App in linear time. +// +// NOTE: This should only be used in testing. +func (a *App) UnsafeFindStoreKey(storeKey string) storetypes.StoreKey { + i := slices.IndexFunc(a.storeKeys, func(s storetypes.StoreKey) bool { return s.Name() == storeKey }) + if i == -1 { + return nil + } + + return a.storeKeys[i] +} diff --git a/runtime/builder.go b/runtime/builder.go new file mode 100644 index 00000000..76452e4c --- /dev/null +++ b/runtime/builder.go @@ -0,0 +1,50 @@ +package runtime + +import ( + "encoding/json" + "io" + + dbm "github.com/cometbft/cometbft-db" + "github.com/cometbft/cometbft/libs/log" + + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/types/module" + "github.com/cosmos/cosmos-sdk/version" +) + +// AppBuilder is a type that is injected into a container by the runtime module +// (as *AppBuilder) which can be used to create an app which is compatible with +// the existing app.go initialization conventions. +type AppBuilder struct { + app *App +} + +// DefaultGenesis returns a default genesis from the registered AppModuleBasic's. +func (a *AppBuilder) DefaultGenesis() map[string]json.RawMessage { + return a.app.DefaultGenesis() +} + +// Build builds an *App instance. +func (a *AppBuilder) Build( + logger log.Logger, + db dbm.DB, + traceStore io.Writer, + baseAppOptions ...func(*baseapp.BaseApp), +) *App { + for _, option := range a.app.baseAppOptions { + baseAppOptions = append(baseAppOptions, option) + } + + bApp := baseapp.NewBaseApp(a.app.config.AppName, logger, db, nil, baseAppOptions...) + bApp.SetMsgServiceRouter(a.app.msgServiceRouter) + bApp.SetCommitMultiStoreTracer(traceStore) + bApp.SetVersion(version.Version) + bApp.SetInterfaceRegistry(a.app.interfaceRegistry) + bApp.MountStores(a.app.storeKeys...) + + a.app.BaseApp = bApp + a.app.configurator = module.NewConfigurator(a.app.cdc, a.app.MsgServiceRouter(), a.app.GRPCQueryRouter()) + a.app.ModuleManager.RegisterServices(a.app.configurator) + + return a.app +} diff --git a/runtime/module.go b/runtime/module.go new file mode 100644 index 00000000..ea620ed2 --- /dev/null +++ b/runtime/module.go @@ -0,0 +1,138 @@ +package runtime + +import ( + "fmt" + + abci "github.com/cometbft/cometbft/abci/types" + sdkruntime "github.com/cosmos/cosmos-sdk/runtime" + "github.com/stratosnet/stratos-chain/encoding/params" + + runtimev1alpha1 "cosmossdk.io/api/cosmos/app/runtime/v1alpha1" + appv1alpha1 "cosmossdk.io/api/cosmos/app/v1alpha1" + "cosmossdk.io/core/appmodule" + "cosmossdk.io/depinject" + + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/codec" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + storetypes "github.com/cosmos/cosmos-sdk/store/types" + "github.com/cosmos/cosmos-sdk/types/module" +) + +func init() { + appmodule.Register(&runtimev1alpha1.Module{}, + appmodule.Provide( + ProvideApp, + ProvideKVStoreKey, + ProvideTransientStoreKey, + ProvideMemoryStoreKey, + ProvideDeliverTx, + ), + appmodule.Invoke(SetupAppBuilder), + ) +} + +func ProvideApp() ( + codectypes.InterfaceRegistry, + codec.Codec, + *codec.LegacyAmino, + *AppBuilder, + codec.ProtoCodecMarshaler, + *baseapp.MsgServiceRouter, +) { + interfaceRegistry := codectypes.NewInterfaceRegistry() + amino := codec.NewLegacyAmino() + + // register types + params.RegisterInterfaces(interfaceRegistry) + params.RegisterLegacyAminoCodec(amino) + + cdc := codec.NewProtoCodec(interfaceRegistry) + msgServiceRouter := baseapp.NewMsgServiceRouter() + app := &AppBuilder{ + &App{ + storeKeys: nil, + interfaceRegistry: interfaceRegistry, + cdc: cdc, + amino: amino, + basicManager: module.BasicManager{}, + msgServiceRouter: msgServiceRouter, + }, + } + + return interfaceRegistry, cdc, amino, app, cdc, msgServiceRouter +} + +type AppInputs struct { + depinject.In + + AppConfig *appv1alpha1.Config + Config *runtimev1alpha1.Module + AppBuilder *AppBuilder + Modules map[string]appmodule.AppModule + BaseAppOptions []sdkruntime.BaseAppOption + InterfaceRegistry codectypes.InterfaceRegistry + LegacyAmino *codec.LegacyAmino +} + +func SetupAppBuilder(inputs AppInputs) { + app := inputs.AppBuilder.app + app.baseAppOptions = inputs.BaseAppOptions + app.config = inputs.Config + app.ModuleManager = module.NewManagerFromMap(inputs.Modules) + app.appConfig = inputs.AppConfig + + for name, mod := range inputs.Modules { + if basicMod, ok := mod.(module.AppModuleBasic); ok { + app.basicManager[name] = basicMod + basicMod.RegisterInterfaces(inputs.InterfaceRegistry) + basicMod.RegisterLegacyAminoCodec(inputs.LegacyAmino) + } + } +} + +func registerStoreKey(wrapper *AppBuilder, key storetypes.StoreKey) { + wrapper.app.storeKeys = append(wrapper.app.storeKeys, key) +} + +func storeKeyOverride(config *runtimev1alpha1.Module, moduleName string) *runtimev1alpha1.StoreKeyConfig { + for _, cfg := range config.OverrideStoreKeys { + if cfg.ModuleName == moduleName { + return cfg + } + } + return nil +} + +func ProvideKVStoreKey(config *runtimev1alpha1.Module, key depinject.ModuleKey, app *AppBuilder) *storetypes.KVStoreKey { + override := storeKeyOverride(config, key.Name()) + + var storeKeyName string + if override != nil { + storeKeyName = override.KvStoreKey + } else { + storeKeyName = key.Name() + } + + storeKey := storetypes.NewKVStoreKey(storeKeyName) + registerStoreKey(app, storeKey) + return storeKey +} + +func ProvideTransientStoreKey(key depinject.ModuleKey, app *AppBuilder) *storetypes.TransientStoreKey { + storeKey := storetypes.NewTransientStoreKey(fmt.Sprintf("transient:%s", key.Name())) + registerStoreKey(app, storeKey) + return storeKey +} + +func ProvideMemoryStoreKey(key depinject.ModuleKey, app *AppBuilder) *storetypes.MemoryStoreKey { + storeKey := storetypes.NewMemoryStoreKey(fmt.Sprintf("memory:%s", key.Name())) + registerStoreKey(app, storeKey) + return storeKey +} + +func ProvideDeliverTx(appBuilder *AppBuilder) func(abci.RequestDeliverTx) abci.ResponseDeliverTx { + return func(tx abci.RequestDeliverTx) abci.ResponseDeliverTx { + return appBuilder.app.BaseApp.DeliverTx(tx) + } +} diff --git a/runtime/services.go b/runtime/services.go new file mode 100644 index 00000000..bece4a4a --- /dev/null +++ b/runtime/services.go @@ -0,0 +1,22 @@ +package runtime + +import ( + appv1alpha1 "cosmossdk.io/api/cosmos/app/v1alpha1" + autocliv1 "cosmossdk.io/api/cosmos/autocli/v1" + reflectionv1 "cosmossdk.io/api/cosmos/reflection/v1" + + "github.com/cosmos/cosmos-sdk/runtime/services" +) + +func (a *App) registerRuntimeServices() error { + appv1alpha1.RegisterQueryServer(a.GRPCQueryRouter(), services.NewAppQueryService(a.appConfig)) + autocliv1.RegisterQueryServer(a.GRPCQueryRouter(), services.NewAutoCLIQueryService(a.ModuleManager.Modules)) + + reflectionSvc, err := services.NewReflectionService() + if err != nil { + return err + } + reflectionv1.RegisterReflectionServiceServer(a.GRPCQueryRouter(), reflectionSvc) + + return nil +} diff --git a/scripts/protoc-swagger-gen.sh b/scripts/protoc-swagger-gen.sh new file mode 100644 index 00000000..b073fc96 --- /dev/null +++ b/scripts/protoc-swagger-gen.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -eo pipefail + +mkdir -p ./tmp-swagger-gen +cd proto +proto_dirs=$(find ./cosmos -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) +for dir in $proto_dirs; do + # generate swagger files (filter query files) + query_file=$(find "${dir}" -maxdepth 1 \( -name 'query.proto' -o -name 'service.proto' \)) + if [[ ! -z "$query_file" ]]; then + buf generate --template buf.gen.swagger.yaml $query_file + fi +done + +cd .. +# combine swagger files +# uses nodejs package `swagger-combine`. +# all the individual swagger files need to be configured in `config.json` for merging +swagger-combine ./client/docs/config.json -o ./client/docs/swagger-ui/swagger.yaml -f yaml --continueOnConflictingPaths true --includeDefinitions true \ No newline at end of file diff --git a/scripts/protocgen-pulsar.sh b/scripts/protocgen-pulsar.sh new file mode 100644 index 00000000..8dee2b86 --- /dev/null +++ b/scripts/protocgen-pulsar.sh @@ -0,0 +1,31 @@ +# this script is for generating protobuf files for the new google.golang.org/protobuf API + +set -eo pipefail + +protoc_install_gopulsar() { + go install github.com/cosmos/cosmos-proto/cmd/protoc-gen-go-pulsar@v1.0.0-beta.2 + go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1.0 +} + +protoc_install_gopulsar + +echo "Cleaning API directory" +(cd api; find ./ -type f \( -iname \*.pulsar.go -o -iname \*.pb.go -o -iname \*.cosmos_orm.go -o -iname \*.pb.gw.go \) -delete; find . -empty -type d -delete; cd ..) + +echo "Generating API" +cd proto + +module_dirs=$(find ./stratos/ -path -prune -o -name 'module.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) +for dir in $module_dirs; do + buf generate --template buf.gen.pulsar.yaml --path $dir +done + +chmod 755 ../api -R + + +# +## this script is for generating protobuf files for the new google.golang.org/protobuf API +#echo "Generating API module" +#(cd proto; buf generate --template buf.gen.pulsar.yaml) +# + diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh new file mode 100644 index 00000000..31cb3b43 --- /dev/null +++ b/scripts/protocgen.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +# How to run manually: +# docker build --pull --rm -f "contrib/devtools/Dockerfile" -t cosmossdk-proto:latest "contrib/devtools" +# docker run --rm -v $(pwd):/workspace --workdir /workspace cosmossdk-proto sh ./scripts/protocgen.sh + +set -e + +echo "Generating protobuf dependency" +# buf export buf.build/cosmos/cosmos-sdk:v0.47.0 --output ./proto + +echo "Generating gogo proto code" +cd proto +proto_dirs=$(find ./stratos -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) +for dir in $proto_dirs; do + for file in $(find "${dir}" -maxdepth 1 -name '*.proto'); do + if grep "option go_package" $file &> /dev/null ; then + buf generate --template buf.gen.gogo.yaml $file + fi + done +done + +cd .. +# move proto files to the right places +cp -r github.com/stratosnet/stratos-chain/* ./ +rm -rf github.com + +#./scripts/protocgen-pulsar.sh \ No newline at end of file diff --git a/scripts/readme.md b/scripts/readme.md new file mode 100644 index 00000000..2c3209e2 --- /dev/null +++ b/scripts/readme.md @@ -0,0 +1,17 @@ +# Generate protobuf files + +## Install protobuf (Cosmos's fork of gogo/protobuf) + +https://github.com/cosmos/gogoproto/tree/v1.4.10 + +## Install protoc-gen-go-pulsar + +https://github.com/cosmos/cosmos-proto/tree/v1.0.0-beta.2 + +## Install protoc-gen-go, protoc-gen-grpc-gateway, protoc-gen-swagger + +https://github.com/grpc-ecosystem/grpc-gateway/tree/v1.16.0 + +## Export proto dependency + +`$ buf export buf.build/cosmos/cosmos-sdk:v0.47.0 --output ./proto` diff --git a/server/config/config.go b/server/config/config.go index f6b6888a..81238117 100644 --- a/server/config/config.go +++ b/server/config/config.go @@ -1,19 +1,20 @@ package config import ( - "errors" "fmt" "path" "strconv" "time" "github.com/spf13/viper" - stratos "github.com/stratosnet/stratos-chain/types" - "github.com/tendermint/tendermint/libs/strings" + "github.com/cometbft/cometbft/libs/strings" + "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/server/config" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + + stratos "github.com/stratosnet/stratos-chain/types" ) const ( @@ -42,18 +43,16 @@ const ( DefaultBlockRangeCap int32 = 10000 DefaultEVMTimeout = 5 * time.Second - // default 1.0 eth - DefaultTxFeeCap float64 = 1.0 + + DefaultTxFeeCap float64 = 1.0 // default 1.0 eth DefaultHTTPTimeout = 30 * time.Second DefaultHTTPIdleTimeout = 120 * time.Second - // default 1000000000wei = 1gwei - DefaultMinGasPrices uint64 = 1e9 + DefaultMinGasPrices uint64 = 1e9 // default 1000000000wei = 1gwei - // 1000000wei = 0.01gwei - MinimalMinGasPrices uint64 = 1e7 + MinimalMinGasPrices uint64 = 1e7 // 1000000wei = 0.01gwei ) var evmTracers = []string{"json", "markdown", "struct", "access_list"} @@ -209,39 +208,39 @@ func DefaultJSONRPCConfig() *JSONRPCConfig { // Validate returns an error if the JSON-RPC configuration fields are invalid. func (c JSONRPCConfig) Validate() error { if c.Enable && len(c.API) == 0 { - return errors.New("cannot enable JSON-RPC without defining any API namespace") + return fmt.Errorf("cannot enable JSON-RPC without defining any API namespace") } if c.FilterCap < 0 { - return errors.New("JSON-RPC filter-cap cannot be negative") + return fmt.Errorf("JSON-RPC filter-cap cannot be negative") } if c.FeeHistoryCap <= 0 { - return errors.New("JSON-RPC feehistory-cap cannot be negative or 0") + return fmt.Errorf("JSON-RPC feehistory-cap cannot be negative or 0") } if c.TxFeeCap < 0 { - return errors.New("JSON-RPC tx fee cap cannot be negative") + return fmt.Errorf("JSON-RPC tx fee cap cannot be negative") } if c.EVMTimeout < 0 { - return errors.New("JSON-RPC EVM timeout duration cannot be negative") + return fmt.Errorf("JSON-RPC EVM timeout duration cannot be negative") } if c.LogsCap < 0 { - return errors.New("JSON-RPC logs cap cannot be negative") + return fmt.Errorf("JSON-RPC logs cap cannot be negative") } if c.BlockRangeCap < 0 { - return errors.New("JSON-RPC block range cap cannot be negative") + return fmt.Errorf("JSON-RPC block range cap cannot be negative") } if c.HTTPTimeout < 0 { - return errors.New("JSON-RPC HTTP timeout duration cannot be negative") + return fmt.Errorf("JSON-RPC HTTP timeout duration cannot be negative") } if c.HTTPIdleTimeout < 0 { - return errors.New("JSON-RPC HTTP idle timeout duration cannot be negative") + return fmt.Errorf("JSON-RPC HTTP idle timeout duration cannot be negative") } // check for duplicates @@ -329,15 +328,15 @@ func ParseConfig(v *viper.Viper) (*Config, error) { // ValidateBasic returns an error any of the application configuration fields are invalid func (c Config) ValidateBasic() error { if err := c.EVM.Validate(); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrAppConfig, "invalid evm config value: %s", err.Error()) + return errors.Wrapf(sdkerrors.ErrAppConfig, "invalid evm config value: %s", err.Error()) } if err := c.JSONRPC.Validate(); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrAppConfig, "invalid json-rpc config value: %s", err.Error()) + return errors.Wrapf(sdkerrors.ErrAppConfig, "invalid json-rpc config value: %s", err.Error()) } if err := c.TLS.Validate(); err != nil { - return sdkerrors.Wrapf(sdkerrors.ErrAppConfig, "invalid tls config value: %s", err.Error()) + return errors.Wrapf(sdkerrors.ErrAppConfig, "invalid tls config value: %s", err.Error()) } return c.Config.ValidateBasic() diff --git a/server/flags/flags.go b/server/flags/flags.go index 0a7325fe..e8b985b9 100644 --- a/server/flags/flags.go +++ b/server/flags/flags.go @@ -60,7 +60,7 @@ const ( // AddTxFlags adds common flags for commands to post tx func AddTxFlags(cmd *cobra.Command) (*cobra.Command, error) { - cmd.PersistentFlags().String(flags.FlagChainID, "testnet", "Specify Chain ID for sending Tx") + cmd.PersistentFlags().String(flags.FlagChainID, "", "Specify Chain ID for sending Tx") cmd.PersistentFlags().String(flags.FlagFrom, "", "Name or address of private key with which to sign") cmd.PersistentFlags().String(flags.FlagFees, "", "Fees to pay along with transaction; eg: 10wei") cmd.PersistentFlags().String(flags.FlagGasPrices, "", "Gas prices to determine the transaction fee (e.g. 10wei)") diff --git a/server/json_rpc.go b/server/json_rpc.go index ebacf3fa..5968974d 100644 --- a/server/json_rpc.go +++ b/server/json_rpc.go @@ -1,7 +1,7 @@ package server import ( - "github.com/tendermint/tendermint/node" + "github.com/cometbft/cometbft/node" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/server" diff --git a/server/start.go b/server/start.go index 3f28c977..dfaa21b4 100644 --- a/server/start.go +++ b/server/start.go @@ -13,29 +13,29 @@ import ( "github.com/spf13/cobra" "google.golang.org/grpc" - abciserver "github.com/tendermint/tendermint/abci/server" - tcmd "github.com/tendermint/tendermint/cmd/tendermint/commands" - tmos "github.com/tendermint/tendermint/libs/os" - "github.com/tendermint/tendermint/node" - "github.com/tendermint/tendermint/p2p" - pvm "github.com/tendermint/tendermint/privval" - "github.com/tendermint/tendermint/proxy" - "github.com/tendermint/tendermint/rpc/client/local" - dbm "github.com/tendermint/tm-db" - + dbm "github.com/cometbft/cometbft-db" + abciserver "github.com/cometbft/cometbft/abci/server" + tcmd "github.com/cometbft/cometbft/cmd/cometbft/commands" + tmos "github.com/cometbft/cometbft/libs/os" + "github.com/cometbft/cometbft/node" + "github.com/cometbft/cometbft/p2p" + pvm "github.com/cometbft/cometbft/privval" + "github.com/cometbft/cometbft/proxy" + "github.com/cometbft/cometbft/rpc/client/local" + + "cosmossdk.io/tools/rosetta" + crgserver "cosmossdk.io/tools/rosetta/lib/server" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/crypto/keyring" "github.com/cosmos/cosmos-sdk/server" + sdkserver "github.com/cosmos/cosmos-sdk/server" "github.com/cosmos/cosmos-sdk/server/api" serverconfig "github.com/cosmos/cosmos-sdk/server/config" servergrpc "github.com/cosmos/cosmos-sdk/server/grpc" - "github.com/cosmos/cosmos-sdk/server/rosetta" - crgserver "github.com/cosmos/cosmos-sdk/server/rosetta/lib/server" - "github.com/cosmos/cosmos-sdk/server/types" - storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" + sdkservertypes "github.com/cosmos/cosmos-sdk/server/types" + pruningtypes "github.com/cosmos/cosmos-sdk/store/pruning/types" stosapp "github.com/stratosnet/stratos-chain/app" ethdebug "github.com/stratosnet/stratos-chain/rpc/namespaces/ethereum/debug" @@ -45,7 +45,7 @@ import ( // StartCmd runs the service passed in, either stand-alone or in-process with // Tendermint. -func StartCmd(appCreator types.AppCreator, defaultNodeHome string) *cobra.Command { +func StartCmd(appCreator sdkservertypes.AppCreator, defaultNodeHome string) *cobra.Command { cmd := &cobra.Command{ Use: "start", Short: "Run the full node", @@ -134,9 +134,8 @@ which accepts a path for the resulting pprof file. cmd.Flags().Bool(server.FlagInterBlockCache, true, "Enable inter-block caching") cmd.Flags().String(srvflags.CPUProfile, "", "Enable CPU profiling and write to the provided file") cmd.Flags().Bool(server.FlagTrace, false, "Provide full stack traces for errors in ABCI Log") - cmd.Flags().String(server.FlagPruning, storetypes.PruningOptionDefault, "Pruning strategy (default|nothing|everything|custom)") + cmd.Flags().String(server.FlagPruning, pruningtypes.PruningOptionDefault, "Pruning strategy (default|nothing|everything|custom)") cmd.Flags().Uint64(server.FlagPruningKeepRecent, 0, "Number of recent heights to keep on disk (ignored if pruning is not 'custom')") - cmd.Flags().Uint64(server.FlagPruningKeepEvery, 0, "Offset heights to keep on disk after 'keep-every' (ignored if pruning is not 'custom')") cmd.Flags().Uint64(server.FlagPruningInterval, 0, "Height interval at which pruned heights are removed from disk (ignored if pruning is not 'custom')") cmd.Flags().Uint(server.FlagInvCheckPeriod, 0, "Assert registered invariants every N blocks") cmd.Flags().Uint64(server.FlagMinRetainBlocks, 0, "Minimum block height offset during ABCI commit to prune Tendermint blocks") @@ -176,12 +175,12 @@ which accepts a path for the resulting pprof file. return cmd } -func startStandAlone(ctx *server.Context, appCreator types.AppCreator) error { +func startStandAlone(ctx *server.Context, appCreator sdkservertypes.AppCreator) error { addr := ctx.Viper.GetString(srvflags.Address) transport := ctx.Viper.GetString(srvflags.Transport) home := ctx.Viper.GetString(flags.FlagHome) - db, err := openDB(home) + db, err := openDB(home, sdkserver.GetAppDBBackend(ctx.Viper)) if err != nil { return err } @@ -222,7 +221,7 @@ func startStandAlone(ctx *server.Context, appCreator types.AppCreator) error { } // legacyAminoCdc is used for the legacy REST API -func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator types.AppCreator) (err error) { +func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator sdkservertypes.AppCreator) (err error) { cfg := ctx.Config home := cfg.RootDir logger := ctx.Logger @@ -256,7 +255,7 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty } traceWriterFile := ctx.Viper.GetString(srvflags.TraceStore) - db, err := openDB(home) + db, err := openDB(home, sdkserver.GetAppDBBackend(ctx.Viper)) if err != nil { logger.Error("failed to open DB", "error", err.Error()) return err @@ -273,13 +272,13 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty return err } - config, err := config.GetConfig(ctx.Viper) + configs, err := config.GetConfig(ctx.Viper) if err != nil { logger.Error("get config failed", " error", err.Error()) return err } - if err := config.ValidateBasic(); err != nil { + if err := configs.ValidateBasic(); err != nil { if strings.Contains(err.Error(), "set min gas price in app.toml or flag or env variable") { ctx.Logger.Error( "WARNING: The minimum-gas-prices config in app.toml is set to the empty string. " + @@ -323,7 +322,7 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty // Add the tx service to the gRPC router. We only need to register this // service if API or gRPC or JSONRPC is enabled, and avoid doing so in the general // case, because it spawns a new local tendermint RPC client. - if config.API.Enable || config.GRPC.Enable || config.JSONRPC.Enable { + if configs.API.Enable || configs.GRPC.Enable || configs.JSONRPC.Enable { clientCtx = clientCtx.WithClient(local.New(tmNode)) app.RegisterTxService(clientCtx) @@ -331,7 +330,7 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty } var apiSrv *api.Server - if config.API.Enable { + if configs.API.Enable { genDoc, err := genDocProvider() if err != nil { return err @@ -342,11 +341,11 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty WithChainID(genDoc.ChainID) apiSrv = api.New(clientCtx, ctx.Logger.With("server", "api")) - app.RegisterAPIRoutes(apiSrv, config.API) + app.RegisterAPIRoutes(apiSrv, configs.API) errCh := make(chan error) go func() { - if err := apiSrv.Start(config.Config); err != nil { + if err := apiSrv.Start(configs.Config); err != nil { errCh <- err } }() @@ -354,7 +353,7 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty select { case err := <-errCh: return err - case <-time.After(types.ServerStartTime): // assume server started successfully + case <-time.After(sdkservertypes.ServerStartTime): // assume server started successfully } } @@ -362,13 +361,13 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty grpcSrv *grpc.Server grpcWebSrv *http.Server ) - if config.GRPC.Enable { - grpcSrv, err = servergrpc.StartGRPCServer(clientCtx, app, config.GRPC.Address) + if configs.GRPC.Enable { + grpcSrv, err = servergrpc.StartGRPCServer(clientCtx, app, configs.GRPC) if err != nil { return err } - if config.GRPCWeb.Enable { - grpcWebSrv, err = servergrpc.StartGRPCWeb(grpcSrv, config.Config) + if configs.GRPCWeb.Enable { + grpcWebSrv, err = servergrpc.StartGRPCWeb(grpcSrv, configs.Config) if err != nil { ctx.Logger.Error("failed to start grpc-web http server", "error", err) return err @@ -377,19 +376,19 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty } var rosettaSrv crgserver.Server - if config.Rosetta.Enable { - offlineMode := config.Rosetta.Offline - if !config.GRPC.Enable { // If GRPC is not enabled rosetta cannot work in online mode, so it works in offline mode. + if configs.Rosetta.Enable { + offlineMode := configs.Rosetta.Offline + if !configs.GRPC.Enable { // If GRPC is not enabled rosetta cannot work in online mode, so it works in offline mode. offlineMode = true } conf := &rosetta.Config{ - Blockchain: config.Rosetta.Blockchain, - Network: config.Rosetta.Network, + Blockchain: configs.Rosetta.Blockchain, + Network: configs.Rosetta.Network, TendermintRPC: ctx.Config.RPC.ListenAddress, - GRPCEndpoint: config.GRPC.Address, - Addr: config.Rosetta.Address, - Retries: config.Rosetta.Retries, + GRPCEndpoint: configs.GRPC.Address, + Addr: configs.Rosetta.Address, + Retries: configs.Rosetta.Retries, Offline: offlineMode, } conf.WithCodec(clientCtx.InterfaceRegistry, clientCtx.Codec.(*codec.ProtoCodec)) @@ -408,18 +407,18 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty select { case err := <-errCh: return err - case <-time.After(types.ServerStartTime): // assume server started successfully + case <-time.After(sdkservertypes.ServerStartTime): // assume server started successfully } } - if config.JSONRPC.Enable { + if configs.JSONRPC.Enable { if err := StartJSONRPC( ctx, tmNode, app.(stosapp.EVMKeeperApp).GetEVMKeeper(), app.CommitMultiStore(), clientCtx, - config, + configs, ); err != nil { return err } @@ -454,9 +453,9 @@ func startInProcess(ctx *server.Context, clientCtx client.Context, appCreator ty return server.WaitForQuitSignals() } -func openDB(rootDir string) (dbm.DB, error) { +func openDB(rootDir string, backendType dbm.BackendType) (dbm.DB, error) { dataDir := filepath.Join(rootDir, "data") - return sdk.NewLevelDB("application", dataDir) + return dbm.NewDB("application", backendType, dataDir) } func openTraceWriter(traceWriterFile string) (w io.Writer, err error) { diff --git a/server/util.go b/server/util.go index b4f9d607..8d2f1498 100644 --- a/server/util.go +++ b/server/util.go @@ -1,24 +1,30 @@ package server import ( - "net/http" - "time" + "path/filepath" - "github.com/gorilla/mux" - "github.com/improbable-eng/grpc-web/go/grpcweb" + tmcmd "github.com/cometbft/cometbft/cmd/cometbft/commands" + tmtypes "github.com/cometbft/cometbft/types" + "github.com/spf13/cast" "github.com/spf13/cobra" + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/client/flags" sdkserver "github.com/cosmos/cosmos-sdk/server" - "github.com/cosmos/cosmos-sdk/server/types" + sdkservertypes "github.com/cosmos/cosmos-sdk/server/types" + snapshottypes "github.com/cosmos/cosmos-sdk/snapshots/types" + "github.com/cosmos/cosmos-sdk/store" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/mempool" "github.com/cosmos/cosmos-sdk/version" - tmcmd "github.com/tendermint/tendermint/cmd/tendermint/commands" - tmlog "github.com/tendermint/tendermint/libs/log" - rpcclient "github.com/tendermint/tendermint/rpc/jsonrpc/client" + servercfg "github.com/stratosnet/stratos-chain/server/config" ) -// add server commands -func AddCommands(rootCmd *cobra.Command, defaultNodeHome string, appCreator types.AppCreator, appExport types.AppExporter, addStartFlags types.ModuleInitFlags) { +// AddCommands add server commands +func AddCommands(rootCmd *cobra.Command, defaultNodeHome string, appCreator sdkservertypes.AppCreator, + appExport sdkservertypes.AppExporter, addStartFlags sdkservertypes.ModuleInitFlags, +) { tendermintCmd := &cobra.Command{ Use: "tendermint", Short: "Tendermint subcommands", @@ -44,55 +50,132 @@ func AddCommands(rootCmd *cobra.Command, defaultNodeHome string, appCreator type ) } -func ConnectTmWS(tmRPCAddr, tmEndpoint string, logger tmlog.Logger) *rpcclient.WSClient { - tmWsClient, err := rpcclient.NewWS(tmRPCAddr, tmEndpoint, - rpcclient.MaxReconnectAttempts(256), - rpcclient.ReadWait(120*time.Second), - rpcclient.WriteWait(120*time.Second), - rpcclient.PingPeriod(50*time.Second), - rpcclient.OnReconnect(func() { - logger.Debug("EVM RPC reconnects to Tendermint WS", "address", tmRPCAddr+tmEndpoint) - }), - ) +// DefaultBaseAppOptions returns the default baseapp options provided by the Cosmos SDK +func DefaultBaseAppOptions(appOpts sdkservertypes.AppOptions) []func(*baseapp.BaseApp) { + var cache sdk.MultiStorePersistentCache + + if cast.ToBool(appOpts.Get(sdkserver.FlagInterBlockCache)) { + cache = store.NewCommitKVStoreCacheManager() + } + pruningOpts, err := sdkserver.GetPruningOptionsFromFlags(appOpts) if err != nil { - logger.Error( - "Tendermint WS client could not be created", - "address", tmRPCAddr+tmEndpoint, - "error", err, - ) - } else if err := tmWsClient.OnStart(); err != nil { - logger.Error( - "Tendermint WS client could not start", - "address", tmRPCAddr+tmEndpoint, - "error", err, - ) + panic(err) } - return tmWsClient + homeDir := cast.ToString(appOpts.Get(flags.FlagHome)) + chainID := cast.ToString(appOpts.Get(flags.FlagChainID)) + if chainID == "" { + // fallback to genesis chain-id + appGenesis, err := tmtypes.GenesisDocFromFile(filepath.Join(homeDir, "config", "genesis.json")) + if err != nil { + panic(err) + } + + chainID = appGenesis.ChainID + } + + snapshotStore, err := sdkserver.GetSnapshotStore(appOpts) + if err != nil { + panic(err) + } + + snapshotOptions := snapshottypes.NewSnapshotOptions( + cast.ToUint64(appOpts.Get(sdkserver.FlagStateSyncSnapshotInterval)), + cast.ToUint32(appOpts.Get(sdkserver.FlagStateSyncSnapshotKeepRecent)), + ) + + return []func(*baseapp.BaseApp){ + baseapp.SetPruning(pruningOpts), + baseapp.SetMinGasPrices(checkMinGasPrices(appOpts)), + baseapp.SetHaltHeight(cast.ToUint64(appOpts.Get(sdkserver.FlagHaltHeight))), + baseapp.SetHaltTime(cast.ToUint64(appOpts.Get(sdkserver.FlagHaltTime))), + baseapp.SetMinRetainBlocks(cast.ToUint64(appOpts.Get(sdkserver.FlagMinRetainBlocks))), + baseapp.SetInterBlockCache(cache), + baseapp.SetTrace(cast.ToBool(appOpts.Get(sdkserver.FlagTrace))), + baseapp.SetIndexEvents(cast.ToStringSlice(appOpts.Get(sdkserver.FlagIndexEvents))), + baseapp.SetSnapshot(snapshotStore, snapshotOptions), + baseapp.SetIAVLCacheSize(cast.ToInt(appOpts.Get(sdkserver.FlagIAVLCacheSize))), + baseapp.SetIAVLDisableFastNode(cast.ToBool(appOpts.Get(sdkserver.FlagDisableIAVLFastNode))), + baseapp.SetMempool( + mempool.NewSenderNonceMempool( + mempool.SenderNonceMaxTxOpt(cast.ToInt(appOpts.Get(sdkserver.FlagMempoolMaxTxs))), + ), + ), + baseapp.SetIAVLLazyLoading(cast.ToBool(appOpts.Get(sdkserver.FlagIAVLLazyLoading))), + baseapp.SetChainID(chainID), + } } -func MountGRPCWebServices( - router *mux.Router, - grpcWeb *grpcweb.WrappedGrpcServer, - grpcResources []string, - logger tmlog.Logger, -) { - for _, res := range grpcResources { - - logger.Info("[GRPC Web] HTTP POST mounted", "resource", res) - - s := router.Methods("POST").Subrouter() - s.HandleFunc(res, func(resp http.ResponseWriter, req *http.Request) { - if grpcWeb.IsGrpcWebSocketRequest(req) { - grpcWeb.HandleGrpcWebsocketRequest(resp, req) - return - } - - if grpcWeb.IsGrpcWebRequest(req) { - grpcWeb.HandleGrpcWebRequest(resp, req) - return - } - }) +func checkMinGasPrices(appOpts sdkservertypes.AppOptions) string { + minGasPricesInputStr := cast.ToString(appOpts.Get(sdkserver.FlagMinGasPrices)) + minGasPricesInput, err := sdk.ParseCoinNormalized(minGasPricesInputStr) + if err != nil { + panic(err) } + + minimalMinGasPricesStr := servercfg.GetMinimalMinGasPricesCoinStr() + minimalMinGasPrices, err := sdk.ParseCoinNormalized(minimalMinGasPricesStr) + if err != nil { + panic(err) + } + + if minGasPricesInput.IsLT(minimalMinGasPrices) { + return minimalMinGasPricesStr + } + + return minGasPricesInput.String() } + +//func ConnectTmWS(tmRPCAddr, tmEndpoint string, logger tmlog.Logger) *rpcclient.WSClient { +// tmWsClient, err := rpcclient.NewWS(tmRPCAddr, tmEndpoint, +// rpcclient.MaxReconnectAttempts(256), +// rpcclient.ReadWait(120*time.Second), +// rpcclient.WriteWait(120*time.Second), +// rpcclient.PingPeriod(50*time.Second), +// rpcclient.OnReconnect(func() { +// logger.Debug("EVM RPC reconnects to Tendermint WS", "address", tmRPCAddr+tmEndpoint) +// }), +// ) +// +// if err != nil { +// logger.Error( +// "Tendermint WS client could not be created", +// "address", tmRPCAddr+tmEndpoint, +// "error", err, +// ) +// } else if err := tmWsClient.OnStart(); err != nil { +// logger.Error( +// "Tendermint WS client could not start", +// "address", tmRPCAddr+tmEndpoint, +// "error", err, +// ) +// } +// +// return tmWsClient +//} +// +//func MountGRPCWebServices( +// router *mux.Router, +// grpcWeb *grpcweb.WrappedGrpcServer, +// grpcResources []string, +// logger tmlog.Logger, +//) { +// for _, res := range grpcResources { +// +// logger.Info("[GRPC Web] HTTP POST mounted", "resource", res) +// +// s := router.Methods("POST").Subrouter() +// s.HandleFunc(res, func(resp http.ResponseWriter, req *http.Request) { +// if grpcWeb.IsGrpcWebSocketRequest(req) { +// grpcWeb.HandleGrpcWebsocketRequest(resp, req) +// return +// } +// +// if grpcWeb.IsGrpcWebRequest(req) { +// grpcWeb.HandleGrpcWebRequest(resp, req) +// return +// } +// }) +// } +//} diff --git a/testutil/stratos/app_helpers.go b/testutil/stratos/app_helpers.go new file mode 100644 index 00000000..3259c6ab --- /dev/null +++ b/testutil/stratos/app_helpers.go @@ -0,0 +1,31 @@ +package stratos + +import ( + "time" + + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmtypes "github.com/cometbft/cometbft/types" +) + +const ( + DefaultGenTxGas = 50000000000 +) + +// DefaultConsensusParams defines the default Tendermint consensus params used in +// StratosApp testing. +var DefaultConsensusParams = &tmproto.ConsensusParams{ + Block: &tmproto.BlockParams{ + MaxBytes: 200000, + MaxGas: -1, // unlimited gas + }, + Evidence: &tmproto.EvidenceParams{ + MaxAgeNumBlocks: 302400, + MaxAgeDuration: 504 * time.Hour, // 3 weeks is the max duration + MaxBytes: 10000, + }, + Validator: &tmproto.ValidatorParams{ + PubKeyTypes: []string{ + tmtypes.ABCIPubKeyTypeEd25519, + }, + }, +} diff --git a/testutil/stratos/tx_helpers.go b/testutil/stratos/tx_helpers.go new file mode 100644 index 00000000..8f1481e1 --- /dev/null +++ b/testutil/stratos/tx_helpers.go @@ -0,0 +1,125 @@ +package stratos + +import ( + "math/rand" + "testing" + "time" + + "github.com/stretchr/testify/require" + + abci "github.com/cometbft/cometbft/abci/types" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + + sdkmath "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/baseapp" + "github.com/cosmos/cosmos-sdk/client" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" + simstestutil "github.com/cosmos/cosmos-sdk/testutil/sims" + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/stratosnet/stratos-chain/server/config" + stratos "github.com/stratosnet/stratos-chain/types" +) + +// SignCheckDeliver checks a generated signed transaction and simulates a +// block commitment with the given transaction. A test assertion is made using +// the parameter 'expPass' against the result. A corresponding result is +// returned. +func SignCheckDeliver( + t *testing.T, txCfg client.TxConfig, app *baseapp.BaseApp, header tmproto.Header, msgs []sdk.Msg, + chainID string, accNums, accSeqs []uint64, expSimPass, expPass bool, priv ...cryptotypes.PrivKey, +) (sdk.GasInfo, *sdk.Result, error) { + tx, err := simstestutil.GenSignedMockTx( + rand.New(rand.NewSource(time.Now().UnixNano())), + txCfg, + msgs, + sdk.Coins{stratos.NewCoinInt64(0)}, + DefaultGenTxGas, + chainID, + accNums, + accSeqs, + priv..., + ) + require.NoError(t, err) + txBytes, err := txCfg.TxEncoder()(tx) + require.Nil(t, err) + + // Must simulate now as CheckTx doesn't run Msgs anymore + _, res, err := app.Simulate(txBytes) + + if expSimPass { + require.NoError(t, err) + require.NotNil(t, res) + } else { + require.Error(t, err) + require.Nil(t, res) + } + + // Simulate a sending a transaction and committing a block + app.BeginBlock(abci.RequestBeginBlock{Header: header}) + gInfo, res, err := app.SimDeliver(txCfg.TxEncoder(), tx) + + if expPass { + require.NoError(t, err) + require.NotNil(t, res) + } else { + require.Error(t, err) + require.Nil(t, res) + } + + app.EndBlock(abci.RequestEndBlock{}) + app.Commit() + + return gInfo, res, err +} + +func SignCheckDeliverWithFee( + t *testing.T, txCfg client.TxConfig, app *baseapp.BaseApp, header tmproto.Header, msgs []sdk.Msg, + chainID string, accNums, accSeqs []uint64, expSimPass, expPass bool, priv ...cryptotypes.PrivKey, +) (sdk.GasInfo, *sdk.Result, error) { + + feeAmount := sdkmath.NewInt(int64(config.DefaultMinGasPrices)).Mul(sdkmath.NewInt(DefaultGenTxGas)) + + tx, err := simstestutil.GenSignedMockTx( + rand.New(rand.NewSource(time.Now().UnixNano())), + txCfg, + msgs, + sdk.Coins{stratos.NewCoin(feeAmount)}, + DefaultGenTxGas, + chainID, + accNums, + accSeqs, + priv..., + ) + require.NoError(t, err) + txBytes, err := txCfg.TxEncoder()(tx) + require.Nil(t, err) + + // Must simulate now as CheckTx doesn't run Msgs anymore + _, res, err := app.Simulate(txBytes) + + if expSimPass { + require.NoError(t, err) + require.NotNil(t, res) + } else { + require.Error(t, err) + require.Nil(t, res) + } + + // Simulate a sending a transaction and committing a block + app.BeginBlock(abci.RequestBeginBlock{Header: header}) + gInfo, res, err := app.SimDeliver(txCfg.TxEncoder(), tx) + + if expPass { + require.NoError(t, err) + require.NotNil(t, res) + } else { + require.Error(t, err) + require.Nil(t, res) + } + + app.EndBlock(abci.RequestEndBlock{}) + app.Commit() + + return gInfo, res, err +} diff --git a/third_party/proto/buf.yaml b/third_party/proto/buf.yaml deleted file mode 100644 index a5b0d628..00000000 --- a/third_party/proto/buf.yaml +++ /dev/null @@ -1,33 +0,0 @@ -version: v1 -build: - excludes: - - google/protobuf -lint: - use: - - DEFAULT - - COMMENTS - - FILE_LOWER_SNAKE_CASE - except: - - UNARY_RPC - - COMMENT_FIELD - - SERVICE_SUFFIX - - PACKAGE_VERSION_SUFFIX - - RPC_REQUEST_STANDARD_NAME - - RPC_REQUEST_RESPONSE_UNIQUE - - RPC_RESPONSE_STANDARD_NAME - - RPC_REQUEST_RESPONSE_UNIQUE - - COMMENT_MESSAGE - ignore: - - tendermint - - gogoproto - - cosmos_proto - - google - - confio -breaking: - use: - - FILE - ignore: - - tendermint - - gogoproto - - cosmos_proto - - google \ No newline at end of file diff --git a/third_party/proto/cosmos/auth/v1beta1/auth.proto b/third_party/proto/cosmos/auth/v1beta1/auth.proto deleted file mode 100644 index 72e1d9ec..00000000 --- a/third_party/proto/cosmos/auth/v1beta1/auth.proto +++ /dev/null @@ -1,50 +0,0 @@ -syntax = "proto3"; -package cosmos.auth.v1beta1; - -import "cosmos_proto/cosmos.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; - -// BaseAccount defines a base account type. It contains all the necessary fields -// for basic account functionality. Any custom account type should extend this -// type for additional functionality (e.g. vesting). -message BaseAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.equal) = false; - - option (cosmos_proto.implements_interface) = "AccountI"; - - string address = 1; - google.protobuf.Any pub_key = 2 - [(gogoproto.jsontag) = "public_key,omitempty", (gogoproto.moretags) = "yaml:\"public_key\""]; - uint64 account_number = 3 [(gogoproto.moretags) = "yaml:\"account_number\""]; - uint64 sequence = 4; -} - -// ModuleAccount defines an account for modules that holds coins on a pool. -message ModuleAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - option (cosmos_proto.implements_interface) = "ModuleAccountI"; - - BaseAccount base_account = 1 [(gogoproto.embed) = true, (gogoproto.moretags) = "yaml:\"base_account\""]; - string name = 2; - repeated string permissions = 3; -} - -// Params defines the parameters for the auth module. -message Params { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - uint64 max_memo_characters = 1 [(gogoproto.moretags) = "yaml:\"max_memo_characters\""]; - uint64 tx_sig_limit = 2 [(gogoproto.moretags) = "yaml:\"tx_sig_limit\""]; - uint64 tx_size_cost_per_byte = 3 [(gogoproto.moretags) = "yaml:\"tx_size_cost_per_byte\""]; - uint64 sig_verify_cost_ed25519 = 4 - [(gogoproto.customname) = "SigVerifyCostED25519", (gogoproto.moretags) = "yaml:\"sig_verify_cost_ed25519\""]; - uint64 sig_verify_cost_secp256k1 = 5 - [(gogoproto.customname) = "SigVerifyCostSecp256k1", (gogoproto.moretags) = "yaml:\"sig_verify_cost_secp256k1\""]; -} diff --git a/third_party/proto/cosmos/auth/v1beta1/genesis.proto b/third_party/proto/cosmos/auth/v1beta1/genesis.proto deleted file mode 100644 index c88b94ee..00000000 --- a/third_party/proto/cosmos/auth/v1beta1/genesis.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package cosmos.auth.v1beta1; - -import "google/protobuf/any.proto"; -import "gogoproto/gogo.proto"; -import "cosmos/auth/v1beta1/auth.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; - -// GenesisState defines the auth module's genesis state. -message GenesisState { - // params defines all the paramaters of the module. - Params params = 1 [(gogoproto.nullable) = false]; - - // accounts are the accounts present at genesis. - repeated google.protobuf.Any accounts = 2; -} diff --git a/third_party/proto/cosmos/auth/v1beta1/query.proto b/third_party/proto/cosmos/auth/v1beta1/query.proto deleted file mode 100644 index 76d30dd6..00000000 --- a/third_party/proto/cosmos/auth/v1beta1/query.proto +++ /dev/null @@ -1,68 +0,0 @@ -syntax = "proto3"; -package cosmos.auth.v1beta1; - -import "cosmos/base/query/v1beta1/pagination.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; -import "google/api/annotations.proto"; -import "cosmos/auth/v1beta1/auth.proto"; -import "cosmos_proto/cosmos.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/auth/types"; - -// Query defines the gRPC querier service. -service Query { - // Accounts returns all the existing accounts - rpc Accounts(QueryAccountsRequest) returns (QueryAccountsResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/accounts"; - } - - // Account returns account details based on address. - rpc Account(QueryAccountRequest) returns (QueryAccountResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/accounts/{address}"; - } - - // Params queries all parameters. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmos/auth/v1beta1/params"; - } -} - -// QueryAccountsRequest is the request type for the Query/Accounts RPC method. -message QueryAccountsRequest { - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -// QueryAccountsResponse is the response type for the Query/Accounts RPC method. -message QueryAccountsResponse { - // accounts are the existing accounts - repeated google.protobuf.Any accounts = 1 [(cosmos_proto.accepts_interface) = "AccountI"]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryAccountRequest is the request type for the Query/Account RPC method. -message QueryAccountRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // address defines the address to query for. - string address = 1; -} - -// QueryAccountResponse is the response type for the Query/Account RPC method. -message QueryAccountResponse { - // account defines the account of the corresponding address. - google.protobuf.Any account = 1 [(cosmos_proto.accepts_interface) = "AccountI"]; -} - -// QueryParamsRequest is the request type for the Query/Params RPC method. -message QueryParamsRequest {} - -// QueryParamsResponse is the response type for the Query/Params RPC method. -message QueryParamsResponse { - // params defines the parameters of the module. - Params params = 1 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/authz/v1beta1/authz.proto b/third_party/proto/cosmos/authz/v1beta1/authz.proto deleted file mode 100644 index c69a93c1..00000000 --- a/third_party/proto/cosmos/authz/v1beta1/authz.proto +++ /dev/null @@ -1,26 +0,0 @@ -syntax = "proto3"; -package cosmos.authz.v1beta1; - -import "cosmos_proto/cosmos.proto"; -import "google/protobuf/timestamp.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; -option (gogoproto.goproto_getters_all) = false; - -// GenericAuthorization gives the grantee unrestricted permissions to execute -// the provided method on behalf of the granter's account. -message GenericAuthorization { - option (cosmos_proto.implements_interface) = "Authorization"; - - // Msg, identified by it's type URL, to grant unrestricted permissions to execute - string msg = 1; -} - -// Grant gives permissions to execute -// the provide method with expiration time. -message Grant { - google.protobuf.Any authorization = 1 [(cosmos_proto.accepts_interface) = "Authorization"]; - google.protobuf.Timestamp expiration = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/authz/v1beta1/event.proto b/third_party/proto/cosmos/authz/v1beta1/event.proto deleted file mode 100644 index c77cea3e..00000000 --- a/third_party/proto/cosmos/authz/v1beta1/event.proto +++ /dev/null @@ -1,24 +0,0 @@ -syntax = "proto3"; -package cosmos.authz.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; - -// EventGrant is emitted on Msg/Grant -message EventGrant { - // Msg type URL for which an autorization is granted - string msg_type_url = 2; - // Granter account address - string granter = 3; - // Grantee account address - string grantee = 4; -} - -// EventRevoke is emitted on Msg/Revoke -message EventRevoke { - // Msg type URL for which an autorization is revoked - string msg_type_url = 2; - // Granter account address - string granter = 3; - // Grantee account address - string grantee = 4; -} diff --git a/third_party/proto/cosmos/authz/v1beta1/genesis.proto b/third_party/proto/cosmos/authz/v1beta1/genesis.proto deleted file mode 100644 index 411fd276..00000000 --- a/third_party/proto/cosmos/authz/v1beta1/genesis.proto +++ /dev/null @@ -1,23 +0,0 @@ -syntax = "proto3"; -package cosmos.authz.v1beta1; - -import "google/protobuf/timestamp.proto"; -import "google/protobuf/any.proto"; -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; - -// GenesisState defines the authz module's genesis state. -message GenesisState { - repeated GrantAuthorization authorization = 1 [(gogoproto.nullable) = false]; -} - -// GrantAuthorization defines the GenesisState/GrantAuthorization type. -message GrantAuthorization { - string granter = 1; - string grantee = 2; - - google.protobuf.Any authorization = 3 [(cosmos_proto.accepts_interface) = "Authorization"]; - google.protobuf.Timestamp expiration = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; -} diff --git a/third_party/proto/cosmos/authz/v1beta1/query.proto b/third_party/proto/cosmos/authz/v1beta1/query.proto deleted file mode 100644 index 3b66e031..00000000 --- a/third_party/proto/cosmos/authz/v1beta1/query.proto +++ /dev/null @@ -1,34 +0,0 @@ -syntax = "proto3"; -package cosmos.authz.v1beta1; - -import "google/api/annotations.proto"; -import "cosmos/base/query/v1beta1/pagination.proto"; -import "cosmos/authz/v1beta1/authz.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; - -// Query defines the gRPC querier service. -service Query { - // Returns list of `Authorization`, granted to the grantee by the granter. - rpc Grants(QueryGrantsRequest) returns (QueryGrantsResponse) { - option (google.api.http).get = "/cosmos/authz/v1beta1/grants"; - } -} - -// QueryGrantsRequest is the request type for the Query/Grants RPC method. -message QueryGrantsRequest { - string granter = 1; - string grantee = 2; - // Optional, msg_type_url, when set, will query only grants matching given msg type. - string msg_type_url = 3; - // pagination defines an pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 4; -} - -// QueryGrantsResponse is the response type for the Query/Authorizations RPC method. -message QueryGrantsResponse { - // authorizations is a list of grants granted for grantee by granter. - repeated cosmos.authz.v1beta1.Grant grants = 1; - // pagination defines an pagination for the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} diff --git a/third_party/proto/cosmos/authz/v1beta1/tx.proto b/third_party/proto/cosmos/authz/v1beta1/tx.proto deleted file mode 100644 index 1829b7af..00000000 --- a/third_party/proto/cosmos/authz/v1beta1/tx.proto +++ /dev/null @@ -1,67 +0,0 @@ -syntax = "proto3"; -package cosmos.authz.v1beta1; - -import "cosmos_proto/cosmos.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; -import "cosmos/authz/v1beta1/authz.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/authz"; -option (gogoproto.goproto_getters_all) = false; - -// Msg defines the authz Msg service. -service Msg { - // Grant grants the provided authorization to the grantee on the granter's - // account with the provided expiration time. If there is already a grant - // for the given (granter, grantee, Authorization) triple, then the grant - // will be overwritten. - rpc Grant(MsgGrant) returns (MsgGrantResponse); - - // Exec attempts to execute the provided messages using - // authorizations granted to the grantee. Each message should have only - // one signer corresponding to the granter of the authorization. - rpc Exec(MsgExec) returns (MsgExecResponse); - - // Revoke revokes any authorization corresponding to the provided method name on the - // granter's account that has been granted to the grantee. - rpc Revoke(MsgRevoke) returns (MsgRevokeResponse); -} - -// MsgGrant is a request type for Grant method. It declares authorization to the grantee -// on behalf of the granter with the provided expiration time. -message MsgGrant { - string granter = 1; - string grantee = 2; - - cosmos.authz.v1beta1.Grant grant = 3 [(gogoproto.nullable) = false]; -} - -// MsgExecResponse defines the Msg/MsgExecResponse response type. -message MsgExecResponse { - repeated bytes results = 1; -} - -// MsgExec attempts to execute the provided messages using -// authorizations granted to the grantee. Each message should have only -// one signer corresponding to the granter of the authorization. -message MsgExec { - string grantee = 1; - // Authorization Msg requests to execute. Each msg must implement Authorization interface - // The x/authz will try to find a grant matching (msg.signers[0], grantee, MsgTypeURL(msg)) - // triple and validate it. - repeated google.protobuf.Any msgs = 2 [(cosmos_proto.accepts_interface) = "sdk.Msg, authz.Authorization"]; -} - -// MsgGrantResponse defines the Msg/MsgGrant response type. -message MsgGrantResponse {} - -// MsgRevoke revokes any authorization with the provided sdk.Msg type on the -// granter's account with that has been granted to the grantee. -message MsgRevoke { - string granter = 1; - string grantee = 2; - string msg_type_url = 3; -} - -// MsgRevokeResponse defines the Msg/MsgRevokeResponse response type. -message MsgRevokeResponse {} diff --git a/third_party/proto/cosmos/bank/v1beta1/authz.proto b/third_party/proto/cosmos/bank/v1beta1/authz.proto deleted file mode 100644 index f3505ad4..00000000 --- a/third_party/proto/cosmos/bank/v1beta1/authz.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package cosmos.bank.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; - -// SendAuthorization allows the grantee to spend up to spend_limit coins from -// the granter's account. -message SendAuthorization { - option (cosmos_proto.implements_interface) = "Authorization"; - - repeated cosmos.base.v1beta1.Coin spend_limit = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} diff --git a/third_party/proto/cosmos/bank/v1beta1/bank.proto b/third_party/proto/cosmos/bank/v1beta1/bank.proto deleted file mode 100644 index eb843b2c..00000000 --- a/third_party/proto/cosmos/bank/v1beta1/bank.proto +++ /dev/null @@ -1,92 +0,0 @@ -syntax = "proto3"; -package cosmos.bank.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; - -// Params defines the parameters for the bank module. -message Params { - option (gogoproto.goproto_stringer) = false; - repeated SendEnabled send_enabled = 1 [(gogoproto.moretags) = "yaml:\"send_enabled,omitempty\""]; - bool default_send_enabled = 2 [(gogoproto.moretags) = "yaml:\"default_send_enabled,omitempty\""]; -} - -// SendEnabled maps coin denom to a send_enabled status (whether a denom is -// sendable). -message SendEnabled { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - string denom = 1; - bool enabled = 2; -} - -// Input models transaction input. -message Input { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string address = 1; - repeated cosmos.base.v1beta1.Coin coins = 2 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// Output models transaction outputs. -message Output { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string address = 1; - repeated cosmos.base.v1beta1.Coin coins = 2 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// Supply represents a struct that passively keeps track of the total supply -// amounts in the network. -// This message is deprecated now that supply is indexed by denom. -message Supply { - option deprecated = true; - - option (gogoproto.equal) = true; - option (gogoproto.goproto_getters) = false; - - option (cosmos_proto.implements_interface) = "*github.com/cosmos/cosmos-sdk/x/bank/legacy/v040.SupplyI"; - - repeated cosmos.base.v1beta1.Coin total = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// DenomUnit represents a struct that describes a given -// denomination unit of the basic token. -message DenomUnit { - // denom represents the string name of the given denom unit (e.g uatom). - string denom = 1; - // exponent represents power of 10 exponent that one must - // raise the base_denom to in order to equal the given DenomUnit's denom - // 1 denom = 1^exponent base_denom - // (e.g. with a base_denom of uatom, one can create a DenomUnit of 'atom' with - // exponent = 6, thus: 1 atom = 10^6 uatom). - uint32 exponent = 2; - // aliases is a list of string aliases for the given denom - repeated string aliases = 3; -} - -// Metadata represents a struct that describes -// a basic token. -message Metadata { - string description = 1; - // denom_units represents the list of DenomUnit's for a given coin - repeated DenomUnit denom_units = 2; - // base represents the base denom (should be the DenomUnit with exponent = 0). - string base = 3; - // display indicates the suggested denom that should be - // displayed in clients. - string display = 4; - // name defines the name of the token (eg: Cosmos Atom) - string name = 5; - // symbol is the token symbol usually shown on exchanges (eg: ATOM). This can - // be the same as the display. - string symbol = 6; -} diff --git a/third_party/proto/cosmos/bank/v1beta1/genesis.proto b/third_party/proto/cosmos/bank/v1beta1/genesis.proto deleted file mode 100644 index 8fd7329a..00000000 --- a/third_party/proto/cosmos/bank/v1beta1/genesis.proto +++ /dev/null @@ -1,39 +0,0 @@ -syntax = "proto3"; -package cosmos.bank.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/bank/v1beta1/bank.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; - -// GenesisState defines the bank module's genesis state. -message GenesisState { - // params defines all the paramaters of the module. - Params params = 1 [(gogoproto.nullable) = false]; - - // balances is an array containing the balances of all the accounts. - repeated Balance balances = 2 [(gogoproto.nullable) = false]; - - // supply represents the total supply. If it is left empty, then supply will be calculated based on the provided - // balances. Otherwise, it will be used to validate that the sum of the balances equals this amount. - repeated cosmos.base.v1beta1.Coin supply = 3 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; - - // denom_metadata defines the metadata of the differents coins. - repeated Metadata denom_metadata = 4 [(gogoproto.moretags) = "yaml:\"denom_metadata\"", (gogoproto.nullable) = false]; -} - -// Balance defines an account address and balance pair used in the bank module's -// genesis state. -message Balance { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // address is the address of the balance holder. - string address = 1; - - // coins defines the different coins this balance holds. - repeated cosmos.base.v1beta1.Coin coins = 2 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/bank/v1beta1/query.proto b/third_party/proto/cosmos/bank/v1beta1/query.proto deleted file mode 100644 index e3a464f8..00000000 --- a/third_party/proto/cosmos/bank/v1beta1/query.proto +++ /dev/null @@ -1,159 +0,0 @@ -syntax = "proto3"; -package cosmos.bank.v1beta1; - -import "cosmos/base/query/v1beta1/pagination.proto"; -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/bank/v1beta1/bank.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; - -// Query defines the gRPC querier service. -service Query { - // Balance queries the balance of a single coin for a single account. - rpc Balance(QueryBalanceRequest) returns (QueryBalanceResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}/{denom}"; - } - - // AllBalances queries the balance of all coins for a single account. - rpc AllBalances(QueryAllBalancesRequest) returns (QueryAllBalancesResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/balances/{address}"; - } - - // TotalSupply queries the total supply of all coins. - rpc TotalSupply(QueryTotalSupplyRequest) returns (QueryTotalSupplyResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/supply"; - } - - // SupplyOf queries the supply of a single coin. - rpc SupplyOf(QuerySupplyOfRequest) returns (QuerySupplyOfResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/supply/{denom}"; - } - - // Params queries the parameters of x/bank module. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/params"; - } - - // DenomsMetadata queries the client metadata of a given coin denomination. - rpc DenomMetadata(QueryDenomMetadataRequest) returns (QueryDenomMetadataResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata/{denom}"; - } - - // DenomsMetadata queries the client metadata for all registered coin denominations. - rpc DenomsMetadata(QueryDenomsMetadataRequest) returns (QueryDenomsMetadataResponse) { - option (google.api.http).get = "/cosmos/bank/v1beta1/denoms_metadata"; - } -} - -// QueryBalanceRequest is the request type for the Query/Balance RPC method. -message QueryBalanceRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // address is the address to query balances for. - string address = 1; - - // denom is the coin denom to query balances for. - string denom = 2; -} - -// QueryBalanceResponse is the response type for the Query/Balance RPC method. -message QueryBalanceResponse { - // balance is the balance of the coin. - cosmos.base.v1beta1.Coin balance = 1; -} - -// QueryBalanceRequest is the request type for the Query/AllBalances RPC method. -message QueryAllBalancesRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // address is the address to query balances for. - string address = 1; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryAllBalancesResponse is the response type for the Query/AllBalances RPC -// method. -message QueryAllBalancesResponse { - // balances is the balances of all the coins. - repeated cosmos.base.v1beta1.Coin balances = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryTotalSupplyRequest is the request type for the Query/TotalSupply RPC -// method. -message QueryTotalSupplyRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -// QueryTotalSupplyResponse is the response type for the Query/TotalSupply RPC -// method -message QueryTotalSupplyResponse { - // supply is the supply of the coins - repeated cosmos.base.v1beta1.Coin supply = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QuerySupplyOfRequest is the request type for the Query/SupplyOf RPC method. -message QuerySupplyOfRequest { - // denom is the coin denom to query balances for. - string denom = 1; -} - -// QuerySupplyOfResponse is the response type for the Query/SupplyOf RPC method. -message QuerySupplyOfResponse { - // amount is the supply of the coin. - cosmos.base.v1beta1.Coin amount = 1 [(gogoproto.nullable) = false]; -} - -// QueryParamsRequest defines the request type for querying x/bank parameters. -message QueryParamsRequest {} - -// QueryParamsResponse defines the response type for querying x/bank parameters. -message QueryParamsResponse { - Params params = 1 [(gogoproto.nullable) = false]; -} - -// QueryDenomsMetadataRequest is the request type for the Query/DenomsMetadata RPC method. -message QueryDenomsMetadataRequest { - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -// QueryDenomsMetadataResponse is the response type for the Query/DenomsMetadata RPC -// method. -message QueryDenomsMetadataResponse { - // metadata provides the client information for all the registered tokens. - repeated Metadata metadatas = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryDenomMetadataRequest is the request type for the Query/DenomMetadata RPC method. -message QueryDenomMetadataRequest { - // denom is the coin denom to query the metadata for. - string denom = 1; -} - -// QueryDenomMetadataResponse is the response type for the Query/DenomMetadata RPC -// method. -message QueryDenomMetadataResponse { - // metadata describes and provides all the client information for the requested token. - Metadata metadata = 1 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/bank/v1beta1/tx.proto b/third_party/proto/cosmos/bank/v1beta1/tx.proto deleted file mode 100644 index 26b2ab41..00000000 --- a/third_party/proto/cosmos/bank/v1beta1/tx.proto +++ /dev/null @@ -1,42 +0,0 @@ -syntax = "proto3"; -package cosmos.bank.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/bank/v1beta1/bank.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/bank/types"; - -// Msg defines the bank Msg service. -service Msg { - // Send defines a method for sending coins from one account to another account. - rpc Send(MsgSend) returns (MsgSendResponse); - - // MultiSend defines a method for sending coins from some accounts to other accounts. - rpc MultiSend(MsgMultiSend) returns (MsgMultiSendResponse); -} - -// MsgSend represents a message to send coins from one account to another. -message MsgSend { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string from_address = 1 [(gogoproto.moretags) = "yaml:\"from_address\""]; - string to_address = 2 [(gogoproto.moretags) = "yaml:\"to_address\""]; - repeated cosmos.base.v1beta1.Coin amount = 3 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// MsgSendResponse defines the Msg/Send response type. -message MsgSendResponse {} - -// MsgMultiSend represents an arbitrary multi-in, multi-out send message. -message MsgMultiSend { - option (gogoproto.equal) = false; - - repeated Input inputs = 1 [(gogoproto.nullable) = false]; - repeated Output outputs = 2 [(gogoproto.nullable) = false]; -} - -// MsgMultiSendResponse defines the Msg/MultiSend response type. -message MsgMultiSendResponse {} diff --git a/third_party/proto/cosmos/base/abci/v1beta1/abci.proto b/third_party/proto/cosmos/base/abci/v1beta1/abci.proto deleted file mode 100644 index 72da2aac..00000000 --- a/third_party/proto/cosmos/base/abci/v1beta1/abci.proto +++ /dev/null @@ -1,137 +0,0 @@ -syntax = "proto3"; -package cosmos.base.abci.v1beta1; - -import "gogoproto/gogo.proto"; -import "tendermint/abci/types.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/types"; -option (gogoproto.goproto_stringer_all) = false; - -// TxResponse defines a structure containing relevant tx data and metadata. The -// tags are stringified and the log is JSON decoded. -message TxResponse { - option (gogoproto.goproto_getters) = false; - // The block height - int64 height = 1; - // The transaction hash. - string txhash = 2 [(gogoproto.customname) = "TxHash"]; - // Namespace for the Code - string codespace = 3; - // Response code. - uint32 code = 4; - // Result bytes, if any. - string data = 5; - // The output of the application's logger (raw string). May be - // non-deterministic. - string raw_log = 6; - // The output of the application's logger (typed). May be non-deterministic. - repeated ABCIMessageLog logs = 7 [(gogoproto.castrepeated) = "ABCIMessageLogs", (gogoproto.nullable) = false]; - // Additional information. May be non-deterministic. - string info = 8; - // Amount of gas requested for transaction. - int64 gas_wanted = 9; - // Amount of gas consumed by transaction. - int64 gas_used = 10; - // The request transaction bytes. - google.protobuf.Any tx = 11; - // Time of the previous block. For heights > 1, it's the weighted median of - // the timestamps of the valid votes in the block.LastCommit. For height == 1, - // it's genesis time. - string timestamp = 12; -} - -// ABCIMessageLog defines a structure containing an indexed tx ABCI message log. -message ABCIMessageLog { - option (gogoproto.stringer) = true; - - uint32 msg_index = 1; - string log = 2; - - // Events contains a slice of Event objects that were emitted during some - // execution. - repeated StringEvent events = 3 [(gogoproto.castrepeated) = "StringEvents", (gogoproto.nullable) = false]; -} - -// StringEvent defines en Event object wrapper where all the attributes -// contain key/value pairs that are strings instead of raw bytes. -message StringEvent { - option (gogoproto.stringer) = true; - - string type = 1; - repeated Attribute attributes = 2 [(gogoproto.nullable) = false]; -} - -// Attribute defines an attribute wrapper where the key and value are -// strings instead of raw bytes. -message Attribute { - string key = 1; - string value = 2; -} - -// GasInfo defines tx execution gas context. -message GasInfo { - // GasWanted is the maximum units of work we allow this tx to perform. - uint64 gas_wanted = 1 [(gogoproto.moretags) = "yaml:\"gas_wanted\""]; - - // GasUsed is the amount of gas actually consumed. - uint64 gas_used = 2 [(gogoproto.moretags) = "yaml:\"gas_used\""]; -} - -// Result is the union of ResponseFormat and ResponseCheckTx. -message Result { - option (gogoproto.goproto_getters) = false; - - // Data is any data returned from message or handler execution. It MUST be - // length prefixed in order to separate data from multiple message executions. - bytes data = 1; - - // Log contains the log information from message or handler execution. - string log = 2; - - // Events contains a slice of Event objects that were emitted during message - // or handler execution. - repeated tendermint.abci.Event events = 3 [(gogoproto.nullable) = false]; -} - -// SimulationResponse defines the response generated when a transaction is -// successfully simulated. -message SimulationResponse { - GasInfo gas_info = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - Result result = 2; -} - -// MsgData defines the data returned in a Result object during message -// execution. -message MsgData { - option (gogoproto.stringer) = true; - - string msg_type = 1; - bytes data = 2; -} - -// TxMsgData defines a list of MsgData. A transaction will have a MsgData object -// for each message. -message TxMsgData { - option (gogoproto.stringer) = true; - - repeated MsgData data = 1; -} - -// SearchTxsResult defines a structure for querying txs pageable -message SearchTxsResult { - option (gogoproto.stringer) = true; - - // Count of all txs - uint64 total_count = 1 [(gogoproto.moretags) = "yaml:\"total_count\"", (gogoproto.jsontag) = "total_count"]; - // Count of txs in current page - uint64 count = 2; - // Index of current page, start from 1 - uint64 page_number = 3 [(gogoproto.moretags) = "yaml:\"page_number\"", (gogoproto.jsontag) = "page_number"]; - // Count of total pages - uint64 page_total = 4 [(gogoproto.moretags) = "yaml:\"page_total\"", (gogoproto.jsontag) = "page_total"]; - // Max count txs per page - uint64 limit = 5; - // List of txs in current page - repeated TxResponse txs = 6; -} diff --git a/third_party/proto/cosmos/base/kv/v1beta1/kv.proto b/third_party/proto/cosmos/base/kv/v1beta1/kv.proto deleted file mode 100644 index 4e9b8d28..00000000 --- a/third_party/proto/cosmos/base/kv/v1beta1/kv.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package cosmos.base.kv.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/types/kv"; - -// Pairs defines a repeated slice of Pair objects. -message Pairs { - repeated Pair pairs = 1 [(gogoproto.nullable) = false]; -} - -// Pair defines a key/value bytes tuple. -message Pair { - bytes key = 1; - bytes value = 2; -} diff --git a/third_party/proto/cosmos/base/query/v1beta1/pagination.proto b/third_party/proto/cosmos/base/query/v1beta1/pagination.proto deleted file mode 100644 index 784c4795..00000000 --- a/third_party/proto/cosmos/base/query/v1beta1/pagination.proto +++ /dev/null @@ -1,53 +0,0 @@ -syntax = "proto3"; -package cosmos.base.query.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/types/query"; - -// PageRequest is to be embedded in gRPC request messages for efficient -// pagination. Ex: -// -// message SomeRequest { -// Foo some_parameter = 1; -// PageRequest pagination = 2; -// } -message PageRequest { - // key is a value returned in PageResponse.next_key to begin - // querying the next page most efficiently. Only one of offset or key - // should be set. - bytes key = 1; - - // offset is a numeric offset that can be used when key is unavailable. - // It is less efficient than using key. Only one of offset or key should - // be set. - uint64 offset = 2; - - // limit is the total number of results to be returned in the result page. - // If left empty it will default to a value to be set by each app. - uint64 limit = 3; - - // count_total is set to true to indicate that the result set should include - // a count of the total number of items available for pagination in UIs. - // count_total is only respected when offset is used. It is ignored when key - // is set. - bool count_total = 4; - - // reverse is set to true if results are to be returned in the descending order. - bool reverse = 5; -} - -// PageResponse is to be embedded in gRPC response messages where the -// corresponding request message has used PageRequest. -// -// message SomeResponse { -// repeated Bar results = 1; -// PageResponse page = 2; -// } -message PageResponse { - // next_key is the key to be passed to PageRequest.key to - // query the next page most efficiently - bytes next_key = 1; - - // total is total number of results available if PageRequest.count_total - // was set, its value is undefined otherwise - uint64 total = 2; -} diff --git a/third_party/proto/cosmos/base/reflection/v1beta1/reflection.proto b/third_party/proto/cosmos/base/reflection/v1beta1/reflection.proto deleted file mode 100644 index 22670e72..00000000 --- a/third_party/proto/cosmos/base/reflection/v1beta1/reflection.proto +++ /dev/null @@ -1,44 +0,0 @@ -syntax = "proto3"; -package cosmos.base.reflection.v1beta1; - -import "google/api/annotations.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/reflection"; - -// ReflectionService defines a service for interface reflection. -service ReflectionService { - // ListAllInterfaces lists all the interfaces registered in the interface - // registry. - rpc ListAllInterfaces(ListAllInterfacesRequest) returns (ListAllInterfacesResponse) { - option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces"; - }; - - // ListImplementations list all the concrete types that implement a given - // interface. - rpc ListImplementations(ListImplementationsRequest) returns (ListImplementationsResponse) { - option (google.api.http).get = "/cosmos/base/reflection/v1beta1/interfaces/" - "{interface_name}/implementations"; - }; -} - -// ListAllInterfacesRequest is the request type of the ListAllInterfaces RPC. -message ListAllInterfacesRequest {} - -// ListAllInterfacesResponse is the response type of the ListAllInterfaces RPC. -message ListAllInterfacesResponse { - // interface_names is an array of all the registered interfaces. - repeated string interface_names = 1; -} - -// ListImplementationsRequest is the request type of the ListImplementations -// RPC. -message ListImplementationsRequest { - // interface_name defines the interface to query the implementations for. - string interface_name = 1; -} - -// ListImplementationsResponse is the response type of the ListImplementations -// RPC. -message ListImplementationsResponse { - repeated string implementation_message_names = 1; -} diff --git a/third_party/proto/cosmos/base/reflection/v2alpha1/reflection.proto b/third_party/proto/cosmos/base/reflection/v2alpha1/reflection.proto deleted file mode 100644 index 3e8e9404..00000000 --- a/third_party/proto/cosmos/base/reflection/v2alpha1/reflection.proto +++ /dev/null @@ -1,217 +0,0 @@ -syntax = "proto3"; -package cosmos.base.reflection.v2alpha1; - -import "google/api/annotations.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/server/grpc/reflection/v2alpha1"; - -// AppDescriptor describes a cosmos-sdk based application -message AppDescriptor { - // AuthnDescriptor provides information on how to authenticate transactions on the application - // NOTE: experimental and subject to change in future releases. - AuthnDescriptor authn = 1; - // chain provides the chain descriptor - ChainDescriptor chain = 2; - // codec provides metadata information regarding codec related types - CodecDescriptor codec = 3; - // configuration provides metadata information regarding the sdk.Config type - ConfigurationDescriptor configuration = 4; - // query_services provides metadata information regarding the available queriable endpoints - QueryServicesDescriptor query_services = 5; - // tx provides metadata information regarding how to send transactions to the given application - TxDescriptor tx = 6; -} - -// TxDescriptor describes the accepted transaction type -message TxDescriptor { - // fullname is the protobuf fullname of the raw transaction type (for instance the tx.Tx type) - // it is not meant to support polymorphism of transaction types, it is supposed to be used by - // reflection clients to understand if they can handle a specific transaction type in an application. - string fullname = 1; - // msgs lists the accepted application messages (sdk.Msg) - repeated MsgDescriptor msgs = 2; -} - -// AuthnDescriptor provides information on how to sign transactions without relying -// on the online RPCs GetTxMetadata and CombineUnsignedTxAndSignatures -message AuthnDescriptor { - // sign_modes defines the supported signature algorithm - repeated SigningModeDescriptor sign_modes = 1; -} - -// SigningModeDescriptor provides information on a signing flow of the application -// NOTE(fdymylja): here we could go as far as providing an entire flow on how -// to sign a message given a SigningModeDescriptor, but it's better to think about -// this another time -message SigningModeDescriptor { - // name defines the unique name of the signing mode - string name = 1; - // number is the unique int32 identifier for the sign_mode enum - int32 number = 2; - // authn_info_provider_method_fullname defines the fullname of the method to call to get - // the metadata required to authenticate using the provided sign_modes - string authn_info_provider_method_fullname = 3; -} - -// ChainDescriptor describes chain information of the application -message ChainDescriptor { - // id is the chain id - string id = 1; -} - -// CodecDescriptor describes the registered interfaces and provides metadata information on the types -message CodecDescriptor { - // interfaces is a list of the registerted interfaces descriptors - repeated InterfaceDescriptor interfaces = 1; -} - -// InterfaceDescriptor describes the implementation of an interface -message InterfaceDescriptor { - // fullname is the name of the interface - string fullname = 1; - // interface_accepting_messages contains information regarding the proto messages which contain the interface as - // google.protobuf.Any field - repeated InterfaceAcceptingMessageDescriptor interface_accepting_messages = 2; - // interface_implementers is a list of the descriptors of the interface implementers - repeated InterfaceImplementerDescriptor interface_implementers = 3; -} - -// InterfaceImplementerDescriptor describes an interface implementer -message InterfaceImplementerDescriptor { - // fullname is the protobuf queryable name of the interface implementer - string fullname = 1; - // type_url defines the type URL used when marshalling the type as any - // this is required so we can provide type safe google.protobuf.Any marshalling and - // unmarshalling, making sure that we don't accept just 'any' type - // in our interface fields - string type_url = 2; -} - -// InterfaceAcceptingMessageDescriptor describes a protobuf message which contains -// an interface represented as a google.protobuf.Any -message InterfaceAcceptingMessageDescriptor { - // fullname is the protobuf fullname of the type containing the interface - string fullname = 1; - // field_descriptor_names is a list of the protobuf name (not fullname) of the field - // which contains the interface as google.protobuf.Any (the interface is the same, but - // it can be in multiple fields of the same proto message) - repeated string field_descriptor_names = 2; -} - -// ConfigurationDescriptor contains metadata information on the sdk.Config -message ConfigurationDescriptor { - // bech32_account_address_prefix is the account address prefix - string bech32_account_address_prefix = 1; -} - -// MsgDescriptor describes a cosmos-sdk message that can be delivered with a transaction -message MsgDescriptor { - // msg_type_url contains the TypeURL of a sdk.Msg. - string msg_type_url = 1; -} - -// ReflectionService defines a service for application reflection. -service ReflectionService { - // GetAuthnDescriptor returns information on how to authenticate transactions in the application - // NOTE: this RPC is still experimental and might be subject to breaking changes or removal in - // future releases of the cosmos-sdk. - rpc GetAuthnDescriptor(GetAuthnDescriptorRequest) returns (GetAuthnDescriptorResponse) { - option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/authn"; - } - // GetChainDescriptor returns the description of the chain - rpc GetChainDescriptor(GetChainDescriptorRequest) returns (GetChainDescriptorResponse) { - option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/chain"; - }; - // GetCodecDescriptor returns the descriptor of the codec of the application - rpc GetCodecDescriptor(GetCodecDescriptorRequest) returns (GetCodecDescriptorResponse) { - option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/codec"; - } - // GetConfigurationDescriptor returns the descriptor for the sdk.Config of the application - rpc GetConfigurationDescriptor(GetConfigurationDescriptorRequest) returns (GetConfigurationDescriptorResponse) { - option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/configuration"; - } - // GetQueryServicesDescriptor returns the available gRPC queryable services of the application - rpc GetQueryServicesDescriptor(GetQueryServicesDescriptorRequest) returns (GetQueryServicesDescriptorResponse) { - option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/query_services"; - } - // GetTxDescriptor returns information on the used transaction object and available msgs that can be used - rpc GetTxDescriptor(GetTxDescriptorRequest) returns (GetTxDescriptorResponse) { - option (google.api.http).get = "/cosmos/base/reflection/v1beta1/app_descriptor/tx_descriptor"; - } -} - -// GetAuthnDescriptorRequest is the request used for the GetAuthnDescriptor RPC -message GetAuthnDescriptorRequest {} -// GetAuthnDescriptorResponse is the response returned by the GetAuthnDescriptor RPC -message GetAuthnDescriptorResponse { - // authn describes how to authenticate to the application when sending transactions - AuthnDescriptor authn = 1; -} - -// GetChainDescriptorRequest is the request used for the GetChainDescriptor RPC -message GetChainDescriptorRequest {} -// GetChainDescriptorResponse is the response returned by the GetChainDescriptor RPC -message GetChainDescriptorResponse { - // chain describes application chain information - ChainDescriptor chain = 1; -} - -// GetCodecDescriptorRequest is the request used for the GetCodecDescriptor RPC -message GetCodecDescriptorRequest {} -// GetCodecDescriptorResponse is the response returned by the GetCodecDescriptor RPC -message GetCodecDescriptorResponse { - // codec describes the application codec such as registered interfaces and implementations - CodecDescriptor codec = 1; -} - -// GetConfigurationDescriptorRequest is the request used for the GetConfigurationDescriptor RPC -message GetConfigurationDescriptorRequest {} -// GetConfigurationDescriptorResponse is the response returned by the GetConfigurationDescriptor RPC -message GetConfigurationDescriptorResponse { - // config describes the application's sdk.Config - ConfigurationDescriptor config = 1; -} - -// GetQueryServicesDescriptorRequest is the request used for the GetQueryServicesDescriptor RPC -message GetQueryServicesDescriptorRequest {} -// GetQueryServicesDescriptorResponse is the response returned by the GetQueryServicesDescriptor RPC -message GetQueryServicesDescriptorResponse { - // queries provides information on the available queryable services - QueryServicesDescriptor queries = 1; -} - -// GetTxDescriptorRequest is the request used for the GetTxDescriptor RPC -message GetTxDescriptorRequest {} -// GetTxDescriptorResponse is the response returned by the GetTxDescriptor RPC -message GetTxDescriptorResponse { - // tx provides information on msgs that can be forwarded to the application - // alongside the accepted transaction protobuf type - TxDescriptor tx = 1; -} - -// QueryServicesDescriptor contains the list of cosmos-sdk queriable services -message QueryServicesDescriptor { - // query_services is a list of cosmos-sdk QueryServiceDescriptor - repeated QueryServiceDescriptor query_services = 1; -} - -// QueryServiceDescriptor describes a cosmos-sdk queryable service -message QueryServiceDescriptor { - // fullname is the protobuf fullname of the service descriptor - string fullname = 1; - // is_module describes if this service is actually exposed by an application's module - bool is_module = 2; - // methods provides a list of query service methods - repeated QueryMethodDescriptor methods = 3; -} - -// QueryMethodDescriptor describes a queryable method of a query service -// no other info is provided beside method name and tendermint queryable path -// because it would be redundant with the grpc reflection service -message QueryMethodDescriptor { - // name is the protobuf name (not fullname) of the method - string name = 1; - // full_query_path is the path that can be used to query - // this method via tendermint abci.Query - string full_query_path = 2; -} diff --git a/third_party/proto/cosmos/base/snapshots/v1beta1/snapshot.proto b/third_party/proto/cosmos/base/snapshots/v1beta1/snapshot.proto deleted file mode 100644 index 9ac5a7c3..00000000 --- a/third_party/proto/cosmos/base/snapshots/v1beta1/snapshot.proto +++ /dev/null @@ -1,20 +0,0 @@ -syntax = "proto3"; -package cosmos.base.snapshots.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/snapshots/types"; - -// Snapshot contains Tendermint state sync snapshot info. -message Snapshot { - uint64 height = 1; - uint32 format = 2; - uint32 chunks = 3; - bytes hash = 4; - Metadata metadata = 5 [(gogoproto.nullable) = false]; -} - -// Metadata contains SDK-specific snapshot metadata. -message Metadata { - repeated bytes chunk_hashes = 1; // SHA-256 chunk hashes -} \ No newline at end of file diff --git a/third_party/proto/cosmos/base/store/v1beta1/commit_info.proto b/third_party/proto/cosmos/base/store/v1beta1/commit_info.proto deleted file mode 100644 index 98a33d30..00000000 --- a/third_party/proto/cosmos/base/store/v1beta1/commit_info.proto +++ /dev/null @@ -1,29 +0,0 @@ -syntax = "proto3"; -package cosmos.base.store.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/store/types"; - -// CommitInfo defines commit information used by the multi-store when committing -// a version/height. -message CommitInfo { - int64 version = 1; - repeated StoreInfo store_infos = 2 [(gogoproto.nullable) = false]; -} - -// StoreInfo defines store-specific commit information. It contains a reference -// between a store name and the commit ID. -message StoreInfo { - string name = 1; - CommitID commit_id = 2 [(gogoproto.nullable) = false]; -} - -// CommitID defines the committment information when a specific store is -// committed. -message CommitID { - option (gogoproto.goproto_stringer) = false; - - int64 version = 1; - bytes hash = 2; -} diff --git a/third_party/proto/cosmos/base/store/v1beta1/listening.proto b/third_party/proto/cosmos/base/store/v1beta1/listening.proto deleted file mode 100644 index 186ecee4..00000000 --- a/third_party/proto/cosmos/base/store/v1beta1/listening.proto +++ /dev/null @@ -1,14 +0,0 @@ -syntax = "proto3"; -package cosmos.base.store.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/store/types"; - -// StoreKVPair is a KVStore KVPair used for listening to state changes (Sets and Deletes) -// It optionally includes the StoreKey for the originating KVStore and a Boolean flag to distinguish between Sets and -// Deletes -message StoreKVPair { - string store_key = 1; // the store key for the KVStore this pair originates from - bool delete = 2; // true indicates a delete operation, false indicates a set operation - bytes key = 3; - bytes value = 4; -} diff --git a/third_party/proto/cosmos/base/store/v1beta1/snapshot.proto b/third_party/proto/cosmos/base/store/v1beta1/snapshot.proto deleted file mode 100644 index 83485509..00000000 --- a/third_party/proto/cosmos/base/store/v1beta1/snapshot.proto +++ /dev/null @@ -1,28 +0,0 @@ -syntax = "proto3"; -package cosmos.base.store.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/store/types"; - -// SnapshotItem is an item contained in a rootmulti.Store snapshot. -message SnapshotItem { - // item is the specific type of snapshot item. - oneof item { - SnapshotStoreItem store = 1; - SnapshotIAVLItem iavl = 2 [(gogoproto.customname) = "IAVL"]; - } -} - -// SnapshotStoreItem contains metadata about a snapshotted store. -message SnapshotStoreItem { - string name = 1; -} - -// SnapshotIAVLItem is an exported IAVL node. -message SnapshotIAVLItem { - bytes key = 1; - bytes value = 2; - int64 version = 3; - int32 height = 4; -} \ No newline at end of file diff --git a/third_party/proto/cosmos/base/tendermint/v1beta1/query.proto b/third_party/proto/cosmos/base/tendermint/v1beta1/query.proto deleted file mode 100644 index c98110cb..00000000 --- a/third_party/proto/cosmos/base/tendermint/v1beta1/query.proto +++ /dev/null @@ -1,136 +0,0 @@ -syntax = "proto3"; -package cosmos.base.tendermint.v1beta1; - -import "google/protobuf/any.proto"; -import "google/api/annotations.proto"; -import "tendermint/p2p/types.proto"; -import "tendermint/types/block.proto"; -import "tendermint/types/types.proto"; -import "cosmos/base/query/v1beta1/pagination.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/client/grpc/tmservice"; - -// Service defines the gRPC querier service for tendermint queries. -service Service { - // GetNodeInfo queries the current node info. - rpc GetNodeInfo(GetNodeInfoRequest) returns (GetNodeInfoResponse) { - option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/node_info"; - } - // GetSyncing queries node syncing. - rpc GetSyncing(GetSyncingRequest) returns (GetSyncingResponse) { - option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/syncing"; - } - // GetLatestBlock returns the latest block. - rpc GetLatestBlock(GetLatestBlockRequest) returns (GetLatestBlockResponse) { - option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/latest"; - } - // GetBlockByHeight queries block for given height. - rpc GetBlockByHeight(GetBlockByHeightRequest) returns (GetBlockByHeightResponse) { - option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/blocks/{height}"; - } - - // GetLatestValidatorSet queries latest validator-set. - rpc GetLatestValidatorSet(GetLatestValidatorSetRequest) returns (GetLatestValidatorSetResponse) { - option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/latest"; - } - // GetValidatorSetByHeight queries validator-set at a given height. - rpc GetValidatorSetByHeight(GetValidatorSetByHeightRequest) returns (GetValidatorSetByHeightResponse) { - option (google.api.http).get = "/cosmos/base/tendermint/v1beta1/validatorsets/{height}"; - } -} - -// GetValidatorSetByHeightRequest is the request type for the Query/GetValidatorSetByHeight RPC method. -message GetValidatorSetByHeightRequest { - int64 height = 1; - // pagination defines an pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// GetValidatorSetByHeightResponse is the response type for the Query/GetValidatorSetByHeight RPC method. -message GetValidatorSetByHeightResponse { - int64 block_height = 1; - repeated Validator validators = 2; - // pagination defines an pagination for the response. - cosmos.base.query.v1beta1.PageResponse pagination = 3; -} - -// GetLatestValidatorSetRequest is the request type for the Query/GetValidatorSetByHeight RPC method. -message GetLatestValidatorSetRequest { - // pagination defines an pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -// GetLatestValidatorSetResponse is the response type for the Query/GetValidatorSetByHeight RPC method. -message GetLatestValidatorSetResponse { - int64 block_height = 1; - repeated Validator validators = 2; - // pagination defines an pagination for the response. - cosmos.base.query.v1beta1.PageResponse pagination = 3; -} - -// Validator is the type for the validator-set. -message Validator { - string address = 1; - google.protobuf.Any pub_key = 2; - int64 voting_power = 3; - int64 proposer_priority = 4; -} - -// GetBlockByHeightRequest is the request type for the Query/GetBlockByHeight RPC method. -message GetBlockByHeightRequest { - int64 height = 1; -} - -// GetBlockByHeightResponse is the response type for the Query/GetBlockByHeight RPC method. -message GetBlockByHeightResponse { - .tendermint.types.BlockID block_id = 1; - .tendermint.types.Block block = 2; -} - -// GetLatestBlockRequest is the request type for the Query/GetLatestBlock RPC method. -message GetLatestBlockRequest {} - -// GetLatestBlockResponse is the response type for the Query/GetLatestBlock RPC method. -message GetLatestBlockResponse { - .tendermint.types.BlockID block_id = 1; - .tendermint.types.Block block = 2; -} - -// GetSyncingRequest is the request type for the Query/GetSyncing RPC method. -message GetSyncingRequest {} - -// GetSyncingResponse is the response type for the Query/GetSyncing RPC method. -message GetSyncingResponse { - bool syncing = 1; -} - -// GetNodeInfoRequest is the request type for the Query/GetNodeInfo RPC method. -message GetNodeInfoRequest {} - -// GetNodeInfoResponse is the request type for the Query/GetNodeInfo RPC method. -message GetNodeInfoResponse { - .tendermint.p2p.DefaultNodeInfo default_node_info = 1; - VersionInfo application_version = 2; -} - -// VersionInfo is the type for the GetNodeInfoResponse message. -message VersionInfo { - string name = 1; - string app_name = 2; - string version = 3; - string git_commit = 4; - string build_tags = 5; - string go_version = 6; - repeated Module build_deps = 7; - string cosmos_sdk_version = 8; -} - -// Module is the type for VersionInfo -message Module { - // module path - string path = 1; - // module version - string version = 2; - // checksum - string sum = 3; -} diff --git a/third_party/proto/cosmos/base/v1beta1/coin.proto b/third_party/proto/cosmos/base/v1beta1/coin.proto deleted file mode 100644 index fab75284..00000000 --- a/third_party/proto/cosmos/base/v1beta1/coin.proto +++ /dev/null @@ -1,40 +0,0 @@ -syntax = "proto3"; -package cosmos.base.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/types"; -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.stringer_all) = false; - -// Coin defines a token with a denomination and an amount. -// -// NOTE: The amount field is an Int which implements the custom method -// signatures required by gogoproto. -message Coin { - option (gogoproto.equal) = true; - - string denom = 1; - string amount = 2 [(gogoproto.customtype) = "Int", (gogoproto.nullable) = false]; -} - -// DecCoin defines a token with a denomination and a decimal amount. -// -// NOTE: The amount field is an Dec which implements the custom method -// signatures required by gogoproto. -message DecCoin { - option (gogoproto.equal) = true; - - string denom = 1; - string amount = 2 [(gogoproto.customtype) = "Dec", (gogoproto.nullable) = false]; -} - -// IntProto defines a Protobuf wrapper around an Int object. -message IntProto { - string int = 1 [(gogoproto.customtype) = "Int", (gogoproto.nullable) = false]; -} - -// DecProto defines a Protobuf wrapper around a Dec object. -message DecProto { - string dec = 1 [(gogoproto.customtype) = "Dec", (gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/capability/v1beta1/capability.proto b/third_party/proto/cosmos/capability/v1beta1/capability.proto deleted file mode 100644 index 1c8332f3..00000000 --- a/third_party/proto/cosmos/capability/v1beta1/capability.proto +++ /dev/null @@ -1,30 +0,0 @@ -syntax = "proto3"; -package cosmos.capability.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/capability/types"; - -import "gogoproto/gogo.proto"; - -// Capability defines an implementation of an object capability. The index -// provided to a Capability must be globally unique. -message Capability { - option (gogoproto.goproto_stringer) = false; - - uint64 index = 1 [(gogoproto.moretags) = "yaml:\"index\""]; -} - -// Owner defines a single capability owner. An owner is defined by the name of -// capability and the module name. -message Owner { - option (gogoproto.goproto_stringer) = false; - option (gogoproto.goproto_getters) = false; - - string module = 1 [(gogoproto.moretags) = "yaml:\"module\""]; - string name = 2 [(gogoproto.moretags) = "yaml:\"name\""]; -} - -// CapabilityOwners defines a set of owners of a single Capability. The set of -// owners must be unique. -message CapabilityOwners { - repeated Owner owners = 1 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/capability/v1beta1/genesis.proto b/third_party/proto/cosmos/capability/v1beta1/genesis.proto deleted file mode 100644 index 05bb0afc..00000000 --- a/third_party/proto/cosmos/capability/v1beta1/genesis.proto +++ /dev/null @@ -1,26 +0,0 @@ -syntax = "proto3"; -package cosmos.capability.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/capability/v1beta1/capability.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/capability/types"; - -// GenesisOwners defines the capability owners with their corresponding index. -message GenesisOwners { - // index is the index of the capability owner. - uint64 index = 1; - - // index_owners are the owners at the given index. - CapabilityOwners index_owners = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"index_owners\""]; -} - -// GenesisState defines the capability module's genesis state. -message GenesisState { - // index is the capability global index. - uint64 index = 1; - - // owners represents a map from index to owners of the capability index - // index key is string to allow amino marshalling. - repeated GenesisOwners owners = 2 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/crisis/v1beta1/genesis.proto b/third_party/proto/cosmos/crisis/v1beta1/genesis.proto deleted file mode 100644 index 5b0ff7ec..00000000 --- a/third_party/proto/cosmos/crisis/v1beta1/genesis.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; -package cosmos.crisis.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/crisis/types"; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; - -// GenesisState defines the crisis module's genesis state. -message GenesisState { - // constant_fee is the fee used to verify the invariant in the crisis - // module. - cosmos.base.v1beta1.Coin constant_fee = 3 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"constant_fee\""]; -} diff --git a/third_party/proto/cosmos/crisis/v1beta1/tx.proto b/third_party/proto/cosmos/crisis/v1beta1/tx.proto deleted file mode 100644 index 26457ad6..00000000 --- a/third_party/proto/cosmos/crisis/v1beta1/tx.proto +++ /dev/null @@ -1,25 +0,0 @@ -syntax = "proto3"; -package cosmos.crisis.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/crisis/types"; - -import "gogoproto/gogo.proto"; - -// Msg defines the bank Msg service. -service Msg { - // VerifyInvariant defines a method to verify a particular invariance. - rpc VerifyInvariant(MsgVerifyInvariant) returns (MsgVerifyInvariantResponse); -} - -// MsgVerifyInvariant represents a message to verify a particular invariance. -message MsgVerifyInvariant { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string sender = 1; - string invariant_module_name = 2 [(gogoproto.moretags) = "yaml:\"invariant_module_name\""]; - string invariant_route = 3 [(gogoproto.moretags) = "yaml:\"invariant_route\""]; -} - -// MsgVerifyInvariantResponse defines the Msg/VerifyInvariant response type. -message MsgVerifyInvariantResponse {} diff --git a/third_party/proto/cosmos/crypto/ed25519/keys.proto b/third_party/proto/cosmos/crypto/ed25519/keys.proto deleted file mode 100644 index 6ffec344..00000000 --- a/third_party/proto/cosmos/crypto/ed25519/keys.proto +++ /dev/null @@ -1,23 +0,0 @@ -syntax = "proto3"; -package cosmos.crypto.ed25519; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519"; - -// PubKey is an ed25519 public key for handling Tendermint keys in SDK. -// It's needed for Any serialization and SDK compatibility. -// It must not be used in a non Tendermint key context because it doesn't implement -// ADR-28. Nevertheless, you will like to use ed25519 in app user level -// then you must create a new proto message and follow ADR-28 for Address construction. -message PubKey { - option (gogoproto.goproto_stringer) = false; - - bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PublicKey"]; -} - -// Deprecated: PrivKey defines a ed25519 private key. -// NOTE: ed25519 keys must not be used in SDK apps except in a tendermint validator context. -message PrivKey { - bytes key = 1 [(gogoproto.casttype) = "crypto/ed25519.PrivateKey"]; -} diff --git a/third_party/proto/cosmos/crypto/multisig/keys.proto b/third_party/proto/cosmos/crypto/multisig/keys.proto deleted file mode 100644 index f8398e80..00000000 --- a/third_party/proto/cosmos/crypto/multisig/keys.proto +++ /dev/null @@ -1,18 +0,0 @@ -syntax = "proto3"; -package cosmos.crypto.multisig; - -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/multisig"; - -// LegacyAminoPubKey specifies a public key type -// which nests multiple public keys and a threshold, -// it uses legacy amino address rules. -message LegacyAminoPubKey { - option (gogoproto.goproto_getters) = false; - - uint32 threshold = 1 [(gogoproto.moretags) = "yaml:\"threshold\""]; - repeated google.protobuf.Any public_keys = 2 - [(gogoproto.customname) = "PubKeys", (gogoproto.moretags) = "yaml:\"pubkeys\""]; -} diff --git a/third_party/proto/cosmos/crypto/multisig/v1beta1/multisig.proto b/third_party/proto/cosmos/crypto/multisig/v1beta1/multisig.proto deleted file mode 100644 index bf671f17..00000000 --- a/third_party/proto/cosmos/crypto/multisig/v1beta1/multisig.proto +++ /dev/null @@ -1,25 +0,0 @@ -syntax = "proto3"; -package cosmos.crypto.multisig.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/crypto/types"; - -// MultiSignature wraps the signatures from a multisig.LegacyAminoPubKey. -// See cosmos.tx.v1betata1.ModeInfo.Multi for how to specify which signers -// signed and with which modes. -message MultiSignature { - option (gogoproto.goproto_unrecognized) = true; - repeated bytes signatures = 1; -} - -// CompactBitArray is an implementation of a space efficient bit array. -// This is used to ensure that the encoded data takes up a minimal amount of -// space after proto encoding. -// This is not thread safe, and is not intended for concurrent usage. -message CompactBitArray { - option (gogoproto.goproto_stringer) = false; - - uint32 extra_bits_stored = 1; - bytes elems = 2; -} diff --git a/third_party/proto/cosmos/crypto/secp256k1/keys.proto b/third_party/proto/cosmos/crypto/secp256k1/keys.proto deleted file mode 100644 index a2272571..00000000 --- a/third_party/proto/cosmos/crypto/secp256k1/keys.proto +++ /dev/null @@ -1,22 +0,0 @@ -syntax = "proto3"; -package cosmos.crypto.secp256k1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1"; - -// PubKey defines a secp256k1 public key -// Key is the compressed form of the pubkey. The first byte depends is a 0x02 byte -// if the y-coordinate is the lexicographically largest of the two associated with -// the x-coordinate. Otherwise the first byte is a 0x03. -// This prefix is followed with the x-coordinate. -message PubKey { - option (gogoproto.goproto_stringer) = false; - - bytes key = 1; -} - -// PrivKey defines a secp256k1 private key. -message PrivKey { - bytes key = 1; -} diff --git a/third_party/proto/cosmos/crypto/secp256r1/keys.proto b/third_party/proto/cosmos/crypto/secp256r1/keys.proto deleted file mode 100644 index b0aad99d..00000000 --- a/third_party/proto/cosmos/crypto/secp256r1/keys.proto +++ /dev/null @@ -1,22 +0,0 @@ -syntax = "proto3"; -package cosmos.crypto.secp256r1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/crypto/keys/secp256r1"; -option (gogoproto.messagename_all) = true; -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.goproto_getters_all) = false; - -// PubKey defines a secp256r1 ECDSA public key. -message PubKey { - // Point on secp256r1 curve in a compressed representation as specified in section - // 4.3.6 of ANSI X9.62: https://webstore.ansi.org/standards/ascx9/ansix9621998 - bytes key = 1 [(gogoproto.customtype) = "ecdsaPK"]; -} - -// PrivKey defines a secp256r1 ECDSA private key. -message PrivKey { - // secret number serialized using big-endian encoding - bytes secret = 1 [(gogoproto.customtype) = "ecdsaSK"]; -} diff --git a/third_party/proto/cosmos/distribution/v1beta1/distribution.proto b/third_party/proto/cosmos/distribution/v1beta1/distribution.proto deleted file mode 100644 index ae98ec0b..00000000 --- a/third_party/proto/cosmos/distribution/v1beta1/distribution.proto +++ /dev/null @@ -1,157 +0,0 @@ -syntax = "proto3"; -package cosmos.distribution.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; -option (gogoproto.equal_all) = true; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; - -// Params defines the set of params for the distribution module. -message Params { - option (gogoproto.goproto_stringer) = false; - string community_tax = 1 [ - (gogoproto.moretags) = "yaml:\"community_tax\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - string base_proposer_reward = 2 [ - (gogoproto.moretags) = "yaml:\"base_proposer_reward\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - string bonus_proposer_reward = 3 [ - (gogoproto.moretags) = "yaml:\"bonus_proposer_reward\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - bool withdraw_addr_enabled = 4 [(gogoproto.moretags) = "yaml:\"withdraw_addr_enabled\""]; -} - -// ValidatorHistoricalRewards represents historical rewards for a validator. -// Height is implicit within the store key. -// Cumulative reward ratio is the sum from the zeroeth period -// until this period of rewards / tokens, per the spec. -// The reference count indicates the number of objects -// which might need to reference this historical entry at any point. -// ReferenceCount = -// number of outstanding delegations which ended the associated period (and -// might need to read that record) -// + number of slashes which ended the associated period (and might need to -// read that record) -// + one per validator for the zeroeth period, set on initialization -message ValidatorHistoricalRewards { - repeated cosmos.base.v1beta1.DecCoin cumulative_reward_ratio = 1 [ - (gogoproto.moretags) = "yaml:\"cumulative_reward_ratio\"", - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", - (gogoproto.nullable) = false - ]; - uint32 reference_count = 2 [(gogoproto.moretags) = "yaml:\"reference_count\""]; -} - -// ValidatorCurrentRewards represents current rewards and current -// period for a validator kept as a running counter and incremented -// each block as long as the validator's tokens remain constant. -message ValidatorCurrentRewards { - repeated cosmos.base.v1beta1.DecCoin rewards = 1 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; - uint64 period = 2; -} - -// ValidatorAccumulatedCommission represents accumulated commission -// for a validator kept as a running counter, can be withdrawn at any time. -message ValidatorAccumulatedCommission { - repeated cosmos.base.v1beta1.DecCoin commission = 1 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; -} - -// ValidatorOutstandingRewards represents outstanding (un-withdrawn) rewards -// for a validator inexpensive to track, allows simple sanity checks. -message ValidatorOutstandingRewards { - repeated cosmos.base.v1beta1.DecCoin rewards = 1 [ - (gogoproto.moretags) = "yaml:\"rewards\"", - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", - (gogoproto.nullable) = false - ]; -} - -// ValidatorSlashEvent represents a validator slash event. -// Height is implicit within the store key. -// This is needed to calculate appropriate amount of staking tokens -// for delegations which are withdrawn after a slash has occurred. -message ValidatorSlashEvent { - uint64 validator_period = 1 [(gogoproto.moretags) = "yaml:\"validator_period\""]; - string fraction = 2 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; -} - -// ValidatorSlashEvents is a collection of ValidatorSlashEvent messages. -message ValidatorSlashEvents { - option (gogoproto.goproto_stringer) = false; - repeated ValidatorSlashEvent validator_slash_events = 1 - [(gogoproto.moretags) = "yaml:\"validator_slash_events\"", (gogoproto.nullable) = false]; -} - -// FeePool is the global fee pool for distribution. -message FeePool { - repeated cosmos.base.v1beta1.DecCoin community_pool = 1 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", - (gogoproto.moretags) = "yaml:\"community_pool\"" - ]; -} - -// CommunityPoolSpendProposal details a proposal for use of community funds, -// together with how many coins are proposed to be spent, and to which -// recipient account. -message CommunityPoolSpendProposal { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - string title = 1; - string description = 2; - string recipient = 3; - repeated cosmos.base.v1beta1.Coin amount = 4 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// DelegatorStartingInfo represents the starting info for a delegator reward -// period. It tracks the previous validator period, the delegation's amount of -// staking token, and the creation height (to check later on if any slashes have -// occurred). NOTE: Even though validators are slashed to whole staking tokens, -// the delegators within the validator may be left with less than a full token, -// thus sdk.Dec is used. -message DelegatorStartingInfo { - uint64 previous_period = 1 [(gogoproto.moretags) = "yaml:\"previous_period\""]; - string stake = 2 [ - (gogoproto.moretags) = "yaml:\"stake\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - uint64 height = 3 [(gogoproto.moretags) = "yaml:\"creation_height\"", (gogoproto.jsontag) = "creation_height"]; -} - -// DelegationDelegatorReward represents the properties -// of a delegator's delegation reward. -message DelegationDelegatorReward { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = true; - - string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - - repeated cosmos.base.v1beta1.DecCoin reward = 2 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; -} - -// CommunityPoolSpendProposalWithDeposit defines a CommunityPoolSpendProposal -// with a deposit -message CommunityPoolSpendProposalWithDeposit { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = true; - - string title = 1 [(gogoproto.moretags) = "yaml:\"title\""]; - string description = 2 [(gogoproto.moretags) = "yaml:\"description\""]; - string recipient = 3 [(gogoproto.moretags) = "yaml:\"recipient\""]; - string amount = 4 [(gogoproto.moretags) = "yaml:\"amount\""]; - string deposit = 5 [(gogoproto.moretags) = "yaml:\"deposit\""]; -} diff --git a/third_party/proto/cosmos/distribution/v1beta1/genesis.proto b/third_party/proto/cosmos/distribution/v1beta1/genesis.proto deleted file mode 100644 index c0b17cdf..00000000 --- a/third_party/proto/cosmos/distribution/v1beta1/genesis.proto +++ /dev/null @@ -1,155 +0,0 @@ -syntax = "proto3"; -package cosmos.distribution.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; -option (gogoproto.equal_all) = true; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/distribution/v1beta1/distribution.proto"; - -// DelegatorWithdrawInfo is the address for where distributions rewards are -// withdrawn to by default this struct is only used at genesis to feed in -// default withdraw addresses. -message DelegatorWithdrawInfo { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_address is the address of the delegator. - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - - // withdraw_address is the address to withdraw the delegation rewards to. - string withdraw_address = 2 [(gogoproto.moretags) = "yaml:\"withdraw_address\""]; -} - -// ValidatorOutstandingRewardsRecord is used for import/export via genesis json. -message ValidatorOutstandingRewardsRecord { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // validator_address is the address of the validator. - string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - - // outstanding_rewards represents the oustanding rewards of a validator. - repeated cosmos.base.v1beta1.DecCoin outstanding_rewards = 2 [ - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", - (gogoproto.nullable) = false, - (gogoproto.moretags) = "yaml:\"outstanding_rewards\"" - ]; -} - -// ValidatorAccumulatedCommissionRecord is used for import / export via genesis -// json. -message ValidatorAccumulatedCommissionRecord { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // validator_address is the address of the validator. - string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - - // accumulated is the accumulated commission of a validator. - ValidatorAccumulatedCommission accumulated = 2 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"accumulated\""]; -} - -// ValidatorHistoricalRewardsRecord is used for import / export via genesis -// json. -message ValidatorHistoricalRewardsRecord { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // validator_address is the address of the validator. - string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - - // period defines the period the historical rewards apply to. - uint64 period = 2; - - // rewards defines the historical rewards of a validator. - ValidatorHistoricalRewards rewards = 3 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"rewards\""]; -} - -// ValidatorCurrentRewardsRecord is used for import / export via genesis json. -message ValidatorCurrentRewardsRecord { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // validator_address is the address of the validator. - string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - - // rewards defines the current rewards of a validator. - ValidatorCurrentRewards rewards = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"rewards\""]; -} - -// DelegatorStartingInfoRecord used for import / export via genesis json. -message DelegatorStartingInfoRecord { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_address is the address of the delegator. - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - - // validator_address is the address of the validator. - string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - - // starting_info defines the starting info of a delegator. - DelegatorStartingInfo starting_info = 3 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"starting_info\""]; -} - -// ValidatorSlashEventRecord is used for import / export via genesis json. -message ValidatorSlashEventRecord { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // validator_address is the address of the validator. - string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - // height defines the block height at which the slash event occured. - uint64 height = 2; - // period is the period of the slash event. - uint64 period = 3; - // validator_slash_event describes the slash event. - ValidatorSlashEvent validator_slash_event = 4 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"event\""]; -} - -// GenesisState defines the distribution module's genesis state. -message GenesisState { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // params defines all the paramaters of the module. - Params params = 1 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"params\""]; - - // fee_pool defines the fee pool at genesis. - FeePool fee_pool = 2 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"fee_pool\""]; - - // fee_pool defines the delegator withdraw infos at genesis. - repeated DelegatorWithdrawInfo delegator_withdraw_infos = 3 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"delegator_withdraw_infos\""]; - - // fee_pool defines the previous proposer at genesis. - string previous_proposer = 4 [(gogoproto.moretags) = "yaml:\"previous_proposer\""]; - - // fee_pool defines the outstanding rewards of all validators at genesis. - repeated ValidatorOutstandingRewardsRecord outstanding_rewards = 5 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"outstanding_rewards\""]; - - // fee_pool defines the accumulated commisions of all validators at genesis. - repeated ValidatorAccumulatedCommissionRecord validator_accumulated_commissions = 6 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_accumulated_commissions\""]; - - // fee_pool defines the historical rewards of all validators at genesis. - repeated ValidatorHistoricalRewardsRecord validator_historical_rewards = 7 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_historical_rewards\""]; - - // fee_pool defines the current rewards of all validators at genesis. - repeated ValidatorCurrentRewardsRecord validator_current_rewards = 8 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_current_rewards\""]; - - // fee_pool defines the delegator starting infos at genesis. - repeated DelegatorStartingInfoRecord delegator_starting_infos = 9 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"delegator_starting_infos\""]; - - // fee_pool defines the validator slash events at genesis. - repeated ValidatorSlashEventRecord validator_slash_events = 10 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_slash_events\""]; -} diff --git a/third_party/proto/cosmos/distribution/v1beta1/query.proto b/third_party/proto/cosmos/distribution/v1beta1/query.proto deleted file mode 100644 index 2991218d..00000000 --- a/third_party/proto/cosmos/distribution/v1beta1/query.proto +++ /dev/null @@ -1,218 +0,0 @@ -syntax = "proto3"; -package cosmos.distribution.v1beta1; - -import "cosmos/base/query/v1beta1/pagination.proto"; -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/distribution/v1beta1/distribution.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; - -// Query defines the gRPC querier service for distribution module. -service Query { - // Params queries params of the distribution module. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmos/distribution/v1beta1/params"; - } - - // ValidatorOutstandingRewards queries rewards of a validator address. - rpc ValidatorOutstandingRewards(QueryValidatorOutstandingRewardsRequest) - returns (QueryValidatorOutstandingRewardsResponse) { - option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/" - "{validator_address}/outstanding_rewards"; - } - - // ValidatorCommission queries accumulated commission for a validator. - rpc ValidatorCommission(QueryValidatorCommissionRequest) returns (QueryValidatorCommissionResponse) { - option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/" - "{validator_address}/commission"; - } - - // ValidatorSlashes queries slash events of a validator. - rpc ValidatorSlashes(QueryValidatorSlashesRequest) returns (QueryValidatorSlashesResponse) { - option (google.api.http).get = "/cosmos/distribution/v1beta1/validators/{validator_address}/slashes"; - } - - // DelegationRewards queries the total rewards accrued by a delegation. - rpc DelegationRewards(QueryDelegationRewardsRequest) returns (QueryDelegationRewardsResponse) { - option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards/" - "{validator_address}"; - } - - // DelegationTotalRewards queries the total rewards accrued by a each - // validator. - rpc DelegationTotalRewards(QueryDelegationTotalRewardsRequest) returns (QueryDelegationTotalRewardsResponse) { - option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards"; - } - - // DelegatorValidators queries the validators of a delegator. - rpc DelegatorValidators(QueryDelegatorValidatorsRequest) returns (QueryDelegatorValidatorsResponse) { - option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/" - "{delegator_address}/validators"; - } - - // DelegatorWithdrawAddress queries withdraw address of a delegator. - rpc DelegatorWithdrawAddress(QueryDelegatorWithdrawAddressRequest) returns (QueryDelegatorWithdrawAddressResponse) { - option (google.api.http).get = "/cosmos/distribution/v1beta1/delegators/" - "{delegator_address}/withdraw_address"; - } - - // CommunityPool queries the community pool coins. - rpc CommunityPool(QueryCommunityPoolRequest) returns (QueryCommunityPoolResponse) { - option (google.api.http).get = "/cosmos/distribution/v1beta1/community_pool"; - } -} - -// QueryParamsRequest is the request type for the Query/Params RPC method. -message QueryParamsRequest {} - -// QueryParamsResponse is the response type for the Query/Params RPC method. -message QueryParamsResponse { - // params defines the parameters of the module. - Params params = 1 [(gogoproto.nullable) = false]; -} - -// QueryValidatorOutstandingRewardsRequest is the request type for the -// Query/ValidatorOutstandingRewards RPC method. -message QueryValidatorOutstandingRewardsRequest { - // validator_address defines the validator address to query for. - string validator_address = 1; -} - -// QueryValidatorOutstandingRewardsResponse is the response type for the -// Query/ValidatorOutstandingRewards RPC method. -message QueryValidatorOutstandingRewardsResponse { - ValidatorOutstandingRewards rewards = 1 [(gogoproto.nullable) = false]; -} - -// QueryValidatorCommissionRequest is the request type for the -// Query/ValidatorCommission RPC method -message QueryValidatorCommissionRequest { - // validator_address defines the validator address to query for. - string validator_address = 1; -} - -// QueryValidatorCommissionResponse is the response type for the -// Query/ValidatorCommission RPC method -message QueryValidatorCommissionResponse { - // commission defines the commision the validator received. - ValidatorAccumulatedCommission commission = 1 [(gogoproto.nullable) = false]; -} - -// QueryValidatorSlashesRequest is the request type for the -// Query/ValidatorSlashes RPC method -message QueryValidatorSlashesRequest { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = true; - - // validator_address defines the validator address to query for. - string validator_address = 1; - // starting_height defines the optional starting height to query the slashes. - uint64 starting_height = 2; - // starting_height defines the optional ending height to query the slashes. - uint64 ending_height = 3; - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 4; -} - -// QueryValidatorSlashesResponse is the response type for the -// Query/ValidatorSlashes RPC method. -message QueryValidatorSlashesResponse { - // slashes defines the slashes the validator received. - repeated ValidatorSlashEvent slashes = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryDelegationRewardsRequest is the request type for the -// Query/DelegationRewards RPC method. -message QueryDelegationRewardsRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_address defines the delegator address to query for. - string delegator_address = 1; - // validator_address defines the validator address to query for. - string validator_address = 2; -} - -// QueryDelegationRewardsResponse is the response type for the -// Query/DelegationRewards RPC method. -message QueryDelegationRewardsResponse { - // rewards defines the rewards accrued by a delegation. - repeated cosmos.base.v1beta1.DecCoin rewards = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins"]; -} - -// QueryDelegationTotalRewardsRequest is the request type for the -// Query/DelegationTotalRewards RPC method. -message QueryDelegationTotalRewardsRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - // delegator_address defines the delegator address to query for. - string delegator_address = 1; -} - -// QueryDelegationTotalRewardsResponse is the response type for the -// Query/DelegationTotalRewards RPC method. -message QueryDelegationTotalRewardsResponse { - // rewards defines all the rewards accrued by a delegator. - repeated DelegationDelegatorReward rewards = 1 [(gogoproto.nullable) = false]; - // total defines the sum of all the rewards. - repeated cosmos.base.v1beta1.DecCoin total = 2 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins"]; -} - -// QueryDelegatorValidatorsRequest is the request type for the -// Query/DelegatorValidators RPC method. -message QueryDelegatorValidatorsRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_address defines the delegator address to query for. - string delegator_address = 1; -} - -// QueryDelegatorValidatorsResponse is the response type for the -// Query/DelegatorValidators RPC method. -message QueryDelegatorValidatorsResponse { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // validators defines the validators a delegator is delegating for. - repeated string validators = 1; -} - -// QueryDelegatorWithdrawAddressRequest is the request type for the -// Query/DelegatorWithdrawAddress RPC method. -message QueryDelegatorWithdrawAddressRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_address defines the delegator address to query for. - string delegator_address = 1; -} - -// QueryDelegatorWithdrawAddressResponse is the response type for the -// Query/DelegatorWithdrawAddress RPC method. -message QueryDelegatorWithdrawAddressResponse { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // withdraw_address defines the delegator address to query for. - string withdraw_address = 1; -} - -// QueryCommunityPoolRequest is the request type for the Query/CommunityPool RPC -// method. -message QueryCommunityPoolRequest {} - -// QueryCommunityPoolResponse is the response type for the Query/CommunityPool -// RPC method. -message QueryCommunityPoolResponse { - // pool defines community pool's coins. - repeated cosmos.base.v1beta1.DecCoin pool = 1 - [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.DecCoins", (gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/distribution/v1beta1/tx.proto b/third_party/proto/cosmos/distribution/v1beta1/tx.proto deleted file mode 100644 index e6ce478b..00000000 --- a/third_party/proto/cosmos/distribution/v1beta1/tx.proto +++ /dev/null @@ -1,79 +0,0 @@ -syntax = "proto3"; -package cosmos.distribution.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/distribution/types"; -option (gogoproto.equal_all) = true; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; - -// Msg defines the distribution Msg service. -service Msg { - // SetWithdrawAddress defines a method to change the withdraw address - // for a delegator (or validator self-delegation). - rpc SetWithdrawAddress(MsgSetWithdrawAddress) returns (MsgSetWithdrawAddressResponse); - - // WithdrawDelegatorReward defines a method to withdraw rewards of delegator - // from a single validator. - rpc WithdrawDelegatorReward(MsgWithdrawDelegatorReward) returns (MsgWithdrawDelegatorRewardResponse); - - // WithdrawValidatorCommission defines a method to withdraw the - // full commission to the validator address. - rpc WithdrawValidatorCommission(MsgWithdrawValidatorCommission) returns (MsgWithdrawValidatorCommissionResponse); - - // FundCommunityPool defines a method to allow an account to directly - // fund the community pool. - rpc FundCommunityPool(MsgFundCommunityPool) returns (MsgFundCommunityPoolResponse); -} - -// MsgSetWithdrawAddress sets the withdraw address for -// a delegator (or validator self-delegation). -message MsgSetWithdrawAddress { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - string withdraw_address = 2 [(gogoproto.moretags) = "yaml:\"withdraw_address\""]; -} - -// MsgSetWithdrawAddressResponse defines the Msg/SetWithdrawAddress response type. -message MsgSetWithdrawAddressResponse {} - -// MsgWithdrawDelegatorReward represents delegation withdrawal to a delegator -// from a single validator. -message MsgWithdrawDelegatorReward { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; -} - -// MsgWithdrawDelegatorRewardResponse defines the Msg/WithdrawDelegatorReward response type. -message MsgWithdrawDelegatorRewardResponse {} - -// MsgWithdrawValidatorCommission withdraws the full commission to the validator -// address. -message MsgWithdrawValidatorCommission { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string validator_address = 1 [(gogoproto.moretags) = "yaml:\"validator_address\""]; -} - -// MsgWithdrawValidatorCommissionResponse defines the Msg/WithdrawValidatorCommission response type. -message MsgWithdrawValidatorCommissionResponse {} - -// MsgFundCommunityPool allows an account to directly -// fund the community pool. -message MsgFundCommunityPool { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - repeated cosmos.base.v1beta1.Coin amount = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - string depositor = 2; -} - -// MsgFundCommunityPoolResponse defines the Msg/FundCommunityPool response type. -message MsgFundCommunityPoolResponse {} diff --git a/third_party/proto/cosmos/evidence/v1beta1/evidence.proto b/third_party/proto/cosmos/evidence/v1beta1/evidence.proto deleted file mode 100644 index 14612c31..00000000 --- a/third_party/proto/cosmos/evidence/v1beta1/evidence.proto +++ /dev/null @@ -1,21 +0,0 @@ -syntax = "proto3"; -package cosmos.evidence.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types"; -option (gogoproto.equal_all) = true; - -import "gogoproto/gogo.proto"; -import "google/protobuf/timestamp.proto"; - -// Equivocation implements the Evidence interface and defines evidence of double -// signing misbehavior. -message Equivocation { - option (gogoproto.goproto_stringer) = false; - option (gogoproto.goproto_getters) = false; - option (gogoproto.equal) = false; - - int64 height = 1; - google.protobuf.Timestamp time = 2 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; - int64 power = 3; - string consensus_address = 4 [(gogoproto.moretags) = "yaml:\"consensus_address\""]; -} \ No newline at end of file diff --git a/third_party/proto/cosmos/evidence/v1beta1/genesis.proto b/third_party/proto/cosmos/evidence/v1beta1/genesis.proto deleted file mode 100644 index 199f446f..00000000 --- a/third_party/proto/cosmos/evidence/v1beta1/genesis.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; -package cosmos.evidence.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types"; - -import "google/protobuf/any.proto"; - -// GenesisState defines the evidence module's genesis state. -message GenesisState { - // evidence defines all the evidence at genesis. - repeated google.protobuf.Any evidence = 1; -} diff --git a/third_party/proto/cosmos/evidence/v1beta1/query.proto b/third_party/proto/cosmos/evidence/v1beta1/query.proto deleted file mode 100644 index eda00544..00000000 --- a/third_party/proto/cosmos/evidence/v1beta1/query.proto +++ /dev/null @@ -1,51 +0,0 @@ -syntax = "proto3"; -package cosmos.evidence.v1beta1; - -import "cosmos/base/query/v1beta1/pagination.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; -import "google/api/annotations.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types"; - -// Query defines the gRPC querier service. -service Query { - // Evidence queries evidence based on evidence hash. - rpc Evidence(QueryEvidenceRequest) returns (QueryEvidenceResponse) { - option (google.api.http).get = "/cosmos/evidence/v1beta1/evidence/{evidence_hash}"; - } - - // AllEvidence queries all evidence. - rpc AllEvidence(QueryAllEvidenceRequest) returns (QueryAllEvidenceResponse) { - option (google.api.http).get = "/cosmos/evidence/v1beta1/evidence"; - } -} - -// QueryEvidenceRequest is the request type for the Query/Evidence RPC method. -message QueryEvidenceRequest { - // evidence_hash defines the hash of the requested evidence. - bytes evidence_hash = 1 [(gogoproto.casttype) = "github.com/tendermint/tendermint/libs/bytes.HexBytes"]; -} - -// QueryEvidenceResponse is the response type for the Query/Evidence RPC method. -message QueryEvidenceResponse { - // evidence returns the requested evidence. - google.protobuf.Any evidence = 1; -} - -// QueryEvidenceRequest is the request type for the Query/AllEvidence RPC -// method. -message QueryAllEvidenceRequest { - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -// QueryAllEvidenceResponse is the response type for the Query/AllEvidence RPC -// method. -message QueryAllEvidenceResponse { - // evidence returns all evidences. - repeated google.protobuf.Any evidence = 1; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} diff --git a/third_party/proto/cosmos/evidence/v1beta1/tx.proto b/third_party/proto/cosmos/evidence/v1beta1/tx.proto deleted file mode 100644 index 38795f25..00000000 --- a/third_party/proto/cosmos/evidence/v1beta1/tx.proto +++ /dev/null @@ -1,32 +0,0 @@ -syntax = "proto3"; -package cosmos.evidence.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/evidence/types"; -option (gogoproto.equal_all) = true; - -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; -import "cosmos_proto/cosmos.proto"; - -// Msg defines the evidence Msg service. -service Msg { - // SubmitEvidence submits an arbitrary Evidence of misbehavior such as equivocation or - // counterfactual signing. - rpc SubmitEvidence(MsgSubmitEvidence) returns (MsgSubmitEvidenceResponse); -} - -// MsgSubmitEvidence represents a message that supports submitting arbitrary -// Evidence of misbehavior such as equivocation or counterfactual signing. -message MsgSubmitEvidence { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string submitter = 1; - google.protobuf.Any evidence = 2 [(cosmos_proto.accepts_interface) = "Evidence"]; -} - -// MsgSubmitEvidenceResponse defines the Msg/SubmitEvidence response type. -message MsgSubmitEvidenceResponse { - // hash defines the hash of the evidence. - bytes hash = 4; -} diff --git a/third_party/proto/cosmos/feegrant/v1beta1/feegrant.proto b/third_party/proto/cosmos/feegrant/v1beta1/feegrant.proto deleted file mode 100644 index dfd9b782..00000000 --- a/third_party/proto/cosmos/feegrant/v1beta1/feegrant.proto +++ /dev/null @@ -1,77 +0,0 @@ -syntax = "proto3"; -package cosmos.feegrant.v1beta1; - -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/duration.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant"; - -// BasicAllowance implements Allowance with a one-time grant of tokens -// that optionally expires. The grantee can use up to SpendLimit to cover fees. -message BasicAllowance { - option (cosmos_proto.implements_interface) = "FeeAllowanceI"; - - // spend_limit specifies the maximum amount of tokens that can be spent - // by this allowance and will be updated as tokens are spent. If it is - // empty, there is no spend limit and any amount of coins can be spent. - repeated cosmos.base.v1beta1.Coin spend_limit = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - - // expiration specifies an optional time when this allowance expires - google.protobuf.Timestamp expiration = 2 [(gogoproto.stdtime) = true]; -} - -// PeriodicAllowance extends Allowance to allow for both a maximum cap, -// as well as a limit per time period. -message PeriodicAllowance { - option (cosmos_proto.implements_interface) = "FeeAllowanceI"; - - // basic specifies a struct of `BasicAllowance` - BasicAllowance basic = 1 [(gogoproto.nullable) = false]; - - // period specifies the time duration in which period_spend_limit coins can - // be spent before that allowance is reset - google.protobuf.Duration period = 2 [(gogoproto.stdduration) = true, (gogoproto.nullable) = false]; - - // period_spend_limit specifies the maximum number of coins that can be spent - // in the period - repeated cosmos.base.v1beta1.Coin period_spend_limit = 3 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - - // period_can_spend is the number of coins left to be spent before the period_reset time - repeated cosmos.base.v1beta1.Coin period_can_spend = 4 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - - // period_reset is the time at which this period resets and a new one begins, - // it is calculated from the start time of the first transaction after the - // last period ended - google.protobuf.Timestamp period_reset = 5 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; -} - -// AllowedMsgAllowance creates allowance only for specified message types. -message AllowedMsgAllowance { - option (gogoproto.goproto_getters) = false; - option (cosmos_proto.implements_interface) = "FeeAllowanceI"; - - // allowance can be any of basic and filtered fee allowance. - google.protobuf.Any allowance = 1 [(cosmos_proto.accepts_interface) = "FeeAllowanceI"]; - - // allowed_messages are the messages for which the grantee has the access. - repeated string allowed_messages = 2; -} - -// Grant is stored in the KVStore to record a grant with full context -message Grant { - // granter is the address of the user granting an allowance of their funds. - string granter = 1; - - // grantee is the address of the user being granted an allowance of another user's funds. - string grantee = 2; - - // allowance can be any of basic and filtered fee allowance. - google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "FeeAllowanceI"]; -} diff --git a/third_party/proto/cosmos/feegrant/v1beta1/genesis.proto b/third_party/proto/cosmos/feegrant/v1beta1/genesis.proto deleted file mode 100644 index 4c1e51fd..00000000 --- a/third_party/proto/cosmos/feegrant/v1beta1/genesis.proto +++ /dev/null @@ -1,12 +0,0 @@ -syntax = "proto3"; -package cosmos.feegrant.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/feegrant/v1beta1/feegrant.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant"; - -// GenesisState contains a set of fee allowances, persisted from the store -message GenesisState { - repeated Grant allowances = 1 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/feegrant/v1beta1/query.proto b/third_party/proto/cosmos/feegrant/v1beta1/query.proto deleted file mode 100644 index 00ea598b..00000000 --- a/third_party/proto/cosmos/feegrant/v1beta1/query.proto +++ /dev/null @@ -1,54 +0,0 @@ -syntax = "proto3"; -package cosmos.feegrant.v1beta1; - -import "cosmos/feegrant/v1beta1/feegrant.proto"; -import "cosmos/base/query/v1beta1/pagination.proto"; -import "google/api/annotations.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant"; - -// Query defines the gRPC querier service. -service Query { - - // Allowance returns fee granted to the grantee by the granter. - rpc Allowance(QueryAllowanceRequest) returns (QueryAllowanceResponse) { - option (google.api.http).get = "/cosmos/feegrant/v1beta1/allowance/{granter}/{grantee}"; - } - - // Allowances returns all the grants for address. - rpc Allowances(QueryAllowancesRequest) returns (QueryAllowancesResponse) { - option (google.api.http).get = "/cosmos/feegrant/v1beta1/allowances/{grantee}"; - } -} - -// QueryAllowanceRequest is the request type for the Query/Allowance RPC method. -message QueryAllowanceRequest { - // granter is the address of the user granting an allowance of their funds. - string granter = 1; - - // grantee is the address of the user being granted an allowance of another user's funds. - string grantee = 2; -} - -// QueryAllowanceResponse is the response type for the Query/Allowance RPC method. -message QueryAllowanceResponse { - // allowance is a allowance granted for grantee by granter. - cosmos.feegrant.v1beta1.Grant allowance = 1; -} - -// QueryAllowancesRequest is the request type for the Query/Allowances RPC method. -message QueryAllowancesRequest { - string grantee = 1; - - // pagination defines an pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryAllowancesResponse is the response type for the Query/Allowances RPC method. -message QueryAllowancesResponse { - // allowances are allowance's granted for grantee by granter. - repeated cosmos.feegrant.v1beta1.Grant allowances = 1; - - // pagination defines an pagination for the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} diff --git a/third_party/proto/cosmos/feegrant/v1beta1/tx.proto b/third_party/proto/cosmos/feegrant/v1beta1/tx.proto deleted file mode 100644 index e7134be2..00000000 --- a/third_party/proto/cosmos/feegrant/v1beta1/tx.proto +++ /dev/null @@ -1,47 +0,0 @@ -syntax = "proto3"; -package cosmos.feegrant.v1beta1; - -import "google/protobuf/any.proto"; -import "cosmos_proto/cosmos.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/feegrant"; - -// Msg defines the feegrant msg service. -service Msg { - - // GrantAllowance grants fee allowance to the grantee on the granter's - // account with the provided expiration time. - rpc GrantAllowance(MsgGrantAllowance) returns (MsgGrantAllowanceResponse); - - // RevokeAllowance revokes any fee allowance of granter's account that - // has been granted to the grantee. - rpc RevokeAllowance(MsgRevokeAllowance) returns (MsgRevokeAllowanceResponse); -} - -// MsgGrantAllowance adds permission for Grantee to spend up to Allowance -// of fees from the account of Granter. -message MsgGrantAllowance { - // granter is the address of the user granting an allowance of their funds. - string granter = 1; - - // grantee is the address of the user being granted an allowance of another user's funds. - string grantee = 2; - - // allowance can be any of basic and filtered fee allowance. - google.protobuf.Any allowance = 3 [(cosmos_proto.accepts_interface) = "FeeAllowanceI"]; -} - -// MsgGrantAllowanceResponse defines the Msg/GrantAllowanceResponse response type. -message MsgGrantAllowanceResponse {} - -// MsgRevokeAllowance removes any existing Allowance from Granter to Grantee. -message MsgRevokeAllowance { - // granter is the address of the user granting an allowance of their funds. - string granter = 1; - - // grantee is the address of the user being granted an allowance of another user's funds. - string grantee = 2; -} - -// MsgRevokeAllowanceResponse defines the Msg/RevokeAllowanceResponse response type. -message MsgRevokeAllowanceResponse {} diff --git a/third_party/proto/cosmos/genutil/v1beta1/genesis.proto b/third_party/proto/cosmos/genutil/v1beta1/genesis.proto deleted file mode 100644 index a0207793..00000000 --- a/third_party/proto/cosmos/genutil/v1beta1/genesis.proto +++ /dev/null @@ -1,16 +0,0 @@ -syntax = "proto3"; -package cosmos.genutil.v1beta1; - -import "gogoproto/gogo.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/genutil/types"; - -// GenesisState defines the raw genesis transaction in JSON. -message GenesisState { - // gen_txs defines the genesis transactions. - repeated bytes gen_txs = 1 [ - (gogoproto.casttype) = "encoding/json.RawMessage", - (gogoproto.jsontag) = "gentxs", - (gogoproto.moretags) = "yaml:\"gentxs\"" - ]; -} diff --git a/third_party/proto/cosmos/gov/v1beta1/genesis.proto b/third_party/proto/cosmos/gov/v1beta1/genesis.proto deleted file mode 100644 index a9995004..00000000 --- a/third_party/proto/cosmos/gov/v1beta1/genesis.proto +++ /dev/null @@ -1,26 +0,0 @@ -syntax = "proto3"; - -package cosmos.gov.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/gov/v1beta1/gov.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; - -// GenesisState defines the gov module's genesis state. -message GenesisState { - // starting_proposal_id is the ID of the starting proposal. - uint64 starting_proposal_id = 1 [(gogoproto.moretags) = "yaml:\"starting_proposal_id\""]; - // deposits defines all the deposits present at genesis. - repeated Deposit deposits = 2 [(gogoproto.castrepeated) = "Deposits", (gogoproto.nullable) = false]; - // votes defines all the votes present at genesis. - repeated Vote votes = 3 [(gogoproto.castrepeated) = "Votes", (gogoproto.nullable) = false]; - // proposals defines all the proposals present at genesis. - repeated Proposal proposals = 4 [(gogoproto.castrepeated) = "Proposals", (gogoproto.nullable) = false]; - // params defines all the paramaters of related to deposit. - DepositParams deposit_params = 5 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"deposit_params\""]; - // params defines all the paramaters of related to voting. - VotingParams voting_params = 6 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_params\""]; - // params defines all the paramaters of related to tally. - TallyParams tally_params = 7 [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"tally_params\""]; -} diff --git a/third_party/proto/cosmos/gov/v1beta1/gov.proto b/third_party/proto/cosmos/gov/v1beta1/gov.proto deleted file mode 100644 index f040772e..00000000 --- a/third_party/proto/cosmos/gov/v1beta1/gov.proto +++ /dev/null @@ -1,197 +0,0 @@ -syntax = "proto3"; -package cosmos.gov.v1beta1; - -import "cosmos/base/v1beta1/coin.proto"; -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/duration.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.stringer_all) = false; -option (gogoproto.goproto_getters_all) = false; - -// VoteOption enumerates the valid vote options for a given governance proposal. -enum VoteOption { - option (gogoproto.goproto_enum_prefix) = false; - - // VOTE_OPTION_UNSPECIFIED defines a no-op vote option. - VOTE_OPTION_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "OptionEmpty"]; - // VOTE_OPTION_YES defines a yes vote option. - VOTE_OPTION_YES = 1 [(gogoproto.enumvalue_customname) = "OptionYes"]; - // VOTE_OPTION_ABSTAIN defines an abstain vote option. - VOTE_OPTION_ABSTAIN = 2 [(gogoproto.enumvalue_customname) = "OptionAbstain"]; - // VOTE_OPTION_NO defines a no vote option. - VOTE_OPTION_NO = 3 [(gogoproto.enumvalue_customname) = "OptionNo"]; - // VOTE_OPTION_NO_WITH_VETO defines a no with veto vote option. - VOTE_OPTION_NO_WITH_VETO = 4 [(gogoproto.enumvalue_customname) = "OptionNoWithVeto"]; -} - -// WeightedVoteOption defines a unit of vote for vote split. -message WeightedVoteOption { - VoteOption option = 1; - string weight = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false, - (gogoproto.moretags) = "yaml:\"weight\"" - ]; -} - -// TextProposal defines a standard text proposal whose changes need to be -// manually updated in case of approval. -message TextProposal { - option (cosmos_proto.implements_interface) = "Content"; - - option (gogoproto.equal) = true; - - string title = 1; - string description = 2; -} - -// Deposit defines an amount deposited by an account address to an active -// proposal. -message Deposit { - option (gogoproto.goproto_getters) = false; - option (gogoproto.equal) = false; - - uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""]; - string depositor = 2; - repeated cosmos.base.v1beta1.Coin amount = 3 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// Proposal defines the core field members of a governance proposal. -message Proposal { - option (gogoproto.equal) = true; - - uint64 proposal_id = 1 [(gogoproto.jsontag) = "id", (gogoproto.moretags) = "yaml:\"id\""]; - google.protobuf.Any content = 2 [(cosmos_proto.accepts_interface) = "Content"]; - ProposalStatus status = 3 [(gogoproto.moretags) = "yaml:\"proposal_status\""]; - TallyResult final_tally_result = 4 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"final_tally_result\""]; - google.protobuf.Timestamp submit_time = 5 - [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"submit_time\""]; - google.protobuf.Timestamp deposit_end_time = 6 - [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"deposit_end_time\""]; - repeated cosmos.base.v1beta1.Coin total_deposit = 7 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", - (gogoproto.moretags) = "yaml:\"total_deposit\"" - ]; - google.protobuf.Timestamp voting_start_time = 8 - [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_start_time\""]; - google.protobuf.Timestamp voting_end_time = 9 - [(gogoproto.stdtime) = true, (gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"voting_end_time\""]; -} - -// ProposalStatus enumerates the valid statuses of a proposal. -enum ProposalStatus { - option (gogoproto.goproto_enum_prefix) = false; - - // PROPOSAL_STATUS_UNSPECIFIED defines the default propopsal status. - PROPOSAL_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "StatusNil"]; - // PROPOSAL_STATUS_DEPOSIT_PERIOD defines a proposal status during the deposit - // period. - PROPOSAL_STATUS_DEPOSIT_PERIOD = 1 [(gogoproto.enumvalue_customname) = "StatusDepositPeriod"]; - // PROPOSAL_STATUS_VOTING_PERIOD defines a proposal status during the voting - // period. - PROPOSAL_STATUS_VOTING_PERIOD = 2 [(gogoproto.enumvalue_customname) = "StatusVotingPeriod"]; - // PROPOSAL_STATUS_PASSED defines a proposal status of a proposal that has - // passed. - PROPOSAL_STATUS_PASSED = 3 [(gogoproto.enumvalue_customname) = "StatusPassed"]; - // PROPOSAL_STATUS_REJECTED defines a proposal status of a proposal that has - // been rejected. - PROPOSAL_STATUS_REJECTED = 4 [(gogoproto.enumvalue_customname) = "StatusRejected"]; - // PROPOSAL_STATUS_FAILED defines a proposal status of a proposal that has - // failed. - PROPOSAL_STATUS_FAILED = 5 [(gogoproto.enumvalue_customname) = "StatusFailed"]; -} - -// TallyResult defines a standard tally for a governance proposal. -message TallyResult { - option (gogoproto.equal) = true; - - string yes = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; - string abstain = 2 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; - string no = 3 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; - string no_with_veto = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false, - (gogoproto.moretags) = "yaml:\"no_with_veto\"" - ]; -} - -// Vote defines a vote on a governance proposal. -// A Vote consists of a proposal ID, the voter, and the vote option. -message Vote { - option (gogoproto.goproto_stringer) = false; - option (gogoproto.equal) = false; - - uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""]; - string voter = 2; - // Deprecated: Prefer to use `options` instead. This field is set in queries - // if and only if `len(options) == 1` and that option has weight 1. In all - // other cases, this field will default to VOTE_OPTION_UNSPECIFIED. - VoteOption option = 3 [deprecated = true]; - repeated WeightedVoteOption options = 4 [(gogoproto.nullable) = false]; -} - -// DepositParams defines the params for deposits on governance proposals. -message DepositParams { - // Minimum deposit for a proposal to enter voting period. - repeated cosmos.base.v1beta1.Coin min_deposit = 1 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", - (gogoproto.moretags) = "yaml:\"min_deposit\"", - (gogoproto.jsontag) = "min_deposit,omitempty" - ]; - - // Maximum period for Atom holders to deposit on a proposal. Initial value: 2 - // months. - google.protobuf.Duration max_deposit_period = 2 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true, - (gogoproto.jsontag) = "max_deposit_period,omitempty", - (gogoproto.moretags) = "yaml:\"max_deposit_period\"" - ]; -} - -// VotingParams defines the params for voting on governance proposals. -message VotingParams { - // Length of the voting period. - google.protobuf.Duration voting_period = 1 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true, - (gogoproto.jsontag) = "voting_period,omitempty", - (gogoproto.moretags) = "yaml:\"voting_period\"" - ]; -} - -// TallyParams defines the params for tallying votes on governance proposals. -message TallyParams { - // Minimum percentage of total stake needed to vote for a result to be - // considered valid. - bytes quorum = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false, - (gogoproto.jsontag) = "quorum,omitempty" - ]; - - // Minimum proportion of Yes votes for proposal to pass. Default value: 0.5. - bytes threshold = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false, - (gogoproto.jsontag) = "threshold,omitempty" - ]; - - // Minimum value of Veto votes to Total votes ratio for proposal to be - // vetoed. Default value: 1/3. - bytes veto_threshold = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false, - (gogoproto.jsontag) = "veto_threshold,omitempty", - (gogoproto.moretags) = "yaml:\"veto_threshold\"" - ]; -} diff --git a/third_party/proto/cosmos/gov/v1beta1/query.proto b/third_party/proto/cosmos/gov/v1beta1/query.proto deleted file mode 100644 index da62bdba..00000000 --- a/third_party/proto/cosmos/gov/v1beta1/query.proto +++ /dev/null @@ -1,190 +0,0 @@ -syntax = "proto3"; -package cosmos.gov.v1beta1; - -import "cosmos/base/query/v1beta1/pagination.proto"; -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/gov/v1beta1/gov.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; - -// Query defines the gRPC querier service for gov module -service Query { - // Proposal queries proposal details based on ProposalID. - rpc Proposal(QueryProposalRequest) returns (QueryProposalResponse) { - option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}"; - } - - // Proposals queries all proposals based on given status. - rpc Proposals(QueryProposalsRequest) returns (QueryProposalsResponse) { - option (google.api.http).get = "/cosmos/gov/v1beta1/proposals"; - } - - // Vote queries voted information based on proposalID, voterAddr. - rpc Vote(QueryVoteRequest) returns (QueryVoteResponse) { - option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/votes/{voter}"; - } - - // Votes queries votes of a given proposal. - rpc Votes(QueryVotesRequest) returns (QueryVotesResponse) { - option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/votes"; - } - - // Params queries all parameters of the gov module. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmos/gov/v1beta1/params/{params_type}"; - } - - // Deposit queries single deposit information based proposalID, depositAddr. - rpc Deposit(QueryDepositRequest) returns (QueryDepositResponse) { - option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits/{depositor}"; - } - - // Deposits queries all deposits of a single proposal. - rpc Deposits(QueryDepositsRequest) returns (QueryDepositsResponse) { - option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/deposits"; - } - - // TallyResult queries the tally of a proposal vote. - rpc TallyResult(QueryTallyResultRequest) returns (QueryTallyResultResponse) { - option (google.api.http).get = "/cosmos/gov/v1beta1/proposals/{proposal_id}/tally"; - } -} - -// QueryProposalRequest is the request type for the Query/Proposal RPC method. -message QueryProposalRequest { - // proposal_id defines the unique id of the proposal. - uint64 proposal_id = 1; -} - -// QueryProposalResponse is the response type for the Query/Proposal RPC method. -message QueryProposalResponse { - Proposal proposal = 1 [(gogoproto.nullable) = false]; -} - -// QueryProposalsRequest is the request type for the Query/Proposals RPC method. -message QueryProposalsRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // proposal_status defines the status of the proposals. - ProposalStatus proposal_status = 1; - - // voter defines the voter address for the proposals. - string voter = 2; - - // depositor defines the deposit addresses from the proposals. - string depositor = 3; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 4; -} - -// QueryProposalsResponse is the response type for the Query/Proposals RPC -// method. -message QueryProposalsResponse { - repeated Proposal proposals = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryVoteRequest is the request type for the Query/Vote RPC method. -message QueryVoteRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // proposal_id defines the unique id of the proposal. - uint64 proposal_id = 1; - - // voter defines the oter address for the proposals. - string voter = 2; -} - -// QueryVoteResponse is the response type for the Query/Vote RPC method. -message QueryVoteResponse { - // vote defined the queried vote. - Vote vote = 1 [(gogoproto.nullable) = false]; -} - -// QueryVotesRequest is the request type for the Query/Votes RPC method. -message QueryVotesRequest { - // proposal_id defines the unique id of the proposal. - uint64 proposal_id = 1; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryVotesResponse is the response type for the Query/Votes RPC method. -message QueryVotesResponse { - // votes defined the queried votes. - repeated Vote votes = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryParamsRequest is the request type for the Query/Params RPC method. -message QueryParamsRequest { - // params_type defines which parameters to query for, can be one of "voting", - // "tallying" or "deposit". - string params_type = 1; -} - -// QueryParamsResponse is the response type for the Query/Params RPC method. -message QueryParamsResponse { - // voting_params defines the parameters related to voting. - VotingParams voting_params = 1 [(gogoproto.nullable) = false]; - // deposit_params defines the parameters related to deposit. - DepositParams deposit_params = 2 [(gogoproto.nullable) = false]; - // tally_params defines the parameters related to tally. - TallyParams tally_params = 3 [(gogoproto.nullable) = false]; -} - -// QueryDepositRequest is the request type for the Query/Deposit RPC method. -message QueryDepositRequest { - option (gogoproto.goproto_getters) = false; - option (gogoproto.equal) = false; - - // proposal_id defines the unique id of the proposal. - uint64 proposal_id = 1; - - // depositor defines the deposit addresses from the proposals. - string depositor = 2; -} - -// QueryDepositResponse is the response type for the Query/Deposit RPC method. -message QueryDepositResponse { - // deposit defines the requested deposit. - Deposit deposit = 1 [(gogoproto.nullable) = false]; -} - -// QueryDepositsRequest is the request type for the Query/Deposits RPC method. -message QueryDepositsRequest { - // proposal_id defines the unique id of the proposal. - uint64 proposal_id = 1; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryDepositsResponse is the response type for the Query/Deposits RPC method. -message QueryDepositsResponse { - repeated Deposit deposits = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryTallyResultRequest is the request type for the Query/Tally RPC method. -message QueryTallyResultRequest { - // proposal_id defines the unique id of the proposal. - uint64 proposal_id = 1; -} - -// QueryTallyResultResponse is the response type for the Query/Tally RPC method. -message QueryTallyResultResponse { - // tally defines the requested tally. - TallyResult tally = 1 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/gov/v1beta1/tx.proto b/third_party/proto/cosmos/gov/v1beta1/tx.proto deleted file mode 100644 index ecb1cdfe..00000000 --- a/third_party/proto/cosmos/gov/v1beta1/tx.proto +++ /dev/null @@ -1,93 +0,0 @@ -syntax = "proto3"; -package cosmos.gov.v1beta1; - -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/gov/v1beta1/gov.proto"; -import "cosmos_proto/cosmos.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/gov/types"; - -// Msg defines the bank Msg service. -service Msg { - // SubmitProposal defines a method to create new proposal given a content. - rpc SubmitProposal(MsgSubmitProposal) returns (MsgSubmitProposalResponse); - - // Vote defines a method to add a vote on a specific proposal. - rpc Vote(MsgVote) returns (MsgVoteResponse); - - // VoteWeighted defines a method to add a weighted vote on a specific proposal. - rpc VoteWeighted(MsgVoteWeighted) returns (MsgVoteWeightedResponse); - - // Deposit defines a method to add deposit on a specific proposal. - rpc Deposit(MsgDeposit) returns (MsgDepositResponse); -} - -// MsgSubmitProposal defines an sdk.Msg type that supports submitting arbitrary -// proposal Content. -message MsgSubmitProposal { - option (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = false; - option (gogoproto.goproto_getters) = false; - - google.protobuf.Any content = 1 [(cosmos_proto.accepts_interface) = "Content"]; - repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", - (gogoproto.moretags) = "yaml:\"initial_deposit\"" - ]; - string proposer = 3; -} - -// MsgSubmitProposalResponse defines the Msg/SubmitProposal response type. -message MsgSubmitProposalResponse { - uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (gogoproto.moretags) = "yaml:\"proposal_id\""]; -} - -// MsgVote defines a message to cast a vote. -message MsgVote { - option (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = false; - option (gogoproto.goproto_getters) = false; - - uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (gogoproto.moretags) = "yaml:\"proposal_id\""]; - string voter = 2; - VoteOption option = 3; -} - -// MsgVoteResponse defines the Msg/Vote response type. -message MsgVoteResponse {} - -// MsgVoteWeighted defines a message to cast a vote. -message MsgVoteWeighted { - option (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = false; - option (gogoproto.goproto_getters) = false; - - uint64 proposal_id = 1 [(gogoproto.moretags) = "yaml:\"proposal_id\""]; - string voter = 2; - repeated WeightedVoteOption options = 3 [(gogoproto.nullable) = false]; -} - -// MsgVoteWeightedResponse defines the Msg/VoteWeighted response type. -message MsgVoteWeightedResponse {} - -// MsgDeposit defines a message to submit a deposit to an existing proposal. -message MsgDeposit { - option (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = false; - option (gogoproto.goproto_getters) = false; - - uint64 proposal_id = 1 [(gogoproto.jsontag) = "proposal_id", (gogoproto.moretags) = "yaml:\"proposal_id\""]; - string depositor = 2; - repeated cosmos.base.v1beta1.Coin amount = 3 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// MsgDepositResponse defines the Msg/Deposit response type. -message MsgDepositResponse {} diff --git a/third_party/proto/cosmos/mint/v1beta1/genesis.proto b/third_party/proto/cosmos/mint/v1beta1/genesis.proto deleted file mode 100644 index 4e783fb5..00000000 --- a/third_party/proto/cosmos/mint/v1beta1/genesis.proto +++ /dev/null @@ -1,16 +0,0 @@ -syntax = "proto3"; -package cosmos.mint.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/mint/v1beta1/mint.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; - -// GenesisState defines the mint module's genesis state. -message GenesisState { - // minter is a space for holding current inflation information. - Minter minter = 1 [(gogoproto.nullable) = false]; - - // params defines all the paramaters of the module. - Params params = 2 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/mint/v1beta1/mint.proto b/third_party/proto/cosmos/mint/v1beta1/mint.proto deleted file mode 100644 index f94d4ae2..00000000 --- a/third_party/proto/cosmos/mint/v1beta1/mint.proto +++ /dev/null @@ -1,53 +0,0 @@ -syntax = "proto3"; -package cosmos.mint.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; - -import "gogoproto/gogo.proto"; - -// Minter represents the minting state. -message Minter { - // current annual inflation rate - string inflation = 1 - [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; - // current annual expected provisions - string annual_provisions = 2 [ - (gogoproto.moretags) = "yaml:\"annual_provisions\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; -} - -// Params holds parameters for the mint module. -message Params { - option (gogoproto.goproto_stringer) = false; - - // type of coin to mint - string mint_denom = 1; - // maximum annual change in inflation rate - string inflation_rate_change = 2 [ - (gogoproto.moretags) = "yaml:\"inflation_rate_change\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - // maximum inflation rate - string inflation_max = 3 [ - (gogoproto.moretags) = "yaml:\"inflation_max\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - // minimum inflation rate - string inflation_min = 4 [ - (gogoproto.moretags) = "yaml:\"inflation_min\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - // goal of percent bonded atoms - string goal_bonded = 5 [ - (gogoproto.moretags) = "yaml:\"goal_bonded\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - // expected blocks per year - uint64 blocks_per_year = 6 [(gogoproto.moretags) = "yaml:\"blocks_per_year\""]; -} diff --git a/third_party/proto/cosmos/mint/v1beta1/query.proto b/third_party/proto/cosmos/mint/v1beta1/query.proto deleted file mode 100644 index acd341d7..00000000 --- a/third_party/proto/cosmos/mint/v1beta1/query.proto +++ /dev/null @@ -1,57 +0,0 @@ -syntax = "proto3"; -package cosmos.mint.v1beta1; - -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/mint/v1beta1/mint.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/mint/types"; - -// Query provides defines the gRPC querier service. -service Query { - // Params returns the total set of minting parameters. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmos/mint/v1beta1/params"; - } - - // Inflation returns the current minting inflation value. - rpc Inflation(QueryInflationRequest) returns (QueryInflationResponse) { - option (google.api.http).get = "/cosmos/mint/v1beta1/inflation"; - } - - // AnnualProvisions current minting annual provisions value. - rpc AnnualProvisions(QueryAnnualProvisionsRequest) returns (QueryAnnualProvisionsResponse) { - option (google.api.http).get = "/cosmos/mint/v1beta1/annual_provisions"; - } -} - -// QueryParamsRequest is the request type for the Query/Params RPC method. -message QueryParamsRequest {} - -// QueryParamsResponse is the response type for the Query/Params RPC method. -message QueryParamsResponse { - // params defines the parameters of the module. - Params params = 1 [(gogoproto.nullable) = false]; -} - -// QueryInflationRequest is the request type for the Query/Inflation RPC method. -message QueryInflationRequest {} - -// QueryInflationResponse is the response type for the Query/Inflation RPC -// method. -message QueryInflationResponse { - // inflation is the current minting inflation value. - bytes inflation = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; -} - -// QueryAnnualProvisionsRequest is the request type for the -// Query/AnnualProvisions RPC method. -message QueryAnnualProvisionsRequest {} - -// QueryAnnualProvisionsResponse is the response type for the -// Query/AnnualProvisions RPC method. -message QueryAnnualProvisionsResponse { - // annual_provisions is the current minting annual provisions value. - bytes annual_provisions = 1 - [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/params/v1beta1/params.proto b/third_party/proto/cosmos/params/v1beta1/params.proto deleted file mode 100644 index 5382fd79..00000000 --- a/third_party/proto/cosmos/params/v1beta1/params.proto +++ /dev/null @@ -1,27 +0,0 @@ -syntax = "proto3"; -package cosmos.params.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/params/types/proposal"; -option (gogoproto.equal_all) = true; - -import "gogoproto/gogo.proto"; - -// ParameterChangeProposal defines a proposal to change one or more parameters. -message ParameterChangeProposal { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - string title = 1; - string description = 2; - repeated ParamChange changes = 3 [(gogoproto.nullable) = false]; -} - -// ParamChange defines an individual parameter change, for use in -// ParameterChangeProposal. -message ParamChange { - option (gogoproto.goproto_stringer) = false; - - string subspace = 1; - string key = 2; - string value = 3; -} diff --git a/third_party/proto/cosmos/params/v1beta1/query.proto b/third_party/proto/cosmos/params/v1beta1/query.proto deleted file mode 100644 index 1078e02a..00000000 --- a/third_party/proto/cosmos/params/v1beta1/query.proto +++ /dev/null @@ -1,32 +0,0 @@ -syntax = "proto3"; -package cosmos.params.v1beta1; - -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/params/v1beta1/params.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/params/types/proposal"; - -// Query defines the gRPC querier service. -service Query { - // Params queries a specific parameter of a module, given its subspace and - // key. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmos/params/v1beta1/params"; - } -} - -// QueryParamsRequest is request type for the Query/Params RPC method. -message QueryParamsRequest { - // subspace defines the module to query the parameter for. - string subspace = 1; - - // key defines the key of the parameter in the subspace. - string key = 2; -} - -// QueryParamsResponse is response type for the Query/Params RPC method. -message QueryParamsResponse { - // param defines the queried parameter. - ParamChange param = 1 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/slashing/v1beta1/genesis.proto b/third_party/proto/cosmos/slashing/v1beta1/genesis.proto deleted file mode 100644 index a7aebcfb..00000000 --- a/third_party/proto/cosmos/slashing/v1beta1/genesis.proto +++ /dev/null @@ -1,50 +0,0 @@ -syntax = "proto3"; -package cosmos.slashing.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; - -import "gogoproto/gogo.proto"; -import "cosmos/slashing/v1beta1/slashing.proto"; - -// GenesisState defines the slashing module's genesis state. -message GenesisState { - // params defines all the paramaters of related to deposit. - Params params = 1 [(gogoproto.nullable) = false]; - - // signing_infos represents a map between validator addresses and their - // signing infos. - repeated SigningInfo signing_infos = 2 - [(gogoproto.moretags) = "yaml:\"signing_infos\"", (gogoproto.nullable) = false]; - - // missed_blocks represents a map between validator addresses and their - // missed blocks. - repeated ValidatorMissedBlocks missed_blocks = 3 - [(gogoproto.moretags) = "yaml:\"missed_blocks\"", (gogoproto.nullable) = false]; -} - -// SigningInfo stores validator signing info of corresponding address. -message SigningInfo { - // address is the validator address. - string address = 1; - // validator_signing_info represents the signing info of this validator. - ValidatorSigningInfo validator_signing_info = 2 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"validator_signing_info\""]; -} - -// ValidatorMissedBlocks contains array of missed blocks of corresponding -// address. -message ValidatorMissedBlocks { - // address is the validator address. - string address = 1; - // missed_blocks is an array of missed blocks by the validator. - repeated MissedBlock missed_blocks = 2 - [(gogoproto.nullable) = false, (gogoproto.moretags) = "yaml:\"missed_blocks\""]; -} - -// MissedBlock contains height and missed status as boolean. -message MissedBlock { - // index is the height at which the block was missed. - int64 index = 1; - // missed is the missed status. - bool missed = 2; -} diff --git a/third_party/proto/cosmos/slashing/v1beta1/query.proto b/third_party/proto/cosmos/slashing/v1beta1/query.proto deleted file mode 100644 index 869049a0..00000000 --- a/third_party/proto/cosmos/slashing/v1beta1/query.proto +++ /dev/null @@ -1,63 +0,0 @@ -syntax = "proto3"; -package cosmos.slashing.v1beta1; - -import "cosmos/base/query/v1beta1/pagination.proto"; -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/slashing/v1beta1/slashing.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; - -// Query provides defines the gRPC querier service -service Query { - // Params queries the parameters of slashing module - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmos/slashing/v1beta1/params"; - } - - // SigningInfo queries the signing info of given cons address - rpc SigningInfo(QuerySigningInfoRequest) returns (QuerySigningInfoResponse) { - option (google.api.http).get = "/cosmos/slashing/v1beta1/signing_infos/{cons_address}"; - } - - // SigningInfos queries signing info of all validators - rpc SigningInfos(QuerySigningInfosRequest) returns (QuerySigningInfosResponse) { - option (google.api.http).get = "/cosmos/slashing/v1beta1/signing_infos"; - } -} - -// QueryParamsRequest is the request type for the Query/Params RPC method -message QueryParamsRequest {} - -// QueryParamsResponse is the response type for the Query/Params RPC method -message QueryParamsResponse { - Params params = 1 [(gogoproto.nullable) = false]; -} - -// QuerySigningInfoRequest is the request type for the Query/SigningInfo RPC -// method -message QuerySigningInfoRequest { - // cons_address is the address to query signing info of - string cons_address = 1; -} - -// QuerySigningInfoResponse is the response type for the Query/SigningInfo RPC -// method -message QuerySigningInfoResponse { - // val_signing_info is the signing info of requested val cons address - ValidatorSigningInfo val_signing_info = 1 [(gogoproto.nullable) = false]; -} - -// QuerySigningInfosRequest is the request type for the Query/SigningInfos RPC -// method -message QuerySigningInfosRequest { - cosmos.base.query.v1beta1.PageRequest pagination = 1; -} - -// QuerySigningInfosResponse is the response type for the Query/SigningInfos RPC -// method -message QuerySigningInfosResponse { - // info is the signing info of all validators - repeated cosmos.slashing.v1beta1.ValidatorSigningInfo info = 1 [(gogoproto.nullable) = false]; - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} diff --git a/third_party/proto/cosmos/slashing/v1beta1/slashing.proto b/third_party/proto/cosmos/slashing/v1beta1/slashing.proto deleted file mode 100644 index 882a0fb6..00000000 --- a/third_party/proto/cosmos/slashing/v1beta1/slashing.proto +++ /dev/null @@ -1,58 +0,0 @@ -syntax = "proto3"; -package cosmos.slashing.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; -option (gogoproto.equal_all) = true; - -import "gogoproto/gogo.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/timestamp.proto"; - -// ValidatorSigningInfo defines a validator's signing info for monitoring their -// liveness activity. -message ValidatorSigningInfo { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - string address = 1; - // Height at which validator was first a candidate OR was unjailed - int64 start_height = 2 [(gogoproto.moretags) = "yaml:\"start_height\""]; - // Index which is incremented each time the validator was a bonded - // in a block and may have signed a precommit or not. This in conjunction with the - // `SignedBlocksWindow` param determines the index in the `MissedBlocksBitArray`. - int64 index_offset = 3 [(gogoproto.moretags) = "yaml:\"index_offset\""]; - // Timestamp until which the validator is jailed due to liveness downtime. - google.protobuf.Timestamp jailed_until = 4 - [(gogoproto.moretags) = "yaml:\"jailed_until\"", (gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - // Whether or not a validator has been tombstoned (killed out of validator set). It is set - // once the validator commits an equivocation or for any other configured misbehiavor. - bool tombstoned = 5; - // A counter kept to avoid unnecessary array reads. - // Note that `Sum(MissedBlocksBitArray)` always equals `MissedBlocksCounter`. - int64 missed_blocks_counter = 6 [(gogoproto.moretags) = "yaml:\"missed_blocks_counter\""]; -} - -// Params represents the parameters used for by the slashing module. -message Params { - int64 signed_blocks_window = 1 [(gogoproto.moretags) = "yaml:\"signed_blocks_window\""]; - bytes min_signed_per_window = 2 [ - (gogoproto.moretags) = "yaml:\"min_signed_per_window\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - google.protobuf.Duration downtime_jail_duration = 3 [ - (gogoproto.nullable) = false, - (gogoproto.stdduration) = true, - (gogoproto.moretags) = "yaml:\"downtime_jail_duration\"" - ]; - bytes slash_fraction_double_sign = 4 [ - (gogoproto.moretags) = "yaml:\"slash_fraction_double_sign\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - bytes slash_fraction_downtime = 5 [ - (gogoproto.moretags) = "yaml:\"slash_fraction_downtime\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; -} diff --git a/third_party/proto/cosmos/slashing/v1beta1/tx.proto b/third_party/proto/cosmos/slashing/v1beta1/tx.proto deleted file mode 100644 index 4d63370e..00000000 --- a/third_party/proto/cosmos/slashing/v1beta1/tx.proto +++ /dev/null @@ -1,26 +0,0 @@ -syntax = "proto3"; -package cosmos.slashing.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/slashing/types"; -option (gogoproto.equal_all) = true; - -import "gogoproto/gogo.proto"; - -// Msg defines the slashing Msg service. -service Msg { - // Unjail defines a method for unjailing a jailed validator, thus returning - // them into the bonded validator set, so they can begin receiving provisions - // and rewards again. - rpc Unjail(MsgUnjail) returns (MsgUnjailResponse); -} - -// MsgUnjail defines the Msg/Unjail request type -message MsgUnjail { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = true; - - string validator_addr = 1 [(gogoproto.moretags) = "yaml:\"address\"", (gogoproto.jsontag) = "address"]; -} - -// MsgUnjailResponse defines the Msg/Unjail response type -message MsgUnjailResponse {} \ No newline at end of file diff --git a/third_party/proto/cosmos/staking/v1beta1/authz.proto b/third_party/proto/cosmos/staking/v1beta1/authz.proto deleted file mode 100644 index 6345612f..00000000 --- a/third_party/proto/cosmos/staking/v1beta1/authz.proto +++ /dev/null @@ -1,43 +0,0 @@ -syntax = "proto3"; -package cosmos.staking.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; - -// StakeAuthorization defines authorization for delegate/undelegate/redelegate. -message StakeAuthorization { - option (cosmos_proto.implements_interface) = "Authorization"; - - // max_tokens specifies the maximum amount of tokens can be delegate to a validator. If it is - // empty, there is no spend limit and any amount of coins can be delegated. - cosmos.base.v1beta1.Coin max_tokens = 1 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin"]; - // validators is the oneof that represents either allow_list or deny_list - oneof validators { - // allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's - // account. - Validators allow_list = 2; - // deny_list specifies list of validator addresses to whom grantee can not delegate tokens. - Validators deny_list = 3; - } - // Validators defines list of validator addresses. - message Validators { - repeated string address = 1; - } - // authorization_type defines one of AuthorizationType. - AuthorizationType authorization_type = 4; -} - -// AuthorizationType defines the type of staking module authorization type -enum AuthorizationType { - // AUTHORIZATION_TYPE_UNSPECIFIED specifies an unknown authorization type - AUTHORIZATION_TYPE_UNSPECIFIED = 0; - // AUTHORIZATION_TYPE_DELEGATE defines an authorization type for Msg/Delegate - AUTHORIZATION_TYPE_DELEGATE = 1; - // AUTHORIZATION_TYPE_UNDELEGATE defines an authorization type for Msg/Undelegate - AUTHORIZATION_TYPE_UNDELEGATE = 2; - // AUTHORIZATION_TYPE_REDELEGATE defines an authorization type for Msg/BeginRedelegate - AUTHORIZATION_TYPE_REDELEGATE = 3; -} diff --git a/third_party/proto/cosmos/staking/v1beta1/genesis.proto b/third_party/proto/cosmos/staking/v1beta1/genesis.proto deleted file mode 100644 index d1563dbc..00000000 --- a/third_party/proto/cosmos/staking/v1beta1/genesis.proto +++ /dev/null @@ -1,53 +0,0 @@ -syntax = "proto3"; -package cosmos.staking.v1beta1; - -option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; - -import "gogoproto/gogo.proto"; -import "cosmos/staking/v1beta1/staking.proto"; - -// GenesisState defines the staking module's genesis state. -message GenesisState { - // params defines all the paramaters of related to deposit. - Params params = 1 [(gogoproto.nullable) = false]; - - // last_total_power tracks the total amounts of bonded tokens recorded during - // the previous end block. - bytes last_total_power = 2 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.moretags) = "yaml:\"last_total_power\"", - (gogoproto.nullable) = false - ]; - - // last_validator_powers is a special index that provides a historical list - // of the last-block's bonded validators. - repeated LastValidatorPower last_validator_powers = 3 - [(gogoproto.moretags) = "yaml:\"last_validator_powers\"", (gogoproto.nullable) = false]; - - // delegations defines the validator set at genesis. - repeated Validator validators = 4 [(gogoproto.nullable) = false]; - - // delegations defines the delegations active at genesis. - repeated Delegation delegations = 5 [(gogoproto.nullable) = false]; - - // unbonding_delegations defines the unbonding delegations active at genesis. - repeated UnbondingDelegation unbonding_delegations = 6 - [(gogoproto.moretags) = "yaml:\"unbonding_delegations\"", (gogoproto.nullable) = false]; - - // redelegations defines the redelegations active at genesis. - repeated Redelegation redelegations = 7 [(gogoproto.nullable) = false]; - - bool exported = 8; -} - -// LastValidatorPower required for validator set update logic. -message LastValidatorPower { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // address is the address of the validator. - string address = 1; - - // power defines the power of the validator. - int64 power = 2; -} diff --git a/third_party/proto/cosmos/staking/v1beta1/query.proto b/third_party/proto/cosmos/staking/v1beta1/query.proto deleted file mode 100644 index 4852c535..00000000 --- a/third_party/proto/cosmos/staking/v1beta1/query.proto +++ /dev/null @@ -1,348 +0,0 @@ -syntax = "proto3"; -package cosmos.staking.v1beta1; - -import "cosmos/base/query/v1beta1/pagination.proto"; -import "gogoproto/gogo.proto"; -import "google/api/annotations.proto"; -import "cosmos/staking/v1beta1/staking.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; - -// Query defines the gRPC querier service. -service Query { - // Validators queries all validators that match the given status. - rpc Validators(QueryValidatorsRequest) returns (QueryValidatorsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/validators"; - } - - // Validator queries validator info for given validator address. - rpc Validator(QueryValidatorRequest) returns (QueryValidatorResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}"; - } - - // ValidatorDelegations queries delegate info for given validator. - rpc ValidatorDelegations(QueryValidatorDelegationsRequest) returns (QueryValidatorDelegationsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations"; - } - - // ValidatorUnbondingDelegations queries unbonding delegations of a validator. - rpc ValidatorUnbondingDelegations(QueryValidatorUnbondingDelegationsRequest) - returns (QueryValidatorUnbondingDelegationsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/validators/" - "{validator_addr}/unbonding_delegations"; - } - - // Delegation queries delegate info for given validator delegator pair. - rpc Delegation(QueryDelegationRequest) returns (QueryDelegationResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/" - "{delegator_addr}"; - } - - // UnbondingDelegation queries unbonding info for given validator delegator - // pair. - rpc UnbondingDelegation(QueryUnbondingDelegationRequest) returns (QueryUnbondingDelegationResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/validators/{validator_addr}/delegations/" - "{delegator_addr}/unbonding_delegation"; - } - - // DelegatorDelegations queries all delegations of a given delegator address. - rpc DelegatorDelegations(QueryDelegatorDelegationsRequest) returns (QueryDelegatorDelegationsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/delegations/{delegator_addr}"; - } - - // DelegatorUnbondingDelegations queries all unbonding delegations of a given - // delegator address. - rpc DelegatorUnbondingDelegations(QueryDelegatorUnbondingDelegationsRequest) - returns (QueryDelegatorUnbondingDelegationsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/" - "{delegator_addr}/unbonding_delegations"; - } - - // Redelegations queries redelegations of given address. - rpc Redelegations(QueryRedelegationsRequest) returns (QueryRedelegationsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/redelegations"; - } - - // DelegatorValidators queries all validators info for given delegator - // address. - rpc DelegatorValidators(QueryDelegatorValidatorsRequest) returns (QueryDelegatorValidatorsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators"; - } - - // DelegatorValidator queries validator info for given delegator validator - // pair. - rpc DelegatorValidator(QueryDelegatorValidatorRequest) returns (QueryDelegatorValidatorResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/delegators/{delegator_addr}/validators/" - "{validator_addr}"; - } - - // HistoricalInfo queries the historical info for given height. - rpc HistoricalInfo(QueryHistoricalInfoRequest) returns (QueryHistoricalInfoResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/historical_info/{height}"; - } - - // Pool queries the pool info. - rpc Pool(QueryPoolRequest) returns (QueryPoolResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/pool"; - } - - // Parameters queries the staking parameters. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = "/cosmos/staking/v1beta1/params"; - } -} - -// QueryValidatorsRequest is request type for Query/Validators RPC method. -message QueryValidatorsRequest { - // status enables to query for validators matching a given status. - string status = 1; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryValidatorsResponse is response type for the Query/Validators RPC method -message QueryValidatorsResponse { - // validators contains all the queried validators. - repeated Validator validators = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryValidatorRequest is response type for the Query/Validator RPC method -message QueryValidatorRequest { - // validator_addr defines the validator address to query for. - string validator_addr = 1; -} - -// QueryValidatorResponse is response type for the Query/Validator RPC method -message QueryValidatorResponse { - // validator defines the the validator info. - Validator validator = 1 [(gogoproto.nullable) = false]; -} - -// QueryValidatorDelegationsRequest is request type for the -// Query/ValidatorDelegations RPC method -message QueryValidatorDelegationsRequest { - // validator_addr defines the validator address to query for. - string validator_addr = 1; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryValidatorDelegationsResponse is response type for the -// Query/ValidatorDelegations RPC method -message QueryValidatorDelegationsResponse { - repeated DelegationResponse delegation_responses = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "DelegationResponses"]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryValidatorUnbondingDelegationsRequest is required type for the -// Query/ValidatorUnbondingDelegations RPC method -message QueryValidatorUnbondingDelegationsRequest { - // validator_addr defines the validator address to query for. - string validator_addr = 1; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryValidatorUnbondingDelegationsResponse is response type for the -// Query/ValidatorUnbondingDelegations RPC method. -message QueryValidatorUnbondingDelegationsResponse { - repeated UnbondingDelegation unbonding_responses = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryDelegationRequest is request type for the Query/Delegation RPC method. -message QueryDelegationRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_addr defines the delegator address to query for. - string delegator_addr = 1; - - // validator_addr defines the validator address to query for. - string validator_addr = 2; -} - -// QueryDelegationResponse is response type for the Query/Delegation RPC method. -message QueryDelegationResponse { - // delegation_responses defines the delegation info of a delegation. - DelegationResponse delegation_response = 1; -} - -// QueryUnbondingDelegationRequest is request type for the -// Query/UnbondingDelegation RPC method. -message QueryUnbondingDelegationRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_addr defines the delegator address to query for. - string delegator_addr = 1; - - // validator_addr defines the validator address to query for. - string validator_addr = 2; -} - -// QueryDelegationResponse is response type for the Query/UnbondingDelegation -// RPC method. -message QueryUnbondingDelegationResponse { - // unbond defines the unbonding information of a delegation. - UnbondingDelegation unbond = 1 [(gogoproto.nullable) = false]; -} - -// QueryDelegatorDelegationsRequest is request type for the -// Query/DelegatorDelegations RPC method. -message QueryDelegatorDelegationsRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_addr defines the delegator address to query for. - string delegator_addr = 1; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryDelegatorDelegationsResponse is response type for the -// Query/DelegatorDelegations RPC method. -message QueryDelegatorDelegationsResponse { - // delegation_responses defines all the delegations' info of a delegator. - repeated DelegationResponse delegation_responses = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryDelegatorUnbondingDelegationsRequest is request type for the -// Query/DelegatorUnbondingDelegations RPC method. -message QueryDelegatorUnbondingDelegationsRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_addr defines the delegator address to query for. - string delegator_addr = 1; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryUnbondingDelegatorDelegationsResponse is response type for the -// Query/UnbondingDelegatorDelegations RPC method. -message QueryDelegatorUnbondingDelegationsResponse { - repeated UnbondingDelegation unbonding_responses = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryRedelegationsRequest is request type for the Query/Redelegations RPC -// method. -message QueryRedelegationsRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_addr defines the delegator address to query for. - string delegator_addr = 1; - - // src_validator_addr defines the validator address to redelegate from. - string src_validator_addr = 2; - - // dst_validator_addr defines the validator address to redelegate to. - string dst_validator_addr = 3; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 4; -} - -// QueryRedelegationsResponse is response type for the Query/Redelegations RPC -// method. -message QueryRedelegationsResponse { - repeated RedelegationResponse redelegation_responses = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryDelegatorValidatorsRequest is request type for the -// Query/DelegatorValidators RPC method. -message QueryDelegatorValidatorsRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_addr defines the delegator address to query for. - string delegator_addr = 1; - - // pagination defines an optional pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; -} - -// QueryDelegatorValidatorsResponse is response type for the -// Query/DelegatorValidators RPC method. -message QueryDelegatorValidatorsResponse { - // validators defines the the validators' info of a delegator. - repeated Validator validators = 1 [(gogoproto.nullable) = false]; - - // pagination defines the pagination in the response. - cosmos.base.query.v1beta1.PageResponse pagination = 2; -} - -// QueryDelegatorValidatorRequest is request type for the -// Query/DelegatorValidator RPC method. -message QueryDelegatorValidatorRequest { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - // delegator_addr defines the delegator address to query for. - string delegator_addr = 1; - - // validator_addr defines the validator address to query for. - string validator_addr = 2; -} - -// QueryDelegatorValidatorResponse response type for the -// Query/DelegatorValidator RPC method. -message QueryDelegatorValidatorResponse { - // validator defines the the validator info. - Validator validator = 1 [(gogoproto.nullable) = false]; -} - -// QueryHistoricalInfoRequest is request type for the Query/HistoricalInfo RPC -// method. -message QueryHistoricalInfoRequest { - // height defines at which height to query the historical info. - int64 height = 1; -} - -// QueryHistoricalInfoResponse is response type for the Query/HistoricalInfo RPC -// method. -message QueryHistoricalInfoResponse { - // hist defines the historical info at the given height. - HistoricalInfo hist = 1; -} - -// QueryPoolRequest is request type for the Query/Pool RPC method. -message QueryPoolRequest {} - -// QueryPoolResponse is response type for the Query/Pool RPC method. -message QueryPoolResponse { - // pool defines the pool info. - Pool pool = 1 [(gogoproto.nullable) = false]; -} - -// QueryParamsRequest is request type for the Query/Params RPC method. -message QueryParamsRequest {} - -// QueryParamsResponse is response type for the Query/Params RPC method. -message QueryParamsResponse { - // params holds all the parameters of this module. - Params params = 1 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/cosmos/staking/v1beta1/staking.proto b/third_party/proto/cosmos/staking/v1beta1/staking.proto deleted file mode 100644 index 745d87bc..00000000 --- a/third_party/proto/cosmos/staking/v1beta1/staking.proto +++ /dev/null @@ -1,337 +0,0 @@ -syntax = "proto3"; -package cosmos.staking.v1beta1; - -import "gogoproto/gogo.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/timestamp.proto"; - -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "tendermint/types/types.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; - -// HistoricalInfo contains header and validator information for a given block. -// It is stored as part of staking module's state, which persists the `n` most -// recent HistoricalInfo -// (`n` is set by the staking module's `historical_entries` parameter). -message HistoricalInfo { - tendermint.types.Header header = 1 [(gogoproto.nullable) = false]; - repeated Validator valset = 2 [(gogoproto.nullable) = false]; -} - -// CommissionRates defines the initial commission rates to be used for creating -// a validator. -message CommissionRates { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // rate is the commission rate charged to delegators, as a fraction. - string rate = 1 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; - // max_rate defines the maximum commission rate which validator can ever charge, as a fraction. - string max_rate = 2 [ - (gogoproto.moretags) = "yaml:\"max_rate\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - // max_change_rate defines the maximum daily increase of the validator commission, as a fraction. - string max_change_rate = 3 [ - (gogoproto.moretags) = "yaml:\"max_change_rate\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; -} - -// Commission defines commission parameters for a given validator. -message Commission { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // commission_rates defines the initial commission rates to be used for creating a validator. - CommissionRates commission_rates = 1 [(gogoproto.embed) = true, (gogoproto.nullable) = false]; - // update_time is the last time the commission rate was changed. - google.protobuf.Timestamp update_time = 2 - [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"update_time\""]; -} - -// Description defines a validator description. -message Description { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // moniker defines a human-readable name for the validator. - string moniker = 1; - // identity defines an optional identity signature (ex. UPort or Keybase). - string identity = 2; - // website defines an optional website link. - string website = 3; - // security_contact defines an optional email for security contact. - string security_contact = 4 [(gogoproto.moretags) = "yaml:\"security_contact\""]; - // details define other optional details. - string details = 5; -} - -// Validator defines a validator, together with the total amount of the -// Validator's bond shares and their exchange rate to coins. Slashing results in -// a decrease in the exchange rate, allowing correct calculation of future -// undelegations without iterating over delegators. When coins are delegated to -// this validator, the validator is credited with a delegation whose number of -// bond shares is based on the amount of coins delegated divided by the current -// exchange rate. Voting power can be calculated as total bonded shares -// multiplied by exchange rate. -message Validator { - option (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - option (gogoproto.goproto_getters) = false; - - // operator_address defines the address of the validator's operator; bech encoded in JSON. - string operator_address = 1 [(gogoproto.moretags) = "yaml:\"operator_address\""]; - // consensus_pubkey is the consensus public key of the validator, as a Protobuf Any. - google.protobuf.Any consensus_pubkey = 2 - [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey", (gogoproto.moretags) = "yaml:\"consensus_pubkey\""]; - // jailed defined whether the validator has been jailed from bonded status or not. - bool jailed = 3; - // status is the validator status (bonded/unbonding/unbonded). - BondStatus status = 4; - // tokens define the delegated tokens (incl. self-delegation). - string tokens = 5 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; - // delegator_shares defines total shares issued to a validator's delegators. - string delegator_shares = 6 [ - (gogoproto.moretags) = "yaml:\"delegator_shares\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false - ]; - // description defines the description terms for the validator. - Description description = 7 [(gogoproto.nullable) = false]; - // unbonding_height defines, if unbonding, the height at which this validator has begun unbonding. - int64 unbonding_height = 8 [(gogoproto.moretags) = "yaml:\"unbonding_height\""]; - // unbonding_time defines, if unbonding, the min time for the validator to complete unbonding. - google.protobuf.Timestamp unbonding_time = 9 - [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"unbonding_time\""]; - // commission defines the commission parameters. - Commission commission = 10 [(gogoproto.nullable) = false]; - // min_self_delegation is the validator's self declared minimum self delegation. - string min_self_delegation = 11 [ - (gogoproto.moretags) = "yaml:\"min_self_delegation\"", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false - ]; -} - -// BondStatus is the status of a validator. -enum BondStatus { - option (gogoproto.goproto_enum_prefix) = false; - - // UNSPECIFIED defines an invalid validator status. - BOND_STATUS_UNSPECIFIED = 0 [(gogoproto.enumvalue_customname) = "Unspecified"]; - // UNBONDED defines a validator that is not bonded. - BOND_STATUS_UNBONDED = 1 [(gogoproto.enumvalue_customname) = "Unbonded"]; - // UNBONDING defines a validator that is unbonding. - BOND_STATUS_UNBONDING = 2 [(gogoproto.enumvalue_customname) = "Unbonding"]; - // BONDED defines a validator that is bonded. - BOND_STATUS_BONDED = 3 [(gogoproto.enumvalue_customname) = "Bonded"]; - - - -} - -// ValAddresses defines a repeated set of validator addresses. -message ValAddresses { - option (gogoproto.goproto_stringer) = false; - option (gogoproto.stringer) = true; - - repeated string addresses = 1; -} - -// DVPair is struct that just has a delegator-validator pair with no other data. -// It is intended to be used as a marshalable pointer. For example, a DVPair can -// be used to construct the key to getting an UnbondingDelegation from state. -message DVPair { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; -} - -// DVPairs defines an array of DVPair objects. -message DVPairs { - repeated DVPair pairs = 1 [(gogoproto.nullable) = false]; -} - -// DVVTriplet is struct that just has a delegator-validator-validator triplet -// with no other data. It is intended to be used as a marshalable pointer. For -// example, a DVVTriplet can be used to construct the key to getting a -// Redelegation from state. -message DVVTriplet { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""]; - string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""]; -} - -// DVVTriplets defines an array of DVVTriplet objects. -message DVVTriplets { - repeated DVVTriplet triplets = 1 [(gogoproto.nullable) = false]; -} - -// Delegation represents the bond with tokens held by an account. It is -// owned by one delegator, and is associated with the voting power of one -// validator. -message Delegation { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - // delegator_address is the bech32-encoded address of the delegator. - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - // validator_address is the bech32-encoded address of the validator. - string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - // shares define the delegation shares received. - string shares = 3 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; -} - -// UnbondingDelegation stores all of a single delegator's unbonding bonds -// for a single validator in an time-ordered list. -message UnbondingDelegation { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - // delegator_address is the bech32-encoded address of the delegator. - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - // validator_address is the bech32-encoded address of the validator. - string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - // entries are the unbonding delegation entries. - repeated UnbondingDelegationEntry entries = 3 [(gogoproto.nullable) = false]; // unbonding delegation entries -} - -// UnbondingDelegationEntry defines an unbonding object with relevant metadata. -message UnbondingDelegationEntry { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // creation_height is the height which the unbonding took place. - int64 creation_height = 1 [(gogoproto.moretags) = "yaml:\"creation_height\""]; - // completion_time is the unix time for unbonding completion. - google.protobuf.Timestamp completion_time = 2 - [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"completion_time\""]; - // initial_balance defines the tokens initially scheduled to receive at completion. - string initial_balance = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false, - (gogoproto.moretags) = "yaml:\"initial_balance\"" - ]; - // balance defines the tokens to receive at completion. - string balance = 4 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; -} - -// RedelegationEntry defines a redelegation object with relevant metadata. -message RedelegationEntry { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // creation_height defines the height which the redelegation took place. - int64 creation_height = 1 [(gogoproto.moretags) = "yaml:\"creation_height\""]; - // completion_time defines the unix time for redelegation completion. - google.protobuf.Timestamp completion_time = 2 - [(gogoproto.nullable) = false, (gogoproto.stdtime) = true, (gogoproto.moretags) = "yaml:\"completion_time\""]; - // initial_balance defines the initial balance when redelegation started. - string initial_balance = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false, - (gogoproto.moretags) = "yaml:\"initial_balance\"" - ]; - // shares_dst is the amount of destination-validator shares created by redelegation. - string shares_dst = 4 - [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false]; -} - -// Redelegation contains the list of a particular delegator's redelegating bonds -// from a particular source validator to a particular destination validator. -message Redelegation { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - // delegator_address is the bech32-encoded address of the delegator. - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - // validator_src_address is the validator redelegation source operator address. - string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""]; - // validator_dst_address is the validator redelegation destination operator address. - string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""]; - // entries are the redelegation entries. - repeated RedelegationEntry entries = 4 [(gogoproto.nullable) = false]; // redelegation entries -} - -// Params defines the parameters for the staking module. -message Params { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // unbonding_time is the time duration of unbonding. - google.protobuf.Duration unbonding_time = 1 - [(gogoproto.nullable) = false, (gogoproto.stdduration) = true, (gogoproto.moretags) = "yaml:\"unbonding_time\""]; - // max_validators is the maximum number of validators. - uint32 max_validators = 2 [(gogoproto.moretags) = "yaml:\"max_validators\""]; - // max_entries is the max entries for either unbonding delegation or redelegation (per pair/trio). - uint32 max_entries = 3 [(gogoproto.moretags) = "yaml:\"max_entries\""]; - // historical_entries is the number of historical entries to persist. - uint32 historical_entries = 4 [(gogoproto.moretags) = "yaml:\"historical_entries\""]; - // bond_denom defines the bondable coin denomination. - string bond_denom = 5 [(gogoproto.moretags) = "yaml:\"bond_denom\""]; -} - -// DelegationResponse is equivalent to Delegation except that it contains a -// balance in addition to shares which is more suitable for client responses. -message DelegationResponse { - option (gogoproto.equal) = false; - option (gogoproto.goproto_stringer) = false; - - Delegation delegation = 1 [(gogoproto.nullable) = false]; - - cosmos.base.v1beta1.Coin balance = 2 [(gogoproto.nullable) = false]; -} - -// RedelegationEntryResponse is equivalent to a RedelegationEntry except that it -// contains a balance in addition to shares which is more suitable for client -// responses. -message RedelegationEntryResponse { - option (gogoproto.equal) = true; - - RedelegationEntry redelegation_entry = 1 [(gogoproto.nullable) = false]; - string balance = 4 [(gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.nullable) = false]; -} - -// RedelegationResponse is equivalent to a Redelegation except that its entries -// contain a balance in addition to shares which is more suitable for client -// responses. -message RedelegationResponse { - option (gogoproto.equal) = false; - - Redelegation redelegation = 1 [(gogoproto.nullable) = false]; - repeated RedelegationEntryResponse entries = 2 [(gogoproto.nullable) = false]; -} - -// Pool is used for tracking bonded and not-bonded token supply of the bond -// denomination. -message Pool { - option (gogoproto.description) = true; - option (gogoproto.equal) = true; - string not_bonded_tokens = 1 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "not_bonded_tokens", - (gogoproto.nullable) = false - ]; - string bonded_tokens = 2 [ - (gogoproto.jsontag) = "bonded_tokens", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false, - (gogoproto.moretags) = "yaml:\"bonded_tokens\"" - ]; -} diff --git a/third_party/proto/cosmos/staking/v1beta1/tx.proto b/third_party/proto/cosmos/staking/v1beta1/tx.proto deleted file mode 100644 index 7b05d89e..00000000 --- a/third_party/proto/cosmos/staking/v1beta1/tx.proto +++ /dev/null @@ -1,126 +0,0 @@ -syntax = "proto3"; -package cosmos.staking.v1beta1; - -import "google/protobuf/any.proto"; -import "google/protobuf/timestamp.proto"; -import "gogoproto/gogo.proto"; - -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/staking/v1beta1/staking.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/staking/types"; - -// Msg defines the staking Msg service. -service Msg { - // CreateValidator defines a method for creating a new validator. - rpc CreateValidator(MsgCreateValidator) returns (MsgCreateValidatorResponse); - - // EditValidator defines a method for editing an existing validator. - rpc EditValidator(MsgEditValidator) returns (MsgEditValidatorResponse); - - // Delegate defines a method for performing a delegation of coins - // from a delegator to a validator. - rpc Delegate(MsgDelegate) returns (MsgDelegateResponse); - - // BeginRedelegate defines a method for performing a redelegation - // of coins from a delegator and source validator to a destination validator. - rpc BeginRedelegate(MsgBeginRedelegate) returns (MsgBeginRedelegateResponse); - - // Undelegate defines a method for performing an undelegation from a - // delegate and a validator. - rpc Undelegate(MsgUndelegate) returns (MsgUndelegateResponse); -} - -// MsgCreateValidator defines a SDK message for creating a new validator. -message MsgCreateValidator { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - Description description = 1 [(gogoproto.nullable) = false]; - CommissionRates commission = 2 [(gogoproto.nullable) = false]; - string min_self_delegation = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.moretags) = "yaml:\"min_self_delegation\"", - (gogoproto.nullable) = false - ]; - string delegator_address = 4 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - string validator_address = 5 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - google.protobuf.Any pubkey = 6 [(cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey"]; - cosmos.base.v1beta1.Coin value = 7 [(gogoproto.nullable) = false]; -} - -// MsgCreateValidatorResponse defines the Msg/CreateValidator response type. -message MsgCreateValidatorResponse {} - -// MsgEditValidator defines a SDK message for editing an existing validator. -message MsgEditValidator { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - Description description = 1 [(gogoproto.nullable) = false]; - string validator_address = 2 [(gogoproto.moretags) = "yaml:\"address\""]; - - // We pass a reference to the new commission rate and min self delegation as - // it's not mandatory to update. If not updated, the deserialized rate will be - // zero with no way to distinguish if an update was intended. - // REF: #2373 - string commission_rate = 3 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.moretags) = "yaml:\"commission_rate\"" - ]; - string min_self_delegation = 4 [ - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.moretags) = "yaml:\"min_self_delegation\"" - ]; -} - -// MsgEditValidatorResponse defines the Msg/EditValidator response type. -message MsgEditValidatorResponse {} - -// MsgDelegate defines a SDK message for performing a delegation of coins -// from a delegator to a validator. -message MsgDelegate { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; -} - -// MsgDelegateResponse defines the Msg/Delegate response type. -message MsgDelegateResponse {} - -// MsgBeginRedelegate defines a SDK message for performing a redelegation -// of coins from a delegator and source validator to a destination validator. -message MsgBeginRedelegate { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - string validator_src_address = 2 [(gogoproto.moretags) = "yaml:\"validator_src_address\""]; - string validator_dst_address = 3 [(gogoproto.moretags) = "yaml:\"validator_dst_address\""]; - cosmos.base.v1beta1.Coin amount = 4 [(gogoproto.nullable) = false]; -} - -// MsgBeginRedelegateResponse defines the Msg/BeginRedelegate response type. -message MsgBeginRedelegateResponse { - google.protobuf.Timestamp completion_time = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; -} - -// MsgUndelegate defines a SDK message for performing an undelegation from a -// delegate and a validator. -message MsgUndelegate { - option (gogoproto.equal) = false; - option (gogoproto.goproto_getters) = false; - - string delegator_address = 1 [(gogoproto.moretags) = "yaml:\"delegator_address\""]; - string validator_address = 2 [(gogoproto.moretags) = "yaml:\"validator_address\""]; - cosmos.base.v1beta1.Coin amount = 3 [(gogoproto.nullable) = false]; -} - -// MsgUndelegateResponse defines the Msg/Undelegate response type. -message MsgUndelegateResponse { - google.protobuf.Timestamp completion_time = 1 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; -} diff --git a/third_party/proto/cosmos/tx/signing/v1beta1/signing.proto b/third_party/proto/cosmos/tx/signing/v1beta1/signing.proto deleted file mode 100644 index 4c1be405..00000000 --- a/third_party/proto/cosmos/tx/signing/v1beta1/signing.proto +++ /dev/null @@ -1,79 +0,0 @@ -syntax = "proto3"; -package cosmos.tx.signing.v1beta1; - -import "cosmos/crypto/multisig/v1beta1/multisig.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/types/tx/signing"; - -// SignMode represents a signing mode with its own security guarantees. -enum SignMode { - // SIGN_MODE_UNSPECIFIED specifies an unknown signing mode and will be - // rejected - SIGN_MODE_UNSPECIFIED = 0; - - // SIGN_MODE_DIRECT specifies a signing mode which uses SignDoc and is - // verified with raw bytes from Tx - SIGN_MODE_DIRECT = 1; - - // SIGN_MODE_TEXTUAL is a future signing mode that will verify some - // human-readable textual representation on top of the binary representation - // from SIGN_MODE_DIRECT - SIGN_MODE_TEXTUAL = 2; - - // SIGN_MODE_LEGACY_AMINO_JSON is a backwards compatibility mode which uses - // Amino JSON and will be removed in the future - SIGN_MODE_LEGACY_AMINO_JSON = 127; -} - -// SignatureDescriptors wraps multiple SignatureDescriptor's. -message SignatureDescriptors { - // signatures are the signature descriptors - repeated SignatureDescriptor signatures = 1; -} - -// SignatureDescriptor is a convenience type which represents the full data for -// a signature including the public key of the signer, signing modes and the -// signature itself. It is primarily used for coordinating signatures between -// clients. -message SignatureDescriptor { - // public_key is the public key of the signer - google.protobuf.Any public_key = 1; - - Data data = 2; - - // sequence is the sequence of the account, which describes the - // number of committed transactions signed by a given address. It is used to prevent - // replay attacks. - uint64 sequence = 3; - - // Data represents signature data - message Data { - // sum is the oneof that specifies whether this represents single or multi-signature data - oneof sum { - // single represents a single signer - Single single = 1; - - // multi represents a multisig signer - Multi multi = 2; - } - - // Single is the signature data for a single signer - message Single { - // mode is the signing mode of the single signer - SignMode mode = 1; - - // signature is the raw signature bytes - bytes signature = 2; - } - - // Multi is the signature data for a multisig public key - message Multi { - // bitarray specifies which keys within the multisig are signing - cosmos.crypto.multisig.v1beta1.CompactBitArray bitarray = 1; - - // signatures is the signatures of the multi-signature - repeated Data signatures = 2; - } - } -} diff --git a/third_party/proto/cosmos/tx/v1beta1/service.proto b/third_party/proto/cosmos/tx/v1beta1/service.proto deleted file mode 100644 index 646175c0..00000000 --- a/third_party/proto/cosmos/tx/v1beta1/service.proto +++ /dev/null @@ -1,132 +0,0 @@ -syntax = "proto3"; -package cosmos.tx.v1beta1; - -import "google/api/annotations.proto"; -import "cosmos/base/abci/v1beta1/abci.proto"; -import "cosmos/tx/v1beta1/tx.proto"; -import "gogoproto/gogo.proto"; -import "cosmos/base/query/v1beta1/pagination.proto"; - -option (gogoproto.goproto_registration) = true; -option go_package = "github.com/cosmos/cosmos-sdk/types/tx"; - -// Service defines a gRPC service for interacting with transactions. -service Service { - // Simulate simulates executing a transaction for estimating gas usage. - rpc Simulate(SimulateRequest) returns (SimulateResponse) { - option (google.api.http) = { - post: "/cosmos/tx/v1beta1/simulate" - body: "*" - }; - } - // GetTx fetches a tx by hash. - rpc GetTx(GetTxRequest) returns (GetTxResponse) { - option (google.api.http).get = "/cosmos/tx/v1beta1/txs/{hash}"; - } - // BroadcastTx broadcast transaction. - rpc BroadcastTx(BroadcastTxRequest) returns (BroadcastTxResponse) { - option (google.api.http) = { - post: "/cosmos/tx/v1beta1/txs" - body: "*" - }; - } - // GetTxsEvent fetches txs by event. - rpc GetTxsEvent(GetTxsEventRequest) returns (GetTxsEventResponse) { - option (google.api.http).get = "/cosmos/tx/v1beta1/txs"; - } -} - -// GetTxsEventRequest is the request type for the Service.TxsByEvents -// RPC method. -message GetTxsEventRequest { - // events is the list of transaction event type. - repeated string events = 1; - // pagination defines an pagination for the request. - cosmos.base.query.v1beta1.PageRequest pagination = 2; - OrderBy order_by = 3; -} - -// OrderBy defines the sorting order -enum OrderBy { - // ORDER_BY_UNSPECIFIED specifies an unknown sorting order. OrderBy defaults to ASC in this case. - ORDER_BY_UNSPECIFIED = 0; - // ORDER_BY_ASC defines ascending order - ORDER_BY_ASC = 1; - // ORDER_BY_DESC defines descending order - ORDER_BY_DESC = 2; -} - -// GetTxsEventResponse is the response type for the Service.TxsByEvents -// RPC method. -message GetTxsEventResponse { - // txs is the list of queried transactions. - repeated cosmos.tx.v1beta1.Tx txs = 1; - // tx_responses is the list of queried TxResponses. - repeated cosmos.base.abci.v1beta1.TxResponse tx_responses = 2; - // pagination defines an pagination for the response. - cosmos.base.query.v1beta1.PageResponse pagination = 3; -} - -// BroadcastTxRequest is the request type for the Service.BroadcastTxRequest -// RPC method. -message BroadcastTxRequest { - // tx_bytes is the raw transaction. - bytes tx_bytes = 1; - BroadcastMode mode = 2; -} - -// BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method. -enum BroadcastMode { - // zero-value for mode ordering - BROADCAST_MODE_UNSPECIFIED = 0; - // BROADCAST_MODE_BLOCK defines a tx broadcasting mode where the client waits for - // the tx to be committed in a block. - BROADCAST_MODE_BLOCK = 1; - // BROADCAST_MODE_SYNC defines a tx broadcasting mode where the client waits for - // a CheckTx execution response only. - BROADCAST_MODE_SYNC = 2; - // BROADCAST_MODE_ASYNC defines a tx broadcasting mode where the client returns - // immediately. - BROADCAST_MODE_ASYNC = 3; -} - -// BroadcastTxResponse is the response type for the -// Service.BroadcastTx method. -message BroadcastTxResponse { - // tx_response is the queried TxResponses. - cosmos.base.abci.v1beta1.TxResponse tx_response = 1; -} - -// SimulateRequest is the request type for the Service.Simulate -// RPC method. -message SimulateRequest { - // tx is the transaction to simulate. - // Deprecated. Send raw tx bytes instead. - cosmos.tx.v1beta1.Tx tx = 1 [deprecated = true]; - // tx_bytes is the raw transaction. - bytes tx_bytes = 2; -} - -// SimulateResponse is the response type for the -// Service.SimulateRPC method. -message SimulateResponse { - // gas_info is the information about gas used in the simulation. - cosmos.base.abci.v1beta1.GasInfo gas_info = 1; - // result is the result of the simulation. - cosmos.base.abci.v1beta1.Result result = 2; -} - -// GetTxRequest is the request type for the Service.GetTx -// RPC method. -message GetTxRequest { - // hash is the tx hash to query, encoded as a hex string. - string hash = 1; -} - -// GetTxResponse is the response type for the Service.GetTx method. -message GetTxResponse { - // tx is the queried transaction. - cosmos.tx.v1beta1.Tx tx = 1; - // tx_response is the queried TxResponses. - cosmos.base.abci.v1beta1.TxResponse tx_response = 2; -} \ No newline at end of file diff --git a/third_party/proto/cosmos/tx/v1beta1/tx.proto b/third_party/proto/cosmos/tx/v1beta1/tx.proto deleted file mode 100644 index 6d5caf12..00000000 --- a/third_party/proto/cosmos/tx/v1beta1/tx.proto +++ /dev/null @@ -1,183 +0,0 @@ -syntax = "proto3"; -package cosmos.tx.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/crypto/multisig/v1beta1/multisig.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/tx/signing/v1beta1/signing.proto"; -import "google/protobuf/any.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/types/tx"; - -// Tx is the standard type used for broadcasting transactions. -message Tx { - // body is the processable content of the transaction - TxBody body = 1; - - // auth_info is the authorization related content of the transaction, - // specifically signers, signer modes and fee - AuthInfo auth_info = 2; - - // signatures is a list of signatures that matches the length and order of - // AuthInfo's signer_infos to allow connecting signature meta information like - // public key and signing mode by position. - repeated bytes signatures = 3; -} - -// TxRaw is a variant of Tx that pins the signer's exact binary representation -// of body and auth_info. This is used for signing, broadcasting and -// verification. The binary `serialize(tx: TxRaw)` is stored in Tendermint and -// the hash `sha256(serialize(tx: TxRaw))` becomes the "txhash", commonly used -// as the transaction ID. -message TxRaw { - // body_bytes is a protobuf serialization of a TxBody that matches the - // representation in SignDoc. - bytes body_bytes = 1; - - // auth_info_bytes is a protobuf serialization of an AuthInfo that matches the - // representation in SignDoc. - bytes auth_info_bytes = 2; - - // signatures is a list of signatures that matches the length and order of - // AuthInfo's signer_infos to allow connecting signature meta information like - // public key and signing mode by position. - repeated bytes signatures = 3; -} - -// SignDoc is the type used for generating sign bytes for SIGN_MODE_DIRECT. -message SignDoc { - // body_bytes is protobuf serialization of a TxBody that matches the - // representation in TxRaw. - bytes body_bytes = 1; - - // auth_info_bytes is a protobuf serialization of an AuthInfo that matches the - // representation in TxRaw. - bytes auth_info_bytes = 2; - - // chain_id is the unique identifier of the chain this transaction targets. - // It prevents signed transactions from being used on another chain by an - // attacker - string chain_id = 3; - - // account_number is the account number of the account in state - uint64 account_number = 4; -} - -// TxBody is the body of a transaction that all signers sign over. -message TxBody { - // messages is a list of messages to be executed. The required signers of - // those messages define the number and order of elements in AuthInfo's - // signer_infos and Tx's signatures. Each required signer address is added to - // the list only the first time it occurs. - // By convention, the first required signer (usually from the first message) - // is referred to as the primary signer and pays the fee for the whole - // transaction. - repeated google.protobuf.Any messages = 1; - - // memo is any arbitrary note/comment to be added to the transaction. - // WARNING: in clients, any publicly exposed text should not be called memo, - // but should be called `note` instead (see https://github.com/cosmos/cosmos-sdk/issues/9122). - string memo = 2; - - // timeout is the block height after which this transaction will not - // be processed by the chain - uint64 timeout_height = 3; - - // extension_options are arbitrary options that can be added by chains - // when the default options are not sufficient. If any of these are present - // and can't be handled, the transaction will be rejected - repeated google.protobuf.Any extension_options = 1023; - - // extension_options are arbitrary options that can be added by chains - // when the default options are not sufficient. If any of these are present - // and can't be handled, they will be ignored - repeated google.protobuf.Any non_critical_extension_options = 2047; -} - -// AuthInfo describes the fee and signer modes that are used to sign a -// transaction. -message AuthInfo { - // signer_infos defines the signing modes for the required signers. The number - // and order of elements must match the required signers from TxBody's - // messages. The first element is the primary signer and the one which pays - // the fee. - repeated SignerInfo signer_infos = 1; - - // Fee is the fee and gas limit for the transaction. The first signer is the - // primary signer and the one which pays the fee. The fee can be calculated - // based on the cost of evaluating the body and doing signature verification - // of the signers. This can be estimated via simulation. - Fee fee = 2; -} - -// SignerInfo describes the public key and signing mode of a single top-level -// signer. -message SignerInfo { - // public_key is the public key of the signer. It is optional for accounts - // that already exist in state. If unset, the verifier can use the required \ - // signer address for this position and lookup the public key. - google.protobuf.Any public_key = 1; - - // mode_info describes the signing mode of the signer and is a nested - // structure to support nested multisig pubkey's - ModeInfo mode_info = 2; - - // sequence is the sequence of the account, which describes the - // number of committed transactions signed by a given address. It is used to - // prevent replay attacks. - uint64 sequence = 3; -} - -// ModeInfo describes the signing mode of a single or nested multisig signer. -message ModeInfo { - // sum is the oneof that specifies whether this represents a single or nested - // multisig signer - oneof sum { - // single represents a single signer - Single single = 1; - - // multi represents a nested multisig signer - Multi multi = 2; - } - - // Single is the mode info for a single signer. It is structured as a message - // to allow for additional fields such as locale for SIGN_MODE_TEXTUAL in the - // future - message Single { - // mode is the signing mode of the single signer - cosmos.tx.signing.v1beta1.SignMode mode = 1; - } - - // Multi is the mode info for a multisig public key - message Multi { - // bitarray specifies which keys within the multisig are signing - cosmos.crypto.multisig.v1beta1.CompactBitArray bitarray = 1; - - // mode_infos is the corresponding modes of the signers of the multisig - // which could include nested multisig public keys - repeated ModeInfo mode_infos = 2; - } -} - -// Fee includes the amount of coins paid in fees and the maximum -// gas to be used by the transaction. The ratio yields an effective "gasprice", -// which must be above some miminum to be accepted into the mempool. -message Fee { - // amount is the amount of coins to be paid as a fee - repeated cosmos.base.v1beta1.Coin amount = 1 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - - // gas_limit is the maximum gas that can be used in transaction processing - // before an out of gas error occurs - uint64 gas_limit = 2; - - // if unset, the first signer is responsible for paying the fees. If set, the specified account must pay the fees. - // the payer must be a tx signer (and thus have signed this field in AuthInfo). - // setting this field does *not* change the ordering of required signers for the transaction. - string payer = 3; - - // if set, the fee payer (either the first signer or the value of the payer field) requests that a fee grant be used - // to pay fees instead of the fee payer's own balance. If an appropriate fee grant does not exist or the chain does - // not support fee grants, this will fail - string granter = 4; -} diff --git a/third_party/proto/cosmos/upgrade/v1beta1/query.proto b/third_party/proto/cosmos/upgrade/v1beta1/query.proto deleted file mode 100644 index 3afb04e4..00000000 --- a/third_party/proto/cosmos/upgrade/v1beta1/query.proto +++ /dev/null @@ -1,90 +0,0 @@ -syntax = "proto3"; -package cosmos.upgrade.v1beta1; - -import "google/api/annotations.proto"; -import "cosmos/upgrade/v1beta1/upgrade.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types"; - -// Query defines the gRPC upgrade querier service. -service Query { - // CurrentPlan queries the current upgrade plan. - rpc CurrentPlan(QueryCurrentPlanRequest) returns (QueryCurrentPlanResponse) { - option (google.api.http).get = "/cosmos/upgrade/v1beta1/current_plan"; - } - - // AppliedPlan queries a previously applied upgrade plan by its name. - rpc AppliedPlan(QueryAppliedPlanRequest) returns (QueryAppliedPlanResponse) { - option (google.api.http).get = "/cosmos/upgrade/v1beta1/applied_plan/{name}"; - } - - // UpgradedConsensusState queries the consensus state that will serve - // as a trusted kernel for the next version of this chain. It will only be - // stored at the last height of this chain. - // UpgradedConsensusState RPC not supported with legacy querier - rpc UpgradedConsensusState(QueryUpgradedConsensusStateRequest) returns (QueryUpgradedConsensusStateResponse) { - option (google.api.http).get = "/cosmos/upgrade/v1beta1/upgraded_consensus_state/{last_height}"; - } - - // ModuleVersions queries the list of module versions from state. - rpc ModuleVersions(QueryModuleVersionsRequest) returns (QueryModuleVersionsResponse) { - option (google.api.http).get = "/cosmos/upgrade/v1beta1/module_versions"; - } -} - -// QueryCurrentPlanRequest is the request type for the Query/CurrentPlan RPC -// method. -message QueryCurrentPlanRequest {} - -// QueryCurrentPlanResponse is the response type for the Query/CurrentPlan RPC -// method. -message QueryCurrentPlanResponse { - // plan is the current upgrade plan. - Plan plan = 1; -} - -// QueryCurrentPlanRequest is the request type for the Query/AppliedPlan RPC -// method. -message QueryAppliedPlanRequest { - // name is the name of the applied plan to query for. - string name = 1; -} - -// QueryAppliedPlanResponse is the response type for the Query/AppliedPlan RPC -// method. -message QueryAppliedPlanResponse { - // height is the block height at which the plan was applied. - int64 height = 1; -} - -// QueryUpgradedConsensusStateRequest is the request type for the Query/UpgradedConsensusState -// RPC method. -message QueryUpgradedConsensusStateRequest { - // last height of the current chain must be sent in request - // as this is the height under which next consensus state is stored - int64 last_height = 1; -} - -// QueryUpgradedConsensusStateResponse is the response type for the Query/UpgradedConsensusState -// RPC method. -message QueryUpgradedConsensusStateResponse { - reserved 1; - - bytes upgraded_consensus_state = 2; -} - -// QueryModuleVersionsRequest is the request type for the Query/ModuleVersions -// RPC method. -message QueryModuleVersionsRequest { - // module_name is a field to query a specific module - // consensus version from state. Leaving this empty will - // fetch the full list of module versions from state - string module_name = 1; -} - -// QueryModuleVersionsResponse is the response type for the Query/ModuleVersions -// RPC method. -message QueryModuleVersionsResponse { - // module_versions is a list of module names with their consensus versions. - repeated ModuleVersion module_versions = 1; -} diff --git a/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto b/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto deleted file mode 100644 index 4e1d69aa..00000000 --- a/third_party/proto/cosmos/upgrade/v1beta1/upgrade.proto +++ /dev/null @@ -1,76 +0,0 @@ -syntax = "proto3"; -package cosmos.upgrade.v1beta1; - -import "google/protobuf/any.proto"; -import "gogoproto/gogo.proto"; -import "google/protobuf/timestamp.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/upgrade/types"; -option (gogoproto.goproto_getters_all) = false; - -// Plan specifies information about a planned upgrade and when it should occur. -message Plan { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - // Sets the name for the upgrade. This name will be used by the upgraded - // version of the software to apply any special "on-upgrade" commands during - // the first BeginBlock method after the upgrade is applied. It is also used - // to detect whether a software version can handle a given upgrade. If no - // upgrade handler with this name has been set in the software, it will be - // assumed that the software is out-of-date when the upgrade Time or Height is - // reached and the software will exit. - string name = 1; - - // Deprecated: Time based upgrades have been deprecated. Time based upgrade logic - // has been removed from the SDK. - // If this field is not empty, an error will be thrown. - google.protobuf.Timestamp time = 2 [deprecated = true, (gogoproto.stdtime) = true, (gogoproto.nullable) = false]; - - // The height at which the upgrade must be performed. - // Only used if Time is not set. - int64 height = 3; - - // Any application specific upgrade info to be included on-chain - // such as a git commit that validators could automatically upgrade to - string info = 4; - - // Deprecated: UpgradedClientState field has been deprecated. IBC upgrade logic has been - // moved to the IBC module in the sub module 02-client. - // If this field is not empty, an error will be thrown. - google.protobuf.Any upgraded_client_state = 5 - [deprecated = true, (gogoproto.moretags) = "yaml:\"upgraded_client_state\""]; -} - -// SoftwareUpgradeProposal is a gov Content type for initiating a software -// upgrade. -message SoftwareUpgradeProposal { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - string title = 1; - string description = 2; - Plan plan = 3 [(gogoproto.nullable) = false]; -} - -// CancelSoftwareUpgradeProposal is a gov Content type for cancelling a software -// upgrade. -message CancelSoftwareUpgradeProposal { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = false; - - string title = 1; - string description = 2; -} - -// ModuleVersion specifies a module and its consensus version. -message ModuleVersion { - option (gogoproto.equal) = true; - option (gogoproto.goproto_stringer) = true; - - // name of the app module - string name = 1; - - // consensus version of the app module - uint64 version = 2; -} diff --git a/third_party/proto/cosmos/vesting/v1beta1/tx.proto b/third_party/proto/cosmos/vesting/v1beta1/tx.proto deleted file mode 100644 index c49be802..00000000 --- a/third_party/proto/cosmos/vesting/v1beta1/tx.proto +++ /dev/null @@ -1,31 +0,0 @@ -syntax = "proto3"; -package cosmos.vesting.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"; - -// Msg defines the bank Msg service. -service Msg { - // CreateVestingAccount defines a method that enables creating a vesting - // account. - rpc CreateVestingAccount(MsgCreateVestingAccount) returns (MsgCreateVestingAccountResponse); -} - -// MsgCreateVestingAccount defines a message that enables creating a vesting -// account. -message MsgCreateVestingAccount { - option (gogoproto.equal) = true; - - string from_address = 1 [(gogoproto.moretags) = "yaml:\"from_address\""]; - string to_address = 2 [(gogoproto.moretags) = "yaml:\"to_address\""]; - repeated cosmos.base.v1beta1.Coin amount = 3 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; - - int64 end_time = 4 [(gogoproto.moretags) = "yaml:\"end_time\""]; - bool delayed = 5; -} - -// MsgCreateVestingAccountResponse defines the Msg/CreateVestingAccount response type. -message MsgCreateVestingAccountResponse {} \ No newline at end of file diff --git a/third_party/proto/cosmos/vesting/v1beta1/vesting.proto b/third_party/proto/cosmos/vesting/v1beta1/vesting.proto deleted file mode 100644 index 26e78683..00000000 --- a/third_party/proto/cosmos/vesting/v1beta1/vesting.proto +++ /dev/null @@ -1,83 +0,0 @@ -syntax = "proto3"; -package cosmos.vesting.v1beta1; - -import "gogoproto/gogo.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "cosmos/auth/v1beta1/auth.proto"; - -option go_package = "github.com/cosmos/cosmos-sdk/x/auth/vesting/types"; - -// BaseVestingAccount implements the VestingAccount interface. It contains all -// the necessary fields needed for any vesting account implementation. -message BaseVestingAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - cosmos.auth.v1beta1.BaseAccount base_account = 1 [(gogoproto.embed) = true]; - repeated cosmos.base.v1beta1.Coin original_vesting = 2 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", - (gogoproto.moretags) = "yaml:\"original_vesting\"" - ]; - repeated cosmos.base.v1beta1.Coin delegated_free = 3 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", - (gogoproto.moretags) = "yaml:\"delegated_free\"" - ]; - repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", - (gogoproto.moretags) = "yaml:\"delegated_vesting\"" - ]; - int64 end_time = 5 [(gogoproto.moretags) = "yaml:\"end_time\""]; -} - -// ContinuousVestingAccount implements the VestingAccount interface. It -// continuously vests by unlocking coins linearly with respect to time. -message ContinuousVestingAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; - int64 start_time = 2 [(gogoproto.moretags) = "yaml:\"start_time\""]; -} - -// DelayedVestingAccount implements the VestingAccount interface. It vests all -// coins after a specific time, but non prior. In other words, it keeps them -// locked until a specified time. -message DelayedVestingAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; -} - -// Period defines a length of time and amount of coins that will vest. -message Period { - option (gogoproto.goproto_stringer) = false; - - int64 length = 1; - repeated cosmos.base.v1beta1.Coin amount = 2 - [(gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins"]; -} - -// PeriodicVestingAccount implements the VestingAccount interface. It -// periodically vests by unlocking coins during each specified period. -message PeriodicVestingAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; - int64 start_time = 2 [(gogoproto.moretags) = "yaml:\"start_time\""]; - repeated Period vesting_periods = 3 [(gogoproto.moretags) = "yaml:\"vesting_periods\"", (gogoproto.nullable) = false]; -} - -// PermanentLockedAccount implements the VestingAccount interface. It does -// not ever release coins, locking them indefinitely. Coins in this account can -// still be used for delegating and for governance votes even while locked. -message PermanentLockedAccount { - option (gogoproto.goproto_getters) = false; - option (gogoproto.goproto_stringer) = false; - - BaseVestingAccount base_vesting_account = 1 [(gogoproto.embed) = true]; -} diff --git a/third_party/proto/cosmos_proto/cosmos.proto b/third_party/proto/cosmos_proto/cosmos.proto deleted file mode 100644 index 167b1707..00000000 --- a/third_party/proto/cosmos_proto/cosmos.proto +++ /dev/null @@ -1,16 +0,0 @@ -syntax = "proto3"; -package cosmos_proto; - -import "google/protobuf/descriptor.proto"; - -option go_package = "github.com/regen-network/cosmos-proto"; - -extend google.protobuf.MessageOptions { - string interface_type = 93001; - - string implements_interface = 93002; -} - -extend google.protobuf.FieldOptions { - string accepts_interface = 93001; -} diff --git a/third_party/proto/gogoproto/gogo.proto b/third_party/proto/gogoproto/gogo.proto deleted file mode 100644 index 49e78f99..00000000 --- a/third_party/proto/gogoproto/gogo.proto +++ /dev/null @@ -1,145 +0,0 @@ -// Protocol Buffers for Go with Gadgets -// -// Copyright (c) 2013, The GoGo Authors. All rights reserved. -// http://github.com/gogo/protobuf -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto2"; -package gogoproto; - -import "google/protobuf/descriptor.proto"; - -option java_package = "com.google.protobuf"; -option java_outer_classname = "GoGoProtos"; -option go_package = "github.com/gogo/protobuf/gogoproto"; - -extend google.protobuf.EnumOptions { - optional bool goproto_enum_prefix = 62001; - optional bool goproto_enum_stringer = 62021; - optional bool enum_stringer = 62022; - optional string enum_customname = 62023; - optional bool enumdecl = 62024; -} - -extend google.protobuf.EnumValueOptions { - optional string enumvalue_customname = 66001; -} - -extend google.protobuf.FileOptions { - optional bool goproto_getters_all = 63001; - optional bool goproto_enum_prefix_all = 63002; - optional bool goproto_stringer_all = 63003; - optional bool verbose_equal_all = 63004; - optional bool face_all = 63005; - optional bool gostring_all = 63006; - optional bool populate_all = 63007; - optional bool stringer_all = 63008; - optional bool onlyone_all = 63009; - - optional bool equal_all = 63013; - optional bool description_all = 63014; - optional bool testgen_all = 63015; - optional bool benchgen_all = 63016; - optional bool marshaler_all = 63017; - optional bool unmarshaler_all = 63018; - optional bool stable_marshaler_all = 63019; - - optional bool sizer_all = 63020; - - optional bool goproto_enum_stringer_all = 63021; - optional bool enum_stringer_all = 63022; - - optional bool unsafe_marshaler_all = 63023; - optional bool unsafe_unmarshaler_all = 63024; - - optional bool goproto_extensions_map_all = 63025; - optional bool goproto_unrecognized_all = 63026; - optional bool gogoproto_import = 63027; - optional bool protosizer_all = 63028; - optional bool compare_all = 63029; - optional bool typedecl_all = 63030; - optional bool enumdecl_all = 63031; - - optional bool goproto_registration = 63032; - optional bool messagename_all = 63033; - - optional bool goproto_sizecache_all = 63034; - optional bool goproto_unkeyed_all = 63035; -} - -extend google.protobuf.MessageOptions { - optional bool goproto_getters = 64001; - optional bool goproto_stringer = 64003; - optional bool verbose_equal = 64004; - optional bool face = 64005; - optional bool gostring = 64006; - optional bool populate = 64007; - optional bool stringer = 67008; - optional bool onlyone = 64009; - - optional bool equal = 64013; - optional bool description = 64014; - optional bool testgen = 64015; - optional bool benchgen = 64016; - optional bool marshaler = 64017; - optional bool unmarshaler = 64018; - optional bool stable_marshaler = 64019; - - optional bool sizer = 64020; - - optional bool unsafe_marshaler = 64023; - optional bool unsafe_unmarshaler = 64024; - - optional bool goproto_extensions_map = 64025; - optional bool goproto_unrecognized = 64026; - - optional bool protosizer = 64028; - optional bool compare = 64029; - - optional bool typedecl = 64030; - - optional bool messagename = 64033; - - optional bool goproto_sizecache = 64034; - optional bool goproto_unkeyed = 64035; -} - -extend google.protobuf.FieldOptions { - optional bool nullable = 65001; - optional bool embed = 65002; - optional string customtype = 65003; - optional string customname = 65004; - optional string jsontag = 65005; - optional string moretags = 65006; - optional string casttype = 65007; - optional string castkey = 65008; - optional string castvalue = 65009; - - optional bool stdtime = 65010; - optional bool stdduration = 65011; - optional bool wktpointer = 65012; - - optional string castrepeated = 65013; -} diff --git a/third_party/proto/google/api/annotations.proto b/third_party/proto/google/api/annotations.proto deleted file mode 100644 index 7b67d584..00000000 --- a/third_party/proto/google/api/annotations.proto +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright (c) 2015, Google Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.api; - -import "google/api/http.proto"; -import "google/protobuf/descriptor.proto"; - -option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; -option java_multiple_files = true; -option java_outer_classname = "AnnotationsProto"; -option java_package = "com.google.api"; -option objc_class_prefix = "GAPI"; - -extend google.protobuf.MethodOptions { - // See `HttpRule`. - HttpRule http = 72295728; -} diff --git a/third_party/proto/google/api/http.proto b/third_party/proto/google/api/http.proto deleted file mode 100644 index 401fcb74..00000000 --- a/third_party/proto/google/api/http.proto +++ /dev/null @@ -1,325 +0,0 @@ -// Copyright 2018 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -syntax = "proto3"; - -package google.api; - -option cc_enable_arenas = true; -option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; -option java_multiple_files = true; -option java_outer_classname = "HttpProto"; -option java_package = "com.google.api"; -option objc_class_prefix = "GAPI"; - -// Defines the HTTP configuration for an API service. It contains a list of -// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method -// to one or more HTTP REST API methods. -message Http { - // A list of HTTP configuration rules that apply to individual API methods. - // - // **NOTE:** All service configuration rules follow "last one wins" order. - repeated HttpRule rules = 1; - - // When set to true, URL path parmeters will be fully URI-decoded except in - // cases of single segment matches in reserved expansion, where "%2F" will be - // left encoded. - // - // The default behavior is to not decode RFC 6570 reserved characters in multi - // segment matches. - bool fully_decode_reserved_expansion = 2; -} - -// `HttpRule` defines the mapping of an RPC method to one or more HTTP -// REST API methods. The mapping specifies how different portions of the RPC -// request message are mapped to URL path, URL query parameters, and -// HTTP request body. The mapping is typically specified as an -// `google.api.http` annotation on the RPC method, -// see "google/api/annotations.proto" for details. -// -// The mapping consists of a field specifying the path template and -// method kind. The path template can refer to fields in the request -// message, as in the example below which describes a REST GET -// operation on a resource collection of messages: -// -// -// service Messaging { -// rpc GetMessage(GetMessageRequest) returns (Message) { -// option (google.api.http).get = -// "/v1/messages/{message_id}/{sub.subfield}"; -// } -// } -// message GetMessageRequest { -// message SubMessage { -// string subfield = 1; -// } -// string message_id = 1; // mapped to the URL -// SubMessage sub = 2; // `sub.subfield` is url-mapped -// } -// message Message { -// string text = 1; // content of the resource -// } -// -// The same http annotation can alternatively be expressed inside the -// `GRPC API Configuration` YAML file. -// -// http: -// rules: -// - selector: .Messaging.GetMessage -// get: /v1/messages/{message_id}/{sub.subfield} -// -// This definition enables an automatic, bidrectional mapping of HTTP -// JSON to RPC. Example: -// -// HTTP | RPC -// -----|----- -// `GET /v1/messages/123456/foo` | `GetMessage(message_id: "123456" sub: -// SubMessage(subfield: "foo"))` -// -// In general, not only fields but also field paths can be referenced -// from a path pattern. Fields mapped to the path pattern cannot be -// repeated and must have a primitive (non-message) type. -// -// Any fields in the request message which are not bound by the path -// pattern automatically become (optional) HTTP query -// parameters. Assume the following definition of the request message: -// -// -// service Messaging { -// rpc GetMessage(GetMessageRequest) returns (Message) { -// option (google.api.http).get = "/v1/messages/{message_id}"; -// } -// } -// message GetMessageRequest { -// message SubMessage { -// string subfield = 1; -// } -// string message_id = 1; // mapped to the URL -// int64 revision = 2; // becomes a parameter -// SubMessage sub = 3; // `sub.subfield` becomes a parameter -// } -// -// -// This enables a HTTP JSON to RPC mapping as below: -// -// HTTP | RPC -// -----|----- -// `GET /v1/messages/123456?revision=2&sub.subfield=foo` | -// `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield: -// "foo"))` -// -// Note that fields which are mapped to HTTP parameters must have a -// primitive type or a repeated primitive type. Message types are not -// allowed. In the case of a repeated type, the parameter can be -// repeated in the URL, as in `...?param=A¶m=B`. -// -// For HTTP method kinds which allow a request body, the `body` field -// specifies the mapping. Consider a REST update method on the -// message resource collection: -// -// -// service Messaging { -// rpc UpdateMessage(UpdateMessageRequest) returns (Message) { -// option (google.api.http) = { -// put: "/v1/messages/{message_id}" -// body: "message" -// }; -// } -// } -// message UpdateMessageRequest { -// string message_id = 1; // mapped to the URL -// Message message = 2; // mapped to the body -// } -// -// -// The following HTTP JSON to RPC mapping is enabled, where the -// representation of the JSON in the request body is determined by -// protos JSON encoding: -// -// HTTP | RPC -// -----|----- -// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" message { text: "Hi!" })` -// -// The special name `*` can be used in the body mapping to define that -// every field not bound by the path template should be mapped to the -// request body. This enables the following alternative definition of -// the update method: -// -// service Messaging { -// rpc UpdateMessage(Message) returns (Message) { -// option (google.api.http) = { -// put: "/v1/messages/{message_id}" -// body: "*" -// }; -// } -// } -// message Message { -// string message_id = 1; -// string text = 2; -// } -// -// -// The following HTTP JSON to RPC mapping is enabled: -// -// HTTP | RPC -// -----|----- -// `PUT /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id: -// "123456" text: "Hi!")` -// -// Note that when using `*` in the body mapping, it is not possible to -// have HTTP parameters, as all fields not bound by the path end in -// the body. This makes this option more rarely used in practice of -// defining REST APIs. The common usage of `*` is in custom methods -// which don't use the URL at all for transferring data. -// -// It is possible to define multiple HTTP methods for one RPC by using -// the `additional_bindings` option. Example: -// -// service Messaging { -// rpc GetMessage(GetMessageRequest) returns (Message) { -// option (google.api.http) = { -// get: "/v1/messages/{message_id}" -// additional_bindings { -// get: "/v1/users/{user_id}/messages/{message_id}" -// } -// }; -// } -// } -// message GetMessageRequest { -// string message_id = 1; -// string user_id = 2; -// } -// -// -// This enables the following two alternative HTTP JSON to RPC -// mappings: -// -// HTTP | RPC -// -----|----- -// `GET /v1/messages/123456` | `GetMessage(message_id: "123456")` -// `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id: -// "123456")` -// -// # Rules for HTTP mapping -// -// The rules for mapping HTTP path, query parameters, and body fields -// to the request message are as follows: -// -// 1. The `body` field specifies either `*` or a field path, or is -// omitted. If omitted, it indicates there is no HTTP request body. -// 2. Leaf fields (recursive expansion of nested messages in the -// request) can be classified into three types: -// (a) Matched in the URL template. -// (b) Covered by body (if body is `*`, everything except (a) fields; -// else everything under the body field) -// (c) All other fields. -// 3. URL query parameters found in the HTTP request are mapped to (c) fields. -// 4. Any body sent with an HTTP request can contain only (b) fields. -// -// The syntax of the path template is as follows: -// -// Template = "/" Segments [ Verb ] ; -// Segments = Segment { "/" Segment } ; -// Segment = "*" | "**" | LITERAL | Variable ; -// Variable = "{" FieldPath [ "=" Segments ] "}" ; -// FieldPath = IDENT { "." IDENT } ; -// Verb = ":" LITERAL ; -// -// The syntax `*` matches a single path segment. The syntax `**` matches zero -// or more path segments, which must be the last part of the path except the -// `Verb`. The syntax `LITERAL` matches literal text in the path. -// -// The syntax `Variable` matches part of the URL path as specified by its -// template. A variable template must not contain other variables. If a variable -// matches a single path segment, its template may be omitted, e.g. `{var}` -// is equivalent to `{var=*}`. -// -// If a variable contains exactly one path segment, such as `"{var}"` or -// `"{var=*}"`, when such a variable is expanded into a URL path, all characters -// except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the -// Discovery Document as `{var}`. -// -// If a variable contains one or more path segments, such as `"{var=foo/*}"` -// or `"{var=**}"`, when such a variable is expanded into a URL path, all -// characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables -// show up in the Discovery Document as `{+var}`. -// -// NOTE: While the single segment variable matches the semantics of -// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 -// Simple String Expansion, the multi segment variable **does not** match -// RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion -// does not expand special characters like `?` and `#`, which would lead -// to invalid URLs. -// -// NOTE: the field paths in variables and in the `body` must not refer to -// repeated fields or map fields. -message HttpRule { - // Selects methods to which this rule applies. - // - // Refer to [selector][google.api.DocumentationRule.selector] for syntax - // details. - string selector = 1; - - // Determines the URL pattern is matched by this rules. This pattern can be - // used with any of the {get|put|post|delete|patch} methods. A custom method - // can be defined using the 'custom' field. - oneof pattern { - // Used for listing and getting information about resources. - string get = 2; - - // Used for updating a resource. - string put = 3; - - // Used for creating a resource. - string post = 4; - - // Used for deleting a resource. - string delete = 5; - - // Used for updating a resource. - string patch = 6; - - // The custom pattern is used for specifying an HTTP method that is not - // included in the `pattern` field, such as HEAD, or "*" to leave the - // HTTP method unspecified for this rule. The wild-card rule is useful - // for services that provide content to Web (HTML) clients. - CustomHttpPattern custom = 8; - } - - // The name of the request field whose value is mapped to the HTTP body, or - // `*` for mapping all fields not captured by the path pattern to the HTTP - // body. NOTE: the referred field must not be a repeated field and must be - // present at the top-level of request message type. - string body = 7; - - // Optional. The name of the response field whose value is mapped to the HTTP - // body of response. Other response fields are ignored. When - // not set, the response message will be used as HTTP body of response. - string response_body = 12; - - // Additional HTTP bindings for the selector. Nested bindings must - // not contain an `additional_bindings` field themselves (that is, - // the nesting may only be one level deep). - repeated HttpRule additional_bindings = 11; -} - -// A custom pattern is used for defining custom HTTP verb. -message CustomHttpPattern { - // The name of this custom HTTP verb. - string kind = 1; - - // The path matched by this custom verb. - string path = 2; -} diff --git a/third_party/proto/google/api/httpbody.proto b/third_party/proto/google/api/httpbody.proto deleted file mode 100644 index 573f8d1b..00000000 --- a/third_party/proto/google/api/httpbody.proto +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2018 Google LLC. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -syntax = "proto3"; - -package google.api; - -import "google/protobuf/any.proto"; - -option cc_enable_arenas = true; -option go_package = "google.golang.org/genproto/googleapis/api/httpbody;httpbody"; -option java_multiple_files = true; -option java_outer_classname = "HttpBodyProto"; -option java_package = "com.google.api"; -option objc_class_prefix = "GAPI"; - -// Message that represents an arbitrary HTTP body. It should only be used for -// payload formats that can't be represented as JSON, such as raw binary or -// an HTML page. -// -// -// This message can be used both in streaming and non-streaming API methods in -// the request as well as the response. -// -// It can be used as a top-level request field, which is convenient if one -// wants to extract parameters from either the URL or HTTP template into the -// request fields and also want access to the raw HTTP body. -// -// Example: -// -// message GetResourceRequest { -// // A unique request id. -// string request_id = 1; -// -// // The raw HTTP body is bound to this field. -// google.api.HttpBody http_body = 2; -// } -// -// service ResourceService { -// rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); -// rpc UpdateResource(google.api.HttpBody) returns -// (google.protobuf.Empty); -// } -// -// Example with streaming methods: -// -// service CaldavService { -// rpc GetCalendar(stream google.api.HttpBody) -// returns (stream google.api.HttpBody); -// rpc UpdateCalendar(stream google.api.HttpBody) -// returns (stream google.api.HttpBody); -// } -// -// Use of this type only changes how the request and response bodies are -// handled, all other features will continue to work unchanged. -message HttpBody { - // The HTTP Content-Type header value specifying the content type of the body. - string content_type = 1; - - // The HTTP request/response body as raw binary. - bytes data = 2; - - // Application specific response metadata. Must be set in the first response - // for streaming APIs. - repeated google.protobuf.Any extensions = 3; -} \ No newline at end of file diff --git a/third_party/proto/google/protobuf/any.proto b/third_party/proto/google/protobuf/any.proto deleted file mode 100644 index e1faae47..00000000 --- a/third_party/proto/google/protobuf/any.proto +++ /dev/null @@ -1,161 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -syntax = "proto3"; - -package google.protobuf; - -import "gogoproto/gogo.proto"; - -option csharp_namespace = "Google.Protobuf.WellKnownTypes"; -option go_package = "types"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "AnyProto"; -option java_multiple_files = true; -option objc_class_prefix = "GPB"; - -// `Any` contains an arbitrary serialized protocol buffer message along with a -// URL that describes the type of the serialized message. -// -// Protobuf library provides support to pack/unpack Any values in the form -// of utility functions or additional generated methods of the Any type. -// -// Example 1: Pack and unpack a message in C++. -// -// Foo foo = ...; -// Any any; -// any.PackFrom(foo); -// ... -// if (any.UnpackTo(&foo)) { -// ... -// } -// -// Example 2: Pack and unpack a message in Java. -// -// Foo foo = ...; -// Any any = Any.pack(foo); -// ... -// if (any.is(Foo.class)) { -// foo = any.unpack(Foo.class); -// } -// -// Example 3: Pack and unpack a message in Python. -// -// foo = Foo(...) -// any = Any() -// any.Pack(foo) -// ... -// if any.Is(Foo.DESCRIPTOR): -// any.Unpack(foo) -// ... -// -// Example 4: Pack and unpack a message in Go -// -// foo := &pb.Foo{...} -// any, err := ptypes.MarshalAny(foo) -// ... -// foo := &pb.Foo{} -// if err := ptypes.UnmarshalAny(any, foo); err != nil { -// ... -// } -// -// The pack methods provided by protobuf library will by default use -// 'type.googleapis.com/full.type.name' as the type URL and the unpack -// methods only use the fully qualified type name after the last '/' -// in the type URL, for example "foo.bar.com/x/y.z" will yield type -// name "y.z". -// -// -// JSON -// ==== -// The JSON representation of an `Any` value uses the regular -// representation of the deserialized, embedded message, with an -// additional field `@type` which contains the type URL. Example: -// -// package google.profile; -// message Person { -// string first_name = 1; -// string last_name = 2; -// } -// -// { -// "@type": "type.googleapis.com/google.profile.Person", -// "firstName": , -// "lastName": -// } -// -// If the embedded message type is well-known and has a custom JSON -// representation, that representation will be embedded adding a field -// `value` which holds the custom JSON in addition to the `@type` -// field. Example (for message [google.protobuf.Duration][]): -// -// { -// "@type": "type.googleapis.com/google.protobuf.Duration", -// "value": "1.212s" -// } -// -message Any { - // A URL/resource name that uniquely identifies the type of the serialized - // protocol buffer message. This string must contain at least - // one "/" character. The last segment of the URL's path must represent - // the fully qualified name of the type (as in - // `path/google.protobuf.Duration`). The name should be in a canonical form - // (e.g., leading "." is not accepted). - // - // In practice, teams usually precompile into the binary all types that they - // expect it to use in the context of Any. However, for URLs which use the - // scheme `http`, `https`, or no scheme, one can optionally set up a type - // server that maps type URLs to message definitions as follows: - // - // * If no scheme is provided, `https` is assumed. - // * An HTTP GET on the URL must yield a [google.protobuf.Type][] - // value in binary format, or produce an error. - // * Applications are allowed to cache lookup results based on the - // URL, or have them precompiled into a binary to avoid any - // lookup. Therefore, binary compatibility needs to be preserved - // on changes to types. (Use versioned type names to manage - // breaking changes.) - // - // Note: this functionality is not currently available in the official - // protobuf release, and it is not used for type URLs beginning with - // type.googleapis.com. - // - // Schemes other than `http`, `https` (or the empty scheme) might be - // used with implementation specific semantics. - // - string type_url = 1; - - // Must be a valid serialized protocol buffer of the above specified type. - bytes value = 2; - - option (gogoproto.typedecl) = false; -} - -option (gogoproto.goproto_registration) = false; diff --git a/third_party/proto/google/protobuf/descriptor.proto b/third_party/proto/google/protobuf/descriptor.proto deleted file mode 100644 index 42832c97..00000000 --- a/third_party/proto/google/protobuf/descriptor.proto +++ /dev/null @@ -1,895 +0,0 @@ -// Protocol Buffers - Google's data interchange format -// Copyright 2008 Google Inc. All rights reserved. -// https://developers.google.com/protocol-buffers/ -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// Author: kenton@google.com (Kenton Varda) -// Based on original Protocol Buffers design by -// Sanjay Ghemawat, Jeff Dean, and others. -// -// The messages in this file describe the definitions found in .proto files. -// A valid .proto file can be translated directly to a FileDescriptorProto -// without any other information (e.g. without reading its imports). - -syntax = "proto2"; - -package google.protobuf; - -option go_package = "google.golang.org/protobuf/types/descriptorpb"; -option java_package = "com.google.protobuf"; -option java_outer_classname = "DescriptorProtos"; -option csharp_namespace = "Google.Protobuf.Reflection"; -option objc_class_prefix = "GPB"; -option cc_enable_arenas = true; - -// descriptor.proto must be optimized for speed because reflection-based -// algorithms don't work during bootstrapping. -option optimize_for = SPEED; - -// The protocol compiler can output a FileDescriptorSet containing the .proto -// files it parses. -message FileDescriptorSet { - repeated FileDescriptorProto file = 1; -} - -// Describes a complete .proto file. -message FileDescriptorProto { - optional string name = 1; // file name, relative to root of source tree - optional string package = 2; // e.g. "foo", "foo.bar", etc. - - // Names of files imported by this file. - repeated string dependency = 3; - // Indexes of the public imported files in the dependency list above. - repeated int32 public_dependency = 10; - // Indexes of the weak imported files in the dependency list. - // For Google-internal migration only. Do not use. - repeated int32 weak_dependency = 11; - - // All top-level definitions in this file. - repeated DescriptorProto message_type = 4; - repeated EnumDescriptorProto enum_type = 5; - repeated ServiceDescriptorProto service = 6; - repeated FieldDescriptorProto extension = 7; - - optional FileOptions options = 8; - - // This field contains optional information about the original source code. - // You may safely remove this entire field without harming runtime - // functionality of the descriptors -- the information is needed only by - // development tools. - optional SourceCodeInfo source_code_info = 9; - - // The syntax of the proto file. - // The supported values are "proto2" and "proto3". - optional string syntax = 12; -} - -// Describes a message type. -message DescriptorProto { - optional string name = 1; - - repeated FieldDescriptorProto field = 2; - repeated FieldDescriptorProto extension = 6; - - repeated DescriptorProto nested_type = 3; - repeated EnumDescriptorProto enum_type = 4; - - message ExtensionRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Exclusive. - - optional ExtensionRangeOptions options = 3; - } - repeated ExtensionRange extension_range = 5; - - repeated OneofDescriptorProto oneof_decl = 8; - - optional MessageOptions options = 7; - - // Range of reserved tag numbers. Reserved tag numbers may not be used by - // fields or extension ranges in the same message. Reserved ranges may - // not overlap. - message ReservedRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Exclusive. - } - repeated ReservedRange reserved_range = 9; - // Reserved field names, which may not be used by fields in the same message. - // A given name may only be reserved once. - repeated string reserved_name = 10; -} - -message ExtensionRangeOptions { - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -// Describes a field within a message. -message FieldDescriptorProto { - enum Type { - // 0 is reserved for errors. - // Order is weird for historical reasons. - TYPE_DOUBLE = 1; - TYPE_FLOAT = 2; - // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if - // negative values are likely. - TYPE_INT64 = 3; - TYPE_UINT64 = 4; - // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if - // negative values are likely. - TYPE_INT32 = 5; - TYPE_FIXED64 = 6; - TYPE_FIXED32 = 7; - TYPE_BOOL = 8; - TYPE_STRING = 9; - // Tag-delimited aggregate. - // Group type is deprecated and not supported in proto3. However, Proto3 - // implementations should still be able to parse the group wire format and - // treat group fields as unknown fields. - TYPE_GROUP = 10; - TYPE_MESSAGE = 11; // Length-delimited aggregate. - - // New in version 2. - TYPE_BYTES = 12; - TYPE_UINT32 = 13; - TYPE_ENUM = 14; - TYPE_SFIXED32 = 15; - TYPE_SFIXED64 = 16; - TYPE_SINT32 = 17; // Uses ZigZag encoding. - TYPE_SINT64 = 18; // Uses ZigZag encoding. - } - - enum Label { - // 0 is reserved for errors - LABEL_OPTIONAL = 1; - LABEL_REQUIRED = 2; - LABEL_REPEATED = 3; - } - - optional string name = 1; - optional int32 number = 3; - optional Label label = 4; - - // If type_name is set, this need not be set. If both this and type_name - // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. - optional Type type = 5; - - // For message and enum types, this is the name of the type. If the name - // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping - // rules are used to find the type (i.e. first the nested types within this - // message are searched, then within the parent, on up to the root - // namespace). - optional string type_name = 6; - - // For extensions, this is the name of the type being extended. It is - // resolved in the same manner as type_name. - optional string extendee = 2; - - // For numeric types, contains the original text representation of the value. - // For booleans, "true" or "false". - // For strings, contains the default text contents (not escaped in any way). - // For bytes, contains the C escaped value. All bytes >= 128 are escaped. - // TODO(kenton): Base-64 encode? - optional string default_value = 7; - - // If set, gives the index of a oneof in the containing type's oneof_decl - // list. This field is a member of that oneof. - optional int32 oneof_index = 9; - - // JSON name of this field. The value is set by protocol compiler. If the - // user has set a "json_name" option on this field, that option's value - // will be used. Otherwise, it's deduced from the field's name by converting - // it to camelCase. - optional string json_name = 10; - - optional FieldOptions options = 8; - - // If true, this is a proto3 "optional". When a proto3 field is optional, it - // tracks presence regardless of field type. - // - // When proto3_optional is true, this field must be belong to a oneof to - // signal to old proto3 clients that presence is tracked for this field. This - // oneof is known as a "synthetic" oneof, and this field must be its sole - // member (each proto3 optional field gets its own synthetic oneof). Synthetic - // oneofs exist in the descriptor only, and do not generate any API. Synthetic - // oneofs must be ordered after all "real" oneofs. - // - // For message fields, proto3_optional doesn't create any semantic change, - // since non-repeated message fields always track presence. However it still - // indicates the semantic detail of whether the user wrote "optional" or not. - // This can be useful for round-tripping the .proto file. For consistency we - // give message fields a synthetic oneof also, even though it is not required - // to track presence. This is especially important because the parser can't - // tell if a field is a message or an enum, so it must always create a - // synthetic oneof. - // - // Proto2 optional fields do not set this flag, because they already indicate - // optional with `LABEL_OPTIONAL`. - optional bool proto3_optional = 17; -} - -// Describes a oneof. -message OneofDescriptorProto { - optional string name = 1; - optional OneofOptions options = 2; -} - -// Describes an enum type. -message EnumDescriptorProto { - optional string name = 1; - - repeated EnumValueDescriptorProto value = 2; - - optional EnumOptions options = 3; - - // Range of reserved numeric values. Reserved values may not be used by - // entries in the same enum. Reserved ranges may not overlap. - // - // Note that this is distinct from DescriptorProto.ReservedRange in that it - // is inclusive such that it can appropriately represent the entire int32 - // domain. - message EnumReservedRange { - optional int32 start = 1; // Inclusive. - optional int32 end = 2; // Inclusive. - } - - // Range of reserved numeric values. Reserved numeric values may not be used - // by enum values in the same enum declaration. Reserved ranges may not - // overlap. - repeated EnumReservedRange reserved_range = 4; - - // Reserved enum value names, which may not be reused. A given name may only - // be reserved once. - repeated string reserved_name = 5; -} - -// Describes a value within an enum. -message EnumValueDescriptorProto { - optional string name = 1; - optional int32 number = 2; - - optional EnumValueOptions options = 3; -} - -// Describes a service. -message ServiceDescriptorProto { - optional string name = 1; - repeated MethodDescriptorProto method = 2; - - optional ServiceOptions options = 3; -} - -// Describes a method of a service. -message MethodDescriptorProto { - optional string name = 1; - - // Input and output type names. These are resolved in the same way as - // FieldDescriptorProto.type_name, but must refer to a message type. - optional string input_type = 2; - optional string output_type = 3; - - optional MethodOptions options = 4; - - // Identifies if client streams multiple client messages - optional bool client_streaming = 5 [default = false]; - // Identifies if server streams multiple server messages - optional bool server_streaming = 6 [default = false]; -} - -// =================================================================== -// Options - -// Each of the definitions above may have "options" attached. These are -// just annotations which may cause code to be generated slightly differently -// or may contain hints for code that manipulates protocol messages. -// -// Clients may define custom options as extensions of the *Options messages. -// These extensions may not yet be known at parsing time, so the parser cannot -// store the values in them. Instead it stores them in a field in the *Options -// message called uninterpreted_option. This field must have the same name -// across all *Options messages. We then use this field to populate the -// extensions when we build a descriptor, at which point all protos have been -// parsed and so all extensions are known. -// -// Extension numbers for custom options may be chosen as follows: -// * For options which will only be used within a single application or -// organization, or for experimental options, use field numbers 50000 -// through 99999. It is up to you to ensure that you do not use the -// same number for multiple options. -// * For options which will be published and used publicly by multiple -// independent entities, e-mail protobuf-global-extension-registry@google.com -// to reserve extension numbers. Simply provide your project name (e.g. -// Objective-C plugin) and your project website (if available) -- there's no -// need to explain how you intend to use them. Usually you only need one -// extension number. You can declare multiple options with only one extension -// number by putting them in a sub-message. See the Custom Options section of -// the docs for examples: -// https://developers.google.com/protocol-buffers/docs/proto#options -// If this turns out to be popular, a web service will be set up -// to automatically assign option numbers. - -message FileOptions { - - // Sets the Java package where classes generated from this .proto will be - // placed. By default, the proto package is used, but this is often - // inappropriate because proto packages do not normally start with backwards - // domain names. - optional string java_package = 1; - - // If set, all the classes from the .proto file are wrapped in a single - // outer class with the given name. This applies to both Proto1 - // (equivalent to the old "--one_java_file" option) and Proto2 (where - // a .proto always translates to a single class, but you may want to - // explicitly choose the class name). - optional string java_outer_classname = 8; - - // If set true, then the Java code generator will generate a separate .java - // file for each top-level message, enum, and service defined in the .proto - // file. Thus, these types will *not* be nested inside the outer class - // named by java_outer_classname. However, the outer class will still be - // generated to contain the file's getDescriptor() method as well as any - // top-level extensions defined in the file. - optional bool java_multiple_files = 10 [default = false]; - - // This option does nothing. - optional bool java_generate_equals_and_hash = 20 [deprecated = true]; - - // If set true, then the Java2 code generator will generate code that - // throws an exception whenever an attempt is made to assign a non-UTF-8 - // byte sequence to a string field. - // Message reflection will do the same. - // However, an extension field still accepts non-UTF-8 byte sequences. - // This option has no effect on when used with the lite runtime. - optional bool java_string_check_utf8 = 27 [default = false]; - - // Generated classes can be optimized for speed or code size. - enum OptimizeMode { - SPEED = 1; // Generate complete code for parsing, serialization, - // etc. - CODE_SIZE = 2; // Use ReflectionOps to implement these methods. - LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. - } - optional OptimizeMode optimize_for = 9 [default = SPEED]; - - // Sets the Go package where structs generated from this .proto will be - // placed. If omitted, the Go package will be derived from the following: - // - The basename of the package import path, if provided. - // - Otherwise, the package statement in the .proto file, if present. - // - Otherwise, the basename of the .proto file, without extension. - optional string go_package = 11; - - // Should generic services be generated in each language? "Generic" services - // are not specific to any particular RPC system. They are generated by the - // main code generators in each language (without additional plugins). - // Generic services were the only kind of service generation supported by - // early versions of google.protobuf. - // - // Generic services are now considered deprecated in favor of using plugins - // that generate code specific to your particular RPC system. Therefore, - // these default to false. Old code which depends on generic services should - // explicitly set them to true. - optional bool cc_generic_services = 16 [default = false]; - optional bool java_generic_services = 17 [default = false]; - optional bool py_generic_services = 18 [default = false]; - optional bool php_generic_services = 42 [default = false]; - - // Is this file deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for everything in the file, or it will be completely ignored; in the very - // least, this is a formalization for deprecating files. - optional bool deprecated = 23 [default = false]; - - // Enables the use of arenas for the proto messages in this file. This applies - // only to generated classes for C++. - optional bool cc_enable_arenas = 31 [default = true]; - - // Sets the objective c class prefix which is prepended to all objective c - // generated classes from this .proto. There is no default. - optional string objc_class_prefix = 36; - - // Namespace for generated classes; defaults to the package. - optional string csharp_namespace = 37; - - // By default Swift generators will take the proto package and CamelCase it - // replacing '.' with underscore and use that to prefix the types/symbols - // defined. When this options is provided, they will use this value instead - // to prefix the types/symbols defined. - optional string swift_prefix = 39; - - // Sets the php class prefix which is prepended to all php generated classes - // from this .proto. Default is empty. - optional string php_class_prefix = 40; - - // Use this option to change the namespace of php generated classes. Default - // is empty. When this option is empty, the package name will be used for - // determining the namespace. - optional string php_namespace = 41; - - // Use this option to change the namespace of php generated metadata classes. - // Default is empty. When this option is empty, the proto file name will be - // used for determining the namespace. - optional string php_metadata_namespace = 44; - - // Use this option to change the package of ruby generated classes. Default - // is empty. When this option is not set, the package name will be used for - // determining the ruby package. - optional string ruby_package = 45; - - // The parser stores options it doesn't recognize here. - // See the documentation for the "Options" section above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. - // See the documentation for the "Options" section above. - extensions 1000 to max; - - reserved 38; -} - -message MessageOptions { - // Set true to use the old proto1 MessageSet wire format for extensions. - // This is provided for backwards-compatibility with the MessageSet wire - // format. You should not use this for any other reason: It's less - // efficient, has fewer features, and is more complicated. - // - // The message must be defined exactly as follows: - // message Foo { - // option message_set_wire_format = true; - // extensions 4 to max; - // } - // Note that the message cannot have any defined fields; MessageSets only - // have extensions. - // - // All extensions of your type must be singular messages; e.g. they cannot - // be int32s, enums, or repeated messages. - // - // Because this is an option, the above two restrictions are not enforced by - // the protocol compiler. - optional bool message_set_wire_format = 1 [default = false]; - - // Disables the generation of the standard "descriptor()" accessor, which can - // conflict with a field of the same name. This is meant to make migration - // from proto1 easier; new code should avoid fields named "descriptor". - optional bool no_standard_descriptor_accessor = 2 [default = false]; - - // Is this message deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the message, or it will be completely ignored; in the very least, - // this is a formalization for deprecating messages. - optional bool deprecated = 3 [default = false]; - - // Whether the message is an automatically generated map entry type for the - // maps field. - // - // For maps fields: - // map map_field = 1; - // The parsed descriptor looks like: - // message MapFieldEntry { - // option map_entry = true; - // optional KeyType key = 1; - // optional ValueType value = 2; - // } - // repeated MapFieldEntry map_field = 1; - // - // Implementations may choose not to generate the map_entry=true message, but - // use a native map in the target language to hold the keys and values. - // The reflection APIs in such implementations still need to work as - // if the field is a repeated message field. - // - // NOTE: Do not set the option in .proto files. Always use the maps syntax - // instead. The option should only be implicitly set by the proto compiler - // parser. - optional bool map_entry = 7; - - reserved 8; // javalite_serializable - reserved 9; // javanano_as_lite - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message FieldOptions { - // The ctype option instructs the C++ code generator to use a different - // representation of the field than it normally would. See the specific - // options below. This option is not yet implemented in the open source - // release -- sorry, we'll try to include it in a future version! - optional CType ctype = 1 [default = STRING]; - enum CType { - // Default mode. - STRING = 0; - - CORD = 1; - - STRING_PIECE = 2; - } - // The packed option can be enabled for repeated primitive fields to enable - // a more efficient representation on the wire. Rather than repeatedly - // writing the tag and type for each element, the entire array is encoded as - // a single length-delimited blob. In proto3, only explicit setting it to - // false will avoid using packed encoding. - optional bool packed = 2; - - // The jstype option determines the JavaScript type used for values of the - // field. The option is permitted only for 64 bit integral and fixed types - // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING - // is represented as JavaScript string, which avoids loss of precision that - // can happen when a large value is converted to a floating point JavaScript. - // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to - // use the JavaScript "number" type. The behavior of the default option - // JS_NORMAL is implementation dependent. - // - // This option is an enum to permit additional types to be added, e.g. - // goog.math.Integer. - optional JSType jstype = 6 [default = JS_NORMAL]; - enum JSType { - // Use the default type. - JS_NORMAL = 0; - - // Use JavaScript strings. - JS_STRING = 1; - - // Use JavaScript numbers. - JS_NUMBER = 2; - } - - // Should this field be parsed lazily? Lazy applies only to message-type - // fields. It means that when the outer message is initially parsed, the - // inner message's contents will not be parsed but instead stored in encoded - // form. The inner message will actually be parsed when it is first accessed. - // - // This is only a hint. Implementations are free to choose whether to use - // eager or lazy parsing regardless of the value of this option. However, - // setting this option true suggests that the protocol author believes that - // using lazy parsing on this field is worth the additional bookkeeping - // overhead typically needed to implement it. - // - // This option does not affect the public interface of any generated code; - // all method signatures remain the same. Furthermore, thread-safety of the - // interface is not affected by this option; const methods remain safe to - // call from multiple threads concurrently, while non-const methods continue - // to require exclusive access. - // - // - // Note that implementations may choose not to check required fields within - // a lazy sub-message. That is, calling IsInitialized() on the outer message - // may return true even if the inner message has missing required fields. - // This is necessary because otherwise the inner message would have to be - // parsed in order to perform the check, defeating the purpose of lazy - // parsing. An implementation which chooses not to check required fields - // must be consistent about it. That is, for any particular sub-message, the - // implementation must either *always* check its required fields, or *never* - // check its required fields, regardless of whether or not the message has - // been parsed. - optional bool lazy = 5 [default = false]; - - // Is this field deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for accessors, or it will be completely ignored; in the very least, this - // is a formalization for deprecating fields. - optional bool deprecated = 3 [default = false]; - - // For Google-internal migration only. Do not use. - optional bool weak = 10 [default = false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; - - reserved 4; // removed jtype -} - -message OneofOptions { - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message EnumOptions { - - // Set this option to true to allow mapping different tag names to the same - // value. - optional bool allow_alias = 2; - - // Is this enum deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the enum, or it will be completely ignored; in the very least, this - // is a formalization for deprecating enums. - optional bool deprecated = 3 [default = false]; - - reserved 5; // javanano_as_lite - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message EnumValueOptions { - // Is this enum value deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the enum value, or it will be completely ignored; in the very least, - // this is a formalization for deprecating enum values. - optional bool deprecated = 1 [default = false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message ServiceOptions { - - // Note: Field numbers 1 through 32 are reserved for Google's internal RPC - // framework. We apologize for hoarding these numbers to ourselves, but - // we were already using them long before we decided to release Protocol - // Buffers. - - // Is this service deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the service, or it will be completely ignored; in the very least, - // this is a formalization for deprecating services. - optional bool deprecated = 33 [default = false]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -message MethodOptions { - - // Note: Field numbers 1 through 32 are reserved for Google's internal RPC - // framework. We apologize for hoarding these numbers to ourselves, but - // we were already using them long before we decided to release Protocol - // Buffers. - - // Is this method deprecated? - // Depending on the target platform, this can emit Deprecated annotations - // for the method, or it will be completely ignored; in the very least, - // this is a formalization for deprecating methods. - optional bool deprecated = 33 [default = false]; - - // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, - // or neither? HTTP based RPC implementation may choose GET verb for safe - // methods, and PUT verb for idempotent methods instead of the default POST. - enum IdempotencyLevel { - IDEMPOTENCY_UNKNOWN = 0; - NO_SIDE_EFFECTS = 1; // implies idempotent - IDEMPOTENT = 2; // idempotent, but may have side effects - } - optional IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; - - // The parser stores options it doesn't recognize here. See above. - repeated UninterpretedOption uninterpreted_option = 999; - - // Clients can define custom options in extensions of this message. See above. - extensions 1000 to max; -} - -// A message representing a option the parser does not recognize. This only -// appears in options protos created by the compiler::Parser class. -// DescriptorPool resolves these when building Descriptor objects. Therefore, -// options protos in descriptor objects (e.g. returned by Descriptor::options(), -// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions -// in them. -message UninterpretedOption { - // The name of the uninterpreted option. Each string represents a segment in - // a dot-separated name. is_extension is true iff a segment represents an - // extension (denoted with parentheses in options specs in .proto files). - // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents - // "foo.(bar.baz).qux". - message NamePart { - required string name_part = 1; - required bool is_extension = 2; - } - repeated NamePart name = 2; - - // The value of the uninterpreted option, in whatever type the tokenizer - // identified it as during parsing. Exactly one of these should be set. - optional string identifier_value = 3; - optional uint64 positive_int_value = 4; - optional int64 negative_int_value = 5; - optional double double_value = 6; - optional bytes string_value = 7; - optional string aggregate_value = 8; -} - -// =================================================================== -// Optional source code info - -// Encapsulates information about the original source file from which a -// FileDescriptorProto was generated. -message SourceCodeInfo { - // A Location identifies a piece of source code in a .proto file which - // corresponds to a particular definition. This information is intended - // to be useful to IDEs, code indexers, documentation generators, and similar - // tools. - // - // For example, say we have a file like: - // message Foo { - // optional string foo = 1; - // } - // Let's look at just the field definition: - // optional string foo = 1; - // ^ ^^ ^^ ^ ^^^ - // a bc de f ghi - // We have the following locations: - // span path represents - // [a,i) [ 4, 0, 2, 0 ] The whole field definition. - // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). - // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). - // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). - // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). - // - // Notes: - // - A location may refer to a repeated field itself (i.e. not to any - // particular index within it). This is used whenever a set of elements are - // logically enclosed in a single code segment. For example, an entire - // extend block (possibly containing multiple extension definitions) will - // have an outer location whose path refers to the "extensions" repeated - // field without an index. - // - Multiple locations may have the same path. This happens when a single - // logical declaration is spread out across multiple places. The most - // obvious example is the "extend" block again -- there may be multiple - // extend blocks in the same scope, each of which will have the same path. - // - A location's span is not always a subset of its parent's span. For - // example, the "extendee" of an extension declaration appears at the - // beginning of the "extend" block and is shared by all extensions within - // the block. - // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendant. For example, a "group" defines - // both a type and a field in a single declaration. Thus, the locations - // corresponding to the type and field and their components will overlap. - // - Code which tries to interpret locations should probably be designed to - // ignore those that it doesn't understand, as more types of locations could - // be recorded in the future. - repeated Location location = 1; - message Location { - // Identifies which part of the FileDescriptorProto was defined at this - // location. - // - // Each element is a field number or an index. They form a path from - // the root FileDescriptorProto to the place where the definition. For - // example, this path: - // [ 4, 3, 2, 7, 1 ] - // refers to: - // file.message_type(3) // 4, 3 - // .field(7) // 2, 7 - // .name() // 1 - // This is because FileDescriptorProto.message_type has field number 4: - // repeated DescriptorProto message_type = 4; - // and DescriptorProto.field has field number 2: - // repeated FieldDescriptorProto field = 2; - // and FieldDescriptorProto.name has field number 1: - // optional string name = 1; - // - // Thus, the above path gives the location of a field name. If we removed - // the last element: - // [ 4, 3, 2, 7 ] - // this path refers to the whole field declaration (from the beginning - // of the label to the terminating semicolon). - repeated int32 path = 1 [packed = true]; - - // Always has exactly three or four elements: start line, start column, - // end line (optional, otherwise assumed same as start line), end column. - // These are packed into a single field for efficiency. Note that line - // and column numbers are zero-based -- typically you will want to add - // 1 to each before displaying to a user. - repeated int32 span = 2 [packed = true]; - - // If this SourceCodeInfo represents a complete declaration, these are any - // comments appearing before and after the declaration which appear to be - // attached to the declaration. - // - // A series of line comments appearing on consecutive lines, with no other - // tokens appearing on those lines, will be treated as a single comment. - // - // leading_detached_comments will keep paragraphs of comments that appear - // before (but not connected to) the current element. Each paragraph, - // separated by empty lines, will be one comment element in the repeated - // field. - // - // Only the comment content is provided; comment markers (e.g. //) are - // stripped out. For block comments, leading whitespace and an asterisk - // will be stripped from the beginning of each line other than the first. - // Newlines are included in the output. - // - // Examples: - // - // optional int32 foo = 1; // Comment attached to foo. - // // Comment attached to bar. - // optional int32 bar = 2; - // - // optional string baz = 3; - // // Comment attached to baz. - // // Another line attached to baz. - // - // // Comment attached to qux. - // // - // // Another line attached to qux. - // optional double qux = 4; - // - // // Detached comment for corge. This is not leading or trailing comments - // // to qux or corge because there are blank lines separating it from - // // both. - // - // // Detached comment for corge paragraph 2. - // - // optional string corge = 5; - // /* Block comment attached - // * to corge. Leading asterisks - // * will be removed. */ - // /* Block comment attached to - // * grault. */ - // optional int32 grault = 6; - // - // // ignored detached comments. - optional string leading_comments = 3; - optional string trailing_comments = 4; - repeated string leading_detached_comments = 6; - } -} - -// Describes the relationship between generated code and its original source -// file. A GeneratedCodeInfo message is associated with only one generated -// source file, but may contain references to different source .proto files. -message GeneratedCodeInfo { - // An Annotation connects some span of text in generated code to an element - // of its generating .proto file. - repeated Annotation annotation = 1; - message Annotation { - // Identifies the element in the original source .proto file. This field - // is formatted the same as SourceCodeInfo.Location.path. - repeated int32 path = 1 [packed = true]; - - // Identifies the filesystem path to the original source .proto. - optional string source_file = 2; - - // Identifies the starting offset in bytes in the generated code - // that relates to the identified object. - optional int32 begin = 3; - - // Identifies the ending offset in bytes in the generated code that - // relates to the identified offset. The end offset should be one past - // the last relevant byte (so the length of the text = end - begin). - optional int32 end = 4; - } -} diff --git a/third_party/proto/tendermint/abci/types.proto b/third_party/proto/tendermint/abci/types.proto deleted file mode 100644 index 8e3a9093..00000000 --- a/third_party/proto/tendermint/abci/types.proto +++ /dev/null @@ -1,407 +0,0 @@ -syntax = "proto3"; -package tendermint.abci; - -option go_package = "github.com/tendermint/tendermint/abci/types"; - -// For more information on gogo.proto, see: -// https://github.com/gogo/protobuf/blob/master/extensions.md -import "tendermint/crypto/proof.proto"; -import "tendermint/types/types.proto"; -import "tendermint/crypto/keys.proto"; -import "tendermint/types/params.proto"; -import "google/protobuf/timestamp.proto"; -import "gogoproto/gogo.proto"; - -// This file is copied from http://github.com/tendermint/abci -// NOTE: When using custom types, mind the warnings. -// https://github.com/gogo/protobuf/blob/master/custom_types.md#warnings-and-issues - -//---------------------------------------- -// Request types - -message Request { - oneof value { - RequestEcho echo = 1; - RequestFlush flush = 2; - RequestInfo info = 3; - RequestSetOption set_option = 4; - RequestInitChain init_chain = 5; - RequestQuery query = 6; - RequestBeginBlock begin_block = 7; - RequestCheckTx check_tx = 8; - RequestDeliverTx deliver_tx = 9; - RequestEndBlock end_block = 10; - RequestCommit commit = 11; - RequestListSnapshots list_snapshots = 12; - RequestOfferSnapshot offer_snapshot = 13; - RequestLoadSnapshotChunk load_snapshot_chunk = 14; - RequestApplySnapshotChunk apply_snapshot_chunk = 15; - } -} - -message RequestEcho { - string message = 1; -} - -message RequestFlush {} - -message RequestInfo { - string version = 1; - uint64 block_version = 2; - uint64 p2p_version = 3; -} - -// nondeterministic -message RequestSetOption { - string key = 1; - string value = 2; -} - -message RequestInitChain { - google.protobuf.Timestamp time = 1 - [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; - string chain_id = 2; - ConsensusParams consensus_params = 3; - repeated ValidatorUpdate validators = 4 [(gogoproto.nullable) = false]; - bytes app_state_bytes = 5; - int64 initial_height = 6; -} - -message RequestQuery { - bytes data = 1; - string path = 2; - int64 height = 3; - bool prove = 4; -} - -message RequestBeginBlock { - bytes hash = 1; - tendermint.types.Header header = 2 [(gogoproto.nullable) = false]; - LastCommitInfo last_commit_info = 3 [(gogoproto.nullable) = false]; - repeated Evidence byzantine_validators = 4 [(gogoproto.nullable) = false]; -} - -enum CheckTxType { - NEW = 0 [(gogoproto.enumvalue_customname) = "New"]; - RECHECK = 1 [(gogoproto.enumvalue_customname) = "Recheck"]; -} - -message RequestCheckTx { - bytes tx = 1; - CheckTxType type = 2; -} - -message RequestDeliverTx { - bytes tx = 1; -} - -message RequestEndBlock { - int64 height = 1; -} - -message RequestCommit {} - -// lists available snapshots -message RequestListSnapshots { -} - -// offers a snapshot to the application -message RequestOfferSnapshot { - Snapshot snapshot = 1; // snapshot offered by peers - bytes app_hash = 2; // light client-verified app hash for snapshot height -} - -// loads a snapshot chunk -message RequestLoadSnapshotChunk { - uint64 height = 1; - uint32 format = 2; - uint32 chunk = 3; -} - -// Applies a snapshot chunk -message RequestApplySnapshotChunk { - uint32 index = 1; - bytes chunk = 2; - string sender = 3; -} - -//---------------------------------------- -// Response types - -message Response { - oneof value { - ResponseException exception = 1; - ResponseEcho echo = 2; - ResponseFlush flush = 3; - ResponseInfo info = 4; - ResponseSetOption set_option = 5; - ResponseInitChain init_chain = 6; - ResponseQuery query = 7; - ResponseBeginBlock begin_block = 8; - ResponseCheckTx check_tx = 9; - ResponseDeliverTx deliver_tx = 10; - ResponseEndBlock end_block = 11; - ResponseCommit commit = 12; - ResponseListSnapshots list_snapshots = 13; - ResponseOfferSnapshot offer_snapshot = 14; - ResponseLoadSnapshotChunk load_snapshot_chunk = 15; - ResponseApplySnapshotChunk apply_snapshot_chunk = 16; - } -} - -// nondeterministic -message ResponseException { - string error = 1; -} - -message ResponseEcho { - string message = 1; -} - -message ResponseFlush {} - -message ResponseInfo { - string data = 1; - - string version = 2; - uint64 app_version = 3; - - int64 last_block_height = 4; - bytes last_block_app_hash = 5; -} - -// nondeterministic -message ResponseSetOption { - uint32 code = 1; - // bytes data = 2; - string log = 3; - string info = 4; -} - -message ResponseInitChain { - ConsensusParams consensus_params = 1; - repeated ValidatorUpdate validators = 2 [(gogoproto.nullable) = false]; - bytes app_hash = 3; -} - -message ResponseQuery { - uint32 code = 1; - // bytes data = 2; // use "value" instead. - string log = 3; // nondeterministic - string info = 4; // nondeterministic - int64 index = 5; - bytes key = 6; - bytes value = 7; - tendermint.crypto.ProofOps proof_ops = 8; - int64 height = 9; - string codespace = 10; -} - -message ResponseBeginBlock { - repeated Event events = 1 - [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; -} - -message ResponseCheckTx { - uint32 code = 1; - bytes data = 2; - string log = 3; // nondeterministic - string info = 4; // nondeterministic - int64 gas_wanted = 5 [json_name = "gas_wanted"]; - int64 gas_used = 6 [json_name = "gas_used"]; - repeated Event events = 7 - [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; - string codespace = 8; -} - -message ResponseDeliverTx { - uint32 code = 1; - bytes data = 2; - string log = 3; // nondeterministic - string info = 4; // nondeterministic - int64 gas_wanted = 5 [json_name = "gas_wanted"]; - int64 gas_used = 6 [json_name = "gas_used"]; - repeated Event events = 7 - [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; // nondeterministic - string codespace = 8; -} - -message ResponseEndBlock { - repeated ValidatorUpdate validator_updates = 1 - [(gogoproto.nullable) = false]; - ConsensusParams consensus_param_updates = 2; - repeated Event events = 3 - [(gogoproto.nullable) = false, (gogoproto.jsontag) = "events,omitempty"]; -} - -message ResponseCommit { - // reserve 1 - bytes data = 2; - int64 retain_height = 3; -} - -message ResponseListSnapshots { - repeated Snapshot snapshots = 1; -} - -message ResponseOfferSnapshot { - Result result = 1; - - enum Result { - UNKNOWN = 0; // Unknown result, abort all snapshot restoration - ACCEPT = 1; // Snapshot accepted, apply chunks - ABORT = 2; // Abort all snapshot restoration - REJECT = 3; // Reject this specific snapshot, try others - REJECT_FORMAT = 4; // Reject all snapshots of this format, try others - REJECT_SENDER = 5; // Reject all snapshots from the sender(s), try others - } -} - -message ResponseLoadSnapshotChunk { - bytes chunk = 1; -} - -message ResponseApplySnapshotChunk { - Result result = 1; - repeated uint32 refetch_chunks = 2; // Chunks to refetch and reapply - repeated string reject_senders = 3; // Chunk senders to reject and ban - - enum Result { - UNKNOWN = 0; // Unknown result, abort all snapshot restoration - ACCEPT = 1; // Chunk successfully accepted - ABORT = 2; // Abort all snapshot restoration - RETRY = 3; // Retry chunk (combine with refetch and reject) - RETRY_SNAPSHOT = 4; // Retry snapshot (combine with refetch and reject) - REJECT_SNAPSHOT = 5; // Reject this snapshot, try others - } -} - -//---------------------------------------- -// Misc. - -// ConsensusParams contains all consensus-relevant parameters -// that can be adjusted by the abci app -message ConsensusParams { - BlockParams block = 1; - tendermint.types.EvidenceParams evidence = 2; - tendermint.types.ValidatorParams validator = 3; - tendermint.types.VersionParams version = 4; -} - -// BlockParams contains limits on the block size. -message BlockParams { - // Note: must be greater than 0 - int64 max_bytes = 1; - // Note: must be greater or equal to -1 - int64 max_gas = 2; -} - -message LastCommitInfo { - int32 round = 1; - repeated VoteInfo votes = 2 [(gogoproto.nullable) = false]; -} - -// Event allows application developers to attach additional information to -// ResponseBeginBlock, ResponseEndBlock, ResponseCheckTx and ResponseDeliverTx. -// Later, transactions may be queried using these events. -message Event { - string type = 1; - repeated EventAttribute attributes = 2 [ - (gogoproto.nullable) = false, - (gogoproto.jsontag) = "attributes,omitempty" - ]; -} - -// EventAttribute is a single key-value pair, associated with an event. -message EventAttribute { - bytes key = 1; - bytes value = 2; - bool index = 3; // nondeterministic -} - -// TxResult contains results of executing the transaction. -// -// One usage is indexing transaction results. -message TxResult { - int64 height = 1; - uint32 index = 2; - bytes tx = 3; - ResponseDeliverTx result = 4 [(gogoproto.nullable) = false]; -} - -//---------------------------------------- -// Blockchain Types - -// Validator -message Validator { - bytes address = 1; // The first 20 bytes of SHA256(public key) - // PubKey pub_key = 2 [(gogoproto.nullable)=false]; - int64 power = 3; // The voting power -} - -// ValidatorUpdate -message ValidatorUpdate { - tendermint.crypto.PublicKey pub_key = 1 [(gogoproto.nullable) = false]; - int64 power = 2; -} - -// VoteInfo -message VoteInfo { - Validator validator = 1 [(gogoproto.nullable) = false]; - bool signed_last_block = 2; -} - -enum EvidenceType { - UNKNOWN = 0; - DUPLICATE_VOTE = 1; - LIGHT_CLIENT_ATTACK = 2; -} - -message Evidence { - EvidenceType type = 1; - // The offending validator - Validator validator = 2 [(gogoproto.nullable) = false]; - // The height when the offense occurred - int64 height = 3; - // The corresponding time where the offense occurred - google.protobuf.Timestamp time = 4 [ - (gogoproto.nullable) = false, - (gogoproto.stdtime) = true - ]; - // Total voting power of the validator set in case the ABCI application does - // not store historical validators. - // https://github.com/tendermint/tendermint/issues/4581 - int64 total_voting_power = 5; -} - -//---------------------------------------- -// State Sync Types - -message Snapshot { - uint64 height = 1; // The height at which the snapshot was taken - uint32 format = 2; // The application-specific snapshot format - uint32 chunks = 3; // Number of chunks in the snapshot - bytes hash = 4; // Arbitrary snapshot hash, equal only if identical - bytes metadata = 5; // Arbitrary application metadata -} - -//---------------------------------------- -// Service Definition - -service ABCIApplication { - rpc Echo(RequestEcho) returns (ResponseEcho); - rpc Flush(RequestFlush) returns (ResponseFlush); - rpc Info(RequestInfo) returns (ResponseInfo); - rpc SetOption(RequestSetOption) returns (ResponseSetOption); - rpc DeliverTx(RequestDeliverTx) returns (ResponseDeliverTx); - rpc CheckTx(RequestCheckTx) returns (ResponseCheckTx); - rpc Query(RequestQuery) returns (ResponseQuery); - rpc Commit(RequestCommit) returns (ResponseCommit); - rpc InitChain(RequestInitChain) returns (ResponseInitChain); - rpc BeginBlock(RequestBeginBlock) returns (ResponseBeginBlock); - rpc EndBlock(RequestEndBlock) returns (ResponseEndBlock); - rpc ListSnapshots(RequestListSnapshots) returns (ResponseListSnapshots); - rpc OfferSnapshot(RequestOfferSnapshot) returns (ResponseOfferSnapshot); - rpc LoadSnapshotChunk(RequestLoadSnapshotChunk) returns (ResponseLoadSnapshotChunk); - rpc ApplySnapshotChunk(RequestApplySnapshotChunk) returns (ResponseApplySnapshotChunk); -} diff --git a/third_party/proto/tendermint/crypto/keys.proto b/third_party/proto/tendermint/crypto/keys.proto deleted file mode 100644 index 16fd7adf..00000000 --- a/third_party/proto/tendermint/crypto/keys.proto +++ /dev/null @@ -1,17 +0,0 @@ -syntax = "proto3"; -package tendermint.crypto; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/crypto"; - -import "gogoproto/gogo.proto"; - -// PublicKey defines the keys available for use with Tendermint Validators -message PublicKey { - option (gogoproto.compare) = true; - option (gogoproto.equal) = true; - - oneof sum { - bytes ed25519 = 1; - bytes secp256k1 = 2; - } -} diff --git a/third_party/proto/tendermint/crypto/proof.proto b/third_party/proto/tendermint/crypto/proof.proto deleted file mode 100644 index 975df768..00000000 --- a/third_party/proto/tendermint/crypto/proof.proto +++ /dev/null @@ -1,41 +0,0 @@ -syntax = "proto3"; -package tendermint.crypto; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/crypto"; - -import "gogoproto/gogo.proto"; - -message Proof { - int64 total = 1; - int64 index = 2; - bytes leaf_hash = 3; - repeated bytes aunts = 4; -} - -message ValueOp { - // Encoded in ProofOp.Key. - bytes key = 1; - - // To encode in ProofOp.Data - Proof proof = 2; -} - -message DominoOp { - string key = 1; - string input = 2; - string output = 3; -} - -// ProofOp defines an operation used for calculating Merkle root -// The data could be arbitrary format, providing nessecary data -// for example neighbouring node hash -message ProofOp { - string type = 1; - bytes key = 2; - bytes data = 3; -} - -// ProofOps is Merkle proof defined by the list of ProofOps -message ProofOps { - repeated ProofOp ops = 1 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/tendermint/libs/bits/types.proto b/third_party/proto/tendermint/libs/bits/types.proto deleted file mode 100644 index 3111d113..00000000 --- a/third_party/proto/tendermint/libs/bits/types.proto +++ /dev/null @@ -1,9 +0,0 @@ -syntax = "proto3"; -package tendermint.libs.bits; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/libs/bits"; - -message BitArray { - int64 bits = 1; - repeated uint64 elems = 2; -} diff --git a/third_party/proto/tendermint/p2p/types.proto b/third_party/proto/tendermint/p2p/types.proto deleted file mode 100644 index 0d42ea40..00000000 --- a/third_party/proto/tendermint/p2p/types.proto +++ /dev/null @@ -1,34 +0,0 @@ -syntax = "proto3"; -package tendermint.p2p; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/p2p"; - -import "gogoproto/gogo.proto"; - -message NetAddress { - string id = 1 [(gogoproto.customname) = "ID"]; - string ip = 2 [(gogoproto.customname) = "IP"]; - uint32 port = 3; -} - -message ProtocolVersion { - uint64 p2p = 1 [(gogoproto.customname) = "P2P"]; - uint64 block = 2; - uint64 app = 3; -} - -message DefaultNodeInfo { - ProtocolVersion protocol_version = 1 [(gogoproto.nullable) = false]; - string default_node_id = 2 [(gogoproto.customname) = "DefaultNodeID"]; - string listen_addr = 3; - string network = 4; - string version = 5; - bytes channels = 6; - string moniker = 7; - DefaultNodeInfoOther other = 8 [(gogoproto.nullable) = false]; -} - -message DefaultNodeInfoOther { - string tx_index = 1; - string rpc_address = 2 [(gogoproto.customname) = "RPCAddress"]; -} diff --git a/third_party/proto/tendermint/types/block.proto b/third_party/proto/tendermint/types/block.proto deleted file mode 100644 index 84e9bb15..00000000 --- a/third_party/proto/tendermint/types/block.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; - -import "gogoproto/gogo.proto"; -import "tendermint/types/types.proto"; -import "tendermint/types/evidence.proto"; - -message Block { - Header header = 1 [(gogoproto.nullable) = false]; - Data data = 2 [(gogoproto.nullable) = false]; - tendermint.types.EvidenceList evidence = 3 [(gogoproto.nullable) = false]; - Commit last_commit = 4; -} diff --git a/third_party/proto/tendermint/types/evidence.proto b/third_party/proto/tendermint/types/evidence.proto deleted file mode 100644 index 3b234571..00000000 --- a/third_party/proto/tendermint/types/evidence.proto +++ /dev/null @@ -1,38 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; - -import "gogoproto/gogo.proto"; -import "google/protobuf/timestamp.proto"; -import "tendermint/types/types.proto"; -import "tendermint/types/validator.proto"; - -message Evidence { - oneof sum { - DuplicateVoteEvidence duplicate_vote_evidence = 1; - LightClientAttackEvidence light_client_attack_evidence = 2; - } -} - -// DuplicateVoteEvidence contains evidence of a validator signed two conflicting votes. -message DuplicateVoteEvidence { - tendermint.types.Vote vote_a = 1; - tendermint.types.Vote vote_b = 2; - int64 total_voting_power = 3; - int64 validator_power = 4; - google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; -} - -// LightClientAttackEvidence contains evidence of a set of validators attempting to mislead a light client. -message LightClientAttackEvidence { - tendermint.types.LightBlock conflicting_block = 1; - int64 common_height = 2; - repeated tendermint.types.Validator byzantine_validators = 3; - int64 total_voting_power = 4; - google.protobuf.Timestamp timestamp = 5 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; -} - -message EvidenceList { - repeated Evidence evidence = 1 [(gogoproto.nullable) = false]; -} diff --git a/third_party/proto/tendermint/types/params.proto b/third_party/proto/tendermint/types/params.proto deleted file mode 100644 index 0de7d846..00000000 --- a/third_party/proto/tendermint/types/params.proto +++ /dev/null @@ -1,80 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; - -import "gogoproto/gogo.proto"; -import "google/protobuf/duration.proto"; - -option (gogoproto.equal_all) = true; - -// ConsensusParams contains consensus critical parameters that determine the -// validity of blocks. -message ConsensusParams { - BlockParams block = 1 [(gogoproto.nullable) = false]; - EvidenceParams evidence = 2 [(gogoproto.nullable) = false]; - ValidatorParams validator = 3 [(gogoproto.nullable) = false]; - VersionParams version = 4 [(gogoproto.nullable) = false]; -} - -// BlockParams contains limits on the block size. -message BlockParams { - // Max block size, in bytes. - // Note: must be greater than 0 - int64 max_bytes = 1; - // Max gas per block. - // Note: must be greater or equal to -1 - int64 max_gas = 2; - // Minimum time increment between consecutive blocks (in milliseconds) If the - // block header timestamp is ahead of the system clock, decrease this value. - // - // Not exposed to the application. - int64 time_iota_ms = 3; -} - -// EvidenceParams determine how we handle evidence of malfeasance. -message EvidenceParams { - // Max age of evidence, in blocks. - // - // The basic formula for calculating this is: MaxAgeDuration / {average block - // time}. - int64 max_age_num_blocks = 1; - - // Max age of evidence, in time. - // - // It should correspond with an app's "unbonding period" or other similar - // mechanism for handling [Nothing-At-Stake - // attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). - google.protobuf.Duration max_age_duration = 2 - [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; - - // This sets the maximum size of total evidence in bytes that can be committed in a single block. - // and should fall comfortably under the max block bytes. - // Default is 1048576 or 1MB - int64 max_bytes = 3; -} - -// ValidatorParams restrict the public key types validators can use. -// NOTE: uses ABCI pubkey naming, not Amino names. -message ValidatorParams { - option (gogoproto.populate) = true; - option (gogoproto.equal) = true; - - repeated string pub_key_types = 1; -} - -// VersionParams contains the ABCI application version. -message VersionParams { - option (gogoproto.populate) = true; - option (gogoproto.equal) = true; - - uint64 app_version = 1; -} - -// HashedParams is a subset of ConsensusParams. -// -// It is hashed into the Header.ConsensusHash. -message HashedParams { - int64 block_max_bytes = 1; - int64 block_max_gas = 2; -} diff --git a/third_party/proto/tendermint/types/types.proto b/third_party/proto/tendermint/types/types.proto deleted file mode 100644 index 7f7ea74c..00000000 --- a/third_party/proto/tendermint/types/types.proto +++ /dev/null @@ -1,157 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; - -import "gogoproto/gogo.proto"; -import "google/protobuf/timestamp.proto"; -import "tendermint/crypto/proof.proto"; -import "tendermint/version/types.proto"; -import "tendermint/types/validator.proto"; - -// BlockIdFlag indicates which BlcokID the signature is for -enum BlockIDFlag { - option (gogoproto.goproto_enum_stringer) = true; - option (gogoproto.goproto_enum_prefix) = false; - - BLOCK_ID_FLAG_UNKNOWN = 0 [(gogoproto.enumvalue_customname) = "BlockIDFlagUnknown"]; - BLOCK_ID_FLAG_ABSENT = 1 [(gogoproto.enumvalue_customname) = "BlockIDFlagAbsent"]; - BLOCK_ID_FLAG_COMMIT = 2 [(gogoproto.enumvalue_customname) = "BlockIDFlagCommit"]; - BLOCK_ID_FLAG_NIL = 3 [(gogoproto.enumvalue_customname) = "BlockIDFlagNil"]; -} - -// SignedMsgType is a type of signed message in the consensus. -enum SignedMsgType { - option (gogoproto.goproto_enum_stringer) = true; - option (gogoproto.goproto_enum_prefix) = false; - - SIGNED_MSG_TYPE_UNKNOWN = 0 [(gogoproto.enumvalue_customname) = "UnknownType"]; - // Votes - SIGNED_MSG_TYPE_PREVOTE = 1 [(gogoproto.enumvalue_customname) = "PrevoteType"]; - SIGNED_MSG_TYPE_PRECOMMIT = 2 [(gogoproto.enumvalue_customname) = "PrecommitType"]; - - // Proposals - SIGNED_MSG_TYPE_PROPOSAL = 32 [(gogoproto.enumvalue_customname) = "ProposalType"]; -} - -// PartsetHeader -message PartSetHeader { - uint32 total = 1; - bytes hash = 2; -} - -message Part { - uint32 index = 1; - bytes bytes = 2; - tendermint.crypto.Proof proof = 3 [(gogoproto.nullable) = false]; -} - -// BlockID -message BlockID { - bytes hash = 1; - PartSetHeader part_set_header = 2 [(gogoproto.nullable) = false]; -} - -// -------------------------------- - -// Header defines the structure of a Tendermint block header. -message Header { - // basic block info - tendermint.version.Consensus version = 1 [(gogoproto.nullable) = false]; - string chain_id = 2 [(gogoproto.customname) = "ChainID"]; - int64 height = 3; - google.protobuf.Timestamp time = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; - - // prev block info - BlockID last_block_id = 5 [(gogoproto.nullable) = false]; - - // hashes of block data - bytes last_commit_hash = 6; // commit from validators from the last block - bytes data_hash = 7; // transactions - - // hashes from the app output from the prev block - bytes validators_hash = 8; // validators for the current block - bytes next_validators_hash = 9; // validators for the next block - bytes consensus_hash = 10; // consensus params for current block - bytes app_hash = 11; // state after txs from the previous block - bytes last_results_hash = 12; // root hash of all results from the txs from the previous block - - // consensus info - bytes evidence_hash = 13; // evidence included in the block - bytes proposer_address = 14; // original proposer of the block -} - -// Data contains the set of transactions included in the block -message Data { - // Txs that will be applied by state @ block.Height+1. - // NOTE: not all txs here are valid. We're just agreeing on the order first. - // This means that block.AppHash does not include these txs. - repeated bytes txs = 1; -} - -// Vote represents a prevote, precommit, or commit vote from validators for -// consensus. -message Vote { - SignedMsgType type = 1; - int64 height = 2; - int32 round = 3; - BlockID block_id = 4 - [(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"]; // zero if vote is nil. - google.protobuf.Timestamp timestamp = 5 - [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; - bytes validator_address = 6; - int32 validator_index = 7; - bytes signature = 8; -} - -// Commit contains the evidence that a block was committed by a set of validators. -message Commit { - int64 height = 1; - int32 round = 2; - BlockID block_id = 3 [(gogoproto.nullable) = false, (gogoproto.customname) = "BlockID"]; - repeated CommitSig signatures = 4 [(gogoproto.nullable) = false]; -} - -// CommitSig is a part of the Vote included in a Commit. -message CommitSig { - BlockIDFlag block_id_flag = 1; - bytes validator_address = 2; - google.protobuf.Timestamp timestamp = 3 - [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; - bytes signature = 4; -} - -message Proposal { - SignedMsgType type = 1; - int64 height = 2; - int32 round = 3; - int32 pol_round = 4; - BlockID block_id = 5 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false]; - google.protobuf.Timestamp timestamp = 6 - [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; - bytes signature = 7; -} - -message SignedHeader { - Header header = 1; - Commit commit = 2; -} - -message LightBlock { - SignedHeader signed_header = 1; - tendermint.types.ValidatorSet validator_set = 2; -} - -message BlockMeta { - BlockID block_id = 1 [(gogoproto.customname) = "BlockID", (gogoproto.nullable) = false]; - int64 block_size = 2; - Header header = 3 [(gogoproto.nullable) = false]; - int64 num_txs = 4; -} - -// TxProof represents a Merkle proof of the presence of a transaction in the Merkle tree. -message TxProof { - bytes root_hash = 1; - bytes data = 2; - tendermint.crypto.Proof proof = 3; -} diff --git a/third_party/proto/tendermint/types/validator.proto b/third_party/proto/tendermint/types/validator.proto deleted file mode 100644 index 49860b96..00000000 --- a/third_party/proto/tendermint/types/validator.proto +++ /dev/null @@ -1,25 +0,0 @@ -syntax = "proto3"; -package tendermint.types; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; - -import "gogoproto/gogo.proto"; -import "tendermint/crypto/keys.proto"; - -message ValidatorSet { - repeated Validator validators = 1; - Validator proposer = 2; - int64 total_voting_power = 3; -} - -message Validator { - bytes address = 1; - tendermint.crypto.PublicKey pub_key = 2 [(gogoproto.nullable) = false]; - int64 voting_power = 3; - int64 proposer_priority = 4; -} - -message SimpleValidator { - tendermint.crypto.PublicKey pub_key = 1; - int64 voting_power = 2; -} diff --git a/third_party/proto/tendermint/version/types.proto b/third_party/proto/tendermint/version/types.proto deleted file mode 100644 index 6061868b..00000000 --- a/third_party/proto/tendermint/version/types.proto +++ /dev/null @@ -1,24 +0,0 @@ -syntax = "proto3"; -package tendermint.version; - -option go_package = "github.com/tendermint/tendermint/proto/tendermint/version"; - -import "gogoproto/gogo.proto"; - -// App includes the protocol and software version for the application. -// This information is included in ResponseInfo. The App.Protocol can be -// updated in ResponseEndBlock. -message App { - uint64 protocol = 1; - string software = 2; -} - -// Consensus captures the consensus rules for processing a block in the blockchain, -// including all blockchain data structures and the rules of the application's -// state transition machine. -message Consensus { - option (gogoproto.equal) = true; - - uint64 block = 1; - uint64 app = 2; -} diff --git a/types/account.go b/types/account.go index fe519138..cc558ad4 100644 --- a/types/account.go +++ b/types/account.go @@ -30,7 +30,7 @@ type EthAccountI interface { authtypes.AccountI // EthAddress returns the ethereum Address representation of the AccAddress EthAddress() common.Address - // CodeHash is the keccak256 hash of the contract code (if any) + // GetCodeHash is the keccak256 hash of the contract code (if any) GetCodeHash() common.Hash // SetCodeHash sets the code hash to the account fields SetCodeHash(code common.Hash) error diff --git a/types/account.pb.go b/types/account.pb.go index a83022f9..f2d6ab2e 100644 --- a/types/account.pb.go +++ b/types/account.pb.go @@ -5,10 +5,10 @@ package types import ( fmt "fmt" + _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/x/auth/types" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" - _ "github.com/regen-network/cosmos-proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" @@ -26,7 +26,7 @@ var _ = math.Inf const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // EthAccount implements the authtypes.AccountI interface and embeds an -// authtypes.BaseAccount type. It is compatible with the auth accountKeeper. +// authtypes.BaseAccount type. It is compatible with the auth AccountKeeper. type EthAccount struct { *types.BaseAccount `protobuf:"bytes,1,opt,name=base_account,json=baseAccount,proto3,embedded=base_account" json:"base_account,omitempty" yaml:"base_account"` CodeHash string `protobuf:"bytes,2,opt,name=code_hash,json=codeHash,proto3" json:"code_hash,omitempty" yaml:"code_hash"` @@ -75,7 +75,7 @@ var fileDescriptor_a508f4779e8b8a8e = []byte{ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x50, 0xb1, 0x4e, 0xf3, 0x30, 0x18, 0xb4, 0xff, 0xe1, 0x17, 0x4d, 0x19, 0xaa, 0xd2, 0xa1, 0x14, 0xc9, 0xae, 0x32, 0x95, 0xa1, 0xb6, 0x52, 0xb6, 0x6e, 0x04, 0x21, 0xc1, 0xda, 0x91, 0xa5, 0x38, 0xae, 0x55, 0x57, 0xd0, 0xb8, - 0xaa, 0x9d, 0x88, 0xbe, 0x01, 0x23, 0x23, 0x63, 0x1e, 0x82, 0x87, 0x60, 0x8c, 0x98, 0x98, 0x22, + 0xaa, 0x9d, 0x88, 0xbe, 0x01, 0x23, 0x23, 0x63, 0x1e, 0x82, 0x87, 0x40, 0x4c, 0x19, 0x99, 0x22, 0x94, 0x08, 0x89, 0xb9, 0x4f, 0x80, 0x1a, 0x1b, 0xe8, 0xe4, 0xef, 0xbe, 0xf3, 0xdd, 0xd9, 0xe7, 0x21, 0x6d, 0xd6, 0xcc, 0x28, 0x4d, 0xcd, 0x66, 0x25, 0x34, 0x4d, 0x03, 0xca, 0x38, 0x57, 0x49, 0x6c, 0xc8, 0x6a, 0xad, 0x8c, 0x6a, 0xb7, 0x1c, 0x4f, 0x6a, 0x9e, 0xa4, 0x41, 0x0f, 0x71, 0xa5, @@ -91,7 +91,7 @@ var fileDescriptor_a508f4779e8b8a8e = []byte{ 0xe8, 0x83, 0x2d, 0xc7, 0x56, 0xe6, 0x52, 0xaf, 0xc3, 0x8b, 0xd7, 0x12, 0xc1, 0xbc, 0x44, 0xf0, 0xa3, 0x44, 0xf0, 0xa9, 0x42, 0x20, 0xaf, 0x10, 0x78, 0xaf, 0x10, 0xb8, 0x39, 0xdd, 0x73, 0x73, 0x7d, 0xc7, 0xc2, 0xfc, 0x8c, 0x43, 0x2e, 0xd9, 0x22, 0xb6, 0x6e, 0xd1, 0xff, 0xba, 0xb3, 0xb3, - 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x28, 0x9f, 0xf3, 0x36, 0xb8, 0x01, 0x00, 0x00, + 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x67, 0x98, 0xcb, 0x0f, 0xb8, 0x01, 0x00, 0x00, } func (m *EthAccount) Marshal() (dAtA []byte, err error) { diff --git a/types/address_test.go b/types/address_test.go index 0d387946..dc6a3a64 100644 --- a/types/address_test.go +++ b/types/address_test.go @@ -14,7 +14,7 @@ import ( func initCodec() codec.Codec { encodingConfig := app.MakeTestEncodingConfig() - cdc := encodingConfig.Marshaler + cdc := encodingConfig.Codec return cdc } diff --git a/types/coin.go b/types/coin.go index c1a6f0fb..c325d1c5 100644 --- a/types/coin.go +++ b/types/coin.go @@ -1,6 +1,7 @@ package types import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -26,11 +27,11 @@ const ( DefaultGasPrice = 20 ) -func NewCoin(amount sdk.Int) sdk.Coin { +func NewCoin(amount sdkmath.Int) sdk.Coin { return sdk.NewCoin(Wei, amount) } -func NewDecCoin(amount sdk.Int) sdk.DecCoin { +func NewDecCoin(amount sdkmath.Int) sdk.DecCoin { return sdk.NewDecCoin(Wei, amount) } diff --git a/types/config.go b/types/config.go index 63251490..ceaacffb 100644 --- a/types/config.go +++ b/types/config.go @@ -31,7 +31,7 @@ var ( initConfig sync.Once ) -// New returns a new Config with default values. +// NewConfig returns a new Config with default values. func NewConfig() *Config { return &Config{ sealedch: make(chan struct{}), @@ -91,7 +91,8 @@ func (config *Config) SetBech32PrefixForAccount(addressPrefix, pubKeyPrefix stri } // SetBech32PrefixForValidator builds the Config with Bech32 addressPrefix and publKeyPrefix for validators -// and returns the config instance +// +// and returns the config instance func (config *Config) SetBech32PrefixForValidator(addressPrefix, pubKeyPrefix string) { sdkConfig := sdk.GetConfig() sdkConfig.SetBech32PrefixForValidator(addressPrefix, pubKeyPrefix) @@ -131,7 +132,7 @@ func (config *Config) SetAddressVerifier(addressVerifier func([]byte) error) { config.addressVerifier = addressVerifier } -// Set the BIP-0044 CoinType code on the config +// SetCoinType Set the BIP-0044 CoinType code on the config func (config *Config) SetCoinType(coinType uint32) { config.assertNotSealed() config.coinType = coinType diff --git a/types/errors.go b/types/errors.go index 28e286a0..204bd67c 100644 --- a/types/errors.go +++ b/types/errors.go @@ -1,7 +1,7 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "cosmossdk.io/errors" ) const ( @@ -13,14 +13,14 @@ const ( var ( // ErrInvalidValue returns an error resulting from an invalid value. - ErrInvalidValue = sdkerrors.Register(RootCodespace, 2, "invalid value") + ErrInvalidValue = errors.Register(RootCodespace, 2, "invalid value") // ErrInvalidChainID returns an error resulting from an invalid chain ID. - ErrInvalidChainID = sdkerrors.Register(RootCodespace, 3, "invalid chain ID") + ErrInvalidChainID = errors.Register(RootCodespace, 3, "invalid chain ID") // ErrMarshalBigInt returns an error resulting from marshaling a big.Int to a string. - ErrMarshalBigInt = sdkerrors.Register(RootCodespace, 5, "cannot marshal big.Int to string") + ErrMarshalBigInt = errors.Register(RootCodespace, 5, "cannot marshal big.Int to string") // ErrUnmarshalBigInt returns an error resulting from unmarshaling a big.Int from a string. - ErrUnmarshalBigInt = sdkerrors.Register(RootCodespace, 6, "cannot unmarshal big.Int from string") + ErrUnmarshalBigInt = errors.Register(RootCodespace, 6, "cannot unmarshal big.Int from string") ) diff --git a/types/gasmeter.go b/types/gasmeter.go index a3ce844c..6a77b48a 100644 --- a/types/gasmeter.go +++ b/types/gasmeter.go @@ -41,6 +41,10 @@ func (g *infiniteGasMeterWithLimit) GasConsumedToLimit() sdk.Gas { return g.consumed } +func (g *infiniteGasMeterWithLimit) GasRemaining() sdk.Gas { + return g.limit +} + func (g *infiniteGasMeterWithLimit) Limit() sdk.Gas { return g.limit } diff --git a/types/hdpath.go b/types/hdpath.go index 02732d92..27b01135 100644 --- a/types/hdpath.go +++ b/types/hdpath.go @@ -8,7 +8,7 @@ type ( HDPathIterator func() ethaccounts.DerivationPath ) -// HDPathIterator receives a base path as a string and a boolean for the desired iterator type and +// NewHDPathIterator receives a base path as a string and a boolean for the desired iterator type and // returns a function that iterates over the base HD path, returning the string. func NewHDPathIterator(basePath string, ledgerIter bool) (HDPathIterator, error) { hdPath, err := ethaccounts.ParseDerivationPath(basePath) diff --git a/types/validation.go b/types/validation.go index a2a4ba16..dc3873fa 100644 --- a/types/validation.go +++ b/types/validation.go @@ -4,8 +4,10 @@ import ( "bytes" "math" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" + + "cosmossdk.io/errors" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) // IsEmptyHash returns true if the hash corresponds to an empty ethereum hex hash. @@ -21,7 +23,7 @@ func IsZeroAddress(address string) bool { // ValidateHexAddress returns an error if the provided string is either not a hex formatted string address func ValidateHexAddress(address string) error { if !common.IsHexAddress(address) { - return sdkerrors.Wrapf( + return errors.Wrapf( sdkerrors.ErrInvalidAddress, "address '%s' is not a valid ethereum hex address", address, ) @@ -29,10 +31,10 @@ func ValidateHexAddress(address string) error { return nil } -// SafeInt64 checks for overflows while casting a uint64 to int64 value. +// SafeInt64 checks for overflows while casting an uint64 to int64 value. func SafeInt64(value uint64) (int64, error) { if value > uint64(math.MaxInt64) { - return 0, sdkerrors.Wrapf(sdkerrors.ErrInvalidHeight, "uint64 value %v cannot exceed %v", value, int64(math.MaxInt64)) + return 0, errors.Wrapf(sdkerrors.ErrInvalidHeight, "uint64 value %v cannot exceed %v", value, int64(math.MaxInt64)) } return int64(value), nil diff --git a/types/wrappers.pb.go b/types/wrappers.pb.go index 29940b08..52d89322 100644 --- a/types/wrappers.pb.go +++ b/types/wrappers.pb.go @@ -7,8 +7,8 @@ import ( fmt "fmt" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" diff --git a/x/evm/keeper/abci.go b/x/evm/abci.go similarity index 74% rename from x/evm/keeper/abci.go rename to x/evm/abci.go index 14396427..4f3d10e2 100644 --- a/x/evm/keeper/abci.go +++ b/x/evm/abci.go @@ -1,18 +1,20 @@ -package keeper +package evm import ( "fmt" - sdk "github.com/cosmos/cosmos-sdk/types" - abci "github.com/tendermint/tendermint/abci/types" - ethtypes "github.com/ethereum/go-ethereum/core/types" + abci "github.com/cometbft/cometbft/abci/types" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/stratosnet/stratos-chain/x/evm/keeper" "github.com/stratosnet/stratos-chain/x/evm/types" ) -// BeginBlock sets the sdk Context and EIP155 chain id to the Keeper. -func (k *Keeper) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) { +// BeginBlocker sets the sdk Context and EIP155 chain id to the Keeper. +func BeginBlocker(ctx sdk.Context, _ abci.RequestBeginBlock, k *keeper.Keeper) { baseFee := k.CalculateBaseFee(ctx) // return immediately if base fee is nil @@ -31,10 +33,10 @@ func (k *Keeper) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) { }) } -// EndBlock also retrieves the bloom filter value from the transient store and commits it to the +// EndBlocker also retrieves the bloom filter value from the transient store and commits it to the // KVStore. The EVM end block logic doesn't update the validator set, thus it returns // an empty slice. -func (k *Keeper) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate { +func EndBlocker(ctx sdk.Context, _ abci.RequestEndBlock, k *keeper.Keeper) []abci.ValidatorUpdate { if ctx.BlockGasMeter() == nil { k.Logger(ctx).Error("block gas meter is nil when setting block gas used") panic("block gas meter is nil when setting block gas used") diff --git a/x/evm/client/rest/rest.go b/x/evm/client/rest/rest.go deleted file mode 100644 index b4953b55..00000000 --- a/x/evm/client/rest/rest.go +++ /dev/null @@ -1,104 +0,0 @@ -package rest - -import ( - "context" - "encoding/hex" - "encoding/json" - "errors" - "net/http" - "strings" - - "github.com/gorilla/mux" - - "github.com/cosmos/cosmos-sdk/client" - clientrest "github.com/cosmos/cosmos-sdk/client/rest" - "github.com/cosmos/cosmos-sdk/types/rest" - authrest "github.com/cosmos/cosmos-sdk/x/auth/client/rest" - - "github.com/ethereum/go-ethereum/common" - - rpctypes "github.com/stratosnet/stratos-chain/rpc/types" -) - -// RegisterTxRoutes - Central function to define routes that get registered by the main application -func RegisterTxRoutes(clientCtx client.Context, rtr *mux.Router) { - r := clientrest.WithHTTPDeprecationHeaders(rtr) - r.HandleFunc("/txs/{hash}", QueryTxRequestHandlerFn(clientCtx)).Methods("GET") - r.HandleFunc("/txs", authrest.QueryTxsRequestHandlerFn(clientCtx)).Methods("GET") - r.HandleFunc("/txs/decode", authrest.DecodeTxRequestHandlerFn(clientCtx)).Methods("POST") -} - -// QueryTxRequestHandlerFn implements a REST handler that queries a transaction -// by hash in a committed block. -func QueryTxRequestHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - vars := mux.Vars(r) - hashHexStr := vars["hash"] - - clientCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - ethHashPrefix := "0x" - if !strings.HasPrefix(hashHexStr, ethHashPrefix) { - authrest.QueryTxRequestHandlerFn(clientCtx) - return - } - - // eth Tx - ethHashPrefixLength := len(ethHashPrefix) - output, err := getEthTransactionByHash(clientCtx, hashHexStr[ethHashPrefixLength:]) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - - rest.PostProcessResponseBare(w, clientCtx, output) - } -} - -// GetTransactionByHash returns the transaction identified by hash. -func getEthTransactionByHash(clientCtx client.Context, hashHex string) ([]byte, error) { - hash, err := hex.DecodeString(hashHex) - if err != nil { - return nil, err - } - node, err := clientCtx.GetNode() - if err != nil { - return nil, err - } - - tx, err := node.Tx(context.Background(), hash, false) - if err != nil { - return nil, err - } - - // Can either cache or just leave this out if not necessary - block, err := node.Block(context.Background(), &tx.Height) - if err != nil { - return nil, err - } - - blockHash := common.BytesToHash(block.Block.Header.Hash()) - - ethTxs, err := rpctypes.RawTxToEthTx(clientCtx, tx.Tx) - if err != nil { - return nil, err - } - - height := uint64(tx.Height) - txIndex := uint64(tx.Index) - - for _, ethTx := range ethTxs { - if common.HexToHash(ethTx.Hash) == common.BytesToHash(hash) { - rpcTx, err := rpctypes.NewRPCTransaction(ethTx.AsTransaction(), &blockHash, &height, &txIndex) - if err != nil { - return nil, err - } - return json.Marshal(rpcTx) - } - } - - return nil, errors.New("eth tx not found") -} diff --git a/x/evm/context.go b/x/evm/context.go index 3cd4711c..e4fd0ba3 100644 --- a/x/evm/context.go +++ b/x/evm/context.go @@ -3,13 +3,15 @@ package evm import ( "fmt" + "github.com/cometbft/cometbft/libs/log" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + "github.com/cometbft/cometbft/store" + tmtypes "github.com/cometbft/cometbft/types" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/rpc/types" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/store" - tmtypes "github.com/tendermint/tendermint/types" ) type Context struct { diff --git a/x/evm/genesis.go b/x/evm/genesis.go index f05b67c9..d342f4c1 100644 --- a/x/evm/genesis.go +++ b/x/evm/genesis.go @@ -4,12 +4,13 @@ import ( "bytes" "fmt" - sdk "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" - abci "github.com/tendermint/tendermint/abci/types" + abci "github.com/cometbft/cometbft/abci/types" + + sdk "github.com/cosmos/cosmos-sdk/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/evm/keeper" diff --git a/x/evm/handler.go b/x/evm/handler.go index aed99744..2750febc 100644 --- a/x/evm/handler.go +++ b/x/evm/handler.go @@ -1,6 +1,7 @@ package evm import ( + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -19,7 +20,7 @@ func NewHandler(server types.MsgServer) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: - err := sdkerrors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) + err := errors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) return nil, err } } diff --git a/x/evm/keeper/grpc_query.go b/x/evm/keeper/grpc_query.go index 7a1e6b29..61ee85a8 100644 --- a/x/evm/keeper/grpc_query.go +++ b/x/evm/keeper/grpc_query.go @@ -12,8 +12,6 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/core" @@ -23,6 +21,9 @@ import ( "github.com/ethereum/go-ethereum/eth/tracers/logger" ethparams "github.com/ethereum/go-ethereum/params" + sdkmath "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" + stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/evm/statedb" "github.com/stratosnet/stratos-chain/x/evm/types" @@ -593,7 +594,7 @@ func (k Keeper) BaseFee(c context.Context, _ *types.QueryBaseFeeRequest) (*types res := &types.QueryBaseFeeResponse{} if baseFee != nil { - aux := sdk.NewIntFromBigInt(baseFee) + aux := sdkmath.NewIntFromBigInt(baseFee) res.BaseFee = &aux } @@ -608,7 +609,7 @@ func (k Keeper) BaseFeeParam(c context.Context, _ *types.QueryBaseFeeRequest) (* baseFee := k.GetBaseFeeParam(ctx) if baseFee != nil { - aux := sdk.NewIntFromBigInt(baseFee) + aux := sdkmath.NewIntFromBigInt(baseFee) res.BaseFee = &aux } diff --git a/x/evm/keeper/hooks.go b/x/evm/keeper/hooks.go index adf8bbb2..5c873ea2 100644 --- a/x/evm/keeper/hooks.go +++ b/x/evm/keeper/hooks.go @@ -1,12 +1,12 @@ package keeper import ( - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/ethereum/go-ethereum/core" ethtypes "github.com/ethereum/go-ethereum/core/types" + "cosmossdk.io/errors" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/x/evm/types" ) @@ -24,7 +24,7 @@ func NewMultiEvmHooks(hooks ...types.EvmHooks) MultiEvmHooks { func (mh MultiEvmHooks) PostTxProcessing(ctx sdk.Context, msg core.Message, receipt *ethtypes.Receipt) error { for i := range mh { if err := mh[i].PostTxProcessing(ctx, msg, receipt); err != nil { - return sdkerrors.Wrapf(err, "EVM hook %T failed", mh[i]) + return errors.Wrapf(err, "EVM hook %T failed", mh[i]) } } return nil diff --git a/x/evm/keeper/keeper.go b/x/evm/keeper/keeper.go index 0e6cfd9d..1153eaf0 100644 --- a/x/evm/keeper/keeper.go +++ b/x/evm/keeper/keeper.go @@ -3,12 +3,13 @@ package keeper import ( "math/big" - "github.com/tendermint/tendermint/libs/log" + "github.com/cometbft/cometbft/libs/log" + "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/store/prefix" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/ethereum/go-ethereum/common" @@ -31,10 +32,10 @@ type Keeper struct { // - storing account's Code // - storing transaction Logs // - storing Bloom filters by block height. Needed for the Web3 API. - storeKey sdk.StoreKey + storeKey storetypes.StoreKey // key to access the transient store, which is reset on every block during Commit - transientKey sdk.StoreKey + transientKey storetypes.StoreKey // module specific parameter space that can be configured through governance paramSpace paramtypes.Subspace @@ -44,53 +45,54 @@ type Keeper struct { bankKeeper types.BankKeeper // access historical headers for EVM state transition execution stakingKeeper types.StakingKeeper - // access for pot functionality with related keeper - potKeeper types.PotKeeper // Tracer used to collect execution traces from the EVM transaction execution tracer string // EVM Hooks for tx post-processing hooks types.EvmHooks + + // the address capable of executing a MsgUpdateParams message. Typically, this + // should be the x/gov module account. + authority string } // NewKeeper generates new evm module keeper func NewKeeper( cdc codec.BinaryCodec, - storeKey, transientKey sdk.StoreKey, paramSpace paramtypes.Subspace, - ak types.AccountKeeper, bankKeeper types.BankKeeper, sk types.StakingKeeper, - tracer string, + storeKey storetypes.StoreKey, + ak types.AccountKeeper, + bankKeeper types.BankKeeper, + sk types.StakingKeeper, + authority string, ) *Keeper { // ensure evm module account is set if addr := ak.GetModuleAddress(types.ModuleName); addr == nil { panic("the EVM module account has not been set") } - // set KeyTable if it has not already been set - if !paramSpace.HasKeyTable() { - paramSpace = paramSpace.WithKeyTable(types.ParamKeyTable()) - } - // NOTE: we pass in the parameter space to the CommitStateDB in order to use custom denominations for the EVM operations return &Keeper{ cdc: cdc, - paramSpace: paramSpace, accountKeeper: ak, bankKeeper: bankKeeper, stakingKeeper: sk, storeKey: storeKey, - transientKey: transientKey, - tracer: tracer, + authority: authority, } } // Logger returns a module-specific logger. func (k Keeper) Logger(ctx sdk.Context) log.Logger { - return ctx.Logger().With("module", types.ModuleName) + return ctx.Logger().With("module", "x/"+types.ModuleName) +} + +func (k *Keeper) SetTransientKey(transientKey storetypes.StoreKey) { + k.transientKey = transientKey } -func (k *Keeper) SetPotKeeper(potk types.PotKeeper) { - k.potKeeper = potk +func (k *Keeper) SetTracer(tracer string) { + k.tracer = tracer } // ---------------------------------------------------------------------------- @@ -192,7 +194,7 @@ func (k Keeper) GetAccountStorage(ctx sdk.Context, address common.Address) types // ---------------------------------------------------------------------------- // SetHooks sets the hooks for the EVM module -// It should be called only once during initialization, it panic if called more than once. +// It should be called only once during initialization, it panics if called more than once. func (k *Keeper) SetHooks(eh types.EvmHooks) *Keeper { if k.hooks != nil { panic("cannot set evm hooks twice") @@ -215,7 +217,7 @@ func (k Keeper) Tracer(ctx sdk.Context, msg core.Message, ethCfg *params.ChainCo return types.NewTracer(k.tracer, msg, ethCfg, ctx.BlockHeight()) } -// GetAccountWithoutBalance load nonce and codehash without balance, +// GetAccountWithoutBalance load nonce and codehash without balance, // more efficient in cases where balance is not needed. func (k *Keeper) GetAccountWithoutBalance(ctx sdk.Context, addr common.Address) *statedb.Account { cosmosAddr := sdk.AccAddress(addr.Bytes()) @@ -264,12 +266,12 @@ func (k *Keeper) GetNonce(ctx sdk.Context, addr common.Address) uint64 { // GetBalance load account's balance of gas token func (k *Keeper) GetBalance(ctx sdk.Context, addr common.Address) *big.Int { cosmosAddr := sdk.AccAddress(addr.Bytes()) - params := k.GetParams(ctx) - coin := k.bankKeeper.GetBalance(ctx, cosmosAddr, params.EvmDenom) + evmParams := k.GetParams(ctx) + coin := k.bankKeeper.GetBalance(ctx, cosmosAddr, evmParams.EvmDenom) return coin.Amount.BigInt() } -// BaseFee returns current base fee, return values: +// GetBaseFee returns current base fee, return values: // - `nil`: london hardfork not enabled. // - `0`: london hardfork enabled but feemarket is not enabled. // - `n`: both london hardfork and feemarket are enabled. @@ -312,7 +314,7 @@ func (k Keeper) SetTransientGasUsed(ctx sdk.Context, gasUsed uint64) { func (k Keeper) AddTransientGasUsed(ctx sdk.Context, gasUsed uint64) (uint64, error) { result := k.GetTransientGasUsed(ctx) + gasUsed if result < gasUsed { - return 0, sdkerrors.Wrap(types.ErrGasOverflow, "transient gas used") + return 0, errors.Wrap(types.ErrGasOverflow, "transient gas used") } k.SetTransientGasUsed(ctx, result) return result, nil diff --git a/x/evm/keeper/msg_server.go b/x/evm/keeper/msg_server.go index 604b4afa..0d6755ce 100644 --- a/x/evm/keeper/msg_server.go +++ b/x/evm/keeper/msg_server.go @@ -6,9 +6,10 @@ import ( "fmt" "strconv" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmtypes "github.com/tendermint/tendermint/types" + tmbytes "github.com/cometbft/cometbft/libs/bytes" + tmtypes "github.com/cometbft/cometbft/types" + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -18,8 +19,8 @@ import ( var _ types.MsgServer = &Keeper{} // EthereumTx implements the gRPC MsgServer interface. It receives a transaction which is then -// executed (i.e applied) against the go-ethereum EVM. The provided SDK Context is set to the Keeper -// so that it can implements and call the StateDB methods without receiving it as a function +// executed (i.e. applied) against the go-ethereum EVM. The provided SDK Context is set to the Keeper +// so that it can implement and call the StateDB methods without receiving it as a function // parameter. func (k *Keeper) EthereumTx(goCtx context.Context, msg *types.MsgEthereumTx) (*types.MsgEthereumTxResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) @@ -30,7 +31,7 @@ func (k *Keeper) EthereumTx(goCtx context.Context, msg *types.MsgEthereumTx) (*t response, err := k.ApplyTransaction(ctx, tx) if err != nil { - return nil, sdkerrors.Wrap(err, "failed to apply transaction") + return nil, errors.Wrap(err, "failed to apply transaction") } attrs := []sdk.Attribute{ @@ -61,7 +62,7 @@ func (k *Keeper) EthereumTx(goCtx context.Context, msg *types.MsgEthereumTx) (*t for i, log := range response.Logs { value, err := json.Marshal(log) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, "failed to encode log") + return nil, errors.Wrap(sdkerrors.ErrJSONMarshal, "failed to encode log") } txLogAttrs[i] = sdk.NewAttribute(types.AttributeKeyTxLog, string(value)) } diff --git a/x/evm/keeper/params.go b/x/evm/keeper/params.go index 0d7e12be..88f85f41 100644 --- a/x/evm/keeper/params.go +++ b/x/evm/keeper/params.go @@ -3,6 +3,7 @@ package keeper import ( "math/big" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stratosnet/stratos-chain/x/evm/types" @@ -37,5 +38,5 @@ func (k Keeper) GetBaseFeeParam(ctx sdk.Context) *big.Int { // SetBaseFeeParam set's the base fee in the paramSpace func (k Keeper) SetBaseFeeParam(ctx sdk.Context, baseFee *big.Int) { - k.paramSpace.Set(ctx, types.ParamStoreKeyBaseFee, sdk.NewIntFromBigInt(baseFee)) + k.paramSpace.Set(ctx, types.ParamStoreKeyBaseFee, sdkmath.NewIntFromBigInt(baseFee)) } diff --git a/x/evm/keeper/state_transition.go b/x/evm/keeper/state_transition.go index b9dd1588..fe775fd6 100644 --- a/x/evm/keeper/state_transition.go +++ b/x/evm/keeper/state_transition.go @@ -5,8 +5,10 @@ import ( "math/big" "sync" - tmtypes "github.com/tendermint/tendermint/types" + tmtypes "github.com/cometbft/cometbft/types" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -38,18 +40,18 @@ func GasToRefund(availableRefund, gasConsumed, refundQuotient uint64) uint64 { // EVMConfig creates the EVMConfig based on current state func (k *Keeper) EVMConfig(ctx sdk.Context) (*types.EVMConfig, error) { - params := k.GetParams(ctx) - ethCfg := params.ChainConfig.EthereumConfig() + evmParams := k.GetParams(ctx) + ethCfg := evmParams.ChainConfig.EthereumConfig() // get the coinbase address from the block proposer coinbase, err := k.GetCoinbaseAddress(ctx) if err != nil { - return nil, sdkerrors.Wrap(err, "failed to obtain coinbase address") + return nil, errors.Wrap(err, "failed to obtain coinbase address") } baseFee := k.GetBaseFee(ctx, ethCfg) return &types.EVMConfig{ - Params: params, + Params: evmParams, ChainConfig: ethCfg, CoinBase: coinbase, BaseFee: baseFee, @@ -99,7 +101,7 @@ func (k *Keeper) NewEVM( // VMConfig creates an EVM configuration from the debug setting and the extra EIPs enabled on the // module parameters. The config generated uses the default JumpTable from the EVM. -func (k Keeper) VMConfig(ctx sdk.Context, msg core.Message, cfg *types.EVMConfig, tracer vm.EVMLogger) vm.Config { +func (k Keeper) VMConfig(ctx sdk.Context, _ core.Message, cfg *types.EVMConfig, tracer vm.EVMLogger) vm.Config { noBaseFee := true if types.IsLondon(cfg.ChainConfig, ctx.BlockHeight()) { noBaseFee = k.GetParams(ctx).FeeMarketParams.NoBaseFee @@ -121,7 +123,7 @@ func (k Keeper) VMConfig(ctx sdk.Context, msg core.Message, cfg *types.EVMConfig // GetHashFn implements vm.GetHashFunc for stratos. It handles 3 cases: // 1. The requested height matches the current height from context (and thus same epoch number) -// 2. The requested height is from an previous height from the same chain epoch +// 2. The requested height is from a previous height from the same chain epoch // 3. The requested height is from a height greater than the latest one func (k Keeper) GetHashFn(ctx sdk.Context) vm.GetHashFunc { cache := make(map[int64]common.Hash) @@ -136,7 +138,7 @@ func (k Keeper) GetHashFn(ctx sdk.Context) vm.GetHashFunc { switch { case ctx.BlockHeight() == h: - // Case 1: The requested height matches the one from the context so we can retrieve the header + // Case 1: The requested height matches the one from the context, so we can retrieve the header // hash directly from the context. // Note: The headerHash is only set at begin block, it will be nil in case of a query context headerHash := ctx.HeaderHash() @@ -176,7 +178,7 @@ func (k Keeper) GetHashFn(ctx sdk.Context) vm.GetHashFunc { } } -// ApplyTransaction runs and attempts to perform a state transition with the given transaction (i.e Message), that will +// ApplyTransaction runs and attempts to perform a state transition with the given transaction (i.e. Message), that will // only be persisted (committed) to the underlying KVStore if the transaction does not fail. // // # Gas tracking @@ -201,7 +203,7 @@ func (k *Keeper) ApplyTransaction(ctx sdk.Context, tx *ethtypes.Transaction) (*t cfg, err := k.EVMConfig(ctx) if err != nil { - return nil, sdkerrors.Wrap(err, "failed to load evm config") + return nil, errors.Wrap(err, "failed to load evm config") } txConfig := k.TxConfig(ctx, tx.Hash()) @@ -209,10 +211,10 @@ func (k *Keeper) ApplyTransaction(ctx sdk.Context, tx *ethtypes.Transaction) (*t signer := ethtypes.MakeSigner(cfg.ChainConfig, big.NewInt(ctx.BlockHeight())) msg, err := tx.AsMessage(signer, cfg.BaseFee) if err != nil { - return nil, sdkerrors.Wrap(err, "failed to return ethereum transaction as core message") + return nil, errors.Wrap(err, "failed to return ethereum transaction as core message") } - // snapshot to contain the tx processing and post processing in same scope + // snapshot to contain the tx processing and post-processing in same scope var commit func() tmpCtx := ctx if k.hooks != nil { @@ -226,7 +228,7 @@ func (k *Keeper) ApplyTransaction(ctx sdk.Context, tx *ethtypes.Transaction) (*t // pass true to commit the StateDB res, err := k.ApplyMessageWithConfig(tmpCtx, msg, nil, true, cfg, txConfig) if err != nil { - return nil, sdkerrors.Wrap(err, "failed to apply ethereum core message") + return nil, errors.Wrap(err, "failed to apply ethereum core message") } logs := types.LogsToEthereum(res.Logs) @@ -280,7 +282,7 @@ func (k *Keeper) ApplyTransaction(ctx sdk.Context, tx *ethtypes.Transaction) (*t // refund gas in order to match the Ethereum gas consumption instead of the default SDK one. if err = k.RefundGas(ctx, msg, msg.Gas()-res.GasUsed, cfg.Params.EvmDenom); err != nil { - return nil, sdkerrors.Wrapf(err, "failed to refund gas leftover gas to sender %s", msg.From()) + return nil, errors.Wrapf(err, "failed to refund gas leftover gas to sender %s", msg.From()) } if len(receipt.Logs) > 0 { @@ -293,7 +295,7 @@ func (k *Keeper) ApplyTransaction(ctx sdk.Context, tx *ethtypes.Transaction) (*t totalGasUsed, err := k.AddTransientGasUsed(ctx, res.GasUsed) if err != nil { - return nil, sdkerrors.Wrap(err, "failed to add transient gas used") + return nil, errors.Wrap(err, "failed to add transient gas used") } // reset the gas meter for current cosmos transaction @@ -347,9 +349,9 @@ func (k *Keeper) ApplyMessageWithConfig(ctx sdk.Context, msg core.Message, trace // return error if contract creation or call are disabled through governance if !cfg.Params.EnableCreate && msg.To() == nil { - return nil, sdkerrors.Wrap(types.ErrCreateDisabled, "failed to create new contract") + return nil, errors.Wrap(types.ErrCreateDisabled, "failed to create new contract") } else if !cfg.Params.EnableCall && msg.To() != nil { - return nil, sdkerrors.Wrap(types.ErrCallDisabled, "failed to call contract") + return nil, errors.Wrap(types.ErrCallDisabled, "failed to call contract") } stateDB := statedb.New(ctx, k, txConfig) @@ -362,12 +364,12 @@ func (k *Keeper) ApplyMessageWithConfig(ctx sdk.Context, msg core.Message, trace intrinsicGas, err := k.GetEthIntrinsicGas(ctx, msg, cfg.ChainConfig, contractCreation) if err != nil { // should have already been checked on Ante Handler - return nil, sdkerrors.Wrap(err, "intrinsic gas failed") + return nil, errors.Wrap(err, "intrinsic gas failed") } // Should check again even if it is checked on Ante Handler, because eth_call don't go through Ante Handler. if msg.Gas() < intrinsicGas { // eth_estimateGas will check for this exact error - return nil, sdkerrors.Wrap(core.ErrIntrinsicGas, "apply message") + return nil, errors.Wrap(core.ErrIntrinsicGas, "apply message") } leftoverGas := msg.Gas() - intrinsicGas @@ -377,8 +379,8 @@ func (k *Keeper) ApplyMessageWithConfig(ctx sdk.Context, msg core.Message, trace stateDB.PrepareAccessList(msg.From(), msg.To(), vm.ActivePrecompiles(rules), msg.AccessList()) } - // NOTE: In order to achive this, nonce should be checked in ante handler and increased, othervise - // it could make pottential nonce overide with double spend or contract rewrite + // NOTE: In order to achieve this, nonce should be checked in ante handler and increased, otherwise + // it could make potential nonce override with double spend or contract rewrite // take over the nonce management from evm: // reset sender's nonce to msg.Nonce() before calling evm on msg nonce // as nonce already increased in db @@ -390,7 +392,7 @@ func (k *Keeper) ApplyMessageWithConfig(ctx sdk.Context, msg core.Message, trace // - if IsEIP158 enabled, contract nonce will be set as 1 ret, _, leftoverGas, vmErr = evm.Create(sender, msg.Data(), leftoverGas, msg.Value()) } else { - // should be incresed before call on nonce from msg so we make sure nonce remaining same as on init tx + // should be increased before call on nonce from msg, so we make sure nonce remaining same as on init tx stateDB.SetNonce(sender.Address(), msg.Nonce()+1) ret, leftoverGas, vmErr = evm.Call(sender, *msg.To(), msg.Data(), leftoverGas, msg.Value()) } @@ -404,12 +406,12 @@ func (k *Keeper) ApplyMessageWithConfig(ctx sdk.Context, msg core.Message, trace // calculate gas refund if msg.Gas() < leftoverGas { - return nil, sdkerrors.Wrap(types.ErrGasOverflow, "apply message") + return nil, errors.Wrap(types.ErrGasOverflow, "apply message") } gasUsed := msg.Gas() - leftoverGas refund := GasToRefund(stateDB.GetRefund(), gasUsed, refundQuotient) if refund > gasUsed { - return nil, sdkerrors.Wrap(types.ErrGasOverflow, "apply message") + return nil, errors.Wrap(types.ErrGasOverflow, "apply message") } gasUsed -= refund @@ -422,7 +424,7 @@ func (k *Keeper) ApplyMessageWithConfig(ctx sdk.Context, msg core.Message, trace // The dirty states in `StateDB` is either committed or discarded after return if commit { if err := stateDB.Commit(); err != nil { - return nil, sdkerrors.Wrap(err, "failed to commit stateDB") + return nil, errors.Wrap(err, "failed to commit stateDB") } } @@ -439,7 +441,7 @@ func (k *Keeper) ApplyMessageWithConfig(ctx sdk.Context, msg core.Message, trace func (k *Keeper) ApplyMessage(ctx sdk.Context, msg core.Message, tracer vm.EVMLogger, commit bool) (*types.MsgEthereumTxResponse, error) { cfg, err := k.EVMConfig(ctx) if err != nil { - return nil, sdkerrors.Wrap(err, "failed to load evm config") + return nil, errors.Wrap(err, "failed to load evm config") } txConfig := statedb.NewEmptyTxConfig(common.BytesToHash(ctx.HeaderHash())) return k.ApplyMessageWithConfig(ctx, msg, tracer, commit, cfg, txConfig) @@ -465,17 +467,17 @@ func (k *Keeper) RefundGas(ctx sdk.Context, msg core.Message, leftoverGas uint64 switch remaining.Sign() { case -1: // negative refund errors - return sdkerrors.Wrapf(types.ErrInvalidRefund, "refunded amount value cannot be negative %d", remaining.Int64()) + return errors.Wrapf(types.ErrInvalidRefund, "refunded amount value cannot be negative %d", remaining.Int64()) case 1: // positive amount refund - refundedCoins := sdk.Coins{sdk.NewCoin(denom, sdk.NewIntFromBigInt(remaining))} + refundedCoins := sdk.Coins{sdk.NewCoin(denom, sdkmath.NewIntFromBigInt(remaining))} // refund to sender from the fee collector module account, which is the escrow account in charge of collecting tx fees err := k.bankKeeper.SendCoinsFromModuleToAccount(ctx, authtypes.FeeCollectorName, msg.From().Bytes(), refundedCoins) if err != nil { - err = sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, "fee collector account failed to refund fees: %s", err.Error()) - return sdkerrors.Wrapf(err, "failed to refund %d leftover gas (%s)", leftoverGas, refundedCoins.String()) + err = errors.Wrapf(sdkerrors.ErrInsufficientFunds, "fee collector account failed to refund fees: %s", err.Error()) + return errors.Wrapf(err, "failed to refund %d leftover gas (%s)", leftoverGas, refundedCoins.String()) } default: // no refund, consume gas and update the tx gas meter @@ -497,7 +499,7 @@ func (k Keeper) GetCoinbaseAddress(ctx sdk.Context) (common.Address, error) { consAddr := sdk.ConsAddress(ctx.BlockHeader().ProposerAddress) validator, found := k.stakingKeeper.GetValidatorByConsAddr(ctx, consAddr) if !found { - return common.Address{}, sdkerrors.Wrapf( + return common.Address{}, errors.Wrapf( stakingtypes.ErrNoValidatorFound, "failed to retrieve validator from block proposer address %s", consAddr.String(), diff --git a/x/evm/keeper/statedb.go b/x/evm/keeper/statedb.go index df423e6a..2061ffdb 100644 --- a/x/evm/keeper/statedb.go +++ b/x/evm/keeper/statedb.go @@ -5,11 +5,13 @@ import ( "fmt" "math/big" + "github.com/ethereum/go-ethereum/common" + + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/store/prefix" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - "github.com/ethereum/go-ethereum/common" stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/evm/statedb" @@ -54,9 +56,9 @@ func (k *Keeper) GetCode(ctx sdk.Context, codeHash common.Hash) []byte { // ForEachStorage iterate contract storage, callback return false to break early func (k *Keeper) ForEachStorage(ctx sdk.Context, addr common.Address, cb func(key, value common.Hash) bool) { store := ctx.KVStore(k.storeKey) - prefix := types.AddressStoragePrefix(addr) + dbPrefix := types.AddressStoragePrefix(addr) - iterator := sdk.KVStorePrefixIterator(store, prefix) + iterator := sdk.KVStorePrefixIterator(store, dbPrefix) defer iterator.Close() for ; iterator.Valid(); iterator.Next() { @@ -81,7 +83,7 @@ func (k *Keeper) SetBalance(ctx sdk.Context, addr common.Address, amount *big.In switch delta.Sign() { case 1: // mint - coins := sdk.NewCoins(sdk.NewCoin(params.EvmDenom, sdk.NewIntFromBigInt(delta))) + coins := sdk.NewCoins(sdk.NewCoin(params.EvmDenom, sdkmath.NewIntFromBigInt(delta))) if err := k.bankKeeper.MintCoins(ctx, types.ModuleName, coins); err != nil { return err } @@ -90,7 +92,7 @@ func (k *Keeper) SetBalance(ctx sdk.Context, addr common.Address, amount *big.In } case -1: // burn - coins := sdk.NewCoins(sdk.NewCoin(params.EvmDenom, sdk.NewIntFromBigInt(new(big.Int).Neg(delta)))) + coins := sdk.NewCoins(sdk.NewCoin(params.EvmDenom, sdkmath.NewIntFromBigInt(new(big.Int).Neg(delta)))) if err := k.bankKeeper.SendCoinsFromAccountToModule(ctx, cosmosAddr, types.ModuleName, coins); err != nil { return err } @@ -202,10 +204,10 @@ func (k *Keeper) DeleteAccount(ctx sdk.Context, addr common.Address) error { return nil } - // NOTE: only Ethereum accounts (contracts) can be selfdestructed + // NOTE: only Ethereum accounts (contracts) can be self-destructed ethAcct, ok := acct.(stratos.EthAccountI) if !ok { - return sdkerrors.Wrapf(types.ErrInvalidAccount, "type %T, address %s", acct, addr) + return errors.Wrapf(types.ErrInvalidAccount, "type %T, address %s", acct, addr) } // clear balance diff --git a/x/evm/keeper/utils.go b/x/evm/keeper/utils.go index d6e0f5ca..3f3da152 100644 --- a/x/evm/keeper/utils.go +++ b/x/evm/keeper/utils.go @@ -3,13 +3,15 @@ package keeper import ( "math/big" + "github.com/ethereum/go-ethereum/core" + ethtypes "github.com/ethereum/go-ethereum/core/types" + + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" authante "github.com/cosmos/cosmos-sdk/x/auth/ante" - "github.com/ethereum/go-ethereum/core" - ethtypes "github.com/ethereum/go-ethereum/core/types" - evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" ) @@ -26,7 +28,7 @@ func (k Keeper) DeductTxCostsFromUserBalance( // fetch sender account from signature signerAcc, err := authante.GetSignerAcc(ctx, k.accountKeeper, msgEthTx.GetFrom()) if err != nil { - return nil, sdkerrors.Wrapf(err, "account not found for sender %s", msgEthTx.From) + return nil, errors.Wrapf(err, "account not found for sender %s", msgEthTx.From) } gasLimit := txData.GetGas() @@ -38,7 +40,7 @@ func (k Keeper) DeductTxCostsFromUserBalance( intrinsicGas, err := core.IntrinsicGas(txData.GetData(), accessList, isContractCreation, homestead, istanbul) if err != nil { - return nil, sdkerrors.Wrapf( + return nil, errors.Wrapf( err, "failed to retrieve intrinsic gas, contract creation = %t; homestead = %t, istanbul = %t", isContractCreation, homestead, istanbul, @@ -47,7 +49,7 @@ func (k Keeper) DeductTxCostsFromUserBalance( // intrinsic gas verification during CheckTx if ctx.IsCheckTx() && gasLimit < intrinsicGas { - return nil, sdkerrors.Wrapf( + return nil, errors.Wrapf( sdkerrors.ErrOutOfGas, "gas limit too low: %d (gas limit) < %d (intrinsic gas)", gasLimit, intrinsicGas, ) @@ -59,7 +61,7 @@ func (k Keeper) DeductTxCostsFromUserBalance( if london && !feeMktParams.NoBaseFee && txData.TxType() == ethtypes.DynamicFeeTxType { baseFee := k.GetBaseFeeParam(ctx) if txData.GetGasFeeCap().Cmp(baseFee) < 0 { - return nil, sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "the tx gasfeecap is lower than the tx baseFee: %s (gasfeecap), %s (basefee) ", txData.GetGasFeeCap(), baseFee) + return nil, errors.Wrapf(sdkerrors.ErrInsufficientFee, "the tx gasFeeCap is lower than the tx baseFee: %s (gasFeeCap), %s (baseFee) ", txData.GetGasFeeCap(), baseFee) } feeAmt = txData.EffectiveFee(baseFee) } else { @@ -71,11 +73,11 @@ func (k Keeper) DeductTxCostsFromUserBalance( return sdk.NewCoins(), nil } - fees := sdk.Coins{sdk.NewCoin(denom, sdk.NewIntFromBigInt(feeAmt))} + fees := sdk.Coins{sdk.NewCoin(denom, sdkmath.NewIntFromBigInt(feeAmt))} // deduct the full gas cost from the user balance if err := authante.DeductFees(k.bankKeeper, ctx, signerAcc, fees); err != nil { - return nil, sdkerrors.Wrapf( + return nil, errors.Wrapf( err, "failed to deduct full gas cost %s from the user %s balance", fees, msgEthTx.From, @@ -87,20 +89,20 @@ func (k Keeper) DeductTxCostsFromUserBalance( // CheckSenderBalance validates that the tx cost value is positive and that the // sender has enough funds to pay for the fees and value of the transaction. func CheckSenderBalance( - balance sdk.Int, + balance sdkmath.Int, txData evmtypes.TxData, ) error { cost := txData.Cost() if cost.Sign() < 0 { - return sdkerrors.Wrapf( + return errors.Wrapf( sdkerrors.ErrInvalidCoins, "tx cost (%s) is negative and invalid", cost, ) } if balance.IsNegative() || balance.BigInt().Cmp(cost) < 0 { - return sdkerrors.Wrapf( + return errors.Wrapf( sdkerrors.ErrInsufficientFunds, "sender balance < tx cost (%s < %s)", balance, txData.Cost(), ) diff --git a/x/evm/module.go b/x/evm/module.go index 621ad21d..dd1eaffd 100644 --- a/x/evm/module.go +++ b/x/evm/module.go @@ -4,34 +4,50 @@ import ( "context" "encoding/json" "fmt" - "math/rand" - "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/spf13/cobra" - abci "github.com/tendermint/tendermint/abci/types" + abci "github.com/cometbft/cometbft/abci/types" + "cosmossdk.io/core/appmodule" + "cosmossdk.io/depinject" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" + authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" + modulev1 "github.com/stratosnet/stratos-chain/api/stratos/evm/module/v1" "github.com/stratosnet/stratos-chain/x/evm/client/cli" "github.com/stratosnet/stratos-chain/x/evm/keeper" "github.com/stratosnet/stratos-chain/x/evm/simulation" "github.com/stratosnet/stratos-chain/x/evm/types" ) +const ( + consensusVersion = 1 +) + var ( - _ module.AppModule = AppModule{} - _ module.AppModuleBasic = AppModuleBasic{} + _ module.AppModule = AppModule{} + _ module.AppModuleBasic = AppModuleBasic{} + _ module.AppModuleSimulation = AppModule{} + _ appmodule.AppModule = AppModule{} + _ depinject.OnePerModuleType = AppModule{} ) // AppModuleBasic defines the basic application module used by the evm module. -type AppModuleBasic struct{} +type AppModuleBasic struct { + cdc codec.Codec +} // Name returns the evm module's name. func (AppModuleBasic) Name() string { @@ -42,9 +58,9 @@ func (AppModuleBasic) Name() string { func (AppModuleBasic) RegisterLegacyAminoCodec(_ *codec.LegacyAmino) { } -// ConsensusVersion returns the consensus state-breaking version for the module. -func (AppModuleBasic) ConsensusVersion() uint64 { - return 1 +// RegisterInterfaces registers interfaces and implementations of the evm module. +func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) { + types.RegisterInterfaces(registry) } // DefaultGenesis returns default genesis state as raw bytes for the evm @@ -55,17 +71,11 @@ func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage { // ValidateGenesis is the validation check of the Genesis func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, _ client.TxEncodingConfig, bz json.RawMessage) error { - var genesisState types.GenesisState - if err := cdc.UnmarshalJSON(bz, &genesisState); err != nil { + var data types.GenesisState + if err := cdc.UnmarshalJSON(bz, &data); err != nil { return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - - return genesisState.Validate() -} - -// RegisterRESTRoutes performs a no-op as the EVM module doesn't expose REST -// endpoints -func (AppModuleBasic) RegisterRESTRoutes(clientCtx client.Context, rtr *mux.Router) { + return types.ValidateGenesis(data) } func (b AppModuleBasic) RegisterGRPCGatewayRoutes(c client.Context, serveMux *runtime.ServeMux) { @@ -84,40 +94,36 @@ func (AppModuleBasic) GetQueryCmd() *cobra.Command { return cli.GetQueryCmd() } -// RegisterInterfaces registers interfaces and implementations of the evm module. -func (AppModuleBasic) RegisterInterfaces(registry codectypes.InterfaceRegistry) { - types.RegisterInterfaces(registry) -} - // ____________________________________________________________________________ // AppModule implements an application module for the evm module. type AppModule struct { AppModuleBasic - keeper *keeper.Keeper - ak types.AccountKeeper + keeper *keeper.Keeper + transientKey storetypes.StoreKey + accountKeeper authkeeper.AccountKeeper + bankKeeper bankkeeper.Keeper + stakingKeeper *stakingkeeper.Keeper + + // legacySubspace is used solely for migration of x/params managed parameters + legacySubspace types.ParamsSubspace } // NewAppModule creates a new AppModule object -func NewAppModule(k *keeper.Keeper, ak types.AccountKeeper) AppModule { +func NewAppModule(cdc codec.Codec, k *keeper.Keeper, accountKeeper authkeeper.AccountKeeper, + bankKeeper bankkeeper.Keeper, stakingKeeper *stakingkeeper.Keeper, legacySubspace types.ParamsSubspace, +) AppModule { return AppModule{ - AppModuleBasic: AppModuleBasic{}, + AppModuleBasic: AppModuleBasic{cdc: cdc}, keeper: k, - ak: ak, + accountKeeper: accountKeeper, + bankKeeper: bankKeeper, + stakingKeeper: stakingKeeper, + legacySubspace: legacySubspace, } } -// Name returns the evm module's name. -func (AppModule) Name() string { - return types.ModuleName -} - -// RegisterInvariants interface for registering invariants. Performs a no-op -// as the evm module doesn't expose invariants. -func (am AppModule) RegisterInvariants(ir sdk.InvariantRegistry) { -} - -// RegisterQueryService registers a GRPC query service to respond to the +// RegisterServices registers a GRPC query service to respond to the // module-specific GRPC queries. func (am AppModule) RegisterServices(cfg module.Configurator) { types.RegisterMsgServer(cfg.MsgServer(), am.keeper) @@ -126,29 +132,9 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { _ = keeper.NewMigrator(*am.keeper) } -// Route returns the message routing key for the evm module. -func (am AppModule) Route() sdk.Route { - return sdk.NewRoute(types.RouterKey, NewHandler(am.keeper)) -} - -// QuerierRoute returns the evm module's querier route name. -func (AppModule) QuerierRoute() string { return types.RouterKey } - -// LegacyQuerierHandler returns nil as the evm module doesn't expose a legacy -// Querier. -func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return nil -} - -// BeginBlock returns the begin block for the evm module. -func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) { - am.keeper.BeginBlock(ctx, req) -} - -// EndBlock returns the end blocker for the evm module. It returns no validator -// updates. -func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate { - return am.keeper.EndBlock(ctx, req) +// RegisterInvariants interface for registering invariants. Performs a no-op +// as the evm module doesn't expose invariants. +func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) { } // InitGenesis performs genesis initialization for the evm module. It returns @@ -157,40 +143,126 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json. var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, am.ak, genesisState) + InitGenesis(ctx, am.keeper, am.accountKeeper, genesisState) return []abci.ValidatorUpdate{} } // ExportGenesis returns the exported genesis state as raw bytes for the evm // module. func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { - gs := ExportGenesis(ctx, am.keeper, am.ak) + gs := ExportGenesis(ctx, am.keeper, am.accountKeeper) return cdc.MustMarshalJSON(gs) } -// RandomizedParams creates randomized evm param changes for the simulator. -func (AppModule) RandomizedParams(r *rand.Rand) []simtypes.ParamChange { - return simulation.ParamChanges(r) +// BeginBlock returns the begin block for the evm module. +func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) { + BeginBlocker(ctx, req, am.keeper) +} + +// EndBlock returns the end blocker for the evm module. It returns no validator +// updates. +func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate { + return EndBlocker(ctx, req, am.keeper) } -// RegisterStoreDecoder registers a decoder for evm module's types -func (am AppModule) RegisterStoreDecoder(sdr sdk.StoreDecoderRegistry) { - sdr[types.StoreKey] = simulation.NewDecodeStore() +// ConsensusVersion implements AppModule/ConsensusVersion. +func (AppModule) ConsensusVersion() uint64 { + return consensusVersion } -// ProposalContents doesn't return any content functions for governance proposals. -func (AppModule) ProposalContents(simState module.SimulationState) []simtypes.WeightedProposalContent { - return nil +// IsOnePerModuleType implements depinject.OnePerModuleType +func (am AppModule) IsOnePerModuleType() { +} + +// IsAppModule implements appmodule.AppModule +func (am AppModule) IsAppModule() { } -// GenerateGenesisState creates a randomized GenState of the evm module. -func (AppModule) GenerateGenesisState(simState *module.SimulationState) { +//____________________________________________________________________________ + +// AppModuleSimulation defines the module simulation functions used by the profiles module. +type AppModuleSimulation struct{} + +// GenerateGenesisState implements AppModuleSimulation +func (am AppModule) GenerateGenesisState(simState *module.SimulationState) { simulation.RandomizedGenState(simState) } -// WeightedOperations returns the all the evm module operations with their respective weights. +// RegisterStoreDecoder implements AppModuleSimulation +func (am AppModule) RegisterStoreDecoder(registry sdk.StoreDecoderRegistry) { + registry[types.StoreKey] = simulation.NewDecodeStore() +} + +// WeightedOperations implements AppModuleSimulation func (am AppModule) WeightedOperations(simState module.SimulationState) []simtypes.WeightedOperation { return simulation.WeightedOperations( - simState.AppParams, simState.Cdc, am.ak, am.keeper, + simState.AppParams, simState.Cdc, am.accountKeeper, am.keeper, ) } + +// ProposalMsgs returns msgs used for governance proposals for simulations. +func (AppModule) ProposalMsgs(simState module.SimulationState) []simtypes.WeightedProposalMsg { + return nil +} + +// -------------------------------------------------------------------------------------------------------------------- + +// App Wiring Setup + +func init() { + appmodule.Register( + &modulev1.Module{}, + appmodule.Provide( + ProvideModule, + ), + ) +} + +type ModuleInputs struct { + depinject.In + + Config *modulev1.Module + Cdc codec.Codec + Key *storetypes.KVStoreKey + AccountKeeper authkeeper.AccountKeeper + BankKeeper bankkeeper.Keeper + StakingKeeper *stakingkeeper.Keeper + + // LegacySubspace is used solely for migration of x/params managed parameters + LegacySubspace types.ParamsSubspace `optional:"true"` +} + +type ModuleOutputs struct { + depinject.Out + + EvmKeeper *keeper.Keeper + Module appmodule.AppModule +} + +func ProvideModule(in ModuleInputs) ModuleOutputs { + // default to governance authority if not provided + authority := authtypes.NewModuleAddress(govtypes.ModuleName) + if in.Config.Authority != "" { + authority = authtypes.NewModuleAddressOrBech32Address(in.Config.Authority) + } + + k := keeper.NewKeeper( + in.Cdc, + in.Key, + in.AccountKeeper, + in.BankKeeper, + in.StakingKeeper, + authority.String(), + ) + + m := NewAppModule( + in.Cdc, + k, + in.AccountKeeper, + in.BankKeeper, + in.StakingKeeper, + in.LegacySubspace, + ) + + return ModuleOutputs{EvmKeeper: k, Module: m} +} diff --git a/x/evm/pool/tx_noncer.go b/x/evm/pool/tx_noncer.go index 38c0d550..cd124ca0 100644 --- a/x/evm/pool/tx_noncer.go +++ b/x/evm/pool/tx_noncer.go @@ -20,7 +20,7 @@ import ( "sync" "github.com/ethereum/go-ethereum/common" - evm "github.com/stratosnet/stratos-chain/x/evm" + "github.com/stratosnet/stratos-chain/x/evm" evmkeeper "github.com/stratosnet/stratos-chain/x/evm/keeper" ) diff --git a/x/evm/pool/tx_pool.go b/x/evm/pool/tx_pool.go index c687aa07..c32dfacd 100644 --- a/x/evm/pool/tx_pool.go +++ b/x/evm/pool/tx_pool.go @@ -6,17 +6,20 @@ import ( "sync" "time" - "github.com/cosmos/cosmos-sdk/client" + mempl "github.com/cometbft/cometbft/mempool" + "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/log" + + "github.com/cosmos/cosmos-sdk/client" + "github.com/stratosnet/stratos-chain/server/config" stratos "github.com/stratosnet/stratos-chain/types" - evm "github.com/stratosnet/stratos-chain/x/evm" + "github.com/stratosnet/stratos-chain/x/evm" evmkeeper "github.com/stratosnet/stratos-chain/x/evm/keeper" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" - mempl "github.com/tendermint/tendermint/mempool" ) const ( diff --git a/x/evm/simulation/operations.go b/x/evm/simulation/operations.go index ae5c59c8..3c294ef0 100644 --- a/x/evm/simulation/operations.go +++ b/x/evm/simulation/operations.go @@ -7,6 +7,12 @@ import ( "math/rand" "time" + "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/hexutil" + ethtypes "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/crypto" + + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" @@ -20,11 +26,6 @@ import ( "github.com/cosmos/cosmos-sdk/x/auth/tx" "github.com/cosmos/cosmos-sdk/x/simulation" - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/hexutil" - ethtypes "github.com/ethereum/go-ethereum/core/types" - "github.com/ethereum/go-ethereum/crypto" - "github.com/stratosnet/stratos-chain/encoding" "github.com/stratosnet/stratos-chain/tests" "github.com/stratosnet/stratos-chain/x/evm/keeper" @@ -32,12 +33,9 @@ import ( ) const ( - /* #nosec */ OpWeightMsgEthSimpleTransfer = "op_weight_msg_eth_simple_transfer" - /* #nosec */ OpWeightMsgEthCreateContract = "op_weight_msg_eth_create_contract" - /* #nosec */ - OpWeightMsgEthCallContract = "op_weight_msg_eth_call_contract" + OpWeightMsgEthCallContract = "op_weight_msg_eth_call_contract" ) const ( @@ -124,7 +122,7 @@ func SimulateEthCreateContract(ak types.AccountKeeper, k *keeper.Keeper) simtype from := common.BytesToAddress(simAccount.Address) nonce := k.GetNonce(ctx, from) - ctorArgs, err := types.ERC20Contract.ABI.Pack("", from, sdk.NewIntWithDecimal(1000, 18).BigInt()) + ctorArgs, err := types.ERC20Contract.ABI.Pack("", from, sdkmath.NewInt(1000).Mul(sdkmath.NewInt(1e18)).BigInt()) if err != nil { return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEthereumTx, "can not pack owner and supply"), nil, err } @@ -186,14 +184,14 @@ func SimulateEthTx( return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEthereumTx, "can not create valid eth tx"), nil, err } - txConfig := encoding.MakeConfig(module.NewBasicManager()).TxConfig + txConfig := encoding.MakeEncodingConfig(module.NewBasicManager()).TxConfig txBuilder := txConfig.NewTxBuilder() signedTx, err := GetSignedTx(ctx, txBuilder, ethTx, prv) if err != nil { return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEthereumTx, "can not sign ethereum tx"), nil, err } - _, _, err = ctx.bapp.Deliver(txConfig.TxEncoder(), signedTx) + _, _, err = ctx.bapp.SimDeliver(txConfig.TxEncoder(), signedTx) if err != nil { return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEthereumTx, "failed to deliver tx"), nil, err } @@ -259,7 +257,7 @@ func RandomTransferableAmount(ctx *simulateContext, address common.Address, esti amount = new(big.Int).Set(spendable) return amount, nil } - simAmount, err := simtypes.RandPositiveInt(ctx.rand, sdk.NewIntFromBigInt(spendable)) + simAmount, err := simtypes.RandPositiveInt(ctx.rand, sdkmath.NewIntFromBigInt(spendable)) if err != nil { return nil, err } @@ -294,7 +292,7 @@ func GetSignedTx(ctx *simulateContext, txBuilder client.TxBuilder, msg *types.Ms return nil, err } - fees := sdk.NewCoins(sdk.NewCoin(params.EvmDenom, sdk.NewIntFromBigInt(txData.Fee()))) + fees := sdk.NewCoins(sdk.NewCoin(params.EvmDenom, sdkmath.NewIntFromBigInt(txData.Fee()))) builder.SetFeeAmount(fees) builder.SetGasLimit(msg.GetGas()) diff --git a/x/evm/simulation/params.go b/x/evm/simulation/params.go index 82fb891e..7b07bf25 100644 --- a/x/evm/simulation/params.go +++ b/x/evm/simulation/params.go @@ -15,25 +15,25 @@ import ( // ParamChanges defines the parameters that can be modified by param change proposals // on the simulation. -func ParamChanges(r *rand.Rand) []simtypes.ParamChange { - return []simtypes.ParamChange{ - simulation.NewSimParamChange(types.ModuleName, string(types.ParamStoreKeyExtraEIPs), +func ParamChanges(r *rand.Rand) []simtypes.LegacyParamChange { + return []simtypes.LegacyParamChange{ + simulation.NewSimLegacyParamChange(types.ModuleName, string(types.ParamStoreKeyExtraEIPs), func(r *rand.Rand) string { extraEIPs := GenExtraEIPs(r) - amino := amino.NewLegacyAmino() - bz, err := amino.MarshalJSON(extraEIPs) + aminoCdc := amino.NewLegacyAmino() + bz, err := aminoCdc.MarshalJSON(extraEIPs) if err != nil { panic(err) } return string(bz) }, ), - simulation.NewSimParamChange(types.ModuleName, string(types.ParamStoreKeyEnableCreate), + simulation.NewSimLegacyParamChange(types.ModuleName, string(types.ParamStoreKeyEnableCreate), func(r *rand.Rand) string { return fmt.Sprintf("%v", GenEnableCreate(r)) }, ), - simulation.NewSimParamChange(types.ModuleName, string(types.ParamStoreKeyEnableCall), + simulation.NewSimLegacyParamChange(types.ModuleName, string(types.ParamStoreKeyEnableCall), func(r *rand.Rand) string { return fmt.Sprintf("%v", GenEnableCall(r)) }, diff --git a/x/evm/statedb/state_object.go b/x/evm/statedb/state_object.go index 3ebb800c..f8f7e30e 100644 --- a/x/evm/statedb/state_object.go +++ b/x/evm/statedb/state_object.go @@ -128,7 +128,7 @@ func (s *stateObject) setBalance(amount *big.Int) { // Attribute accessors // -// Returns the address of the contract/account +// Address Returns the address of the contract/account func (s *stateObject) Address() common.Address { return s.address } @@ -169,7 +169,7 @@ func (s *stateObject) setCode(codeHash common.Hash, code []byte) { s.dirtyCode = true } -// SetCode set nonce to account +// SetNonce set nonce to account func (s *stateObject) SetNonce(nonce uint64) { s.db.journal.append(nonceChange{ account: &s.address, diff --git a/x/evm/statedb/statedb.go b/x/evm/statedb/statedb.go index e075308d..968dbfd6 100644 --- a/x/evm/statedb/statedb.go +++ b/x/evm/statedb/statedb.go @@ -5,12 +5,13 @@ import ( "math/big" "sort" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" ethtypes "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/vm" "github.com/ethereum/go-ethereum/crypto" + + "cosmossdk.io/errors" + sdk "github.com/cosmos/cosmos-sdk/types" ) // revision is the identifier of a version of state. @@ -228,20 +229,20 @@ func (s *StateDB) getOrNewStateObject(addr common.Address) *stateObject { // createObject creates a new state object. If there is an existing account with // the given address, it is overwritten and returned as the second return value. -func (s *StateDB) createObject(addr common.Address) (newobj, prev *stateObject) { +func (s *StateDB) createObject(addr common.Address) (newObj, prev *stateObject) { prev = s.getStateObject(addr) - newobj = newObject(s, addr, Account{}) + newObj = newObject(s, addr, Account{}) if prev == nil { s.journal.append(createObjectChange{account: &addr}) } else { s.journal.append(resetObjectChange{prev: prev}) } - s.setStateObject(newobj) + s.setStateObject(newObj) if prev != nil { - return newobj, prev + return newObj, prev } - return newobj, nil + return newObj, nil } // CreateAccount explicitly creates a state object. If a state object with the address @@ -250,8 +251,8 @@ func (s *StateDB) createObject(addr common.Address) (newobj, prev *stateObject) // CreateAccount is called during the EVM CREATE operation. The situation might arise that // a contract does the following: // -// 1. sends funds to sha(account ++ (nonce + 1)) -// 2. tx_create(sha(account ++ nonce)) (note that this gets the address of 1) +// 1. sends funds to sha(account ++ (nonce + 1)) +// 2. tx_create(sha(account ++ nonce)) (note that this gets the address of 1) // // Carrying over the balance ensures that Ether doesn't disappear. func (s *StateDB) CreateAccount(addr common.Address) { @@ -349,21 +350,21 @@ func (s *StateDB) Suicide(addr common.Address) bool { } // PrepareAccessList handles the preparatory steps for executing a state transition with -// regards to both EIP-2929 and EIP-2930: +// regard to both EIP-2929 and EIP-2930: // // - Add sender to access list (2929) // - Add destination to access list (2929) -// - Add precompiles to access list (2929) +// - Add preCompiles to access list (2929) // - Add the contents of the optional tx access list (2930) // // This method should only be called if Yolov3/Berlin/2929+2930 is applicable at the current number. -func (s *StateDB) PrepareAccessList(sender common.Address, dst *common.Address, precompiles []common.Address, list ethtypes.AccessList) { +func (s *StateDB) PrepareAccessList(sender common.Address, dst *common.Address, preCompiles []common.Address, list ethtypes.AccessList) { s.AddAddressToAccessList(sender) if dst != nil { s.AddAddressToAccessList(*dst) // If it's a create-tx, the destination will be added inside evm.create } - for _, addr := range precompiles { + for _, addr := range preCompiles { s.AddAddressToAccessList(addr) } for _, el := range list { @@ -387,7 +388,7 @@ func (s *StateDB) AddSlotToAccessList(addr common.Address, slot common.Hash) { if addrMod { // In practice, this should not happen, since there is no way to enter the // scope of 'address' without having the 'address' become already added - // to the access list (via call-variant, create, etc). + // to the access list (via call-variant, create, etc.). // Better safe than sorry, though s.journal.append(accessListAddAccountChange{&addr}) } @@ -418,13 +419,13 @@ func (s *StateDB) Snapshot() int { } // RevertToSnapshot reverts all state changes made since the given revision. -func (s *StateDB) RevertToSnapshot(revid int) { +func (s *StateDB) RevertToSnapshot(revId int) { // Find the snapshot in the stack of valid snapshots. idx := sort.Search(len(s.validRevisions), func(i int) bool { - return s.validRevisions[i].id >= revid + return s.validRevisions[i].id >= revId }) - if idx == len(s.validRevisions) || s.validRevisions[idx].id != revid { - panic(fmt.Errorf("revision id %v cannot be reverted", revid)) + if idx == len(s.validRevisions) || s.validRevisions[idx].id != revId { + panic(fmt.Errorf("revision id %v cannot be reverted", revId)) } snapshot := s.validRevisions[idx].journalIndex @@ -440,14 +441,14 @@ func (s *StateDB) Commit() error { obj := s.stateObjects[addr] if obj.suicided { if err := s.keeper.DeleteAccount(s.ctx, obj.Address()); err != nil { - return sdkerrors.Wrap(err, "failed to delete account") + return errors.Wrap(err, "failed to delete account") } } else { if obj.code != nil && obj.dirtyCode { s.keeper.SetCode(s.ctx, obj.CodeHash(), obj.code) } if err := s.keeper.SetAccount(s.ctx, obj.Address(), obj.account); err != nil { - return sdkerrors.Wrap(err, "failed to set account") + return errors.Wrap(err, "failed to set account") } for _, key := range obj.dirtyStorage.SortedKeys() { value := obj.dirtyStorage[key] diff --git a/x/evm/tracers/js/goja.go b/x/evm/tracers/js/goja.go index adbcfcaf..e03dd271 100644 --- a/x/evm/tracers/js/goja.go +++ b/x/evm/tracers/js/goja.go @@ -210,7 +210,7 @@ func (t *jsTracer) CaptureTxStart(gasLimit uint64) { t.gasLimit = gasLimit } -// CaptureTxStart implements the Tracer interface and is invoked at the end of +// CaptureTxEnd implements the Tracer interface and is invoked at the end of // transaction processing. func (t *jsTracer) CaptureTxEnd(restGas uint64) {} diff --git a/x/evm/types/access_list_tx.go b/x/evm/types/access_list_tx.go index 5ba523fd..dd6fc46a 100644 --- a/x/evm/types/access_list_tx.go +++ b/x/evm/types/access_list_tx.go @@ -3,12 +3,13 @@ package types import ( "math/big" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/ethereum/go-ethereum/common" ethtypes "github.com/ethereum/go-ethereum/core/types" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/stratosnet/stratos-chain/types" ) @@ -88,7 +89,7 @@ func (tx *AccessListTx) GetAccessList() ethtypes.AccessList { return *tx.Accesses.ToEthAccessList() } -// GetData returns the a copy of the input data bytes. +// GetData returns a copy of the input data bytes. func (tx *AccessListTx) GetData() []byte { return common.CopyBytes(tx.Data) } @@ -174,7 +175,7 @@ func (tx *AccessListTx) SetSignatureValues(chainID, v, r, s *big.Int) { tx.S = s.Bytes() } if chainID != nil { - chainIDInt := sdk.NewIntFromBigInt(chainID) + chainIDInt := sdkmath.NewIntFromBigInt(chainID) tx.ChainID = &chainIDInt } } @@ -183,37 +184,37 @@ func (tx *AccessListTx) SetSignatureValues(chainID, v, r, s *big.Int) { func (tx AccessListTx) Validate() error { gasPrice := tx.GetGasPrice() if gasPrice == nil { - return sdkerrors.Wrap(ErrInvalidGasPrice, "cannot be nil") + return errors.Wrap(ErrInvalidGasPrice, "cannot be nil") } if !IsValidInt256(gasPrice) { - return sdkerrors.Wrap(ErrInvalidGasPrice, "out of bound") + return errors.Wrap(ErrInvalidGasPrice, "out of bound") } if gasPrice.Sign() == -1 { - return sdkerrors.Wrapf(ErrInvalidGasPrice, "gas price cannot be negative %s", gasPrice) + return errors.Wrapf(ErrInvalidGasPrice, "gas price cannot be negative %s", gasPrice) } amount := tx.GetValue() // Amount can be 0 if amount != nil && amount.Sign() == -1 { - return sdkerrors.Wrapf(ErrInvalidAmount, "amount cannot be negative %s", amount) + return errors.Wrapf(ErrInvalidAmount, "amount cannot be negative %s", amount) } if !IsValidInt256(amount) { - return sdkerrors.Wrap(ErrInvalidAmount, "out of bound") + return errors.Wrap(ErrInvalidAmount, "out of bound") } if !IsValidInt256(tx.Fee()) { - return sdkerrors.Wrap(ErrInvalidGasFee, "out of bound") + return errors.Wrap(ErrInvalidGasFee, "out of bound") } if tx.To != "" { if err := types.ValidateHexAddress(tx.To); err != nil { - return sdkerrors.Wrap(err, "invalid to address") + return errors.Wrap(err, "invalid to address") } } if tx.GetChainID() == nil { - return sdkerrors.Wrap( + return errors.Wrap( sdkerrors.ErrInvalidChainID, "chain ID must be present on AccessList txs", ) @@ -222,12 +223,12 @@ func (tx AccessListTx) Validate() error { return nil } -// Fee returns gasprice * gaslimit. +// Fee returns gasPrice * gasLimit. func (tx AccessListTx) Fee() *big.Int { return fee(tx.GetGasPrice(), tx.GetGas()) } -// Cost returns amount + gasprice * gaslimit. +// Cost returns amount + gasPrice * gasLimit. func (tx AccessListTx) Cost() *big.Int { return cost(tx.Fee(), tx.GetValue()) } diff --git a/x/evm/types/chain_config.go b/x/evm/types/chain_config.go index c64742c4..ba602f9d 100644 --- a/x/evm/types/chain_config.go +++ b/x/evm/types/chain_config.go @@ -4,9 +4,8 @@ import ( "math/big" "strings" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/params" ) @@ -40,21 +39,21 @@ func (cc ChainConfig) EthereumConfig() *params.ChainConfig { // DefaultChainConfig returns default evm parameters. func DefaultChainConfig() ChainConfig { - chainId := sdk.NewInt(2048) - homesteadBlock := sdk.ZeroInt() - daoForkBlock := sdk.ZeroInt() - eip150Block := sdk.ZeroInt() - eip155Block := sdk.ZeroInt() - eip158Block := sdk.ZeroInt() - byzantiumBlock := sdk.ZeroInt() - constantinopleBlock := sdk.ZeroInt() - petersburgBlock := sdk.ZeroInt() - istanbulBlock := sdk.ZeroInt() - muirGlacierBlock := sdk.ZeroInt() - berlinBlock := sdk.ZeroInt() - londonBlock := sdk.ZeroInt() - arrowGlacierBlock := sdk.ZeroInt() - mergeForkBlock := sdk.ZeroInt() + chainId := sdkmath.NewInt(2048) + homesteadBlock := sdkmath.ZeroInt() + daoForkBlock := sdkmath.ZeroInt() + eip150Block := sdkmath.ZeroInt() + eip155Block := sdkmath.ZeroInt() + eip158Block := sdkmath.ZeroInt() + byzantiumBlock := sdkmath.ZeroInt() + constantinopleBlock := sdkmath.ZeroInt() + petersburgBlock := sdkmath.ZeroInt() + istanbulBlock := sdkmath.ZeroInt() + muirGlacierBlock := sdkmath.ZeroInt() + berlinBlock := sdkmath.ZeroInt() + londonBlock := sdkmath.ZeroInt() + arrowGlacierBlock := sdkmath.ZeroInt() + mergeForkBlock := sdkmath.ZeroInt() return ChainConfig{ ChainID: &chainId, @@ -77,7 +76,7 @@ func DefaultChainConfig() ChainConfig { } } -func getBlockValue(block *sdk.Int) *big.Int { +func getBlockValue(block *sdkmath.Int) *big.Int { if block == nil || block.IsNegative() { return nil } @@ -86,87 +85,87 @@ func getBlockValue(block *sdk.Int) *big.Int { } // Validate performs a basic validation of the ChainConfig params. The function will return an error -// if any of the block values is uninitialized (i.e nil) or if the EIP150Hash is an invalid hash. +// if any of the block values is uninitialized (i.e. nil) or if the EIP150Hash is an invalid hash. func (cc ChainConfig) Validate() error { if err := validateChainId(cc.ChainID); err != nil { return err } if err := validateBlock(cc.HomesteadBlock); err != nil { - return sdkerrors.Wrap(err, "homesteadBlock") + return errors.Wrap(err, "homesteadBlock") } if err := validateBlock(cc.DAOForkBlock); err != nil { - return sdkerrors.Wrap(err, "daoForkBlock") + return errors.Wrap(err, "daoForkBlock") } if err := validateBlock(cc.EIP150Block); err != nil { - return sdkerrors.Wrap(err, "eip150Block") + return errors.Wrap(err, "eip150Block") } if err := validateHash(cc.EIP150Hash); err != nil { return err } if err := validateBlock(cc.EIP155Block); err != nil { - return sdkerrors.Wrap(err, "eip155Block") + return errors.Wrap(err, "eip155Block") } if err := validateBlock(cc.EIP158Block); err != nil { - return sdkerrors.Wrap(err, "eip158Block") + return errors.Wrap(err, "eip158Block") } if err := validateBlock(cc.ByzantiumBlock); err != nil { - return sdkerrors.Wrap(err, "byzantiumBlock") + return errors.Wrap(err, "byzantiumBlock") } if err := validateBlock(cc.ConstantinopleBlock); err != nil { - return sdkerrors.Wrap(err, "constantinopleBlock") + return errors.Wrap(err, "constantinopleBlock") } if err := validateBlock(cc.PetersburgBlock); err != nil { - return sdkerrors.Wrap(err, "petersburgBlock") + return errors.Wrap(err, "petersburgBlock") } if err := validateBlock(cc.IstanbulBlock); err != nil { - return sdkerrors.Wrap(err, "istanbulBlock") + return errors.Wrap(err, "istanbulBlock") } if err := validateBlock(cc.MuirGlacierBlock); err != nil { - return sdkerrors.Wrap(err, "muirGlacierBlock") + return errors.Wrap(err, "muirGlacierBlock") } if err := validateBlock(cc.BerlinBlock); err != nil { - return sdkerrors.Wrap(err, "berlinBlock") + return errors.Wrap(err, "berlinBlock") } if err := validateBlock(cc.LondonBlock); err != nil { - return sdkerrors.Wrap(err, "londonBlock") + return errors.Wrap(err, "londonBlock") } if err := validateBlock(cc.ArrowGlacierBlock); err != nil { - return sdkerrors.Wrap(err, "arrowGlacierBlock") + return errors.Wrap(err, "arrowGlacierBlock") } if err := validateBlock(cc.MergeForkBlock); err != nil { - return sdkerrors.Wrap(err, "mergeForkBlock") + return errors.Wrap(err, "mergeForkBlock") } // NOTE: chain ID is not needed to check config order if err := cc.EthereumConfig().CheckConfigForkOrder(); err != nil { - return sdkerrors.Wrap(err, "invalid config fork order") + return errors.Wrap(err, "invalid config fork order") } return nil } -func validateChainId(chainId *sdk.Int) error { - if chainId.LTE(sdk.ZeroInt()) { - return sdkerrors.Wrap(ErrInvalidChainConfig, "eip155 chain id should greater than 0") +func validateChainId(chainId *sdkmath.Int) error { + if chainId.LTE(sdkmath.ZeroInt()) { + return errors.Wrap(ErrInvalidChainConfig, "eip155 chain id should greater than 0") } return nil } func validateHash(hex string) error { if hex != "" && strings.TrimSpace(hex) == "" { - return sdkerrors.Wrap(ErrInvalidChainConfig, "hash cannot be blank") + return errors.Wrap(ErrInvalidChainConfig, "hash cannot be blank") } return nil } -func validateBlock(block *sdk.Int) error { +func validateBlock(block *sdkmath.Int) error { // nil value means that the fork has not yet been applied if block == nil { return nil } if block.IsNegative() { - return sdkerrors.Wrapf( + return errors.Wrapf( ErrInvalidChainConfig, "block value cannot be negative: %s", block, ) } diff --git a/x/evm/types/codec.go b/x/evm/types/codec.go index 0e0af3cd..9b75c66c 100644 --- a/x/evm/types/codec.go +++ b/x/evm/types/codec.go @@ -1,6 +1,7 @@ package types import ( + "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -37,18 +38,18 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) } -// PackClientState constructs a new Any packed with the given tx data value. It returns -// an error if the client state can't be casted to a protobuf message or if the concrete -// implemention is not registered to the protobuf codec. +// PackTxData constructs a new Any packed with the given tx data value. It returns +// an error if the client state can't be cast to a protobuf message or if the concrete +// implementation is not registered to the protobuf codec. func PackTxData(txData TxData) (*codectypes.Any, error) { msg, ok := txData.(proto.Message) if !ok { - return nil, sdkerrors.Wrapf(sdkerrors.ErrPackAny, "cannot proto marshal %T", txData) + return nil, errors.Wrapf(sdkerrors.ErrPackAny, "cannot proto marshal %T", txData) } anyTxData, err := codectypes.NewAnyWithValue(msg) if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrPackAny, err.Error()) + return nil, errors.Wrap(sdkerrors.ErrPackAny, err.Error()) } return anyTxData, nil @@ -58,12 +59,12 @@ func PackTxData(txData TxData) (*codectypes.Any, error) { // client state can't be unpacked into a TxData. func UnpackTxData(any *codectypes.Any) (TxData, error) { if any == nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrUnpackAny, "protobuf Any message cannot be nil") + return nil, errors.Wrap(sdkerrors.ErrUnpackAny, "protobuf Any message cannot be nil") } txData, ok := any.GetCachedValue().(TxData) if !ok { - return nil, sdkerrors.Wrapf(sdkerrors.ErrUnpackAny, "cannot unpack Any into TxData %T", any) + return nil, errors.Wrapf(sdkerrors.ErrUnpackAny, "cannot unpack Any into TxData %T", any) } return txData, nil diff --git a/x/evm/types/dynamic_fee_tx.go b/x/evm/types/dynamic_fee_tx.go index 8968fb02..d9a6fc4e 100644 --- a/x/evm/types/dynamic_fee_tx.go +++ b/x/evm/types/dynamic_fee_tx.go @@ -3,7 +3,8 @@ package types import ( "math/big" - sdk "github.com/cosmos/cosmos-sdk/types" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/ethereum/go-ethereum/common" @@ -98,7 +99,7 @@ func (tx *DynamicFeeTx) GetAccessList() ethtypes.AccessList { return *tx.Accesses.ToEthAccessList() } -// GetData returns the a copy of the input data bytes. +// GetData returns the copy of the input data bytes. func (tx *DynamicFeeTx) GetData() []byte { return common.CopyBytes(tx.Data) } @@ -188,7 +189,7 @@ func (tx *DynamicFeeTx) SetSignatureValues(chainID, v, r, s *big.Int) { tx.S = s.Bytes() } if chainID != nil { - chainIDInt := sdk.NewIntFromBigInt(chainID) + chainIDInt := sdkmath.NewIntFromBigInt(chainID) tx.ChainID = &chainIDInt } } @@ -196,57 +197,57 @@ func (tx *DynamicFeeTx) SetSignatureValues(chainID, v, r, s *big.Int) { // Validate performs a stateless validation of the tx fields. func (tx DynamicFeeTx) Validate() error { if tx.GasTipCap == nil { - return sdkerrors.Wrap(ErrInvalidGasCap, "gas tip cap cannot nil") + return errors.Wrap(ErrInvalidGasCap, "gas tip cap cannot nil") } if tx.GasFeeCap == nil { - return sdkerrors.Wrap(ErrInvalidGasCap, "gas fee cap cannot nil") + return errors.Wrap(ErrInvalidGasCap, "gas fee cap cannot nil") } if tx.GasTipCap.IsNegative() { - return sdkerrors.Wrapf(ErrInvalidGasCap, "gas tip cap cannot be negative %s", tx.GasTipCap) + return errors.Wrapf(ErrInvalidGasCap, "gas tip cap cannot be negative %s", tx.GasTipCap) } if tx.GasFeeCap.IsNegative() { - return sdkerrors.Wrapf(ErrInvalidGasCap, "gas fee cap cannot be negative %s", tx.GasFeeCap) + return errors.Wrapf(ErrInvalidGasCap, "gas fee cap cannot be negative %s", tx.GasFeeCap) } if !IsValidInt256(tx.GetGasTipCap()) { - return sdkerrors.Wrap(ErrInvalidGasCap, "out of bound") + return errors.Wrap(ErrInvalidGasCap, "out of bound") } if !IsValidInt256(tx.GetGasFeeCap()) { - return sdkerrors.Wrap(ErrInvalidGasCap, "out of bound") + return errors.Wrap(ErrInvalidGasCap, "out of bound") } if tx.GasFeeCap.LT(*tx.GasTipCap) { - return sdkerrors.Wrapf( + return errors.Wrapf( ErrInvalidGasCap, "max priority fee per gas higher than max fee per gas (%s > %s)", tx.GasTipCap, tx.GasFeeCap, ) } if !IsValidInt256(tx.Fee()) { - return sdkerrors.Wrap(ErrInvalidGasFee, "out of bound") + return errors.Wrap(ErrInvalidGasFee, "out of bound") } amount := tx.GetValue() // Amount can be 0 if amount != nil && amount.Sign() == -1 { - return sdkerrors.Wrapf(ErrInvalidAmount, "amount cannot be negative %s", amount) + return errors.Wrapf(ErrInvalidAmount, "amount cannot be negative %s", amount) } if !IsValidInt256(amount) { - return sdkerrors.Wrap(ErrInvalidAmount, "out of bound") + return errors.Wrap(ErrInvalidAmount, "out of bound") } if tx.To != "" { if err := types.ValidateHexAddress(tx.To); err != nil { - return sdkerrors.Wrap(err, "invalid to address") + return errors.Wrap(err, "invalid to address") } } if tx.GetChainID() == nil { - return sdkerrors.Wrap( + return errors.Wrap( sdkerrors.ErrInvalidChainID, "chain ID must be present on AccessList txs", ) @@ -255,12 +256,12 @@ func (tx DynamicFeeTx) Validate() error { return nil } -// Fee returns gasprice * gaslimit. +// Fee returns gasPrice * gasLimit. func (tx DynamicFeeTx) Fee() *big.Int { return fee(tx.GetGasFeeCap(), tx.GasLimit) } -// Cost returns amount + gasprice * gaslimit. +// Cost returns amount + gasPrice * gasLimit. func (tx DynamicFeeTx) Cost() *big.Int { return cost(tx.Fee(), tx.GetValue()) } @@ -270,12 +271,12 @@ func (tx *DynamicFeeTx) GetEffectiveGasPrice(baseFee *big.Int) *big.Int { return math.BigMin(new(big.Int).Add(tx.GasTipCap.BigInt(), baseFee), tx.GasFeeCap.BigInt()) } -// EffectiveFee returns effective_gasprice * gaslimit. +// EffectiveFee returns effective_gasPrice * gasLimit. func (tx DynamicFeeTx) EffectiveFee(baseFee *big.Int) *big.Int { return fee(tx.GetEffectiveGasPrice(baseFee), tx.GasLimit) } -// EffectiveCost returns amount + effective_gasprice * gaslimit. +// EffectiveCost returns amount + effective_gasPrice * gasLimit. func (tx DynamicFeeTx) EffectiveCost(baseFee *big.Int) *big.Int { return cost(tx.EffectiveFee(baseFee), tx.GetValue()) } diff --git a/x/evm/types/errors.go b/x/evm/types/errors.go index 4d6d1250..5909c05d 100644 --- a/x/evm/types/errors.go +++ b/x/evm/types/errors.go @@ -1,10 +1,9 @@ package types import ( - "errors" "fmt" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "cosmossdk.io/errors" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/accounts/abi" @@ -33,70 +32,76 @@ const ( codeErrInvalidBaseFee codeErrGasOverflow codeErrInvalidAccount + codeErrEthTxNotFound + codeErrUnSupportedBuilder ) -var ErrPostTxProcessing = errors.New("failed to execute post processing") +var ErrPostTxProcessing = fmt.Errorf("failed to execute post processing") var ( // ErrInvalidState returns an error resulting from an invalid Storage State. - ErrInvalidState = sdkerrors.Register(ModuleName, codeErrInvalidState, "invalid storage state") + ErrInvalidState = errors.Register(ModuleName, codeErrInvalidState, "invalid storage state") // ErrExecutionReverted returns an error resulting from an error in EVM execution. - ErrExecutionReverted = sdkerrors.Register(ModuleName, codeErrExecutionReverted, vm.ErrExecutionReverted.Error()) + ErrExecutionReverted = errors.Register(ModuleName, codeErrExecutionReverted, vm.ErrExecutionReverted.Error()) // ErrChainConfigNotFound returns an error if the chain config cannot be found on the store. - ErrChainConfigNotFound = sdkerrors.Register(ModuleName, codeErrChainConfigNotFound, "chain configuration not found") + ErrChainConfigNotFound = errors.Register(ModuleName, codeErrChainConfigNotFound, "chain configuration not found") // ErrInvalidChainConfig returns an error resulting from an invalid ChainConfig. - ErrInvalidChainConfig = sdkerrors.Register(ModuleName, codeErrInvalidChainConfig, "invalid chain configuration") + ErrInvalidChainConfig = errors.Register(ModuleName, codeErrInvalidChainConfig, "invalid chain configuration") // ErrZeroAddress returns an error resulting from an zero (empty) ethereum Address. - ErrZeroAddress = sdkerrors.Register(ModuleName, codeErrZeroAddress, "invalid zero address") + ErrZeroAddress = errors.Register(ModuleName, codeErrZeroAddress, "invalid zero address") // ErrEmptyHash returns an error resulting from an empty ethereum Hash. - ErrEmptyHash = sdkerrors.Register(ModuleName, codeErrEmptyHash, "empty hash") + ErrEmptyHash = errors.Register(ModuleName, codeErrEmptyHash, "empty hash") // ErrBloomNotFound returns an error if the block bloom cannot be found on the store. - ErrBloomNotFound = sdkerrors.Register(ModuleName, codeErrBloomNotFound, "block bloom not found") + ErrBloomNotFound = errors.Register(ModuleName, codeErrBloomNotFound, "block bloom not found") // ErrTxReceiptNotFound returns an error if the transaction receipt could not be found - ErrTxReceiptNotFound = sdkerrors.Register(ModuleName, codeErrTxReceiptNotFound, "transaction receipt not found") + ErrTxReceiptNotFound = errors.Register(ModuleName, codeErrTxReceiptNotFound, "transaction receipt not found") // ErrCreateDisabled returns an error if the EnableCreate parameter is false. - ErrCreateDisabled = sdkerrors.Register(ModuleName, codeErrCreateDisabled, "EVM Create operation is disabled") + ErrCreateDisabled = errors.Register(ModuleName, codeErrCreateDisabled, "EVM Create operation is disabled") // ErrCallDisabled returns an error if the EnableCall parameter is false. - ErrCallDisabled = sdkerrors.Register(ModuleName, codeErrCallDisabled, "EVM Call operation is disabled") + ErrCallDisabled = errors.Register(ModuleName, codeErrCallDisabled, "EVM Call operation is disabled") // ErrInvalidAmount returns an error if a tx contains an invalid amount. - ErrInvalidAmount = sdkerrors.Register(ModuleName, codeErrInvalidAmount, "invalid transaction amount") + ErrInvalidAmount = errors.Register(ModuleName, codeErrInvalidAmount, "invalid transaction amount") // ErrInvalidGasPrice returns an error if an invalid gas price is provided to the tx. - ErrInvalidGasPrice = sdkerrors.Register(ModuleName, codeErrInvalidGasPrice, "invalid gas price") + ErrInvalidGasPrice = errors.Register(ModuleName, codeErrInvalidGasPrice, "invalid gas price") // ErrInvalidGasFee returns an error if the tx gas fee is out of bound. - ErrInvalidGasFee = sdkerrors.Register(ModuleName, codeErrInvalidGasFee, "invalid gas fee") + ErrInvalidGasFee = errors.Register(ModuleName, codeErrInvalidGasFee, "invalid gas fee") // ErrVMExecution returns an error resulting from an error in EVM execution. - ErrVMExecution = sdkerrors.Register(ModuleName, codeErrVMExecution, "evm transaction execution failed") + ErrVMExecution = errors.Register(ModuleName, codeErrVMExecution, "evm transaction execution failed") // ErrInvalidRefund returns an error if a the gas refund value is invalid. - ErrInvalidRefund = sdkerrors.Register(ModuleName, codeErrInvalidRefund, "invalid gas refund amount") + ErrInvalidRefund = errors.Register(ModuleName, codeErrInvalidRefund, "invalid gas refund amount") // ErrInconsistentGas returns an error if a the gas differs from the expected one. - ErrInconsistentGas = sdkerrors.Register(ModuleName, codeErrInconsistentGas, "inconsistent gas") + ErrInconsistentGas = errors.Register(ModuleName, codeErrInconsistentGas, "inconsistent gas") // ErrInvalidGasCap returns an error if a the gas cap value is negative or invalid - ErrInvalidGasCap = sdkerrors.Register(ModuleName, codeErrInvalidGasCap, "invalid gas cap") + ErrInvalidGasCap = errors.Register(ModuleName, codeErrInvalidGasCap, "invalid gas cap") // ErrInvalidBaseFee returns an error if a the base fee cap value is invalid - ErrInvalidBaseFee = sdkerrors.Register(ModuleName, codeErrInvalidBaseFee, "invalid base fee") + ErrInvalidBaseFee = errors.Register(ModuleName, codeErrInvalidBaseFee, "invalid base fee") // ErrGasOverflow returns an error if gas computation overlow/underflow - ErrGasOverflow = sdkerrors.Register(ModuleName, codeErrGasOverflow, "gas computation overflow/underflow") + ErrGasOverflow = errors.Register(ModuleName, codeErrGasOverflow, "gas computation overflow/underflow") // ErrInvalidAccount returns an error if the account is not an EVM compatible account - ErrInvalidAccount = sdkerrors.Register(ModuleName, codeErrInvalidAccount, "account type is not a valid ethereum account") + ErrInvalidAccount = errors.Register(ModuleName, codeErrInvalidAccount, "account type is not a valid ethereum account") + + ErrEthTxNotFound = errors.Register(ModuleName, codeErrEthTxNotFound, "ethereum tx not found") + + ErrUnSupportedBuilder = errors.Register(ModuleName, codeErrUnSupportedBuilder, "unsupported builder") ) // NewExecErrorWithReason unpacks the revert return bytes and returns a wrapped error @@ -104,7 +109,7 @@ var ( func NewExecErrorWithReason(revertReason []byte) *RevertError { result := common.CopyBytes(revertReason) reason, errUnpack := abi.UnpackRevert(result) - err := errors.New("execution reverted") + err := fmt.Errorf("execution reverted") if errUnpack == nil { err = fmt.Errorf("execution reverted: %v", reason) } diff --git a/x/evm/types/evm.pb.go b/x/evm/types/evm.pb.go index dc6e18f2..6181a13b 100644 --- a/x/evm/types/evm.pb.go +++ b/x/evm/types/evm.pb.go @@ -4,10 +4,12 @@ package types import ( + bytes "bytes" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" @@ -745,114 +747,564 @@ func init() { func init() { proto.RegisterFile("stratos/evm/v1/evm.proto", fileDescriptor_6ee18d4714e9d670) } var fileDescriptor_6ee18d4714e9d670 = []byte{ - // 1677 bytes of a gzipped FileDescriptorProto + // 1735 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4f, 0x6f, 0x1b, 0xb9, - 0x15, 0xb7, 0x2d, 0xd9, 0x1a, 0x51, 0xb2, 0x34, 0xa6, 0xb5, 0xa9, 0x36, 0x06, 0x3c, 0xc6, 0x14, - 0x68, 0x7d, 0xd8, 0x58, 0xeb, 0x04, 0x46, 0xd3, 0x2d, 0xf6, 0x60, 0xd9, 0xce, 0x46, 0x6e, 0xb2, - 0x35, 0x98, 0x14, 0x05, 0xda, 0xc3, 0x80, 0x9a, 0xa1, 0x47, 0x53, 0xcf, 0x0c, 0x05, 0x92, 0xd2, - 0x4a, 0x45, 0x3f, 0x40, 0x7b, 0xeb, 0xa9, 0xe7, 0x7e, 0x81, 0x7e, 0x89, 0x9e, 0x16, 0x3d, 0xed, - 0xb1, 0xe8, 0x61, 0x50, 0x38, 0x37, 0x1f, 0xf5, 0x09, 0x8a, 0x79, 0xa4, 0xfe, 0xc6, 0x58, 0xc4, - 0x3e, 0x99, 0xef, 0xdf, 0xef, 0xf7, 0xf8, 0xf8, 0xa8, 0xc7, 0x31, 0x6a, 0x4a, 0x25, 0xa8, 0xe2, - 0xb2, 0xc5, 0x86, 0x49, 0x6b, 0x78, 0x9c, 0xff, 0x39, 0xea, 0x0b, 0xae, 0x38, 0xae, 0x19, 0xcb, - 0x51, 0xae, 0x1a, 0x1e, 0x3f, 0x6d, 0x84, 0x3c, 0xe4, 0x60, 0x6a, 0xe5, 0x2b, 0xed, 0xe5, 0xfe, - 0xab, 0x80, 0xb6, 0xae, 0xa8, 0xa0, 0x89, 0xc4, 0xc7, 0xa8, 0xcc, 0x86, 0x89, 0x17, 0xb0, 0x94, - 0x27, 0xcd, 0xf5, 0x83, 0xf5, 0xc3, 0x72, 0xbb, 0x31, 0xc9, 0x1c, 0x7b, 0x4c, 0x93, 0xf8, 0x2b, - 0x77, 0x66, 0x72, 0x89, 0xc5, 0x86, 0xc9, 0x79, 0xbe, 0xc4, 0x5f, 0xa3, 0x6d, 0x96, 0xd2, 0x6e, - 0xcc, 0x3c, 0x5f, 0x30, 0xaa, 0x58, 0x73, 0xe3, 0x60, 0xfd, 0xd0, 0x6a, 0x37, 0x27, 0x99, 0xd3, - 0x30, 0x61, 0x8b, 0x66, 0x97, 0x54, 0xb5, 0x7c, 0x06, 0x22, 0xfe, 0x05, 0xaa, 0x4c, 0xed, 0x34, - 0x8e, 0x9b, 0x05, 0x08, 0x7e, 0x32, 0xc9, 0x1c, 0xbc, 0x1c, 0x4c, 0xe3, 0xd8, 0x25, 0xc8, 0x84, - 0xd2, 0x38, 0xc6, 0xa7, 0x08, 0xb1, 0x91, 0x12, 0xd4, 0x63, 0x51, 0x5f, 0x36, 0x8b, 0x07, 0x85, - 0xc3, 0x42, 0xdb, 0xbd, 0xcd, 0x9c, 0xf2, 0x45, 0xae, 0xbd, 0xe8, 0x5c, 0xc9, 0x49, 0xe6, 0xec, - 0x18, 0x90, 0x99, 0xa3, 0x4b, 0xca, 0x20, 0x5c, 0x44, 0x7d, 0x89, 0xff, 0x80, 0xaa, 0x7e, 0x8f, - 0x46, 0xa9, 0xe7, 0xf3, 0xf4, 0x3a, 0x0a, 0x9b, 0x9b, 0x07, 0xeb, 0x87, 0x95, 0xe7, 0x7b, 0x47, - 0xcb, 0x55, 0x3b, 0x3a, 0xcb, 0x7d, 0xce, 0xc0, 0xa5, 0xbd, 0xf7, 0x7d, 0xe6, 0xac, 0x4d, 0x32, - 0x67, 0x57, 0x03, 0x2f, 0x86, 0xbb, 0xa4, 0xe2, 0xcf, 0x3d, 0x71, 0x82, 0x76, 0xae, 0x19, 0xf3, - 0x12, 0x2a, 0x6e, 0x98, 0xf2, 0xfa, 0x50, 0xdf, 0xe6, 0x16, 0x30, 0x38, 0xab, 0x0c, 0xaf, 0x18, - 0x7b, 0x0b, 0x7e, 0xfa, 0x18, 0xda, 0x07, 0x86, 0xa5, 0xa9, 0x59, 0x3e, 0xc2, 0x71, 0x49, 0xfd, - 0x7a, 0x39, 0xc4, 0xfd, 0x7b, 0x1d, 0x55, 0x16, 0x12, 0xc5, 0x3e, 0xb2, 0x74, 0x72, 0x51, 0x60, - 0x0e, 0xf2, 0xf5, 0x7f, 0x33, 0xe7, 0x67, 0x61, 0xa4, 0x7a, 0x83, 0xee, 0x91, 0xcf, 0x93, 0x96, - 0xcf, 0x65, 0xc2, 0xa5, 0xf9, 0xf3, 0x4c, 0x06, 0x37, 0x2d, 0x35, 0xee, 0x33, 0x79, 0xd4, 0x49, - 0xd5, 0x6d, 0xe6, 0x94, 0x00, 0xac, 0x73, 0x3e, 0xc9, 0x9c, 0xfa, 0xe2, 0x5e, 0xa3, 0xc0, 0x25, - 0x25, 0x58, 0x76, 0x02, 0x9c, 0xa0, 0x7a, 0x8f, 0x27, 0x4c, 0x2a, 0x46, 0x03, 0xaf, 0x1b, 0x73, - 0xff, 0x06, 0x4e, 0xbf, 0xdc, 0x3e, 0xff, 0x74, 0xae, 0x49, 0xe6, 0x3c, 0xd1, 0x04, 0x2b, 0x50, - 0x2e, 0xa9, 0xcd, 0x34, 0xed, 0x5c, 0x81, 0xc7, 0xa8, 0x16, 0x50, 0xee, 0x5d, 0x73, 0x71, 0x63, - 0xd8, 0x0a, 0xc0, 0xf6, 0xee, 0x41, 0x3b, 0xab, 0x9e, 0x9f, 0xfe, 0xe6, 0x15, 0x17, 0x37, 0x80, - 0x39, 0xc9, 0x9c, 0xcf, 0x34, 0xfb, 0x32, 0xb2, 0x4b, 0xaa, 0x01, 0xe5, 0x33, 0x37, 0xfc, 0x3b, - 0x64, 0xcf, 0x1c, 0xe4, 0xa0, 0xdf, 0xe7, 0x42, 0x35, 0x8b, 0xd0, 0xab, 0xcf, 0x6e, 0x33, 0xa7, - 0x66, 0x20, 0xdf, 0x69, 0xcb, 0x24, 0x73, 0x7e, 0xb2, 0x02, 0x6a, 0x62, 0x5c, 0x52, 0x33, 0xb0, - 0xc6, 0x15, 0x4b, 0x54, 0x65, 0x51, 0xff, 0xf8, 0xe4, 0x4b, 0xb3, 0xa3, 0x4d, 0xd8, 0xd1, 0xd5, - 0x83, 0x76, 0x54, 0xb9, 0xe8, 0x5c, 0x1d, 0x9f, 0x7c, 0x39, 0xdd, 0x90, 0xe9, 0xcd, 0x45, 0x58, - 0x97, 0x54, 0xb4, 0xa8, 0x77, 0xd3, 0x41, 0x46, 0xf4, 0x7a, 0x54, 0xf6, 0xa0, 0x2b, 0xcb, 0xed, - 0xc3, 0xdb, 0xcc, 0x41, 0x1a, 0xe9, 0x35, 0x95, 0xbd, 0xf9, 0xb9, 0x74, 0xc7, 0x7f, 0xa2, 0xa9, - 0x8a, 0x06, 0xc9, 0x14, 0x0b, 0xe9, 0xe0, 0xdc, 0x6b, 0x96, 0xff, 0x89, 0xc9, 0xbf, 0xf4, 0xe8, - 0xfc, 0x4f, 0xee, 0xcb, 0xff, 0x64, 0x39, 0x7f, 0xed, 0x33, 0x23, 0x7d, 0x69, 0x48, 0xad, 0x47, - 0x93, 0xbe, 0xbc, 0x8f, 0xf4, 0xe5, 0x32, 0xa9, 0xf6, 0xc9, 0x9b, 0x7d, 0xa5, 0x12, 0xcd, 0xf2, - 0xe3, 0x9b, 0xfd, 0xa3, 0xa2, 0xd6, 0x66, 0x1a, 0x4d, 0xf7, 0x67, 0xd4, 0xf0, 0x79, 0x2a, 0x55, - 0xae, 0x4b, 0x79, 0x3f, 0x66, 0x86, 0x13, 0x01, 0x67, 0xe7, 0x41, 0x9c, 0x7b, 0xe6, 0x06, 0xdf, - 0x83, 0xe7, 0x92, 0xdd, 0x65, 0xb5, 0x66, 0xef, 0x23, 0xbb, 0xcf, 0x14, 0x13, 0xb2, 0x3b, 0x10, - 0xa1, 0x61, 0xae, 0x00, 0xf3, 0xc5, 0x83, 0x98, 0xcd, 0x3d, 0x58, 0xc5, 0x72, 0x49, 0x7d, 0xae, - 0xd2, 0x8c, 0x7f, 0x44, 0xb5, 0x28, 0x4f, 0xa3, 0x3b, 0x88, 0x0d, 0x5f, 0x15, 0xf8, 0xce, 0x1e, - 0xc4, 0x67, 0x2e, 0xf3, 0x32, 0x92, 0x4b, 0xb6, 0xa7, 0x0a, 0xcd, 0x35, 0x40, 0x38, 0x19, 0x44, - 0xc2, 0x0b, 0x63, 0xea, 0x47, 0x4c, 0x18, 0xbe, 0x6d, 0xe0, 0xfb, 0xe6, 0x41, 0x7c, 0x9f, 0x6b, - 0xbe, 0x8f, 0xd1, 0x5c, 0x62, 0xe7, 0xca, 0x6f, 0xb4, 0x4e, 0xd3, 0x06, 0xa8, 0xda, 0x65, 0x22, - 0x8e, 0x52, 0x43, 0x58, 0x03, 0xc2, 0xd3, 0x07, 0x11, 0x9a, 0x3e, 0x5d, 0xc4, 0x71, 0x49, 0x45, - 0x8b, 0x33, 0x96, 0x98, 0xa7, 0x01, 0x9f, 0xb2, 0xe0, 0xc7, 0xb3, 0x2c, 0xe2, 0xb8, 0xa4, 0xa2, - 0x45, 0xcd, 0x32, 0x42, 0xbb, 0x54, 0x08, 0xfe, 0xdd, 0x4a, 0x0d, 0x77, 0x1f, 0x3a, 0x6a, 0x26, - 0x99, 0xf3, 0x54, 0x93, 0xdd, 0x03, 0xe7, 0x92, 0x1d, 0xd0, 0x2e, 0x55, 0x91, 0x23, 0x3b, 0x61, - 0x22, 0x64, 0x8b, 0x73, 0xa0, 0xf1, 0xf8, 0xd6, 0x5c, 0xc5, 0x72, 0x49, 0x0d, 0x54, 0xb3, 0xdf, - 0xfe, 0xcb, 0xa2, 0x55, 0xb7, 0xed, 0xcb, 0xa2, 0x65, 0xdb, 0x3b, 0x97, 0x45, 0x6b, 0xc7, 0xc6, - 0x64, 0x7b, 0xcc, 0x63, 0xee, 0x0d, 0x5f, 0xe8, 0x08, 0x52, 0x61, 0xdf, 0x51, 0x69, 0x2e, 0x32, - 0xa9, 0xf9, 0x54, 0xd1, 0x78, 0x2c, 0x95, 0x81, 0x6b, 0xa1, 0xcd, 0x77, 0x2a, 0x7f, 0xe9, 0xd8, - 0xa8, 0x70, 0xc3, 0xc6, 0x7a, 0x18, 0x93, 0x7c, 0x89, 0x1b, 0x68, 0x73, 0x48, 0xe3, 0x81, 0x7e, - 0x32, 0x95, 0x89, 0x16, 0xdc, 0x6f, 0x51, 0xfd, 0xbd, 0xa0, 0xa9, 0xa4, 0xbe, 0x8a, 0x78, 0xfa, - 0x86, 0x87, 0x12, 0x63, 0x54, 0x84, 0x1f, 0x6a, 0x1d, 0x0b, 0x6b, 0xfc, 0x73, 0x54, 0x8c, 0x79, - 0x28, 0x9b, 0x1b, 0x07, 0x85, 0xc3, 0xca, 0xf3, 0xdd, 0xd5, 0x27, 0xc5, 0x1b, 0x1e, 0x12, 0x70, - 0x70, 0xff, 0xbd, 0x81, 0x0a, 0x6f, 0x78, 0x88, 0x9b, 0xa8, 0x44, 0x83, 0x40, 0x30, 0x29, 0x0d, - 0xce, 0x54, 0xc4, 0x4f, 0xd0, 0x96, 0xe2, 0xfd, 0xc8, 0xd7, 0x60, 0x65, 0x62, 0xa4, 0x9c, 0x36, - 0xa0, 0x8a, 0xc2, 0x94, 0xad, 0x12, 0x58, 0xe3, 0xe7, 0xa8, 0x0a, 0xfb, 0xf2, 0xd2, 0x41, 0xd2, - 0x65, 0x02, 0x86, 0x60, 0xb1, 0x5d, 0xbf, 0xcb, 0x9c, 0x0a, 0xe8, 0xbf, 0x05, 0x35, 0x59, 0x14, - 0xf0, 0x17, 0xa8, 0xa4, 0x46, 0x7a, 0xd4, 0xe8, 0xf1, 0xb6, 0x7b, 0x97, 0x39, 0x75, 0x35, 0xdf, - 0x64, 0x3e, 0x49, 0xc8, 0x96, 0x1a, 0xc1, 0x44, 0x69, 0x21, 0x4b, 0x8d, 0xbc, 0x28, 0x0d, 0xd8, - 0x08, 0x26, 0x53, 0xb1, 0xdd, 0xb8, 0xcb, 0x1c, 0x7b, 0xc1, 0xbd, 0x93, 0xdb, 0x48, 0x49, 0x8d, - 0x60, 0x81, 0xbf, 0x40, 0x48, 0xa7, 0x04, 0x0c, 0x7a, 0x00, 0x6d, 0xdf, 0x65, 0x4e, 0x19, 0xb4, - 0x80, 0x3d, 0x5f, 0x62, 0x17, 0x6d, 0x6a, 0x6c, 0x0b, 0xb0, 0xab, 0x77, 0x99, 0x63, 0xc5, 0x3c, - 0xd4, 0x98, 0xda, 0x94, 0x97, 0x4a, 0xb0, 0x84, 0x0f, 0x59, 0x00, 0x3f, 0xf1, 0x16, 0x99, 0x8a, - 0xee, 0x5f, 0x37, 0x90, 0xf5, 0x7e, 0x44, 0x98, 0x1c, 0xc4, 0x0a, 0xbf, 0x42, 0xb6, 0xcf, 0x53, - 0x25, 0xa8, 0xaf, 0xbc, 0xa5, 0xd2, 0xb6, 0xf7, 0xe6, 0xfd, 0xb5, 0xea, 0xe1, 0x92, 0xfa, 0x54, - 0x75, 0x6a, 0xea, 0xdf, 0x40, 0x9b, 0xdd, 0x98, 0xf3, 0x04, 0xfa, 0xa0, 0x4a, 0xb4, 0x80, 0xaf, - 0xa0, 0x6a, 0x70, 0xc6, 0x85, 0xfb, 0x9f, 0x8d, 0x2b, 0x6d, 0xd2, 0x7e, 0x62, 0x9e, 0x8d, 0x35, - 0xcd, 0x6c, 0xa2, 0xdd, 0xbc, 0xb2, 0xd0, 0x46, 0x36, 0x2a, 0x08, 0xa6, 0xdf, 0x2d, 0x55, 0x92, - 0x2f, 0xf1, 0x53, 0x64, 0x09, 0x36, 0x64, 0x42, 0xb1, 0x00, 0x8e, 0xc6, 0x22, 0x33, 0x19, 0x7f, - 0x8e, 0xac, 0x90, 0x4a, 0x6f, 0x20, 0x59, 0xa0, 0xcf, 0x81, 0x94, 0x42, 0x2a, 0x7f, 0x2b, 0x59, - 0xf0, 0x55, 0xf1, 0x2f, 0xff, 0x70, 0xd6, 0x5c, 0x8a, 0x2a, 0xa7, 0xbe, 0xcf, 0xa4, 0x7c, 0x3f, - 0xe8, 0xc7, 0xec, 0x47, 0xfa, 0xeb, 0x39, 0xaa, 0x4a, 0xc5, 0x05, 0x0d, 0x99, 0x77, 0xc3, 0xc6, - 0xa6, 0xcb, 0x74, 0xcf, 0x18, 0xfd, 0xaf, 0xd9, 0x58, 0x92, 0x45, 0xc1, 0x50, 0x64, 0x05, 0x54, - 0x79, 0x2f, 0xa8, 0xcf, 0xcc, 0xab, 0x36, 0xef, 0xd4, 0x5c, 0x14, 0x86, 0xc2, 0x48, 0x39, 0xb7, - 0x8a, 0x12, 0xc6, 0x07, 0xca, 0xdc, 0xa5, 0xa9, 0x98, 0x47, 0x08, 0xc6, 0x46, 0xcc, 0x87, 0x22, - 0x16, 0x89, 0x91, 0xf0, 0x09, 0xda, 0x0e, 0x22, 0x09, 0xdf, 0x16, 0x52, 0x51, 0xf3, 0xf0, 0xb2, - 0xda, 0xf6, 0x5d, 0xe6, 0x54, 0x8d, 0xe1, 0x5d, 0xae, 0x27, 0x4b, 0x12, 0xfe, 0x15, 0xaa, 0xcf, - 0xc3, 0x20, 0x5b, 0xa8, 0x8d, 0xd5, 0xc6, 0x77, 0x99, 0x53, 0x9b, 0xb9, 0x82, 0x85, 0xac, 0xc8, - 0xf9, 0x39, 0x07, 0xac, 0x3b, 0x08, 0xa1, 0xf5, 0x2c, 0xa2, 0x85, 0x5c, 0x1b, 0x47, 0x49, 0xa4, - 0xa0, 0xd5, 0x36, 0x89, 0x16, 0xf0, 0x2f, 0x51, 0x99, 0x0f, 0x99, 0x10, 0x51, 0xc0, 0x24, 0xcc, - 0xfc, 0x1f, 0xff, 0x30, 0x21, 0x73, 0xef, 0x7c, 0x6b, 0xe6, 0xab, 0x29, 0x61, 0x09, 0x17, 0x63, - 0x18, 0xdc, 0x66, 0x6b, 0xda, 0xf0, 0x16, 0xf4, 0x64, 0x49, 0xc2, 0x6d, 0x84, 0x4d, 0x98, 0x60, - 0x6a, 0x20, 0x52, 0x0f, 0xee, 0x7e, 0x15, 0x62, 0xe1, 0x06, 0x6a, 0x2b, 0x01, 0xe3, 0x39, 0x55, - 0x94, 0x7c, 0xa4, 0xb9, 0x2c, 0x5a, 0x45, 0x7b, 0xf3, 0xb2, 0x68, 0x95, 0x6c, 0x6b, 0xb6, 0x7b, - 0x93, 0x05, 0xd9, 0x9d, 0xca, 0x0b, 0xf0, 0xee, 0x3f, 0x37, 0x50, 0x7d, 0xe5, 0xeb, 0x07, 0xef, - 0xa3, 0x4a, 0xca, 0xbd, 0x2e, 0x95, 0xcc, 0xbb, 0x66, 0x0c, 0x4e, 0xda, 0x22, 0xe5, 0x94, 0xb7, - 0xa9, 0x64, 0xaf, 0x18, 0xc3, 0x5f, 0xa3, 0xbd, 0xa9, 0xd1, 0xf3, 0x7b, 0x34, 0x0d, 0x99, 0xfe, - 0x2a, 0x8d, 0x52, 0xaa, 0xb8, 0x80, 0x06, 0xd8, 0x26, 0xcd, 0xae, 0xf6, 0x3e, 0x03, 0x87, 0xf3, - 0xb9, 0x1d, 0xbf, 0x40, 0x9f, 0xb1, 0x98, 0x4a, 0x15, 0xf9, 0x91, 0x1a, 0x7b, 0xc9, 0x20, 0x56, - 0x51, 0x3f, 0x8e, 0x98, 0x80, 0x06, 0xd9, 0x26, 0x8d, 0xb9, 0xf1, 0xed, 0xcc, 0x86, 0x7f, 0x3a, - 0xab, 0x69, 0x8f, 0x45, 0x61, 0x4f, 0x41, 0xbb, 0x14, 0xa6, 0x15, 0x7c, 0x0d, 0x3a, 0xdc, 0x41, - 0xd6, 0x2c, 0x6b, 0xfd, 0xa6, 0x3e, 0xca, 0x6f, 0xe4, 0xa7, 0x4f, 0x25, 0x52, 0x32, 0x59, 0xeb, - 0x42, 0x12, 0x3b, 0x4a, 0x23, 0x15, 0xd1, 0x78, 0x56, 0x8c, 0x76, 0xe7, 0xfb, 0xdb, 0xfd, 0xf5, - 0x1f, 0x6e, 0xf7, 0xd7, 0xff, 0x77, 0xbb, 0xbf, 0xfe, 0xb7, 0x0f, 0xfb, 0x6b, 0x3f, 0x7c, 0xd8, - 0x5f, 0xfb, 0xcf, 0x87, 0xfd, 0xb5, 0xdf, 0xb7, 0x16, 0x28, 0x4c, 0x9f, 0xa4, 0x4c, 0x4d, 0x97, - 0xcf, 0xe0, 0x93, 0xad, 0x35, 0x82, 0xff, 0x11, 0x00, 0x5f, 0x77, 0x0b, 0xbe, 0xfe, 0x5f, 0xfc, - 0x3f, 0x00, 0x00, 0xff, 0xff, 0xb4, 0xc3, 0x75, 0x8b, 0x3f, 0x10, 0x00, 0x00, + 0x15, 0xb7, 0x2c, 0xd9, 0x1e, 0x51, 0xb2, 0x34, 0xa6, 0xbd, 0xa9, 0x12, 0x03, 0x1e, 0x63, 0x0a, + 0xb4, 0x3e, 0x6c, 0xec, 0x75, 0x02, 0xa3, 0xe9, 0xb6, 0x7b, 0x88, 0xe2, 0xa4, 0x6b, 0x37, 0xd9, + 0x4d, 0x99, 0x6c, 0x03, 0xb4, 0x40, 0x07, 0xd4, 0x0c, 0x3d, 0x1a, 0x78, 0x66, 0xa8, 0x92, 0x94, + 0x56, 0x6a, 0xd1, 0x02, 0x45, 0x81, 0xfe, 0x3b, 0xf5, 0x23, 0xf4, 0xd8, 0x0f, 0xd0, 0x5b, 0x6f, + 0x3d, 0x2d, 0x7a, 0x5a, 0xf4, 0x54, 0xf4, 0x30, 0x28, 0x9c, 0x9b, 0x2f, 0x05, 0xf4, 0x09, 0x8a, + 0x79, 0xa4, 0xfe, 0x8d, 0x8d, 0x20, 0xf6, 0x49, 0x7c, 0x7c, 0x7f, 0x7e, 0xbf, 0xf7, 0xf8, 0x38, + 0x24, 0x85, 0x5a, 0x52, 0x09, 0xaa, 0xb8, 0x3c, 0x60, 0x83, 0xe4, 0x60, 0x70, 0x98, 0xff, 0xec, + 0xf7, 0x04, 0x57, 0x1c, 0x37, 0x8c, 0x66, 0x3f, 0x9f, 0x1a, 0x1c, 0xde, 0xdb, 0x0a, 0x79, 0xc8, + 0x41, 0x75, 0x90, 0x8f, 0xb4, 0xd5, 0xbd, 0xbb, 0x3e, 0x97, 0x09, 0x97, 0x9e, 0x56, 0x68, 0x41, + 0xab, 0xdc, 0x7f, 0x94, 0xd1, 0xea, 0x4b, 0x2a, 0x68, 0x22, 0xf1, 0x21, 0xaa, 0xb2, 0x41, 0xe2, + 0x05, 0x2c, 0xe5, 0x49, 0xab, 0xb4, 0x5b, 0xda, 0xab, 0xb6, 0xb7, 0xc6, 0x99, 0x63, 0x8f, 0x68, + 0x12, 0x7f, 0xec, 0x4e, 0x55, 0x2e, 0xb1, 0xd8, 0x20, 0x39, 0xce, 0x87, 0xf8, 0x13, 0xb4, 0xce, + 0x52, 0xda, 0x89, 0x99, 0xe7, 0x0b, 0x46, 0x15, 0x6b, 0x2d, 0xef, 0x96, 0xf6, 0xac, 0x76, 0x6b, + 0x9c, 0x39, 0x5b, 0xc6, 0x6d, 0x5e, 0xed, 0x92, 0xba, 0x96, 0x9f, 0x80, 0x88, 0xbf, 0x83, 0x6a, + 0x13, 0x3d, 0x8d, 0xe3, 0x56, 0x19, 0x9c, 0xef, 0x8c, 0x33, 0x07, 0x2f, 0x3a, 0xd3, 0x38, 0x76, + 0x09, 0x32, 0xae, 0x34, 0x8e, 0xf1, 0x63, 0x84, 0xd8, 0x50, 0x09, 0xea, 0xb1, 0xa8, 0x27, 0x5b, + 0x95, 0xdd, 0xf2, 0x5e, 0xb9, 0xed, 0x5e, 0x64, 0x4e, 0xf5, 0x69, 0x3e, 0xfb, 0xf4, 0xe4, 0xa5, + 0x1c, 0x67, 0xce, 0x86, 0x09, 0x32, 0x35, 0x74, 0x49, 0x15, 0x84, 0xa7, 0x51, 0x4f, 0xe2, 0x9f, + 0xa2, 0xba, 0xdf, 0xa5, 0x51, 0xea, 0xf9, 0x3c, 0x3d, 0x8b, 0xc2, 0xd6, 0xca, 0x6e, 0x69, 0xaf, + 0xf6, 0x60, 0x7b, 0x7f, 0xb1, 0xa0, 0xfb, 0x4f, 0x72, 0x9b, 0x27, 0x60, 0xd2, 0xde, 0xfe, 0x2a, + 0x73, 0x96, 0xc6, 0x99, 0xb3, 0xa9, 0x03, 0xcf, 0xbb, 0xbb, 0xa4, 0xe6, 0xcf, 0x2c, 0x71, 0x82, + 0x36, 0xce, 0x18, 0xf3, 0x12, 0x2a, 0xce, 0x99, 0xf2, 0x7a, 0x50, 0xdf, 0xd6, 0x2a, 0x20, 0x38, + 0x45, 0x84, 0x67, 0x8c, 0xbd, 0x00, 0x3b, 0xbd, 0x0c, 0xed, 0x5d, 0x83, 0xd2, 0xd2, 0x28, 0x57, + 0xe2, 0xb8, 0xa4, 0x79, 0xb6, 0xe8, 0xe2, 0xfe, 0xcf, 0x46, 0xb5, 0x39, 0xa2, 0xf8, 0xe7, 0xc8, + 0xd2, 0xe4, 0xa2, 0xc0, 0x2c, 0xe4, 0x8f, 0xff, 0x93, 0x39, 0xdf, 0x0a, 0x23, 0xd5, 0xed, 0x77, + 0xf6, 0x7d, 0x9e, 0x98, 0x1e, 0x30, 0x3f, 0xf7, 0x65, 0x70, 0x7e, 0xa0, 0x46, 0x3d, 0x26, 0xf7, + 0x4f, 0x52, 0x75, 0x91, 0x39, 0x6b, 0x10, 0xec, 0xe4, 0x78, 0x9c, 0x39, 0xcd, 0xf9, 0x5c, 0xa3, + 0xc0, 0xfd, 0xd7, 0xdf, 0xee, 0x23, 0xd3, 0x40, 0x27, 0xa9, 0x22, 0x6b, 0xa0, 0x38, 0x09, 0xf0, + 0x2f, 0x51, 0xb3, 0xcb, 0x13, 0x26, 0x15, 0xa3, 0x81, 0xd7, 0x89, 0xb9, 0x7f, 0x0e, 0xbd, 0x50, + 0x6d, 0x93, 0xf7, 0x47, 0x1e, 0x67, 0xce, 0x1d, 0x0d, 0x57, 0x08, 0x55, 0x44, 0x6d, 0x4c, 0xf5, + 0xed, 0x5c, 0x8d, 0x7f, 0x5f, 0x42, 0x8d, 0x80, 0x72, 0xef, 0x8c, 0x8b, 0x73, 0x03, 0x5e, 0x06, + 0x70, 0x7a, 0xa3, 0xb4, 0xeb, 0xc7, 0x8f, 0x3f, 0x7f, 0xc6, 0xc5, 0x39, 0x04, 0x1d, 0x67, 0xce, + 0x07, 0x9a, 0xcc, 0x62, 0xe4, 0x22, 0x97, 0x7a, 0x40, 0xf9, 0xd4, 0x09, 0xbf, 0x41, 0xf6, 0xd4, + 0x5c, 0xf6, 0x7b, 0x3d, 0x2e, 0x54, 0xab, 0x02, 0x6d, 0x7d, 0xff, 0x22, 0x73, 0x1a, 0x06, 0xe0, + 0x95, 0xd6, 0x8c, 0x33, 0xe7, 0x1b, 0x05, 0x08, 0xe3, 0xe3, 0x92, 0x86, 0x09, 0x6b, 0x4c, 0xf1, + 0x6f, 0x4a, 0xa8, 0xce, 0xa2, 0xde, 0xe1, 0xd1, 0x47, 0x26, 0xc1, 0x15, 0x48, 0xf0, 0x67, 0x37, + 0x4a, 0xb0, 0xf6, 0xf4, 0xe4, 0xe5, 0xe1, 0xd1, 0x47, 0x93, 0xfc, 0x4c, 0x1f, 0xcf, 0x87, 0x2d, + 0x66, 0x57, 0xd3, 0x4a, 0x9d, 0xdc, 0x09, 0x32, 0xa2, 0xd7, 0xa5, 0xb2, 0x0b, 0xfd, 0x5c, 0x6d, + 0xef, 0x5d, 0x64, 0x0e, 0xd2, 0x71, 0x3f, 0xa5, 0xb2, 0x3b, 0x5b, 0xc3, 0xce, 0xe8, 0x17, 0x34, + 0x55, 0x51, 0x3f, 0x31, 0x91, 0x09, 0xd2, 0xce, 0xb9, 0xd5, 0x2c, 0x9d, 0x23, 0x93, 0xce, 0xda, + 0xad, 0xd3, 0x39, 0xba, 0x2e, 0x9d, 0xa3, 0x77, 0xa5, 0xa3, 0x3d, 0x66, 0x1c, 0x1e, 0x19, 0x0e, + 0xd6, 0xad, 0x39, 0x3c, 0xba, 0x8e, 0xc3, 0xa3, 0x77, 0x71, 0xd0, 0x1e, 0xf9, 0xb6, 0x29, 0xd4, + 0xa9, 0x55, 0xbd, 0xfd, 0xb6, 0x29, 0x96, 0xbc, 0xb8, 0x6d, 0xa6, 0x7a, 0x0d, 0xfe, 0xa7, 0x12, + 0xda, 0xf2, 0x79, 0x2a, 0x55, 0x3e, 0x99, 0xf2, 0x5e, 0xcc, 0x0c, 0x05, 0x04, 0x14, 0xde, 0xdc, + 0x88, 0xc2, 0xb6, 0xf9, 0x50, 0x5c, 0x13, 0xaf, 0xc8, 0x63, 0x73, 0xd1, 0x48, 0x93, 0xf9, 0x35, + 0xb2, 0x7b, 0x4c, 0x31, 0x21, 0x3b, 0x7d, 0x11, 0x1a, 0x1e, 0x35, 0xe0, 0xf1, 0xea, 0x46, 0x3c, + 0xcc, 0x8e, 0x2a, 0xc6, 0x2a, 0x72, 0x68, 0xce, 0x0c, 0x34, 0xfe, 0x10, 0x35, 0xa2, 0x9c, 0x54, + 0xa7, 0x1f, 0x1b, 0xf4, 0x3a, 0xa0, 0xff, 0xe8, 0x46, 0xe8, 0xe6, 0x93, 0xb1, 0x18, 0xa9, 0x88, + 0xbd, 0x3e, 0x51, 0x6b, 0xe4, 0xdf, 0x96, 0x10, 0x4e, 0xfa, 0x91, 0xf0, 0xc2, 0x98, 0xfa, 0x11, + 0x13, 0x06, 0x7e, 0x1d, 0xe0, 0xbf, 0xb8, 0x11, 0xfc, 0x5d, 0x0d, 0x7f, 0x35, 0x5a, 0x91, 0x82, + 0x9d, 0x9b, 0xfc, 0x40, 0x5b, 0x68, 0x16, 0x02, 0xd5, 0x3b, 0x4c, 0xc4, 0x51, 0x6a, 0xe0, 0x1b, + 0x00, 0xff, 0xf9, 0x8d, 0xe0, 0x4d, 0xf7, 0xcf, 0xc7, 0xb9, 0xd2, 0xfd, 0x5a, 0x39, 0xc5, 0x8c, + 0x79, 0x1a, 0xf0, 0x09, 0x26, 0xbe, 0x3d, 0xe6, 0x7c, 0x9c, 0x2b, 0x98, 0x5a, 0xa9, 0x31, 0x7f, + 0x57, 0x42, 0x9b, 0x54, 0x08, 0xfe, 0x65, 0xa1, 0xdc, 0x9b, 0x37, 0x3d, 0x27, 0xc7, 0x99, 0x73, + 0x4f, 0x63, 0x5f, 0x13, 0xae, 0x48, 0x61, 0x03, 0x6c, 0x16, 0x0a, 0xfe, 0x2b, 0x64, 0x27, 0x4c, + 0x84, 0x6c, 0xfe, 0xd4, 0xda, 0xba, 0x7d, 0xc3, 0x17, 0x63, 0x5d, 0xd9, 0xfc, 0x60, 0x30, 0x3d, + 0xa9, 0x4e, 0x2b, 0x56, 0xd3, 0xb6, 0x4f, 0x2b, 0x96, 0x6d, 0x6f, 0x9c, 0x56, 0xac, 0x0d, 0x1b, + 0x93, 0xf5, 0x11, 0x8f, 0xb9, 0x37, 0x78, 0xa8, 0xfd, 0x49, 0x8d, 0x7d, 0x49, 0xa5, 0xf9, 0x92, + 0x90, 0x86, 0x4f, 0x15, 0x8d, 0x47, 0x52, 0x99, 0xe0, 0x07, 0x68, 0xe5, 0x95, 0xca, 0xaf, 0x70, + 0x36, 0x2a, 0x9f, 0xb3, 0x91, 0xbe, 0x65, 0x90, 0x7c, 0x88, 0xb7, 0xd0, 0xca, 0x80, 0xc6, 0x7d, + 0x7d, 0x17, 0xac, 0x12, 0x2d, 0xb8, 0x9f, 0xa1, 0xe6, 0x6b, 0x41, 0x53, 0x49, 0x7d, 0x15, 0xf1, + 0xf4, 0x39, 0x0f, 0x25, 0xc6, 0xa8, 0x02, 0xe7, 0x88, 0xf6, 0x85, 0x31, 0xfe, 0x36, 0xaa, 0xc4, + 0x3c, 0x94, 0xad, 0xe5, 0xdd, 0xf2, 0x5e, 0xed, 0xc1, 0x66, 0xf1, 0xae, 0xf4, 0x9c, 0x87, 0x04, + 0x0c, 0xdc, 0x7f, 0x2e, 0xa3, 0xf2, 0x73, 0x1e, 0xe2, 0x16, 0x5a, 0xa3, 0x41, 0x20, 0x98, 0x94, + 0x26, 0xce, 0x44, 0xc4, 0x77, 0xd0, 0xaa, 0xe2, 0xbd, 0xc8, 0xd7, 0xc1, 0xaa, 0xc4, 0x48, 0x39, + 0x6c, 0x40, 0x15, 0x85, 0x1b, 0x42, 0x9d, 0xc0, 0x18, 0x3f, 0x40, 0x75, 0xc8, 0xcb, 0x4b, 0xfb, + 0x49, 0x87, 0x09, 0x38, 0xb2, 0x2b, 0xed, 0xe6, 0x65, 0xe6, 0xd4, 0x60, 0xfe, 0x33, 0x98, 0x26, + 0xf3, 0x02, 0xfe, 0x10, 0xad, 0xa9, 0xa1, 0x3e, 0x09, 0xf5, 0x59, 0xbc, 0x79, 0x99, 0x39, 0x4d, + 0x35, 0x4b, 0x32, 0x3f, 0xe8, 0xc8, 0xaa, 0x1a, 0xc2, 0x81, 0x77, 0x80, 0x2c, 0x35, 0xf4, 0xa2, + 0x34, 0x60, 0x43, 0x38, 0x38, 0x2b, 0xed, 0xad, 0xcb, 0xcc, 0xb1, 0xe7, 0xcc, 0x4f, 0x72, 0x1d, + 0x59, 0x53, 0x43, 0x18, 0xe0, 0x0f, 0x11, 0xd2, 0x94, 0x00, 0x41, 0x1f, 0x8f, 0xeb, 0x97, 0x99, + 0x53, 0x85, 0x59, 0x88, 0x3d, 0x1b, 0x62, 0x17, 0xad, 0xe8, 0xd8, 0x16, 0xc4, 0xae, 0x5f, 0x66, + 0x8e, 0x15, 0xf3, 0x50, 0xc7, 0xd4, 0xaa, 0xbc, 0x54, 0x82, 0x25, 0x7c, 0xc0, 0x02, 0x38, 0x63, + 0x2c, 0x32, 0x11, 0xdd, 0x3f, 0x2e, 0x23, 0xeb, 0xf5, 0x90, 0x30, 0xd9, 0x8f, 0x15, 0x7e, 0x86, + 0x6c, 0x9f, 0xa7, 0x4a, 0x50, 0x5f, 0x79, 0x0b, 0xa5, 0x6d, 0x6f, 0xcf, 0xba, 0xad, 0x68, 0xe1, + 0x92, 0xe6, 0x64, 0xea, 0xb1, 0xa9, 0xff, 0x16, 0x5a, 0xe9, 0xc4, 0x9c, 0x27, 0xd0, 0x07, 0x75, + 0xa2, 0x05, 0xfc, 0x12, 0xaa, 0x06, 0x6b, 0x5c, 0xbe, 0xfe, 0x3e, 0x5c, 0x68, 0x93, 0xf6, 0x1d, + 0x73, 0x1f, 0x6e, 0x68, 0x64, 0xe3, 0xed, 0xe6, 0x95, 0x85, 0x36, 0xb2, 0x51, 0x59, 0x30, 0x7d, + 0xcb, 0xaa, 0x93, 0x7c, 0x88, 0xef, 0x21, 0x4b, 0xb0, 0x01, 0x13, 0x8a, 0x05, 0xb0, 0x34, 0x16, + 0x99, 0xca, 0xf8, 0x2e, 0xb2, 0x42, 0x2a, 0xbd, 0xbe, 0x64, 0x81, 0x5e, 0x07, 0xb2, 0x16, 0x52, + 0xf9, 0x85, 0x64, 0xc1, 0xc7, 0x95, 0x3f, 0xfc, 0xc5, 0x59, 0x72, 0x29, 0xaa, 0x3d, 0xf6, 0x7d, + 0x26, 0xe5, 0xeb, 0x7e, 0x2f, 0x66, 0xef, 0xe8, 0xaf, 0x07, 0xa8, 0x2e, 0x15, 0x17, 0x34, 0x64, + 0xde, 0x39, 0x1b, 0x99, 0x2e, 0xd3, 0x3d, 0x63, 0xe6, 0x7f, 0xc8, 0x46, 0x92, 0xcc, 0x0b, 0x06, + 0x22, 0x2b, 0xa3, 0xda, 0x6b, 0x41, 0x7d, 0x66, 0xae, 0xeb, 0x79, 0xa7, 0xe6, 0xa2, 0x30, 0x10, + 0x46, 0xca, 0xb1, 0x55, 0x94, 0x30, 0xde, 0x57, 0x66, 0x2f, 0x4d, 0xc4, 0xdc, 0x43, 0x30, 0x36, + 0x64, 0x3e, 0x14, 0xb1, 0x42, 0x8c, 0x84, 0x8f, 0xd0, 0x7a, 0x10, 0x49, 0x78, 0x34, 0x49, 0x45, + 0xcd, 0x2d, 0xd1, 0x6a, 0xdb, 0x97, 0x99, 0x53, 0x37, 0x8a, 0x57, 0xf9, 0x3c, 0x59, 0x90, 0xf0, + 0xf7, 0x50, 0x73, 0xe6, 0x06, 0x6c, 0xa1, 0x36, 0x56, 0x1b, 0x5f, 0x66, 0x4e, 0x63, 0x6a, 0x0a, + 0x1a, 0x52, 0x90, 0xf3, 0x75, 0x0e, 0x58, 0xa7, 0x1f, 0x42, 0xeb, 0x59, 0x44, 0x0b, 0xf9, 0x6c, + 0x1c, 0x25, 0x91, 0x82, 0x56, 0x5b, 0x21, 0x5a, 0xc0, 0xdf, 0x45, 0x55, 0x3e, 0x60, 0x42, 0x44, + 0x01, 0x93, 0x70, 0xcb, 0x78, 0xf7, 0x8b, 0x8b, 0xcc, 0xac, 0xf3, 0xd4, 0xcc, 0x73, 0x30, 0x61, + 0x09, 0x17, 0x23, 0xb8, 0x1c, 0x98, 0xd4, 0xb4, 0xe2, 0x05, 0xcc, 0x93, 0x05, 0x09, 0xb7, 0x11, + 0x36, 0x6e, 0x82, 0xa9, 0xbe, 0x48, 0x3d, 0xd8, 0xfb, 0x75, 0xf0, 0x85, 0x1d, 0xa8, 0xb5, 0x04, + 0x94, 0xc7, 0x54, 0x51, 0x72, 0x65, 0xe6, 0xb4, 0x62, 0x55, 0xec, 0x95, 0xd3, 0x8a, 0xb5, 0x66, + 0x5b, 0xd3, 0xec, 0x0d, 0x0b, 0xb2, 0x39, 0x91, 0xe7, 0xc2, 0xbb, 0x7f, 0x5f, 0x46, 0xcd, 0xc2, + 0xb3, 0x0e, 0xef, 0xa0, 0x5a, 0xca, 0xbd, 0x0e, 0x95, 0xcc, 0x3b, 0x63, 0x0c, 0x56, 0xda, 0x22, + 0xd5, 0x94, 0xb7, 0xa9, 0x64, 0xcf, 0x18, 0xc3, 0x9f, 0xa0, 0xed, 0x89, 0xd2, 0xf3, 0xbb, 0x34, + 0x0d, 0x99, 0x7e, 0x6e, 0x47, 0x29, 0x55, 0x5c, 0x40, 0x03, 0xac, 0x93, 0x56, 0x47, 0x5b, 0x3f, + 0x01, 0x83, 0xe3, 0x99, 0x1e, 0x3f, 0x44, 0x1f, 0xb0, 0x98, 0x4a, 0x15, 0xf9, 0x91, 0x1a, 0x79, + 0x49, 0x3f, 0x56, 0x51, 0x2f, 0x8e, 0x98, 0x80, 0x06, 0x59, 0x27, 0x5b, 0x33, 0xe5, 0x8b, 0xa9, + 0x0e, 0x7f, 0x73, 0x5a, 0xd3, 0x2e, 0x8b, 0xc2, 0xae, 0x82, 0x76, 0x29, 0x4f, 0x2a, 0xf8, 0x29, + 0xcc, 0xe1, 0x37, 0xc8, 0x9a, 0xb2, 0xd6, 0x57, 0xfe, 0xef, 0xe7, 0x3b, 0xf2, 0xfd, 0xcf, 0xa8, + 0xe2, 0x93, 0xd1, 0xe4, 0xa0, 0xcb, 0x4a, 0xec, 0x28, 0x8d, 0x54, 0x44, 0xe3, 0x69, 0x69, 0xda, + 0x2f, 0xfe, 0x7a, 0xb1, 0x53, 0xfa, 0xea, 0x62, 0xa7, 0xf4, 0xf5, 0xc5, 0x4e, 0xe9, 0xbf, 0x17, + 0x3b, 0xa5, 0x3f, 0xbf, 0xdd, 0x59, 0xfa, 0xfa, 0xed, 0xce, 0xd2, 0xbf, 0xdf, 0xee, 0x2c, 0xfd, + 0xe4, 0x60, 0x0e, 0xd4, 0x74, 0x4e, 0xca, 0xd4, 0x64, 0x78, 0x1f, 0xde, 0xa3, 0x07, 0x43, 0xf8, + 0xa7, 0x04, 0x18, 0x74, 0x56, 0xe1, 0x8f, 0x8e, 0x87, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x3b, + 0x0c, 0x4e, 0xe2, 0x45, 0x11, 0x00, 0x00, } +func (this *Params) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Params) + if !ok { + that2, ok := that.(Params) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.EvmDenom != that1.EvmDenom { + return false + } + if this.EnableCreate != that1.EnableCreate { + return false + } + if this.EnableCall != that1.EnableCall { + return false + } + if len(this.ExtraEIPs) != len(that1.ExtraEIPs) { + return false + } + for i := range this.ExtraEIPs { + if this.ExtraEIPs[i] != that1.ExtraEIPs[i] { + return false + } + } + if !this.ChainConfig.Equal(&that1.ChainConfig) { + return false + } + if !this.FeeMarketParams.Equal(&that1.FeeMarketParams) { + return false + } + return true +} +func (this *ChainConfig) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*ChainConfig) + if !ok { + that2, ok := that.(ChainConfig) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if that1.ChainID == nil { + if this.ChainID != nil { + return false + } + } else if !this.ChainID.Equal(*that1.ChainID) { + return false + } + if that1.HomesteadBlock == nil { + if this.HomesteadBlock != nil { + return false + } + } else if !this.HomesteadBlock.Equal(*that1.HomesteadBlock) { + return false + } + if that1.DAOForkBlock == nil { + if this.DAOForkBlock != nil { + return false + } + } else if !this.DAOForkBlock.Equal(*that1.DAOForkBlock) { + return false + } + if this.DAOForkSupport != that1.DAOForkSupport { + return false + } + if that1.EIP150Block == nil { + if this.EIP150Block != nil { + return false + } + } else if !this.EIP150Block.Equal(*that1.EIP150Block) { + return false + } + if this.EIP150Hash != that1.EIP150Hash { + return false + } + if that1.EIP155Block == nil { + if this.EIP155Block != nil { + return false + } + } else if !this.EIP155Block.Equal(*that1.EIP155Block) { + return false + } + if that1.EIP158Block == nil { + if this.EIP158Block != nil { + return false + } + } else if !this.EIP158Block.Equal(*that1.EIP158Block) { + return false + } + if that1.ByzantiumBlock == nil { + if this.ByzantiumBlock != nil { + return false + } + } else if !this.ByzantiumBlock.Equal(*that1.ByzantiumBlock) { + return false + } + if that1.ConstantinopleBlock == nil { + if this.ConstantinopleBlock != nil { + return false + } + } else if !this.ConstantinopleBlock.Equal(*that1.ConstantinopleBlock) { + return false + } + if that1.PetersburgBlock == nil { + if this.PetersburgBlock != nil { + return false + } + } else if !this.PetersburgBlock.Equal(*that1.PetersburgBlock) { + return false + } + if that1.IstanbulBlock == nil { + if this.IstanbulBlock != nil { + return false + } + } else if !this.IstanbulBlock.Equal(*that1.IstanbulBlock) { + return false + } + if that1.MuirGlacierBlock == nil { + if this.MuirGlacierBlock != nil { + return false + } + } else if !this.MuirGlacierBlock.Equal(*that1.MuirGlacierBlock) { + return false + } + if that1.BerlinBlock == nil { + if this.BerlinBlock != nil { + return false + } + } else if !this.BerlinBlock.Equal(*that1.BerlinBlock) { + return false + } + if that1.LondonBlock == nil { + if this.LondonBlock != nil { + return false + } + } else if !this.LondonBlock.Equal(*that1.LondonBlock) { + return false + } + if that1.ArrowGlacierBlock == nil { + if this.ArrowGlacierBlock != nil { + return false + } + } else if !this.ArrowGlacierBlock.Equal(*that1.ArrowGlacierBlock) { + return false + } + if that1.MergeForkBlock == nil { + if this.MergeForkBlock != nil { + return false + } + } else if !this.MergeForkBlock.Equal(*that1.MergeForkBlock) { + return false + } + return true +} +func (this *State) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*State) + if !ok { + that2, ok := that.(State) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Key != that1.Key { + return false + } + if this.Value != that1.Value { + return false + } + return true +} +func (this *TransactionLogs) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*TransactionLogs) + if !ok { + that2, ok := that.(TransactionLogs) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Hash != that1.Hash { + return false + } + if len(this.Logs) != len(that1.Logs) { + return false + } + for i := range this.Logs { + if !this.Logs[i].Equal(that1.Logs[i]) { + return false + } + } + return true +} +func (this *Log) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Log) + if !ok { + that2, ok := that.(Log) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Address != that1.Address { + return false + } + if len(this.Topics) != len(that1.Topics) { + return false + } + for i := range this.Topics { + if this.Topics[i] != that1.Topics[i] { + return false + } + } + if !bytes.Equal(this.Data, that1.Data) { + return false + } + if this.BlockNumber != that1.BlockNumber { + return false + } + if this.TxHash != that1.TxHash { + return false + } + if this.TxIndex != that1.TxIndex { + return false + } + if this.BlockHash != that1.BlockHash { + return false + } + if this.Index != that1.Index { + return false + } + if this.Removed != that1.Removed { + return false + } + return true +} +func (this *TxResult) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*TxResult) + if !ok { + that2, ok := that.(TxResult) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.ContractAddress != that1.ContractAddress { + return false + } + if !bytes.Equal(this.Bloom, that1.Bloom) { + return false + } + if !this.TxLogs.Equal(&that1.TxLogs) { + return false + } + if !bytes.Equal(this.Ret, that1.Ret) { + return false + } + if this.Reverted != that1.Reverted { + return false + } + if this.GasUsed != that1.GasUsed { + return false + } + return true +} +func (this *AccessTuple) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*AccessTuple) + if !ok { + that2, ok := that.(AccessTuple) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Address != that1.Address { + return false + } + if len(this.StorageKeys) != len(that1.StorageKeys) { + return false + } + for i := range this.StorageKeys { + if this.StorageKeys[i] != that1.StorageKeys[i] { + return false + } + } + return true +} +func (this *TraceConfig) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*TraceConfig) + if !ok { + that2, ok := that.(TraceConfig) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Tracer != that1.Tracer { + return false + } + if this.Timeout != that1.Timeout { + return false + } + if this.Reexec != that1.Reexec { + return false + } + if this.DisableStack != that1.DisableStack { + return false + } + if this.DisableStorage != that1.DisableStorage { + return false + } + if this.Debug != that1.Debug { + return false + } + if this.Limit != that1.Limit { + return false + } + if !this.Overrides.Equal(that1.Overrides) { + return false + } + if this.EnableMemory != that1.EnableMemory { + return false + } + if this.EnableReturnData != that1.EnableReturnData { + return false + } + return true +} +func (this *FeeMarketParams) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*FeeMarketParams) + if !ok { + that2, ok := that.(FeeMarketParams) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NoBaseFee != that1.NoBaseFee { + return false + } + if this.BaseFeeChangeDenominator != that1.BaseFeeChangeDenominator { + return false + } + if this.ElasticityMultiplier != that1.ElasticityMultiplier { + return false + } + if this.EnableHeight != that1.EnableHeight { + return false + } + if !this.BaseFee.Equal(that1.BaseFee) { + return false + } + return true +} func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) diff --git a/x/evm/types/expected.go b/x/evm/types/expected.go new file mode 100644 index 00000000..96ece8b7 --- /dev/null +++ b/x/evm/types/expected.go @@ -0,0 +1,16 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// DONTCOVER + +// ParamsSubspace defines an interface that implements the legacy x/params ParamsSubspace +// type. +// +// NOTE: This is used solely for migration of x/params managed parameters. +type ParamsSubspace interface { + GetParamSet(ctx sdk.Context, ps paramstypes.ParamSet) +} diff --git a/x/evm/types/genesis.go b/x/evm/types/genesis.go index 9c048cfb..024f05b8 100644 --- a/x/evm/types/genesis.go +++ b/x/evm/types/genesis.go @@ -31,11 +31,10 @@ func NewGenesisState(params Params, accounts []GenesisAccount) *GenesisState { } } -// Validate performs basic genesis state validation returning an error upon any -// failure. -func (gs GenesisState) Validate() error { +// ValidateGenesis validates the evm genesis parameters +func ValidateGenesis(data GenesisState) error { seenAccounts := make(map[string]bool) - for _, acc := range gs.Accounts { + for _, acc := range data.Accounts { if seenAccounts[acc.Address] { return fmt.Errorf("duplicated genesis account %s", acc.Address) } @@ -45,5 +44,5 @@ func (gs GenesisState) Validate() error { seenAccounts[acc.Address] = true } - return gs.Params.Validate() + return data.Params.Validate() } diff --git a/x/evm/types/genesis.pb.go b/x/evm/types/genesis.pb.go index ece05581..1e4940d0 100644 --- a/x/evm/types/genesis.pb.go +++ b/x/evm/types/genesis.pb.go @@ -5,8 +5,8 @@ package types import ( fmt "fmt" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" @@ -162,30 +162,100 @@ func init() { func init() { proto.RegisterFile("stratos/evm/v1/genesis.proto", fileDescriptor_8bfc0e5ccf7131d4) } var fileDescriptor_8bfc0e5ccf7131d4 = []byte{ - // 327 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0x4f, 0x4e, 0x02, 0x31, - 0x14, 0xc6, 0xa7, 0x42, 0xf8, 0x53, 0x0c, 0x26, 0x8d, 0x9a, 0x06, 0x4d, 0x21, 0xac, 0x66, 0x63, - 0x1b, 0xd0, 0x03, 0x20, 0x1b, 0xe2, 0xce, 0x0c, 0x3b, 0x37, 0xa6, 0x94, 0xa6, 0x10, 0x9d, 0x29, - 0x99, 0x96, 0x89, 0xee, 0x3c, 0x82, 0x77, 0x70, 0xe7, 0x49, 0x58, 0xb2, 0x74, 0xa5, 0x06, 0x2e, - 0x62, 0xa6, 0x33, 0x63, 0xc2, 0xec, 0x5e, 0xfb, 0xfd, 0xbe, 0xf7, 0xbe, 0xf7, 0xe0, 0xa5, 0xb1, - 0x31, 0xb7, 0xda, 0x30, 0x99, 0x84, 0x2c, 0x19, 0x30, 0x25, 0x23, 0x69, 0x96, 0x86, 0xae, 0x62, - 0x6d, 0x35, 0x6a, 0xe7, 0x2a, 0x95, 0x49, 0x48, 0x93, 0x41, 0xe7, 0x54, 0x69, 0xa5, 0x9d, 0xc4, - 0xd2, 0x2a, 0xa3, 0x3a, 0xb8, 0xd4, 0x23, 0x85, 0x9d, 0xd2, 0xff, 0x00, 0xf0, 0x78, 0x92, 0x75, - 0x9c, 0x5a, 0x6e, 0x25, 0x1a, 0xc1, 0x06, 0x17, 0x42, 0xaf, 0x23, 0x6b, 0x30, 0xe8, 0x55, 0xfc, - 0xd6, 0x90, 0xd0, 0xc3, 0x19, 0x34, 0xe7, 0x6f, 0x33, 0x6c, 0x5c, 0xdd, 0x7c, 0x77, 0xbd, 0xe0, - 0xdf, 0x85, 0x6e, 0x60, 0x6d, 0xc5, 0x63, 0x1e, 0x1a, 0x7c, 0xd4, 0x03, 0x7e, 0x6b, 0x78, 0x5e, - 0xf6, 0xdf, 0x3b, 0x35, 0xf7, 0xe5, 0x2c, 0xba, 0x80, 0xcd, 0xd9, 0xb3, 0x16, 0x4f, 0x8f, 0x8a, - 0x1b, 0x5c, 0xe9, 0x01, 0xbf, 0x1a, 0x34, 0xdc, 0xc7, 0x84, 0x9b, 0xfe, 0x1b, 0x80, 0xed, 0xc3, - 0xa9, 0x08, 0xc3, 0x3a, 0x9f, 0xcf, 0x63, 0x69, 0xd2, 0x98, 0xc0, 0x6f, 0x06, 0xc5, 0x13, 0x21, - 0x58, 0x15, 0x7a, 0x2e, 0xdd, 0xf4, 0x66, 0xe0, 0x6a, 0x34, 0x82, 0x75, 0x63, 0x75, 0xcc, 0x95, - 0xc4, 0x15, 0xb7, 0xd4, 0x59, 0x39, 0x94, 0xdb, 0x7e, 0x7c, 0x92, 0x66, 0xfa, 0xfc, 0xe9, 0xd6, - 0xa7, 0x19, 0x1d, 0x14, 0xb6, 0xf1, 0xdd, 0x66, 0x47, 0xc0, 0x76, 0x47, 0xc0, 0xef, 0x8e, 0x80, - 0xf7, 0x3d, 0xf1, 0xb6, 0x7b, 0xe2, 0x7d, 0xed, 0x89, 0xf7, 0xc0, 0xd4, 0xd2, 0x2e, 0xd6, 0x33, - 0x2a, 0x74, 0xc8, 0xf2, 0xa6, 0x91, 0xb4, 0x45, 0x79, 0x25, 0x16, 0x7c, 0x19, 0xb1, 0x17, 0x77, - 0x7a, 0xfb, 0xba, 0x92, 0x66, 0x56, 0x73, 0xa7, 0xbf, 0xfe, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x55, - 0xe9, 0xf9, 0xe4, 0xda, 0x01, 0x00, 0x00, + // 333 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0xcf, 0x4e, 0x32, 0x31, + 0x14, 0xc5, 0xa7, 0x1f, 0x84, 0x3f, 0xe5, 0x0b, 0x26, 0x8d, 0x9a, 0x06, 0x4d, 0x21, 0xac, 0x66, + 0x63, 0x1b, 0xd0, 0x07, 0x40, 0x36, 0xac, 0x4c, 0xcc, 0xb0, 0x73, 0x63, 0x4a, 0x69, 0x0a, 0xd1, + 0x99, 0x92, 0x69, 0x99, 0xe8, 0xce, 0x47, 0xf0, 0x1d, 0xdc, 0x18, 0x9f, 0x84, 0x25, 0x4b, 0x57, + 0x6a, 0x86, 0x17, 0x31, 0xd3, 0x19, 0x4c, 0x98, 0xdd, 0x6d, 0xcf, 0xef, 0xdc, 0x7b, 0xee, 0x85, + 0xe7, 0xc6, 0xc6, 0xdc, 0x6a, 0xc3, 0x64, 0x12, 0xb2, 0x64, 0xc0, 0x94, 0x8c, 0xa4, 0x59, 0x1a, + 0xba, 0x8a, 0xb5, 0xd5, 0xa8, 0x5d, 0xa8, 0x54, 0x26, 0x21, 0x4d, 0x06, 0x9d, 0x63, 0xa5, 0x95, + 0x76, 0x12, 0xcb, 0xaa, 0x9c, 0xea, 0xe0, 0x52, 0x8f, 0x0c, 0x76, 0x4a, 0xff, 0x0d, 0xc0, 0xff, + 0x93, 0xbc, 0xe3, 0xd4, 0x72, 0x2b, 0xd1, 0x08, 0x36, 0xb8, 0x10, 0x7a, 0x1d, 0x59, 0x83, 0x41, + 0xaf, 0xe2, 0xb7, 0x86, 0x84, 0x1e, 0xce, 0xa0, 0x05, 0x7f, 0x9d, 0x63, 0xe3, 0xea, 0xe6, 0xab, + 0xeb, 0x05, 0x7f, 0x2e, 0x74, 0x05, 0x6b, 0x2b, 0x1e, 0xf3, 0xd0, 0xe0, 0x7f, 0x3d, 0xe0, 0xb7, + 0x86, 0xa7, 0x65, 0xff, 0xad, 0x53, 0x0b, 0x5f, 0xc1, 0xa2, 0x33, 0xd8, 0x9c, 0x3d, 0x6a, 0xf1, + 0x70, 0xaf, 0xb8, 0xc1, 0x95, 0x1e, 0xf0, 0xab, 0x41, 0xc3, 0x7d, 0x4c, 0xb8, 0xe9, 0xbf, 0x00, + 0xd8, 0x3e, 0x9c, 0x8a, 0x30, 0xac, 0xf3, 0xf9, 0x3c, 0x96, 0x26, 0x8b, 0x09, 0xfc, 0x66, 0xb0, + 0x7f, 0x22, 0x04, 0xab, 0x42, 0xcf, 0xa5, 0x9b, 0xde, 0x0c, 0x5c, 0x8d, 0x46, 0xb0, 0x6e, 0xac, + 0x8e, 0xb9, 0x92, 0xb8, 0xe2, 0x96, 0x3a, 0x29, 0x87, 0x72, 0xdb, 0x8f, 0x8f, 0xb2, 0x4c, 0x1f, + 0xdf, 0xdd, 0xfa, 0x34, 0xa7, 0x83, 0xbd, 0x6d, 0x7c, 0xf3, 0x9e, 0x12, 0xb0, 0x49, 0x09, 0xd8, + 0xa6, 0x04, 0xfc, 0xa4, 0x04, 0xbc, 0xee, 0x88, 0xb7, 0xdd, 0x11, 0xef, 0x73, 0x47, 0xbc, 0x3b, + 0xa6, 0x96, 0x76, 0xb1, 0x9e, 0x51, 0xa1, 0x43, 0x56, 0x34, 0x8e, 0xa4, 0xdd, 0x97, 0x17, 0x62, + 0xc1, 0x97, 0x11, 0x7b, 0x72, 0xe7, 0xb7, 0xcf, 0x2b, 0x69, 0x66, 0x35, 0x77, 0xfe, 0xcb, 0xdf, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xeb, 0x5f, 0x4d, 0xe9, 0xde, 0x01, 0x00, 0x00, } +func (this *GenesisState) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*GenesisState) + if !ok { + that2, ok := that.(GenesisState) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.Accounts) != len(that1.Accounts) { + return false + } + for i := range this.Accounts { + if !this.Accounts[i].Equal(&that1.Accounts[i]) { + return false + } + } + if !this.Params.Equal(&that1.Params) { + return false + } + if this.BlockGas != that1.BlockGas { + return false + } + return true +} +func (this *GenesisAccount) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*GenesisAccount) + if !ok { + that2, ok := that.(GenesisAccount) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Address != that1.Address { + return false + } + if this.Code != that1.Code { + return false + } + if len(this.Storage) != len(that1.Storage) { + return false + } + for i := range this.Storage { + if !this.Storage[i].Equal(&that1.Storage[i]) { + return false + } + } + return true +} func (m *GenesisState) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) diff --git a/x/evm/types/interfaces.go b/x/evm/types/interfaces.go index f840c936..019ad9eb 100644 --- a/x/evm/types/interfaces.go +++ b/x/evm/types/interfaces.go @@ -7,7 +7,6 @@ import ( "github.com/ethereum/go-ethereum/core" ethtypes "github.com/ethereum/go-ethereum/core/types" - //feemarkettypes "github.com/stratosnet/stratos-chain/x/feemarket/types" ) // AccountKeeper defines the expected account keeper interface @@ -26,12 +25,13 @@ type AccountKeeper interface { // BankKeeper defines the expected interface needed to retrieve account balances. type BankKeeper interface { GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin + SendCoins(ctx sdk.Context, fromAddr sdk.AccAddress, toAddr sdk.AccAddress, amt sdk.Coins) error SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error - // SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error MintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error GetSupply(ctx sdk.Context, denom string) sdk.Coin + IsSendEnabledCoins(ctx sdk.Context, coins ...sdk.Coin) error } // StakingKeeper returns the historical headers kept in store. @@ -40,12 +40,6 @@ type StakingKeeper interface { GetValidatorByConsAddr(ctx sdk.Context, consAddr sdk.ConsAddress) (validator stakingtypes.Validator, found bool) } -type PotKeeper interface { - InitialTotalSupply(ctx sdk.Context) sdk.Coin - BondDenom(ctx sdk.Context) string - SafeMintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error -} - // Event Hooks // These can be utilized to customize evm transaction processing. diff --git a/x/evm/types/legacy_tx.go b/x/evm/types/legacy_tx.go index 293812cf..44ffb3c7 100644 --- a/x/evm/types/legacy_tx.go +++ b/x/evm/types/legacy_tx.go @@ -3,7 +3,7 @@ package types import ( "math/big" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "cosmossdk.io/errors" "github.com/ethereum/go-ethereum/common" ethtypes "github.com/ethereum/go-ethereum/core/types" @@ -73,7 +73,7 @@ func (tx *LegacyTx) GetAccessList() ethtypes.AccessList { return nil } -// GetData returns the a copy of the input data bytes. +// GetData returns a copy of the input data bytes. func (tx *LegacyTx) GetData() []byte { return common.CopyBytes(tx.Data) } @@ -161,43 +161,43 @@ func (tx *LegacyTx) SetSignatureValues(_, v, r, s *big.Int) { func (tx LegacyTx) Validate() error { gasPrice := tx.GetGasPrice() if gasPrice == nil { - return sdkerrors.Wrap(ErrInvalidGasPrice, "gas price cannot be nil") + return errors.Wrap(ErrInvalidGasPrice, "gas price cannot be nil") } if gasPrice.Sign() == -1 { - return sdkerrors.Wrapf(ErrInvalidGasPrice, "gas price cannot be negative %s", gasPrice) + return errors.Wrapf(ErrInvalidGasPrice, "gas price cannot be negative %s", gasPrice) } if !IsValidInt256(gasPrice) { - return sdkerrors.Wrap(ErrInvalidGasPrice, "out of bound") + return errors.Wrap(ErrInvalidGasPrice, "out of bound") } if !IsValidInt256(tx.Fee()) { - return sdkerrors.Wrap(ErrInvalidGasFee, "out of bound") + return errors.Wrap(ErrInvalidGasFee, "out of bound") } amount := tx.GetValue() // Amount can be 0 if amount != nil && amount.Sign() == -1 { - return sdkerrors.Wrapf(ErrInvalidAmount, "amount cannot be negative %s", amount) + return errors.Wrapf(ErrInvalidAmount, "amount cannot be negative %s", amount) } if !IsValidInt256(amount) { - return sdkerrors.Wrap(ErrInvalidAmount, "out of bound") + return errors.Wrap(ErrInvalidAmount, "out of bound") } if tx.To != "" { if err := types.ValidateHexAddress(tx.To); err != nil { - return sdkerrors.Wrap(err, "invalid to address") + return errors.Wrap(err, "invalid to address") } } return nil } -// Fee returns gasprice * gaslimit. +// Fee returns gasPrice * gasLimit. func (tx LegacyTx) Fee() *big.Int { return fee(tx.GetGasPrice(), tx.GetGas()) } -// Cost returns amount + gasprice * gaslimit. +// Cost returns amount + gasPrice * gasLimit. func (tx LegacyTx) Cost() *big.Int { return cost(tx.Fee(), tx.GetValue()) } diff --git a/x/evm/types/msg.go b/x/evm/types/msg.go index d2db4506..b8c7dd7d 100644 --- a/x/evm/types/msg.go +++ b/x/evm/types/msg.go @@ -1,15 +1,15 @@ package types import ( - "errors" "fmt" "math/big" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/client" codectypes "github.com/cosmos/cosmos-sdk/codec/types" "github.com/cosmos/cosmos-sdk/crypto/keyring" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/x/auth/ante" "github.com/cosmos/cosmos-sdk/x/auth/signing" authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" @@ -62,7 +62,7 @@ func newMsgEthereumTx( gasLimit uint64, gasPrice, gasFeeCap, gasTipCap *big.Int, input []byte, accesses *ethtypes.AccessList, ) *MsgEthereumTx { var ( - cid, amt, gp *sdk.Int + cid, amt, gp *sdkmath.Int toAddr string txData TxData ) @@ -72,17 +72,17 @@ func newMsgEthereumTx( } if amount != nil { - amountInt := sdk.NewIntFromBigInt(amount) + amountInt := sdkmath.NewIntFromBigInt(amount) amt = &amountInt } if chainID != nil { - chainIDInt := sdk.NewIntFromBigInt(chainID) + chainIDInt := sdkmath.NewIntFromBigInt(chainID) cid = &chainIDInt } if gasPrice != nil { - gasPriceInt := sdk.NewIntFromBigInt(gasPrice) + gasPriceInt := sdkmath.NewIntFromBigInt(gasPrice) gp = &gasPriceInt } @@ -97,8 +97,8 @@ func newMsgEthereumTx( Data: input, } case accesses != nil && gasFeeCap != nil && gasTipCap != nil: - gtc := sdk.NewIntFromBigInt(gasTipCap) - gfc := sdk.NewIntFromBigInt(gasFeeCap) + gtc := sdkmath.NewIntFromBigInt(gasTipCap) + gfc := sdkmath.NewIntFromBigInt(gasFeeCap) txData = &DynamicFeeTx{ ChainID: cid, @@ -133,7 +133,7 @@ func newMsgEthereumTx( return &MsgEthereumTx{Data: dataAny} } -// fromEthereumTx populates the message fields from the given ethereum transaction +// FromEthereumTx populates the message fields from the given ethereum transaction func (msg *MsgEthereumTx) FromEthereumTx(tx *ethtypes.Transaction) error { txData, err := NewTxDataFromTx(tx) if err != nil { @@ -162,19 +162,19 @@ func (msg MsgEthereumTx) Type() string { return TypeMsgEthereumTx } func (msg MsgEthereumTx) ValidateBasic() error { if msg.From != "" { if err := types.ValidateHexAddress(msg.From); err != nil { - return sdkerrors.Wrap(err, "invalid from address") + return errors.Wrap(err, "invalid from address") } } txData, err := UnpackTxData(msg.Data) if err != nil { - return sdkerrors.Wrap(err, "failed to unpack tx data") + return errors.Wrap(err, "failed to unpack tx data") } return txData.Validate() } -// GetMsgs returns a single MsgEthereumTx as an sdk.Msg. +// GetMsgs returns a single MsgEthereumTx as a sdk.Msg. func (msg *MsgEthereumTx) GetMsgs() []sdk.Msg { return []sdk.Msg{msg} } @@ -245,7 +245,7 @@ func (msg MsgEthereumTx) GetGas() uint64 { return txData.GetGas() } -// GetFee returns the fee for non dynamic fee tx +// GetFee returns the fee for non-dynamic fee tx func (msg MsgEthereumTx) GetFee() *big.Int { txData, err := UnpackTxData(msg.Data) if err != nil { @@ -263,7 +263,7 @@ func (msg MsgEthereumTx) GetEffectiveFee(baseFee *big.Int) *big.Int { return txData.EffectiveFee(baseFee) } -// GetFrom loads the ethereum sender address from the sigcache and returns an +// GetFrom loads the ethereum sender address from the sigcache and returns a // sdk.AccAddress from its bytes func (msg *MsgEthereumTx) GetFrom() sdk.AccAddress { if msg.From == "" { @@ -300,7 +300,7 @@ func (msg *MsgEthereumTx) GetSender(chainID *big.Int) (common.Address, error) { return from, nil } -// UnpackInterfaces implements UnpackInterfacesMesssage.UnpackInterfaces +// UnpackInterfaces implements UnpackInterfaces Message.UnpackInterfaces func (msg MsgEthereumTx) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error { return unpacker.UnpackAny(msg.Data, new(TxData)) } @@ -318,7 +318,7 @@ func (msg *MsgEthereumTx) UnmarshalBinary(b []byte) error { func (msg *MsgEthereumTx) BuildTx(b client.TxBuilder, evmDenom string) (signing.Tx, error) { builder, ok := b.(authtx.ExtensionOptionsTxBuilder) if !ok { - return nil, errors.New("unsupported builder") + return nil, ErrUnSupportedBuilder } option, err := codectypes.NewAnyWithValue(&ExtensionOptionsEthereumTx{}) @@ -331,7 +331,7 @@ func (msg *MsgEthereumTx) BuildTx(b client.TxBuilder, evmDenom string) (signing. return nil, err } fees := make(sdk.Coins, 0) - feeAmt := sdk.NewIntFromBigInt(txData.Fee()) + feeAmt := sdkmath.NewIntFromBigInt(txData.Fee()) if feeAmt.Sign() > 0 { fees = append(fees, sdk.NewCoin(evmDenom, feeAmt)) } diff --git a/x/evm/types/params.go b/x/evm/types/params.go index f77fbf33..383f975a 100644 --- a/x/evm/types/params.go +++ b/x/evm/types/params.go @@ -4,6 +4,7 @@ import ( "fmt" "math/big" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" @@ -161,18 +162,18 @@ func IsLondon(ethConfig *params.ChainConfig, height int64) bool { return ethConfig.IsLondon(big.NewInt(height)) } -// creates a new FeeMarketParams instance +// NewFeeMarketParams creates a new FeeMarketParams instance func NewFeeMarketParams(noBaseFee bool, baseFeeChangeDenom, elasticityMultiplier uint32, baseFee uint64, enableHeight int64) FeeMarketParams { return FeeMarketParams{ NoBaseFee: noBaseFee, BaseFeeChangeDenominator: baseFeeChangeDenom, ElasticityMultiplier: elasticityMultiplier, - BaseFee: sdk.NewIntFromUint64(baseFee), + BaseFee: sdkmath.NewIntFromUint64(baseFee), EnableHeight: enableHeight, } } -// DefaultParams returns default evm parameters +// DefaultFeeMarketParams returns default evm parameters func DefaultFeeMarketParams() FeeMarketParams { return NewFeeMarketParams( false, @@ -226,7 +227,7 @@ func validateElasticityMultiplier(i interface{}) error { } func validateBaseFee(i interface{}) error { - value, ok := i.(sdk.Int) + value, ok := i.(sdkmath.Int) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } diff --git a/x/evm/types/query.pb.go b/x/evm/types/query.pb.go index 8998ce67..457b7db5 100644 --- a/x/evm/types/query.pb.go +++ b/x/evm/types/query.pb.go @@ -6,12 +6,13 @@ package types import ( context "context" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" query "github.com/cosmos/cosmos-sdk/types/query" - _ "github.com/gogo/protobuf/gogoproto" - grpc1 "github.com/gogo/protobuf/grpc" - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" + github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -1437,101 +1438,102 @@ func init() { func init() { proto.RegisterFile("stratos/evm/v1/query.proto", fileDescriptor_f35039d5386d306b) } var fileDescriptor_f35039d5386d306b = []byte{ - // 1507 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0xcf, 0xc6, 0x4e, 0x9c, 0x3e, 0x27, 0x69, 0x98, 0xa6, 0xa9, 0xbb, 0x69, 0xec, 0x64, 0xd3, - 0xe6, 0x8b, 0xc6, 0xdb, 0xa4, 0x08, 0x01, 0x12, 0x1f, 0x49, 0x94, 0x96, 0xaa, 0x05, 0x15, 0x13, - 0x71, 0x40, 0x42, 0xd6, 0x78, 0x3d, 0x5d, 0x5b, 0xb1, 0x77, 0xdd, 0x9d, 0xb1, 0xe5, 0xb4, 0xaa, - 0x80, 0x4a, 0x7c, 0x48, 0x5c, 0x2a, 0xb8, 0x70, 0xec, 0x95, 0xbf, 0x81, 0x7f, 0xa0, 0xc7, 0x4a, - 0x5c, 0x10, 0x87, 0x82, 0x5a, 0x0e, 0xfc, 0x19, 0x68, 0xbe, 0x6c, 0xef, 0xda, 0x1b, 0x37, 0x55, - 0x4f, 0x3b, 0x3b, 0xf3, 0xe6, 0xfd, 0x7e, 0xf3, 0xe6, 0xcd, 0x7b, 0x3f, 0x30, 0x29, 0x0b, 0x30, - 0xf3, 0xa9, 0x4d, 0x5a, 0x75, 0xbb, 0xb5, 0x65, 0xdf, 0x6d, 0x92, 0xe0, 0x28, 0xdf, 0x08, 0x7c, - 0xe6, 0xa3, 0x69, 0xb5, 0x96, 0x27, 0xad, 0x7a, 0xbe, 0xb5, 0x65, 0xce, 0xba, 0xbe, 0xeb, 0x8b, - 0x25, 0x9b, 0x8f, 0xa4, 0x95, 0xb9, 0xe1, 0xf8, 0xb4, 0xee, 0x53, 0xbb, 0x84, 0x29, 0x91, 0xdb, - 0xed, 0xd6, 0x56, 0x89, 0x30, 0xbc, 0x65, 0x37, 0xb0, 0x5b, 0xf5, 0x30, 0xab, 0xfa, 0x9e, 0xb2, - 0xbd, 0xe0, 0xfa, 0xbe, 0x5b, 0x23, 0x36, 0x6e, 0x54, 0x6d, 0xec, 0x79, 0x3e, 0x13, 0x8b, 0x54, - 0xad, 0x66, 0x22, 0x5c, 0x38, 0xac, 0x5c, 0x39, 0x17, 0x59, 0x61, 0x6d, 0xb5, 0x90, 0x53, 0x0e, - 0xc5, 0x5f, 0xa9, 0x79, 0xc7, 0x66, 0xd5, 0x3a, 0xa1, 0x0c, 0xd7, 0x1b, 0xd2, 0xc0, 0x7a, 0x17, - 0xce, 0x7c, 0xc6, 0x39, 0xed, 0x38, 0x8e, 0xdf, 0xf4, 0x58, 0x81, 0xdc, 0x6d, 0x12, 0xca, 0x50, - 0x06, 0x52, 0xb8, 0x5c, 0x0e, 0x08, 0xa5, 0x19, 0x63, 0xd1, 0x58, 0x3b, 0x55, 0xd0, 0xbf, 0xef, - 0x4d, 0xfc, 0xf8, 0x38, 0x37, 0xf2, 0xdf, 0xe3, 0xdc, 0x88, 0xe5, 0xc0, 0x6c, 0x78, 0x2b, 0x6d, - 0xf8, 0x1e, 0x25, 0x7c, 0x6f, 0x09, 0xd7, 0xb0, 0xe7, 0x10, 0xbd, 0x57, 0xfd, 0xa2, 0x79, 0x38, - 0xe5, 0xf8, 0x65, 0x52, 0xac, 0x60, 0x5a, 0xc9, 0x8c, 0x8a, 0xb5, 0x09, 0x3e, 0xf1, 0x31, 0xa6, - 0x15, 0x34, 0x0b, 0x63, 0x9e, 0xcf, 0x37, 0x25, 0x16, 0x8d, 0xb5, 0x64, 0x41, 0xfe, 0x58, 0x1f, - 0xc2, 0x79, 0x01, 0xb2, 0x27, 0x82, 0xf8, 0x0a, 0x2c, 0xbf, 0x37, 0xc0, 0x1c, 0xe4, 0x41, 0x91, - 0xbd, 0x04, 0xd3, 0xf2, 0x7e, 0x8a, 0x61, 0x4f, 0x53, 0x72, 0x76, 0x47, 0x4e, 0x22, 0x13, 0x26, - 0x28, 0x07, 0xe5, 0xfc, 0x46, 0x05, 0xbf, 0xce, 0x3f, 0x77, 0x81, 0xa5, 0xd7, 0xa2, 0xd7, 0xac, - 0x97, 0x48, 0xa0, 0x4e, 0x30, 0xa5, 0x66, 0x3f, 0x15, 0x93, 0xd6, 0x4d, 0xb8, 0x20, 0x78, 0x7c, - 0x81, 0x6b, 0xd5, 0x32, 0x66, 0x7e, 0x10, 0x39, 0xcc, 0x12, 0x4c, 0x3a, 0xbe, 0x17, 0xe5, 0x91, - 0xe6, 0x73, 0x3b, 0x7d, 0xa7, 0xfa, 0xc9, 0x80, 0x85, 0x18, 0x6f, 0xea, 0x60, 0xab, 0x70, 0x5a, - 0xb3, 0x0a, 0x7b, 0xd4, 0x64, 0x5f, 0xe3, 0xd1, 0x74, 0x12, 0xed, 0xca, 0x7b, 0x3e, 0xc9, 0xf5, - 0x5c, 0x51, 0x49, 0xd4, 0xd9, 0x3a, 0x2c, 0x89, 0xac, 0x9b, 0x0a, 0xec, 0x73, 0xe6, 0x07, 0xd8, - 0x1d, 0x0e, 0x86, 0x66, 0x20, 0x71, 0x48, 0x8e, 0x54, 0xbe, 0xf1, 0x61, 0x0f, 0xfc, 0x65, 0x05, - 0xdf, 0x71, 0xa6, 0xe0, 0x67, 0x61, 0xac, 0x85, 0x6b, 0x4d, 0x0d, 0x2e, 0x7f, 0xac, 0xb7, 0x61, - 0x46, 0xa5, 0x52, 0xf9, 0x44, 0x87, 0x5c, 0x85, 0x37, 0x7a, 0xf6, 0x29, 0x08, 0x04, 0x49, 0x9e, - 0xfb, 0x62, 0xd7, 0x64, 0x41, 0x8c, 0xad, 0x7b, 0x80, 0x84, 0xe1, 0x41, 0xfb, 0x96, 0xef, 0x52, - 0x0d, 0x81, 0x20, 0x29, 0x5e, 0x8c, 0xf4, 0x2f, 0xc6, 0xe8, 0x1a, 0x40, 0xb7, 0x7a, 0x88, 0xb3, - 0xa5, 0xb7, 0x57, 0xf2, 0x32, 0x69, 0xf3, 0xbc, 0xd4, 0xe4, 0x65, 0xa5, 0x52, 0xa5, 0x26, 0x7f, - 0xbb, 0x1b, 0xaa, 0x42, 0xcf, 0xce, 0x1e, 0x92, 0x3f, 0x18, 0x2a, 0xb0, 0x1a, 0xbc, 0x93, 0x48, - 0xc9, 0x9a, 0xef, 0xf2, 0xd3, 0x25, 0xd6, 0xd2, 0xdb, 0x67, 0xf2, 0xe1, 0xa2, 0x97, 0xbf, 0xe5, - 0xbb, 0x05, 0x61, 0x80, 0xae, 0x0f, 0xa0, 0xb4, 0x3a, 0x94, 0x92, 0x44, 0xe9, 0xe5, 0x64, 0xcd, - 0xaa, 0x28, 0xdc, 0xc6, 0x01, 0xae, 0xeb, 0x28, 0x74, 0xee, 0x5d, 0xcf, 0x2a, 0x7a, 0x6f, 0xc1, - 0x78, 0x43, 0xcc, 0x88, 0xf0, 0xa4, 0xb7, 0xe7, 0xa2, 0x04, 0xa5, 0xfd, 0x6e, 0xf2, 0xc9, 0xb3, - 0xdc, 0x48, 0x41, 0xd9, 0x5a, 0xef, 0xc3, 0xf4, 0x3e, 0xab, 0xec, 0xe1, 0x5a, 0xad, 0x27, 0xc8, - 0x38, 0x70, 0xa9, 0xbe, 0x0e, 0x3e, 0x46, 0xe7, 0x20, 0xe5, 0x62, 0x5a, 0x74, 0x70, 0x43, 0xbd, - 0x8c, 0x71, 0x17, 0xd3, 0x3d, 0xdc, 0xb0, 0x56, 0xe1, 0xcc, 0x3e, 0x65, 0xd5, 0x3a, 0x66, 0xe4, - 0x3a, 0xee, 0x72, 0x99, 0x81, 0x84, 0x8b, 0xa5, 0x8b, 0x64, 0x81, 0x0f, 0xad, 0xa7, 0xa3, 0x3a, - 0xa8, 0x01, 0x76, 0xc8, 0x41, 0x5b, 0xa3, 0xd9, 0x90, 0xa8, 0x53, 0x57, 0x51, 0x5e, 0x88, 0x52, - 0xfe, 0x84, 0xba, 0xfb, 0xac, 0x42, 0x02, 0xd2, 0xac, 0x1f, 0xb4, 0x0b, 0xdc, 0x12, 0x7d, 0x00, - 0x93, 0x8c, 0xbb, 0x28, 0x3a, 0xbe, 0x77, 0xa7, 0xea, 0xaa, 0xf0, 0xce, 0x47, 0x77, 0x0a, 0x98, - 0x3d, 0x61, 0x52, 0x48, 0xb3, 0xee, 0x0f, 0xda, 0x81, 0xc9, 0x46, 0x40, 0xca, 0xc4, 0x21, 0x94, - 0xfa, 0x01, 0xcd, 0x24, 0xc4, 0x6d, 0x0e, 0x41, 0x0e, 0x6d, 0xe1, 0x05, 0xaa, 0x54, 0xf3, 0x9d, - 0x43, 0x5d, 0x0a, 0x92, 0x8b, 0xc6, 0x5a, 0xa2, 0x90, 0x16, 0x73, 0xb2, 0x10, 0xa0, 0x05, 0x00, - 0x69, 0x22, 0xf2, 0x75, 0x4c, 0xe4, 0xeb, 0x29, 0x31, 0x23, 0x4a, 0xfc, 0x9e, 0x5e, 0xe6, 0x5d, - 0x28, 0x33, 0x2e, 0x8e, 0x60, 0xe6, 0x65, 0x8b, 0xca, 0xeb, 0x16, 0x95, 0x3f, 0xd0, 0x2d, 0x6a, - 0x77, 0x82, 0xdf, 0xd9, 0xa3, 0xbf, 0x73, 0x86, 0x72, 0xc2, 0x57, 0xac, 0x0d, 0xf5, 0x64, 0x3b, - 0x11, 0xed, 0xbe, 0xa7, 0x32, 0x66, 0x58, 0x5f, 0x20, 0x1f, 0x5b, 0x8f, 0x46, 0x61, 0xae, 0x6b, - 0xbc, 0xcb, 0x7d, 0xf4, 0xdc, 0x00, 0x6b, 0xeb, 0xac, 0x1e, 0x76, 0x03, 0xac, 0x4d, 0xfb, 0x6e, - 0x20, 0x71, 0xc2, 0x1b, 0x88, 0x86, 0x6f, 0x6c, 0x58, 0xf8, 0xc6, 0x8f, 0x0f, 0x5f, 0xea, 0xd5, - 0xc2, 0xb7, 0x09, 0xe7, 0xfa, 0x22, 0x72, 0x4c, 0x04, 0xcf, 0x76, 0x4a, 0x3b, 0x25, 0xd7, 0x88, - 0x2e, 0x21, 0xd6, 0x57, 0x9d, 0xb2, 0xad, 0xa6, 0x95, 0x8b, 0x7d, 0x98, 0xe0, 0x2f, 0xbd, 0x78, - 0x87, 0xa8, 0xd2, 0xb9, 0xbb, 0xf1, 0xd7, 0xb3, 0xdc, 0x8a, 0x5b, 0x65, 0x95, 0x66, 0x29, 0xef, - 0xf8, 0x75, 0x5b, 0xa9, 0x21, 0xf9, 0xd9, 0xa4, 0xe5, 0x43, 0x9b, 0x1d, 0x35, 0x08, 0xcd, 0xdf, - 0xf0, 0x18, 0xaf, 0xf1, 0xc2, 0x9d, 0x35, 0xa7, 0xdd, 0x73, 0x7e, 0xe2, 0x85, 0x49, 0xd8, 0x75, - 0x38, 0x1b, 0x99, 0xef, 0x7f, 0x79, 0x09, 0xf9, 0xf2, 0x3e, 0x52, 0x6d, 0x5f, 0xb5, 0xb9, 0x3d, - 0xdf, 0x6b, 0x91, 0xe0, 0x44, 0xca, 0x81, 0xc0, 0xfc, 0x40, 0x0f, 0x0a, 0x32, 0x07, 0xe9, 0x0a, - 0x69, 0x47, 0x9a, 0x2b, 0x54, 0x48, 0x5b, 0x37, 0xd6, 0x4b, 0x30, 0x5d, 0x22, 0x4e, 0xe5, 0xea, - 0x76, 0xc7, 0x46, 0xb6, 0xa0, 0x29, 0x39, 0xab, 0xcc, 0xb6, 0x7f, 0x3f, 0x0d, 0x63, 0x02, 0x07, - 0x7d, 0x0d, 0x29, 0xd5, 0xc5, 0xd1, 0x72, 0x34, 0xad, 0x06, 0x88, 0x34, 0xf3, 0xe2, 0xf1, 0x46, - 0x92, 0xa7, 0xb5, 0xfe, 0xf0, 0x8f, 0x7f, 0x7f, 0x19, 0x5d, 0x46, 0x4b, 0x76, 0x44, 0x24, 0xaa, - 0x1e, 0x6e, 0xdf, 0x57, 0xf4, 0x1e, 0xa0, 0x5f, 0x0d, 0x98, 0x0a, 0xc9, 0x24, 0xb4, 0x3e, 0x10, - 0x62, 0x90, 0x18, 0x33, 0x37, 0x5e, 0xc6, 0x54, 0x71, 0xba, 0x22, 0x38, 0x6d, 0xa0, 0xb5, 0x28, - 0x27, 0xad, 0xc5, 0xfa, 0xa8, 0xfd, 0x66, 0xc0, 0x4c, 0x54, 0xeb, 0xa0, 0xcb, 0x03, 0x21, 0x63, - 0x04, 0x96, 0xb9, 0xf9, 0x92, 0xd6, 0x8a, 0xe3, 0x3b, 0x82, 0xe3, 0x36, 0xba, 0x12, 0xe5, 0xd8, - 0xd2, 0x3b, 0xba, 0x34, 0x7b, 0x85, 0xdb, 0x03, 0xf4, 0x8d, 0x01, 0x29, 0xa5, 0x67, 0x62, 0x2e, - 0x32, 0x2c, 0x94, 0x62, 0x2e, 0x32, 0x22, 0x89, 0xac, 0x0d, 0x41, 0xe8, 0x22, 0xb2, 0xa2, 0x84, - 0x94, 0x32, 0xa2, 0x3d, 0xe1, 0xfa, 0xce, 0x80, 0x94, 0xd2, 0x34, 0x31, 0x14, 0xc2, 0xf2, 0x29, - 0x86, 0x42, 0x44, 0x16, 0x59, 0xb6, 0xa0, 0xb0, 0x8e, 0x56, 0xa3, 0x14, 0xa8, 0x34, 0xec, 0x32, - 0xb0, 0xef, 0x1f, 0x92, 0xa3, 0x07, 0x88, 0x41, 0x92, 0x8b, 0x1e, 0xb4, 0x18, 0x93, 0x1c, 0x1d, - 0x1d, 0x65, 0x2e, 0x1d, 0x63, 0xa1, 0xd0, 0x57, 0x05, 0xfa, 0x12, 0xca, 0xf5, 0x67, 0x4d, 0x39, - 0x74, 0xfa, 0xbb, 0x30, 0x2e, 0xbb, 0x3e, 0xb2, 0x06, 0x7a, 0x0d, 0x09, 0x0b, 0x73, 0xf9, 0x58, - 0x1b, 0x85, 0x9d, 0x15, 0xd8, 0x19, 0x34, 0x17, 0xc5, 0x96, 0x82, 0x02, 0x05, 0x90, 0x52, 0x82, - 0x02, 0x65, 0xa3, 0xfe, 0xc2, 0x4a, 0xc3, 0xbc, 0x74, 0x7c, 0xb3, 0xd1, 0x88, 0x8b, 0x02, 0xd1, - 0x44, 0x99, 0x28, 0x22, 0x61, 0x95, 0xa2, 0xc3, 0x81, 0xda, 0x90, 0xee, 0x51, 0x21, 0x43, 0x71, - 0xfb, 0xce, 0x39, 0x40, 0xc2, 0x58, 0x17, 0x05, 0x6a, 0x16, 0x5d, 0xe8, 0x43, 0x55, 0xc6, 0x45, - 0x17, 0x53, 0xd4, 0x82, 0x94, 0x6a, 0xbf, 0x31, 0xd9, 0x15, 0x96, 0x3b, 0x31, 0xd9, 0x15, 0xe9, - 0xe0, 0xf1, 0x27, 0x96, 0x7d, 0x97, 0xb5, 0xd1, 0x43, 0x03, 0xa0, 0xdb, 0xb8, 0xd0, 0x4a, 0xbc, - 0xdb, 0xde, 0x5e, 0x6f, 0xae, 0x0e, 0xb5, 0x53, 0x0c, 0x96, 0x05, 0x83, 0x05, 0x34, 0x3f, 0x98, - 0x81, 0xe8, 0xa2, 0xfc, 0xf0, 0xaa, 0xed, 0xc5, 0xbe, 0xee, 0xde, 0x5e, 0x19, 0xfb, 0xba, 0x43, - 0x9d, 0x33, 0xfe, 0xf0, 0xba, 0x9f, 0xa2, 0x6f, 0x0d, 0x98, 0x54, 0xbb, 0x44, 0x72, 0xbe, 0x4e, - 0xf4, 0x15, 0x81, 0xbe, 0x88, 0xb2, 0x71, 0xe8, 0x45, 0x91, 0xe7, 0xe8, 0x1e, 0x4c, 0xe8, 0xde, - 0x8b, 0x62, 0x3c, 0x87, 0x5b, 0x76, 0x7f, 0xb6, 0x0f, 0x6c, 0xe0, 0xd6, 0x92, 0x20, 0x30, 0x8f, - 0xce, 0xf7, 0x11, 0x10, 0x8a, 0x87, 0x27, 0xdd, 0xcf, 0x06, 0x4c, 0x87, 0x7b, 0x31, 0x1a, 0xdc, - 0x73, 0x06, 0xb6, 0x7c, 0xf3, 0xcd, 0x97, 0xb2, 0x1d, 0x56, 0x6a, 0x54, 0x8d, 0xe1, 0x22, 0x90, - 0x6f, 0xd8, 0xbd, 0xf1, 0xe4, 0x79, 0xd6, 0x78, 0xfa, 0x3c, 0x6b, 0xfc, 0xf3, 0x3c, 0x6b, 0x3c, - 0x7a, 0x91, 0x1d, 0x79, 0xfa, 0x22, 0x3b, 0xf2, 0xe7, 0x8b, 0xec, 0xc8, 0x97, 0x76, 0x8f, 0xe8, - 0x51, 0x4e, 0x3c, 0xc2, 0xf4, 0x70, 0xd3, 0xa9, 0xe0, 0xaa, 0x67, 0xb7, 0x85, 0x5f, 0xa1, 0x80, - 0x4a, 0xe3, 0x42, 0xc2, 0x5d, 0xfd, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x56, 0x65, 0x2e, 0xdc, 0x73, + // 1523 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xcf, 0x6f, 0x13, 0xc7, + 0x17, 0xcf, 0xc6, 0x4e, 0x1c, 0x9e, 0x93, 0x90, 0xef, 0x10, 0x82, 0xd9, 0x10, 0x3b, 0xd9, 0x40, + 0x7e, 0x7d, 0x89, 0x97, 0x84, 0xaa, 0xa2, 0x95, 0xfa, 0x23, 0x89, 0x80, 0x22, 0x68, 0x45, 0x4d, + 0xd4, 0x43, 0x2f, 0xd6, 0x78, 0x3d, 0xac, 0xad, 0xd8, 0xbb, 0x66, 0x67, 0x6c, 0x39, 0x20, 0xd4, + 0x16, 0xa9, 0x3f, 0xa4, 0x5e, 0x50, 0x7b, 0xe9, 0x91, 0x6b, 0xef, 0xbd, 0xf5, 0x1f, 0xe0, 0x88, + 0xda, 0x4b, 0xd5, 0x03, 0xad, 0xa0, 0x87, 0xfe, 0x19, 0xd5, 0xfc, 0xb2, 0xbd, 0x6b, 0x6f, 0x4c, + 0x10, 0xa7, 0xdd, 0x99, 0x79, 0xf3, 0x3e, 0x9f, 0x79, 0xf3, 0xe6, 0xbd, 0x0f, 0x98, 0x94, 0x05, + 0x98, 0xf9, 0xd4, 0x26, 0xad, 0xba, 0xdd, 0xda, 0xb2, 0xef, 0x35, 0x49, 0x70, 0x98, 0x6f, 0x04, + 0x3e, 0xf3, 0xd1, 0xb4, 0x5a, 0xcb, 0x93, 0x56, 0x3d, 0xdf, 0xda, 0x32, 0x67, 0x5d, 0xdf, 0xf5, + 0xc5, 0x92, 0xcd, 0xff, 0xa4, 0x95, 0x79, 0xd6, 0xf1, 0x69, 0xdd, 0xa7, 0x45, 0xb9, 0x20, 0x07, + 0x6a, 0x69, 0x43, 0x8e, 0xec, 0x12, 0xa6, 0x44, 0x7a, 0xb6, 0x5b, 0x5b, 0x25, 0xc2, 0xf0, 0x96, + 0xdd, 0xc0, 0x6e, 0xd5, 0xc3, 0xac, 0xea, 0x7b, 0xca, 0xf6, 0x9c, 0xeb, 0xfb, 0x6e, 0x8d, 0xd8, + 0xb8, 0x51, 0xb5, 0xb1, 0xe7, 0xf9, 0x4c, 0x2c, 0x6a, 0x4f, 0x99, 0x08, 0x4d, 0xce, 0x48, 0xae, + 0x9c, 0x89, 0xac, 0xb0, 0xb6, 0x5a, 0xc8, 0x29, 0x87, 0x62, 0x54, 0x6a, 0xde, 0xb5, 0x59, 0xb5, + 0x4e, 0x28, 0xc3, 0xf5, 0x86, 0x34, 0xb0, 0xde, 0x81, 0x53, 0x9f, 0x72, 0x4e, 0x3b, 0x8e, 0xe3, + 0x37, 0x3d, 0x56, 0x20, 0xf7, 0x9a, 0x84, 0x32, 0x94, 0x81, 0x14, 0x2e, 0x97, 0x03, 0x42, 0x69, + 0xc6, 0x58, 0x34, 0xd6, 0x4e, 0x14, 0xf4, 0xf0, 0xdd, 0x89, 0xef, 0x9e, 0xe4, 0x46, 0xfe, 0x7d, + 0x92, 0x1b, 0xb1, 0x1c, 0x98, 0x0d, 0x6f, 0xa5, 0x0d, 0xdf, 0xa3, 0x84, 0xef, 0x2d, 0xe1, 0x1a, + 0xf6, 0x1c, 0xa2, 0xf7, 0xaa, 0x21, 0x9a, 0x87, 0x13, 0x8e, 0x5f, 0x26, 0xc5, 0x0a, 0xa6, 0x95, + 0xcc, 0xa8, 0x58, 0x9b, 0xe0, 0x13, 0x1f, 0x61, 0x5a, 0x41, 0xb3, 0x30, 0xe6, 0xf9, 0x7c, 0x53, + 0x62, 0xd1, 0x58, 0x4b, 0x16, 0xe4, 0xc0, 0xfa, 0x00, 0xce, 0x0a, 0x90, 0x3d, 0x11, 0xc4, 0xd7, + 0x60, 0xf9, 0x8d, 0x01, 0xe6, 0x20, 0x0f, 0x8a, 0xec, 0x05, 0x98, 0x56, 0x57, 0x17, 0xf6, 0x34, + 0x25, 0x67, 0x77, 0xe4, 0x24, 0x32, 0x61, 0x82, 0x72, 0x50, 0xce, 0x6f, 0x54, 0xf0, 0xeb, 0x8c, + 0xb9, 0x0b, 0x2c, 0xbd, 0x16, 0xbd, 0x66, 0xbd, 0x44, 0x02, 0x75, 0x82, 0x29, 0x35, 0xfb, 0x89, + 0x98, 0xb4, 0x6e, 0xc2, 0x39, 0xc1, 0xe3, 0x33, 0x5c, 0xab, 0x96, 0x31, 0xf3, 0x83, 0xc8, 0x61, + 0x96, 0x60, 0xd2, 0xf1, 0xbd, 0x28, 0x8f, 0x34, 0x9f, 0xdb, 0xe9, 0x3b, 0xd5, 0xf7, 0x06, 0x2c, + 0xc4, 0x78, 0x53, 0x07, 0x5b, 0x85, 0x93, 0x9a, 0x55, 0xd8, 0xa3, 0x26, 0xfb, 0x06, 0x8f, 0xa6, + 0x93, 0x68, 0x57, 0xde, 0xf3, 0x71, 0xae, 0xe7, 0x92, 0x4a, 0xa2, 0xce, 0xd6, 0x61, 0x49, 0x64, + 0xdd, 0x54, 0x60, 0x77, 0x98, 0x1f, 0x60, 0x77, 0x38, 0x18, 0x9a, 0x81, 0xc4, 0x01, 0x39, 0x54, + 0xf9, 0xc6, 0x7f, 0x7b, 0xe0, 0x2f, 0x2a, 0xf8, 0x8e, 0x33, 0x05, 0x3f, 0x0b, 0x63, 0x2d, 0x5c, + 0x6b, 0x6a, 0x70, 0x39, 0xb0, 0xde, 0x86, 0x19, 0x95, 0x4a, 0xe5, 0x63, 0x1d, 0x72, 0x15, 0xfe, + 0xd7, 0xb3, 0x4f, 0x41, 0x20, 0x48, 0xf2, 0xdc, 0x17, 0xbb, 0x26, 0x0b, 0xe2, 0xdf, 0xba, 0x0f, + 0x48, 0x18, 0xee, 0xb7, 0x6f, 0xf9, 0x2e, 0xd5, 0x10, 0x08, 0x92, 0xe2, 0xc5, 0x48, 0xff, 0xe2, + 0x1f, 0x5d, 0x03, 0xe8, 0x56, 0x0f, 0x71, 0xb6, 0xf4, 0xf6, 0x4a, 0x5e, 0x15, 0x1e, 0x5e, 0x6a, + 0xf2, 0xb2, 0x88, 0xa9, 0x52, 0x93, 0xbf, 0xdd, 0x0d, 0x55, 0xa1, 0x67, 0x67, 0x0f, 0xc9, 0x6f, + 0x0d, 0x15, 0x58, 0x0d, 0xde, 0x49, 0xa4, 0x64, 0xcd, 0x77, 0xf9, 0xe9, 0x12, 0x6b, 0xe9, 0xed, + 0x53, 0xf9, 0x70, 0x3d, 0xcc, 0xdf, 0xf2, 0xdd, 0x82, 0x30, 0x40, 0xd7, 0x07, 0x50, 0x5a, 0x1d, + 0x4a, 0x49, 0xa2, 0xf4, 0x72, 0xb2, 0x66, 0x55, 0x14, 0x6e, 0xe3, 0x00, 0xd7, 0x75, 0x14, 0x3a, + 0xf7, 0xae, 0x67, 0x15, 0xbd, 0xb7, 0x60, 0xbc, 0x21, 0x66, 0x44, 0x78, 0xd2, 0xdb, 0x73, 0x51, + 0x82, 0xd2, 0x7e, 0x37, 0xf9, 0xf4, 0x79, 0x6e, 0xa4, 0xa0, 0x6c, 0xad, 0xf7, 0x60, 0xfa, 0x2a, + 0xab, 0xec, 0xe1, 0x5a, 0xad, 0x27, 0xc8, 0x38, 0x70, 0xa9, 0xbe, 0x0e, 0xfe, 0x8f, 0xce, 0x40, + 0xca, 0xc5, 0xb4, 0xe8, 0xe0, 0x86, 0x7a, 0x19, 0xe3, 0x2e, 0xa6, 0x7b, 0xb8, 0x61, 0xad, 0xc2, + 0xa9, 0xab, 0x94, 0x55, 0xeb, 0x98, 0x91, 0xeb, 0xb8, 0xcb, 0x65, 0x06, 0x12, 0x2e, 0x96, 0x2e, + 0x92, 0x05, 0xfe, 0x6b, 0x3d, 0x1b, 0xd5, 0x41, 0x0d, 0xb0, 0x43, 0xf6, 0xdb, 0x1a, 0xcd, 0x86, + 0x44, 0x9d, 0xba, 0x8a, 0xf2, 0x42, 0x94, 0xf2, 0xc7, 0xd4, 0xbd, 0xca, 0x2a, 0x24, 0x20, 0xcd, + 0xfa, 0x7e, 0xbb, 0xc0, 0x2d, 0xd1, 0xfb, 0x30, 0xc9, 0xb8, 0x8b, 0xa2, 0xe3, 0x7b, 0x77, 0xab, + 0xae, 0x0a, 0xef, 0x7c, 0x74, 0xa7, 0x80, 0xd9, 0x13, 0x26, 0x85, 0x34, 0xeb, 0x0e, 0xd0, 0x0e, + 0x4c, 0x36, 0x02, 0x52, 0x26, 0x0e, 0xa1, 0xd4, 0x0f, 0x68, 0x26, 0x21, 0x6e, 0x73, 0x08, 0x72, + 0x68, 0x0b, 0x2f, 0x50, 0xa5, 0x9a, 0xef, 0x1c, 0xe8, 0x52, 0x90, 0x5c, 0x34, 0xd6, 0x12, 0x85, + 0xb4, 0x98, 0x93, 0x85, 0x00, 0x2d, 0x00, 0x48, 0x13, 0x91, 0xaf, 0x63, 0x22, 0x5f, 0x4f, 0x88, + 0x19, 0x51, 0xe2, 0xf7, 0xf4, 0x32, 0xef, 0x42, 0x99, 0x71, 0x71, 0x04, 0x33, 0x2f, 0x5b, 0x54, + 0x5e, 0xb7, 0xa8, 0xfc, 0xbe, 0x6e, 0x51, 0xbb, 0x13, 0xfc, 0xce, 0x1e, 0xff, 0x95, 0x33, 0x94, + 0x13, 0xbe, 0x62, 0x6d, 0xa8, 0x27, 0xdb, 0x89, 0x68, 0xf7, 0x3d, 0x95, 0x31, 0xc3, 0xfa, 0x02, + 0xf9, 0xbf, 0xf5, 0x78, 0x14, 0xe6, 0xba, 0xc6, 0xbb, 0xdc, 0x47, 0xcf, 0x0d, 0xb0, 0xb6, 0xce, + 0xea, 0x61, 0x37, 0xc0, 0xda, 0xb4, 0xef, 0x06, 0x12, 0xc7, 0xbc, 0x81, 0x68, 0xf8, 0xc6, 0x86, + 0x85, 0x6f, 0xfc, 0xe8, 0xf0, 0xa5, 0x5e, 0x2f, 0x7c, 0x9b, 0x70, 0xa6, 0x2f, 0x22, 0x47, 0x44, + 0xf0, 0x74, 0xa7, 0xb4, 0x53, 0x72, 0x8d, 0xe8, 0x12, 0x62, 0x1d, 0x74, 0xca, 0xb6, 0x9a, 0x56, + 0x2e, 0xee, 0xc0, 0x04, 0x7f, 0xe9, 0xc5, 0xbb, 0x44, 0x95, 0xce, 0xdd, 0x2b, 0x7f, 0x3e, 0xcf, + 0xad, 0xb8, 0x55, 0x56, 0x69, 0x96, 0xf2, 0x8e, 0x5f, 0x57, 0xda, 0x48, 0x7d, 0x36, 0x69, 0xf9, + 0xc0, 0x66, 0x87, 0x0d, 0x42, 0xf3, 0x37, 0x3c, 0xf6, 0xdb, 0x2f, 0x9b, 0xa0, 0xca, 0xc5, 0x0d, + 0x8f, 0xf1, 0x8a, 0x2f, 0x9c, 0x5b, 0x73, 0x1a, 0x8c, 0xb3, 0x15, 0xef, 0x4d, 0x92, 0x58, 0x87, + 0xd3, 0x91, 0xf9, 0xfe, 0x77, 0x98, 0x90, 0xef, 0xf0, 0x43, 0x25, 0x02, 0x54, 0xd3, 0xdb, 0xf3, + 0xbd, 0x16, 0x09, 0x8e, 0xa5, 0x23, 0x08, 0xcc, 0x0f, 0xf4, 0xa0, 0x20, 0x73, 0x90, 0xae, 0x90, + 0x76, 0xa4, 0xd5, 0x42, 0x85, 0xb4, 0x75, 0x9b, 0xbd, 0x00, 0xd3, 0x25, 0xe2, 0x54, 0x2e, 0x6f, + 0x77, 0x6c, 0x64, 0x43, 0x9a, 0x92, 0xb3, 0xca, 0x6c, 0xfb, 0xd7, 0x93, 0x30, 0x26, 0x70, 0xd0, + 0x17, 0x90, 0x52, 0x3d, 0x1d, 0x2d, 0x47, 0x93, 0x6c, 0x80, 0x64, 0x33, 0xcf, 0x1f, 0x6d, 0x24, + 0x79, 0x5a, 0xeb, 0x8f, 0x7e, 0xff, 0xe7, 0xc7, 0xd1, 0x65, 0xb4, 0x64, 0x47, 0x24, 0xa3, 0xea, + 0xe8, 0xf6, 0x03, 0x45, 0xef, 0x21, 0xfa, 0xc9, 0x80, 0xa9, 0x90, 0x68, 0x42, 0xeb, 0x03, 0x21, + 0x06, 0x49, 0x33, 0x73, 0xe3, 0x55, 0x4c, 0x15, 0xa7, 0x4b, 0x82, 0xd3, 0x06, 0x5a, 0x8b, 0x72, + 0xd2, 0xca, 0xac, 0x8f, 0xda, 0xcf, 0x06, 0xcc, 0x44, 0x95, 0x0f, 0xba, 0x38, 0x10, 0x32, 0x46, + 0x6e, 0x99, 0x9b, 0xaf, 0x68, 0xad, 0x38, 0x5e, 0x11, 0x1c, 0xb7, 0xd1, 0xa5, 0x28, 0xc7, 0x96, + 0xde, 0xd1, 0xa5, 0xd9, 0x2b, 0xe3, 0x1e, 0xa2, 0x2f, 0x0d, 0x48, 0x29, 0x75, 0x13, 0x73, 0x91, + 0x61, 0xd9, 0x14, 0x73, 0x91, 0x11, 0x81, 0x64, 0x6d, 0x08, 0x42, 0xe7, 0x91, 0x15, 0x25, 0xa4, + 0x74, 0x12, 0xed, 0x09, 0xd7, 0xd7, 0x06, 0xa4, 0x94, 0xc2, 0x89, 0xa1, 0x10, 0x16, 0x53, 0x31, + 0x14, 0x22, 0x22, 0xc9, 0xb2, 0x05, 0x85, 0x75, 0xb4, 0x1a, 0xa5, 0x40, 0xa5, 0x61, 0x97, 0x81, + 0xfd, 0xe0, 0x80, 0x1c, 0x3e, 0x44, 0x0c, 0x92, 0x5c, 0x02, 0xa1, 0xc5, 0x98, 0xe4, 0xe8, 0xa8, + 0x2a, 0x73, 0xe9, 0x08, 0x0b, 0x85, 0xbe, 0x2a, 0xd0, 0x97, 0x50, 0xae, 0x3f, 0x6b, 0xca, 0xa1, + 0xd3, 0xdf, 0x83, 0x71, 0xa9, 0x01, 0x90, 0x35, 0xd0, 0x6b, 0x48, 0x66, 0x98, 0xcb, 0x47, 0xda, + 0x28, 0xec, 0xac, 0xc0, 0xce, 0xa0, 0xb9, 0x28, 0xb6, 0x94, 0x17, 0x28, 0x80, 0x94, 0x92, 0x17, + 0x28, 0x1b, 0xf5, 0x17, 0xd6, 0x1d, 0xe6, 0x85, 0xa3, 0x5b, 0x8f, 0x46, 0x5c, 0x14, 0x88, 0x26, + 0xca, 0x44, 0x11, 0x09, 0xab, 0x14, 0x1d, 0x0e, 0xd4, 0x86, 0x74, 0x8f, 0x26, 0x19, 0x8a, 0xdb, + 0x77, 0xce, 0x01, 0x82, 0xc6, 0x3a, 0x2f, 0x50, 0xb3, 0xe8, 0x5c, 0x1f, 0xaa, 0x32, 0x2e, 0xba, + 0x98, 0xa2, 0x16, 0xa4, 0x54, 0x33, 0x8e, 0xc9, 0xae, 0xb0, 0xf8, 0x89, 0xc9, 0xae, 0x48, 0x3f, + 0x8f, 0x3f, 0xb1, 0xec, 0xc2, 0xac, 0x8d, 0x1e, 0x19, 0x00, 0xdd, 0x36, 0x86, 0x56, 0xe2, 0xdd, + 0xf6, 0x76, 0x7e, 0x73, 0x75, 0xa8, 0x9d, 0x62, 0xb0, 0x2c, 0x18, 0x2c, 0xa0, 0xf9, 0xc1, 0x0c, + 0x44, 0x4f, 0xe5, 0x87, 0x57, 0x4d, 0x30, 0xf6, 0x75, 0xf7, 0x76, 0xce, 0xd8, 0xd7, 0x1d, 0xea, + 0xa3, 0xf1, 0x87, 0xd7, 0xdd, 0x15, 0x7d, 0x65, 0xc0, 0xa4, 0xda, 0x25, 0x92, 0xf3, 0x4d, 0xa2, + 0xaf, 0x08, 0xf4, 0x45, 0x94, 0x8d, 0x43, 0x2f, 0x8a, 0x3c, 0x47, 0xf7, 0x61, 0x42, 0xf7, 0x5e, + 0x14, 0xe3, 0x39, 0xdc, 0xb2, 0xfb, 0xb3, 0x7d, 0x60, 0x03, 0xb7, 0x96, 0x04, 0x81, 0x79, 0x74, + 0xb6, 0x8f, 0x80, 0xd0, 0x3f, 0x3c, 0xe9, 0x7e, 0x30, 0x60, 0x3a, 0xdc, 0x8b, 0xd1, 0xe0, 0x9e, + 0x33, 0xb0, 0xe5, 0x9b, 0xff, 0x7f, 0x25, 0xdb, 0x61, 0xa5, 0x46, 0xd5, 0x18, 0x2e, 0x09, 0xf9, + 0x86, 0xdd, 0x1b, 0x4f, 0x5f, 0x64, 0x8d, 0x67, 0x2f, 0xb2, 0xc6, 0xdf, 0x2f, 0xb2, 0xc6, 0xe3, + 0x97, 0xd9, 0x91, 0x67, 0x2f, 0xb3, 0x23, 0x7f, 0xbc, 0xcc, 0x8e, 0x7c, 0x6e, 0xf7, 0x48, 0x20, + 0xe5, 0xc4, 0x23, 0x4c, 0xff, 0x6e, 0x3a, 0x15, 0x5c, 0xf5, 0xec, 0xb6, 0xf0, 0x2b, 0xf4, 0x50, + 0x69, 0x5c, 0x08, 0xba, 0xcb, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x20, 0x64, 0xaf, 0xf0, 0x9c, 0x12, 0x00, 0x00, } @@ -2782,7 +2784,7 @@ func (m *QueryTraceTxRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - n4, err4 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BlockTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime):]) + n4, err4 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.BlockTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.BlockTime):]) if err4 != nil { return 0, err4 } @@ -2893,7 +2895,7 @@ func (m *QueryTraceBlockRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - n7, err7 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.BlockTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime):]) + n7, err7 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.BlockTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.BlockTime):]) if err7 != nil { return 0, err7 } @@ -3449,7 +3451,7 @@ func (m *QueryTraceTxRequest) Size() (n int) { if l > 0 { n += 1 + l + sovQuery(uint64(l)) } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.BlockTime) n += 1 + l + sovQuery(uint64(l)) return n } @@ -3490,7 +3492,7 @@ func (m *QueryTraceBlockRequest) Size() (n int) { if l > 0 { n += 1 + l + sovQuery(uint64(l)) } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.BlockTime) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.BlockTime) n += 1 + l + sovQuery(uint64(l)) return n } @@ -5490,7 +5492,7 @@ func (m *QueryTraceTxRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.BlockTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.BlockTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -5778,7 +5780,7 @@ func (m *QueryTraceBlockRequest) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.BlockTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.BlockTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/evm/types/query.pb.gw.go b/x/evm/types/query.pb.gw.go index 563b32a7..4e74692c 100644 --- a/x/evm/types/query.pb.gw.go +++ b/x/evm/types/query.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join func request_Query_Account_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryAccountRequest @@ -632,12 +634,14 @@ func local_request_Query_AddressConvert_0(ctx context.Context, marshaler runtime // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer 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 (such as grpc.SendHeader, etc) to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { mux.Handle("GET", pattern_Query_Account_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -645,6 +649,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Account_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -658,6 +663,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_CosmosAccount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -665,6 +672,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_CosmosAccount_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -678,6 +686,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_ValidatorAccount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -685,6 +695,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_ValidatorAccount_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -698,6 +709,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_Balance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -705,6 +718,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Balance_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -718,6 +732,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_Storage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -725,6 +741,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Storage_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -738,6 +755,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_Code_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -745,6 +764,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Code_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -758,6 +778,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_Params_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -765,6 +787,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Params_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -778,6 +801,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_EthCall_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -785,6 +810,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_EthCall_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -798,6 +824,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_EstimateGas_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -805,6 +833,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_EstimateGas_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -818,6 +847,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_TraceTx_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -825,6 +856,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_TraceTx_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -838,6 +870,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_TraceBlock_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -845,6 +879,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_TraceBlock_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -858,6 +893,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_BaseFee_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -865,6 +902,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_BaseFee_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -878,6 +916,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_BaseFeeParam_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -885,6 +925,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_BaseFeeParam_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -898,6 +939,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_BlockGas_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -905,6 +948,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_BlockGas_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -918,6 +962,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_AddressConvert_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -925,6 +971,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_AddressConvert_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1280,35 +1327,35 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( - pattern_Query_Account_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "account", "address"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Account_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "account", "address"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_CosmosAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "cosmos_account", "address"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_CosmosAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "cosmos_account", "address"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_ValidatorAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "validator_account", "cons_address"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_ValidatorAccount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "validator_account", "cons_address"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_Balance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "balances", "address"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Balance_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "balances", "address"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_Storage_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"stratos", "evm", "v1", "storage", "address", "key"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Storage_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"stratos", "evm", "v1", "storage", "address", "key"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_Code_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "codes", "address"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Code_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "evm", "v1", "codes", "address"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "params"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "params"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_EthCall_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "eth_call"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_EthCall_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "eth_call"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_EstimateGas_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "estimate_gas"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_EstimateGas_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "estimate_gas"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_TraceTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "trace_tx"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_TraceTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "trace_tx"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_TraceBlock_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "trace_block"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_TraceBlock_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "trace_block"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_BaseFee_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "base_fee"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_BaseFee_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "base_fee"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_BaseFeeParam_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "base_fee_param"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_BaseFeeParam_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "base_fee_param"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_BlockGas_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "block_gas"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_BlockGas_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "block_gas"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_AddressConvert_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "address_convert"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_AddressConvert_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "address_convert"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( diff --git a/x/evm/types/storage.go b/x/evm/types/storage.go index 40c5bcc0..2331f6d4 100644 --- a/x/evm/types/storage.go +++ b/x/evm/types/storage.go @@ -4,12 +4,12 @@ import ( "fmt" "strings" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "cosmossdk.io/errors" "github.com/ethereum/go-ethereum/common" ) // Storage represents the account Storage map as a slice of single key value -// State pairs. This is to prevent non determinism at genesis initialization or export. +// State pairs. This is to prevent non-determinism at genesis initialization or export. type Storage []State // Validate performs a basic validation of the Storage fields. @@ -17,7 +17,7 @@ func (s Storage) Validate() error { seenStorage := make(map[string]bool) for i, state := range s { if seenStorage[state.Key] { - return sdkerrors.Wrapf(ErrInvalidState, "duplicate state key %d: %s", i, state.Key) + return errors.Wrapf(ErrInvalidState, "duplicate state key %d: %s", i, state.Key) } if err := state.Validate(); err != nil { @@ -51,7 +51,7 @@ func (s Storage) Copy() Storage { // NOTE: state value can be empty func (s State) Validate() error { if strings.TrimSpace(s.Key) == "" { - return sdkerrors.Wrap(ErrInvalidState, "state key hash cannot be blank") + return errors.Wrap(ErrInvalidState, "state key hash cannot be blank") } return nil diff --git a/x/evm/types/tx.pb.go b/x/evm/types/tx.pb.go index d23a9490..c7edc51f 100644 --- a/x/evm/types/tx.pb.go +++ b/x/evm/types/tx.pb.go @@ -4,15 +4,16 @@ package types import ( + bytes "bytes" context "context" encoding_binary "encoding/binary" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/codec/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - grpc1 "github.com/gogo/protobuf/grpc" - proto "github.com/gogo/protobuf/proto" - _ "github.com/regen-network/cosmos-proto" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -352,61 +353,363 @@ func init() { func init() { proto.RegisterFile("stratos/evm/v1/tx.proto", fileDescriptor_8aaa626562d93f7b) } var fileDescriptor_8aaa626562d93f7b = []byte{ - // 854 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x55, 0xcf, 0x6f, 0xe3, 0x44, - 0x14, 0x8e, 0x13, 0x27, 0x76, 0x26, 0xa1, 0x42, 0xa6, 0x08, 0x37, 0xa5, 0x71, 0x64, 0x04, 0x44, - 0x48, 0xb1, 0xd5, 0xc2, 0xa9, 0x27, 0x9a, 0xfe, 0x52, 0xab, 0x54, 0x20, 0x2b, 0x1c, 0x80, 0x43, - 0x34, 0x75, 0xa6, 0x8e, 0x45, 0xec, 0xb1, 0x3c, 0x13, 0xe3, 0x70, 0xe0, 0xc0, 0x89, 0x1b, 0x48, - 0xfc, 0x03, 0x88, 0x23, 0x57, 0x38, 0x73, 0xee, 0xb1, 0x62, 0x2f, 0xab, 0x3d, 0x78, 0x57, 0xe9, - 0x9e, 0x7a, 0x59, 0x69, 0xff, 0x82, 0xd5, 0x8c, 0x9d, 0xb6, 0x49, 0x95, 0x6a, 0xb7, 0xdb, 0xd5, - 0x9e, 0xfc, 0x9e, 0xbf, 0xf1, 0xfb, 0xf5, 0x7d, 0x9e, 0x07, 0x3e, 0x20, 0x34, 0x84, 0x14, 0x13, - 0x13, 0x45, 0x9e, 0x19, 0xad, 0x9b, 0x34, 0x36, 0x82, 0x10, 0x53, 0xac, 0x2c, 0x65, 0x80, 0x81, - 0x22, 0xcf, 0x88, 0xd6, 0x6b, 0xcb, 0x0e, 0x76, 0x30, 0x87, 0x4c, 0x66, 0xa5, 0xa7, 0x6a, 0x1f, - 0x3a, 0x18, 0x3b, 0x43, 0x64, 0xc2, 0xc0, 0x35, 0xa1, 0xef, 0x63, 0x0a, 0xa9, 0x8b, 0x7d, 0x92, - 0xa1, 0x2b, 0x19, 0xca, 0xbd, 0xe3, 0xd1, 0x89, 0x09, 0xfd, 0xf1, 0x14, 0xb2, 0x31, 0xf1, 0x30, - 0xe9, 0xa5, 0x11, 0x53, 0x27, 0x83, 0xd4, 0xb9, 0x92, 0x58, 0x01, 0x1c, 0xd1, 0x7f, 0x13, 0xc0, - 0x3b, 0x47, 0xc4, 0xd9, 0xa5, 0x03, 0x14, 0xa2, 0x91, 0xd7, 0x8d, 0x95, 0x26, 0x10, 0xfb, 0x90, - 0x42, 0x55, 0x68, 0x08, 0xcd, 0xca, 0xc6, 0xb2, 0x91, 0x26, 0x34, 0xa6, 0x09, 0x8d, 0x2d, 0x7f, - 0x6c, 0xf1, 0x13, 0xca, 0x0a, 0x10, 0x89, 0xfb, 0x13, 0x52, 0xf3, 0x0d, 0xa1, 0x29, 0xb4, 0x8b, - 0x17, 0x89, 0x26, 0xb4, 0x2c, 0xfe, 0x4a, 0xd1, 0x80, 0x38, 0x80, 0x64, 0xa0, 0x16, 0x1a, 0x42, - 0xb3, 0xdc, 0xae, 0x3c, 0x4f, 0x34, 0x29, 0x1c, 0x06, 0x9b, 0x7a, 0x4b, 0xb7, 0x38, 0xa0, 0x28, - 0x40, 0x3c, 0x09, 0xb1, 0xa7, 0x8a, 0xec, 0x80, 0xc5, 0xed, 0x4d, 0xf1, 0xd7, 0x3f, 0xb5, 0x9c, - 0xfe, 0x4f, 0x1e, 0xc8, 0x1d, 0xe4, 0x40, 0x7b, 0xdc, 0x8d, 0x95, 0x65, 0x50, 0xf4, 0xb1, 0x6f, - 0x23, 0x5e, 0x8d, 0x68, 0xa5, 0x8e, 0xb2, 0x0f, 0xca, 0x0e, 0x64, 0x8d, 0xba, 0x76, 0x9a, 0xbd, - 0xdc, 0xfe, 0xec, 0x51, 0xa2, 0x7d, 0xe2, 0xb8, 0x74, 0x30, 0x3a, 0x36, 0x6c, 0xec, 0x65, 0xed, - 0x67, 0x8f, 0x16, 0xe9, 0xff, 0x60, 0xd2, 0x71, 0x80, 0x88, 0x71, 0xe0, 0x53, 0x4b, 0x76, 0x20, - 0xf9, 0x9a, 0x7d, 0xab, 0xd4, 0x41, 0xc1, 0x81, 0x84, 0x57, 0x29, 0xb6, 0xab, 0x93, 0x44, 0x93, - 0xf7, 0x21, 0xe9, 0xb8, 0x9e, 0x4b, 0x2d, 0x06, 0x28, 0x4b, 0x20, 0x4f, 0x71, 0x56, 0x63, 0x9e, - 0x62, 0xe5, 0x10, 0x14, 0x23, 0x38, 0x1c, 0x21, 0xb5, 0xc8, 0x93, 0x7e, 0xf1, 0xf2, 0x49, 0x27, - 0x89, 0x56, 0xda, 0xf2, 0xf0, 0xc8, 0xa7, 0x56, 0x1a, 0x82, 0x4d, 0x80, 0xcf, 0xb9, 0xd4, 0x10, - 0x9a, 0xd5, 0x6c, 0xa2, 0x55, 0x20, 0x44, 0xaa, 0xc4, 0x5f, 0x08, 0x11, 0xf3, 0x42, 0x55, 0x4e, - 0xbd, 0x90, 0x79, 0x44, 0x2d, 0xa7, 0x1e, 0xd9, 0x5c, 0x62, 0xb3, 0xfa, 0xff, 0xdf, 0x56, 0xa9, - 0x1b, 0xef, 0x40, 0x0a, 0xf5, 0x67, 0x05, 0x50, 0xdd, 0xb2, 0x6d, 0x44, 0x48, 0xc7, 0x25, 0xb4, - 0x1b, 0x2b, 0xdf, 0x03, 0xd9, 0x1e, 0x40, 0xd7, 0xef, 0xb9, 0x7d, 0x3e, 0xbc, 0x72, 0xfb, 0xcb, - 0x57, 0xaa, 0x56, 0xda, 0x66, 0x5f, 0x1f, 0xec, 0x5c, 0x24, 0x9a, 0x64, 0xa7, 0xa6, 0x95, 0x19, - 0xfd, 0x2b, 0x5a, 0xf2, 0x0b, 0x69, 0x29, 0xbc, 0x3e, 0x2d, 0xe2, 0xed, 0xb4, 0x14, 0x6f, 0xd2, - 0x52, 0xba, 0x3f, 0x5a, 0xa4, 0x6b, 0xb4, 0x7c, 0x0b, 0x64, 0xc8, 0x67, 0x8b, 0x88, 0x2a, 0x37, - 0x0a, 0xcd, 0xca, 0xc6, 0xaa, 0x31, 0xfb, 0x2f, 0x1b, 0xe9, 0xec, 0xbb, 0xa3, 0x60, 0x88, 0xda, - 0x8d, 0xd3, 0x44, 0xcb, 0x5d, 0x24, 0x1a, 0x80, 0x97, 0x84, 0xfc, 0xfd, 0x58, 0x03, 0x57, 0xf4, - 0x58, 0x97, 0xe1, 0x52, 0xc6, 0xcb, 0x33, 0x8c, 0x83, 0x19, 0xc6, 0x2b, 0x8b, 0x18, 0xff, 0x4f, - 0x04, 0xd5, 0x9d, 0xb1, 0x0f, 0x3d, 0xd7, 0xde, 0x43, 0xe8, 0xed, 0x30, 0x7e, 0x08, 0x2a, 0x8c, - 0x71, 0xea, 0x06, 0x3d, 0x1b, 0x06, 0x77, 0xe0, 0x9c, 0x09, 0xa6, 0xeb, 0x06, 0xdb, 0x30, 0x98, - 0xc6, 0x3a, 0x41, 0x88, 0xc7, 0x12, 0xef, 0x14, 0x6b, 0x0f, 0x21, 0x16, 0x2b, 0x13, 0x50, 0xf1, - 0x76, 0x01, 0x95, 0x6e, 0x0a, 0x48, 0xba, 0x3f, 0x01, 0xc9, 0x0b, 0x04, 0x54, 0x7e, 0x03, 0x02, - 0x02, 0x33, 0x02, 0xaa, 0xcc, 0x08, 0xa8, 0xba, 0x48, 0x40, 0x3a, 0xa8, 0xed, 0xc6, 0x14, 0xf9, - 0xc4, 0xc5, 0xfe, 0x57, 0x01, 0x5f, 0x32, 0x57, 0x6b, 0x20, 0xbb, 0x8c, 0xff, 0x12, 0xc0, 0xfb, - 0x33, 0xeb, 0xc1, 0x42, 0x24, 0xc0, 0x3e, 0xe1, 0x6d, 0xf2, 0x1b, 0x5e, 0x48, 0x2f, 0x70, 0x7e, - 0xa9, 0x7f, 0x0a, 0xc4, 0x21, 0x76, 0x88, 0x9a, 0xe7, 0x2d, 0xbe, 0x37, 0xdf, 0x62, 0x07, 0x3b, - 0x16, 0x3f, 0xa0, 0xbc, 0x0b, 0x0a, 0x21, 0xa2, 0x5c, 0x2f, 0x55, 0x8b, 0x99, 0xca, 0x0a, 0x90, - 0x23, 0xaf, 0x87, 0xc2, 0x10, 0x87, 0xd9, 0x7d, 0x2b, 0x45, 0xde, 0x2e, 0x73, 0x19, 0xc4, 0x84, - 0x31, 0x22, 0xa8, 0x9f, 0x32, 0x6a, 0x49, 0x0e, 0x24, 0xdf, 0x10, 0xd4, 0x4f, 0x8b, 0xdc, 0xf8, - 0x19, 0x14, 0x8e, 0x88, 0xa3, 0xfc, 0x08, 0xc0, 0xb5, 0x35, 0xb6, 0x36, 0x9f, 0x7d, 0xa6, 0x8d, - 0xda, 0xc7, 0xb7, 0xc2, 0xd3, 0x2e, 0xf5, 0x8f, 0x7e, 0x79, 0xf0, 0xf4, 0x8f, 0xfc, 0x9a, 0xbe, - 0x6a, 0xce, 0x6f, 0xd0, 0xec, 0x6c, 0x8f, 0xc6, 0xed, 0x83, 0xd3, 0x49, 0x5d, 0x38, 0x9b, 0xd4, - 0x85, 0x27, 0x93, 0xba, 0xf0, 0xfb, 0x79, 0x3d, 0x77, 0x76, 0x5e, 0xcf, 0x3d, 0x3c, 0xaf, 0xe7, - 0xbe, 0x33, 0xaf, 0x89, 0x28, 0x0b, 0xe0, 0x23, 0x3a, 0x35, 0x5b, 0xfc, 0xe7, 0x32, 0x63, 0x1e, - 0x93, 0x2b, 0xea, 0xb8, 0xc4, 0xd7, 0xec, 0xe7, 0x2f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x1e, 0x35, - 0x72, 0x7c, 0x44, 0x08, 0x00, 0x00, + // 868 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0xc1, 0x6f, 0xe3, 0x44, + 0x14, 0xc6, 0x33, 0x89, 0x13, 0x3b, 0x93, 0x50, 0x21, 0x53, 0x84, 0x9b, 0x65, 0xed, 0xc8, 0x08, + 0xc8, 0x25, 0xb6, 0xb6, 0x5c, 0x50, 0x6f, 0xf5, 0xb6, 0x8b, 0x2a, 0xa5, 0x80, 0xac, 0xac, 0xb4, + 0x70, 0x89, 0xa6, 0xce, 0xd4, 0xb1, 0x88, 0x3d, 0x96, 0x67, 0x62, 0x1c, 0x0e, 0x1c, 0x38, 0x71, + 0x03, 0x89, 0x13, 0x37, 0xc4, 0x09, 0x71, 0xde, 0x3f, 0x62, 0xc5, 0x85, 0x15, 0x5c, 0x10, 0x07, + 0x83, 0x52, 0x4e, 0x3d, 0x72, 0xe0, 0x8c, 0x66, 0xec, 0xb4, 0x4d, 0xaa, 0x54, 0x20, 0x5a, 0x89, + 0x53, 0xe7, 0xcd, 0x37, 0x7d, 0xf3, 0xde, 0x7c, 0xbf, 0xf8, 0xc1, 0x57, 0x28, 0x4b, 0x10, 0x23, + 0xd4, 0xc6, 0x69, 0x68, 0xa7, 0x0f, 0x6c, 0x96, 0x59, 0x71, 0x42, 0x18, 0x51, 0xb7, 0x4a, 0xc1, + 0xc2, 0x69, 0x68, 0xa5, 0x0f, 0x3a, 0xdb, 0x3e, 0xf1, 0x89, 0x90, 0x6c, 0xbe, 0x2a, 0x4e, 0x75, + 0x5e, 0xf5, 0x09, 0xf1, 0xa7, 0xd8, 0x46, 0x71, 0x60, 0xa3, 0x28, 0x22, 0x0c, 0xb1, 0x80, 0x44, + 0xb4, 0x54, 0x77, 0x4a, 0x55, 0x44, 0x27, 0xb3, 0x53, 0x1b, 0x45, 0xf3, 0xa5, 0xe4, 0x11, 0x1a, + 0x12, 0x3a, 0x2a, 0x32, 0x16, 0x41, 0x29, 0x69, 0x6b, 0x25, 0xf1, 0x02, 0x84, 0x62, 0x7e, 0x01, + 0xe0, 0x0b, 0xc7, 0xd4, 0x3f, 0x64, 0x13, 0x9c, 0xe0, 0x59, 0x38, 0xcc, 0xd4, 0x1e, 0x94, 0xc6, + 0x88, 0x21, 0x0d, 0x74, 0x41, 0xaf, 0xb5, 0xbb, 0x6d, 0x15, 0x17, 0x5a, 0xcb, 0x0b, 0xad, 0xfd, + 0x68, 0xee, 0x8a, 0x13, 0xea, 0x0e, 0x94, 0x68, 0xf0, 0x09, 0xd6, 0xaa, 0x5d, 0xd0, 0x03, 0x4e, + 0xfd, 0x3c, 0x37, 0x40, 0xdf, 0x15, 0x5b, 0xaa, 0x01, 0xa5, 0x09, 0xa2, 0x13, 0xad, 0xd6, 0x05, + 0xbd, 0xa6, 0xd3, 0xfa, 0x33, 0x37, 0xe4, 0x64, 0x1a, 0xef, 0x99, 0x7d, 0xd3, 0x15, 0x82, 0xaa, + 0x42, 0xe9, 0x34, 0x21, 0xa1, 0x26, 0xf1, 0x03, 0xae, 0x58, 0xef, 0x49, 0x9f, 0x7f, 0x63, 0x54, + 0xcc, 0x1f, 0xab, 0x50, 0x19, 0x60, 0x1f, 0x79, 0xf3, 0x61, 0xa6, 0x6e, 0xc3, 0x7a, 0x44, 0x22, + 0x0f, 0x8b, 0x6a, 0x24, 0xb7, 0x08, 0xd4, 0xc7, 0xb0, 0xe9, 0x23, 0xde, 0x68, 0xe0, 0x15, 0xb7, + 0x37, 0x9d, 0xb7, 0x7f, 0xcd, 0x8d, 0x37, 0xfc, 0x80, 0x4d, 0x66, 0x27, 0x96, 0x47, 0xc2, 0xb2, + 0xfd, 0xf2, 0x4f, 0x9f, 0x8e, 0x3f, 0xb2, 0xd9, 0x3c, 0xc6, 0xd4, 0x3a, 0x8a, 0xd8, 0x4f, 0x4f, + 0xfb, 0xb0, 0x7c, 0x9d, 0xa3, 0x88, 0xb9, 0x8a, 0x8f, 0xe8, 0xfb, 0x3c, 0x93, 0xaa, 0xc3, 0x9a, + 0x8f, 0xa8, 0xa8, 0x59, 0x72, 0xda, 0x8b, 0xdc, 0x50, 0xde, 0x41, 0x74, 0x10, 0x84, 0x01, 0x73, + 0xb9, 0xa0, 0x6e, 0xc1, 0x2a, 0x23, 0x65, 0xc5, 0x55, 0x46, 0xd4, 0x27, 0xb0, 0x9e, 0xa2, 0xe9, + 0x0c, 0x6b, 0x75, 0x51, 0x82, 0xf3, 0xcf, 0x4b, 0x58, 0xe4, 0x46, 0x63, 0x3f, 0x24, 0xb3, 0x6b, + 0xc5, 0x14, 0x09, 0xf9, 0xeb, 0x08, 0x0f, 0x1a, 0x5d, 0xd0, 0x6b, 0x97, 0xaf, 0xdd, 0x86, 0x20, + 0xd5, 0x64, 0xb1, 0x01, 0x52, 0x1e, 0x25, 0x9a, 0x52, 0x44, 0x09, 0x8f, 0xa8, 0xd6, 0x2c, 0x22, + 0xba, 0xb7, 0xc5, 0xdf, 0xf1, 0x87, 0xa7, 0xfd, 0xc6, 0x30, 0x3b, 0x40, 0x0c, 0x99, 0x5f, 0x4b, + 0xb0, 0xbd, 0xef, 0x79, 0x98, 0xd2, 0x41, 0x40, 0xd9, 0x30, 0x53, 0x03, 0xa8, 0x78, 0x13, 0x14, + 0x44, 0xa3, 0x60, 0x2c, 0x1e, 0xb6, 0xe9, 0xbc, 0xfb, 0xaf, 0x6a, 0x97, 0x1f, 0xf2, 0xff, 0x3e, + 0x3a, 0x38, 0xcf, 0x0d, 0xd9, 0x2b, 0x96, 0x6b, 0x7d, 0x94, 0xdb, 0xe3, 0x4b, 0x03, 0xab, 0x1b, + 0x0d, 0xac, 0xdd, 0xb6, 0x81, 0xd2, 0xcd, 0x06, 0xd6, 0xaf, 0x1b, 0xd8, 0xb8, 0x2b, 0x03, 0xe5, + 0x2b, 0x06, 0x7e, 0x00, 0x15, 0x24, 0x5c, 0xc0, 0x54, 0x53, 0xba, 0xb5, 0x5e, 0x6b, 0xf7, 0x9e, + 0xb5, 0xfa, 0x45, 0xb0, 0x0a, 0x97, 0x86, 0xb3, 0x78, 0x8a, 0x9d, 0xee, 0xb3, 0xdc, 0xa8, 0x9c, + 0xe7, 0x06, 0x44, 0x17, 0xd6, 0x7d, 0xff, 0x9b, 0x01, 0x2f, 0x8d, 0x74, 0x2f, 0xd2, 0x15, 0x6c, + 0x34, 0x57, 0xd8, 0x80, 0x2b, 0x6c, 0xb4, 0x36, 0xb1, 0xf1, 0x97, 0x04, 0xdb, 0x07, 0xf3, 0x08, + 0x85, 0x81, 0xf7, 0x08, 0xe3, 0xff, 0x03, 0x1b, 0x4f, 0x60, 0x8b, 0xb3, 0xc1, 0x82, 0x78, 0xe4, + 0xa1, 0xf8, 0x3f, 0xd3, 0xc1, 0x41, 0x1b, 0x06, 0xf1, 0x43, 0x14, 0x2f, 0x33, 0x9f, 0x62, 0x2c, + 0x32, 0x4b, 0xb7, 0x90, 0xf9, 0x11, 0xc6, 0x3c, 0x73, 0x09, 0x5e, 0xfd, 0x66, 0xf0, 0x1a, 0xd7, + 0xc1, 0x93, 0xef, 0x0a, 0x3c, 0x65, 0x03, 0x78, 0xcd, 0x3b, 0x00, 0x0f, 0xae, 0x80, 0xd7, 0x5a, + 0x01, 0xaf, 0xbd, 0x09, 0x3c, 0x13, 0x76, 0x0e, 0x33, 0x86, 0x23, 0x1a, 0x90, 0xe8, 0xbd, 0x58, + 0x8c, 0xb8, 0xcb, 0x21, 0x54, 0x8e, 0x82, 0x6f, 0x01, 0x7c, 0x79, 0x65, 0x38, 0xb9, 0x98, 0xc6, + 0x24, 0xa2, 0xa2, 0x4d, 0x31, 0x5f, 0x40, 0x31, 0x3e, 0xc4, 0x48, 0x79, 0x13, 0x4a, 0x53, 0xe2, + 0x53, 0xad, 0x2a, 0x5a, 0x7c, 0x69, 0xbd, 0xc5, 0x01, 0xf1, 0x5d, 0x71, 0x40, 0x7d, 0x11, 0xd6, + 0x12, 0xcc, 0x04, 0x59, 0x6d, 0x97, 0x2f, 0xd5, 0x1d, 0xa8, 0xa4, 0xe1, 0x08, 0x27, 0x09, 0x49, + 0xca, 0xef, 0xbb, 0x9c, 0x86, 0x87, 0x3c, 0xe4, 0x12, 0x87, 0x66, 0x46, 0xf1, 0xb8, 0xf0, 0xd7, + 0x95, 0x7d, 0x44, 0x1f, 0x53, 0x3c, 0x2e, 0x8a, 0xdc, 0xfd, 0x14, 0xd6, 0x8e, 0xa9, 0xaf, 0x7e, + 0x0c, 0xe1, 0x95, 0x21, 0x7a, 0x7f, 0xfd, 0xf6, 0x95, 0x36, 0x3a, 0xaf, 0xdf, 0x28, 0x2f, 0xbb, + 0x34, 0x5f, 0xfb, 0xec, 0xe7, 0x3f, 0xbe, 0xaa, 0xde, 0x37, 0xef, 0xd9, 0xeb, 0xf3, 0xbb, 0x3c, + 0x3b, 0x62, 0x99, 0x73, 0xfc, 0xdd, 0x42, 0x07, 0xcf, 0x16, 0x3a, 0x78, 0xbe, 0xd0, 0xc1, 0xef, + 0x0b, 0x1d, 0x7c, 0x79, 0xa6, 0x57, 0x9e, 0x9f, 0xe9, 0x95, 0x5f, 0xce, 0xf4, 0xca, 0x87, 0xf6, + 0x15, 0xac, 0xca, 0x24, 0x11, 0x66, 0xcb, 0x65, 0x5f, 0xfc, 0x14, 0xed, 0x4c, 0xe4, 0x15, 0x8c, + 0x9d, 0x34, 0xc4, 0xa0, 0x7f, 0xeb, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x38, 0x7d, 0xff, 0x8b, + 0xc6, 0x08, 0x00, 0x00, +} + +func (this *MsgEthereumTx) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgEthereumTx) + if !ok { + that2, ok := that.(MsgEthereumTx) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Data.Equal(that1.Data) { + return false + } + if this.Size_ != that1.Size_ { + return false + } + if this.Hash != that1.Hash { + return false + } + if this.From != that1.From { + return false + } + return true +} +func (this *LegacyTx) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*LegacyTx) + if !ok { + that2, ok := that.(LegacyTx) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Nonce != that1.Nonce { + return false + } + if that1.GasPrice == nil { + if this.GasPrice != nil { + return false + } + } else if !this.GasPrice.Equal(*that1.GasPrice) { + return false + } + if this.GasLimit != that1.GasLimit { + return false + } + if this.To != that1.To { + return false + } + if that1.Amount == nil { + if this.Amount != nil { + return false + } + } else if !this.Amount.Equal(*that1.Amount) { + return false + } + if !bytes.Equal(this.Data, that1.Data) { + return false + } + if !bytes.Equal(this.V, that1.V) { + return false + } + if !bytes.Equal(this.R, that1.R) { + return false + } + if !bytes.Equal(this.S, that1.S) { + return false + } + return true +} +func (this *AccessListTx) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*AccessListTx) + if !ok { + that2, ok := that.(AccessListTx) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if that1.ChainID == nil { + if this.ChainID != nil { + return false + } + } else if !this.ChainID.Equal(*that1.ChainID) { + return false + } + if this.Nonce != that1.Nonce { + return false + } + if that1.GasPrice == nil { + if this.GasPrice != nil { + return false + } + } else if !this.GasPrice.Equal(*that1.GasPrice) { + return false + } + if this.GasLimit != that1.GasLimit { + return false + } + if this.To != that1.To { + return false + } + if that1.Amount == nil { + if this.Amount != nil { + return false + } + } else if !this.Amount.Equal(*that1.Amount) { + return false + } + if !bytes.Equal(this.Data, that1.Data) { + return false + } + if len(this.Accesses) != len(that1.Accesses) { + return false + } + for i := range this.Accesses { + if !this.Accesses[i].Equal(&that1.Accesses[i]) { + return false + } + } + if !bytes.Equal(this.V, that1.V) { + return false + } + if !bytes.Equal(this.R, that1.R) { + return false + } + if !bytes.Equal(this.S, that1.S) { + return false + } + return true +} +func (this *DynamicFeeTx) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*DynamicFeeTx) + if !ok { + that2, ok := that.(DynamicFeeTx) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if that1.ChainID == nil { + if this.ChainID != nil { + return false + } + } else if !this.ChainID.Equal(*that1.ChainID) { + return false + } + if this.Nonce != that1.Nonce { + return false + } + if that1.GasTipCap == nil { + if this.GasTipCap != nil { + return false + } + } else if !this.GasTipCap.Equal(*that1.GasTipCap) { + return false + } + if that1.GasFeeCap == nil { + if this.GasFeeCap != nil { + return false + } + } else if !this.GasFeeCap.Equal(*that1.GasFeeCap) { + return false + } + if this.GasLimit != that1.GasLimit { + return false + } + if this.To != that1.To { + return false + } + if that1.Amount == nil { + if this.Amount != nil { + return false + } + } else if !this.Amount.Equal(*that1.Amount) { + return false + } + if !bytes.Equal(this.Data, that1.Data) { + return false + } + if len(this.Accesses) != len(that1.Accesses) { + return false + } + for i := range this.Accesses { + if !this.Accesses[i].Equal(&that1.Accesses[i]) { + return false + } + } + if !bytes.Equal(this.V, that1.V) { + return false + } + if !bytes.Equal(this.R, that1.R) { + return false + } + if !bytes.Equal(this.S, that1.S) { + return false + } + return true +} +func (this *ExtensionOptionsEthereumTx) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*ExtensionOptionsEthereumTx) + if !ok { + that2, ok := that.(ExtensionOptionsEthereumTx) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgEthereumTxResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgEthereumTxResponse) + if !ok { + that2, ok := that.(MsgEthereumTxResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Hash != that1.Hash { + return false + } + if len(this.Logs) != len(that1.Logs) { + return false + } + for i := range this.Logs { + if !this.Logs[i].Equal(that1.Logs[i]) { + return false + } + } + if !bytes.Equal(this.Ret, that1.Ret) { + return false + } + if this.VmError != that1.VmError { + return false + } + if this.GasUsed != that1.GasUsed { + return false + } + return true } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/evm/types/tx.pb.gw.go b/x/evm/types/tx.pb.gw.go index 0b4b03ea..55b6ae0b 100644 --- a/x/evm/types/tx.pb.gw.go +++ b/x/evm/types/tx.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join var ( filter_Msg_EthereumTx_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -70,12 +72,14 @@ func local_request_Msg_EthereumTx_0(ctx context.Context, marshaler runtime.Marsh // RegisterMsgHandlerServer registers the http handlers for service Msg to "mux". // UnaryRPC :call MsgServer 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 (such as grpc.SendHeader, etc) to stop working. Consider using RegisterMsgHandlerFromEndpoint instead. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterMsgHandlerFromEndpoint instead. func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server MsgServer) error { mux.Handle("POST", pattern_Msg_EthereumTx_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -83,6 +87,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_EthereumTx_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -158,7 +163,7 @@ func RegisterMsgHandlerClient(ctx context.Context, mux *runtime.ServeMux, client } var ( - pattern_Msg_EthereumTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "ethereum_tx"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_EthereumTx_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "evm", "v1", "ethereum_tx"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( diff --git a/x/evm/types/tx_args.go b/x/evm/types/tx_args.go index 63b030ff..b75b6749 100644 --- a/x/evm/types/tx_args.go +++ b/x/evm/types/tx_args.go @@ -5,8 +5,7 @@ import ( "fmt" "math/big" - sdk "github.com/cosmos/cosmos-sdk/types" - + sdkmath "cosmossdk.io/math" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/math" @@ -56,14 +55,14 @@ func (args *TransactionArgs) String() string { // This assumes that setTxDefaults has been called. func (args *TransactionArgs) ToTransaction() *MsgEthereumTx { var ( - chainID, value, gasPrice, maxFeePerGas, maxPriorityFeePerGas sdk.Int + chainID, value, gasPrice, maxFeePerGas, maxPriorityFeePerGas sdkmath.Int gas, nonce uint64 from, to string ) // Set sender address or use zero address if none specified. if args.ChainID != nil { - chainID = sdk.NewIntFromBigInt(args.ChainID.ToInt()) + chainID = sdkmath.NewIntFromBigInt(args.ChainID.ToInt()) } if args.Nonce != nil { @@ -75,19 +74,19 @@ func (args *TransactionArgs) ToTransaction() *MsgEthereumTx { } if args.GasPrice != nil { - gasPrice = sdk.NewIntFromBigInt(args.GasPrice.ToInt()) + gasPrice = sdkmath.NewIntFromBigInt(args.GasPrice.ToInt()) } if args.MaxFeePerGas != nil { - maxFeePerGas = sdk.NewIntFromBigInt(args.MaxFeePerGas.ToInt()) + maxFeePerGas = sdkmath.NewIntFromBigInt(args.MaxFeePerGas.ToInt()) } if args.MaxPriorityFeePerGas != nil { - maxPriorityFeePerGas = sdk.NewIntFromBigInt(args.MaxPriorityFeePerGas.ToInt()) + maxPriorityFeePerGas = sdkmath.NewIntFromBigInt(args.MaxPriorityFeePerGas.ToInt()) } if args.Value != nil { - value = sdk.NewIntFromBigInt(args.Value.ToInt()) + value = sdkmath.NewIntFromBigInt(args.Value.ToInt()) } if args.To != nil { @@ -135,7 +134,7 @@ func (args *TransactionArgs) ToTransaction() *MsgEthereumTx { } } - any, err := PackTxData(data) + packedData, err := PackTxData(data) if err != nil { return nil } @@ -145,7 +144,7 @@ func (args *TransactionArgs) ToTransaction() *MsgEthereumTx { } return &MsgEthereumTx{ - Data: any, + Data: packedData, From: from, } } diff --git a/x/evm/types/utils.go b/x/evm/types/utils.go index 9c47f5de..08df28e7 100644 --- a/x/evm/types/utils.go +++ b/x/evm/types/utils.go @@ -6,16 +6,16 @@ import ( "github.com/gogo/protobuf/proto" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/crypto" - "github.com/pkg/errors" - tmrpccore "github.com/tendermint/tendermint/rpc/core" - tmrpctypes "github.com/tendermint/tendermint/rpc/core/types" - tmjsonrpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + tmrpccore "github.com/cometbft/cometbft/rpc/core" + tmrpctypes "github.com/cometbft/cometbft/rpc/core/types" + tmjsonrpctypes "github.com/cometbft/cometbft/rpc/jsonrpc/types" + + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" ) const maxBitLen = 256 @@ -38,7 +38,7 @@ func DecodeTxResponse(in []byte) (*MsgEthereumTxResponse, error) { err := proto.Unmarshal(data[0].GetData(), &res) if err != nil { - return nil, sdkerrors.Wrap(err, "failed to unmarshal tx response message data") + return nil, errors.Wrap(err, "failed to unmarshal tx response message data") } return &res, nil @@ -49,7 +49,7 @@ func EncodeTransactionLogs(res *TransactionLogs) ([]byte, error) { return proto.Marshal(res) } -// DecodeTxResponse decodes an protobuf-encoded byte slice into TransactionLogs +// DecodeTransactionLogs decodes a protobuf-encoded byte slice into TransactionLogs func DecodeTransactionLogs(data []byte) (TransactionLogs, error) { var logs TransactionLogs err := proto.Unmarshal(data, &logs) @@ -85,7 +85,7 @@ func BinSearch(lo, hi uint64, executable func(uint64) (bool, *MsgEthereumTxRespo failed, _, err := executable(mid) // If the error is not nil(consensus error), it means the provided message // call or transaction will never be accepted no matter how much gas it is - // assigned. Return the error directly, don't struggle any more. + // assigned. Return the error directly, don't struggle anymore. if err != nil { return 0, err } @@ -99,19 +99,19 @@ func BinSearch(lo, hi uint64, executable func(uint64) (bool, *MsgEthereumTxRespo } // SafeNewIntFromBigInt constructs Int from big.Int, return error if more than 256bits -func SafeNewIntFromBigInt(i *big.Int) (sdk.Int, error) { +func SafeNewIntFromBigInt(i *big.Int) (sdkmath.Int, error) { if !IsValidInt256(i) { - return sdk.NewInt(0), fmt.Errorf("big int out of bound: %s", i) + return sdkmath.NewInt(0), fmt.Errorf("big int out of bound: %s", i) } - return sdk.NewIntFromBigInt(i), nil + return sdkmath.NewIntFromBigInt(i), nil } -// IsValidInt256 check the bound of 256 bit number +// IsValidInt256 check the bound of 256-bit number func IsValidInt256(i *big.Int) bool { return i == nil || i.BitLen() <= maxBitLen } -// GetTmTxByHash return result tx in according of dynamic tx searching +// GetTmTxByHash return result tx in according to dynamic tx searching func GetTmTxByHash(hash common.Hash) (*tmrpctypes.ResultTx, error) { resTx, err := tmrpccore.Tx(nil, hash.Bytes(), false) if err != nil { @@ -121,7 +121,7 @@ func GetTmTxByHash(hash common.Hash) (*tmrpctypes.ResultTx, error) { return nil, err } if len(resTxs.Txs) == 0 { - return nil, errors.Errorf("ethereum tx not found for hash %s", hash.Hex()) + return nil, errors.Wrapf(ErrEthTxNotFound, "hash: %s", hash.Hex()) } return resTxs.Txs[0], nil } diff --git a/x/pot/abci.go b/x/pot/abci.go index 806c7a8d..5b7e2cd6 100644 --- a/x/pot/abci.go +++ b/x/pot/abci.go @@ -1,9 +1,10 @@ package pot import ( - abci "github.com/tendermint/tendermint/abci/types" + abci "github.com/cometbft/cometbft/abci/types" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/x/pot/keeper" ) diff --git a/x/pot/app_benchmark_test.go b/x/pot/app_benchmark_test.go index 7782fb01..735cf1e9 100644 --- a/x/pot/app_benchmark_test.go +++ b/x/pot/app_benchmark_test.go @@ -5,15 +5,16 @@ import ( "testing" "time" - "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" - "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" - cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmtypes "github.com/tendermint/tendermint/types" + abci "github.com/cometbft/cometbft/abci/types" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmtypes "github.com/cometbft/cometbft/types" + sdkmath "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" @@ -22,6 +23,7 @@ import ( "github.com/stratosnet/stratos-chain/app" "github.com/stratosnet/stratos-chain/crypto" "github.com/stratosnet/stratos-chain/crypto/bls" + stratostestutil "github.com/stratosnet/stratos-chain/testutil/stratos" stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/pot/types" registertypes "github.com/stratosnet/stratos-chain/x/register/types" @@ -75,11 +77,11 @@ var ( accounts = make([]authtypes.GenesisAccount, 0) balances = make([]banktypes.Balance, 0) - accInitBalance = sdk.NewInt(100).Mul(sdk.NewInt(stratos.StosToWei)) - initFoundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Utros, sdk.NewInt(40000000000000000))) + accInitBalance = sdkmath.NewInt(100).Mul(sdkmath.NewInt(stratos.StosToWei)) + initFoundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Utros, sdkmath.NewInt(40000000000000000))) - nodeInitDeposit = sdk.NewInt(1 * stratos.StosToWei) - prepayAmt = sdk.NewCoins(stratos.NewCoin(sdk.NewInt(20).Mul(sdk.NewInt(stratos.StosToWei)))) + nodeInitDeposit = sdkmath.NewInt(1 * stratos.StosToWei) + prepayAmt = sdk.NewCoins(stratos.NewCoin(sdkmath.NewInt(20).Mul(sdkmath.NewInt(stratos.StosToWei)))) valP2PAddrBech32 string ) @@ -108,7 +110,7 @@ func TestVolumeReportBenchmark(t *testing.T) { senderAcc := accountKeeper.GetAccount(ctx, keysMap["foundationDepositorKey"].OwnerAddress()) accNum := senderAcc.GetAccountNumber() accSeq := senderAcc.GetSequence() - _, _, err := app.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, testchainID, []uint64{accNum}, []uint64{accSeq}, true, true, keysMap["foundationDepositorKey"].secp256k1PrivKey) + _, _, err := stratostestutil.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, testchainID, []uint64{accNum}, []uint64{accSeq}, true, true, keysMap["foundationDepositorKey"].secp256k1PrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(types.FoundationAccount) app.CheckBalance(t, stApp, foundationAccountAddr, initFoundationDeposit) @@ -121,7 +123,7 @@ func TestVolumeReportBenchmark(t *testing.T) { senderAcc = accountKeeper.GetAccount(ctx, keysMap[valP2PAddrBech32].OwnerAddress()) accNum = senderAcc.GetAccountNumber() accSeq = senderAcc.GetSequence() - _, _, err = app.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, testchainID, []uint64{accNum}, []uint64{accSeq}, true, true, keysMap[valP2PAddrBech32].secp256k1PrivKey) + _, _, err = stratostestutil.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, testchainID, []uint64{accNum}, []uint64{accSeq}, true, true, keysMap[valP2PAddrBech32].secp256k1PrivKey) require.NoError(t, err) /********************* prepay *********************/ @@ -133,7 +135,7 @@ func TestVolumeReportBenchmark(t *testing.T) { accNum = senderAcc.GetAccountNumber() accSeq = senderAcc.GetSequence() - _, _, err = app.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, testchainID, []uint64{accNum}, []uint64{accSeq}, true, true, keysMap[resourceNodes[0].NetworkAddress].secp256k1PrivKey) + _, _, err = stratostestutil.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, testchainID, []uint64{accNum}, []uint64{accSeq}, true, true, keysMap[resourceNodes[0].NetworkAddress].secp256k1PrivKey) require.NoError(t, err) /********************** commit **********************/ @@ -142,7 +144,7 @@ func TestVolumeReportBenchmark(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) /********************* prepare tx data *********************/ - volumeReportMsg := setupMsgVolumeReportBenchmark(t, sdk.NewInt(1), metaNodes, resourceNodes) + volumeReportMsg := setupMsgVolumeReportBenchmark(t, sdkmath.NewInt(1), metaNodes, resourceNodes) /********************* deliver tx *********************/ idxOwnerAcc1 := accountKeeper.GetAccount(ctx, keysMap[metaNodes[0].NetworkAddress].OwnerAddress()) @@ -153,7 +155,7 @@ func TestVolumeReportBenchmark(t *testing.T) { require.NotNil(t, feePoolAccAddr) t.Log("--------------------------- deliver volumeReportMsg") - gInfo, _, err := app.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, testchainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, keysMap[metaNodes[0].NetworkAddress].secp256k1PrivKey) + gInfo, _, err := stratostestutil.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, testchainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, keysMap[metaNodes[0].NetworkAddress].secp256k1PrivKey) require.NoError(t, err) fmt.Println("##### volume nodes count:", len(volumeReportMsg.WalletVolumes)) fmt.Println("##### gInfo:", gInfo.String()) @@ -187,7 +189,7 @@ func setupKeysAndAccBalance(resNodeCnt int) { foundationDepositorKey := NewKeyInfo() foundationDepositorAcc := &authtypes.BaseAccount{Address: foundationDepositorKey.OwnerAddress().String()} - feeAmt, _ := sdk.NewIntFromString("50000000000000000000") + feeAmt, _ := sdkmath.NewIntFromString("50000000000000000000") foundationDepositorBalance := banktypes.Balance{ Address: foundationDepositorKey.OwnerAddress().String(), Coins: append(initFoundationDeposit, sdk.NewCoin(stratos.Wei, feeAmt)), @@ -205,7 +207,11 @@ func setupNodesBenchmark() (createValidatorMsg *stakingtypes.MsgCreateValidator, if idx == 0 { // first key is validator key - commission := stakingtypes.NewCommissionRates(sdk.NewDecWithPrec(5, 1), sdk.NewDecWithPrec(5, 1), sdk.NewDec(0)) + commission := stakingtypes.NewCommissionRates( + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDec(0), + ) description := stakingtypes.NewDescription("foo_moniker", testchainID, "", "", "") createValidatorMsg, _ = stakingtypes.NewMsgCreateValidator( sdk.ValAddress(keyInfo.OwnerAddress()), @@ -213,7 +219,7 @@ func setupNodesBenchmark() (createValidatorMsg *stakingtypes.MsgCreateValidator, stratos.NewCoin(nodeInitDeposit), description, commission, - sdk.OneInt(), + sdkmath.OneInt(), ) } else if idx < 4 { // 1~3 keys are metaNode keys @@ -251,8 +257,8 @@ func setupNodesBenchmark() (createValidatorMsg *stakingtypes.MsgCreateValidator, } // initialize data of volume report -func setupMsgVolumeReportBenchmark(t *testing.T, epoch sdk.Int, metaNodes []registertypes.MetaNode, resourceNodes []registertypes.ResourceNode) *types.MsgVolumeReport { - rsNodeVolume := sdk.NewInt(50000) +func setupMsgVolumeReportBenchmark(t *testing.T, epoch sdkmath.Int, metaNodes []registertypes.MetaNode, resourceNodes []registertypes.ResourceNode) *types.MsgVolumeReport { + rsNodeVolume := sdkmath.NewInt(50000) nodesVolume := make([]types.SingleWalletVolume, 0) for _, rsNode := range resourceNodes { diff --git a/x/pot/app_test.go b/x/pot/app_test.go index 8d06ee9f..a6e7c479 100644 --- a/x/pot/app_test.go +++ b/x/pot/app_test.go @@ -7,10 +7,11 @@ import ( "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmtypes "github.com/tendermint/tendermint/types" + abci "github.com/cometbft/cometbft/abci/types" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmtypes "github.com/cometbft/cometbft/types" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" sdk "github.com/cosmos/cosmos-sdk/types" @@ -24,6 +25,7 @@ import ( "github.com/stratosnet/stratos-chain/app" "github.com/stratosnet/stratos-chain/crypto" "github.com/stratosnet/stratos-chain/crypto/bls" + stratostestutil "github.com/stratosnet/stratos-chain/testutil/stratos" stratos "github.com/stratosnet/stratos-chain/types" potKeeper "github.com/stratosnet/stratos-chain/x/pot/keeper" "github.com/stratosnet/stratos-chain/x/pot/types" @@ -34,7 +36,6 @@ import ( const ( chainID = "testchain_1-1" - stos2wei = stratos.StosToWei rewardDenom = stratos.Utros stopFlagOutOfTotalMiningReward = true @@ -44,23 +45,23 @@ const ( var ( paramSpecificMinedReward = sdk.NewCoins(stratos.NewCoinInt64(160000000000)) - paramSpecificEpoch = sdk.NewInt(10) + paramSpecificEpoch = sdkmath.NewInt(10) - resNodeSlashingNOZAmt1 = sdk.NewInt(1000000000000000000) - resNodeSlashingEffectiveTokenAmt1 = sdk.NewInt(1000000000000000000) + resNodeSlashingNOZAmt1 = sdkmath.NewInt(1000000000000000000) + resNodeSlashingEffectiveTokenAmt1 = sdkmath.NewInt(1000000000000000000) - resourceNodeVolume1 = sdk.NewInt(50000) - resourceNodeVolume2 = sdk.NewInt(30000) - resourceNodeVolume3 = sdk.NewInt(20000) + resourceNodeVolume1 = sdkmath.NewInt(50000) + resourceNodeVolume2 = sdkmath.NewInt(30000) + resourceNodeVolume3 = sdkmath.NewInt(20000) - prepayAmount = sdk.NewCoins(stratos.NewCoin(sdk.NewInt(20).Mul(sdk.NewInt(stratos.StosToWei)))) + prepayAmount = sdk.NewCoins(stratos.NewCoin(sdkmath.NewInt(20).Mul(sdkmath.NewInt(stratos.StosToWei)))) foundationDepositorPrivKey = secp256k1.GenPrivKey() foundationDepositorAccAddr = sdk.AccAddress(foundationDepositorPrivKey.PubKey().Address()) - foundationDeposit = sdk.NewCoins(sdk.NewCoin(rewardDenom, sdk.NewInt(40000000000000000))) + foundationDeposit = sdk.NewCoins(sdk.NewCoin(rewardDenom, sdkmath.NewInt(40000000000000000))) - nodeInitialDeposit = sdk.NewInt(1 * stratos.StosToWei) - initBalance = sdk.NewInt(100).Mul(sdk.NewInt(stratos.StosToWei)) + nodeInitialDeposit = sdkmath.NewInt(1 * stratos.StosToWei) + initBalance = sdkmath.NewInt(100).Mul(sdkmath.NewInt(stratos.StosToWei)) // wallet private keys resOwnerPrivKey1 = secp256k1.GenPrivKey() @@ -124,7 +125,7 @@ func setupMsgVolumeReport(t *testing.T, newEpoch int64) *types.MsgVolumeReport { nodesVolume := []types.SingleWalletVolume{volume1, volume2, volume3} reporter := metaNodeP2PAddr1 - epoch := sdk.NewInt(newEpoch) + epoch := sdkmath.NewInt(newEpoch) reportReference := "report for epoch " + epoch.String() reporterOwner := metaOwner1 @@ -172,7 +173,7 @@ func setupSlashingMsg() *types.MsgSlashingResourceNode { // Test case termination conditions // modify stop flag & variable could make the test case stop when reach a specific condition -func isNeedStop(ctx sdk.Context, k potKeeper.Keeper, epoch sdk.Int, minedToken sdk.Coin) bool { +func isNeedStop(ctx sdk.Context, k potKeeper.Keeper, epoch sdkmath.Int, minedToken sdk.Coin) bool { if stopFlagOutOfTotalMiningReward && (minedToken.Amount.GT(foundationDeposit.AmountOf(k.RewardDenom(ctx))) || minedToken.Amount.GT(foundationDeposit.AmountOf(k.RewardDenom(ctx)))) { @@ -215,7 +216,7 @@ func TestPotVolumeReportMsgs(t *testing.T) { senderAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) accNum := senderAcc.GetAccountNumber() accSeq := senderAcc.GetSequence() - _, _, err := app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) + _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(types.FoundationAccount) app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) @@ -225,14 +226,18 @@ func TestPotVolumeReportMsgs(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(false, header) - commission := stakingtypes.NewCommissionRates(sdk.NewDecWithPrec(5, 1), sdk.NewDecWithPrec(5, 1), sdk.NewDec(0)) + commission := stakingtypes.NewCommissionRates( + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDec(0), + ) description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(nodeInitialDeposit), description, commission, sdk.OneInt()) + createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(nodeInitialDeposit), description, commission, sdkmath.OneInt()) senderAcc = accountKeeper.GetAccount(ctx, valOpAccAddr1) accNum = senderAcc.GetAccountNumber() accSeq = senderAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) require.NoError(t, err) /********************* prepay *********************/ @@ -243,7 +248,7 @@ func TestPotVolumeReportMsgs(t *testing.T) { senderAcc = accountKeeper.GetAccount(ctx, resOwner1) accNum = senderAcc.GetAccountNumber() accSeq = senderAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey1) require.NoError(t, err) /********************** commit **********************/ @@ -253,20 +258,20 @@ func TestPotVolumeReportMsgs(t *testing.T) { validator := checkValidator(t, stApp, valOpValAddr1, true) require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdk.IntEq(t, nodeInitialDeposit, validator.BondedTokens())) + require.True(sdkmath.IntEq(t, nodeInitialDeposit, validator.BondedTokens())) /********************** loop sending volume report **********************/ var i int64 - var slashingAmtSetup sdk.Int + var slashingAmtSetup sdkmath.Int i = 0 - slashingAmtSetup = sdk.ZeroInt() + slashingAmtSetup = sdkmath.ZeroInt() for { /********************* test slashing msg when i==2 *********************/ if i == 2 { t.Log("********************************* Deliver Slashing Tx START ********************************************") - totalConsumedNoz := resNodeSlashingNOZAmt1.ToDec() + totalConsumedNoz := resNodeSlashingNOZAmt1.ToLegacyDec() slashingAmtCheck := potKeeper.GetTrafficReward(ctx, totalConsumedNoz) slashingMsg := setupSlashingMsg() @@ -276,7 +281,7 @@ func TestPotVolumeReportMsgs(t *testing.T) { accNum = senderAcc.GetAccountNumber() accSeq = senderAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -301,21 +306,21 @@ func TestPotVolumeReportMsgs(t *testing.T) { lastTotalMinedToken := potKeeper.GetTotalMinedTokens(ctx) t.Log("last committed TotalMinedTokens = " + lastTotalMinedToken.String()) - epoch, ok := sdk.NewIntFromString(volumeReportMsg.Epoch.String()) + epoch, ok := sdkmath.NewIntFromString(volumeReportMsg.Epoch.String()) require.Equal(t, ok, true) if isNeedStop(ctx, potKeeper, epoch, lastTotalMinedToken) { break } - totalConsumedNoz := potKeeper.GetTotalConsumedNoz(volumeReportMsg.WalletVolumes).ToDec() + totalConsumedNoz := potKeeper.GetTotalConsumedNoz(volumeReportMsg.WalletVolumes).ToLegacyDec() /********************* print info *********************/ t.Log("epoch " + volumeReportMsg.Epoch.String()) - S := registerKeeper.GetInitialGenesisDepositTotal(ctx).ToDec() - Pt := registerKeeper.GetTotalUnissuedPrepay(ctx).Amount.ToDec() + S := registerKeeper.GetInitialGenesisDepositTotal(ctx).ToLegacyDec() + Pt := registerKeeper.GetTotalUnissuedPrepay(ctx).Amount.ToLegacyDec() Y := totalConsumedNoz - Lt := registerKeeper.GetRemainingOzoneLimit(ctx).ToDec() + Lt := registerKeeper.GetRemainingOzoneLimit(ctx).ToLegacyDec() R := S.Add(Pt).Mul(Y).Quo(Lt.Add(Y)) //t.Log("R = (S + Pt) * Y / (Lt + Y)") t.Log("S=" + S.String() + "\nPt=" + Pt.String() + "\nY=" + Y.String() + "\nLt=" + Lt.String() + "\nR=" + R.String() + "\n") @@ -384,7 +389,7 @@ func TestPotVolumeReportMsgs(t *testing.T) { require.NotNil(t, feePoolAccAddr) t.Log("--------------------------- deliver volumeReportMsg") - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, metaOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, metaOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ @@ -403,7 +408,7 @@ func TestPotVolumeReportMsgs(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - epoch, ok = sdk.NewIntFromString(volumeReportMsg.Epoch.String()) + epoch, ok = sdkmath.NewIntFromString(volumeReportMsg.Epoch.String()) require.Equal(t, ok, true) checkResult(t, ctx, potKeeper, @@ -431,9 +436,9 @@ func deductSlashingAmt(ctx sdk.Context, coins sdk.Coins, slashing sdk.Coin) (ret slashingDenom := slashing.Denom rewardToken := sdk.NewCoin(slashingDenom, coins.AmountOf(slashingDenom)) if rewardToken.IsGTE(slashing) { - ret = coins.Sub(sdk.NewCoins(slashing)) + ret = coins.Sub(sdk.NewCoins(slashing)...) } else { - ret = coins.Sub(sdk.NewCoins(rewardToken)) + ret = coins.Sub(sdk.NewCoins(rewardToken)...) } return ret } @@ -445,12 +450,12 @@ func checkResult(t *testing.T, ctx sdk.Context, bankKeeper bankKeeper.Keeper, registerKeeper registerKeeper.Keeper, distrKeeper distrkeeper.Keeper, - currentEpoch sdk.Int, + currentEpoch sdkmath.Int, lastFoundationAccBalance sdk.Coins, lastUnissuedPrepay sdk.Coin, lastCommunityPool sdk.Coins, lastMatureTotalOfResNode1 sdk.Coins, - initialSlashingAmt sdk.Int, + initialSlashingAmt sdkmath.Int, feeCollectorToFeePoolAtBeginBlock sdk.Coins, individualRewardOfResNode1 types.Reward, individualRewardOfResNode1Found bool, @@ -458,7 +463,7 @@ func checkResult(t *testing.T, ctx sdk.Context, // print individual reward individualRewardTotal := sdk.Coins{} - newMatureEpoch := currentEpoch.Add(sdk.NewInt(k.MatureEpoch(ctx))) + newMatureEpoch := currentEpoch.Add(sdkmath.NewInt(k.MatureEpoch(ctx))) k.IteratorIndividualReward(ctx, newMatureEpoch, func(walletAddress sdk.AccAddress, individualReward types.Reward) (stop bool) { individualRewardTotal = individualRewardTotal.Add(individualReward.RewardFromTrafficPool...).Add(individualReward.RewardFromMiningPool...) t.Log("individualReward of [" + walletAddress.String() + "] = " + individualReward.String()) @@ -491,14 +496,14 @@ func checkResult(t *testing.T, ctx sdk.Context, // distribution module will send all tokens from "fee_collector" to "distribution" account in the BeginBlocker() method t.Log("reward for validator send to fee_collector = " + feeCollectorToFeePoolAtBeginBlock.String()) stakeRewardFromFeeCollectorToFeePool := sdk.NewCoin(k.BondDenom(ctx), feeCollectorToFeePoolAtBeginBlock.AmountOf(k.BondDenom(ctx))) - communityTaxChange := newCommunityPool.Sub(lastCommunityPool).Sub(sdk.NewCoins(stakeRewardFromFeeCollectorToFeePool)) + communityTaxChange := newCommunityPool.Sub(lastCommunityPool...).Sub(sdk.NewCoins(stakeRewardFromFeeCollectorToFeePool)...) t.Log("community tax change in community_pool = " + communityTaxChange.String()) t.Log("community_pool amount of wei = " + newCommunityPool.String()) rewardSrcChange := lastFoundationAccBalance. - Sub(newFoundationAccBalance). + Sub(newFoundationAccBalance...). Add(lastUnissuedPrepay). - Sub(newUnissuedPrepay) + Sub(newUnissuedPrepay...) t.Log("rewardSrcChange = " + rewardSrcChange.String()) @@ -523,7 +528,7 @@ func checkResult(t *testing.T, ctx sdk.Context, // get mature total changes newMatureTotalOfResNode1 := k.GetMatureTotalReward(ctx, resOwner1) - matureTotalOfResNode1Change, _ := newMatureTotalOfResNode1.SafeSub(lastMatureTotalOfResNode1) + matureTotalOfResNode1Change, _ := newMatureTotalOfResNode1.SafeSub(lastMatureTotalOfResNode1...) if matureTotalOfResNode1Change == nil || matureTotalOfResNode1Change.IsAnyNegative() { matureTotalOfResNode1Change = sdk.Coins{} } @@ -535,7 +540,7 @@ func checkResult(t *testing.T, ctx sdk.Context, t.Log("totalRewardPoolBalance = " + totalRewardPoolBalance.String()) } -func checkValidator(t *testing.T, app *app.NewApp, addr sdk.ValAddress, expFound bool) stakingtypes.Validator { +func checkValidator(t *testing.T, app *app.StratosApp, addr sdk.ValAddress, expFound bool) stakingtypes.Validator { ctxCheck := app.BaseApp.NewContext(true, tmproto.Header{}) validator, found := app.GetStakingKeeper().GetValidator(ctxCheck, addr) @@ -576,7 +581,7 @@ func setupAccounts() ([]authtypes.GenesisAccount, []banktypes.Balance) { //idxNodeAcc1, } - feeAmt, _ := sdk.NewIntFromString("50000000000000000000") + feeAmt, _ := sdkmath.NewIntFromString("50000000000000000000") balances := []banktypes.Balance{ { @@ -617,7 +622,7 @@ func setupAccounts() ([]authtypes.GenesisAccount, []banktypes.Balance) { }, //{ // Address: idxNodeAddr1.String(), - // Coins: sdk.Coins{stratos.NewCoin(sdk.ZeroInt())}, + // Coins: sdk.Coins{stratos.NewCoin(sdkmath.ZeroInt())}, //}, { Address: foundationDepositorAccAddr.String(), diff --git a/x/pot/client/cli/query.go b/x/pot/client/cli/query.go index ff841e9f..6b66bd4c 100644 --- a/x/pot/client/cli/query.go +++ b/x/pot/client/cli/query.go @@ -8,9 +8,9 @@ import ( "github.com/spf13/cobra" "github.com/spf13/viper" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" "github.com/stratosnet/stratos-chain/x/pot/types" @@ -170,12 +170,12 @@ func GetCmdQueryVolumeReport() *cobra.Command { return cmd } -func checkFlagEpoch(epochStr string) (sdk.Int, error) { +func checkFlagEpoch(epochStr string) (sdkmath.Int, error) { epochInt64, err := strconv.ParseInt(epochStr, 10, 64) if err != nil { - return sdk.NewInt(0), fmt.Errorf("invalid epoch: %w", err) + return sdkmath.NewInt(0), fmt.Errorf("invalid epoch: %w", err) } - epoch := sdk.NewInt(epochInt64) + epoch := sdkmath.NewInt(epochInt64) return epoch, nil } diff --git a/x/pot/client/cli/tx.go b/x/pot/client/cli/tx.go index b4fba7be..cf3f35d6 100644 --- a/x/pot/client/cli/tx.go +++ b/x/pot/client/cli/tx.go @@ -5,12 +5,15 @@ import ( "fmt" "strconv" + "github.com/spf13/cobra" + flag "github.com/spf13/pflag" + + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/tx" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/spf13/cobra" - flag "github.com/spf13/pflag" + stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/pot/types" ) @@ -50,15 +53,12 @@ func WithdrawCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - - txf, msg, err := buildWithdrawMsg(clientCtx, txf, cmd.Flags()) + msg, err := buildWithdrawMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } @@ -73,14 +73,14 @@ func WithdrawCmd() *cobra.Command { } // makes a new WithdrawMsg. -func buildWithdrawMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgWithdraw, error) { +func buildWithdrawMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgWithdraw, error) { amountStr, err := fs.GetString(FlagAmount) if err != nil { - return txf, nil, err + return nil, err } amount, err := sdk.ParseCoinsNormalized(amountStr) if err != nil { - return txf, nil, err + return nil, err } walletAddress := clientCtx.GetFromAddress() @@ -93,13 +93,13 @@ func buildWithdrawMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet targetAddressStr, _ := fs.GetString(FlagTargetAddress) targetAddress, err = sdk.AccAddressFromBech32(targetAddressStr) if err != nil { - return txf, nil, err + return nil, err } } msg := types.NewMsgWithdraw(amount, walletAddress, targetAddress) - return txf, msg, nil + return msg, nil } func LegacyWithdrawCmd() *cobra.Command { @@ -112,15 +112,12 @@ func LegacyWithdrawCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - - txf, msg, err := buildLegacyWithdrawMsg(clientCtx, txf, cmd.Flags()) + msg, err := buildLegacyWithdrawMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } @@ -135,20 +132,20 @@ func LegacyWithdrawCmd() *cobra.Command { } // makes a new LegacyWithdrawMsg. -func buildLegacyWithdrawMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgLegacyWithdraw, error) { +func buildLegacyWithdrawMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgLegacyWithdraw, error) { amountStr, err := fs.GetString(FlagAmount) if err != nil { - return txf, nil, err + return nil, err } amount, err := sdk.ParseCoinsNormalized(amountStr) if err != nil { - return txf, nil, err + return nil, err } from := clientCtx.GetFromAddress() targetAddressStr, err := fs.GetString(FlagTargetAddress) if err != nil { - return txf, nil, err + return nil, err } var targetAddress sdk.AccAddress @@ -157,13 +154,13 @@ func buildLegacyWithdrawMsg(clientCtx client.Context, txf tx.Factory, fs *flag.F } else { targetAddress, err = sdk.AccAddressFromBech32(targetAddressStr) if err != nil { - return txf, nil, err + return nil, err } } msg := types.NewMsgLegacyWithdraw(amount, from, targetAddress) - return txf, msg, nil + return msg, nil } // VolumeReportCmd will report wallets volume and sign it with the given key. @@ -177,30 +174,14 @@ func VolumeReportCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - - txf, msg, err := createVolumeReportMsg(clientCtx, txf, cmd.Flags()) + msg, err := createVolumeReportMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) - - //inBuf := bufio.NewReader(cmd.InOrStdin()) - //txBldr := auth.NewTxBuilderFromCLI(inBuf).WithTxEncoder(utils.GetTxEncoder(cdc)) - //cliCtx := context.NewCLIContextWithInput(inBuf).WithCodec(cdc) - //txBldr, msg, err := createVolumeReportMsg(cliCtx, txBldr) - //if err != nil { - // return err - //} - //return utils.GenerateOrBroadcastMsgs(cliCtx, txBldr, []sdk.Msg{msg}) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } - //cmd.Flags().AddFlagSet(FsReporterAddr) - //cmd.Flags().AddFlagSet(FsEpoch) - //cmd.Flags().AddFlagSet(FsReportReference) - //cmd.Flags().AddFlagSet(FsWalletVolumes) cmd.Flags().AddFlagSet(flagSetReportVolumes()) flags.AddTxFlagsToCmd(cmd) @@ -214,52 +195,52 @@ func VolumeReportCmd() *cobra.Command { return cmd } -func createVolumeReportMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgVolumeReport, error) { +func createVolumeReportMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgVolumeReport, error) { reporterStr, err := fs.GetString(FlagReporterAddr) if err != nil { - return txf, nil, err + return nil, err } reporter, err := stratos.SdsAddressFromBech32(reporterStr) if err != nil { - return txf, nil, err + return nil, err } reportReference, err := fs.GetString(FlagReportReference) if err != nil { - return txf, nil, err + return nil, err } //flagEpochInt64, err := fs.GetInt64(FlagEpoch) flagEpochStr, err := fs.GetString(FlagEpoch) if err != nil { - return txf, nil, err + return nil, err } value, err := strconv.ParseInt(flagEpochStr, 10, 64) if err != nil { - return txf, nil, err + return nil, err } - epoch := sdk.NewInt(value) + epoch := sdkmath.NewInt(value) flagWalletVolumes, err := fs.GetString(FlagWalletVolumes) if err != nil { - return txf, nil, err + return nil, err } walletVolumesStr := make([]singleWalletVolumeStr, 0) err = json.Unmarshal([]byte(flagWalletVolumes), &walletVolumesStr) if err != nil { - return txf, nil, err + return nil, err } var walletVolumes = make([]types.SingleWalletVolume, 0) for _, n := range walletVolumesStr { walletAcc, err := sdk.AccAddressFromBech32(n.WalletAddress) if err != nil { - return txf, nil, err + return nil, err } volumeInt64, err := strconv.ParseInt(n.Volume, 10, 64) if err != nil { - return txf, nil, err + return nil, err } - volume := sdk.NewInt(volumeInt64) + volume := sdkmath.NewInt(volumeInt64) walletVolumes = append(walletVolumes, types.NewSingleWalletVolume(walletAcc, volume)) } @@ -267,21 +248,15 @@ func createVolumeReportMsg(clientCtx client.Context, txf tx.Factory, fs *flag.Fl blsSigture, err := fs.GetString(FlagBLSSignature) if err != nil { - return txf, nil, err + return nil, err } var sig types.BaseBLSSignatureInfo err = json.Unmarshal([]byte(blsSigture), &sig) if err != nil { - return txf, nil, err + return nil, err } - //var signature types.BLSSignatureInfo - //err = json.Unmarshal([]byte(blsSigture), &signature) - //if err != nil { - // return txf, nil, err - //} - // TODO: change pubkey pubKeys := make([][]byte, len(sig.PubKeys)) for i, v := range sig.PubKeys { @@ -298,7 +273,7 @@ func createVolumeReportMsg(clientCtx client.Context, txf tx.Factory, fs *flag.Fl reporterOwner, signature, ) - return txf, msg, nil + return msg, nil } func FoundationDepositCmd() *cobra.Command { @@ -311,15 +286,12 @@ func FoundationDepositCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - - txf, msg, err := buildFoundationDepositMsg(clientCtx, txf, cmd.Flags()) + msg, err := buildFoundationDepositMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } cmd.Flags().AddFlagSet(flagSetAmount()) @@ -332,18 +304,18 @@ func FoundationDepositCmd() *cobra.Command { return cmd } -func buildFoundationDepositMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgFoundationDeposit, error) { +func buildFoundationDepositMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgFoundationDeposit, error) { amountStr, err := fs.GetString(FlagAmount) if err != nil { - return txf, nil, err + return nil, err } amount, err := sdk.ParseCoinsNormalized(amountStr) if err != nil { - return txf, nil, err + return nil, err } from := clientCtx.GetFromAddress() msg := types.NewMsgFoundationDeposit(amount, from) - return txf, msg, nil + return msg, nil } func SlashingResourceNodeCmd() *cobra.Command { @@ -356,24 +328,14 @@ func SlashingResourceNodeCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - - txf, msg, err := buildSlashingResourceNodeMsg(clientCtx, txf, cmd.Flags()) + msg, err := buildSlashingResourceNodeMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } - //cmd.Flags().AddFlagSet(FsReporters) - //cmd.Flags().AddFlagSet(FsReportOwner) - //cmd.Flags().AddFlagSet(FsNetworkAddress) - //cmd.Flags().AddFlagSet(FsWalletAddress) - //cmd.Flags().AddFlagSet(FsSlashing) - //cmd.Flags().AddFlagSet(FsSuspend) - cmd.Flags().AddFlagSet(flagSetReportersAndOwners()) cmd.Flags().AddFlagSet(flagSetNetworkAddress()) cmd.Flags().AddFlagSet(flagSetWalletAddress()) @@ -393,22 +355,22 @@ func SlashingResourceNodeCmd() *cobra.Command { return cmd } -func buildSlashingResourceNodeMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgSlashingResourceNode, error) { +func buildSlashingResourceNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgSlashingResourceNode, error) { var reportersStr = make([]string, 0) flagReportersStr, err := fs.GetString(FlagReporters) if err != nil { - return txf, nil, err + return nil, err } err = json.Unmarshal([]byte(flagReportersStr), &reportersStr) if err != nil { - return txf, nil, err + return nil, err } var reporters = make([]stratos.SdsAddress, 0) for _, val := range reportersStr { reporterAddr, err := stratos.SdsAddressFromBech32(val) if err != nil { - return txf, nil, err + return nil, err } reporters = append(reporters, reporterAddr) } @@ -416,56 +378,55 @@ func buildSlashingResourceNodeMsg(clientCtx client.Context, txf tx.Factory, fs * var reporterOwnerStr = make([]string, 0) flagReporterOwnerStr, err := fs.GetString(FlagReporterOwner) if err != nil { - return txf, nil, err + return nil, err } err = json.Unmarshal([]byte(flagReporterOwnerStr), &reporterOwnerStr) if err != nil { - return txf, nil, err + return nil, err } var reporterOwner = make([]sdk.AccAddress, 0) for _, val := range reporterOwnerStr { reporterOwnerAddr, err := sdk.AccAddressFromBech32(val) if err != nil { - return txf, nil, err + return nil, err } reporterOwner = append(reporterOwner, reporterOwnerAddr) } flagNetworkAddressStr, err := fs.GetString(FlagNetworkAddress) if err != nil { - return txf, nil, err + return nil, err } networkAddress, err := stratos.SdsAddressFromBech32(flagNetworkAddressStr) if err != nil { - return txf, nil, err + return nil, err } flagWalletAddressStr, err := fs.GetString(FlagWalletAddress) if err != nil { - return txf, nil, err + return nil, err } walletAddress, err := sdk.AccAddressFromBech32(flagWalletAddressStr) if err != nil { - return txf, nil, err + return nil, err } flagSlashingStr, err := fs.GetString(FlagSlashing) if err != nil { - return txf, nil, err + return nil, err } slashingVal, err := strconv.ParseInt(flagSlashingStr, 10, 64) if err != nil { - return txf, nil, err + return nil, err } - slashing := sdk.NewInt(slashingVal) + slashing := sdkmath.NewInt(slashingVal) suspend, err := fs.GetBool(FlagSuspend) - //suspend, err := strconv.ParseBool(flagSuspendVal) if err != nil { - return txf, nil, err + return nil, err } msg := types.NewMsgSlashingResourceNode(reporters, reporterOwner, networkAddress, walletAddress, slashing, suspend) - return txf, msg, nil + return msg, nil } diff --git a/x/pot/client/rest/query.go b/x/pot/client/rest/query.go deleted file mode 100644 index f0cac0f8..00000000 --- a/x/pot/client/rest/query.go +++ /dev/null @@ -1,261 +0,0 @@ -package rest - -import ( - "fmt" - "net/http" - "strconv" - - "github.com/gorilla/mux" - - "github.com/cosmos/cosmos-sdk/client" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/rest" - - "github.com/stratosnet/stratos-chain/x/pot/types" -) - -func registerQueryRoutes(clientCtx client.Context, r *mux.Router) { - r.HandleFunc("/pot/report/epoch/{epoch}", getVolumeReportHandlerFn(clientCtx, types.QueryVolumeReport)).Methods("GET") - r.HandleFunc("/pot/rewards/epoch/{epoch}", getIndividualRewardsByEpochHandlerFn(clientCtx, types.QueryIndividualRewardsByReportEpoch)).Methods("GET") - r.HandleFunc("/pot/rewards/wallet/{walletAddress}", getRewardsByWalletAddrHandlerFn(clientCtx, types.QueryRewardsByWalletAddr)).Methods("GET") - r.HandleFunc("/pot/slashing/{walletAddress}", getSlashingByWalletAddressHandlerFn(clientCtx, types.QuerySlashingByWalletAddr)).Methods("GET") - r.HandleFunc("/pot/params", potParamsHandlerFn(clientCtx, types.QueryPotParams)).Methods("GET") - r.HandleFunc("/pot/total-mined-token", getTotalMinedTokenHandlerFn(clientCtx, types.QueryTotalMinedToken)).Methods("GET") - r.HandleFunc("/pot/circulation-supply", getCirculationSupplyHandlerFn(clientCtx, types.QueryCirculationSupply)).Methods("GET") - r.HandleFunc("/pot/total-reward/{epoch}", getTotalRewardByEpochHandlerFn(clientCtx, types.QueryTotalRewardByEpoch)).Methods("GET") -} - -// GET request handler to query params of POT module -func potParamsHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.Query(route) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -func getIndividualRewardsByEpochHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - // get and verify params - _, page, limit, err := rest.ParseHTTPArgsWithLimit(r, 0) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - epochStr := mux.Vars(r)["epoch"] - epoch, ok := sdk.NewIntFromString(epochStr) - if !ok { - return - } - - params := types.NewQueryIndividualRewardsByEpochParams(page, limit, epoch) - bz, err := cliCtx.LegacyAmino.MarshalJSON(params) - if err != nil { - rest.PostProcessResponse(w, cliCtx, err.Error()) - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.QueryWithData(route, bz) - if err != nil { - rest.PostProcessResponse(w, cliCtx, err.Error()) - return - } - - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// GET request handler to query Volume report info -func getVolumeReportHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - v := mux.Vars(r)["epoch"] - if len(v) == 0 { - return - } - //epoch, ok := validateEpoch(w, v) - epoch, ok := sdk.NewIntFromString(v) - if !ok { - rest.WriteErrorResponse(w, http.StatusBadRequest, "Invalid epoch") - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.QueryWithData(route, []byte(epoch.String())) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// GET request handler to query potRewards info by walletAddr -func getRewardsByWalletAddrHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - walletAddrStr := mux.Vars(r)["walletAddress"] - walletAddr, err := sdk.AccAddressFromBech32(walletAddrStr) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - queryEpoch := sdk.ZeroInt() - queryHeight := cliCtx.Height - - if v := r.URL.Query().Get(RestEpoch); len(v) != 0 { - queryEpoch, ok = sdk.NewIntFromString(v) - if !ok { - rest.WriteErrorResponse(w, http.StatusBadRequest, "Invalid epoch") - return - } - } - - if v := r.URL.Query().Get(RestHeight); len(v) != 0 { - queryHeight, err = strconv.ParseInt(v, 10, 64) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - } - - params := types.NewQueryRewardsByWalletAddrParams(walletAddr, queryHeight, queryEpoch) - - bz, err := cliCtx.LegacyAmino.MarshalJSON(params) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - cliCtx = cliCtx.WithHeight(queryHeight) - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.QueryWithData(route, bz) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -func getSlashingByWalletAddressHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - v := mux.Vars(r)["walletAddress"] - if len(v) == 0 { - return - } - walletAddr, err := sdk.AccAddressFromBech32(v) - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.QueryWithData(route, []byte(walletAddr.String())) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -func getTotalMinedTokenHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.Query(route) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -func getCirculationSupplyHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.Query(route) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -func getTotalRewardByEpochHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - epochStr := mux.Vars(r)["epoch"] - epoch, ok := sdk.NewIntFromString(epochStr) - if !ok { - return - } - - params := types.NewQueryTotalRewardByEpochParams(epoch) - bz, err := cliCtx.LegacyAmino.MarshalJSON(params) - if err != nil { - rest.PostProcessResponse(w, cliCtx, err.Error()) - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.QueryWithData(route, bz) - if err != nil { - rest.PostProcessResponse(w, cliCtx, err.Error()) - return - } - - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} diff --git a/x/pot/client/rest/rest.go b/x/pot/client/rest/rest.go deleted file mode 100644 index 6bbd90cd..00000000 --- a/x/pot/client/rest/rest.go +++ /dev/null @@ -1,20 +0,0 @@ -package rest - -import ( - "github.com/gorilla/mux" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/rest" -) - -const ( - RestEpoch = "epoch" - RestHeight = "height" -) - -// RegisterRoutes registers pot-related REST handlers to a router -func RegisterRoutes(clientCtx client.Context, rtr *mux.Router) { - r := rest.WithHTTPDeprecationHeaders(rtr) - registerTxRoutes(clientCtx, r) - registerQueryRoutes(clientCtx, r) -} diff --git a/x/pot/client/rest/tx.go b/x/pot/client/rest/tx.go deleted file mode 100644 index 44bc6aec..00000000 --- a/x/pot/client/rest/tx.go +++ /dev/null @@ -1,251 +0,0 @@ -package rest - -import ( - "fmt" - "net/http" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/tx" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/rest" - //"github.com/cosmos/cosmos-sdk/x/auth/client/utils" - "github.com/gorilla/mux" - stratos "github.com/stratosnet/stratos-chain/types" - "github.com/stratosnet/stratos-chain/x/pot/types" -) - -// registerTxRoutes registers pot-related REST Tx handlers to a router -func registerTxRoutes(cliCtx client.Context, r *mux.Router) { - r.HandleFunc("/pot/volume_report", volumeReportRequestHandlerFn(cliCtx)).Methods("POST") - r.HandleFunc("/pot/withdraw", withdrawPotRewardsHandlerFn(cliCtx)).Methods("POST") - r.HandleFunc("/pot/foundation_deposit", foundationDepositHandlerFn(cliCtx)).Methods("POST") - r.HandleFunc("/pot/slashing", slashingResourceNodeHandlerFn(cliCtx)).Methods("POST") -} - -type ( - foundationDepositReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - Amount string `json:"amount" yaml:"amount"` - } - - withdrawRewardsReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - Amount string `json:"amount" yaml:"amount"` - TargetAddress string `json:"target_address" yaml:"target_address"` - } - - volumeReportReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - WalletVolumes []types.SingleWalletVolume `json:"wallet_volumes" yaml:"wallet_volumes"` // volume report - Reporter string `json:"reporter" yaml:"reporter"` // volume reporter - Epoch int64 `json:"epoch" yaml:"epoch"` // volume report epoch - ReportReference string `json:"report_reference" yaml:"report_reference"` // volume report reference - BLSSignature types.BaseBLSSignatureInfo `json:"bls_signature" yaml:"bls_signature"` // bls signature - } - - slashingResourceNodeReq struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - Reporters []stratos.SdsAddress `json:"reporters" yaml:"reporters"` // reporter(sp node) p2p address - ReporterOwner []sdk.AccAddress `json:"reporter_owner" yaml:"reporter_owner"` // report(sp node) wallet address - NetworkAddress stratos.SdsAddress `json:"network_address" yaml:"network_address"` // p2p address of the pp node - WalletAddress sdk.AccAddress `json:"wallet_address" yaml:"wallet_address"` // wallet address of the pp node - Slashing int64 `json:"slashing" yaml:"slashing"` - Suspend bool `json:"suspend" yaml:"suspend"` - } -) - -// volumeReportRequestHandlerFn rest API handler to create a volume report tx. -func volumeReportRequestHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req volumeReportReq - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - rest.WriteErrorResponse(w, http.StatusBadRequest, "failed to parse request") - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - reporterStr := req.Reporter - reporter, err := stratos.SdsAddressFromBech32(reporterStr) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - reportReference := req.ReportReference - epoch := sdk.NewInt(req.Epoch) - - var walletVolumes []types.SingleWalletVolume - for _, v := range req.WalletVolumes { - walletAddr, err := sdk.AccAddressFromBech32(v.WalletAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - volumeStr := v.Volume.String() - volume, ok := sdk.NewIntFromString(volumeStr) - if !ok { - rest.WriteErrorResponse(w, http.StatusBadRequest, "invalid volume") - return - } - singleWalletVolume := types.NewSingleWalletVolume(walletAddr, volume) - walletVolumes = append(walletVolumes, singleWalletVolume) - } - - reporterOwner, err := sdk.AccAddressFromBech32(req.BaseReq.From) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - sig := req.BLSSignature - - pubKeys := make([][]byte, len(sig.PubKeys)) - for i, v := range sig.PubKeys { - pubKeys[i] = []byte(v) - } - blsSignature := types.NewBLSSignatureInfo(pubKeys, []byte(sig.Signature), []byte(sig.TxData)) - - msg := types.NewMsgVolumeReport(walletVolumes, reporter, epoch, reportReference, reporterOwner, blsSignature) - err = msg.ValidateBasic() - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - //utils.WriteGenerateStdTxResponse(w, cliCtx, req.BaseReq, []sdk.Msg{msg}) - } -} - -// rest API handler Withdraw pot rewards -func withdrawPotRewardsHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req withdrawRewardsReq - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - rest.WriteErrorResponse(w, http.StatusBadRequest, "failed to parse request") - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - // read and validate URL's variables - amountStr := req.Amount - amount, ok := checkAmountVar(w, r, amountStr) - if !ok { - return - } - - targetAddrStr := req.TargetAddress - targetAddr, ok := checkAccountAddressVar(w, r, targetAddrStr) - if !ok { - return - } - - //TODO: Add targetAddr after NewMsgWithdraw updates - fmt.Println("targetAddr", targetAddr) - - walletAddrStr := req.BaseReq.From - walletAddr, ok := checkAccountAddressVar(w, r, walletAddrStr) - if !ok { - return - } - - msg := types.NewMsgWithdraw(amount, walletAddr, targetAddr) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - //utils.WriteGenerateStdTxResponse(w, cliCtx, req.BaseReq, []sdk.Msg{msg}) - } -} - -func foundationDepositHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req foundationDepositReq - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - rest.WriteErrorResponse(w, http.StatusBadRequest, "failed to parse request") - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - // read and validate URL's variables - amountStr := req.Amount - amount, ok := checkAmountVar(w, r, amountStr) - if !ok { - return - } - - fromStr := req.BaseReq.From - fromAddr, ok := checkAccountAddressVar(w, r, fromStr) - if !ok { - return - } - - msg := types.NewMsgFoundationDeposit(amount, fromAddr) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - //utils.WriteGenerateStdTxResponse(w, cliCtx, req.BaseReq, []sdk.Msg{msg}) - } -} - -func checkAccountAddressVar(w http.ResponseWriter, r *http.Request, accountAddrStr string) (sdk.AccAddress, bool) { - addr, err := sdk.AccAddressFromBech32(accountAddrStr) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return nil, false - } - - return addr, true -} - -func checkAmountVar(w http.ResponseWriter, r *http.Request, amountStr string) (sdk.Coins, bool) { - amount, err := sdk.ParseCoinsNormalized(amountStr) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, "invalid withdraw amount") - return sdk.Coins{}, false - } - return amount, true -} - -func slashingResourceNodeHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req slashingResourceNodeReq - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - rest.WriteErrorResponse(w, http.StatusBadRequest, "failed to parse request") - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - slashing := sdk.NewInt(req.Slashing) - - msg := types.NewMsgSlashingResourceNode(req.Reporters, req.ReporterOwner, req.NetworkAddress, req.WalletAddress, slashing, req.Suspend) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - //utils.WriteGenerateStdTxResponse(w, cliCtx, req.BaseReq, []sdk.Msg{msg}) - } -} diff --git a/x/pot/genesis.go b/x/pot/genesis.go index d5f1fdef..dabff67c 100644 --- a/x/pot/genesis.go +++ b/x/pot/genesis.go @@ -3,6 +3,7 @@ package pot import ( "fmt" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stratosnet/stratos-chain/x/pot/keeper" @@ -13,7 +14,7 @@ import ( // and the keeper's address to pubkey map func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState) { keeper.SetParams(ctx, data.Params) - keeper.SetTotalMinedTokens(ctx, sdk.NewCoin(keeper.RewardDenom(ctx), sdk.NewInt(0))) + keeper.SetTotalMinedTokens(ctx, sdk.NewCoin(keeper.RewardDenom(ctx), sdkmath.NewInt(0))) keeper.SetLastDistributedEpoch(ctx, data.LastDistributedEpoch) for _, immatureTotal := range data.ImmatureTotalInfo { @@ -37,7 +38,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState if err != nil { panic("invliad wallet address when init genesis of PoT module") } - keeper.SetIndividualReward(ctx, walletAddr, data.LastDistributedEpoch.Add(sdk.NewInt(data.Params.MatureEpoch)), individual) + keeper.SetIndividualReward(ctx, walletAddr, data.LastDistributedEpoch.Add(sdkmath.NewInt(data.Params.MatureEpoch)), individual) } keeper.SetMaturedEpoch(ctx, data.MaturedEpoch) diff --git a/x/pot/handler.go b/x/pot/handler.go index 223e1886..275a7e66 100644 --- a/x/pot/handler.go +++ b/x/pot/handler.go @@ -3,6 +3,7 @@ package pot import ( "fmt" + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stratosnet/stratos-chain/x/pot/keeper" @@ -33,7 +34,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { return sdk.WrapServiceResult(ctx, res, err) default: errMsg := fmt.Sprintf("unrecognized %s message type: %T", types.ModuleName, msg) - return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) + return nil, errors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) } } } diff --git a/x/pot/keeper/distribute.go b/x/pot/keeper/distribute.go index edade691..380ee8a5 100644 --- a/x/pot/keeper/distribute.go +++ b/x/pot/keeper/distribute.go @@ -4,7 +4,9 @@ import ( "errors" "sort" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/stratosnet/stratos-chain/x/pot/types" @@ -16,19 +18,19 @@ var ( unissuedPrepayToFeeCollector sdk.Coin foundationToReward sdk.Coin unissuedPrepayToReward sdk.Coin - unissuedPrepayToCommunityPool sdk.Dec + unissuedPrepayToCommunityPool sdkmath.LegacyDec distributeGoal types.DistributeGoal rewardDetailMap map[string]types.Reward ) -func (k Keeper) DistributePotReward(ctx sdk.Context, trafficList []types.SingleWalletVolume, epoch sdk.Int) (err error) { +func (k Keeper) DistributePotReward(ctx sdk.Context, trafficList []types.SingleWalletVolume, epoch sdkmath.Int) (err error) { k.InitVariable(ctx) //1, calc traffic reward in total - totalConsumedNoz := k.GetTotalConsumedNoz(trafficList).ToDec() + totalConsumedNoz := k.GetTotalConsumedNoz(trafficList).ToLegacyDec() remaining, total := k.NozSupply(ctx) - if totalConsumedNoz.Add(remaining.ToDec()).GT(total.ToDec()) { + if totalConsumedNoz.Add(remaining.ToLegacyDec()).GT(total.ToLegacyDec()) { return errors.New("remaining+consumed Noz exceeds total Noz supply") } @@ -74,7 +76,7 @@ func (k Keeper) DistributePotReward(ctx sdk.Context, trafficList []types.SingleW } func (k Keeper) CalcTrafficRewardInTotal( - ctx sdk.Context, distributeGoal types.DistributeGoal, totalConsumedNoz sdk.Dec, + ctx sdk.Context, distributeGoal types.DistributeGoal, totalConsumedNoz sdkmath.LegacyDec, ) (types.DistributeGoal, error) { totalTrafficReward := k.GetTrafficReward(ctx, totalConsumedNoz) @@ -84,14 +86,14 @@ func (k Keeper) CalcTrafficRewardInTotal( return distributeGoal, err } stakeTrafficReward := totalTrafficReward. - Mul(miningParam.BlockChainPercentageInBp.ToDec()). - Quo(sdk.NewDec(10000)).TruncateInt() + Mul(miningParam.BlockChainPercentageInBp.ToLegacyDec()). + Quo(sdkmath.LegacyNewDec(10000)).TruncateInt() trafficRewardToResourceNodes := totalTrafficReward. - Mul(miningParam.ResourceNodePercentageInBp.ToDec()). - Quo(sdk.NewDec(10000)).TruncateInt() + Mul(miningParam.ResourceNodePercentageInBp.ToLegacyDec()). + Quo(sdkmath.LegacyNewDec(10000)).TruncateInt() trafficRewardToMetaNodes := totalTrafficReward. - Mul(miningParam.MetaNodePercentageInBp.ToDec()). - Quo(sdk.NewDec(10000)).TruncateInt() + Mul(miningParam.MetaNodePercentageInBp.ToLegacyDec()). + Quo(sdkmath.LegacyNewDec(10000)).TruncateInt() // all stake reward distribute to validators distributeGoal = distributeGoal.AddStakeTrafficRewardToValidator(sdk.NewCoin(k.BondDenom(ctx), stakeTrafficReward)) @@ -101,7 +103,7 @@ func (k Keeper) CalcTrafficRewardInTotal( return distributeGoal, nil } -// allocate mining reward from foundation account +// CalcMiningRewardInTotal allocate mining reward from foundation account func (k Keeper) CalcMiningRewardInTotal(ctx sdk.Context, distributeGoal types.DistributeGoal) (types.DistributeGoal, error) { totalMinedTokens := k.GetTotalMinedTokens(ctx) miningParam, err := k.GetMiningRewardParamByMinedToken(ctx, totalMinedTokens) @@ -110,15 +112,15 @@ func (k Keeper) CalcMiningRewardInTotal(ctx sdk.Context, distributeGoal types.Di if err != nil { return distributeGoal, err } - stakeMiningReward := totalMiningReward.Amount.ToDec(). - Mul(miningParam.BlockChainPercentageInBp.ToDec()). - Quo(sdk.NewDec(10000)).TruncateInt() - miningRewardToResourceNodes := totalMiningReward.Amount.ToDec(). - Mul(miningParam.ResourceNodePercentageInBp.ToDec()). - Quo(sdk.NewDec(10000)).TruncateInt() - miningRewardToMetaNodes := totalMiningReward.Amount.ToDec(). - Mul(miningParam.MetaNodePercentageInBp.ToDec()). - Quo(sdk.NewDec(10000)).TruncateInt() + stakeMiningReward := totalMiningReward.Amount.ToLegacyDec(). + Mul(miningParam.BlockChainPercentageInBp.ToLegacyDec()). + Quo(sdkmath.LegacyNewDec(10000)).TruncateInt() + miningRewardToResourceNodes := totalMiningReward.Amount.ToLegacyDec(). + Mul(miningParam.ResourceNodePercentageInBp.ToLegacyDec()). + Quo(sdkmath.LegacyNewDec(10000)).TruncateInt() + miningRewardToMetaNodes := totalMiningReward.Amount.ToLegacyDec(). + Mul(miningParam.MetaNodePercentageInBp.ToLegacyDec()). + Quo(sdkmath.LegacyNewDec(10000)).TruncateInt() // all stake reward distribute to validators distributeGoal = distributeGoal.AddStakeMiningRewardToValidator(sdk.NewCoin(k.RewardDenom(ctx), stakeMiningReward)) @@ -128,7 +130,7 @@ func (k Keeper) CalcMiningRewardInTotal(ctx sdk.Context, distributeGoal types.Di } // Iteration for each rewarded SDS node -func (k Keeper) saveRewardInfo(ctx sdk.Context, rewardDetailList []types.Reward, currentEpoch sdk.Int) (err error) { +func (k Keeper) saveRewardInfo(ctx sdk.Context, rewardDetailList []types.Reward, currentEpoch sdkmath.Int) (err error) { matureEpoch := k.getMatureEpochByCurrentEpoch(ctx, currentEpoch) for _, reward := range rewardDetailList { @@ -147,7 +149,7 @@ func (k Keeper) saveRewardInfo(ctx sdk.Context, rewardDetailList []types.Reward, return nil } -func (k Keeper) addNewIndividualAndUpdateImmatureTotal(ctx sdk.Context, account sdk.AccAddress, matureEpoch sdk.Int, newReward types.Reward) { +func (k Keeper) addNewIndividualAndUpdateImmatureTotal(ctx sdk.Context, account sdk.AccAddress, matureEpoch sdkmath.Int, newReward types.Reward) { newIndividualTotal := newReward.RewardFromMiningPool.Add(newReward.RewardFromTrafficPool...) oldImmatureTotal := k.GetImmatureTotalReward(ctx, account) newImmatureTotal := oldImmatureTotal.Add(newIndividualTotal...) @@ -157,15 +159,15 @@ func (k Keeper) addNewIndividualAndUpdateImmatureTotal(ctx sdk.Context, account } // reward will mature 14 days since distribution. Each epoch interval is about 10 minutes. -func (k Keeper) getMatureEpochByCurrentEpoch(ctx sdk.Context, currentEpoch sdk.Int) (matureEpoch sdk.Int) { +func (k Keeper) getMatureEpochByCurrentEpoch(ctx sdk.Context, currentEpoch sdkmath.Int) (matureEpoch sdkmath.Int) { // 14 days = 20160 minutes = 2016 epochs - paramMatureEpoch := sdk.NewInt(k.MatureEpoch(ctx)) + paramMatureEpoch := sdkmath.NewInt(k.MatureEpoch(ctx)) matureEpoch = paramMatureEpoch.Add(currentEpoch) return matureEpoch } -// Iteration for calculating reward of resource nodes -func (k Keeper) CalcRewardForResourceNode(ctx sdk.Context, totalConsumedNoz sdk.Dec, trafficList []types.SingleWalletVolume, +// CalcRewardForResourceNode Iteration for calculating reward of resource nodes +func (k Keeper) CalcRewardForResourceNode(ctx sdk.Context, totalConsumedNoz sdkmath.LegacyDec, trafficList []types.SingleWalletVolume, distributeGoal types.DistributeGoal, rewardDetailMap map[string]types.Reward, ) map[string]types.Reward { @@ -177,16 +179,16 @@ func (k Keeper) CalcRewardForResourceNode(ctx sdk.Context, totalConsumedNoz sdk. } trafficVolume := walletTraffic.Volume - shareOfTraffic := trafficVolume.ToDec().Quo(totalConsumedNoz) + shareOfTraffic := trafficVolume.ToLegacyDec().Quo(totalConsumedNoz) // mining reward for resource node miningReward := sdk.NewCoin(k.RewardDenom(ctx), - distributeGoal.MiningRewardToResourceNode.Amount.ToDec(). + distributeGoal.MiningRewardToResourceNode.Amount.ToLegacyDec(). Mul(shareOfTraffic). TruncateInt()) // traffic reward for resource node, need to pay community tax - trafficRewardBeforeTax := distributeGoal.TrafficRewardToResourceNode.Amount.ToDec(). + trafficRewardBeforeTax := distributeGoal.TrafficRewardToResourceNode.Amount.ToLegacyDec(). Mul(shareOfTraffic) trafficRewardAfterTax, tax := k.CalcCommunityTax(ctx, trafficRewardBeforeTax) @@ -212,7 +214,7 @@ func (k Keeper) CalcRewardForResourceNode(ctx sdk.Context, totalConsumedNoz sdk. return rewardDetailMap } -// Iteration for calculating reward of meta nodes +// CalcRewardForMetaNode Iteration for calculating reward of meta nodes func (k Keeper) CalcRewardForMetaNode(ctx sdk.Context, distributeGoalBalance types.DistributeGoal, rewardDetailMap map[string]types.Reward, ) map[string]types.Reward { @@ -234,13 +236,13 @@ func (k Keeper) CalcRewardForMetaNode(ctx sdk.Context, distributeGoalBalance typ // 1, calc mining reward for meta node (equally distributed) miningRewardToMetaNode := sdk.NewCoin(k.RewardDenom(ctx), - distributeGoalBalance.MiningRewardToMetaNode.Amount.ToDec(). - Quo(metaNodeCnt.ToDec()). + distributeGoalBalance.MiningRewardToMetaNode.Amount.ToLegacyDec(). + Quo(metaNodeCnt.ToLegacyDec()). TruncateInt()) // 2, calc traffic reward for meta node (equally distributed) - trafficRewardToMetaNode := distributeGoalBalance.TrafficRewardToMetaNode.Amount.ToDec(). - Quo(metaNodeCnt.ToDec()) + trafficRewardToMetaNode := distributeGoalBalance.TrafficRewardToMetaNode.Amount.ToLegacyDec(). + Quo(metaNodeCnt.ToLegacyDec()) // reward from traffic pool need to pay community tax rewardFromTrafficPoolAfterTax, tax := k.CalcCommunityTax(ctx, trafficRewardToMetaNode) @@ -267,9 +269,9 @@ func (k Keeper) CalcRewardForMetaNode(ctx sdk.Context, distributeGoalBalance typ return rewardDetailMap } -// Iteration for getting total consumed OZ from traffic -func (k Keeper) GetTotalConsumedNoz(trafficList []types.SingleWalletVolume) sdk.Int { - totalTraffic := sdk.ZeroInt() +// GetTotalConsumedNoz Iteration for getting total consumed OZ from traffic +func (k Keeper) GetTotalConsumedNoz(trafficList []types.SingleWalletVolume) sdkmath.Int { + totalTraffic := sdkmath.ZeroInt() for _, vol := range trafficList { toAdd := vol.Volume totalTraffic = totalTraffic.Add(toAdd) @@ -280,13 +282,13 @@ func (k Keeper) GetTotalConsumedNoz(trafficList []types.SingleWalletVolume) sdk. func (k Keeper) transferTokensForDistribution(ctx sdk.Context) error { // [TLC] [FoundationAccount -> feeCollectorPool] Transfer mining reward to fee_pool for validators - err := k.bankKeeper.SendCoinsFromModuleToModule(ctx, types.FoundationAccount, k.feeCollectorName, sdk.NewCoins(foundationToFeeCollector)) + err := k.bankKeeper.SendCoinsFromModuleToModule(ctx, types.FoundationAccount, authtypes.FeeCollectorName, sdk.NewCoins(foundationToFeeCollector)) if err != nil { return err } // [TLC] [TotalUnissuedPrepay -> feeCollectorPool] Transfer traffic reward to fee_pool for validators - err = k.bankKeeper.SendCoinsFromModuleToModule(ctx, regtypes.TotalUnissuedPrepay, k.feeCollectorName, sdk.NewCoins(unissuedPrepayToFeeCollector)) + err = k.bankKeeper.SendCoinsFromModuleToModule(ctx, regtypes.TotalUnissuedPrepay, authtypes.FeeCollectorName, sdk.NewCoins(unissuedPrepayToFeeCollector)) if err != nil { return err } @@ -330,16 +332,16 @@ func sortDetailMapToSlice(rewardDetailMap map[string]types.Reward) (rewardDetail } func (k Keeper) InitVariable(ctx sdk.Context) { - foundationToFeeCollector = sdk.NewCoin(k.RewardDenom(ctx), sdk.ZeroInt()) - unissuedPrepayToFeeCollector = sdk.NewCoin(k.BondDenom(ctx), sdk.ZeroInt()) - foundationToReward = sdk.NewCoin(k.RewardDenom(ctx), sdk.ZeroInt()) - unissuedPrepayToReward = sdk.NewCoin(k.BondDenom(ctx), sdk.ZeroInt()) - unissuedPrepayToCommunityPool = sdk.ZeroDec() + foundationToFeeCollector = sdk.NewCoin(k.RewardDenom(ctx), sdkmath.ZeroInt()) + unissuedPrepayToFeeCollector = sdk.NewCoin(k.BondDenom(ctx), sdkmath.ZeroInt()) + foundationToReward = sdk.NewCoin(k.RewardDenom(ctx), sdkmath.ZeroInt()) + unissuedPrepayToReward = sdk.NewCoin(k.BondDenom(ctx), sdkmath.ZeroInt()) + unissuedPrepayToCommunityPool = sdkmath.LegacyZeroDec() distributeGoal = types.InitDistributeGoal() rewardDetailMap = make(map[string]types.Reward) //key: wallet address } -func (k Keeper) CalcCommunityTax(ctx sdk.Context, rewardBeforeTax sdk.Dec) (reward sdk.Coin, tax sdk.Dec) { +func (k Keeper) CalcCommunityTax(ctx sdk.Context, rewardBeforeTax sdkmath.LegacyDec) (reward sdk.Coin, tax sdkmath.LegacyDec) { communityTax := k.GetCommunityTax(ctx) tax = rewardBeforeTax.Mul(communityTax) rewardAmt := rewardBeforeTax.Sub(tax).TruncateInt() diff --git a/x/pot/keeper/formula.go b/x/pot/keeper/formula.go index bfb0224f..94f1937f 100644 --- a/x/pot/keeper/formula.go +++ b/x/pot/keeper/formula.go @@ -3,66 +3,68 @@ package keeper import ( "fmt" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) +// GetTrafficReward // [S] is initial genesis deposit by all resource nodes and meta nodes at t=0 // The current unissued prepay Volume Pool [pt] is the total remaining prepay wei kept by Stratos Network but not issued to Resource Node as rewards. At time t=0, pt=0 // total consumed Ozone is [Y] // The remaining total Ozone limit [lt] is the upper bound of total Ozone that users can purchase from Stratos blockchain. // the total generated traffic rewards as [R] // R = (S + Pt) * Y / (Lt + Y) -func (k Keeper) GetTrafficReward(ctx sdk.Context, totalConsumedNoz sdk.Dec) (result sdk.Dec) { - St := k.registerKeeper.GetEffectiveTotalDeposit(ctx).ToDec() - if St.Equal(sdk.ZeroDec()) { +func (k Keeper) GetTrafficReward(ctx sdk.Context, totalConsumedNoz sdkmath.LegacyDec) (result sdkmath.LegacyDec) { + St := k.registerKeeper.GetEffectiveTotalDeposit(ctx).ToLegacyDec() + if St.Equal(sdkmath.LegacyZeroDec()) { ctx.Logger().Info("effective genesis deposit by all resource nodes and meta nodes is 0") } - Pt := k.registerKeeper.GetTotalUnissuedPrepay(ctx).Amount.ToDec() - if Pt.Equal(sdk.ZeroDec()) { + Pt := k.registerKeeper.GetTotalUnissuedPrepay(ctx).Amount.ToLegacyDec() + if Pt.Equal(sdkmath.LegacyZeroDec()) { ctx.Logger().Info("total remaining prepay not issued is 0") } Y := totalConsumedNoz - if Y.Equal(sdk.ZeroDec()) { + if Y.Equal(sdkmath.LegacyZeroDec()) { ctx.Logger().Info("total consumed noz is 0") } - Lt := k.registerKeeper.GetRemainingOzoneLimit(ctx).ToDec() - if Lt.Equal(sdk.ZeroDec()) { + Lt := k.registerKeeper.GetRemainingOzoneLimit(ctx).ToLegacyDec() + if Lt.Equal(sdkmath.LegacyZeroDec()) { ctx.Logger().Info("remaining total noz limit is 0") } R := St.Add(Pt).Mul(Y).Quo(Lt.Add(Y)) - if R.Equal(sdk.ZeroDec()) { + if R.Equal(sdkmath.LegacyZeroDec()) { ctx.Logger().Info("traffic reward to distribute is 0") } return R } -func (k Keeper) GetPrepayAmount(Lt, tokenAmount, St, Pt sdk.Int) (purchaseNoz, remainingNoz sdk.Int, err error) { - purchaseNoz = Lt.ToDec(). - Mul(tokenAmount.ToDec()). +func (k Keeper) GetPrepayAmount(Lt, tokenAmount, St, Pt sdkmath.Int) (purchaseNoz, remainingNoz sdkmath.Int, err error) { + purchaseNoz = Lt.ToLegacyDec(). + Mul(tokenAmount.ToLegacyDec()). Quo((St. Add(Pt). - Add(tokenAmount)).ToDec()). + Add(tokenAmount)).ToLegacyDec()). TruncateInt() if purchaseNoz.GT(Lt) { - return sdk.ZeroInt(), sdk.ZeroInt(), fmt.Errorf("not enough remaining ozone limit to complete prepay") + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), fmt.Errorf("not enough remaining ozone limit to complete prepay") } remainingNoz = Lt.Sub(purchaseNoz) return purchaseNoz, remainingNoz, nil } -func (k Keeper) GetCurrentNozPrice(St, Pt, Lt sdk.Int) (currentNozPrice sdk.Dec) { - currentNozPrice = (St.Add(Pt)).ToDec(). - Quo(Lt.ToDec()) +func (k Keeper) GetCurrentNozPrice(St, Pt, Lt sdkmath.Int) (currentNozPrice sdkmath.LegacyDec) { + currentNozPrice = (St.Add(Pt)).ToLegacyDec(). + Quo(Lt.ToLegacyDec()) return } // NozSupply calc remaining/total supply for noz -func (k Keeper) NozSupply(ctx sdk.Context) (remaining, total sdk.Int) { +func (k Keeper) NozSupply(ctx sdk.Context) (remaining, total sdkmath.Int) { remaining = k.registerKeeper.GetRemainingOzoneLimit(ctx) // Lt depositNozRate := k.registerKeeper.GetDepositNozRate(ctx) St := k.registerKeeper.GetEffectiveTotalDeposit(ctx) - total = St.ToDec().Quo(depositNozRate).TruncateInt() + total = St.ToLegacyDec().Quo(depositNozRate).TruncateInt() return remaining, total } diff --git a/x/pot/keeper/grpc_query.go b/x/pot/keeper/grpc_query.go index e1d33cd2..a972196a 100644 --- a/x/pot/keeper/grpc_query.go +++ b/x/pot/keeper/grpc_query.go @@ -7,6 +7,7 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/store/prefix" storetypes "github.com/cosmos/cosmos-sdk/store/types" @@ -38,11 +39,11 @@ func (q Querier) VolumeReport(c context.Context, req *types.QueryVolumeReportReq epochInt64 := req.GetEpoch() - if sdk.NewInt(epochInt64).LTE(sdk.ZeroInt()) { + if sdkmath.NewInt(epochInt64).LTE(sdkmath.ZeroInt()) { return &types.QueryVolumeReportResponse{}, status.Error(codes.InvalidArgument, "epoch should be positive value") } - epoch := sdk.NewInt(epochInt64) + epoch := sdkmath.NewInt(epochInt64) ctx := sdk.UnwrapSDKContext(c) height := ctx.BlockHeight() @@ -64,9 +65,9 @@ func (q Querier) RewardsByEpoch(c context.Context, req *types.QueryRewardsByEpoc return &types.QueryRewardsByEpochResponse{}, status.Errorf(codes.InvalidArgument, "empty request") } - queryEpoch := sdk.NewInt(req.GetEpoch()) + queryEpoch := sdkmath.NewInt(req.GetEpoch()) - if queryEpoch.LTE(sdk.ZeroInt()) { + if queryEpoch.LTE(sdkmath.ZeroInt()) { return &types.QueryRewardsByEpochResponse{}, status.Error(codes.InvalidArgument, "epoch cannot be equal to or lower than 0") } @@ -77,7 +78,7 @@ func (q Querier) RewardsByEpoch(c context.Context, req *types.QueryRewardsByEpoc ctx := sdk.UnwrapSDKContext(c) - matureEpoch := queryEpoch.Add(sdk.NewInt(q.MatureEpoch(ctx))) + matureEpoch := queryEpoch.Add(sdkmath.NewInt(q.MatureEpoch(ctx))) var res []*types.Reward store := ctx.KVStore(q.storeKey) @@ -388,10 +389,10 @@ func (q Querier) TotalRewardByEpoch(c context.Context, req *types.QueryTotalRewa } epochInt64 := req.GetEpoch() - if sdk.NewInt(epochInt64).LTE(sdk.ZeroInt()) { + if sdkmath.NewInt(epochInt64).LTE(sdkmath.ZeroInt()) { return &types.QueryTotalRewardByEpochResponse{}, status.Error(codes.InvalidArgument, "epoch should be positive value") } - epoch := sdk.NewInt(epochInt64) + epoch := sdkmath.NewInt(epochInt64) ctx := sdk.UnwrapSDKContext(c) diff --git a/x/pot/keeper/keeper.go b/x/pot/keeper/keeper.go index ad8ddd57..40e99651 100644 --- a/x/pot/keeper/keeper.go +++ b/x/pot/keeper/keeper.go @@ -3,19 +3,21 @@ package keeper import ( "context" "encoding/hex" - "errors" - "fmt" "math" + "github.com/cometbft/cometbft/libs/log" + + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/config" "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/tendermint/tendermint/libs/log" stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/pot/types" @@ -24,43 +26,51 @@ import ( // Keeper of the pot store type Keeper struct { - storeKey sdk.StoreKey - cdc codec.Codec - paramSpace paramstypes.Subspace - feeCollectorName string // name of the FeeCollector ModuleAccount - bankKeeper types.BankKeeper - accountKeeper types.AccountKeeper - stakingKeeper types.StakingKeeper - registerKeeper types.RegisterKeeper - distrKeeper types.DistrKeeper + storeKey storetypes.StoreKey + cdc codec.Codec + paramSpace paramstypes.Subspace + accountKeeper types.AccountKeeper + bankKeeper types.BankKeeper + distrKeeper types.DistrKeeper + registerKeeper types.RegisterKeeper + stakingKeeper types.StakingKeeper + + // the address capable of executing a MsgUpdateParams message. Typically, this + // should be the x/gov module account. + authority string } // NewKeeper creates a pot keeper -func NewKeeper(cdc codec.Codec, key sdk.StoreKey, paramSpace paramstypes.Subspace, feeCollectorName string, - bankKeeper types.BankKeeper, accountKeeper types.AccountKeeper, stakingKeeper types.StakingKeeper, - registerKeeper types.RegisterKeeper, distrKeeper types.DistrKeeper, +func NewKeeper( + cdc codec.Codec, + key storetypes.StoreKey, + accountKeeper types.AccountKeeper, + bankKeeper types.BankKeeper, + distrKeeper types.DistrKeeper, + registerKeeper types.RegisterKeeper, + stakingKeeper types.StakingKeeper, + authority string, ) Keeper { keeper := Keeper{ - cdc: cdc, - storeKey: key, - paramSpace: paramSpace.WithKeyTable(types.ParamKeyTable()), - feeCollectorName: feeCollectorName, - bankKeeper: bankKeeper, - accountKeeper: accountKeeper, - stakingKeeper: stakingKeeper, - registerKeeper: registerKeeper, - distrKeeper: distrKeeper, + cdc: cdc, + storeKey: key, + accountKeeper: accountKeeper, + bankKeeper: bankKeeper, + distrKeeper: distrKeeper, + registerKeeper: registerKeeper, + stakingKeeper: stakingKeeper, + authority: authority, } return keeper } // Logger returns a module-specific logger. func (k Keeper) Logger(ctx sdk.Context) log.Logger { - return ctx.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName)) + return ctx.Logger().With("module", "x/"+types.ModuleName) } func (k Keeper) VolumeReport(ctx sdk.Context, walletVolumes types.WalletVolumes, reporter stratos.SdsAddress, - epoch sdk.Int, reportReference string, txHash string) (err error) { + epoch sdkmath.Int, reportReference string, txHash string) (err error) { //record volume report reportRecord := types.NewReportRecord(reporter, reportReference, txHash) @@ -95,8 +105,8 @@ func (k Keeper) SafeMintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) denom := k.BondDenom(ctx) communityPollBalance := k.distrKeeper.GetFeePool(ctx).CommunityPool availableCoinsCommunity := communityPollBalance.AmountOf(denom) - if amt.AmountOf(denom).ToDec().GT(availableCoinsCommunity) { - return errors.New("minting not completed because total supply cap is hit") + if amt.AmountOf(denom).ToLegacyDec().GT(availableCoinsCommunity) { + return types.ErrTotalSupplyCapHit } return k.bankKeeper.MintCoins(ctx, moduleName, amt) } @@ -104,14 +114,14 @@ func (k Keeper) SafeMintCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) func (k Keeper) safeBurnCoinsFromCommunityPool(ctx sdk.Context, coins sdk.Coins) error { communityPoolBalance := k.distrKeeper.GetFeePool(ctx).CommunityPool //ctx.Logger().Info("------communityPoolBalance is " + communityPoolBalance.String()) - if communityPoolBalance.AmountOf(k.BondDenom(ctx)).GTE(coins.AmountOf(k.BondDenom(ctx)).ToDec()) { + if communityPoolBalance.AmountOf(k.BondDenom(ctx)).GTE(coins.AmountOf(k.BondDenom(ctx)).ToLegacyDec()) { k.bankKeeper.BurnCoins(ctx, distrtypes.ModuleName, coins) return nil } - return errors.New("burning not completed as a result of insufficient balance in community pool") + return types.ErrInsufficientCommunityPool } -// Restore total supply to 100M stos +// RestoreTotalSupply Restore total supply to 100M stos func (k Keeper) RestoreTotalSupply(ctx sdk.Context) (minted, burned sdk.Coins) { InitialTotalSupply := k.InitialTotalSupply(ctx).Amount currentTotalSupply := k.bankKeeper.GetSupply(ctx, k.BondDenom(ctx)).Amount @@ -121,7 +131,7 @@ func (k Keeper) RestoreTotalSupply(ctx sdk.Context) (minted, burned sdk.Coins) { return sdk.Coins{}, sdk.Coins{} } supplyDiff := currentTotalSupply.Sub(InitialTotalSupply) - if supplyDiff.GT(sdk.ZeroInt()) { + if supplyDiff.GT(sdkmath.ZeroInt()) { // burn surplus if currentTotalSupply > InitialTotalSupply amtToBurn := supplyDiff coinToBurn := sdk.NewCoin(k.BondDenom(ctx), amtToBurn) @@ -186,7 +196,7 @@ func (k Keeper) GetCirculationSupply(ctx sdk.Context) (circulationSupply sdk.Coi return } -func (k Keeper) GetTotalReward(ctx sdk.Context, epoch sdk.Int) (totalReward types.TotalReward) { +func (k Keeper) GetTotalReward(ctx sdk.Context, epoch sdkmath.Int) (totalReward types.TotalReward) { volumeReport := k.GetVolumeReport(ctx, epoch) if volumeReport == (types.VolumeReportRecord{}) { @@ -216,17 +226,17 @@ func (k Keeper) GetTotalReward(ctx sdk.Context, epoch sdk.Int) (totalReward type senderAddr := k.accountKeeper.GetModuleAddress(registertypes.TotalUnissuedPrepay) if senderAddr == nil { - panic(sdkerrors.Wrapf(sdkerrors.ErrUnknownAddress, "module account %s does not exist", registertypes.TotalUnissuedPrepay)) + panic(errors.Wrapf(sdkerrors.ErrUnknownAddress, "module account %s does not exist", registertypes.TotalUnissuedPrepay)) } - trafficReward := sdk.NewCoin(k.BondDenom(ctx), sdk.ZeroInt()) + trafficReward := sdk.NewCoin(k.BondDenom(ctx), sdkmath.ZeroInt()) txEvents := resTx.TxResult.GetEvents() for _, event := range txEvents { if event.Type == "coin_received" { attributes := event.GetAttributes() for _, attr := range attributes { - if string(attr.GetKey()) == "amount" { - received, err := sdk.ParseCoinNormalized(string(attr.GetValue())) + if attr.GetKey() == "amount" { + received, err := sdk.ParseCoinNormalized(attr.GetValue()) if err != nil { continue } @@ -235,7 +245,7 @@ func (k Keeper) GetTotalReward(ctx sdk.Context, epoch sdk.Int) (totalReward type } } } - miningReward := sdk.NewCoin(types.DefaultRewardDenom, sdk.NewInt(80).MulRaw(stratos.StosToWei)) + miningReward := sdk.NewCoin(types.DefaultRewardDenom, sdkmath.NewInt(80).MulRaw(stratos.StosToWei)) trafficReward = trafficReward.Sub(miningReward) totalReward = types.TotalReward{ MiningReward: sdk.NewCoins(miningReward), diff --git a/x/pot/keeper/mature.go b/x/pot/keeper/mature.go index f4a97a26..81edec9e 100644 --- a/x/pot/keeper/mature.go +++ b/x/pot/keeper/mature.go @@ -1,6 +1,7 @@ package keeper import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stratosnet/stratos-chain/x/pot/types" @@ -16,7 +17,7 @@ func (k Keeper) RewardMatureAndSubSlashing(ctx sdk.Context) error { maturedEpoch := k.GetMaturedEpoch(ctx) // The first batch of reward is matured from the value of mature_epoch(param) + 1 if maturedEpoch.IsZero() { - maturedEpoch = sdk.NewInt(k.MatureEpoch(ctx)) + maturedEpoch = sdkmath.NewInt(k.MatureEpoch(ctx)) k.SetMaturedEpoch(ctx, maturedEpoch) } @@ -31,7 +32,7 @@ func (k Keeper) RewardMatureAndSubSlashing(ctx sdk.Context) error { processCount := 1 for i := matureStartEpochOffset; i <= matureEndEpochOffset; i++ { - processingEpoch := sdk.NewInt(i).Add(maturedEpoch) + processingEpoch := sdkmath.NewInt(i).Add(maturedEpoch) totalSlashed := sdk.Coins{} isBreak := true @@ -54,7 +55,7 @@ func (k Keeper) RewardMatureAndSubSlashing(ctx sdk.Context) error { totalSlashed = totalSlashed.Add(deducted...) matureTotal := oldMatureTotal.Add(remaining...) - immatureTotal := oldImmatureTotal.Sub(immatureToMature) + immatureTotal := oldImmatureTotal.Sub(immatureToMature...) processCount++ diff --git a/x/pot/keeper/msg_server.go b/x/pot/keeper/msg_server.go index ed9cd722..0a0076bc 100644 --- a/x/pot/keeper/msg_server.go +++ b/x/pot/keeper/msg_server.go @@ -7,12 +7,13 @@ import ( "fmt" "strconv" - "github.com/tendermint/tendermint/crypto/tmhash" + "github.com/cometbft/cometbft/crypto/tmhash" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/bech32" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stratosnet/stratos-chain/crypto" "github.com/stratosnet/stratos-chain/crypto/bls" @@ -36,11 +37,11 @@ func (k msgServer) HandleMsgVolumeReport(goCtx context.Context, msg *types.MsgVo ctx := sdk.UnwrapSDKContext(goCtx) reporter, err := stratos.SdsAddressFromBech32(msg.Reporter) if err != nil { - return &types.MsgVolumeReportResponse{}, sdkerrors.Wrap(types.ErrReporterAddress, err.Error()) + return &types.MsgVolumeReportResponse{}, errors.Wrap(types.ErrReporterAddress, err.Error()) } reporterOwner, err := sdk.AccAddressFromBech32(msg.ReporterOwner) if err != nil { - return &types.MsgVolumeReportResponse{}, sdkerrors.Wrap(types.ErrReporterOwnerAddr, err.Error()) + return &types.MsgVolumeReportResponse{}, errors.Wrap(types.ErrReporterOwnerAddr, err.Error()) } if !(k.registerKeeper.OwnMetaNode(ctx, reporterOwner, reporter)) { @@ -48,13 +49,13 @@ func (k msgServer) HandleMsgVolumeReport(goCtx context.Context, msg *types.MsgVo } // ensure epoch increment - epoch, ok := sdk.NewIntFromString(msg.Epoch.String()) + epoch, ok := sdkmath.NewIntFromString(msg.Epoch.String()) if !ok { return &types.MsgVolumeReportResponse{}, types.ErrInvalid } lastDistributedEpoch := k.GetLastDistributedEpoch(ctx) if msg.Epoch.LTE(lastDistributedEpoch) { - e := sdkerrors.Wrapf(types.ErrMatureEpoch, "expected epoch should be greater than %s, got %s", + e := errors.Wrapf(types.ErrMatureEpoch, "expected epoch should be greater than %s, got %s", lastDistributedEpoch.String(), msg.Epoch.String()) return &types.MsgVolumeReportResponse{}, e } @@ -71,7 +72,7 @@ func (k msgServer) HandleMsgVolumeReport(goCtx context.Context, msg *types.MsgVo // verify blsSignature verified, err := bls.Verify(blsSignature.GetTxData(), blsSignature.GetSignature(), blsSignature.GetPubKeys()...) if err != nil { - return &types.MsgVolumeReportResponse{}, sdkerrors.Wrap(types.ErrBLSVerifyFailed, err.Error()) + return &types.MsgVolumeReportResponse{}, errors.Wrap(types.ErrBLSVerifyFailed, err.Error()) } if !verified { return &types.MsgVolumeReportResponse{}, types.ErrBLSVerifyFailed @@ -88,7 +89,7 @@ func (k msgServer) HandleMsgVolumeReport(goCtx context.Context, msg *types.MsgVo err = k.VolumeReport(ctx, walletVolumes, reporter, epoch, msg.ReportReference, txhash) if err != nil { - return nil, sdkerrors.Wrap(types.ErrVolumeReport, err.Error()) + return nil, errors.Wrap(types.ErrVolumeReport, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -111,15 +112,15 @@ func (k msgServer) HandleMsgWithdraw(goCtx context.Context, msg *types.MsgWithdr ctx := sdk.UnwrapSDKContext(goCtx) walletAddress, err := sdk.AccAddressFromBech32(msg.WalletAddress) if err != nil { - return &types.MsgWithdrawResponse{}, sdkerrors.Wrap(types.ErrInvalidAddress, err.Error()) + return &types.MsgWithdrawResponse{}, errors.Wrap(types.ErrInvalidAddress, err.Error()) } targetAddress, err := sdk.AccAddressFromBech32(msg.TargetAddress) if err != nil { - return &types.MsgWithdrawResponse{}, sdkerrors.Wrap(types.ErrInvalidAddress, err.Error()) + return &types.MsgWithdrawResponse{}, errors.Wrap(types.ErrInvalidAddress, err.Error()) } err = k.Withdraw(ctx, msg.Amount, walletAddress, targetAddress) if err != nil { - return &types.MsgWithdrawResponse{}, sdkerrors.Wrap(types.ErrWithdrawFailure, err.Error()) + return &types.MsgWithdrawResponse{}, errors.Wrap(types.ErrWithdrawFailure, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -142,12 +143,12 @@ func (k msgServer) HandleMsgLegacyWithdraw(goCtx context.Context, msg *types.Msg targetAddress, err := sdk.AccAddressFromBech32(msg.TargetAddress) if err != nil { - return &types.MsgLegacyWithdrawResponse{}, sdkerrors.Wrap(types.ErrInvalidAddress, err.Error()) + return &types.MsgLegacyWithdrawResponse{}, errors.Wrap(types.ErrInvalidAddress, err.Error()) } fromAddress, err := sdk.AccAddressFromBech32(msg.From) if err != nil { - return &types.MsgLegacyWithdrawResponse{}, sdkerrors.Wrap(types.ErrInvalidAddress, err.Error()) + return &types.MsgLegacyWithdrawResponse{}, errors.Wrap(types.ErrInvalidAddress, err.Error()) } fromAcc := k.accountKeeper.GetAccount(ctx, fromAddress) @@ -157,12 +158,12 @@ func (k msgServer) HandleMsgLegacyWithdraw(goCtx context.Context, msg *types.Msg legacyWalletAddrStr, err := bech32.ConvertAndEncode(stratos.AccountAddressPrefix, legacyWalletAddress.Bytes()) if err != nil { - return &types.MsgLegacyWithdrawResponse{}, sdkerrors.Wrap(types.ErrLegacyWithdrawFailure, err.Error()) + return &types.MsgLegacyWithdrawResponse{}, errors.Wrap(types.ErrLegacyWithdrawFailure, err.Error()) } err = k.Withdraw(ctx, msg.Amount, legacyWalletAddress, targetAddress) if err != nil { - return &types.MsgLegacyWithdrawResponse{}, sdkerrors.Wrap(types.ErrLegacyWithdrawFailure, err.Error()) + return &types.MsgLegacyWithdrawResponse{}, errors.Wrap(types.ErrLegacyWithdrawFailure, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -184,11 +185,11 @@ func (k msgServer) HandleMsgFoundationDeposit(goCtx context.Context, msg *types. ctx := sdk.UnwrapSDKContext(goCtx) from, err := sdk.AccAddressFromBech32(msg.From) if err != nil { - return &types.MsgFoundationDepositResponse{}, sdkerrors.Wrap(types.ErrInvalidAddress, err.Error()) + return &types.MsgFoundationDepositResponse{}, errors.Wrap(types.ErrInvalidAddress, err.Error()) } err = k.FoundationDeposit(ctx, msg.Amount, from) if err != nil { - return &types.MsgFoundationDepositResponse{}, sdkerrors.Wrap(types.ErrFoundationDepositFailure, err.Error()) + return &types.MsgFoundationDepositResponse{}, errors.Wrap(types.ErrFoundationDepositFailure, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -215,11 +216,11 @@ func (k msgServer) HandleMsgSlashingResourceNode(goCtx context.Context, msg *typ for idx, reporter := range msg.Reporters { reporterSdsAddr, err := stratos.SdsAddressFromBech32(reporter) if err != nil { - return &types.MsgSlashingResourceNodeResponse{}, sdkerrors.Wrap(types.ErrReporterAddress, err.Error()) + return &types.MsgSlashingResourceNodeResponse{}, errors.Wrap(types.ErrReporterAddress, err.Error()) } ownerAddr, err := sdk.AccAddressFromBech32(reporterOwners[idx]) if err != nil { - return &types.MsgSlashingResourceNodeResponse{}, sdkerrors.Wrap(types.ErrReporterOwnerAddr, err.Error()) + return &types.MsgSlashingResourceNodeResponse{}, errors.Wrap(types.ErrReporterOwnerAddr, err.Error()) } if !(k.registerKeeper.OwnMetaNode(ctx, ownerAddr, reporterSdsAddr)) { @@ -228,20 +229,20 @@ func (k msgServer) HandleMsgSlashingResourceNode(goCtx context.Context, msg *typ } networkAddress, err := stratos.SdsAddressFromBech32(msg.NetworkAddress) if err != nil { - return &types.MsgSlashingResourceNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidAddress, err.Error()) + return &types.MsgSlashingResourceNodeResponse{}, errors.Wrap(types.ErrInvalidAddress, err.Error()) } walletAddress, err := sdk.AccAddressFromBech32(msg.WalletAddress) if err != nil { - return &types.MsgSlashingResourceNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidAddress, err.Error()) + return &types.MsgSlashingResourceNodeResponse{}, errors.Wrap(types.ErrInvalidAddress, err.Error()) } - nozAmt, ok := sdk.NewIntFromString(msg.Slashing.String()) + nozAmt, ok := sdkmath.NewIntFromString(msg.Slashing.String()) if !ok { return &types.MsgSlashingResourceNodeResponse{}, types.ErrInvalidAmount } tokenAmt, nodeType, err := k.SlashingResourceNode(ctx, networkAddress, walletAddress, nozAmt, msg.Suspend) if err != nil { - return &types.MsgSlashingResourceNodeResponse{}, sdkerrors.Wrap(types.ErrSlashingResourceNodeFailure, err.Error()) + return &types.MsgSlashingResourceNodeResponse{}, errors.Wrap(types.ErrSlashingResourceNodeFailure, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ sdk.NewEvent( diff --git a/x/pot/keeper/params.go b/x/pot/keeper/params.go index c4bfbea7..7cc9443e 100644 --- a/x/pot/keeper/params.go +++ b/x/pot/keeper/params.go @@ -1,6 +1,7 @@ package keeper import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stratosnet/stratos-chain/x/pot/types" @@ -48,7 +49,7 @@ func (k Keeper) GetMiningRewardParamByMinedToken(ctx sdk.Context, minedToken sdk return miningRewardParams[len(miningRewardParams)-1], types.ErrOutOfIssuance } -func (k Keeper) GetCommunityTax(ctx sdk.Context) (res sdk.Dec) { +func (k Keeper) GetCommunityTax(ctx sdk.Context) (res sdkmath.LegacyDec) { k.paramSpace.Get(ctx, types.KeyCommunityTax, &res) return } diff --git a/x/pot/keeper/querier.go b/x/pot/keeper/querier.go deleted file mode 100644 index 585407e8..00000000 --- a/x/pot/keeper/querier.go +++ /dev/null @@ -1,196 +0,0 @@ -package keeper - -import ( - "fmt" - "strconv" - - abci "github.com/tendermint/tendermint/abci/types" - - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - "github.com/stratosnet/stratos-chain/client" - "github.com/stratosnet/stratos-chain/x/pot/types" -) - -// NewQuerier creates a new querier for pot clients. -func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return func(ctx sdk.Context, path []string, req abci.RequestQuery) ([]byte, error) { - switch path[0] { - case types.QueryVolumeReport: - return queryVolumeReport(ctx, req, k, legacyQuerierCdc) - case types.QueryIndividualRewardsByReportEpoch: - return queryIndividualRewardsByReportEpoch(ctx, req, k, legacyQuerierCdc) - case types.QueryRewardsByWalletAddr: - return queryRewardsByWalletAddress(ctx, req, k, legacyQuerierCdc) - case types.QuerySlashingByWalletAddr: - return querySlashingByWalletAddress(ctx, req, k, legacyQuerierCdc) - case types.QueryPotParams: - return getPotParams(ctx, req, k, legacyQuerierCdc) - case types.QueryTotalMinedToken: - return getTotalMinedToken(ctx, req, k, legacyQuerierCdc) - case types.QueryCirculationSupply: - return getCirculationSupply(ctx, req, k, legacyQuerierCdc) - case types.QueryTotalRewardByEpoch: - return getTotalRewardByEpoch(ctx, req, k, legacyQuerierCdc) - default: - return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "unknown pot query endpoint") - } - } -} - -func getPotParams(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - params := k.GetParams(ctx) - res, err := codec.MarshalJSONIndent(legacyQuerierCdc, params) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - - return res, nil -} - -// queryVolumeReport fetches a hash of report volume for the supplied epoch. -func queryVolumeReport(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - epoch, err := strconv.ParseInt(string(req.Data), 10, 64) - if err != nil { - return []byte{}, err - } - - reportRecord := k.GetVolumeReport(ctx, sdk.NewInt(epoch)) - if reportRecord.TxHash == "" { - e := sdkerrors.Wrapf(types.ErrCannotFindReport, - fmt.Sprintf("no volume report found at epoch %d. Current epoch is %s", - epoch, k.GetLastDistributedEpoch(ctx).String())) - return []byte{}, e - } - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, reportRecord) - if err != nil { - return []byte{}, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return bz, nil -} - -// queryPotRewardsByReportEpoch fetches individual rewards from traffic and mining pool. -func queryIndividualRewardsByReportEpoch(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - var params types.QueryIndividualRewardsByReportEpochParams - err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return []byte{}, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - potEpochRewards := k.getIndividualRewardsByReportEpoch(ctx, params) - if len(potEpochRewards) < 1 { - e := sdkerrors.Wrapf(types.ErrCannotFindReward, fmt.Sprintf("no Pot rewards information at epoch %s", params.Epoch.String())) - return []byte{}, e - } - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, potEpochRewards) - if err != nil { - return []byte{}, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return bz, nil -} - -func (k Keeper) getIndividualRewardsByReportEpoch(ctx sdk.Context, params types.QueryIndividualRewardsByReportEpochParams) (res []types.Reward) { - matureEpoch := params.Epoch.Add(sdk.NewInt(k.MatureEpoch(ctx))) - - start, end := client.Paginate(params.Page, params.Limit, types.QueryDefaultLimit) - if start < 0 || end < 0 { - return nil - } - - index := 0 - k.IteratorIndividualReward(ctx, matureEpoch, func(walletAddress sdk.AccAddress, individualReward types.Reward) (stop bool) { - if !((individualReward.RewardFromMiningPool.Empty() || individualReward.RewardFromMiningPool.IsZero()) && - (individualReward.RewardFromTrafficPool.Empty() || individualReward.RewardFromTrafficPool.IsZero())) { - if index >= end { - return true - } - if index >= start && index < end { - res = append(res, individualReward) - } - index++ - } - return false - }) - - return res -} - -// When param "Epoch" not exists: Returns wallet_address, mature_total & immature_total -// When Param "Epoch" exists: Returns walletAddress & individual_reward at that epoch -func queryRewardsByWalletAddress(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - var params types.QueryRewardsByWalletAddrParams - err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) - } - - // param epoch exists - if !params.Epoch.Equal(sdk.ZeroInt()) { - matureEpoch := params.Epoch.Add(sdk.NewInt(k.MatureEpoch(ctx))) - rewardsByByWalletAddressAndEpoch, found := k.GetIndividualReward(ctx, params.WalletAddr, matureEpoch) - if !found { - e := sdkerrors.Wrapf(types.ErrCannotFindReward, fmt.Sprintf("no Pot rewards information at epoch %s", params.Epoch.String())) - return []byte{}, e - } - - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, rewardsByByWalletAddressAndEpoch) - if err != nil { - return []byte{}, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return bz, nil - } - - // param epoch not exists - immatureTotalReward := k.GetImmatureTotalReward(ctx, params.WalletAddr) - matureTotalReward := k.GetMatureTotalReward(ctx, params.WalletAddr) - reward := types.NewRewardInfo(params.WalletAddr, matureTotalReward, immatureTotalReward) - - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, reward) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return bz, nil -} - -func querySlashingByWalletAddress(ctx sdk.Context, req abci.RequestQuery, k Keeper, _ *codec.LegacyAmino) ([]byte, error) { - addr, err := sdk.AccAddressFromBech32(string(req.Data)) - if err != nil { - return []byte(sdk.ZeroInt().String()), types.ErrUnknownAccountAddress - } - - return []byte(k.registerKeeper.GetSlashing(ctx, addr).String()), nil -} - -func getTotalMinedToken(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - totalMinedToken := k.GetTotalMinedTokens(ctx) - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, totalMinedToken) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return bz, nil -} - -func getCirculationSupply(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - circulationSupply := k.GetCirculationSupply(ctx) - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, circulationSupply) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return bz, nil -} - -func getTotalRewardByEpoch(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - var params types.QueryTotalRewardByEpochParams - err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return []byte{}, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - totalReward := k.GetTotalReward(ctx, params.Epoch) - - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, totalReward) - if err != nil { - return []byte{}, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return bz, nil -} diff --git a/x/pot/keeper/slashing.go b/x/pot/keeper/slashing.go index 9f379b6e..25c54330 100644 --- a/x/pot/keeper/slashing.go +++ b/x/pot/keeper/slashing.go @@ -1,13 +1,16 @@ package keeper import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" + stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/pot/types" registertypes "github.com/stratosnet/stratos-chain/x/register/types" ) /* +SlashingResourceNode This function only record slashing amount. Deduct slashing amount when: @@ -16,11 +19,11 @@ Deduct slashing amount when: 3, resource node decrease deposit . */ func (k Keeper) SlashingResourceNode(ctx sdk.Context, p2pAddr stratos.SdsAddress, walletAddr sdk.AccAddress, - nozAmt sdk.Int, suspend bool) (tokenAmt sdk.Int, nodeType registertypes.NodeType, err error) { + nozAmt sdkmath.Int, suspend bool) (tokenAmt sdkmath.Int, nodeType registertypes.NodeType, err error) { node, ok := k.registerKeeper.GetResourceNode(ctx, p2pAddr) if !ok { - return sdk.ZeroInt(), registertypes.NodeType(0), registertypes.ErrNoResourceNodeFound + return sdkmath.ZeroInt(), registertypes.NodeType(0), registertypes.ErrNoResourceNodeFound } toBeSuspended := node.Suspend == false && suspend == true node.Suspend = suspend @@ -30,7 +33,7 @@ func (k Keeper) SlashingResourceNode(ctx sdk.Context, p2pAddr stratos.SdsAddress WalletAddress: node.OwnerAddress, Volume: nozAmt, }} - totalConsumedNoz := k.GetTotalConsumedNoz(trafficList).ToDec() + totalConsumedNoz := k.GetTotalConsumedNoz(trafficList).ToLegacyDec() slashTokenAmt := k.GetTrafficReward(ctx, totalConsumedNoz) oldSlashing := k.registerKeeper.GetSlashing(ctx, walletAddr) @@ -40,8 +43,8 @@ func (k Keeper) SlashingResourceNode(ctx sdk.Context, p2pAddr stratos.SdsAddress // directly change oz limit while node being suspended if toBeSuspended { - effectiveDepositChange := sdk.ZeroInt().Sub(node.EffectiveTokens) - node.EffectiveTokens = sdk.ZeroInt() + effectiveDepositChange := sdkmath.ZeroInt().Sub(node.EffectiveTokens) + node.EffectiveTokens = sdkmath.ZeroInt() k.registerKeeper.DecreaseOzoneLimitBySubtractDeposit(ctx, effectiveDepositChange.Abs()) } diff --git a/x/pot/keeper/store.go b/x/pot/keeper/store.go index bb488f37..2cdecd21 100644 --- a/x/pot/keeper/store.go +++ b/x/pot/keeper/store.go @@ -1,8 +1,9 @@ package keeper import ( - db "github.com/tendermint/tm-db" + db "github.com/cometbft/cometbft-db" + sdkmath "cosmossdk.io/math" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -20,23 +21,23 @@ func (k Keeper) GetTotalMinedTokens(ctx sdk.Context) (totalMinedToken sdk.Coin) store := ctx.KVStore(k.storeKey) b := store.Get(types.TotalMinedTokensKeyPrefix) if b == nil { - return sdk.NewCoin(k.RewardDenom(ctx), sdk.ZeroInt()) + return sdk.NewCoin(k.RewardDenom(ctx), sdkmath.ZeroInt()) } k.cdc.MustUnmarshalLengthPrefixed(b, &totalMinedToken) return } -func (k Keeper) SetLastDistributedEpoch(ctx sdk.Context, epoch sdk.Int) { +func (k Keeper) SetLastDistributedEpoch(ctx sdk.Context, epoch sdkmath.Int) { store := ctx.KVStore(k.storeKey) b := k.cdc.MustMarshalLengthPrefixed(&stratos.Int{Value: &epoch}) store.Set(types.LastDistributedEpochKeyPrefix, b) } -func (k Keeper) GetLastDistributedEpoch(ctx sdk.Context) (epoch sdk.Int) { +func (k Keeper) GetLastDistributedEpoch(ctx sdk.Context) (epoch sdkmath.Int) { store := ctx.KVStore(k.storeKey) b := store.Get(types.LastDistributedEpochKeyPrefix) if b == nil { - return sdk.ZeroInt() + return sdkmath.ZeroInt() } intValue := stratos.Int{} k.cdc.MustUnmarshalLengthPrefixed(b, &intValue) @@ -44,13 +45,13 @@ func (k Keeper) GetLastDistributedEpoch(ctx sdk.Context) (epoch sdk.Int) { return } -func (k Keeper) SetIndividualReward(ctx sdk.Context, walletAddress sdk.AccAddress, matureEpoch sdk.Int, value types.Reward) { +func (k Keeper) SetIndividualReward(ctx sdk.Context, walletAddress sdk.AccAddress, matureEpoch sdkmath.Int, value types.Reward) { store := ctx.KVStore(k.storeKey) b := k.cdc.MustMarshalLengthPrefixed(&value) store.Set(types.GetIndividualRewardKey(walletAddress, matureEpoch), b) } -func (k Keeper) GetIndividualReward(ctx sdk.Context, walletAddress sdk.AccAddress, matureEpoch sdk.Int) (value types.Reward, found bool) { +func (k Keeper) GetIndividualReward(ctx sdk.Context, walletAddress sdk.AccAddress, matureEpoch sdkmath.Int) (value types.Reward, found bool) { store := ctx.KVStore(k.storeKey) b := store.Get(types.GetIndividualRewardKey(walletAddress, matureEpoch)) if b == nil { @@ -65,8 +66,8 @@ func (k Keeper) RemoveIndividualReward(ctx sdk.Context, individualRewardKey []by store.Delete(individualRewardKey) } -// Iteration for getting individule reward of each owner at a specific epoch -func (k Keeper) IteratorIndividualReward(ctx sdk.Context, epoch sdk.Int, handler func(walletAddress sdk.AccAddress, individualReward types.Reward) (stop bool)) { +// IteratorIndividualReward Iteration for getting individual reward of each owner at a specific epoch +func (k Keeper) IteratorIndividualReward(ctx sdk.Context, epoch sdkmath.Int, handler func(walletAddress sdk.AccAddress, individualReward types.Reward) (stop bool)) { store := ctx.KVStore(k.storeKey) iter := sdk.KVStorePrefixIterator(store, types.GetIndividualRewardIteratorKey(epoch)) defer iter.Close() @@ -133,7 +134,7 @@ func (k Keeper) GetImmatureTotalReward(ctx sdk.Context, walletAddress sdk.AccAdd return } -// Iteration for getting total immature reward +// IteratorImmatureTotal Iteration for getting total immature reward func (k Keeper) IteratorImmatureTotal(ctx sdk.Context, handler func(walletAddress sdk.AccAddress, immatureTotal sdk.Coins) (stop bool)) { store := ctx.KVStore(k.storeKey) iter := sdk.KVStorePrefixIterator(store, types.ImmatureTotalRewardKeyPrefix) @@ -149,7 +150,7 @@ func (k Keeper) IteratorImmatureTotal(ctx sdk.Context, handler func(walletAddres } } -func (k Keeper) GetVolumeReport(ctx sdk.Context, epoch sdk.Int) (res types.VolumeReportRecord) { +func (k Keeper) GetVolumeReport(ctx sdk.Context, epoch sdkmath.Int) (res types.VolumeReportRecord) { store := ctx.KVStore(k.storeKey) bz := store.Get(types.VolumeReportStoreKey(epoch)) if bz == nil { @@ -159,18 +160,18 @@ func (k Keeper) GetVolumeReport(ctx sdk.Context, epoch sdk.Int) (res types.Volum return res } -func (k Keeper) SetVolumeReport(ctx sdk.Context, epoch sdk.Int, reportRecord types.VolumeReportRecord) { +func (k Keeper) SetVolumeReport(ctx sdk.Context, epoch sdkmath.Int, reportRecord types.VolumeReportRecord) { store := ctx.KVStore(k.storeKey) storeKey := types.VolumeReportStoreKey(epoch) bz := k.cdc.MustMarshalLengthPrefixed(&reportRecord) store.Set(storeKey, bz) } -func (k Keeper) GetMaturedEpoch(ctx sdk.Context) (epoch sdk.Int) { +func (k Keeper) GetMaturedEpoch(ctx sdk.Context) (epoch sdkmath.Int) { store := ctx.KVStore(k.storeKey) bz := store.Get(types.MaturedEpochKeyPrefix) if bz == nil { - return sdk.ZeroInt() + return sdkmath.ZeroInt() } intValue := stratos.Int{} k.cdc.MustUnmarshalLengthPrefixed(bz, &intValue) @@ -178,7 +179,7 @@ func (k Keeper) GetMaturedEpoch(ctx sdk.Context) (epoch sdk.Int) { return } -func (k Keeper) SetMaturedEpoch(ctx sdk.Context, epoch sdk.Int) { +func (k Keeper) SetMaturedEpoch(ctx sdk.Context, epoch sdkmath.Int) { store := ctx.KVStore(k.storeKey) b := k.cdc.MustMarshalLengthPrefixed(&stratos.Int{Value: &epoch}) store.Set(types.MaturedEpochKeyPrefix, b) diff --git a/x/pot/keeper/withdraw.go b/x/pot/keeper/withdraw.go index 0b6f24aa..bd9d51bd 100644 --- a/x/pot/keeper/withdraw.go +++ b/x/pot/keeper/withdraw.go @@ -2,6 +2,7 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/x/pot/types" ) @@ -15,7 +16,7 @@ func (k Keeper) Withdraw(ctx sdk.Context, amount sdk.Coins, walletAddress sdk.Ac return err } // mature = 1, slashing= 5 ===> withdraw =0 , slashing=4 - matureRewardBalance := matureReward.Sub(amount) + matureRewardBalance := matureReward.Sub(amount...) k.SetMatureTotalReward(ctx, walletAddress, matureRewardBalance) return nil } diff --git a/x/pot/module.go b/x/pot/module.go index 1307f892..620cd0b5 100644 --- a/x/pot/module.go +++ b/x/pot/module.go @@ -3,41 +3,53 @@ package pot import ( "context" "encoding/json" + "fmt" - "github.com/cosmos/cosmos-sdk/client" - cdctypes "github.com/cosmos/cosmos-sdk/codec/types" + "cosmossdk.io/core/appmodule" + "cosmossdk.io/depinject" + storetypes "github.com/cosmos/cosmos-sdk/store/types" simtypes "github.com/cosmos/cosmos-sdk/types/simulation" - bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" + authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "github.com/grpc-ecosystem/grpc-gateway/runtime" - registerkeeper "github.com/stratosnet/stratos-chain/x/register/keeper" - - "github.com/gorilla/mux" "github.com/spf13/cobra" + modulev1 "github.com/stratosnet/stratos-chain/api/stratos/pot/module/v1" - abci "github.com/tendermint/tendermint/abci/types" + abci "github.com/cometbft/cometbft/abci/types" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" + cdctypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + stakingkeeper "github.com/cosmos/cosmos-sdk/x/staking/keeper" + "github.com/stratosnet/stratos-chain/x/pot/client/cli" - "github.com/stratosnet/stratos-chain/x/pot/client/rest" "github.com/stratosnet/stratos-chain/x/pot/keeper" "github.com/stratosnet/stratos-chain/x/pot/types" + registerkeeper "github.com/stratosnet/stratos-chain/x/register/keeper" +) + +const ( + consensusVersion = 1 ) // Type check to ensure the interface is properly implemented var ( - _ module.AppModule = AppModule{} - _ module.AppModuleBasic = AppModuleBasic{} + _ module.AppModule = AppModule{} + _ module.AppModuleBasic = AppModuleBasic{} + _ module.AppModuleSimulation = AppModule{} + _ appmodule.AppModule = AppModule{} + _ depinject.OnePerModuleType = AppModule{} ) type AppModuleBasic struct { cdc codec.Codec } -var _ module.AppModuleBasic = AppModuleBasic{} - // Name returns the pot module's name. func (AppModuleBasic) Name() string { return types.ModuleName @@ -49,7 +61,7 @@ func (AppModuleBasic) RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { } // RegisterInterfaces registers the module's interface types -func (b AppModuleBasic) RegisterInterfaces(registry cdctypes.InterfaceRegistry) { +func (AppModuleBasic) RegisterInterfaces(registry cdctypes.InterfaceRegistry) { types.RegisterInterfaces(registry) } @@ -59,9 +71,14 @@ func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage { return cdc.MustMarshalJSON(types.DefaultGenesisState()) } -// RegisterRESTRoutes registers the REST routes for the register module. -func (AppModuleBasic) RegisterRESTRoutes(ctx client.Context, rtr *mux.Router) { - rest.RegisterRoutes(ctx, rtr) +// ValidateGenesis performs genesis state validation for the pot module. +func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, bz json.RawMessage) error { + var data types.GenesisState + err := cdc.UnmarshalJSON(bz, &data) + if err != nil { + return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) + } + return types.ValidateGenesis(data) } // RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the pot module. @@ -81,70 +98,52 @@ func (AppModuleBasic) GetQueryCmd() *cobra.Command { return cli.GetQueryCmd() } -// ValidateGenesis performs genesis state validation for the pot module. -func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, bz json.RawMessage) error { - var data types.GenesisState - err := cdc.UnmarshalJSON(bz, &data) - if err != nil { - return err - } - return types.ValidateGenesis(&data) -} - //____________________________________________________________________________ // AppModule implements an application module for the pot module. type AppModule struct { AppModuleBasic keeper keeper.Keeper + accountKeeper authkeeper.AccountKeeper bankKeeper bankkeeper.Keeper - accountKeeper types.AccountKeeper - stakingKeeper stakingkeeper.Keeper + distrKeeper distrkeeper.Keeper registerKeeper registerkeeper.Keeper + stakingKeeper *stakingkeeper.Keeper + + // legacySubspace is used solely for migration of x/params managed parameters + legacySubspace types.ParamsSubspace } // NewAppModule creates a new AppModule object -func NewAppModule(k keeper.Keeper, bankKeeper bankkeeper.Keeper, - accountKeeper types.AccountKeeper, stakingKeeper stakingkeeper.Keeper, registerKeeper registerkeeper.Keeper) AppModule { +func NewAppModule(cdc codec.Codec, k keeper.Keeper, accountKeeper authkeeper.AccountKeeper, bankKeeper bankkeeper.Keeper, + distrKeeper distrkeeper.Keeper, registerKeeper registerkeeper.Keeper, stakingKeeper *stakingkeeper.Keeper, + legacySubspace types.ParamsSubspace, +) AppModule { return AppModule{ - AppModuleBasic: AppModuleBasic{}, + AppModuleBasic: AppModuleBasic{cdc: cdc}, keeper: k, - bankKeeper: bankKeeper, accountKeeper: accountKeeper, - stakingKeeper: stakingKeeper, + bankKeeper: bankKeeper, + distrKeeper: distrKeeper, registerKeeper: registerKeeper, + stakingKeeper: stakingKeeper, + legacySubspace: legacySubspace, } } -// Name returns the pot module's name. -func (AppModule) Name() string { - return types.ModuleName +// RegisterServices registers module services. +func (am AppModule) RegisterServices(cfg module.Configurator) { + types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper)) + querier := keeper.Querier{Keeper: am.keeper} + types.RegisterQueryServer(cfg.QueryServer(), querier) + + //m := keeper.NewMigrator(am.keeper) + //_ = cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2) } // RegisterInvariants registers the pot module invariants. func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} -// Route returns the message routing key for the pot module. -// Route returns the message routing key for the register module. -func (am AppModule) Route() sdk.Route { - return sdk.NewRoute(types.RouterKey, NewHandler(am.keeper)) -} - -// NewHandler returns an sdk.Handler for the pot module. -func (am AppModule) NewHandler() sdk.Handler { - return NewHandler(am.keeper) -} - -// QuerierRoute returns the pot module's querier route name. -func (AppModule) QuerierRoute() string { - return types.QuerierRoute -} - -// NewQuerierHandler returns the pot module sdk.Querier. -func (am AppModule) NewQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return keeper.NewQuerier(am.keeper, legacyQuerierCdc) -} - // InitGenesis performs genesis initialization for the pot module. It returns // no validator updates. func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate { @@ -172,25 +171,106 @@ func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.V return EndBlocker(ctx, req, am.keeper) } -// RegisterServices registers module services. -func (am AppModule) RegisterServices(cfg module.Configurator) { - types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper)) - querier := keeper.Querier{Keeper: am.keeper} - types.RegisterQueryServer(cfg.QueryServer(), querier) +// ConsensusVersion implements AppModule/ConsensusVersion. +func (AppModule) ConsensusVersion() uint64 { + return consensusVersion +} - //m := keeper.NewMigrator(am.keeper) - //_ = cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2) +// IsOnePerModuleType implements depinject.OnePerModuleType +func (am AppModule) IsOnePerModuleType() { } -// ConsensusVersion implements AppModule/ConsensusVersion. -func (AppModule) ConsensusVersion() uint64 { return 1 } +// IsAppModule implements appmodule.AppModule +func (am AppModule) IsAppModule() { +} + +//____________________________________________________________________________ -// ProposalContents doesn't return any content functions for governance proposals. -func (AppModule) ProposalContents(simState module.SimulationState) []simtypes.WeightedProposalContent { +// AppModuleSimulation defines the module simulation functions used by the profiles module. +type AppModuleSimulation struct{} + +// GenerateGenesisState implements AppModuleSimulation +func (am AppModule) GenerateGenesisState(input *module.SimulationState) { +} + +// RegisterStoreDecoder implements AppModuleSimulation +func (am AppModule) RegisterStoreDecoder(registry sdk.StoreDecoderRegistry) { +} + +// WeightedOperations implements AppModuleSimulation +func (am AppModule) WeightedOperations(simState module.SimulationState) []simtypes.WeightedOperation { return nil } -// LegacyQuerierHandler returns the pot module sdk.Querier. -func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return keeper.NewQuerier(am.keeper, legacyQuerierCdc) +// ProposalMsgs returns msgs used for governance proposals for simulations. +func (AppModule) ProposalMsgs(simState module.SimulationState) []simtypes.WeightedProposalMsg { + return nil +} + +// -------------------------------------------------------------------------------------------------------------------- + +// App Wiring Setup + +func init() { + appmodule.Register( + &modulev1.Module{}, + appmodule.Provide( + ProvideModule, + ), + ) +} + +type ModuleInputs struct { + depinject.In + + Config *modulev1.Module + Cdc codec.Codec + Key *storetypes.KVStoreKey + AccountKeeper authkeeper.AccountKeeper + BankKeeper bankkeeper.Keeper + DistrKeeper distrkeeper.Keeper + RegisterKeeper registerkeeper.Keeper + StakingKeeper *stakingkeeper.Keeper + + // LegacySubspace is used solely for migration of x/params managed parameters + LegacySubspace types.ParamsSubspace `optional:"true"` +} + +type ModuleOutputs struct { + depinject.Out + + PotKeeper keeper.Keeper + Module appmodule.AppModule +} + +func ProvideModule(in ModuleInputs) ModuleOutputs { + // default to governance authority if not provided + authority := authtypes.NewModuleAddress(govtypes.ModuleName) + if in.Config.Authority != "" { + authority = authtypes.NewModuleAddressOrBech32Address(in.Config.Authority) + } + + k := keeper.NewKeeper( + in.Cdc, + in.Key, + in.AccountKeeper, + in.BankKeeper, + in.DistrKeeper, + in.RegisterKeeper, + in.StakingKeeper, + authority.String(), + ) + + m := NewAppModule( + in.Cdc, + k, + in.AccountKeeper, + in.BankKeeper, + in.DistrKeeper, + in.RegisterKeeper, + in.StakingKeeper, + in.LegacySubspace, + ) + + return ModuleOutputs{PotKeeper: k, Module: m} } diff --git a/x/pot/types/codec.go b/x/pot/types/codec.go index 77dabbc9..e68563b2 100644 --- a/x/pot/types/codec.go +++ b/x/pot/types/codec.go @@ -7,6 +7,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" "github.com/cosmos/cosmos-sdk/x/authz" + authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec" + govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" + groupcodec "github.com/cosmos/cosmos-sdk/x/group/codec" ) // RegisterLegacyAminoCodec RegisterCodec registers concrete types on codec @@ -46,5 +49,10 @@ func init() { ModuleCdc = codec.NewLegacyAmino() RegisterLegacyAminoCodec(ModuleCdc) cryptocodec.RegisterCrypto(ModuleCdc) - ModuleCdc.Seal() + + // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be + // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances + RegisterLegacyAminoCodec(authzcodec.Amino) + RegisterLegacyAminoCodec(govcodec.Amino) + RegisterLegacyAminoCodec(groupcodec.Amino) } diff --git a/x/pot/types/distribute.go b/x/pot/types/distribute.go index e4ce2ed7..5980d05c 100644 --- a/x/pot/types/distribute.go +++ b/x/pot/types/distribute.go @@ -139,7 +139,7 @@ func (r Reward) AddRewardFromTrafficPool(reward sdk.Coin) Reward { return r } -// String returns a human readable string representation of a Reward. +// HrpString returns a human-readable string representation of a Reward. func (r Reward) HrpString() string { return fmt.Sprintf(`Reward:{ WalletAddress: %s diff --git a/x/pot/types/errors.go b/x/pot/types/errors.go index 91a1c0ff..a2ead55a 100644 --- a/x/pot/types/errors.go +++ b/x/pot/types/errors.go @@ -1,7 +1,7 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "cosmossdk.io/errors" ) const ( @@ -41,43 +41,47 @@ const ( codeErrVolumeReport codeErrLegacyWithdrawFailure codeErrReporterAddressOrOwner + codeErrTotalSupplyCapHit + codeErrInsufficientCommunityPool ) var ( - ErrInvalid = sdkerrors.Register(ModuleName, codeErrInvalid, "error invalid") - ErrUnknownAccountAddress = sdkerrors.Register(ModuleName, codeErrUnknownAccountAddress, "account address does not exist") - ErrOutOfIssuance = sdkerrors.Register(ModuleName, codeErrOutOfIssuance, "mining reward reaches the issuance limit") - ErrWithdrawAmountInvalid = sdkerrors.Register(ModuleName, codeErrWithdrawAmountInvalid, "withdraw amount is invalid") - ErrMissingWalletAddress = sdkerrors.Register(ModuleName, codeErrMissingWalletAddress, "missing wallet address") - ErrMissingTargetAddress = sdkerrors.Register(ModuleName, codeErrMissingTargetAddress, "missing target address") - ErrInsufficientMatureTotal = sdkerrors.Register(ModuleName, codeErrInsufficientMatureTotal, "insufficient mature total") - ErrMatureEpoch = sdkerrors.Register(ModuleName, codeErrMatureEpoch, "the value of epoch must be positive and greater than its previous one") - ErrMiningRewardParams = sdkerrors.Register(ModuleName, codeErrMiningRewardParams, "invalid mining reward param") - ErrCommunityTax = sdkerrors.Register(ModuleName, codeErrCommunityTax, "invalid community tax param") - ErrInitialTotalSupply = sdkerrors.Register(ModuleName, codeErrInitialTotalSupply, "invalid initial total supply param") - ErrEmptyFromAddr = sdkerrors.Register(ModuleName, codeErrEmptyFromAddr, "missing from address") - ErrEmptyReporterAddr = sdkerrors.Register(ModuleName, codeErrEmptyReporterAddr, "missing reporter address") - ErrEmptyWalletVolumes = sdkerrors.Register(ModuleName, codeErrEmptyWalletVolumes, "wallet volumes list empty") - ErrEpochNotPositive = sdkerrors.Register(ModuleName, codeErrEpochNotPositive, "report epoch is not positive") - ErrEmptyReportReference = sdkerrors.Register(ModuleName, codeErrEmptyReportReference, "missing report reference") - ErrReporterOwnerAddr = sdkerrors.Register(ModuleName, codeErrReporterOwnerAddr, "invalid reporter owner address") - ErrNegativeVolume = sdkerrors.Register(ModuleName, codeErrNegativeVolume, "report volume is negative") - ErrFoundationDepositAmountInvalid = sdkerrors.Register(ModuleName, codeErrFoundationDepositAmountInvalid, "foundation deposit amount is invalid") - ErrBLSSignatureInvalid = sdkerrors.Register(ModuleName, codeErrBLSSignatureInvalid, "BLS signature is invalid") - ErrBLSTxDataInvalid = sdkerrors.Register(ModuleName, codeErrBLSTxDataInvalid, "BLS signature txData is invalid") - ErrBLSPubkeysInvalid = sdkerrors.Register(ModuleName, codeErrBLSPubkeysInvalid, "BLS signature pubkeys are invalid") - ErrBLSVerifyFailed = sdkerrors.Register(ModuleName, codeErrBLSVerifyFailed, "BLS signature verify failed") - ErrBLSNotReachThreshold = sdkerrors.Register(ModuleName, codeErrBLSNotReachThreshold, "BLS signed meta-nodes does not reach the threshold") - ErrReporterAddress = sdkerrors.Register(ModuleName, codeErrReporterAddress, "invalid reporter address") - ErrInvalidAmount = sdkerrors.Register(ModuleName, codeErrInvalidAmount, "invalid amount") - ErrCannotFindReport = sdkerrors.Register(ModuleName, codeErrCannotFindReport, "Can not find report") - ErrCannotFindReward = sdkerrors.Register(ModuleName, codeErrCannotFindReward, "Can not find Pot rewards") - ErrInvalidAddress = sdkerrors.Register(ModuleName, codeErrInvalidAddress, "invalid address") - ErrInvalidDenom = sdkerrors.Register(ModuleName, codeErrInvalidDenom, "invalid denomination") - ErrWithdrawFailure = sdkerrors.Register(ModuleName, codeErrWithdrawFailure, "failure during withdraw") - ErrFoundationDepositFailure = sdkerrors.Register(ModuleName, codeErrFoundationDepositFailure, "failure during foundation deposit") - ErrSlashingResourceNodeFailure = sdkerrors.Register(ModuleName, codeErrSlashingResourceNodeFailure, "failure during slashing resource node") - ErrVolumeReport = sdkerrors.Register(ModuleName, codeErrVolumeReport, "volume report failed") - ErrLegacyWithdrawFailure = sdkerrors.Register(ModuleName, codeErrLegacyWithdrawFailure, "failure during legacyWithdraw") - ErrReporterAddressOrOwner = sdkerrors.Register(ModuleName, codeErrReporterAddressOrOwner, "invalid reporter address or owner address") + ErrInvalid = errors.Register(ModuleName, codeErrInvalid, "error invalid") + ErrUnknownAccountAddress = errors.Register(ModuleName, codeErrUnknownAccountAddress, "account address does not exist") + ErrOutOfIssuance = errors.Register(ModuleName, codeErrOutOfIssuance, "mining reward reaches the issuance limit") + ErrWithdrawAmountInvalid = errors.Register(ModuleName, codeErrWithdrawAmountInvalid, "withdraw amount is invalid") + ErrMissingWalletAddress = errors.Register(ModuleName, codeErrMissingWalletAddress, "missing wallet address") + ErrMissingTargetAddress = errors.Register(ModuleName, codeErrMissingTargetAddress, "missing target address") + ErrInsufficientMatureTotal = errors.Register(ModuleName, codeErrInsufficientMatureTotal, "insufficient mature total") + ErrMatureEpoch = errors.Register(ModuleName, codeErrMatureEpoch, "the value of epoch must be positive and greater than its previous one") + ErrMiningRewardParams = errors.Register(ModuleName, codeErrMiningRewardParams, "invalid mining reward param") + ErrCommunityTax = errors.Register(ModuleName, codeErrCommunityTax, "invalid community tax param") + ErrInitialTotalSupply = errors.Register(ModuleName, codeErrInitialTotalSupply, "invalid initial total supply param") + ErrEmptyFromAddr = errors.Register(ModuleName, codeErrEmptyFromAddr, "missing from address") + ErrEmptyReporterAddr = errors.Register(ModuleName, codeErrEmptyReporterAddr, "missing reporter address") + ErrEmptyWalletVolumes = errors.Register(ModuleName, codeErrEmptyWalletVolumes, "wallet volumes list empty") + ErrEpochNotPositive = errors.Register(ModuleName, codeErrEpochNotPositive, "report epoch is not positive") + ErrEmptyReportReference = errors.Register(ModuleName, codeErrEmptyReportReference, "missing report reference") + ErrReporterOwnerAddr = errors.Register(ModuleName, codeErrReporterOwnerAddr, "invalid reporter owner address") + ErrNegativeVolume = errors.Register(ModuleName, codeErrNegativeVolume, "report volume is negative") + ErrFoundationDepositAmountInvalid = errors.Register(ModuleName, codeErrFoundationDepositAmountInvalid, "foundation deposit amount is invalid") + ErrBLSSignatureInvalid = errors.Register(ModuleName, codeErrBLSSignatureInvalid, "BLS signature is invalid") + ErrBLSTxDataInvalid = errors.Register(ModuleName, codeErrBLSTxDataInvalid, "BLS signature txData is invalid") + ErrBLSPubkeysInvalid = errors.Register(ModuleName, codeErrBLSPubkeysInvalid, "BLS signature pubkeys are invalid") + ErrBLSVerifyFailed = errors.Register(ModuleName, codeErrBLSVerifyFailed, "BLS signature verify failed") + ErrBLSNotReachThreshold = errors.Register(ModuleName, codeErrBLSNotReachThreshold, "BLS signed meta-nodes does not reach the threshold") + ErrReporterAddress = errors.Register(ModuleName, codeErrReporterAddress, "invalid reporter address") + ErrInvalidAmount = errors.Register(ModuleName, codeErrInvalidAmount, "invalid amount") + ErrCannotFindReport = errors.Register(ModuleName, codeErrCannotFindReport, "Can not find report") + ErrCannotFindReward = errors.Register(ModuleName, codeErrCannotFindReward, "Can not find Pot rewards") + ErrInvalidAddress = errors.Register(ModuleName, codeErrInvalidAddress, "invalid address") + ErrInvalidDenom = errors.Register(ModuleName, codeErrInvalidDenom, "invalid denomination") + ErrWithdrawFailure = errors.Register(ModuleName, codeErrWithdrawFailure, "failure during withdraw") + ErrFoundationDepositFailure = errors.Register(ModuleName, codeErrFoundationDepositFailure, "failure during foundation deposit") + ErrSlashingResourceNodeFailure = errors.Register(ModuleName, codeErrSlashingResourceNodeFailure, "failure during slashing resource node") + ErrVolumeReport = errors.Register(ModuleName, codeErrVolumeReport, "volume report failed") + ErrLegacyWithdrawFailure = errors.Register(ModuleName, codeErrLegacyWithdrawFailure, "failure during legacyWithdraw") + ErrReporterAddressOrOwner = errors.Register(ModuleName, codeErrReporterAddressOrOwner, "invalid reporter address or owner address") + ErrTotalSupplyCapHit = errors.Register(ModuleName, codeErrTotalSupplyCapHit, "minting not completed because total supply cap is hit") + ErrInsufficientCommunityPool = errors.Register(ModuleName, codeErrInsufficientCommunityPool, "burning not completed as a result of insufficient balance in community pool") ) diff --git a/x/pot/types/expected.go b/x/pot/types/expected.go new file mode 100644 index 00000000..96ece8b7 --- /dev/null +++ b/x/pot/types/expected.go @@ -0,0 +1,16 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// DONTCOVER + +// ParamsSubspace defines an interface that implements the legacy x/params ParamsSubspace +// type. +// +// NOTE: This is used solely for migration of x/params managed parameters. +type ParamsSubspace interface { + GetParamSet(ctx sdk.Context, ps paramstypes.ParamSet) +} diff --git a/x/pot/types/expected_keepers.go b/x/pot/types/expected_keepers.go index 5bc1f37b..c849efa9 100644 --- a/x/pot/types/expected_keepers.go +++ b/x/pot/types/expected_keepers.go @@ -1,6 +1,7 @@ package types import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" @@ -31,33 +32,33 @@ type RegisterKeeper interface { GetResourceNode(ctx sdk.Context, p2pAddress stratos.SdsAddress) (resourceNode types.ResourceNode, found bool) SetResourceNode(ctx sdk.Context, resourceNode types.ResourceNode) - GetSlashing(ctx sdk.Context, walletAddress sdk.AccAddress) (res sdk.Int) - SetSlashing(ctx sdk.Context, walletAddress sdk.AccAddress, slashing sdk.Int) + GetSlashing(ctx sdk.Context, walletAddress sdk.AccAddress) (res sdkmath.Int) + SetSlashing(ctx sdk.Context, walletAddress sdk.AccAddress, slashing sdkmath.Int) DeductSlashing(ctx sdk.Context, walletAddress sdk.AccAddress, coins sdk.Coins, slashingDenom string) (remaining, deducted sdk.Coins) - GetRemainingOzoneLimit(ctx sdk.Context) (value sdk.Int) - SetRemainingOzoneLimit(ctx sdk.Context, value sdk.Int) + GetRemainingOzoneLimit(ctx sdk.Context) (value sdkmath.Int) + SetRemainingOzoneLimit(ctx sdk.Context, value sdkmath.Int) GetTotalUnissuedPrepay(ctx sdk.Context) (totalUnissuedPrepay sdk.Coin) - GetDepositNozRate(ctx sdk.Context) (depositNozRate sdk.Dec) + GetDepositNozRate(ctx sdk.Context) (depositNozRate sdkmath.LegacyDec) GetResourceNodeBondedToken(ctx sdk.Context) (token sdk.Coin) GetMetaNodeBondedToken(ctx sdk.Context) (token sdk.Coin) - GetEffectiveTotalDeposit(ctx sdk.Context) (deposit sdk.Int) + GetEffectiveTotalDeposit(ctx sdk.Context) (deposit sdkmath.Int) GetResourceNodeIterator(ctx sdk.Context) sdk.Iterator GetMetaNodeIterator(ctx sdk.Context) sdk.Iterator - GetBondedMetaNodeCnt(ctx sdk.Context) sdk.Int + GetBondedMetaNodeCnt(ctx sdk.Context) sdkmath.Int - DecreaseOzoneLimitBySubtractDeposit(ctx sdk.Context, deposit sdk.Int) (ozoneLimitChange sdk.Int) - IncreaseOzoneLimitByAddDeposit(ctx sdk.Context, deposit sdk.Int) (ozoneLimitChange sdk.Int) - GetUnbondingNodeBalance(ctx sdk.Context, networkAddr stratos.SdsAddress) sdk.Int + DecreaseOzoneLimitBySubtractDeposit(ctx sdk.Context, deposit sdkmath.Int) (ozoneLimitChange sdkmath.Int) + IncreaseOzoneLimitByAddDeposit(ctx sdk.Context, deposit sdkmath.Int) (ozoneLimitChange sdkmath.Int) + GetUnbondingNodeBalance(ctx sdk.Context, networkAddr stratos.SdsAddress) sdkmath.Int OwnMetaNode(ctx sdk.Context, ownerAddr sdk.AccAddress, p2pAddr stratos.SdsAddress) (found bool) } type StakingKeeper interface { - TotalBondedTokens(ctx sdk.Context) sdk.Int + TotalBondedTokens(ctx sdk.Context) sdkmath.Int } type DistrKeeper interface { diff --git a/x/pot/types/genesis.go b/x/pot/types/genesis.go index 15e31fc5..259fa1ad 100644 --- a/x/pot/types/genesis.go +++ b/x/pot/types/genesis.go @@ -1,13 +1,14 @@ package types import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) // NewGenesisState creates a new GenesisState object -func NewGenesisState(params Params, totalMinedToken sdk.Coin, lastDistributedEpoch sdk.Int, +func NewGenesisState(params Params, totalMinedToken sdk.Coin, lastDistributedEpoch sdkmath.Int, immatureTotalInfo []ImmatureTotal, matureTotalInfo []MatureTotal, individualRewardInfo []Reward, - maturedEpoch sdk.Int, + maturedEpoch sdkmath.Int, ) *GenesisState { return &GenesisState{ @@ -24,20 +25,20 @@ func NewGenesisState(params Params, totalMinedToken sdk.Coin, lastDistributedEpo // DefaultGenesisState - default GenesisState used by Cosmos Hub func DefaultGenesisState() *GenesisState { params := DefaultParams() - coin := sdk.NewCoin(DefaultRewardDenom, sdk.ZeroInt()) + coin := sdk.NewCoin(DefaultRewardDenom, sdkmath.ZeroInt()) return &GenesisState{ Params: params, TotalMinedToken: coin, - LastDistributedEpoch: sdk.ZeroInt(), + LastDistributedEpoch: sdkmath.ZeroInt(), ImmatureTotalInfo: make([]ImmatureTotal, 0), MatureTotalInfo: make([]MatureTotal, 0), IndividualRewardInfo: make([]Reward, 0), - MaturedEpoch: sdk.ZeroInt(), + MaturedEpoch: sdkmath.ZeroInt(), } } // ValidateGenesis validates the pot genesis parameters -func ValidateGenesis(data *GenesisState) error { +func ValidateGenesis(data GenesisState) error { return nil } diff --git a/x/pot/types/genesis.pb.go b/x/pot/types/genesis.pb.go index 95187e80..c970e375 100644 --- a/x/pot/types/genesis.pb.go +++ b/x/pot/types/genesis.pb.go @@ -5,10 +5,11 @@ package types import ( fmt "fmt" + _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" @@ -217,49 +218,172 @@ func init() { func init() { proto.RegisterFile("stratos/pot/v1/genesis.proto", fileDescriptor_abdde08c2564316a) } var fileDescriptor_abdde08c2564316a = []byte{ - // 636 bytes of a gzipped FileDescriptorProto + // 658 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x94, 0x4f, 0x6b, 0xd4, 0x4e, - 0x18, 0xc7, 0x37, 0xed, 0xaf, 0x2d, 0x9d, 0x76, 0x5b, 0x9a, 0xdf, 0x5a, 0x62, 0xb5, 0x99, 0x92, - 0x83, 0x2c, 0x48, 0x13, 0xb7, 0xe2, 0x41, 0x2f, 0x62, 0x54, 0x64, 0x0f, 0x45, 0x89, 0x05, 0xc1, - 0x4b, 0x98, 0xdd, 0x4c, 0xb7, 0x43, 0x93, 0x4c, 0xc8, 0xcc, 0x6e, 0x2d, 0x14, 0xcf, 0x5e, 0x04, - 0x8f, 0xde, 0xbc, 0xfb, 0x3a, 0x44, 0x7a, 0xec, 0x51, 0x3c, 0x44, 0xe9, 0xde, 0xf6, 0x98, 0x57, - 0x20, 0x99, 0x99, 0x76, 0xff, 0xa5, 0xa2, 0x47, 0x4f, 0xc9, 0x3c, 0xdf, 0x67, 0xbe, 0xcf, 0x67, - 0x9e, 0x79, 0x12, 0x70, 0x93, 0xf1, 0x14, 0x71, 0xca, 0x9c, 0x84, 0x72, 0xa7, 0xd7, 0x70, 0x3a, - 0x38, 0xc6, 0x8c, 0x30, 0x3b, 0x49, 0x29, 0xa7, 0xfa, 0x8a, 0x52, 0xed, 0x84, 0x72, 0xbb, 0xd7, - 0xd8, 0xa8, 0x75, 0x68, 0x87, 0x0a, 0xc9, 0x29, 0xde, 0x64, 0xd6, 0x86, 0xd9, 0xa6, 0x2c, 0xa2, - 0xcc, 0x69, 0x21, 0x86, 0x9d, 0x5e, 0xa3, 0x85, 0x39, 0x6a, 0x38, 0x6d, 0x4a, 0x62, 0xa5, 0x1b, - 0x13, 0x35, 0x0a, 0x33, 0xa1, 0x58, 0x1f, 0x17, 0xc0, 0xf2, 0x33, 0x59, 0xf1, 0x25, 0x47, 0x1c, - 0xeb, 0xcf, 0xc1, 0x7c, 0x82, 0x52, 0x14, 0x31, 0x43, 0xdb, 0xd2, 0xea, 0x4b, 0x3b, 0xeb, 0xf6, - 0x38, 0x81, 0xfd, 0x42, 0xa8, 0x2e, 0x3c, 0xcd, 0x60, 0x65, 0x90, 0x41, 0x95, 0x9d, 0x67, 0xb0, - 0x7a, 0x8c, 0xa2, 0xf0, 0x81, 0x25, 0xd7, 0x96, 0xa7, 0x04, 0xfd, 0x04, 0xac, 0x71, 0xca, 0x51, - 0xe8, 0x47, 0x24, 0xc6, 0x81, 0xcf, 0xe9, 0x21, 0x8e, 0x8d, 0x19, 0xe1, 0x7d, 0xdd, 0x96, 0xdc, - 0x76, 0xc1, 0x6d, 0x2b, 0x6e, 0xfb, 0x31, 0x25, 0xb1, 0x7b, 0x4f, 0xd9, 0x4f, 0xef, 0xcd, 0x33, - 0x68, 0xc8, 0x4a, 0x53, 0x92, 0xe5, 0xad, 0x8a, 0xd8, 0x6e, 0x11, 0xda, 0x2b, 0x22, 0xfa, 0x27, - 0x0d, 0xac, 0x87, 0x88, 0x71, 0x3f, 0x20, 0x8c, 0xa7, 0xa4, 0xd5, 0xe5, 0x38, 0xf0, 0x71, 0x42, - 0xdb, 0x07, 0xc6, 0xec, 0x96, 0x56, 0x5f, 0x74, 0x49, 0x51, 0xe8, 0x7b, 0x06, 0x6f, 0x75, 0x08, - 0x3f, 0xe8, 0xb6, 0xec, 0x36, 0x8d, 0x1c, 0xd5, 0x4d, 0xf9, 0xd8, 0x66, 0xc1, 0xa1, 0xc3, 0x8f, - 0x13, 0xcc, 0xec, 0x66, 0xcc, 0x07, 0x19, 0xbc, 0xc2, 0x2f, 0xcf, 0xe0, 0xa6, 0xe4, 0x2a, 0xd7, - 0x2d, 0xaf, 0x56, 0x08, 0x4f, 0x86, 0xf1, 0xa7, 0x45, 0x58, 0x7f, 0xa7, 0x81, 0xff, 0x49, 0x14, - 0x21, 0xde, 0x4d, 0xb1, 0x2f, 0x8f, 0x44, 0xe2, 0x7d, 0x6a, 0xfc, 0xb7, 0x35, 0x5b, 0x5f, 0xda, - 0xd9, 0x9c, 0x6c, 0x7f, 0x53, 0xa5, 0xee, 0x15, 0x99, 0xee, 0x7d, 0xd5, 0xa6, 0x32, 0x87, 0x3c, - 0x83, 0x1b, 0x12, 0xa8, 0x44, 0xb4, 0xbc, 0x35, 0x32, 0xea, 0xd4, 0x8c, 0xf7, 0xa9, 0xfe, 0x16, - 0xac, 0x4d, 0x73, 0xcc, 0x09, 0x8e, 0x1b, 0x93, 0x1c, 0xbb, 0x23, 0x14, 0x97, 0x97, 0x55, 0xc6, - 0xa0, 0x2e, 0xab, 0x84, 0x60, 0x75, 0xb2, 0xfe, 0x7b, 0x0d, 0xac, 0x93, 0x38, 0x20, 0x3d, 0x12, - 0x74, 0x51, 0xe8, 0xa7, 0xf8, 0x08, 0xa5, 0x81, 0xa4, 0x98, 0x17, 0x14, 0x53, 0xc3, 0xe8, 0x89, - 0x14, 0xf7, 0xa1, 0x02, 0xb8, 0x62, 0xf7, 0xf0, 0x6a, 0xca, 0x75, 0xcb, 0xab, 0x0d, 0x05, 0x69, - 0x29, 0x78, 0x4e, 0x40, 0x55, 0x22, 0x5e, 0x8c, 0xcc, 0x82, 0x18, 0x99, 0x57, 0x7f, 0x3d, 0x32, - 0xe3, 0x36, 0x79, 0x06, 0x6b, 0xa3, 0x4d, 0xb9, 0x1c, 0x90, 0x65, 0xb5, 0x16, 0x83, 0x61, 0x7d, - 0xd5, 0x40, 0x75, 0xec, 0xb6, 0x75, 0x0f, 0xac, 0x1c, 0xa1, 0x30, 0xc4, 0xdc, 0x47, 0x41, 0x90, - 0x62, 0x26, 0xbf, 0xd1, 0x45, 0xf7, 0xf6, 0x20, 0x83, 0x13, 0x4a, 0x9e, 0xc1, 0x6b, 0xb2, 0xc6, - 0x78, 0xdc, 0xf2, 0xaa, 0x32, 0xf0, 0x48, 0xae, 0x75, 0x04, 0xe6, 0x7a, 0x28, 0xec, 0x62, 0x63, - 0x46, 0x74, 0xf8, 0x37, 0x9f, 0xe4, 0x9d, 0xe2, 0xd8, 0x9f, 0x7f, 0xc0, 0xfa, 0x1f, 0x1c, 0xbb, - 0xd8, 0xc0, 0x3c, 0xe9, 0x6c, 0x7d, 0xd1, 0xc0, 0xd2, 0xee, 0x3f, 0x7f, 0x0c, 0xb7, 0x79, 0x7a, - 0x6e, 0x6a, 0x67, 0xe7, 0xa6, 0xf6, 0xf3, 0xdc, 0xd4, 0x3e, 0xf4, 0xcd, 0xca, 0x59, 0xdf, 0xac, - 0x7c, 0xeb, 0x9b, 0x95, 0xd7, 0xce, 0x88, 0x95, 0x1a, 0xd0, 0x18, 0xf3, 0x8b, 0xd7, 0xed, 0xf6, - 0x01, 0x22, 0xb1, 0xf3, 0x46, 0xfc, 0x7c, 0x85, 0x6f, 0x6b, 0x5e, 0xfc, 0x7c, 0xef, 0xfe, 0x0a, - 0x00, 0x00, 0xff, 0xff, 0x09, 0xda, 0xca, 0x79, 0xfc, 0x05, 0x00, 0x00, + 0x18, 0xc7, 0x77, 0xda, 0x5f, 0x5b, 0x3a, 0xed, 0xb6, 0x34, 0xbf, 0xb5, 0xa4, 0xd5, 0x66, 0x4a, + 0x0e, 0xb2, 0x20, 0x4d, 0xdc, 0x8a, 0x07, 0xbd, 0x88, 0x51, 0x91, 0x3d, 0x2c, 0x4a, 0xec, 0xc9, + 0x4b, 0x98, 0xdd, 0x4c, 0xb7, 0x43, 0x93, 0xcc, 0x92, 0x99, 0xdd, 0x5a, 0x10, 0xcf, 0x22, 0x08, + 0xbe, 0x0c, 0x11, 0xbc, 0xe9, 0x3b, 0x10, 0xe9, 0xb1, 0x78, 0x12, 0x0f, 0x51, 0xb6, 0xb7, 0x1e, + 0xf7, 0x15, 0x48, 0x66, 0xa6, 0x76, 0xff, 0xa4, 0xa2, 0x47, 0x4f, 0xc9, 0xcc, 0xf7, 0x99, 0xef, + 0xf3, 0x99, 0xe7, 0x79, 0x12, 0x78, 0x85, 0x8b, 0x14, 0x0b, 0xc6, 0xdd, 0x0e, 0x13, 0x6e, 0xaf, + 0xe6, 0xb6, 0x49, 0x42, 0x38, 0xe5, 0x4e, 0x27, 0x65, 0x82, 0x19, 0x4b, 0x5a, 0x75, 0x3a, 0x4c, + 0x38, 0xbd, 0xda, 0x7a, 0xa5, 0xcd, 0xda, 0x4c, 0x4a, 0x6e, 0xfe, 0xa6, 0xa2, 0xd6, 0xd7, 0x5a, + 0x8c, 0xc7, 0x8c, 0x07, 0x4a, 0x50, 0x0b, 0x2d, 0x59, 0x6a, 0xe5, 0x36, 0x31, 0x27, 0x6e, 0xaf, + 0xd6, 0x24, 0x02, 0xd7, 0xdc, 0x16, 0xa3, 0x89, 0xd6, 0xcd, 0xb1, 0xf4, 0x79, 0x1e, 0xa9, 0xd8, + 0x1f, 0xe7, 0xe0, 0xe2, 0x43, 0x05, 0xf3, 0x44, 0x60, 0x41, 0x8c, 0x47, 0x70, 0xb6, 0x83, 0x53, + 0x1c, 0x73, 0x13, 0x6c, 0x82, 0xea, 0xc2, 0xf6, 0xaa, 0x33, 0x0a, 0xe7, 0x3c, 0x96, 0xaa, 0x87, + 0x8e, 0x32, 0x54, 0x3a, 0xcd, 0x90, 0x8e, 0x1e, 0x64, 0xa8, 0x7c, 0x88, 0xe3, 0xe8, 0xb6, 0xad, + 0xd6, 0xb6, 0xaf, 0x05, 0xe3, 0x39, 0x5c, 0x11, 0x4c, 0xe0, 0x28, 0x88, 0x69, 0x42, 0xc2, 0x40, + 0xb0, 0x7d, 0x92, 0x98, 0x53, 0xd2, 0x7b, 0xcd, 0xd1, 0xb7, 0xc8, 0xb9, 0x1d, 0xcd, 0xed, 0xdc, + 0x63, 0x34, 0xf1, 0x6e, 0x6a, 0xfb, 0xc9, 0xb3, 0x83, 0x0c, 0x99, 0x2a, 0xd3, 0x84, 0x64, 0xfb, + 0xcb, 0x72, 0xaf, 0x91, 0x6f, 0xed, 0xe4, 0x3b, 0xc6, 0x7b, 0x00, 0x57, 0x23, 0xcc, 0x45, 0x10, + 0x52, 0x2e, 0x52, 0xda, 0xec, 0x0a, 0x12, 0x06, 0xa4, 0xc3, 0x5a, 0x7b, 0xe6, 0xf4, 0x26, 0xa8, + 0xce, 0x7b, 0x07, 0x79, 0xa2, 0x6f, 0x19, 0xba, 0xda, 0xa6, 0x62, 0xaf, 0xdb, 0x74, 0x5a, 0x2c, + 0xd6, 0xb5, 0xd5, 0x8f, 0x2d, 0x1e, 0xee, 0xbb, 0xe2, 0xb0, 0x43, 0xb8, 0x53, 0x4f, 0xc4, 0x69, + 0x86, 0x2e, 0xf0, 0x1b, 0x64, 0x68, 0x43, 0x71, 0x15, 0xeb, 0xf6, 0x97, 0x0f, 0x5b, 0x50, 0xdf, + 0xb7, 0x9e, 0x08, 0xbf, 0x92, 0x87, 0xdd, 0x3f, 0x8f, 0x7a, 0x90, 0x07, 0x19, 0x2f, 0x01, 0xfc, + 0x9f, 0xc6, 0x31, 0x16, 0xdd, 0x94, 0x04, 0xea, 0x82, 0x34, 0xd9, 0x65, 0xe6, 0x7f, 0x9b, 0xd3, + 0xd5, 0x85, 0xed, 0x8d, 0xf1, 0x66, 0xd4, 0x75, 0xe8, 0x4e, 0x1e, 0xe9, 0xdd, 0xd2, 0x45, 0x2b, + 0x72, 0x18, 0x64, 0x68, 0x5d, 0xe1, 0x15, 0x88, 0xb6, 0xbf, 0x42, 0x87, 0x9d, 0xea, 0xc9, 0x2e, + 0x33, 0x5e, 0xc0, 0x95, 0x49, 0x8e, 0x19, 0xc9, 0x71, 0x79, 0x9c, 0xa3, 0x31, 0x44, 0xf1, 0xab, + 0x75, 0x45, 0x0c, 0xba, 0x75, 0x05, 0x04, 0xcb, 0xe3, 0xf9, 0x5f, 0x03, 0xb8, 0x4a, 0x93, 0x90, + 0xf6, 0x68, 0xd8, 0xc5, 0x51, 0x90, 0x92, 0x03, 0x9c, 0x86, 0x8a, 0x62, 0x56, 0x52, 0x4c, 0x8c, + 0xa6, 0x2f, 0x43, 0xbc, 0x3b, 0x1a, 0xe0, 0x82, 0xd3, 0xe7, 0x8d, 0x2a, 0xd6, 0x6d, 0xbf, 0x72, + 0x2e, 0x28, 0x4b, 0xc9, 0xf3, 0x0a, 0xc0, 0xb2, 0x62, 0x3c, 0x9b, 0xa0, 0x39, 0x39, 0x41, 0xe4, + 0xaf, 0x27, 0x68, 0xd4, 0x66, 0x90, 0xa1, 0xca, 0x70, 0x55, 0x2e, 0x98, 0x97, 0x45, 0xad, 0xca, + 0x39, 0xb1, 0x3f, 0x03, 0x58, 0x1e, 0x69, 0xbe, 0xe1, 0xc3, 0xa5, 0x03, 0x1c, 0x45, 0x44, 0x04, + 0x38, 0x0c, 0x53, 0xc2, 0xd5, 0x07, 0x3c, 0xef, 0x5d, 0x3b, 0xcd, 0xd0, 0x98, 0x32, 0xc8, 0xd0, + 0x25, 0x95, 0x71, 0x74, 0xdf, 0xf6, 0xcb, 0x6a, 0xe3, 0xae, 0x5a, 0x1b, 0x18, 0xce, 0xf4, 0x70, + 0xd4, 0x25, 0xe6, 0x94, 0x2c, 0xf8, 0x6f, 0xbe, 0xd7, 0xeb, 0x79, 0x11, 0xde, 0x7d, 0x47, 0xd5, + 0x3f, 0x28, 0x42, 0x7e, 0x80, 0xfb, 0xca, 0xd9, 0xfe, 0x04, 0xe0, 0x42, 0xe3, 0x9f, 0xbf, 0x86, + 0xd7, 0x78, 0xdb, 0xb7, 0xc0, 0x51, 0xdf, 0x02, 0xc7, 0x7d, 0x0b, 0xfc, 0xe8, 0x5b, 0xe0, 0xcd, + 0x89, 0x55, 0x3a, 0x3e, 0xb1, 0x4a, 0x5f, 0x4f, 0xac, 0xd2, 0x53, 0x77, 0xc8, 0x4e, 0xcf, 0x6c, + 0x42, 0xc4, 0xd9, 0xeb, 0x56, 0x6b, 0x0f, 0xd3, 0xc4, 0x7d, 0x26, 0xff, 0xce, 0xd2, 0xbb, 0x39, + 0x2b, 0xff, 0xce, 0x37, 0x7e, 0x06, 0x00, 0x00, 0xff, 0xff, 0x23, 0xb3, 0x2e, 0x80, 0x38, 0x06, + 0x00, 0x00, } +func (this *GenesisState) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*GenesisState) + if !ok { + that2, ok := that.(GenesisState) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Params.Equal(&that1.Params) { + return false + } + if !this.TotalMinedToken.Equal(&that1.TotalMinedToken) { + return false + } + if !this.LastDistributedEpoch.Equal(that1.LastDistributedEpoch) { + return false + } + if len(this.ImmatureTotalInfo) != len(that1.ImmatureTotalInfo) { + return false + } + for i := range this.ImmatureTotalInfo { + if !this.ImmatureTotalInfo[i].Equal(&that1.ImmatureTotalInfo[i]) { + return false + } + } + if len(this.MatureTotalInfo) != len(that1.MatureTotalInfo) { + return false + } + for i := range this.MatureTotalInfo { + if !this.MatureTotalInfo[i].Equal(&that1.MatureTotalInfo[i]) { + return false + } + } + if len(this.IndividualRewardInfo) != len(that1.IndividualRewardInfo) { + return false + } + for i := range this.IndividualRewardInfo { + if !this.IndividualRewardInfo[i].Equal(&that1.IndividualRewardInfo[i]) { + return false + } + } + if !this.MaturedEpoch.Equal(that1.MaturedEpoch) { + return false + } + return true +} +func (this *ImmatureTotal) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*ImmatureTotal) + if !ok { + that2, ok := that.(ImmatureTotal) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.WalletAddress != that1.WalletAddress { + return false + } + if len(this.Value) != len(that1.Value) { + return false + } + for i := range this.Value { + if !this.Value[i].Equal(&that1.Value[i]) { + return false + } + } + return true +} +func (this *MatureTotal) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MatureTotal) + if !ok { + that2, ok := that.(MatureTotal) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.WalletAddress != that1.WalletAddress { + return false + } + if len(this.Value) != len(that1.Value) { + return false + } + for i := range this.Value { + if !this.Value[i].Equal(&that1.Value[i]) { + return false + } + } + return true +} func (m *GenesisState) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) diff --git a/x/pot/types/key.go b/x/pot/types/key.go index 06e30bf3..22eb172b 100644 --- a/x/pot/types/key.go +++ b/x/pot/types/key.go @@ -1,6 +1,7 @@ package types import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -28,12 +29,12 @@ var ( MaturedEpochKeyPrefix = []byte{0x07} ) -func VolumeReportStoreKey(epoch sdk.Int) []byte { +func VolumeReportStoreKey(epoch sdkmath.Int) []byte { return append(VolumeReportStoreKeyPrefix, epoch.String()...) } // GetIndividualRewardKey prefix{epoch}_{account}, the amount that is matured at {epoch} -func GetIndividualRewardKey(acc sdk.AccAddress, epoch sdk.Int) []byte { +func GetIndividualRewardKey(acc sdk.AccAddress, epoch sdkmath.Int) []byte { bKeyStr := []byte("_") bEpoch := []byte(epoch.String()) @@ -43,7 +44,7 @@ func GetIndividualRewardKey(acc sdk.AccAddress, epoch sdk.Int) []byte { return key } -func GetIndividualRewardIteratorKey(epoch sdk.Int) []byte { +func GetIndividualRewardIteratorKey(epoch sdkmath.Int) []byte { bKeyStr := []byte("_") bEpoch := []byte(epoch.String()) key := append(IndividualRewardKeyPrefix, bEpoch...) diff --git a/x/pot/types/msg.go b/x/pot/types/msg.go index 624749e5..92ed9ae5 100644 --- a/x/pot/types/msg.go +++ b/x/pot/types/msg.go @@ -1,6 +1,7 @@ package types import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" stratos "github.com/stratosnet/stratos-chain/types" @@ -27,7 +28,7 @@ const ( func NewMsgVolumeReport( walletVolumes []SingleWalletVolume, reporter stratos.SdsAddress, - epoch sdk.Int, + epoch sdkmath.Int, reportReference string, reporterOwner sdk.AccAddress, blsSignature BLSSignatureInfo, @@ -264,7 +265,7 @@ func (msg MsgFoundationDeposit) ValidateBasic() error { } func NewMsgSlashingResourceNode(reporters []stratos.SdsAddress, reporterOwner []sdk.AccAddress, - networkAddress stratos.SdsAddress, walletAddress sdk.AccAddress, slashing sdk.Int, suspend bool) *MsgSlashingResourceNode { + networkAddress stratos.SdsAddress, walletAddress sdk.AccAddress, slashing sdkmath.Int, suspend bool) *MsgSlashingResourceNode { reporterStrSlice := make([]string, 0) for _, reporter := range reporters { @@ -313,7 +314,7 @@ func (m MsgSlashingResourceNode) ValidateBasic() error { } } - if m.Slashing.LT(sdk.ZeroInt()) { + if m.Slashing.LT(sdkmath.ZeroInt()) { return ErrInvalidAmount } return nil diff --git a/x/pot/types/params.go b/x/pot/types/params.go index e25dd095..a628e236 100644 --- a/x/pot/types/params.go +++ b/x/pot/types/params.go @@ -1,18 +1,17 @@ package types import ( - "errors" "fmt" "strings" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" stratos "github.com/stratosnet/stratos-chain/types" ) -// DefaultParamSpace Default parameter namespace const ( DefaultBondDenom = stratos.Wei DefaultRewardDenom = stratos.Wei @@ -28,9 +27,9 @@ var ( KeyCommunityTax = []byte("CommunityTax") KeyInitialTotalSupply = []byte("InitialTotalSupply") - DefaultCommunityTax = sdk.NewDecWithPrec(2, 2) // 2% + DefaultCommunityTax = sdkmath.LegacyNewDecWithPrec(2, 2) // 2% DefaultInitialTotalSupply = sdk.NewCoin(DefaultBondDenom, - sdk.NewInt(1e8).Mul(sdk.NewInt(stratos.StosToWei)), + sdkmath.NewInt(1e8).Mul(sdkmath.NewInt(stratos.StosToWei)), ) //100,000,000 stos ) @@ -41,7 +40,7 @@ func ParamKeyTable() paramtypes.KeyTable { // NewParams creates a new Params object func NewParams(bondDenom string, rewardDenom string, matureEpoch int64, miningRewardParams []MiningRewardParam, - communityTax sdk.Dec, initialTotalSupply sdk.Coin) Params { + communityTax sdkmath.LegacyDec, initialTotalSupply sdk.Coin) Params { return Params{ BondDenom: bondDenom, @@ -57,40 +56,40 @@ func NewParams(bondDenom string, rewardDenom string, matureEpoch int64, miningRe func DefaultParams() Params { var miningRewardParams []MiningRewardParam miningRewardParams = append(miningRewardParams, NewMiningRewardParam( - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(0)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(16819200).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(80).MulRaw(stratos.StosToWei)), - sdk.NewInt(6000), sdk.NewInt(2000), sdk.NewInt(2000))) + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(0)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(16819200).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(80).MulRaw(stratos.StosToWei)), + sdkmath.NewInt(6000), sdkmath.NewInt(2000), sdkmath.NewInt(2000))) miningRewardParams = append(miningRewardParams, NewMiningRewardParam( - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(16819200).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(25228800).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(40).MulRaw(stratos.StosToWei)), - sdk.NewInt(6200), sdk.NewInt(1800), sdk.NewInt(2000))) + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(16819200).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(25228800).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(40).MulRaw(stratos.StosToWei)), + sdkmath.NewInt(6200), sdkmath.NewInt(1800), sdkmath.NewInt(2000))) miningRewardParams = append(miningRewardParams, NewMiningRewardParam( - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(25228800).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(29433600).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(20).MulRaw(stratos.StosToWei)), - sdk.NewInt(6400), sdk.NewInt(1600), sdk.NewInt(2000))) + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(25228800).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(29433600).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(20).MulRaw(stratos.StosToWei)), + sdkmath.NewInt(6400), sdkmath.NewInt(1600), sdkmath.NewInt(2000))) miningRewardParams = append(miningRewardParams, NewMiningRewardParam( - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(29433600).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(31536000).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(10).MulRaw(stratos.StosToWei)), - sdk.NewInt(6600), sdk.NewInt(1400), sdk.NewInt(2000))) + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(29433600).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(31536000).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(10).MulRaw(stratos.StosToWei)), + sdkmath.NewInt(6600), sdkmath.NewInt(1400), sdkmath.NewInt(2000))) miningRewardParams = append(miningRewardParams, NewMiningRewardParam( - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(31536000).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(32587200).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(5).MulRaw(stratos.StosToWei)), - sdk.NewInt(6800), sdk.NewInt(1200), sdk.NewInt(2000))) + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(31536000).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(32587200).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(5).MulRaw(stratos.StosToWei)), + sdkmath.NewInt(6800), sdkmath.NewInt(1200), sdkmath.NewInt(2000))) miningRewardParams = append(miningRewardParams, NewMiningRewardParam( - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(32587200).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(40000000).MulRaw(stratos.StosToWei)), - sdk.NewCoin(DefaultRewardDenom, sdk.NewInt(25).MulRaw(1e17)), - sdk.NewInt(7000), sdk.NewInt(1000), sdk.NewInt(2000))) + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(32587200).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(40000000).MulRaw(stratos.StosToWei)), + sdk.NewCoin(DefaultRewardDenom, sdkmath.NewInt(25).MulRaw(1e17)), + sdkmath.NewInt(7000), sdkmath.NewInt(1000), sdkmath.NewInt(2000))) return NewParams( DefaultBondDenom, @@ -133,7 +132,7 @@ func validateBondDenom(i interface{}) error { } if strings.TrimSpace(v) == "" { - return errors.New("bond denom cannot be blank") + return fmt.Errorf("bond denom cannot be blank") } if err := sdk.ValidateDenom(v); err != nil { return err @@ -149,7 +148,7 @@ func validateRewardDenom(i interface{}) error { } if strings.TrimSpace(v) == "" { - return errors.New("mining reward denom cannot be blank") + return fmt.Errorf("mining reward denom cannot be blank") } if err := sdk.ValidateDenom(v); err != nil { return err @@ -187,7 +186,7 @@ func validateMiningRewardParams(i interface{}) error { } func validateCommunityTax(i interface{}) error { - v, ok := i.(sdk.Dec) + v, ok := i.(sdkmath.LegacyDec) if !ok { return fmt.Errorf("invalid parameter type: %T", i) } @@ -198,7 +197,7 @@ func validateCommunityTax(i interface{}) error { if v.IsNegative() { return fmt.Errorf("pot community tax must be positive: %s", v) } - if v.GT(sdk.OneDec()) { + if v.GT(sdkmath.LegacyOneDec()) { return fmt.Errorf("pot community tax too large: %s", v) } @@ -221,22 +220,22 @@ func validateInitialTotalSupply(i interface{}) error { func (p Params) ValidateBasic() error { if err := validateBondDenom(p.BondDenom); err != nil { - return sdkerrors.Wrap(ErrInvalidDenom, "failed to validate bond denomination") + return errors.Wrap(ErrInvalidDenom, "failed to validate bond denomination") } if err := validateRewardDenom(p.RewardDenom); err != nil { - return sdkerrors.Wrap(ErrInvalidDenom, "failed to validate reward denomination") + return errors.Wrap(ErrInvalidDenom, "failed to validate reward denomination") } if err := validateMatureEpoch(p.MatureEpoch); err != nil { - return sdkerrors.Wrap(ErrMatureEpoch, "failed to validate mature epoch") + return errors.Wrap(ErrMatureEpoch, "failed to validate mature epoch") } if err := validateMiningRewardParams(p.MiningRewardParams); err != nil { - return sdkerrors.Wrap(ErrMiningRewardParams, "failed to validate mining reward params") + return errors.Wrap(ErrMiningRewardParams, "failed to validate mining reward params") } if err := validateCommunityTax(p.CommunityTax); err != nil { - return sdkerrors.Wrap(ErrCommunityTax, "failed to validate community tax") + return errors.Wrap(ErrCommunityTax, "failed to validate community tax") } if err := validateInitialTotalSupply(p.InitialTotalSupply); err != nil { - return sdkerrors.Wrap(ErrInitialTotalSupply, err.Error()) + return errors.Wrap(ErrInitialTotalSupply, err.Error()) } return nil } diff --git a/x/pot/types/pot.pb.go b/x/pot/types/pot.pb.go index 3b4ddd4e..5364e8d6 100644 --- a/x/pot/types/pot.pb.go +++ b/x/pot/types/pot.pb.go @@ -5,10 +5,11 @@ package types import ( fmt "fmt" + _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" @@ -440,79 +441,327 @@ func init() { func init() { proto.RegisterFile("stratos/pot/v1/pot.proto", fileDescriptor_a05930b44d981057) } var fileDescriptor_a05930b44d981057 = []byte{ - // 1112 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0x4f, 0x6f, 0x1c, 0xb5, - 0x1b, 0xce, 0x24, 0xed, 0xe6, 0x17, 0x27, 0x9b, 0xfe, 0x6a, 0x36, 0x64, 0x09, 0x65, 0x9d, 0xb8, - 0x02, 0x22, 0xa1, 0xec, 0x28, 0x45, 0xe2, 0x40, 0xc5, 0xa1, 0xdb, 0x16, 0x11, 0xa4, 0xa2, 0xc8, - 0x89, 0x5a, 0x51, 0x0e, 0x23, 0xef, 0x8c, 0xb3, 0x19, 0x75, 0x66, 0x3c, 0xcc, 0x78, 0xb7, 0x89, - 0xc4, 0x81, 0x23, 0x12, 0x97, 0x4a, 0x9c, 0x38, 0xf0, 0x05, 0x90, 0x38, 0x72, 0x44, 0x1c, 0xb8, - 0x14, 0x21, 0xa1, 0x1e, 0x11, 0x07, 0x83, 0x12, 0xb8, 0xec, 0x71, 0x3e, 0x01, 0x1a, 0xdb, 0x9b, - 0x9d, 0xfd, 0x1b, 0xf6, 0xc0, 0x69, 0xc7, 0xcf, 0xf3, 0xbe, 0x8f, 0x9f, 0xd7, 0x7e, 0xc7, 0x9e, - 0x05, 0xd5, 0x54, 0x24, 0x54, 0xf0, 0xd4, 0x8e, 0xb9, 0xb0, 0x3b, 0xbb, 0xf9, 0x4f, 0x3d, 0x4e, - 0xb8, 0xe0, 0x70, 0xd5, 0x30, 0xf5, 0x1c, 0xea, 0xec, 0x6e, 0x54, 0x5a, 0xbc, 0xc5, 0x15, 0x65, - 0xe7, 0x4f, 0x3a, 0x6a, 0xa3, 0xe6, 0xf2, 0x34, 0xe4, 0xa9, 0xdd, 0xa4, 0x29, 0xb3, 0x3b, 0xbb, - 0x4d, 0x26, 0xe8, 0xae, 0xed, 0x72, 0x3f, 0xd2, 0x3c, 0xfe, 0xfc, 0x2a, 0x28, 0xed, 0xd3, 0x84, - 0x86, 0x29, 0x6c, 0x00, 0xd0, 0xe4, 0x91, 0xe7, 0x78, 0x2c, 0xe2, 0x61, 0xd5, 0xda, 0xb4, 0xb6, - 0x97, 0x1a, 0x37, 0xbb, 0x12, 0x15, 0xd0, 0x4c, 0xa2, 0xeb, 0xa7, 0x34, 0x0c, 0xde, 0xc5, 0x7d, - 0x0c, 0x93, 0xa5, 0x7c, 0x70, 0x2f, 0x7f, 0x86, 0x1f, 0x82, 0x95, 0x84, 0x3d, 0xa5, 0x49, 0x4f, - 0x65, 0x5e, 0xa9, 0xbc, 0xd9, 0x95, 0x68, 0x00, 0xcf, 0x24, 0x7a, 0x49, 0xeb, 0x14, 0x51, 0x4c, - 0x96, 0xf5, 0xf0, 0x42, 0x2b, 0xa4, 0xa2, 0x9d, 0x30, 0x87, 0xc5, 0xdc, 0x3d, 0xae, 0x2e, 0x6c, - 0x5a, 0xdb, 0x0b, 0x5a, 0xab, 0x88, 0xf7, 0xb5, 0x8a, 0x28, 0x26, 0xcb, 0x7a, 0x78, 0x3f, 0x1f, - 0xc1, 0x67, 0x16, 0xa8, 0x84, 0x7e, 0xe4, 0x47, 0x2d, 0xc7, 0xcc, 0x18, 0xab, 0xa2, 0xab, 0x57, - 0x36, 0x17, 0xb6, 0x97, 0x6f, 0x6d, 0xd5, 0x07, 0x17, 0xb3, 0xfe, 0x40, 0xc5, 0x12, 0x15, 0xaa, - 0x96, 0xa7, 0x71, 0xfb, 0xb9, 0x44, 0x73, 0x5d, 0x89, 0xc6, 0xca, 0x64, 0x12, 0xbd, 0x6a, 0x3c, - 0x8c, 0x61, 0x31, 0x81, 0xe1, 0xb0, 0x5e, 0x0a, 0x3f, 0x03, 0x65, 0x97, 0x87, 0x61, 0x3b, 0xf2, - 0xc5, 0xa9, 0x23, 0xe8, 0x49, 0xf5, 0xaa, 0x5a, 0xab, 0x47, 0xf9, 0x3c, 0xbf, 0x4b, 0xf4, 0x46, - 0xcb, 0x17, 0xc7, 0xed, 0x66, 0xdd, 0xe5, 0xa1, 0x6d, 0xf6, 0x50, 0xff, 0xec, 0xa4, 0xde, 0x13, - 0x5b, 0x9c, 0xc6, 0x2c, 0xad, 0xdf, 0x63, 0x6e, 0x57, 0xa2, 0x41, 0x99, 0x4c, 0xa2, 0x8a, 0xb6, - 0x32, 0x00, 0x63, 0xb2, 0x72, 0x31, 0x3e, 0xa4, 0x27, 0xf0, 0x0b, 0x0b, 0x54, 0xfc, 0xc8, 0x17, - 0x3e, 0x0d, 0x1c, 0xc1, 0x05, 0x0d, 0x9c, 0xb4, 0x1d, 0xc7, 0xc1, 0x69, 0xb5, 0xb4, 0x69, 0x6d, - 0x2f, 0xdf, 0x7a, 0xa5, 0xae, 0x27, 0xab, 0xe7, 0x7d, 0x53, 0x37, 0x7d, 0x53, 0xbf, 0xcb, 0xfd, - 0xa8, 0xbf, 0x10, 0xe3, 0xd2, 0xfb, 0x0b, 0x31, 0x8e, 0xc5, 0x04, 0x1a, 0xf8, 0x30, 0x47, 0x0f, - 0x34, 0xf8, 0xeb, 0x22, 0xb8, 0x3e, 0xb2, 0xde, 0xf0, 0x2b, 0x0b, 0xac, 0xeb, 0xdc, 0xd0, 0x8f, - 0x98, 0xe7, 0x74, 0x68, 0xd0, 0x61, 0x4e, 0x2a, 0x68, 0x22, 0x54, 0x6f, 0x4e, 0xf5, 0x78, 0xc7, - 0x78, 0x9c, 0xa4, 0x90, 0x49, 0x54, 0xd3, 0x36, 0x27, 0x04, 0x60, 0x52, 0x51, 0xcc, 0x83, 0x9c, - 0x78, 0x98, 0xe3, 0x07, 0x39, 0x0c, 0xbf, 0xb4, 0xc0, 0xda, 0x68, 0x0a, 0x8b, 0x3c, 0xd5, 0xe9, - 0x53, 0x3d, 0xbd, 0x67, 0x3c, 0x8d, 0xcf, 0xcf, 0x24, 0xba, 0x31, 0xc9, 0x11, 0x8b, 0x3c, 0x4c, - 0xe0, 0x90, 0x9f, 0xfb, 0x91, 0x07, 0x43, 0x50, 0x1e, 0xe8, 0x37, 0xf5, 0x8a, 0x4c, 0x35, 0xb1, - 0x63, 0x4c, 0x0c, 0xe6, 0xf5, 0x7b, 0x66, 0x00, 0xc6, 0x64, 0xa5, 0xd8, 0xb7, 0xf0, 0x7b, 0x0b, - 0xdc, 0x68, 0x06, 0xdc, 0x7d, 0xe2, 0xb8, 0xc7, 0xd4, 0x8f, 0x9c, 0x98, 0x25, 0x2e, 0x8b, 0x04, - 0x6d, 0x31, 0xc7, 0x8f, 0x9c, 0x66, 0x5c, 0xbd, 0xa2, 0x3a, 0xb8, 0x3d, 0x43, 0x07, 0xef, 0x45, - 0xa2, 0x2b, 0xd1, 0x54, 0xd5, 0x4c, 0xa2, 0x9b, 0xe6, 0xcc, 0x99, 0x12, 0x85, 0x49, 0x55, 0xd1, - 0x77, 0x73, 0x76, 0xff, 0x82, 0xdc, 0x8b, 0x1a, 0x31, 0xfc, 0xc1, 0x02, 0xb5, 0x84, 0xa5, 0xbc, - 0x9d, 0xb8, 0xcc, 0x89, 0xb8, 0xc7, 0x46, 0x9d, 0xeb, 0x77, 0xef, 0x74, 0x66, 0xe7, 0x97, 0xe8, - 0x66, 0x12, 0xbd, 0xde, 0x3b, 0xe7, 0xa6, 0xc5, 0x61, 0xb2, 0xd1, 0x0b, 0xf8, 0x88, 0x7b, 0x6c, - 0xc8, 0xff, 0x77, 0x16, 0xd8, 0x08, 0x99, 0xa0, 0x13, 0xbc, 0x97, 0x94, 0xf7, 0x4f, 0x67, 0xf6, - 0x3e, 0x45, 0x33, 0x93, 0x68, 0xcb, 0x34, 0xc4, 0xc4, 0x18, 0x4c, 0x5e, 0xce, 0xc9, 0x51, 0xbf, - 0xf8, 0xaf, 0x05, 0x50, 0x32, 0x2d, 0x43, 0xc0, 0xea, 0x53, 0x1a, 0x04, 0x4c, 0x38, 0xd4, 0xf3, - 0x12, 0x96, 0xa6, 0xe6, 0x5e, 0x79, 0xab, 0x2b, 0xd1, 0x10, 0x93, 0x49, 0xb4, 0xa6, 0xe7, 0x1c, - 0xc4, 0x31, 0x29, 0x6b, 0xe0, 0x8e, 0x1e, 0xc3, 0x1f, 0x2d, 0xb0, 0x6e, 0xce, 0xd7, 0xa3, 0x84, - 0x87, 0x8e, 0xe9, 0xd9, 0x98, 0xf3, 0xa0, 0x3a, 0xaf, 0x8e, 0xf3, 0x29, 0x2f, 0x40, 0xd8, 0x3b, - 0x19, 0x26, 0x28, 0xf4, 0x4f, 0x86, 0x09, 0x01, 0xf8, 0xdb, 0x3f, 0xd0, 0xf6, 0xbf, 0x58, 0xe3, - 0x7c, 0xb6, 0x94, 0x54, 0xb4, 0xca, 0xfb, 0x09, 0x0f, 0xf5, 0x11, 0xb7, 0xcf, 0x79, 0x00, 0x7f, - 0xb2, 0x40, 0xb5, 0x28, 0x2f, 0x12, 0x7a, 0x74, 0xe4, 0xbb, 0xba, 0x84, 0x85, 0xcb, 0x4a, 0xe0, - 0xa6, 0x84, 0x89, 0x12, 0x99, 0x44, 0x68, 0xb4, 0x86, 0x62, 0xc4, 0x6c, 0x45, 0xac, 0xf5, 0x8b, - 0x38, 0xd4, 0x22, 0x79, 0x15, 0xf8, 0x17, 0x0b, 0xc0, 0x03, 0x3f, 0x6a, 0x05, 0xec, 0x91, 0xda, - 0x9f, 0x87, 0x3c, 0x68, 0x87, 0xec, 0x3f, 0xd9, 0x72, 0x0a, 0x4a, 0x1d, 0xa5, 0x6e, 0x3e, 0x28, - 0xf6, 0x66, 0x6e, 0x76, 0x93, 0x9f, 0x49, 0x54, 0xd6, 0x33, 0xea, 0x31, 0x26, 0x86, 0xc0, 0x31, - 0x28, 0x17, 0xcb, 0x48, 0xa1, 0x03, 0x16, 0x35, 0x95, 0x17, 0x90, 0x6f, 0x09, 0x1e, 0xfe, 0x48, - 0x18, 0x2d, 0xbe, 0xb1, 0x65, 0xf6, 0xa6, 0x97, 0x9a, 0x49, 0xb4, 0x5a, 0x9c, 0x2f, 0xc5, 0xa4, - 0x47, 0xe1, 0xbf, 0x2d, 0x00, 0x75, 0x1a, 0x61, 0x31, 0x4f, 0x04, 0x61, 0x2e, 0x4f, 0x3c, 0x78, - 0x1b, 0xfc, 0x2f, 0x51, 0x63, 0x96, 0x98, 0x95, 0x43, 0x5d, 0x89, 0x2e, 0xb0, 0x4c, 0xa2, 0x6b, - 0xbd, 0xcd, 0xd5, 0x08, 0x26, 0x17, 0x24, 0x7c, 0x0c, 0xfe, 0xaf, 0x9f, 0x9d, 0x84, 0x1d, 0xb1, - 0x84, 0x45, 0x6e, 0x6f, 0xc9, 0xec, 0xae, 0x44, 0x23, 0x5c, 0x26, 0xd1, 0x7a, 0x51, 0xac, 0xcf, - 0x60, 0x72, 0x2d, 0x31, 0xae, 0x0c, 0x02, 0xdf, 0x01, 0x8b, 0xe2, 0xc4, 0x39, 0xa6, 0xa9, 0xfe, - 0x14, 0x5b, 0x6a, 0xbc, 0x96, 0x17, 0x6a, 0xa0, 0x7e, 0xa1, 0x06, 0xc0, 0xa4, 0x24, 0x4e, 0x3e, - 0xc8, 0x1f, 0x7e, 0x9e, 0x07, 0xcb, 0xea, 0xbe, 0x37, 0x67, 0xc2, 0xd7, 0xd6, 0xf0, 0xb5, 0x65, - 0x5d, 0xd6, 0xf2, 0x1f, 0xcf, 0x74, 0x6d, 0xcd, 0xd4, 0xdc, 0x83, 0x57, 0xdc, 0x37, 0x16, 0x58, - 0xed, 0xbd, 0x28, 0xc6, 0xdc, 0xa5, 0x47, 0xca, 0x27, 0xc6, 0xdc, 0x50, 0x62, 0xbf, 0xb9, 0x07, - 0xf1, 0xd9, 0xec, 0x95, 0x4d, 0xb2, 0xf6, 0xd7, 0xd8, 0x7b, 0x7e, 0x56, 0xb3, 0x5e, 0x9c, 0xd5, - 0xac, 0x3f, 0xcf, 0x6a, 0xd6, 0xb3, 0xf3, 0xda, 0xdc, 0x8b, 0xf3, 0xda, 0xdc, 0x6f, 0xe7, 0xb5, - 0xb9, 0xc7, 0x76, 0x41, 0xd2, 0xf4, 0x69, 0xc4, 0x44, 0xef, 0x71, 0x47, 0xdd, 0x9a, 0xf6, 0x89, - 0xfa, 0x1b, 0xa1, 0xf4, 0x9b, 0x25, 0xf5, 0x07, 0xe0, 0xed, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, - 0x33, 0xe5, 0x4c, 0x15, 0x62, 0x0c, 0x00, 0x00, + // 1141 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0x31, 0x6c, 0x23, 0x45, + 0x14, 0xcd, 0x24, 0x77, 0x0e, 0x99, 0xc4, 0x39, 0x6e, 0x70, 0x88, 0x2f, 0x1c, 0x9e, 0x64, 0x4e, + 0x40, 0x24, 0x14, 0x5b, 0x39, 0x24, 0x0a, 0x4e, 0x14, 0xe7, 0xcb, 0x21, 0x82, 0x14, 0x14, 0x6d, + 0xa2, 0x3b, 0x71, 0x14, 0xab, 0xf5, 0xee, 0xc4, 0x59, 0xdd, 0xee, 0xcc, 0x6a, 0x77, 0xec, 0x4b, + 0x2a, 0x0a, 0x0a, 0x10, 0x14, 0x9c, 0x44, 0x45, 0x41, 0x8f, 0xa8, 0xe9, 0x28, 0x28, 0xa0, 0x38, + 0x24, 0x8a, 0x13, 0x15, 0x50, 0x0c, 0x28, 0x81, 0xc6, 0xe5, 0x96, 0x54, 0x68, 0x67, 0xc6, 0xf1, + 0xda, 0x8e, 0x1d, 0x5c, 0x5c, 0xe5, 0x99, 0xf7, 0xff, 0x7f, 0xf3, 0xdf, 0x9f, 0x3f, 0x33, 0x6b, + 0x58, 0x4e, 0x44, 0xec, 0x08, 0x9e, 0xd4, 0x22, 0x2e, 0x6a, 0xed, 0xcd, 0xec, 0xa7, 0x1a, 0xc5, + 0x5c, 0x70, 0xb4, 0x68, 0x2c, 0xd5, 0x0c, 0x6a, 0x6f, 0xae, 0x94, 0x9a, 0xbc, 0xc9, 0x95, 0xa9, + 0x96, 0x8d, 0xb4, 0xd7, 0xca, 0x35, 0x97, 0x27, 0x21, 0x4f, 0x6c, 0x6d, 0xd0, 0x13, 0x63, 0xaa, + 0xe8, 0x59, 0xad, 0xe1, 0x24, 0xb4, 0xd6, 0xde, 0x6c, 0x50, 0xe1, 0x6c, 0xd6, 0x5c, 0xee, 0x33, + 0x6d, 0x27, 0x5f, 0x5c, 0x86, 0x85, 0x5d, 0x27, 0x76, 0xc2, 0x04, 0xd5, 0x21, 0x6c, 0x70, 0xe6, + 0xd9, 0x1e, 0x65, 0x3c, 0x2c, 0x83, 0x55, 0xb0, 0x3e, 0x57, 0xbf, 0xd1, 0x91, 0x38, 0x87, 0xa6, + 0x12, 0x5f, 0x3d, 0x76, 0xc2, 0xe0, 0x2d, 0xd2, 0xc3, 0x88, 0x35, 0x97, 0x4d, 0xb6, 0xb2, 0x31, + 0x7a, 0x0f, 0x2e, 0xc4, 0xf4, 0x91, 0x13, 0x77, 0x59, 0xa6, 0x15, 0xcb, 0x6b, 0x1d, 0x89, 0xfb, + 0xf0, 0x54, 0xe2, 0x17, 0x34, 0x4f, 0x1e, 0x25, 0xd6, 0xbc, 0x9e, 0x9e, 0x71, 0x85, 0x8e, 0x68, + 0xc5, 0xd4, 0xa6, 0x11, 0x77, 0x0f, 0xcb, 0x33, 0xab, 0x60, 0x7d, 0x46, 0x73, 0xe5, 0xf1, 0x1e, + 0x57, 0x1e, 0x25, 0xd6, 0xbc, 0x9e, 0xde, 0xcd, 0x66, 0xe8, 0x31, 0x80, 0xa5, 0xd0, 0x67, 0x3e, + 0x6b, 0xda, 0x66, 0xc5, 0x48, 0x89, 0x2e, 0x5f, 0x5a, 0x9d, 0x59, 0x9f, 0xbf, 0xb9, 0x56, 0xed, + 0xaf, 0x73, 0x75, 0x47, 0xf9, 0x5a, 0xca, 0x55, 0x95, 0xa7, 0x7e, 0xeb, 0x89, 0xc4, 0x53, 0x1d, + 0x89, 0xcf, 0xa5, 0x49, 0x25, 0x7e, 0xc9, 0xe4, 0x70, 0x8e, 0x95, 0x58, 0x28, 0x1c, 0xe4, 0x4b, + 0xd0, 0x67, 0x00, 0x16, 0x5d, 0x1e, 0x86, 0x2d, 0xe6, 0x8b, 0x63, 0x5b, 0x38, 0x47, 0xe5, 0xcb, + 0xaa, 0x58, 0x34, 0x5b, 0xe8, 0x0f, 0x89, 0x5f, 0x6d, 0xfa, 0xe2, 0xb0, 0xd5, 0xa8, 0xba, 0x3c, + 0x34, 0x5b, 0x6a, 0x7e, 0x36, 0x12, 0xef, 0x61, 0x4d, 0x1c, 0x47, 0x34, 0xa9, 0x6e, 0x51, 0xb7, + 0x23, 0x71, 0x3f, 0x4d, 0x2a, 0x71, 0x49, 0xe7, 0xd2, 0x07, 0x93, 0x5f, 0xbf, 0xdb, 0x80, 0xa6, + 0x35, 0xb6, 0xa8, 0x6b, 0x2d, 0x9c, 0x59, 0xf7, 0x9d, 0x23, 0xf4, 0x29, 0x80, 0x25, 0x9f, 0xf9, + 0xc2, 0x77, 0x02, 0x5b, 0x70, 0xe1, 0x04, 0x76, 0xd2, 0x8a, 0xa2, 0xe0, 0xb8, 0x5c, 0x58, 0x05, + 0xeb, 0xf3, 0x37, 0xaf, 0x55, 0x4d, 0x64, 0xd6, 0x46, 0x55, 0xd3, 0x46, 0xd5, 0x3b, 0xdc, 0x67, + 0xbd, 0xba, 0x9c, 0x17, 0xde, 0xab, 0xcb, 0x79, 0x56, 0x62, 0x21, 0x03, 0xef, 0x67, 0xe8, 0x9e, + 0x06, 0xff, 0x9d, 0x85, 0x57, 0x87, 0xca, 0x8f, 0xbe, 0x04, 0x70, 0x59, 0xc7, 0x86, 0x3e, 0xa3, + 0x9e, 0xdd, 0x76, 0x82, 0x36, 0xb5, 0x13, 0xe1, 0xc4, 0x42, 0xb5, 0xea, 0xd8, 0x1c, 0x6f, 0x9b, + 0x1c, 0x47, 0x31, 0xa4, 0x12, 0x57, 0x74, 0x9a, 0x23, 0x1c, 0x88, 0x55, 0x52, 0x96, 0x9d, 0xcc, + 0x70, 0x2f, 0xc3, 0xf7, 0x32, 0x18, 0x7d, 0x0e, 0xe0, 0xd2, 0x70, 0x08, 0x65, 0x9e, 0x6a, 0xfc, + 0xb1, 0x39, 0xbd, 0x6d, 0x72, 0x3a, 0x3f, 0x3e, 0x95, 0xf8, 0xfa, 0xa8, 0x8c, 0x28, 0xf3, 0x88, + 0x85, 0x06, 0xf2, 0xb9, 0xcb, 0x3c, 0x14, 0xc2, 0x62, 0x5f, 0xfb, 0xa9, 0x13, 0x33, 0x36, 0x89, + 0x0d, 0x93, 0x44, 0x7f, 0x5c, 0xaf, 0x83, 0xfa, 0x60, 0x62, 0x2d, 0xe4, 0xdb, 0x18, 0xfd, 0x04, + 0xe0, 0xf5, 0x46, 0xc0, 0xdd, 0x87, 0xb6, 0x7b, 0xe8, 0xf8, 0xcc, 0x8e, 0x68, 0xec, 0x52, 0x26, + 0x9c, 0x26, 0xb5, 0x7d, 0x66, 0x37, 0xa2, 0xf2, 0x25, 0xd5, 0xcf, 0x1f, 0x83, 0x09, 0x1a, 0x7a, + 0x9b, 0x89, 0x8e, 0xc4, 0x63, 0x69, 0x53, 0x89, 0x6f, 0x98, 0x3b, 0x68, 0x8c, 0x57, 0xbe, 0xdd, + 0xb7, 0x99, 0xb0, 0xca, 0xca, 0xf9, 0x4e, 0xe6, 0xbb, 0x7b, 0xe6, 0xba, 0xcd, 0xea, 0x11, 0xfa, + 0x05, 0xc0, 0x4a, 0x4c, 0x13, 0xde, 0x8a, 0x5d, 0x6a, 0x33, 0xee, 0xd1, 0x61, 0x21, 0xfa, 0x60, + 0x7e, 0x32, 0xb9, 0x90, 0x0b, 0x88, 0x53, 0x89, 0x5f, 0xe9, 0x5e, 0x83, 0xe3, 0xfc, 0x06, 0xc5, + 0xac, 0x74, 0xdd, 0xdf, 0xe7, 0x1e, 0x1d, 0x90, 0xf3, 0x3d, 0x80, 0x2b, 0x21, 0x15, 0xce, 0x08, + 0x29, 0x05, 0x25, 0xe5, 0xa3, 0x89, 0x95, 0x8c, 0xe1, 0x4c, 0x25, 0x5e, 0x33, 0xed, 0x32, 0xd2, + 0x67, 0x50, 0xc1, 0x8b, 0x99, 0xeb, 0x70, 0xf6, 0xe4, 0xef, 0x19, 0x58, 0x30, 0xed, 0x65, 0xc1, + 0xc5, 0x47, 0x4e, 0x10, 0x50, 0x61, 0x3b, 0x9e, 0x17, 0xd3, 0x24, 0x31, 0x4f, 0xd2, 0xeb, 0x1d, + 0x89, 0x07, 0x2c, 0xa9, 0xc4, 0x4b, 0x3a, 0x83, 0x7e, 0x9c, 0x58, 0x45, 0x0d, 0xdc, 0xd6, 0x73, + 0xf4, 0x03, 0x80, 0xcb, 0xe6, 0x6a, 0x3e, 0x88, 0x79, 0x68, 0x9b, 0xfe, 0x8e, 0x38, 0x0f, 0xca, + 0xd3, 0xea, 0x25, 0x18, 0x73, 0x58, 0xc2, 0xee, 0x2d, 0x32, 0x82, 0xa1, 0x77, 0x8b, 0x8c, 0x70, + 0x20, 0xdf, 0xfe, 0x89, 0xd7, 0xff, 0x47, 0xc5, 0xb3, 0xd5, 0x12, 0xab, 0xa4, 0x59, 0xde, 0x89, + 0x79, 0xa8, 0xaf, 0xc3, 0x5d, 0xce, 0x03, 0xf4, 0x23, 0x80, 0xe5, 0x3c, 0xbd, 0x88, 0x9d, 0x83, + 0x03, 0xdf, 0xd5, 0x12, 0x66, 0x2e, 0x92, 0xc0, 0x8d, 0x84, 0x91, 0x14, 0xa9, 0xc4, 0x78, 0x58, + 0x43, 0xde, 0x63, 0x32, 0x11, 0x4b, 0x3d, 0x11, 0xfb, 0x9a, 0x24, 0x53, 0x41, 0x7e, 0x07, 0x10, + 0xed, 0xf9, 0xac, 0x19, 0xd0, 0xfb, 0x6a, 0x7f, 0xee, 0xf1, 0xa0, 0x15, 0xd2, 0x67, 0xb2, 0xe5, + 0x1c, 0x16, 0xda, 0x8a, 0xdd, 0x7c, 0x8b, 0xdc, 0x9f, 0xb8, 0xf5, 0x4d, 0x7c, 0x2a, 0x71, 0x51, + 0xaf, 0xa8, 0xe7, 0x83, 0x2d, 0x6d, 0xdc, 0x48, 0x04, 0x8b, 0x79, 0x51, 0x09, 0xb2, 0xe1, 0xac, + 0x36, 0x65, 0x72, 0xb2, 0x0d, 0x22, 0x83, 0x5f, 0x1b, 0xc3, 0xa5, 0xa8, 0xaf, 0x99, 0x9d, 0xea, + 0x86, 0xa6, 0x12, 0x2f, 0xe6, 0x57, 0x4f, 0x88, 0xd5, 0x35, 0x91, 0x7f, 0x00, 0x44, 0x3a, 0xcc, + 0xa2, 0x11, 0x8f, 0x85, 0x45, 0x5d, 0x1e, 0x7b, 0xe8, 0x16, 0x7c, 0x2e, 0x56, 0x73, 0x1a, 0x9b, + 0x3a, 0xe2, 0x8e, 0xc4, 0x67, 0x58, 0x2a, 0xf1, 0x95, 0xee, 0x56, 0x6b, 0x84, 0x58, 0x67, 0x46, + 0xf4, 0x00, 0x3e, 0xaf, 0xc7, 0x76, 0x4c, 0x0f, 0x68, 0x4c, 0x99, 0xdb, 0x2d, 0x60, 0xad, 0x23, + 0xf1, 0x90, 0x2d, 0x95, 0x78, 0x39, 0x4f, 0xd6, 0xb3, 0x10, 0xeb, 0x4a, 0x6c, 0xb2, 0x32, 0x08, + 0x7a, 0x13, 0xce, 0x8a, 0x23, 0xfb, 0xd0, 0x49, 0xf4, 0x37, 0xdd, 0x5c, 0xfd, 0xe5, 0x4c, 0xa8, + 0x81, 0x7a, 0x42, 0x0d, 0x40, 0xac, 0x82, 0x38, 0x7a, 0x37, 0x1b, 0xfc, 0x3c, 0x0d, 0xe7, 0xd5, + 0x97, 0x82, 0xb9, 0x21, 0xbe, 0x02, 0x83, 0x0f, 0x1e, 0xb8, 0xe8, 0x00, 0x7c, 0x30, 0xd1, 0x83, + 0x37, 0x51, 0xab, 0xf7, 0x3f, 0x8e, 0x5f, 0x03, 0xb8, 0xd8, 0x3d, 0x36, 0x26, 0xb9, 0x0b, 0x2f, + 0x98, 0x0f, 0x4d, 0x72, 0x03, 0x81, 0xbd, 0x56, 0xef, 0xc7, 0x27, 0x4b, 0xaf, 0x68, 0x82, 0x75, + 0x7e, 0xf5, 0x9d, 0x6f, 0x4e, 0x2a, 0xe0, 0xc9, 0x49, 0x05, 0x3c, 0x3d, 0xa9, 0x80, 0xbf, 0x4e, + 0x2a, 0xe0, 0xf1, 0x69, 0x65, 0xea, 0xe9, 0x69, 0x65, 0xea, 0xb7, 0xd3, 0xca, 0xd4, 0x83, 0x5a, + 0x8e, 0xd6, 0xf4, 0x2a, 0xa3, 0xa2, 0x3b, 0xdc, 0x50, 0x4f, 0x6e, 0xed, 0x48, 0xfd, 0x5d, 0x51, + 0x6b, 0x34, 0x0a, 0xea, 0xdf, 0xc4, 0x1b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x32, 0x93, 0x8d, + 0x71, 0xca, 0x0c, 0x00, 0x00, +} + +func (this *Params) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Params) + if !ok { + that2, ok := that.(Params) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.BondDenom != that1.BondDenom { + return false + } + if this.RewardDenom != that1.RewardDenom { + return false + } + if this.MatureEpoch != that1.MatureEpoch { + return false + } + if len(this.MiningRewardParams) != len(that1.MiningRewardParams) { + return false + } + for i := range this.MiningRewardParams { + if !this.MiningRewardParams[i].Equal(&that1.MiningRewardParams[i]) { + return false + } + } + if !this.CommunityTax.Equal(that1.CommunityTax) { + return false + } + if !this.InitialTotalSupply.Equal(&that1.InitialTotalSupply) { + return false + } + return true } +func (this *MiningRewardParam) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MiningRewardParam) + if !ok { + that2, ok := that.(MiningRewardParam) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.TotalMinedValveStart.Equal(&that1.TotalMinedValveStart) { + return false + } + if !this.TotalMinedValveEnd.Equal(&that1.TotalMinedValveEnd) { + return false + } + if !this.MiningReward.Equal(&that1.MiningReward) { + return false + } + if !this.BlockChainPercentageInBp.Equal(that1.BlockChainPercentageInBp) { + return false + } + if !this.ResourceNodePercentageInBp.Equal(that1.ResourceNodePercentageInBp) { + return false + } + if !this.MetaNodePercentageInBp.Equal(that1.MetaNodePercentageInBp) { + return false + } + return true +} +func (this *Reward) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Reward) + if !ok { + that2, ok := that.(Reward) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.WalletAddress != that1.WalletAddress { + return false + } + if len(this.RewardFromMiningPool) != len(that1.RewardFromMiningPool) { + return false + } + for i := range this.RewardFromMiningPool { + if !this.RewardFromMiningPool[i].Equal(&that1.RewardFromMiningPool[i]) { + return false + } + } + if len(this.RewardFromTrafficPool) != len(that1.RewardFromTrafficPool) { + return false + } + for i := range this.RewardFromTrafficPool { + if !this.RewardFromTrafficPool[i].Equal(&that1.RewardFromTrafficPool[i]) { + return false + } + } + return true +} +func (this *SingleWalletVolume) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + that1, ok := that.(*SingleWalletVolume) + if !ok { + that2, ok := that.(SingleWalletVolume) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.WalletAddress != that1.WalletAddress { + return false + } + if !this.Volume.Equal(that1.Volume) { + return false + } + return true +} +func (this *WalletVolumes) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*WalletVolumes) + if !ok { + that2, ok := that.(WalletVolumes) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.Volumes) != len(that1.Volumes) { + return false + } + for i := range this.Volumes { + if !this.Volumes[i].Equal(&that1.Volumes[i]) { + return false + } + } + return true +} +func (this *VolumeReportRecord) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*VolumeReportRecord) + if !ok { + that2, ok := that.(VolumeReportRecord) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Reporter != that1.Reporter { + return false + } + if this.ReportReference != that1.ReportReference { + return false + } + if this.TxHash != that1.TxHash { + return false + } + return true +} +func (this *TotalReward) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*TotalReward) + if !ok { + that2, ok := that.(TotalReward) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.MiningReward) != len(that1.MiningReward) { + return false + } + for i := range this.MiningReward { + if !this.MiningReward[i].Equal(&that1.MiningReward[i]) { + return false + } + } + if len(this.TrafficReward) != len(that1.TrafficReward) { + return false + } + for i := range this.TrafficReward { + if !this.TrafficReward[i].Equal(&that1.TrafficReward[i]) { + return false + } + } + return true +} func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) diff --git a/x/pot/types/querier.go b/x/pot/types/querier.go index aac3da35..1e028740 100644 --- a/x/pot/types/querier.go +++ b/x/pot/types/querier.go @@ -1,6 +1,7 @@ package types import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -32,11 +33,11 @@ func NewRewardInfo( type QueryIndividualRewardsByReportEpochParams struct { Page int Limit int - Epoch sdk.Int + Epoch sdkmath.Int } // NewQueryIndividualRewardsByEpochParams creates a new instance of QueryIndividualRewardsByReportEpochParams -func NewQueryIndividualRewardsByEpochParams(page, limit int, epoch sdk.Int) QueryIndividualRewardsByReportEpochParams { +func NewQueryIndividualRewardsByEpochParams(page, limit int, epoch sdkmath.Int) QueryIndividualRewardsByReportEpochParams { return QueryIndividualRewardsByReportEpochParams{ Page: page, Limit: limit, @@ -47,10 +48,10 @@ func NewQueryIndividualRewardsByEpochParams(page, limit int, epoch sdk.Int) Quer type QueryRewardsByWalletAddrParams struct { WalletAddr sdk.AccAddress Height int64 - Epoch sdk.Int + Epoch sdkmath.Int } -func NewQueryRewardsByWalletAddrParams(walletAddr sdk.AccAddress, height int64, epoch sdk.Int) QueryRewardsByWalletAddrParams { +func NewQueryRewardsByWalletAddrParams(walletAddr sdk.AccAddress, height int64, epoch sdkmath.Int) QueryRewardsByWalletAddrParams { return QueryRewardsByWalletAddrParams{ WalletAddr: walletAddr, Height: height, @@ -59,10 +60,10 @@ func NewQueryRewardsByWalletAddrParams(walletAddr sdk.AccAddress, height int64, } type QueryTotalRewardByEpochParams struct { - Epoch sdk.Int + Epoch sdkmath.Int } -func NewQueryTotalRewardByEpochParams(epoch sdk.Int) QueryTotalRewardByEpochParams { +func NewQueryTotalRewardByEpochParams(epoch sdkmath.Int) QueryTotalRewardByEpochParams { return QueryTotalRewardByEpochParams{ Epoch: epoch, } diff --git a/x/pot/types/query.pb.go b/x/pot/types/query.pb.go index 30dc2f58..d4531f4a 100644 --- a/x/pot/types/query.pb.go +++ b/x/pot/types/query.pb.go @@ -9,9 +9,9 @@ import ( github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" query "github.com/cosmos/cosmos-sdk/types/query" - _ "github.com/gogo/protobuf/gogoproto" - grpc1 "github.com/gogo/protobuf/grpc" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" diff --git a/x/pot/types/query.pb.gw.go b/x/pot/types/query.pb.gw.go index afefa286..7bbf494f 100644 --- a/x/pot/types/query.pb.gw.go +++ b/x/pot/types/query.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join func request_Query_VolumeReport_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryVolumeReportRequest @@ -376,12 +378,14 @@ func local_request_Query_TotalRewardByEpoch_0(ctx context.Context, marshaler run // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer 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 (such as grpc.SendHeader, etc) to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { mux.Handle("GET", pattern_Query_VolumeReport_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -389,6 +393,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_VolumeReport_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -402,6 +407,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_RewardsByEpoch_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -409,6 +416,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_RewardsByEpoch_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -422,6 +430,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_RewardsByOwner_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -429,6 +439,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_RewardsByOwner_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -442,6 +453,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_SlashingByOwner_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -449,6 +462,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_SlashingByOwner_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -462,6 +476,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_Params_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -469,6 +485,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Params_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -482,6 +499,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_TotalMinedToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -489,6 +508,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_TotalMinedToken_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -502,6 +522,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_CirculationSupply_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -509,6 +531,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_CirculationSupply_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -522,6 +545,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_TotalRewardByEpoch_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -529,6 +554,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_TotalRewardByEpoch_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -744,21 +770,21 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( - pattern_Query_VolumeReport_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "pot", "v1", "volume-report", "epoch"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_VolumeReport_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "pot", "v1", "volume-report", "epoch"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_RewardsByEpoch_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 4}, []string{"stratos", "pot", "v1", "rewards", "epoch"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_RewardsByEpoch_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 4}, []string{"stratos", "pot", "v1", "rewards", "epoch"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_RewardsByOwner_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"stratos", "pot", "v1", "rewards", "wallet", "wallet_address"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_RewardsByOwner_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5}, []string{"stratos", "pot", "v1", "rewards", "wallet", "wallet_address"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_SlashingByOwner_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "pot", "v1", "slashing", "wallet_address"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_SlashingByOwner_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "pot", "v1", "slashing", "wallet_address"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "params"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "params"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_TotalMinedToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "total-mined-token"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_TotalMinedToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "total-mined-token"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_CirculationSupply_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "circulation-supply"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_CirculationSupply_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "circulation-supply"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_TotalRewardByEpoch_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "pot", "v1", "total-reward", "epoch"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_TotalRewardByEpoch_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "pot", "v1", "total-reward", "epoch"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( diff --git a/x/pot/types/tx.pb.go b/x/pot/types/tx.pb.go index 53963fe8..dfcb1281 100644 --- a/x/pot/types/tx.pb.go +++ b/x/pot/types/tx.pb.go @@ -4,13 +4,15 @@ package types import ( + bytes "bytes" context "context" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - grpc1 "github.com/gogo/protobuf/grpc" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -624,78 +626,419 @@ func init() { func init() { proto.RegisterFile("stratos/pot/v1/tx.proto", fileDescriptor_103c258cace119ca) } var fileDescriptor_103c258cace119ca = []byte{ - // 1128 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0xcf, 0x6b, 0x24, 0x45, - 0x14, 0x4e, 0xe7, 0xd7, 0x26, 0x95, 0x4c, 0x92, 0x6d, 0x13, 0x33, 0x99, 0xdd, 0x4c, 0x25, 0xe5, - 0xba, 0x1b, 0x8d, 0xe9, 0x26, 0x11, 0x11, 0xd6, 0x83, 0x38, 0x2e, 0x6a, 0xd8, 0x44, 0xa1, 0x03, - 0xbb, 0xb0, 0x20, 0x4d, 0xcf, 0x74, 0xa5, 0xd3, 0x64, 0xa6, 0xaa, 0xe9, 0xaa, 0xc9, 0x24, 0x1e, - 0x3c, 0x78, 0xf2, 0xb8, 0xa0, 0x47, 0xff, 0x01, 0xbd, 0xfb, 0x17, 0x08, 0xb2, 0x37, 0x17, 0xbc, - 0x88, 0x87, 0x56, 0x12, 0x41, 0x98, 0xe3, 0x1c, 0x3d, 0x49, 0x57, 0x55, 0x57, 0xcf, 0x74, 0x46, - 0x37, 0xb2, 0x08, 0x7a, 0x9a, 0xa9, 0xef, 0x7b, 0xf5, 0xbd, 0xaf, 0x5f, 0xbd, 0x7e, 0xd5, 0x60, - 0x99, 0xf1, 0xd8, 0xe3, 0x94, 0xd9, 0x11, 0xe5, 0xf6, 0xc9, 0xb6, 0xcd, 0x4f, 0xad, 0x28, 0xa6, - 0x9c, 0x9a, 0x73, 0x8a, 0xb0, 0x22, 0xca, 0xad, 0x93, 0xed, 0xca, 0x62, 0x40, 0x03, 0x2a, 0x28, - 0x3b, 0xfd, 0x27, 0xa3, 0x2a, 0x37, 0x03, 0x4a, 0x83, 0x26, 0xb6, 0xbd, 0x28, 0xb4, 0x3d, 0x42, - 0x28, 0xf7, 0x78, 0x48, 0x09, 0x53, 0x6c, 0xb9, 0x20, 0x9e, 0x4a, 0x49, 0xa6, 0xda, 0xa0, 0xac, - 0x45, 0x99, 0x5d, 0xf7, 0x18, 0xb6, 0x4f, 0xb6, 0xeb, 0x98, 0x7b, 0xdb, 0x76, 0x83, 0x86, 0x44, - 0xf2, 0xe8, 0x87, 0x71, 0x30, 0xbf, 0xcf, 0x82, 0x07, 0xb4, 0xd9, 0x6e, 0x61, 0x07, 0x47, 0x34, - 0xe6, 0xe6, 0x27, 0x60, 0xae, 0xe3, 0x35, 0x9b, 0x98, 0xbb, 0x27, 0x02, 0x66, 0x65, 0x63, 0x6d, - 0x6c, 0x63, 0x66, 0x07, 0x59, 0x83, 0x56, 0xad, 0x83, 0x90, 0x04, 0x4d, 0xfc, 0x50, 0xc4, 0x4a, - 0x85, 0x9a, 0xfd, 0x24, 0x81, 0x23, 0xdd, 0x04, 0x16, 0x14, 0x7a, 0x09, 0x5c, 0x3a, 0xf3, 0x5a, - 0xcd, 0xbb, 0x68, 0x10, 0x47, 0x4e, 0xa9, 0xd3, 0xb7, 0x9d, 0x99, 0x6f, 0x81, 0xa9, 0x58, 0xb8, - 0xc0, 0x71, 0x79, 0x74, 0xcd, 0xd8, 0x98, 0xae, 0xc1, 0x6e, 0x02, 0x35, 0xd6, 0x4b, 0xe0, 0xbc, - 0xd4, 0xc9, 0x10, 0xe4, 0x68, 0xd2, 0xfc, 0x18, 0x4c, 0xe0, 0x88, 0x36, 0x8e, 0xca, 0x63, 0x62, - 0xe7, 0xfb, 0xa9, 0x97, 0x9f, 0x13, 0x78, 0x3b, 0x08, 0xf9, 0x51, 0xbb, 0x6e, 0x35, 0x68, 0xcb, - 0x56, 0xe5, 0x90, 0x3f, 0x5b, 0xcc, 0x3f, 0xb6, 0xf9, 0x59, 0x84, 0x99, 0xb5, 0x4b, 0x78, 0x37, - 0x81, 0x72, 0x7b, 0x2f, 0x81, 0xb3, 0x32, 0x89, 0x58, 0x22, 0x47, 0xc2, 0xe6, 0x23, 0xb0, 0x20, - 0x53, 0xb9, 0x31, 0x3e, 0xc4, 0x31, 0x26, 0x0d, 0x5c, 0x1e, 0x17, 0x99, 0xec, 0x6e, 0x02, 0x2f, - 0x71, 0xbd, 0x04, 0x2e, 0xf7, 0x7b, 0xcd, 0x19, 0xe4, 0xcc, 0x4b, 0xc8, 0xc9, 0x10, 0xd3, 0x01, - 0x73, 0xd9, 0x63, 0xb8, 0xb4, 0x43, 0x70, 0x5c, 0x9e, 0x10, 0xca, 0x9b, 0x69, 0x2d, 0x07, 0x99, - 0xbc, 0x96, 0x83, 0x38, 0x72, 0x4a, 0x19, 0xf0, 0x51, 0xba, 0x36, 0x39, 0x28, 0xd5, 0xf6, 0x0e, - 0x5c, 0x16, 0x06, 0xc4, 0xe3, 0xed, 0x18, 0x97, 0x27, 0xd7, 0x8c, 0x8d, 0x99, 0x9d, 0xb5, 0xe2, - 0x31, 0xd6, 0xf6, 0x0e, 0x0e, 0xb2, 0x98, 0x5d, 0x72, 0x48, 0x6b, 0x5b, 0xea, 0x10, 0x4b, 0xf5, - 0x26, 0xcb, 0xb7, 0xf7, 0x12, 0xb8, 0x28, 0xf3, 0x0e, 0xc0, 0xc8, 0x99, 0xed, 0x17, 0x40, 0x2b, - 0x60, 0xb9, 0xd0, 0x50, 0x0e, 0x66, 0x11, 0x25, 0x0c, 0xa3, 0x6f, 0x47, 0xc1, 0xcc, 0x3e, 0x0b, - 0x1e, 0x86, 0xfc, 0xc8, 0x8f, 0xbd, 0x8e, 0xf9, 0x29, 0x98, 0xf4, 0x5a, 0xb4, 0x4d, 0xb8, 0x6a, - 0xb0, 0x15, 0x4b, 0x9e, 0x8b, 0x95, 0x76, 0xab, 0xa5, 0xba, 0xd5, 0x7a, 0x97, 0x86, 0xa4, 0x76, - 0x5f, 0x59, 0x52, 0x1b, 0x7a, 0x09, 0x2c, 0x49, 0x2f, 0x72, 0x8d, 0xbe, 0xf9, 0x05, 0x6e, 0x5c, - 0xe1, 0x98, 0x53, 0x2d, 0xe6, 0x28, 0x91, 0xb4, 0xe8, 0xaa, 0x1d, 0x3d, 0xdf, 0x8f, 0x31, 0x63, - 0xaa, 0xe5, 0x36, 0xfb, 0x1a, 0x58, 0x31, 0x97, 0x1a, 0x58, 0xe1, 0xba, 0x81, 0xdf, 0x91, 0xeb, - 0x54, 0x93, 0x7b, 0x71, 0xd0, 0xa7, 0x39, 0x96, 0x6b, 0x0e, 0x32, 0xb9, 0xe6, 0x20, 0x8e, 0x9c, - 0x92, 0x04, 0x94, 0x26, 0x5a, 0x02, 0x2f, 0xf4, 0x95, 0x4d, 0x97, 0xf3, 0xcb, 0x51, 0x70, 0x7d, - 0x9f, 0x05, 0x7b, 0x38, 0xf0, 0x1a, 0x67, 0xff, 0x99, 0xa2, 0x6e, 0x82, 0xf1, 0xc3, 0x98, 0xb6, - 0x54, 0x29, 0x97, 0xbb, 0x09, 0x14, 0xeb, 0x5e, 0x02, 0x67, 0xa4, 0x78, 0xba, 0x42, 0x8e, 0x00, - 0xff, 0x95, 0x6a, 0xdd, 0x00, 0x2b, 0x97, 0xaa, 0xa2, 0x6b, 0xf6, 0x9d, 0x01, 0x16, 0xf7, 0x59, - 0xf0, 0x1e, 0x6d, 0x13, 0x5f, 0x8c, 0xd0, 0x7b, 0x38, 0xa2, 0x2c, 0xe4, 0xff, 0xab, 0xb2, 0xa1, - 0x2a, 0xb8, 0x39, 0xec, 0x21, 0xf4, 0x53, 0xfe, 0x31, 0x26, 0x5e, 0xc2, 0x83, 0xa6, 0xc7, 0x8e, - 0x42, 0x12, 0x38, 0x98, 0xd1, 0x76, 0xdc, 0xc0, 0x1f, 0x52, 0x1f, 0x9b, 0x6f, 0x83, 0xe9, 0x6c, - 0x4c, 0xc8, 0xc1, 0x3e, 0x5d, 0x5b, 0xef, 0x26, 0x30, 0x07, 0x7b, 0x09, 0x5c, 0x18, 0x9c, 0x2f, - 0x0c, 0x39, 0x39, 0x3d, 0x64, 0x54, 0x8d, 0x0a, 0x95, 0xe7, 0x19, 0x55, 0x0f, 0xc0, 0x3c, 0xc1, - 0xbc, 0x43, 0xe3, 0xe3, 0x42, 0x23, 0x6c, 0x75, 0x13, 0x58, 0xa4, 0x7a, 0x09, 0x7c, 0x51, 0xaa, - 0x16, 0x08, 0xe4, 0xcc, 0x29, 0xa4, 0xef, 0x6d, 0x2c, 0xbc, 0xe1, 0xe3, 0xcf, 0xfd, 0x86, 0x63, - 0x30, 0xc5, 0x54, 0x61, 0xd5, 0x90, 0xde, 0xfd, 0x47, 0x97, 0x8c, 0xde, 0x9d, 0x5f, 0x66, 0x19, - 0x82, 0x1c, 0x4d, 0x9a, 0x6f, 0x82, 0x6b, 0xac, 0xcd, 0x22, 0x4c, 0x7c, 0x31, 0xb7, 0xa7, 0x6a, - 0xab, 0xdd, 0x04, 0x66, 0x50, 0x2f, 0x81, 0x73, 0x6a, 0xab, 0x04, 0x90, 0x93, 0x51, 0x68, 0x1d, - 0xc0, 0xbf, 0x38, 0x7b, 0xdd, 0x1f, 0xdf, 0x1b, 0x60, 0xa1, 0x38, 0xf5, 0xcd, 0xbb, 0x60, 0x2a, - 0x6a, 0xd7, 0xdd, 0x63, 0x7c, 0x26, 0xfb, 0x62, 0x56, 0x5e, 0xbd, 0x19, 0x96, 0xbb, 0xcd, 0x10, - 0xe4, 0x5c, 0x8b, 0xda, 0xf5, 0xfb, 0xf8, 0x8c, 0xa5, 0x4d, 0x95, 0x5f, 0x33, 0x69, 0x0b, 0xcf, - 0xca, 0xa6, 0xea, 0xbf, 0x3c, 0x54, 0x53, 0xf5, 0x5d, 0x1c, 0x39, 0x6d, 0xbe, 0x01, 0x26, 0xf9, - 0xe9, 0x3d, 0x8f, 0x7b, 0xe2, 0xdc, 0x67, 0xe5, 0xc3, 0xf2, 0x53, 0xd7, 0xf7, 0xb8, 0x97, 0x3f, - 0xac, 0x02, 0x90, 0xa3, 0x82, 0x77, 0x7e, 0x9f, 0x00, 0x63, 0xfb, 0x2c, 0x30, 0x3f, 0x37, 0xc0, - 0xd2, 0x07, 0x1e, 0xf1, 0x9b, 0xb8, 0xf8, 0x31, 0x03, 0x8b, 0xb7, 0x5d, 0x21, 0xa0, 0x72, 0xe7, - 0x19, 0x01, 0xba, 0x68, 0x2f, 0x7f, 0xf6, 0xe3, 0x6f, 0x5f, 0x8c, 0x42, 0xb4, 0x6a, 0x17, 0xbe, - 0xb6, 0xe4, 0xb7, 0x8c, 0x2b, 0x3b, 0xda, 0xec, 0x80, 0xeb, 0xda, 0x89, 0x1e, 0xca, 0x37, 0x86, - 0x24, 0xc9, 0xc8, 0xca, 0x4b, 0x7f, 0x43, 0xea, 0xec, 0x6b, 0x22, 0x7b, 0x05, 0x95, 0x8b, 0xd9, - 0x3b, 0x59, 0x8e, 0xc7, 0x06, 0x58, 0xd6, 0x99, 0x0b, 0x97, 0xc2, 0xfa, 0x90, 0x14, 0x83, 0x21, - 0x95, 0x57, 0x9e, 0x19, 0xa2, 0xbd, 0xdc, 0x11, 0x5e, 0xd6, 0x11, 0x2c, 0x7a, 0x69, 0x8a, 0x78, - 0x57, 0x5b, 0xfa, 0xca, 0x00, 0x15, 0x6d, 0xe9, 0xf2, 0xcc, 0xbd, 0x35, 0x24, 0xe5, 0xa5, 0xa8, - 0xca, 0x6b, 0x57, 0x89, 0xd2, 0xde, 0x5e, 0x15, 0xde, 0x6e, 0x21, 0x54, 0xf4, 0x76, 0xa8, 0xb7, - 0xb8, 0xbe, 0xca, 0xff, 0xb5, 0x01, 0x56, 0xb5, 0xbd, 0xa1, 0xc3, 0x72, 0x58, 0x73, 0x0c, 0x0b, - 0xac, 0xd8, 0x57, 0x0c, 0xd4, 0x3e, 0x2d, 0xe1, 0x73, 0x03, 0xdd, 0x2e, 0xfa, 0xcc, 0x06, 0x80, - 0x1b, 0xab, 0x6d, 0x2e, 0xa1, 0x3e, 0xae, 0xed, 0x3e, 0x39, 0xaf, 0x1a, 0x4f, 0xcf, 0xab, 0xc6, - 0xaf, 0xe7, 0x55, 0xe3, 0xf1, 0x45, 0x75, 0xe4, 0xe9, 0x45, 0x75, 0xe4, 0xa7, 0x8b, 0xea, 0xc8, - 0x23, 0xbb, 0x6f, 0xf2, 0x28, 0x2d, 0x82, 0x79, 0xf6, 0x77, 0xab, 0x71, 0xe4, 0x85, 0xc4, 0x3e, - 0x15, 0xf2, 0x62, 0x0c, 0xd5, 0x27, 0xc5, 0xa7, 0xff, 0xeb, 0x7f, 0x06, 0x00, 0x00, 0xff, 0xff, - 0x96, 0x31, 0xad, 0xe9, 0x93, 0x0c, 0x00, 0x00, + // 1148 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x57, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0xae, 0xfb, 0x6b, 0xdb, 0x69, 0xd3, 0x76, 0x4d, 0x4b, 0xd3, 0xec, 0x36, 0xd3, 0x0e, 0xcb, + 0x6e, 0xa1, 0x34, 0x56, 0x8b, 0x10, 0xd2, 0x72, 0x40, 0x84, 0x15, 0xa2, 0xda, 0x06, 0x24, 0x57, + 0x6c, 0xa5, 0xbd, 0x58, 0x4e, 0x3c, 0x75, 0xad, 0x26, 0x33, 0x96, 0x67, 0xd2, 0xb4, 0x1c, 0x38, + 0x70, 0xda, 0xe3, 0x4a, 0x70, 0xe4, 0x0f, 0x00, 0xce, 0xf0, 0x17, 0x20, 0xa1, 0x3d, 0xae, 0xe0, + 0x82, 0x90, 0x30, 0xa8, 0x45, 0x42, 0xca, 0x31, 0x7f, 0x01, 0xf2, 0xcc, 0x78, 0x9c, 0xb8, 0x81, + 0x2d, 0x5a, 0x21, 0xc1, 0xa9, 0x99, 0xef, 0x7b, 0xf3, 0xde, 0x37, 0xcf, 0x9f, 0xdf, 0xb8, 0x60, + 0x99, 0xf1, 0xc8, 0xe5, 0x94, 0x59, 0x21, 0xe5, 0xd6, 0xc9, 0xb6, 0xc5, 0x4f, 0x2b, 0x61, 0x44, + 0x39, 0x35, 0xe7, 0x14, 0x51, 0x09, 0x29, 0xaf, 0x9c, 0x6c, 0x97, 0x16, 0x7d, 0xea, 0x53, 0x41, + 0x59, 0xc9, 0x2f, 0x19, 0x55, 0x5a, 0x69, 0x50, 0xd6, 0xa2, 0xcc, 0x91, 0x84, 0x5c, 0x28, 0xea, + 0xa6, 0x4f, 0xa9, 0xdf, 0xc4, 0x96, 0x1b, 0x06, 0x96, 0x4b, 0x08, 0xe5, 0x2e, 0x0f, 0x28, 0x49, + 0xd9, 0x62, 0xae, 0x6e, 0x52, 0x45, 0x32, 0x65, 0x99, 0xc5, 0xaa, 0xbb, 0x0c, 0x5b, 0x27, 0xdb, + 0x75, 0xcc, 0xdd, 0x6d, 0xab, 0x41, 0x03, 0x22, 0x79, 0xf4, 0xcb, 0x38, 0x98, 0xaf, 0x31, 0xff, + 0x01, 0x6d, 0xb6, 0x5b, 0xd8, 0xc6, 0x21, 0x8d, 0xb8, 0xf9, 0x31, 0x98, 0xeb, 0xb8, 0xcd, 0x26, + 0xe6, 0xce, 0x89, 0x80, 0x59, 0xd1, 0x58, 0x1b, 0xdb, 0x98, 0xd9, 0x41, 0x95, 0xc1, 0x53, 0x54, + 0xf6, 0x03, 0xe2, 0x37, 0xf1, 0x81, 0x88, 0x95, 0x19, 0xaa, 0xd6, 0x93, 0x18, 0x8e, 0x74, 0x63, + 0x98, 0xcb, 0xd0, 0x8b, 0xe1, 0xd2, 0x99, 0xdb, 0x6a, 0xde, 0x45, 0x83, 0x38, 0xb2, 0x0b, 0x9d, + 0xbe, 0xed, 0xcc, 0x7c, 0x0b, 0x4c, 0x45, 0x42, 0x05, 0x8e, 0x8a, 0xa3, 0x6b, 0xc6, 0xc6, 0x74, + 0x15, 0x76, 0x63, 0xa8, 0xb1, 0x5e, 0x0c, 0xe7, 0x65, 0x9e, 0x14, 0x41, 0xb6, 0x26, 0xcd, 0x63, + 0x30, 0x81, 0x43, 0xda, 0x38, 0x2a, 0x8e, 0x89, 0x9d, 0x1f, 0x25, 0x5a, 0x7e, 0x8e, 0xe1, 0x6d, + 0x3f, 0xe0, 0x47, 0xed, 0x7a, 0xa5, 0x41, 0x5b, 0xaa, 0xa9, 0xea, 0xcf, 0x16, 0xf3, 0x8e, 0x2d, + 0x7e, 0x16, 0x62, 0x56, 0xd9, 0x25, 0xbc, 0x1b, 0x43, 0xb9, 0xbd, 0x17, 0xc3, 0x59, 0x59, 0x44, + 0x2c, 0xd1, 0x0f, 0xdf, 0x6c, 0x01, 0xf5, 0x30, 0x76, 0x09, 0xb7, 0x65, 0x90, 0xf9, 0x10, 0x2c, + 0xc8, 0xc2, 0x4e, 0x84, 0x0f, 0x71, 0x84, 0x49, 0x03, 0x17, 0xc7, 0x45, 0x5d, 0xab, 0x1b, 0xc3, + 0x4b, 0x5c, 0x2f, 0x86, 0xcb, 0xfd, 0xca, 0x33, 0x06, 0xd9, 0xf3, 0x12, 0xb2, 0x53, 0xc4, 0xb4, + 0xc1, 0x5c, 0x7a, 0x28, 0x87, 0x76, 0x08, 0x8e, 0x8a, 0x13, 0x22, 0xf3, 0x66, 0xd2, 0xd9, 0x41, + 0x26, 0xeb, 0xec, 0x20, 0x8e, 0xec, 0x42, 0x0a, 0x7c, 0x98, 0xac, 0x4d, 0x0e, 0x0a, 0xd5, 0xbd, + 0x7d, 0x87, 0x05, 0x3e, 0x71, 0x79, 0x3b, 0xc2, 0xc5, 0xc9, 0x35, 0x63, 0x63, 0x66, 0x67, 0x2d, + 0xff, 0x50, 0xab, 0x7b, 0xfb, 0xfb, 0x69, 0xcc, 0x2e, 0x39, 0xa4, 0xd5, 0x2d, 0xf5, 0x48, 0x0b, + 0xf5, 0x26, 0xcb, 0xb6, 0xf7, 0x62, 0xb8, 0x28, 0xeb, 0x0e, 0xc0, 0xc8, 0x9e, 0xed, 0x4f, 0x80, + 0x56, 0xc0, 0x72, 0xce, 0x5e, 0x36, 0x66, 0x21, 0x25, 0x0c, 0xa3, 0x6f, 0x47, 0xc1, 0x4c, 0x8d, + 0xf9, 0x07, 0x01, 0x3f, 0xf2, 0x22, 0xb7, 0x63, 0x7e, 0x02, 0x26, 0xdd, 0x16, 0x6d, 0x13, 0xae, + 0xec, 0xb6, 0x52, 0x51, 0x4d, 0x4f, 0xbc, 0x5b, 0x51, 0xde, 0xad, 0xbc, 0x4b, 0x03, 0x52, 0xbd, + 0xaf, 0x24, 0xa9, 0x0d, 0xbd, 0x18, 0x16, 0xa4, 0x16, 0xb9, 0x46, 0x5f, 0xff, 0x0a, 0x37, 0xae, + 0xf0, 0xd0, 0x93, 0x5c, 0xcc, 0x56, 0x49, 0x92, 0xa6, 0x2b, 0x73, 0xba, 0x9e, 0x17, 0x61, 0xc6, + 0x94, 0x01, 0x37, 0xfb, 0xec, 0xac, 0x98, 0x4b, 0x76, 0x56, 0xb8, 0xb6, 0xf3, 0x3b, 0x72, 0x9d, + 0xe4, 0xe4, 0x6e, 0xe4, 0xf7, 0xe5, 0x1c, 0xcb, 0x72, 0x0e, 0x32, 0x59, 0xce, 0x41, 0x1c, 0xd9, + 0x05, 0x09, 0xa8, 0x9c, 0x68, 0x09, 0xbc, 0xd0, 0xd7, 0x36, 0xdd, 0xce, 0xcf, 0x47, 0xc1, 0xf5, + 0x1a, 0xf3, 0xf7, 0xb0, 0xef, 0x36, 0xce, 0xfe, 0x33, 0x4d, 0xdd, 0x04, 0xe3, 0x87, 0x11, 0x6d, + 0xa9, 0x56, 0x2e, 0x77, 0x63, 0x28, 0xd6, 0xbd, 0x18, 0xce, 0xc8, 0xe4, 0xc9, 0x0a, 0xd9, 0x02, + 0xfc, 0x57, 0xba, 0x75, 0x03, 0xac, 0x5c, 0xea, 0x8a, 0xee, 0xd9, 0x77, 0x06, 0x58, 0xac, 0x31, + 0xff, 0x3d, 0xda, 0x26, 0x9e, 0x18, 0xa8, 0xf7, 0x70, 0x48, 0x59, 0xc0, 0xff, 0x57, 0x6d, 0x43, + 0x65, 0x70, 0x73, 0xd8, 0x21, 0xf4, 0x29, 0x1f, 0x8d, 0x8b, 0x97, 0x70, 0xbf, 0xe9, 0xb2, 0xa3, + 0x80, 0xf8, 0x36, 0x66, 0xb4, 0x1d, 0x35, 0xf0, 0x07, 0xd4, 0xc3, 0xe6, 0xdb, 0x60, 0x3a, 0x1d, + 0x13, 0x72, 0xcc, 0x4f, 0x57, 0xd7, 0xbb, 0x31, 0xcc, 0xc0, 0x5e, 0x0c, 0x17, 0x06, 0xe7, 0x0b, + 0x43, 0x76, 0x46, 0x0f, 0x19, 0x55, 0xa3, 0x22, 0xcb, 0xf3, 0x8c, 0xaa, 0x07, 0x60, 0x9e, 0x60, + 0xde, 0xa1, 0xd1, 0x71, 0xce, 0x08, 0x5b, 0xdd, 0x18, 0xe6, 0xa9, 0x5e, 0x0c, 0x5f, 0x94, 0x59, + 0x73, 0x04, 0xb2, 0xe7, 0x14, 0xd2, 0xf7, 0x36, 0xe6, 0xde, 0xf0, 0xf1, 0xe7, 0x7e, 0xc3, 0x19, + 0x98, 0x62, 0xaa, 0xb1, 0x6a, 0x48, 0x1f, 0xfc, 0xa3, 0x2b, 0x47, 0xef, 0xce, 0xae, 0xb6, 0x14, + 0xc9, 0x5f, 0x3c, 0x3a, 0xd4, 0x7c, 0x13, 0x5c, 0x63, 0x6d, 0x16, 0x62, 0xe2, 0x89, 0x29, 0x3e, + 0x55, 0x5d, 0xed, 0xc6, 0x30, 0x85, 0x7a, 0x31, 0x9c, 0x53, 0x89, 0x24, 0x80, 0xec, 0x94, 0x42, + 0xeb, 0x00, 0xfe, 0x85, 0x13, 0xb4, 0x5b, 0xbe, 0x37, 0xc0, 0x42, 0xfe, 0x0e, 0x30, 0xef, 0x82, + 0xa9, 0xb0, 0x5d, 0x77, 0x8e, 0xf1, 0x99, 0x74, 0xc9, 0xac, 0xbc, 0x96, 0x53, 0x2c, 0xd3, 0x9e, + 0x22, 0xc8, 0xbe, 0x16, 0xb6, 0xeb, 0xf7, 0xf1, 0x19, 0x4b, 0x2c, 0x96, 0x5d, 0x3a, 0x89, 0xa1, + 0x67, 0xa5, 0xc5, 0xfa, 0xaf, 0x12, 0x65, 0xb1, 0xbe, 0x6b, 0x24, 0xa3, 0xcd, 0x37, 0xc0, 0x24, + 0x3f, 0xbd, 0xe7, 0x72, 0x57, 0xb8, 0x60, 0x56, 0x1e, 0x96, 0x9f, 0x3a, 0x9e, 0xcb, 0xdd, 0xec, + 0xb0, 0x0a, 0x40, 0xb6, 0x0a, 0xde, 0xf9, 0x63, 0x02, 0x8c, 0xd5, 0x98, 0x6f, 0x3e, 0x32, 0xc0, + 0xd2, 0xfb, 0x2e, 0xf1, 0x9a, 0x38, 0xff, 0xa1, 0x03, 0xf3, 0x77, 0x5f, 0x2e, 0xa0, 0x74, 0xe7, + 0x19, 0x01, 0xba, 0x69, 0x2f, 0x7f, 0xfa, 0xe3, 0xef, 0x9f, 0x8d, 0x42, 0xb4, 0x6a, 0xe5, 0xbe, + 0xc4, 0xe4, 0x77, 0x8e, 0x23, 0xfd, 0x6d, 0x76, 0xc0, 0x75, 0xad, 0x44, 0x8f, 0xe8, 0x1b, 0x43, + 0x8a, 0xa4, 0x64, 0xe9, 0xa5, 0xbf, 0x21, 0x75, 0xf5, 0x35, 0x51, 0xbd, 0x84, 0x8a, 0xf9, 0xea, + 0x9d, 0xb4, 0xc6, 0x63, 0x03, 0x2c, 0xeb, 0xca, 0xb9, 0x2b, 0x62, 0x7d, 0x48, 0x89, 0xc1, 0x90, + 0xd2, 0x2b, 0xcf, 0x0c, 0xd1, 0x5a, 0xee, 0x08, 0x2d, 0xeb, 0x08, 0xe6, 0xb5, 0x34, 0x45, 0xbc, + 0xa3, 0x25, 0x7d, 0x61, 0x80, 0x92, 0x96, 0x74, 0x79, 0x02, 0xdf, 0x1a, 0x52, 0xf2, 0x52, 0x54, + 0xe9, 0xb5, 0xab, 0x44, 0x69, 0x6d, 0xaf, 0x0a, 0x6d, 0xb7, 0x10, 0xca, 0x6b, 0x3b, 0xd4, 0x5b, + 0x1c, 0x4f, 0xd5, 0xff, 0xca, 0x00, 0xab, 0x5a, 0xde, 0xd0, 0xd1, 0x39, 0xcc, 0x1c, 0xc3, 0x02, + 0x4b, 0xd6, 0x15, 0x03, 0xb5, 0xce, 0x8a, 0xd0, 0xb9, 0x81, 0x6e, 0xe7, 0x75, 0xa6, 0x03, 0xc0, + 0x89, 0xd4, 0x36, 0x87, 0x50, 0x0f, 0x57, 0x6b, 0x5f, 0x9e, 0x97, 0x8d, 0x27, 0xe7, 0x65, 0xe3, + 0xe9, 0x79, 0xd9, 0xf8, 0xed, 0xbc, 0x6c, 0x3c, 0xbe, 0x28, 0x8f, 0x3c, 0xbd, 0x28, 0x8f, 0xfc, + 0x74, 0x51, 0x1e, 0x79, 0x68, 0xf5, 0xcd, 0x22, 0x95, 0x8f, 0x60, 0x9e, 0xfe, 0xdc, 0x6a, 0x1c, + 0xb9, 0x01, 0xb1, 0x4e, 0x45, 0x09, 0x31, 0x98, 0xea, 0x93, 0xe2, 0x5f, 0x83, 0xd7, 0xff, 0x0c, + 0x00, 0x00, 0xff, 0xff, 0x85, 0x51, 0xcb, 0x32, 0xce, 0x0c, 0x00, 0x00, +} + +func (this *MsgVolumeReport) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgVolumeReport) + if !ok { + that2, ok := that.(MsgVolumeReport) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.WalletVolumes) != len(that1.WalletVolumes) { + return false + } + for i := range this.WalletVolumes { + if !this.WalletVolumes[i].Equal(&that1.WalletVolumes[i]) { + return false + } + } + if this.Reporter != that1.Reporter { + return false + } + if !this.Epoch.Equal(that1.Epoch) { + return false + } + if this.ReportReference != that1.ReportReference { + return false + } + if this.ReporterOwner != that1.ReporterOwner { + return false + } + if !this.BLSSignature.Equal(&that1.BLSSignature) { + return false + } + return true +} +func (this *MsgVolumeReportResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgVolumeReportResponse) + if !ok { + that2, ok := that.(MsgVolumeReportResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgWithdraw) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgWithdraw) + if !ok { + that2, ok := that.(MsgWithdraw) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.Amount) != len(that1.Amount) { + return false + } + for i := range this.Amount { + if !this.Amount[i].Equal(&that1.Amount[i]) { + return false + } + } + if this.WalletAddress != that1.WalletAddress { + return false + } + if this.TargetAddress != that1.TargetAddress { + return false + } + return true +} +func (this *MsgWithdrawResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgWithdrawResponse) + if !ok { + that2, ok := that.(MsgWithdrawResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgLegacyWithdraw) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgLegacyWithdraw) + if !ok { + that2, ok := that.(MsgLegacyWithdraw) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.Amount) != len(that1.Amount) { + return false + } + for i := range this.Amount { + if !this.Amount[i].Equal(&that1.Amount[i]) { + return false + } + } + if this.From != that1.From { + return false + } + if this.TargetAddress != that1.TargetAddress { + return false + } + return true +} +func (this *MsgLegacyWithdrawResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgLegacyWithdrawResponse) + if !ok { + that2, ok := that.(MsgLegacyWithdrawResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgFoundationDeposit) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgFoundationDeposit) + if !ok { + that2, ok := that.(MsgFoundationDeposit) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.Amount) != len(that1.Amount) { + return false + } + for i := range this.Amount { + if !this.Amount[i].Equal(&that1.Amount[i]) { + return false + } + } + if this.From != that1.From { + return false + } + return true +} +func (this *MsgFoundationDepositResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgFoundationDepositResponse) + if !ok { + that2, ok := that.(MsgFoundationDepositResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgSlashingResourceNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgSlashingResourceNode) + if !ok { + that2, ok := that.(MsgSlashingResourceNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.Reporters) != len(that1.Reporters) { + return false + } + for i := range this.Reporters { + if this.Reporters[i] != that1.Reporters[i] { + return false + } + } + if len(this.ReporterOwner) != len(that1.ReporterOwner) { + return false + } + for i := range this.ReporterOwner { + if this.ReporterOwner[i] != that1.ReporterOwner[i] { + return false + } + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if this.WalletAddress != that1.WalletAddress { + return false + } + if that1.Slashing == nil { + if this.Slashing != nil { + return false + } + } else if !this.Slashing.Equal(*that1.Slashing) { + return false + } + if this.Suspend != that1.Suspend { + return false + } + return true +} +func (this *MsgSlashingResourceNodeResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgSlashingResourceNodeResponse) + if !ok { + that2, ok := that.(MsgSlashingResourceNodeResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *BLSSignatureInfo) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*BLSSignatureInfo) + if !ok { + that2, ok := that.(BLSSignatureInfo) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.PubKeys) != len(that1.PubKeys) { + return false + } + for i := range this.PubKeys { + if !bytes.Equal(this.PubKeys[i], that1.PubKeys[i]) { + return false + } + } + if !bytes.Equal(this.Signature, that1.Signature) { + return false + } + if !bytes.Equal(this.TxData, that1.TxData) { + return false + } + return true } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/pot/types/tx.pb.gw.go b/x/pot/types/tx.pb.gw.go index 5c15af05..99916841 100644 --- a/x/pot/types/tx.pb.gw.go +++ b/x/pot/types/tx.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join var ( filter_Msg_HandleMsgVolumeReport_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -214,12 +216,14 @@ func local_request_Msg_HandleMsgSlashingResourceNode_0(ctx context.Context, mars // RegisterMsgHandlerServer registers the http handlers for service Msg to "mux". // UnaryRPC :call MsgServer 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 (such as grpc.SendHeader, etc) to stop working. Consider using RegisterMsgHandlerFromEndpoint instead. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterMsgHandlerFromEndpoint instead. func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server MsgServer) error { mux.Handle("POST", pattern_Msg_HandleMsgVolumeReport_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -227,6 +231,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgVolumeReport_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -240,6 +245,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgWithdraw_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -247,6 +254,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgWithdraw_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -260,6 +268,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgLegacyWithdraw_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -267,6 +277,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgLegacyWithdraw_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -280,6 +291,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgFoundationDeposit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -287,6 +300,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgFoundationDeposit_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -300,6 +314,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgSlashingResourceNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -307,6 +323,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgSlashingResourceNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -462,15 +479,15 @@ func RegisterMsgHandlerClient(ctx context.Context, mux *runtime.ServeMux, client } var ( - pattern_Msg_HandleMsgVolumeReport_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "volume_report"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgVolumeReport_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "volume_report"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgWithdraw_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "withdraw"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgWithdraw_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "withdraw"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgLegacyWithdraw_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "legacy_withdraw"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgLegacyWithdraw_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "legacy_withdraw"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgFoundationDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "foundation_deposit"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgFoundationDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "foundation_deposit"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgSlashingResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "slashing_resource_node"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgSlashingResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "slashing_resource_node"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( diff --git a/x/pot/types/types.go b/x/pot/types/types.go index 04183be2..1d5de583 100644 --- a/x/pot/types/types.go +++ b/x/pot/types/types.go @@ -1,6 +1,7 @@ package types import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" stratos "github.com/stratosnet/stratos-chain/types" ) @@ -8,7 +9,7 @@ import ( // NewSingleWalletVolume creates a new Msg instance func NewSingleWalletVolume( walletAddress sdk.AccAddress, - volume sdk.Int, + volume sdkmath.Int, ) SingleWalletVolume { return SingleWalletVolume{ WalletAddress: walletAddress.String(), @@ -17,7 +18,7 @@ func NewSingleWalletVolume( } func NewMiningRewardParam(totalMinedValveStart sdk.Coin, totalMinedValveEnd sdk.Coin, miningReward sdk.Coin, - resourceNodePercentageInBp sdk.Int, metaNodePercentageInBp sdk.Int, blockChainPercentageInBp sdk.Int) MiningRewardParam { + resourceNodePercentageInBp sdkmath.Int, metaNodePercentageInBp sdkmath.Int, blockChainPercentageInBp sdkmath.Int) MiningRewardParam { return MiningRewardParam{ TotalMinedValveStart: totalMinedValveStart, TotalMinedValveEnd: totalMinedValveEnd, diff --git a/x/register/abci.go b/x/register/abci.go index 46a2cde6..7068b1e9 100644 --- a/x/register/abci.go +++ b/x/register/abci.go @@ -1,7 +1,7 @@ package register import ( - abci "github.com/tendermint/tendermint/abci/types" + abci "github.com/cometbft/cometbft/abci/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -10,12 +10,12 @@ import ( // BeginBlocker check for infraction evidence or downtime of validators // on every begin block -func BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock, k keeper.Keeper) { +func BeginBlocker(ctx sdk.Context, _ abci.RequestBeginBlock, k keeper.Keeper) { k.UpdateMetaNodeBitMapIdxCache(ctx) } // EndBlocker called every block, process inflation, update validator set. -func EndBlocker(ctx sdk.Context, k keeper.Keeper) []abci.ValidatorUpdate { +func EndBlocker(ctx sdk.Context, _ abci.RequestEndBlock, k keeper.Keeper) []abci.ValidatorUpdate { k.BlockRegisteredNodesUpdates(ctx) return []abci.ValidatorUpdate{} } diff --git a/x/register/client/cli/query.go b/x/register/client/cli/query.go index fb2f4c81..7cf0b695 100644 --- a/x/register/client/cli/query.go +++ b/x/register/client/cli/query.go @@ -4,12 +4,14 @@ import ( "fmt" "strings" + "github.com/spf13/cobra" + "github.com/spf13/viper" + + "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/version" - "github.com/spf13/cobra" - "github.com/spf13/viper" + "github.com/stratosnet/stratos-chain/x/register/types" ) @@ -160,7 +162,7 @@ $ %s query register get-resource-node --network-address=stsds1np4d8re98lpgrcdqca // query resource node by network address queryFlagNetworkAddr := viper.GetString(FlagNetworkAddress) if len(queryFlagNetworkAddr) == 0 { - return sdkerrors.Wrap(types.ErrInvalidNetworkAddr, "Missing network address") + return errors.Wrap(types.ErrInvalidNetworkAddr, "Missing network address") } result, err := queryClient.ResourceNode(cmd.Context(), &types.QueryResourceNodeRequest{ @@ -205,7 +207,7 @@ $ %s query register get-meta-node --network-address=stsds1faej5w4q6hgnt0ft598dlm // query resource node by network address queryFlagNetworkAddr := viper.GetString(FlagNetworkAddress) if len(queryFlagNetworkAddr) == 0 { - return sdkerrors.Wrap(types.ErrInvalidNetworkAddr, "Missing network address") + return errors.Wrap(types.ErrInvalidNetworkAddr, "Missing network address") } result, err := queryClient.MetaNode(cmd.Context(), &types.QueryMetaNodeRequest{ diff --git a/x/register/client/cli/tx.go b/x/register/client/cli/tx.go index abe54460..06e70eaf 100644 --- a/x/register/client/cli/tx.go +++ b/x/register/client/cli/tx.go @@ -1,12 +1,14 @@ package cli import ( + "github.com/spf13/cobra" + flag "github.com/spf13/pflag" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/tx" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/spf13/cobra" - flag "github.com/spf13/pflag" + stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/register/types" ) @@ -48,14 +50,12 @@ func CreateResourceNodeCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildCreateResourceNodeMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildCreateResourceNodeMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } @@ -87,14 +87,12 @@ func CreateMetaNodeCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildCreateMetaNodeMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildCreateMetaNodeMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } cmd.Flags().AddFlagSet(flagSetPublicKey()) @@ -115,8 +113,7 @@ func CreateMetaNodeCmd() *cobra.Command { func RemoveResourceNodeCmd() *cobra.Command { cmd := &cobra.Command{ - Use: "remove-resource-node [flag]", - //Args: cobra.ExactArgs(1), + Use: "remove-resource-node [flag]", Short: "remove resource node", RunE: func(cmd *cobra.Command, args []string) error { clientCtx, err := client.GetClientTxContext(cmd) @@ -124,9 +121,7 @@ func RemoveResourceNodeCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildRemoveResourceNodeMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildRemoveResourceNodeMsg(clientCtx, cmd.Flags()) if err != nil { return err } @@ -144,10 +139,8 @@ func RemoveResourceNodeCmd() *cobra.Command { } func RemoveMetaNodeCmd() *cobra.Command { - cmd := &cobra.Command{ - Use: "remove-meta-node [flag]", - //Args: cobra.ExactArgs(1), + Use: "remove-meta-node [flag]", Short: "remove meta node", RunE: func(cmd *cobra.Command, args []string) error { clientCtx, err := client.GetClientTxContext(cmd) @@ -155,9 +148,7 @@ func RemoveMetaNodeCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildRemoveMetaNodeMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildRemoveMetaNodeMsg(clientCtx, cmd.Flags()) if err != nil { return err } @@ -184,14 +175,12 @@ func UpdateResourceNodeCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildUpdateResourceNodeMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildUpdateResourceNodeMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } @@ -202,8 +191,6 @@ func UpdateResourceNodeCmd() *cobra.Command { flags.AddTxFlagsToCmd(cmd) _ = cmd.MarkFlagRequired(FlagNetworkAddress) - //_ = cmd.MarkFlagRequired(FlagMoniker) - //_ = cmd.MarkFlagRequired(FlagNodeType) _ = cmd.MarkFlagRequired(flags.FlagFrom) return cmd @@ -219,14 +206,12 @@ func UpdateMetaNodeCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildUpdateMetaNodeMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildUpdateMetaNodeMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } @@ -236,7 +221,6 @@ func UpdateMetaNodeCmd() *cobra.Command { flags.AddTxFlagsToCmd(cmd) _ = cmd.MarkFlagRequired(FlagNetworkAddress) - //_ = cmd.MarkFlagRequired(FlagMoniker) _ = cmd.MarkFlagRequired(FlagNetworkAddress) _ = cmd.MarkFlagRequired(flags.FlagFrom) @@ -254,14 +238,12 @@ func UpdateResourceNodeDepositCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildUpdateResourceNodeDepositMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildUpdateResourceNodeDepositMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } @@ -287,14 +269,12 @@ func UpdateMetaNodeDepositCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildUpdateMetaNodeDepositMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildUpdateMetaNodeDepositMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } @@ -321,15 +301,12 @@ func MetaNodeRegistrationVoteCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildMetaNodeRegistrationVoteMsg(clientCtx, txf, cmd.Flags()) - + msg, err := newBuildMetaNodeRegistrationVoteMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } @@ -346,40 +323,40 @@ func MetaNodeRegistrationVoteCmd() *cobra.Command { } // makes a new CreateResourceNodeMsg. -func newBuildCreateResourceNodeMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgCreateResourceNode, error) { +func newBuildCreateResourceNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgCreateResourceNode, error) { flagAmountStr, err := fs.GetString(FlagAmount) if err != nil { - return txf, nil, err + return nil, err } amount, err := sdk.ParseCoinNormalized(flagAmountStr) if err != nil { - return txf, nil, err + return nil, err } flagNetworkAddrStr, err := fs.GetString(FlagNetworkAddress) if err != nil { - return txf, nil, err + return nil, err } networkAddr, err := stratos.SdsAddressFromBech32(flagNetworkAddrStr) if err != nil { - return txf, nil, err + return nil, err } ownerAddr := clientCtx.GetFromAddress() pkStr, err := fs.GetString(FlagPubKey) if err != nil { - return txf, nil, err + return nil, err } pubKey, err := stratos.SdsPubKeyFromBech32(pkStr) if err != nil { - return txf, nil, err + return nil, err } nodeTypeVal, err := fs.GetUint32(FlagNodeType) if err != nil { - return txf, nil, err + return nil, err } moniker, _ := fs.GetString(FlagMoniker) @@ -398,44 +375,44 @@ func newBuildCreateResourceNodeMsg(clientCtx client.Context, txf tx.Factory, fs // validate nodeTypeVal nodeType := types.NodeType(nodeTypeVal) if t := nodeType.Type(); t == "UNKNOWN" { - return txf, nil, types.ErrNodeType + return nil, types.ErrNodeType } msg, er := types.NewMsgCreateResourceNode(networkAddr, pubKey, amount, ownerAddr, description, nodeTypeVal) if er != nil { - return txf, nil, err + return nil, err } - return txf, msg, nil + return msg, nil } // makes a new MsgCreateMetaNode. -func newBuildCreateMetaNodeMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgCreateMetaNode, error) { +func newBuildCreateMetaNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgCreateMetaNode, error) { flagAmountStr, err := fs.GetString(FlagAmount) if err != nil { - return txf, nil, err + return nil, err } amount, err := sdk.ParseCoinNormalized(flagAmountStr) if err != nil { - return txf, nil, err + return nil, err } flagNetworkAddrStr, err := fs.GetString(FlagNetworkAddress) if err != nil { - return txf, nil, err + return nil, err } networkAddr, err := stratos.SdsAddressFromBech32(flagNetworkAddrStr) if err != nil { - return txf, nil, err + return nil, err } ownerAddr := clientCtx.GetFromAddress() pkStr, err := fs.GetString(FlagPubKey) if err != nil { - return txf, nil, err + return nil, err } pubKey, er := stratos.SdsPubKeyFromBech32(pkStr) if er != nil { - return txf, nil, err + return nil, err } moniker, _ := fs.GetString(FlagMoniker) @@ -452,20 +429,20 @@ func newBuildCreateMetaNodeMsg(clientCtx client.Context, txf tx.Factory, fs *fla ) msg, er := types.NewMsgCreateMetaNode(networkAddr, pubKey, amount, ownerAddr, description) if er != nil { - return txf, nil, err + return nil, err } - return txf, msg, nil + return msg, nil } // makes a new MsgUpdateResourceNode. -func newBuildUpdateResourceNodeMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgUpdateResourceNode, error) { +func newBuildUpdateResourceNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgUpdateResourceNode, error) { flagNetworkAddrStr, err := fs.GetString(FlagNetworkAddress) if err != nil { - return txf, nil, err + return nil, err } networkAddr, err := stratos.SdsAddressFromBech32(flagNetworkAddrStr) if err != nil { - return txf, nil, err + return nil, err } ownerAddr := clientCtx.GetFromAddress() @@ -485,27 +462,27 @@ func newBuildUpdateResourceNodeMsg(clientCtx client.Context, txf tx.Factory, fs nodeTypeVal, err := fs.GetUint32(FlagNodeType) if err != nil { - return txf, nil, types.ErrInvalidNodeType + return nil, types.ErrInvalidNodeType } // validate nodeTypeVal nodeType := types.NodeType(nodeTypeVal) if t := nodeType.Type(); t == "UNKNOWN" { - return txf, nil, types.ErrNodeType + return nil, types.ErrNodeType } msg := types.NewMsgUpdateResourceNode(description, nodeTypeVal, networkAddr, ownerAddr) - return txf, msg, nil + return msg, nil } // makes a new MsgUpdateMetaNode. -func newBuildUpdateMetaNodeMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgUpdateMetaNode, error) { +func newBuildUpdateMetaNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgUpdateMetaNode, error) { flagNetworkAddrStr, err := fs.GetString(FlagNetworkAddress) if err != nil { - return txf, nil, err + return nil, err } networkAddr, err := stratos.SdsAddressFromBech32(flagNetworkAddrStr) if err != nil { - return txf, nil, err + return nil, err } ownerAddr := clientCtx.GetFromAddress() @@ -524,126 +501,126 @@ func newBuildUpdateMetaNodeMsg(clientCtx client.Context, txf tx.Factory, fs *fla ) msg := types.NewMsgUpdateMetaNode(description, networkAddr, ownerAddr) - return txf, msg, nil + return msg, nil } // newBuildUpdateResourceNodeDepositMsg makes a new MsgUpdateResourceNodeDeposit. -func newBuildUpdateResourceNodeDepositMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) ( - tx.Factory, *types.MsgUpdateResourceNodeDeposit, error) { +func newBuildUpdateResourceNodeDepositMsg(clientCtx client.Context, fs *flag.FlagSet) ( + *types.MsgUpdateResourceNodeDeposit, error) { depositDeltaStr, err := fs.GetString(FlagDepositDelta) if err != nil { - return txf, nil, err + return nil, err } depositDelta, err := sdk.ParseCoinNormalized(depositDeltaStr) if err != nil { - return txf, nil, err + return nil, err } networkAddrStr, _ := fs.GetString(FlagNetworkAddress) networkAddr, err := stratos.SdsAddressFromBech32(networkAddrStr) if err != nil { - return txf, nil, err + return nil, err } ownerAddr := clientCtx.GetFromAddress() msg := types.NewMsgUpdateResourceNodeDeposit(networkAddr, ownerAddr, depositDelta) - return txf, msg, nil + return msg, nil } // newBuildUpdateMetaNodeDepositMsg makes a new MsgUpdateMetaNodeDeposit. -func newBuildUpdateMetaNodeDepositMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgUpdateMetaNodeDeposit, error) { +func newBuildUpdateMetaNodeDepositMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgUpdateMetaNodeDeposit, error) { depositDeltaStr, err := fs.GetString(FlagDepositDelta) if err != nil { - return txf, nil, err + return nil, err } depositDelta, err := sdk.ParseCoinNormalized(depositDeltaStr) if err != nil { - return txf, nil, err + return nil, err } networkAddrStr, _ := fs.GetString(FlagNetworkAddress) networkAddr, err := stratos.SdsAddressFromBech32(networkAddrStr) if err != nil { - return txf, nil, err + return nil, err } ownerAddr := clientCtx.GetFromAddress() msg := types.NewMsgUpdateMetaNodeDeposit(networkAddr, ownerAddr, depositDelta) - return txf, msg, nil + return msg, nil } -func newBuildMetaNodeRegistrationVoteMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgMetaNodeRegistrationVote, error) { +func newBuildMetaNodeRegistrationVoteMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgMetaNodeRegistrationVote, error) { candidateNetworkAddrStr, err := fs.GetString(FlagCandidateNetworkAddress) if err != nil { - return txf, nil, err + return nil, err } candidateNetworkAddr, err := stratos.SdsAddressFromBech32(candidateNetworkAddrStr) if err != nil { - return txf, nil, err + return nil, err } candidateOwnerAddrStr, err := fs.GetString(FlagCandidateOwnerAddress) if err != nil { - return txf, nil, err + return nil, err } candidateOwnerAddr, err := sdk.AccAddressFromBech32(candidateOwnerAddrStr) if err != nil { - return txf, nil, err + return nil, err } opinionVal, err := fs.GetBool(FlagOpinion) if err != nil { - return txf, nil, err + return nil, err } //opinion := types.VoteOpinionFromBool(opinionVal) voterNetworkAddrStr, err := fs.GetString(FlagVoterNetworkAddress) if err != nil { - return txf, nil, err + return nil, err } voterNetworkAddr, err := stratos.SdsAddressFromBech32(voterNetworkAddrStr) if err != nil { - return txf, nil, err + return nil, err } voterOwnerAddr := clientCtx.GetFromAddress() msg := types.NewMsgMetaNodeRegistrationVote(candidateNetworkAddr, candidateOwnerAddr, opinionVal, voterNetworkAddr, voterOwnerAddr) - return txf, msg, nil + return msg, nil } -func newBuildRemoveResourceNodeMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgRemoveResourceNode, error) { +func newBuildRemoveResourceNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgRemoveResourceNode, error) { flagNetworkAddrStr, err := fs.GetString(FlagNetworkAddress) if err != nil { - return txf, nil, err + return nil, err } networkAddr, err := stratos.SdsAddressFromBech32(flagNetworkAddrStr) if err != nil { - return txf, nil, err + return nil, err } ownerAddr := clientCtx.GetFromAddress() msg := types.NewMsgRemoveResourceNode(networkAddr, ownerAddr) - return txf, msg, nil + return msg, nil } -func newBuildRemoveMetaNodeMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgRemoveMetaNode, error) { +func newBuildRemoveMetaNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgRemoveMetaNode, error) { flagNetworkAddrStr, err := fs.GetString(FlagNetworkAddress) if err != nil { - return txf, nil, err + return nil, err } networkAddr, err := stratos.SdsAddressFromBech32(flagNetworkAddrStr) if err != nil { - return txf, nil, err + return nil, err } ownerAddr := clientCtx.GetFromAddress() msg := types.NewMsgRemoveMetaNode(networkAddr, ownerAddr) - return txf, msg, nil + return msg, nil } diff --git a/x/register/client/rest/query.go b/x/register/client/rest/query.go deleted file mode 100644 index 25e8e1b4..00000000 --- a/x/register/client/rest/query.go +++ /dev/null @@ -1,274 +0,0 @@ -package rest - -import ( - "fmt" - "net/http" - "strconv" - - "github.com/gorilla/mux" - - "github.com/cosmos/cosmos-sdk/client" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/query" - "github.com/cosmos/cosmos-sdk/types/rest" - - stratos "github.com/stratosnet/stratos-chain/types" - "github.com/stratosnet/stratos-chain/x/register/keeper" - "github.com/stratosnet/stratos-chain/x/register/types" -) - -func registerQueryRoutes(clientCtx client.Context, r *mux.Router) { - r.HandleFunc("/register/resource-node/{nodeAddress}", nodesWithParamsFn(clientCtx, keeper.QueryResourceNodeByNetworkAddr)).Methods("GET") - r.HandleFunc("/register/meta-node/{nodeAddress}", nodesWithParamsFn(clientCtx, keeper.QueryMetaNodeByNetworkAddr)).Methods("GET") - r.HandleFunc("/register/deposit", nodeDepositHandlerFn(clientCtx, keeper.QueryNodesDepositTotal)).Methods("GET") - r.HandleFunc("/register/deposit/address/{nodeAddress}", nodeDepositByNodeAddressFn(clientCtx, keeper.QueryNodeDepositByNodeAddr)).Methods("GET") - r.HandleFunc("/register/deposit/owner/{ownerAddress}", nodeDepositByOwnerFn(clientCtx, keeper.QueryNodeDepositByOwner)).Methods("GET") - r.HandleFunc("/register/params", registerParamsHandlerFn(clientCtx, keeper.QueryRegisterParams)).Methods("GET") - r.HandleFunc("/register/resource-count", resourceNodesCountFn(clientCtx, keeper.QueryResourceNodesCount)).Methods("GET") - r.HandleFunc("/register/meta-count", metaNodesCountFn(clientCtx, keeper.QueryMetaNodesCount)).Methods("GET") -} - -// GET request handler to query total number of bonded resource nodes -func resourceNodesCountFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.Query(route) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// GET request handler to query total number of bonded resource nodes -func metaNodesCountFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.Query(route) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// GET request handler to query params of Register module -func registerParamsHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.Query(route) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// GET request handler to query all resource/meta nodes -func nodesWithParamsFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - _, page, limit, err := rest.ParseHTTPArgsWithLimit(r, 0) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - var ( - networkAddr stratos.SdsAddress - moniker string - ownerAddr sdk.AccAddress - ) - - networkAddrStr := mux.Vars(r)["nodeAddress"] - networkAddr, ok = keeper.CheckSdsAddr(w, r, networkAddrStr) - if !ok { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - countTotal, err := strconv.ParseBool(r.FormValue("count_total")) - if err != nil { - countTotal = true - } - - reverse, err := strconv.ParseBool(r.FormValue("reverse")) - if err != nil { - reverse = false - } - offset := page * limit - - NodesPageRequest := query.PageRequest{Offset: uint64(offset), Limit: uint64(limit), CountTotal: countTotal, Reverse: reverse} - - params := types.NewQueryNodesParams(networkAddr, moniker, ownerAddr, NodesPageRequest) - bz, err := cliCtx.LegacyAmino.MarshalJSON(params) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.QueryWithData(route, bz) - if err != nil { - rest.WriteErrorResponse(w, http.StatusNotFound, err.Error()) - return - } - - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// GET request handler to query nodes total deposit info -func nodeDepositHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.Query(route) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// GET request handler to query node deposit info -func nodeDepositByNodeAddressFn(cliCtx client.Context, queryPath string) http.HandlerFunc { - - return func(w http.ResponseWriter, r *http.Request) { - NodeAddrStr := mux.Vars(r)["nodeAddress"] - nodeAddress, ok := keeper.CheckSdsAddr(w, r, NodeAddrStr) - if !ok { - return - } - - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, cliCtx, r) - if !ok { - return - } - - var ( - err error - queryType int64 - ) - if v := r.URL.Query().Get(RestQueryType); len(v) != 0 { - queryType, err = strconv.ParseInt(v, 10, 64) - if err != nil || queryType < types.QueryType_All || queryType > types.QueryType_PP { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - } else { - queryType = 0 - } - - params := types.NewQueryNodeDepositParams(nodeAddress, queryType) - bz, err := cliCtx.LegacyAmino.MarshalJSON(params) - if rest.CheckBadRequestError(w, err) { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.QueryWithData(route, bz) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - if rest.CheckInternalServerError(w, err) { - return - } - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// GET request handler to query nodes deposit info by Node wallet address -func nodeDepositByOwnerFn(cliCtx client.Context, queryPath string) http.HandlerFunc { - - return func(w http.ResponseWriter, r *http.Request) { - ownerAddressStr := mux.Vars(r)["ownerAddress"] - ownerAddress, ok := keeper.CheckAccAddr(w, r, ownerAddressStr) - if !ok { - return - } - - _, page, limit, err := rest.ParseHTTPArgsWithLimit(r, 0) - if rest.CheckBadRequestError(w, err) { - return - } - - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, cliCtx, r) - if !ok { - return - } - - countTotal, err := strconv.ParseBool(r.FormValue("count_total")) - if err != nil { - countTotal = true - } - - reverse, err := strconv.ParseBool(r.FormValue("reverse")) - if err != nil { - reverse = false - } - - offset := (page - 1) * limit - - if limit <= 0 { - limit = types.QueryDefaultLimit - } - - NodesPageRequest := query.PageRequest{Offset: uint64(offset), Limit: uint64(limit), CountTotal: countTotal, Reverse: reverse} - params := types.NewQueryNodesParams(nil, "", ownerAddress, NodesPageRequest) - bz, err := cliCtx.LegacyAmino.MarshalJSON(params) - if rest.CheckBadRequestError(w, err) { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.QueryWithData(route, bz) - if rest.CheckInternalServerError(w, err) { - return - } - - cliCtx = cliCtx.WithHeight(height) - if rest.CheckInternalServerError(w, err) { - return - } - rest.PostProcessResponse(w, cliCtx, res) - } -} diff --git a/x/register/client/rest/rest.go b/x/register/client/rest/rest.go deleted file mode 100644 index edb62dd3..00000000 --- a/x/register/client/rest/rest.go +++ /dev/null @@ -1,25 +0,0 @@ -package rest - -import ( - "github.com/gorilla/mux" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/rest" -) - -// REST Variable names -// nolint -const ( - RestNetworkAddr = "network" - RestNumLimit = "limit" - RestMoniker = "moniker" - RestOwner = "owner" - RestQueryType = "query_type" -) - -// RegisterHandlers registers register-related REST handlers to a router -func RegisterHandlers(clientCtx client.Context, rtr *mux.Router) { - r := rest.WithHTTPDeprecationHeaders(rtr) - registerQueryRoutes(clientCtx, r) - registerTxHandlers(clientCtx, r) -} diff --git a/x/register/client/rest/tx.go b/x/register/client/rest/tx.go deleted file mode 100644 index 29d26e9c..00000000 --- a/x/register/client/rest/tx.go +++ /dev/null @@ -1,509 +0,0 @@ -package rest - -import ( - "net/http" - - "github.com/gorilla/mux" - stratos "github.com/stratosnet/stratos-chain/types" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/tx" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/rest" - "github.com/stratosnet/stratos-chain/x/register/types" -) - -func registerTxHandlers(cliCtx client.Context, r *mux.Router) { - r.HandleFunc( - "/register/createResourceNode", - postCreateResourceNodeHandlerFn(cliCtx), - ).Methods("POST") - r.HandleFunc( - "/register/removeResourceNode", - postRemoveResourceNodeHandlerFn(cliCtx), - ).Methods("POST") - r.HandleFunc( - "/register/updateResourceNode", - postUpdateResourceNodeHandlerFn(cliCtx), - ).Methods("POST") - r.HandleFunc( - "/register/updateResourceNodeDeposit", - postUpdateResourceNodeDepositHandlerFn(cliCtx), - ).Methods("POST") - r.HandleFunc( - "/register/updateEffectiveDeposit", - postUpdateEffectiveDepositHandlerFn(cliCtx), - ).Methods("POST") - - r.HandleFunc( - "/register/createMetaNode", - postCreateMetaNodeHandlerFn(cliCtx), - ).Methods("POST") - r.HandleFunc( - "/register/removeMetaNode", - postRemoveMetaNodeHandlerFn(cliCtx), - ).Methods("POST") - r.HandleFunc( - "/register/updateMetaNode", - postUpdateMetaNodeHandlerFn(cliCtx), - ).Methods("POST") - r.HandleFunc( - "/register/updateMetaNodeDeposit", - postUpdateMetaNodeDepositHandlerFn(cliCtx), - ).Methods("POST") - r.HandleFunc( - "/register/metaNodeRegVote", - postMetaNodeRegVoteFn(cliCtx), - ).Methods("POST") -} - -type ( - CreateResourceNodeRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - NetworkAddr string `json:"network_address" yaml:"network_address"` - PubKey string `json:"pubkey" yaml:"pubkey"` // in bech32 - Amount sdk.Coin `json:"amount" yaml:"amount"` - Description types.Description `json:"description" yaml:"description"` - NodeType uint32 `json:"node_type" yaml:"node_type"` - } - - RemoveResourceNodeRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - ResourceNodeAddress string `json:"resource_node_address" yaml:"resource_node_address"` // in bech32 - } - - UpdateResourceNodeRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - Description types.Description `json:"description" yaml:"description"` - NodeType uint32 `json:"node_type" yaml:"node_type"` - NetworkAddress string `json:"network_address" yaml:"network_address"` - } - - UpdateResourceNodeDepositRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - NetworkAddress string `json:"network_address" yaml:"network_address"` - DepositDelta sdk.Coin `json:"deposit_delta" yaml:"deposit_delta"` - } - - UpdateEffectiveDepositRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - Reporters []stratos.SdsAddress `json:"reporters" yaml:"reporters"` // reporter(sp node) p2p address - ReporterOwner []sdk.AccAddress `json:"reporter_owner" yaml:"reporter_owner"` // report(sp node) wallet address - NetworkAddress string `json:"network_address" yaml:"network_address"` - EffectiveTokens sdk.Int `json:"effective_tokens" yaml:"effective_tokens"` - InitialTier uint32 `json:"initial_tier" yaml:"initial_tier"` - OngoingTier uint32 `json:"ongoing_tier" yaml:"ongoing_tier"` - } - - CreateMetaNodeRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - NetworkAddr string `json:"network_address" yaml:"network_address"` - PubKey string `json:"pubkey" yaml:"pubkey"` // in bech32 - Amount sdk.Coin `json:"amount" yaml:"amount"` - Description types.Description `json:"description" yaml:"description"` - } - - RemoveMetaNodeRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - MetaNodeAddress string `json:"meta_node_address" yaml:"meta_node_address"` // in bech32 - } - - UpdateMetaNodeRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - Description types.Description `json:"description" yaml:"description"` - NetworkAddress string `json:"network_address" yaml:"network_address"` - } - - UpdateMetaNodeDepositRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - NetworkAddress string `json:"network_address" yaml:"network_address"` - DepositDelta sdk.Coin `json:"deposit_delta" yaml:"deposit_delta"` - IncrDeposit string `json:"incr_deposit" yaml:"incr_deposit"` - } - - MetaNodeRegVoteRequest struct { - BaseReq rest.BaseReq `json:"base_req" yaml:"base_req"` - CandidateNetworkAddress string `json:"candidate_network_address" yaml:"candidate_network_address"` - CandidateOwnerAddress string `json:"candidate_owner_address" yaml:"candidate_owner_address"` - Opinion bool `json:"opinion" yaml:"opinion"` - VoterNetworkAddress string `json:"voter_network_address" yaml:"voter_network_address"` - } -) - -func postCreateResourceNodeHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req CreateResourceNodeRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - pubKey, err := stratos.SdsPubKeyFromBech32(req.PubKey) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - ownerAddr, er := sdk.AccAddressFromBech32(req.BaseReq.From) - if er != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, er.Error()) - return - } - if t := types.NodeType(req.NodeType).Type(); t == "UNKNOWN" { - rest.WriteErrorResponse(w, http.StatusBadRequest, "node type(s) not supported") - return - } - networkAddr, err := stratos.SdsAddressFromBech32(req.NetworkAddr) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - msg, err := types.NewMsgCreateResourceNode(networkAddr, pubKey, req.Amount, ownerAddr, req.Description, - req.NodeType) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -func postCreateMetaNodeHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req CreateMetaNodeRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - pubKey, err := stratos.SdsPubKeyFromBech32(req.PubKey) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - ownerAddr, err := sdk.AccAddressFromBech32(req.BaseReq.From) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - networkAddr, err := stratos.SdsAddressFromBech32(req.NetworkAddr) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - msg, err := types.NewMsgCreateMetaNode(networkAddr, pubKey, req.Amount, ownerAddr, req.Description) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -func postRemoveResourceNodeHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req RemoveResourceNodeRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - nodeAddr, err := stratos.SdsAddressFromBech32(req.ResourceNodeAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - ownerAddr, err := sdk.AccAddressFromBech32(req.BaseReq.From) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - msg := types.NewMsgRemoveResourceNode(nodeAddr, ownerAddr) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -func postRemoveMetaNodeHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req RemoveMetaNodeRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - nodeAddr, err := stratos.SdsAddressFromBech32(req.MetaNodeAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - ownerAddr, err := sdk.AccAddressFromBech32(req.BaseReq.From) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - msg := types.NewMsgRemoveMetaNode(nodeAddr, ownerAddr) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -func postUpdateResourceNodeHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req UpdateResourceNodeRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - networkAddr, err := stratos.SdsAddressFromBech32(req.NetworkAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - ownerAddr, er := sdk.AccAddressFromBech32(req.BaseReq.From) - if er != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, er.Error()) - return - } - if t := types.NodeType(req.NodeType).Type(); t == "UNKNOWN" { - rest.WriteErrorResponse(w, http.StatusBadRequest, "node type(s) not supported") - return - } - msg := types.NewMsgUpdateResourceNode(req.Description, req.NodeType, networkAddr, ownerAddr) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -func postUpdateResourceNodeDepositHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req UpdateResourceNodeDepositRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - networkAddr, err := stratos.SdsAddressFromBech32(req.NetworkAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - ownerAddr, err := sdk.AccAddressFromBech32(req.BaseReq.From) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - msg := types.NewMsgUpdateResourceNodeDeposit(networkAddr, ownerAddr, req.DepositDelta) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -func postUpdateEffectiveDepositHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req UpdateEffectiveDepositRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - networkAddr, err := stratos.SdsAddressFromBech32(req.NetworkAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - msg := types.NewMsgUpdateEffectiveDeposit(req.Reporters, req.ReporterOwner, networkAddr, req.EffectiveTokens) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -func postUpdateMetaNodeHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req UpdateMetaNodeRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - networkAddr, err := stratos.SdsAddressFromBech32(req.NetworkAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - ownerAddr, er := sdk.AccAddressFromBech32(req.BaseReq.From) - if er != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, er.Error()) - return - } - - msg := types.NewMsgUpdateMetaNode(req.Description, networkAddr, ownerAddr) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -func postUpdateMetaNodeDepositHandlerFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req UpdateMetaNodeDepositRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - networkAddr, err := stratos.SdsAddressFromBech32(req.NetworkAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - ownerAddr, err := sdk.AccAddressFromBech32(req.BaseReq.From) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - msg := types.NewMsgUpdateMetaNodeDeposit(networkAddr, ownerAddr, req.DepositDelta) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -func postMetaNodeRegVoteFn(cliCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - var req MetaNodeRegVoteRequest - - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - candidateNetworkAddr, err := stratos.SdsAddressFromBech32(req.CandidateNetworkAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - candidateOwnerAddr, err := sdk.AccAddressFromBech32(req.CandidateOwnerAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - } - - voteOpinion := req.Opinion - - voterNetworkAddr, err := stratos.SdsAddressFromBech32(req.VoterNetworkAddress) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - } - - voterOwnerAddr, er := sdk.AccAddressFromBech32(req.BaseReq.From) - if er != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, er.Error()) - return - } - - msg := types.NewMsgMetaNodeRegistrationVote(candidateNetworkAddr, candidateOwnerAddr, voteOpinion, voterNetworkAddr, voterOwnerAddr) - if err := msg.ValidateBasic(); err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} diff --git a/x/register/exported/exported.go b/x/register/exported/exported.go index 5f9802c2..42a0ca63 100644 --- a/x/register/exported/exported.go +++ b/x/register/exported/exported.go @@ -1,9 +1,11 @@ package exported import ( + sdkmath "cosmossdk.io/math" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + stratos "github.com/stratosnet/stratos-chain/types" ) @@ -14,7 +16,7 @@ type ResourceNodeI interface { GetStatus() stakingtypes.BondStatus // status of the node GetPubKey() cryptotypes.PubKey // pubkey of the node GetNetworkAddr() stratos.SdsAddress // network address of the node - GetTokens() sdk.Int // deposit tokens of the node + GetTokens() sdkmath.Int // deposit tokens of the node GetOwnerAddr() sdk.AccAddress // owner address of the node GetNodeType() string // node type } @@ -26,6 +28,6 @@ type MetaNodeI interface { GetStatus() stakingtypes.BondStatus // status of the node GetPubKey() cryptotypes.PubKey // pubkey of the node GetNetworkAddr() stratos.SdsAddress // network address of the node - GetTokens() sdk.Int // deposit tokens of the node + GetTokens() sdkmath.Int // deposit tokens of the node GetOwnerAddr() sdk.AccAddress // owner address of the node } diff --git a/x/register/genesis.go b/x/register/genesis.go index 9df50981..ebb00679 100644 --- a/x/register/genesis.go +++ b/x/register/genesis.go @@ -1,6 +1,7 @@ package register import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -18,7 +19,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState keeper.GetMetaNodeNotBondedToken(ctx).IsZero() && keeper.GetMetaNodeBondedToken(ctx).IsZero() - initialDepositTotal := sdk.ZeroInt() + initialDepositTotal := sdkmath.ZeroInt() lenOfGenesisBondedResourceNode := int64(0) for _, resourceNode := range data.GetResourceNodes() { @@ -53,7 +54,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState keeper.SetResourceNode(ctx, resourceNode) } // set initial genesis number of resource nodes - keeper.SetBondedResourceNodeCnt(ctx, sdk.NewInt(lenOfGenesisBondedResourceNode)) + keeper.SetBondedResourceNodeCnt(ctx, sdkmath.NewInt(lenOfGenesisBondedResourceNode)) lenOfGenesisBondedMetaNode := int64(0) for _, metaNode := range data.GetMetaNodes() { @@ -88,19 +89,19 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState keeper.SetMetaNode(ctx, metaNode) } // set initial genesis number of meta nodes - keeper.SetBondedMetaNodeCnt(ctx, sdk.NewInt(lenOfGenesisBondedMetaNode)) + keeper.SetBondedMetaNodeCnt(ctx, sdkmath.NewInt(lenOfGenesisBondedMetaNode)) totalUnissuedPrepay := keeper.GetTotalUnissuedPrepay(ctx).Amount keeper.SetInitialGenesisDepositTotal(ctx, initialDepositTotal) keeper.SetEffectiveTotalDeposit(ctx, initialDepositTotal) - depositNozRate := sdk.ZeroDec() + depositNozRate := sdkmath.LegacyZeroDec() depositNozRate = depositNozRate.Add(data.DepositNozRate) keeper.SetDepositNozRate(ctx, depositNozRate) // calc total noz supply with EffectiveGenesisDepositTotal and depositNozRate - totalNozSupply := initialDepositTotal.ToDec().Quo(depositNozRate).TruncateInt() - initOzoneLimit := sdk.ZeroInt() - if freshStart && totalUnissuedPrepay.Equal(sdk.ZeroInt()) { + totalNozSupply := initialDepositTotal.ToLegacyDec().Quo(depositNozRate).TruncateInt() + initOzoneLimit := sdkmath.ZeroInt() + if freshStart && totalUnissuedPrepay.Equal(sdkmath.ZeroInt()) { // fresh start initOzoneLimit = initOzoneLimit.Add(totalNozSupply) } else { @@ -115,7 +116,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState panic(err) } - keeper.SetSlashing(ctx, walletAddress, sdk.NewInt(slashing.Value)) + keeper.SetSlashing(ctx, walletAddress, sdkmath.NewInt(slashing.Value)) } keeper.ReloadMetaNodeBitMapIdxCache(ctx) @@ -135,8 +136,8 @@ func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data *types.GenesisSt depositNozRate := keeper.GetDepositNozRate(ctx) var slashingInfo []types.Slashing - keeper.IteratorSlashingInfo(ctx, func(walletAddress sdk.AccAddress, val sdk.Int) (stop bool) { - if val.GT(sdk.ZeroInt()) { + keeper.IteratorSlashingInfo(ctx, func(walletAddress sdk.AccAddress, val sdkmath.Int) (stop bool) { + if val.GT(sdkmath.ZeroInt()) { slashing := types.NewSlashing(walletAddress, val) slashingInfo = append(slashingInfo, slashing) } diff --git a/x/register/handler.go b/x/register/handler.go index 915e0fe4..da0d03f6 100644 --- a/x/register/handler.go +++ b/x/register/handler.go @@ -3,6 +3,7 @@ package register import ( "fmt" + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stratosnet/stratos-chain/x/register/keeper" @@ -47,11 +48,9 @@ func NewHandler(k keeper.Keeper) sdk.Handler { case *types.MsgMetaNodeRegistrationVote: res, err := msgServer.HandleMsgMetaNodeRegistrationVote(sdk.WrapSDKContext(ctx), msg) return sdk.WrapServiceResult(ctx, res, err) - - // this line is used by starport scaffolding # 1 default: errMsg := fmt.Sprintf("unrecognized %s message type: %T", types.ModuleName, msg) - return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) + return nil, errors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) } } } diff --git a/x/register/keeper/grpc_query.go b/x/register/keeper/grpc_query.go index 9c7a73c4..49147a34 100644 --- a/x/register/keeper/grpc_query.go +++ b/x/register/keeper/grpc_query.go @@ -105,7 +105,7 @@ func (q Querier) DepositByNode(c context.Context, req *types.QueryDepositByNodeR } depositInfo := types.DepositInfo{} - if queryType == types.QueryType_All || queryType == types.QueryType_SP { + if queryType == types.QueryTypeAll || queryType == types.QueryTypeSP { metaNode, found := q.GetMetaNode(ctx, networkAddr) if found { // Adding meta node deposit info @@ -131,7 +131,7 @@ func (q Querier) DepositByNode(c context.Context, req *types.QueryDepositByNodeR } } - if queryType == types.QueryType_All || queryType == types.QueryType_PP { + if queryType == types.QueryTypeAll || queryType == types.QueryTypePP { networkAddr, err := stratos.SdsAddressFromBech32(req.GetNetworkAddr()) if err != nil { return &types.QueryDepositByNodeResponse{}, err diff --git a/x/register/keeper/keeper.go b/x/register/keeper/keeper.go index c7389a73..61e1cac3 100644 --- a/x/register/keeper/keeper.go +++ b/x/register/keeper/keeper.go @@ -5,9 +5,11 @@ import ( "fmt" "time" - "github.com/tendermint/tendermint/libs/log" + "github.com/cometbft/cometbft/libs/log" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -19,29 +21,36 @@ import ( // Keeper of the register store type Keeper struct { - storeKey sdk.StoreKey + storeKey storetypes.StoreKey cdc codec.Codec paramSpace paramtypes.Subspace accountKeeper types.AccountKeeper bankKeeper types.BankKeeper distrKeeper types.DistrKeeper hooks types.RegisterHooks + + // the address capable of executing a MsgUpdateParams message. Typically, this + // should be the x/gov module account. + authority string } // NewKeeper creates a register keeper -func NewKeeper(cdc codec.Codec, key sdk.StoreKey, paramSpace paramtypes.Subspace, - accountKeeper types.AccountKeeper, bankKeeper types.BankKeeper, distrKeeper types.DistrKeeper) Keeper { - - keeper := Keeper{ +func NewKeeper( + cdc codec.Codec, + key storetypes.StoreKey, + accountKeeper types.AccountKeeper, + bankKeeper types.BankKeeper, + distrKeeper types.DistrKeeper, + authority string, +) Keeper { + return Keeper{ storeKey: key, cdc: cdc, - paramSpace: paramSpace.WithKeyTable(types.ParamKeyTable()), accountKeeper: accountKeeper, bankKeeper: bankKeeper, distrKeeper: distrKeeper, - hooks: nil, + authority: authority, } - return keeper } func (k Keeper) GetBankKeeper() types.BankKeeper { @@ -50,7 +59,7 @@ func (k Keeper) GetBankKeeper() types.BankKeeper { // Logger returns a module-specific logger. func (k Keeper) Logger(ctx sdk.Context) log.Logger { - return ctx.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName)) + return ctx.Logger().With("module", "x/"+types.ModuleName) } // SetHooks Set the register hooks @@ -68,13 +77,13 @@ func (k Keeper) GetTotalUnissuedPrepay(ctx sdk.Context) (totalUnissuedPrepay sdk ctx.Logger().Error("account address for total unissued prepay does not exist.") return sdk.Coin{ Denom: k.BondDenom(ctx), - Amount: sdk.ZeroInt(), + Amount: sdkmath.ZeroInt(), } } return k.bankKeeper.GetBalance(ctx, totalUnissuedPrepayAccAddr, k.BondDenom(ctx)) } -func (k Keeper) IncreaseOzoneLimitByAddDeposit(ctx sdk.Context, deposit sdk.Int) (ozoneLimitChange sdk.Int) { +func (k Keeper) IncreaseOzoneLimitByAddDeposit(ctx sdk.Context, deposit sdkmath.Int) (ozoneLimitChange sdkmath.Int) { // get remainingOzoneLimit before adding deposit remainingBefore := k.GetRemainingOzoneLimit(ctx) depositNozRate := k.GetDepositNozRate(ctx) @@ -84,14 +93,14 @@ func (k Keeper) IncreaseOzoneLimitByAddDeposit(ctx sdk.Context, deposit sdk.Int) effectiveTotalDepositAfter := effectiveTotalDepositBefore.Add(deposit) k.SetEffectiveTotalDeposit(ctx, effectiveTotalDepositAfter) - effectiveGenesisDeposit := effectiveTotalDepositBefore.ToDec() //wei - if effectiveGenesisDeposit.Equal(sdk.ZeroDec()) { + effectiveGenesisDeposit := effectiveTotalDepositBefore.ToLegacyDec() //wei + if effectiveGenesisDeposit.Equal(sdkmath.LegacyZeroDec()) { ctx.Logger().Info("effectiveGenesisDeposit is zero, increase ozone limit failed") - return sdk.ZeroInt() + return sdkmath.ZeroInt() } - limitToAdd := deposit.ToDec().Quo(depositNozRate) - k.SetRemainingOzoneLimit(ctx, remainingBefore.ToDec().Add(limitToAdd).TruncateInt()) + limitToAdd := deposit.ToLegacyDec().Quo(depositNozRate) + k.SetRemainingOzoneLimit(ctx, remainingBefore.ToLegacyDec().Add(limitToAdd).TruncateInt()) //ctx.Logger().Debug("----- IncreaseOzoneLimitByAddDeposit, ", // "effectiveTotalDepositBefore=", effectiveTotalDepositBefore.String(), @@ -102,7 +111,7 @@ func (k Keeper) IncreaseOzoneLimitByAddDeposit(ctx sdk.Context, deposit sdk.Int) return limitToAdd.TruncateInt() } -func (k Keeper) DecreaseOzoneLimitBySubtractDeposit(ctx sdk.Context, deposit sdk.Int) (ozoneLimitChange sdk.Int) { +func (k Keeper) DecreaseOzoneLimitBySubtractDeposit(ctx sdk.Context, deposit sdkmath.Int) (ozoneLimitChange sdkmath.Int) { // get remainingOzoneLimit before adding deposit remainingBefore := k.GetRemainingOzoneLimit(ctx) depositNozRate := k.GetDepositNozRate(ctx) @@ -112,13 +121,13 @@ func (k Keeper) DecreaseOzoneLimitBySubtractDeposit(ctx sdk.Context, deposit sdk effectiveTotalDepositAfter := effectiveTotalDepositBefore.Sub(deposit) k.SetEffectiveTotalDeposit(ctx, effectiveTotalDepositAfter) - effectiveGenesisDeposit := effectiveTotalDepositBefore.ToDec() //wei - if effectiveGenesisDeposit.Equal(sdk.ZeroDec()) { + effectiveGenesisDeposit := effectiveTotalDepositBefore.ToLegacyDec() //wei + if effectiveGenesisDeposit.Equal(sdkmath.LegacyZeroDec()) { ctx.Logger().Info("effectiveGenesisDeposit is zero, increase ozone limit failed") - return sdk.ZeroInt() + return sdkmath.ZeroInt() } - limitToSub := deposit.ToDec().Quo(depositNozRate) - k.SetRemainingOzoneLimit(ctx, remainingBefore.ToDec().Sub(limitToSub).TruncateInt()) + limitToSub := deposit.ToLegacyDec().Quo(depositNozRate) + k.SetRemainingOzoneLimit(ctx, remainingBefore.ToLegacyDec().Sub(limitToSub).TruncateInt()) //ctx.Logger().Debug("----- DecreaseOzoneLimitBySubtractDeposit, ", // "effectiveTotalDepositBefore=", effectiveTotalDepositBefore.String(), @@ -138,10 +147,10 @@ func (k Keeper) HasMaxUnbondingNodeEntries(ctx sdk.Context, networkAddr stratos. return len(ubd.Entries) >= int(k.MaxEntries(ctx)) } -// SetUnbondingMetaNodeEntry adds an entry to the unbonding MetaNode at +// SetUnbondingNodeEntry adds an entry to the unbonding MetaNode at // the given addresses. It creates the unbonding MetaNode if it does not exist func (k Keeper) SetUnbondingNodeEntry(ctx sdk.Context, networkAddr stratos.SdsAddress, isMetaNode bool, - creationHeight int64, minTime time.Time, balance sdk.Int) types.UnbondingNode { + creationHeight int64, minTime time.Time, balance sdkmath.Int) types.UnbondingNode { ubd, found := k.GetUnbondingNode(ctx, networkAddr) if found { @@ -266,34 +275,34 @@ func (k Keeper) subtractUBDNodeDeposit(ctx sdk.Context, ubd types.UnbondingNode, return k.SubtractResourceNodeDeposit(ctx, resourceNode, tokenToSub) } -// Unbond all tokens of resource node +// UnbondResourceNode Unbond all tokens of resource node func (k Keeper) UnbondResourceNode(ctx sdk.Context, networkAddr stratos.SdsAddress, ownerAddr sdk.AccAddress, -) (depositToRemove sdk.Int, unbondingMatureTime time.Time, err error) { +) (depositToRemove sdkmath.Int, unbondingMatureTime time.Time, err error) { resourceNode, found := k.GetResourceNode(ctx, networkAddr) if !found { - return sdk.ZeroInt(), time.Time{}, types.ErrNoResourceNodeFound + return sdkmath.ZeroInt(), time.Time{}, types.ErrNoResourceNodeFound } ownerAddrNode, _ := sdk.AccAddressFromBech32(resourceNode.GetOwnerAddress()) if !ownerAddrNode.Equals(ownerAddr) { - return sdk.ZeroInt(), time.Time{}, types.ErrInvalidOwnerAddr + return sdkmath.ZeroInt(), time.Time{}, types.ErrInvalidOwnerAddr } if resourceNode.GetStatus() != stakingtypes.Bonded { - return sdk.ZeroInt(), time.Time{}, types.ErrInvalidNodeStat + return sdkmath.ZeroInt(), time.Time{}, types.ErrInvalidNodeStat } // suspended node cannot be unbonded (avoid dup deposit decrease with node suspension) if resourceNode.GetSuspend() { - return sdk.ZeroInt(), time.Time{}, types.ErrInvalidSuspensionStatForUnbondNode + return sdkmath.ZeroInt(), time.Time{}, types.ErrInvalidSuspensionStatForUnbondNode } if k.HasMaxUnbondingNodeEntries(ctx, networkAddr) { - return sdk.ZeroInt(), time.Time{}, types.ErrMaxUnbondingNodeEntries + return sdkmath.ZeroInt(), time.Time{}, types.ErrMaxUnbondingNodeEntries } // check if node_token - unbonding_token > 0 unbondingDeposit := k.GetUnbondingNodeBalance(ctx, networkAddr) depositToRemove = resourceNode.Tokens.Sub(unbondingDeposit) - if depositToRemove.LTE(sdk.ZeroInt()) { - return sdk.ZeroInt(), time.Time{}, types.ErrInsufficientBalance + if depositToRemove.LTE(sdkmath.ZeroInt()) { + return sdkmath.ZeroInt(), time.Time{}, types.ErrInsufficientBalance } unbondingMatureTime = calcUnbondingMatureTime(ctx, resourceNode.Status, resourceNode.CreationTime, k.UnbondingThreasholdTime(ctx), k.UnbondingCompletionTime(ctx)) @@ -305,7 +314,7 @@ func (k Keeper) UnbondResourceNode(ctx sdk.Context, networkAddr stratos.SdsAddre k.SetResourceNode(ctx, resourceNode) // decrease resource node count v := k.GetBondedResourceNodeCnt(ctx) - count := v.Sub(sdk.OneInt()) + count := v.Sub(sdkmath.OneInt()) k.SetBondedResourceNodeCnt(ctx, count) // set the unbonding mature time and completion height appropriately @@ -321,40 +330,40 @@ func (k Keeper) UnbondResourceNode(ctx sdk.Context, networkAddr stratos.SdsAddre return depositToRemove, unbondingMatureTime, nil } -func (k Keeper) UnbondMetaNode(ctx sdk.Context, metaNode types.MetaNode, amt sdk.Int, -) (ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdk.Int, unbondingMatureTime time.Time, err error) { +func (k Keeper) UnbondMetaNode(ctx sdk.Context, metaNode types.MetaNode, amt sdkmath.Int, +) (ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdkmath.Int, unbondingMatureTime time.Time, err error) { if metaNode.GetStatus() == stakingtypes.Unbonding { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ErrUnbondingNode + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ErrUnbondingNode } networkAddr, err := stratos.SdsAddressFromBech32(metaNode.GetNetworkAddress()) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, errors.New("invalid network address") + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, errors.New("invalid network address") } ownerAddr, err := sdk.AccAddressFromBech32(metaNode.GetOwnerAddress()) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, errors.New("invalid wallet address") + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, errors.New("invalid wallet address") } ownerAcc := k.accountKeeper.GetAccount(ctx, ownerAddr) if ownerAcc == nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ErrNoOwnerAccountFound + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ErrNoOwnerAccountFound } // suspended node cannot be unbonded (avoid dup deposit decrease with node suspension) if metaNode.Suspend { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ErrInvalidSuspensionStatForUnbondNode + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ErrInvalidSuspensionStatForUnbondNode } // check if node_token - unbonding_token > amt_to_unbond unbondingDeposit := k.GetUnbondingNodeBalance(ctx, networkAddr) availableTokenAmtBefore = metaNode.Tokens.Sub(unbondingDeposit) if availableTokenAmtBefore.LT(amt) { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ErrInsufficientBalance + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ErrInsufficientBalance } if k.HasMaxUnbondingNodeEntries(ctx, networkAddr) { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ErrMaxUnbondingNodeEntries + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ErrMaxUnbondingNodeEntries } unbondingMatureTime = calcUnbondingMatureTime(ctx, metaNode.Status, metaNode.CreationTime, k.UnbondingThreasholdTime(ctx), k.UnbondingCompletionTime(ctx)) @@ -364,7 +373,7 @@ func (k Keeper) UnbondMetaNode(ctx sdk.Context, metaNode types.MetaNode, amt sdk if metaNode.GetStatus() == stakingtypes.Bonded { // to prevent remainingOzoneLimit from being negative value if !k.IsUnbondable(ctx, amt) { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ErrInsufficientBalance + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ErrInsufficientBalance } // transfer the node tokens to the not bonded pool k.bondedToUnbonding(ctx, metaNode, true, coin) @@ -377,7 +386,7 @@ func (k Keeper) UnbondMetaNode(ctx sdk.Context, metaNode types.MetaNode, amt sdk metaNode.Status = stakingtypes.Unbonding // decrease meta node count v := k.GetBondedMetaNodeCnt(ctx) - count := v.Sub(sdk.NewInt(1)) + count := v.Sub(sdkmath.NewInt(1)) k.SetBondedMetaNodeCnt(ctx, count) // set meta node k.SetMetaNode(ctx, metaNode) @@ -397,12 +406,12 @@ func (k Keeper) UnbondMetaNode(ctx sdk.Context, metaNode types.MetaNode, amt sdk } // GetAllUnbondingNodesTotalBalance Iteration for getting the total balance of all unbonding nodes -func (k Keeper) GetAllUnbondingNodesTotalBalance(ctx sdk.Context) sdk.Int { +func (k Keeper) GetAllUnbondingNodesTotalBalance(ctx sdk.Context) sdkmath.Int { store := ctx.KVStore(k.storeKey) iterator := sdk.KVStorePrefixIterator(store, types.UBDNodeKey) defer iterator.Close() - var ubdTotal = sdk.ZeroInt() + var ubdTotal = sdkmath.ZeroInt() for ; iterator.Valid(); iterator.Next() { node := types.UnbondingNode{} k.cdc.MustUnmarshalLengthPrefixed(iterator.Value(), &node) @@ -414,8 +423,8 @@ func (k Keeper) GetAllUnbondingNodesTotalBalance(ctx sdk.Context) sdk.Int { } // GetUnbondingNodeBalance returns an unbonding balance and an UnbondingNode -func (k Keeper) GetUnbondingNodeBalance(ctx sdk.Context, networkAddr stratos.SdsAddress) sdk.Int { - balance := sdk.ZeroInt() +func (k Keeper) GetUnbondingNodeBalance(ctx sdk.Context, networkAddr stratos.SdsAddress) sdkmath.Int { + balance := sdkmath.ZeroInt() store := ctx.KVStore(k.storeKey) key := types.GetUBDNodeKey(networkAddr) @@ -432,7 +441,7 @@ func (k Keeper) GetUnbondingNodeBalance(ctx sdk.Context, networkAddr stratos.Sds } // GetCurrNozPriceParams calcs current noz price -func (k Keeper) GetCurrNozPriceParams(ctx sdk.Context) (St, Pt, Lt sdk.Int) { +func (k Keeper) GetCurrNozPriceParams(ctx sdk.Context) (St, Pt, Lt sdkmath.Int) { St = k.GetEffectiveTotalDeposit(ctx) Pt = k.GetTotalUnissuedPrepay(ctx).Amount Lt = k.GetRemainingOzoneLimit(ctx) diff --git a/x/register/keeper/meta_node.go b/x/register/keeper/meta_node.go index 3e1e93ad..b1601685 100644 --- a/x/register/keeper/meta_node.go +++ b/x/register/keeper/meta_node.go @@ -8,6 +8,7 @@ import ( "sync" "time" + sdkmath "cosmossdk.io/math" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -22,7 +23,7 @@ var ( cacheMutex = &sync.Mutex{} ) -// getMetaNode get a single meta node +// GetMetaNode get a single meta node func (k Keeper) GetMetaNode(ctx sdk.Context, p2pAddress stratos.SdsAddress) (metaNode types.MetaNode, found bool) { store := ctx.KVStore(k.storeKey) value := store.Get(types.GetMetaNodeKey(p2pAddress)) @@ -71,7 +72,7 @@ func (k Keeper) GetAllValidMetaNodes(ctx sdk.Context) (metaNodes []types.MetaNod } func (k Keeper) RegisterMetaNode(ctx sdk.Context, networkAddr stratos.SdsAddress, pubKey cryptotypes.PubKey, ownerAddr sdk.AccAddress, - description types.Description, deposit sdk.Coin) (ozoneLimitChange sdk.Int, err error) { + description types.Description, deposit sdk.Coin) (ozoneLimitChange sdkmath.Int, err error) { if _, found := k.GetMetaNode(ctx, networkAddr); found { ctx.Logger().Error("Meta node already exist") @@ -108,22 +109,22 @@ func (k Keeper) RegisterMetaNode(ctx sdk.Context, networkAddr stratos.SdsAddress // AddMetaNodeDeposit Update the tokens of an existing meta node func (k Keeper) AddMetaNodeDeposit(ctx sdk.Context, metaNode types.MetaNode, tokenToAdd sdk.Coin, -) (ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdk.Int, err error) { +) (ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdkmath.Int, err error) { coins := sdk.NewCoins(tokenToAdd) ownerAddr, err := sdk.AccAddressFromBech32(metaNode.GetOwnerAddress()) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrInvalidOwnerAddr + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrInvalidOwnerAddr } networkAddr, err := stratos.SdsAddressFromBech32(metaNode.GetNetworkAddress()) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrInvalidNetworkAddr + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrInvalidNetworkAddr } // sub coins from owner's wallet hasCoin := k.bankKeeper.HasBalance(ctx, ownerAddr, tokenToAdd) if !hasCoin { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrInsufficientBalance + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrInsufficientBalance } unbondingDeposit := k.GetUnbondingNodeBalance(ctx, networkAddr) availableTokenAmtBefore = metaNode.Tokens.Sub(unbondingDeposit) @@ -136,13 +137,13 @@ func (k Keeper) AddMetaNodeDeposit(ctx sdk.Context, metaNode types.MetaNode, tok case stakingtypes.Bonded: targetModuleAccName = types.MetaNodeBondedPool case stakingtypes.Unbonding: - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrUnbondingNode + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrUnbondingNode } if len(targetModuleAccName) > 0 { err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, ownerAddr, targetModuleAccName, coins) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), err + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), err } } @@ -153,7 +154,7 @@ func (k Keeper) AddMetaNodeDeposit(ctx sdk.Context, metaNode types.MetaNode, tok ozoneLimitChange = k.IncreaseOzoneLimitByAddDeposit(ctx, tokenToAdd.Amount) } else { // if node is currently suspended, ozone limit will be increased upon unsuspension instead of NOW - ozoneLimitChange = sdk.ZeroInt() + ozoneLimitChange = sdkmath.ZeroInt() } availableTokenAmtAfter = availableTokenAmtBefore.Add(tokenToAdd.Amount) return ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter, nil @@ -262,7 +263,7 @@ func (k Keeper) removeMetaNode(ctx sdk.Context, addr stratos.SdsAddress) error { return nil } -// getMetaNodeList get all meta nodes by networkAddr +// GetMetaNodeList get all meta nodes by networkAddr func (k Keeper) GetMetaNodeList(ctx sdk.Context, networkAddr stratos.SdsAddress) (metaNodes []types.MetaNode, err error) { store := ctx.KVStore(k.storeKey) iterator := sdk.KVStorePrefixIterator(store, types.MetaNodeKey) @@ -316,7 +317,7 @@ func (k Keeper) WithdrawMetaNodeRegistrationDeposit(ctx sdk.Context, networkAddr // check available_deposit (node_token - unbonding_token > amt_to_withdraw) unbondingDeposit := k.GetUnbondingNodeBalance(ctx, networkAddr) availableDeposit := node.Tokens.Sub(unbondingDeposit) - if availableDeposit.LTE(sdk.ZeroInt()) { + if availableDeposit.LTE(sdkmath.ZeroInt()) { return time.Time{}, types.ErrInsufficientBalance } if k.HasMaxUnbondingNodeEntries(ctx, networkAddr) { @@ -405,7 +406,7 @@ func (k Keeper) HandleVoteForMetaNodeRegistration(ctx sdk.Context, candidateNetw _ = k.IncreaseOzoneLimitByAddDeposit(ctx, candidateNode.Tokens) // increase mata node count v := k.GetBondedMetaNodeCnt(ctx) - count := v.Add(sdk.NewInt(1)) + count := v.Add(sdkmath.NewInt(1)) k.SetBondedMetaNodeCnt(ctx, count) // move deposit from not bonded pool to bonded pool tokenToBond := sdk.NewCoin(k.BondDenom(ctx), candidateNode.Tokens) @@ -454,20 +455,20 @@ func (k Keeper) UpdateMetaNode(ctx sdk.Context, description types.Description, } func (k Keeper) UpdateMetaNodeDeposit(ctx sdk.Context, networkAddr stratos.SdsAddress, ownerAddr sdk.AccAddress, depositDelta sdk.Coin) ( - ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdk.Int, unbondingMatureTime time.Time, metaNode types.MetaNode, err error) { + ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdkmath.Int, unbondingMatureTime time.Time, metaNode types.MetaNode, err error) { if depositDelta.GetDenom() != k.BondDenom(ctx) { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.MetaNode{}, types.ErrBadDenom + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.MetaNode{}, types.ErrBadDenom } node, found := k.GetMetaNode(ctx, networkAddr) if !found { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.MetaNode{}, types.ErrNoMetaNodeFound + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.MetaNode{}, types.ErrNoMetaNodeFound } ownerAddrNode, _ := sdk.AccAddressFromBech32(node.GetOwnerAddress()) if !ownerAddrNode.Equals(ownerAddr) { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.MetaNode{}, types.ErrInvalidOwnerAddr + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.MetaNode{}, types.ErrInvalidOwnerAddr } // not allow to decrease deposit @@ -475,11 +476,11 @@ func (k Keeper) UpdateMetaNodeDeposit(ctx sdk.Context, networkAddr stratos.SdsAd blockTime := ctx.BlockHeader().Time ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter, err = k.AddMetaNodeDeposit(ctx, node, depositDelta) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.MetaNode{}, err + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.MetaNode{}, err } return ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter, blockTime, node, nil } - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.MetaNode{}, err + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.MetaNode{}, err } func (k Keeper) GetMetaNodeBondedToken(ctx sdk.Context) (token sdk.Coin) { @@ -488,7 +489,7 @@ func (k Keeper) GetMetaNodeBondedToken(ctx sdk.Context) (token sdk.Coin) { ctx.Logger().Error("account address for meta node bonded pool does not exist.") return sdk.Coin{ Denom: k.BondDenom(ctx), - Amount: sdk.ZeroInt(), + Amount: sdkmath.ZeroInt(), } } return k.bankKeeper.GetBalance(ctx, metaNodeBondedAccAddr, k.BondDenom(ctx)) @@ -500,7 +501,7 @@ func (k Keeper) GetMetaNodeNotBondedToken(ctx sdk.Context) (token sdk.Coin) { ctx.Logger().Error("account address for meta node Not bonded pool does not exist.") return sdk.Coin{ Denom: k.BondDenom(ctx), - Amount: sdk.ZeroInt(), + Amount: sdkmath.ZeroInt(), } } return k.bankKeeper.GetBalance(ctx, metaNodeNotBondedAccAddr, k.BondDenom(ctx)) diff --git a/x/register/keeper/msg_server.go b/x/register/keeper/msg_server.go index f716b2d2..757efa13 100644 --- a/x/register/keeper/msg_server.go +++ b/x/register/keeper/msg_server.go @@ -3,14 +3,13 @@ package keeper import ( "context" "encoding/hex" - "errors" "strconv" "time" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/register/types" ) @@ -36,24 +35,24 @@ func (k msgServer) HandleMsgCreateResourceNode(goCtx context.Context, msg *types return &types.MsgCreateResourceNodeResponse{}, types.ErrResourceNodeRegDisabled } - // check to see if the pubkey or sender has been registered before + // check to see if the pubKey or sender has been registered before pkAny := msg.GetPubkey() - cachedPubkey := pkAny.GetCachedValue() - pk := cachedPubkey.(cryptotypes.PubKey) + cachedPubKey := pkAny.GetCachedValue() + pk := cachedPubKey.(cryptotypes.PubKey) networkAddr, err := stratos.SdsAddressFromBech32(msg.NetworkAddress) if err != nil { - return &types.MsgCreateResourceNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgCreateResourceNodeResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } ownerAddress, err := sdk.AccAddressFromBech32(msg.OwnerAddress) if err != nil { - return &types.MsgCreateResourceNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) + return &types.MsgCreateResourceNodeResponse{}, errors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) } ozoneLimitChange, err := k.RegisterResourceNode(ctx, networkAddr, pk, ownerAddress, msg.Description, types.NodeType(msg.NodeType), msg.GetValue()) if err != nil { - return nil, sdkerrors.Wrap(types.ErrRegisterResourceNode, err.Error()) + return nil, errors.Wrap(types.ErrRegisterResourceNode, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -77,24 +76,24 @@ func (k msgServer) HandleMsgCreateResourceNode(goCtx context.Context, msg *types func (k msgServer) HandleMsgCreateMetaNode(goCtx context.Context, msg *types.MsgCreateMetaNode) (*types.MsgCreateMetaNodeResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) - // check to see if the pubkey or sender has been registered before + // check to see if the pubKey or sender has been registered before pkAny := msg.GetPubkey() - cachedPubkey := pkAny.GetCachedValue() - pk := cachedPubkey.(cryptotypes.PubKey) + cachedPubKey := pkAny.GetCachedValue() + pk := cachedPubKey.(cryptotypes.PubKey) networkAddr, err := stratos.SdsAddressFromBech32(msg.NetworkAddress) if err != nil { - return &types.MsgCreateMetaNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgCreateMetaNodeResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } ownerAddress, err := sdk.AccAddressFromBech32(msg.OwnerAddress) if err != nil { - return &types.MsgCreateMetaNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) + return &types.MsgCreateMetaNodeResponse{}, errors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) } ozoneLimitChange, err := k.RegisterMetaNode(ctx, networkAddr, pk, ownerAddress, msg.Description, msg.GetValue()) if err != nil { - return nil, sdkerrors.Wrap(types.ErrRegisterMetaNode, err.Error()) + return nil, errors.Wrap(types.ErrRegisterMetaNode, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -119,17 +118,17 @@ func (k msgServer) HandleMsgRemoveResourceNode(goCtx context.Context, msg *types ctx := sdk.UnwrapSDKContext(goCtx) p2pAddress, err := stratos.SdsAddressFromBech32(msg.GetResourceNodeAddress()) if err != nil { - return &types.MsgRemoveResourceNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgRemoveResourceNodeResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } ownerAddress, err := sdk.AccAddressFromBech32(msg.GetOwnerAddress()) if err != nil { - return &types.MsgRemoveResourceNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) + return &types.MsgRemoveResourceNodeResponse{}, errors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) } depositToRemove, completionTime, err := k.UnbondResourceNode(ctx, p2pAddress, ownerAddress) if err != nil { - return &types.MsgRemoveResourceNodeResponse{}, sdkerrors.Wrap(types.ErrUnbondResourceNode, err.Error()) + return &types.MsgRemoveResourceNodeResponse{}, errors.Wrap(types.ErrUnbondResourceNode, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -154,7 +153,7 @@ func (k msgServer) HandleMsgRemoveMetaNode(goCtx context.Context, msg *types.Msg ctx := sdk.UnwrapSDKContext(goCtx) p2pAddress, err := stratos.SdsAddressFromBech32(msg.MetaNodeAddress) if err != nil { - return &types.MsgRemoveMetaNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgRemoveMetaNodeResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } metaNode, found := k.GetMetaNode(ctx, p2pAddress) if !found { @@ -164,15 +163,15 @@ func (k msgServer) HandleMsgRemoveMetaNode(goCtx context.Context, msg *types.Msg return &types.MsgRemoveMetaNodeResponse{}, types.ErrInvalidOwnerAddr } - unbondingDeposit := k.GetUnbondingNodeBalance(ctx, p2pAddress) - availableDeposit := metaNode.Tokens.Sub(unbondingDeposit) - if availableDeposit.LTE(sdk.ZeroInt()) { + unBondingDeposit := k.GetUnbondingNodeBalance(ctx, p2pAddress) + availableDeposit := metaNode.Tokens.Sub(unBondingDeposit) + if availableDeposit.LTE(sdkmath.ZeroInt()) { return &types.MsgRemoveMetaNodeResponse{}, types.ErrInsufficientBalance } ozoneLimitChange, _, _, completionTime, err := k.UnbondMetaNode(ctx, metaNode, availableDeposit) if err != nil { - return &types.MsgRemoveMetaNodeResponse{}, sdkerrors.Wrap(types.ErrUnbondMetaNode, err.Error()) + return &types.MsgRemoveMetaNodeResponse{}, errors.Wrap(types.ErrUnbondMetaNode, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -199,7 +198,7 @@ func (k msgServer) HandleMsgMetaNodeRegistrationVote(goCtx context.Context, msg candidateNetworkAddress, err := stratos.SdsAddressFromBech32(msg.GetCandidateNetworkAddress()) if err != nil { - return &types.MsgMetaNodeRegistrationVoteResponse{}, sdkerrors.Wrap(types.ErrInvalidCandidateNetworkAddr, err.Error()) + return &types.MsgMetaNodeRegistrationVoteResponse{}, errors.Wrap(types.ErrInvalidCandidateNetworkAddr, err.Error()) } candidateOwnerAddress, err := sdk.AccAddressFromBech32(msg.GetCandidateOwnerAddress()) if err != nil { @@ -207,17 +206,17 @@ func (k msgServer) HandleMsgMetaNodeRegistrationVote(goCtx context.Context, msg } voterNetworkAddress, err := stratos.SdsAddressFromBech32(msg.GetVoterNetworkAddress()) if err != nil { - return &types.MsgMetaNodeRegistrationVoteResponse{}, sdkerrors.Wrap(types.ErrInvalidVoterNetworkAddr, err.Error()) + return &types.MsgMetaNodeRegistrationVoteResponse{}, errors.Wrap(types.ErrInvalidVoterNetworkAddr, err.Error()) } voterOwnerAddress, err := sdk.AccAddressFromBech32(msg.GetVoterOwnerAddress()) if err != nil { - return &types.MsgMetaNodeRegistrationVoteResponse{}, sdkerrors.Wrap(types.ErrInvalidVoterOwnerAddr, err.Error()) + return &types.MsgMetaNodeRegistrationVoteResponse{}, errors.Wrap(types.ErrInvalidVoterOwnerAddr, err.Error()) } nodeStatus, err := k.HandleVoteForMetaNodeRegistration( ctx, candidateNetworkAddress, candidateOwnerAddress, types.VoteOpinion(msg.Opinion), voterNetworkAddress, voterOwnerAddress) if err != nil { - return &types.MsgMetaNodeRegistrationVoteResponse{}, sdkerrors.Wrap(types.ErrVoteMetaNode, err.Error()) + return &types.MsgMetaNodeRegistrationVoteResponse{}, errors.Wrap(types.ErrVoteMetaNode, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -245,7 +244,7 @@ func (k msgServer) HandleMsgWithdrawMetaNodeRegistrationDeposit(goCtx context.Co networkAddr, err := stratos.SdsAddressFromBech32(msg.GetNetworkAddress()) if err != nil { - return &types.MsgWithdrawMetaNodeRegistrationDepositResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgWithdrawMetaNodeRegistrationDepositResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } ownerAddr, err := sdk.AccAddressFromBech32(msg.GetOwnerAddress()) if err != nil { @@ -254,7 +253,7 @@ func (k msgServer) HandleMsgWithdrawMetaNodeRegistrationDeposit(goCtx context.Co completionTime, err := k.WithdrawMetaNodeRegistrationDeposit(ctx, networkAddr, ownerAddr) if err != nil { - return &types.MsgWithdrawMetaNodeRegistrationDepositResponse{}, sdkerrors.Wrap(types.ErrUnbondMetaNode, err.Error()) + return &types.MsgWithdrawMetaNodeRegistrationDepositResponse{}, errors.Wrap(types.ErrUnbondMetaNode, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -279,16 +278,16 @@ func (k msgServer) HandleMsgUpdateResourceNode(goCtx context.Context, msg *types networkAddr, err := stratos.SdsAddressFromBech32(msg.NetworkAddress) if err != nil { - return &types.MsgUpdateResourceNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgUpdateResourceNodeResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } ownerAddress, err := sdk.AccAddressFromBech32(msg.OwnerAddress) if err != nil { - return &types.MsgUpdateResourceNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) + return &types.MsgUpdateResourceNodeResponse{}, errors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) } err = k.UpdateResourceNode(ctx, msg.Description, types.NodeType(msg.NodeType), networkAddr, ownerAddress) if err != nil { - return nil, sdkerrors.Wrap(types.ErrUpdateResourceNode, err.Error()) + return nil, errors.Wrap(types.ErrUpdateResourceNode, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ sdk.NewEvent( @@ -312,18 +311,18 @@ func (k msgServer) HandleMsgUpdateResourceNodeDeposit(goCtx context.Context, msg networkAddr, err := stratos.SdsAddressFromBech32(msg.NetworkAddress) if err != nil { - return &types.MsgUpdateResourceNodeDepositResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgUpdateResourceNodeDepositResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } ownerAddress, err := sdk.AccAddressFromBech32(msg.OwnerAddress) if err != nil { - return &types.MsgUpdateResourceNodeDepositResponse{}, sdkerrors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) + return &types.MsgUpdateResourceNodeDepositResponse{}, errors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) } ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter, completionTime, node, err := k.UpdateResourceNodeDeposit(ctx, networkAddr, ownerAddress, msg.GetDepositDelta()) if err != nil { - return nil, sdkerrors.Wrap(types.ErrUpdateResourceNodeDeposit, err.Error()) + return nil, errors.Wrap(types.ErrUpdateResourceNodeDeposit, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -373,16 +372,16 @@ func (k msgServer) HandleMsgUpdateEffectiveDeposit(goCtx context.Context, msg *t networkAddr, err := stratos.SdsAddressFromBech32(msg.NetworkAddress) if err != nil { - return &types.MsgUpdateEffectiveDepositResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgUpdateEffectiveDepositResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } - if msg.EffectiveTokens.LTE(sdk.NewInt(0)) { - return &types.MsgUpdateEffectiveDepositResponse{}, errors.New("effective tokens should be greater than 0") + if msg.EffectiveTokens.LTE(sdkmath.NewInt(0)) { + return &types.MsgUpdateEffectiveDepositResponse{}, types.ErrInvalidEffectiveToken } _, _, isUnsuspendedDuringUpdate, err := k.UpdateEffectiveDeposit(ctx, networkAddr, msg.EffectiveTokens) if err != nil { - return nil, sdkerrors.Wrap(types.ErrUpdateResourceNodeDeposit, err.Error()) + return nil, errors.Wrap(types.ErrUpdateResourceNodeDeposit, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ @@ -401,17 +400,17 @@ func (k msgServer) HandleMsgUpdateMetaNode(goCtx context.Context, msg *types.Msg networkAddr, err := stratos.SdsAddressFromBech32(msg.NetworkAddress) if err != nil { - return &types.MsgUpdateMetaNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgUpdateMetaNodeResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } ownerAddress, err := sdk.AccAddressFromBech32(msg.OwnerAddress) if err != nil { - return &types.MsgUpdateMetaNodeResponse{}, sdkerrors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) + return &types.MsgUpdateMetaNodeResponse{}, errors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) } err = k.UpdateMetaNode(ctx, msg.Description, networkAddr, ownerAddress) if err != nil { - return nil, sdkerrors.Wrap(types.ErrUpdateMetaNode, err.Error()) + return nil, errors.Wrap(types.ErrUpdateMetaNode, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ sdk.NewEvent( @@ -435,21 +434,21 @@ func (k msgServer) HandleMsgUpdateMetaNodeDeposit(goCtx context.Context, msg *ty networkAddr, err := stratos.SdsAddressFromBech32(msg.NetworkAddress) if err != nil { - return &types.MsgUpdateMetaNodeDepositResponse{}, sdkerrors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) + return &types.MsgUpdateMetaNodeDepositResponse{}, errors.Wrap(types.ErrInvalidNetworkAddr, err.Error()) } ownerAddress, err := sdk.AccAddressFromBech32(msg.OwnerAddress) if err != nil { - return &types.MsgUpdateMetaNodeDepositResponse{}, sdkerrors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) + return &types.MsgUpdateMetaNodeDepositResponse{}, errors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) } if msg.DepositDelta.Amount.IsNegative() { - return &types.MsgUpdateMetaNodeDepositResponse{}, sdkerrors.Wrap(types.ErrInvalidDepositChange, err.Error()) + return &types.MsgUpdateMetaNodeDepositResponse{}, errors.Wrap(types.ErrInvalidDepositChange, err.Error()) } ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter, completionTime, node, err := k.UpdateMetaNodeDeposit(ctx, networkAddr, ownerAddress, msg.GetDepositDelta()) if err != nil { - return nil, sdkerrors.Wrap(types.ErrUpdateMetaNodeDeposit, err.Error()) + return nil, errors.Wrap(types.ErrUpdateMetaNodeDeposit, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ diff --git a/x/register/keeper/node_state_change.go b/x/register/keeper/node_state_change.go index 8f3a1d67..0f2b42f4 100644 --- a/x/register/keeper/node_state_change.go +++ b/x/register/keeper/node_state_change.go @@ -11,7 +11,7 @@ import ( "github.com/stratosnet/stratos-chain/x/register/types" ) -// Called in each EndBlock +// BlockRegisteredNodesUpdates Called in each EndBlock func (k Keeper) BlockRegisteredNodesUpdates(ctx sdk.Context) { // Remove all mature unbonding nodes from the ubd queue. ctx.Logger().Debug("Enter BlockRegisteredNodesUpdates") diff --git a/x/register/keeper/params.go b/x/register/keeper/params.go index 2d20f2e8..28360a5d 100644 --- a/x/register/keeper/params.go +++ b/x/register/keeper/params.go @@ -31,19 +31,16 @@ func (k Keeper) MaxEntries(ctx sdk.Context) (res uint32) { return } -// UnbondingThreasholdTime func (k Keeper) UnbondingThreasholdTime(ctx sdk.Context) (res time.Duration) { k.paramSpace.Get(ctx, types.KeyUnbondingThreasholdTime, &res) return } -// UnbondingCompletionTime func (k Keeper) UnbondingCompletionTime(ctx sdk.Context) (res time.Duration) { k.paramSpace.Get(ctx, types.KeyUnbondingCompletionTime, &res) return } -// ResourceNodeRegEnabled func (k Keeper) ResourceNodeRegEnabled(ctx sdk.Context) (res bool) { k.paramSpace.Get(ctx, types.KeyResourceNodeRegEnabled, &res) return @@ -54,7 +51,6 @@ func (k Keeper) ResourceNodeMinDeposit(ctx sdk.Context) (res sdk.Coin) { return } -// VotingPeriod func (k Keeper) VotingPeriod(ctx sdk.Context) (res time.Duration) { k.paramSpace.Get(ctx, types.KeyVotingPeriod, &res) return diff --git a/x/register/keeper/querier.go b/x/register/keeper/querier.go index 5d5c99a8..5052254b 100644 --- a/x/register/keeper/querier.go +++ b/x/register/keeper/querier.go @@ -3,14 +3,11 @@ package keeper import ( "fmt" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - - abci "github.com/tendermint/tendermint/abci/types" - db "github.com/tendermint/tm-db" + db "github.com/cometbft/cometbft-db" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" - "github.com/cosmos/cosmos-sdk/store/prefix" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -21,350 +18,12 @@ import ( "github.com/stratosnet/stratos-chain/x/register/types" ) -const ( - QueryResourceNodeByNetworkAddr = "resource-node" - QueryMetaNodeByNetworkAddr = "meta_node" - QueryNodesDepositTotal = "nodes_deposit_total" - QueryNodeDepositByNodeAddr = "node_deposit_by_addr" - QueryNodeDepositByOwner = "node_deposit_by_owner" - QueryRegisterParams = "register_params" - QueryResourceNodesCount = "resource_nodes_count" - QueryMetaNodesCount = "meta_nodes_count" -) - -// NewQuerier creates a new querier for register clients. -func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return func(ctx sdk.Context, path []string, req abci.RequestQuery) ([]byte, error) { - switch path[0] { - case QueryResourceNodeByNetworkAddr: - return getResourceNodeByNetworkAddr(ctx, req, k, legacyQuerierCdc) - case QueryMetaNodeByNetworkAddr: - return getMetaNodeNetworkAddr(ctx, req, k, legacyQuerierCdc) - case QueryNodesDepositTotal: - return getNodesDepositTotalInfo(ctx, req, k, legacyQuerierCdc) - case QueryNodeDepositByNodeAddr: - return getDepositInfoByNodeAddr(ctx, req, k, legacyQuerierCdc) - case QueryNodeDepositByOwner: - return getDepositInfoByOwnerAddr(ctx, req, k, legacyQuerierCdc) - case QueryRegisterParams: - return getRegisterParams(ctx, req, k, legacyQuerierCdc) - case QueryResourceNodesCount: - return getResourceNodeCnt(ctx, req, k, legacyQuerierCdc) - case QueryMetaNodesCount: - return getMetaNodeCnt(ctx, req, k, legacyQuerierCdc) - default: - return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "unknown register query endpoint "+req.String()+string(req.Data)) - } - } -} - -func getResourceNodeCnt(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - number := k.GetBondedResourceNodeCnt(ctx).Int64() - res, err := codec.MarshalJSONIndent(legacyQuerierCdc, number) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return res, nil -} - -func getMetaNodeCnt(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - number := k.GetBondedMetaNodeCnt(ctx).Int64() - res, err := codec.MarshalJSONIndent(legacyQuerierCdc, number) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return res, nil -} - -func getRegisterParams(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - params := k.GetParams(ctx) - res, err := codec.MarshalJSONIndent(legacyQuerierCdc, params) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - - return res, nil -} - -func getResourceNodeByNetworkAddr(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - var ( - params types.QueryNodesParams - node types.ResourceNode - ) - - err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) - } - - if params.NetworkAddr.Empty() { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, types.ErrInvalidNetworkAddr.Error()) - } - node, found := k.GetResourceNode(ctx, params.NetworkAddr) - if !found { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, types.ErrNoResourceNodeFound.Error()) - } - - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, node) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - - return bz, nil -} - -func getMetaNodeNetworkAddr(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - - var ( - params types.QueryNodesParams - node types.MetaNode - ) - err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) - } - - if params.NetworkAddr.Empty() { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, types.ErrInvalidNetworkAddr.Error()) - } - node, found := k.GetMetaNode(ctx, params.NetworkAddr) - if !found { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, types.ErrNoMetaNodeFound.Error()) - } - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, node) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - - return bz, nil -} - -// Query total deposit of all resource/meta nodes -func getNodesDepositTotalInfo(ctx sdk.Context, _ abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - - totalBondedDepositOfResourceNodes := k.GetResourceNodeBondedToken(ctx).Amount - totalBondedDepositOfMetaNodes := k.GetMetaNodeBondedToken(ctx).Amount - - totalUnbondedDepositOfResourceNodes := k.GetResourceNodeNotBondedToken(ctx).Amount - totalUnbondedDepositOfMetaNodes := k.GetMetaNodeNotBondedToken(ctx).Amount - - totalDepositOfResourceNodes := totalBondedDepositOfResourceNodes.Add(totalUnbondedDepositOfResourceNodes) - totalDepositOfMetaNodes := totalBondedDepositOfMetaNodes.Add(totalUnbondedDepositOfMetaNodes) - - totalBondedDeposit := totalBondedDepositOfResourceNodes.Add(totalBondedDepositOfMetaNodes) - totalUnbondedDeposit := totalUnbondedDepositOfResourceNodes.Add(totalUnbondedDepositOfMetaNodes) - totalUnbondingDeposit := k.GetAllUnbondingNodesTotalBalance(ctx) - totalUnbondedDeposit = totalUnbondedDeposit.Sub(totalUnbondingDeposit) - res := types.NewQueryDepositTotalInfo( - k.BondDenom(ctx), - totalDepositOfResourceNodes, - totalDepositOfMetaNodes, - totalBondedDeposit, - totalUnbondedDeposit, - totalUnbondingDeposit, - ) - bz, err := codec.MarshalJSONIndent(legacyQuerierCdc, res) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - - return bz, nil -} - -func getDepositInfoByNodeAddr(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - var ( - bz []byte - params types.QueryNodeDepositParams - depositInfo types.DepositInfo - ) - - err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) - } - - queryType := params.QueryType - - if queryType == types.QueryType_All || queryType == types.QueryType_SP { - metaNode, found := k.GetMetaNode(ctx, params.AccAddr) - if found { - // Adding meta node deposit info - networkAddr, _ := stratos.SdsAddressFromBech32(metaNode.GetNetworkAddress()) - unBondingDeposit, unBondedDeposit, bondedDeposit, err := k.getNodeDeposit( - ctx, - metaNode.GetStatus(), - networkAddr, - metaNode.Tokens, - ) - if err != nil { - return nil, err - } - if !metaNode.Equal(types.MetaNode{}) { - depositInfo = types.NewDepositInfoByMetaNodeAddr( - k.BondDenom(ctx), - metaNode, - unBondingDeposit, - unBondedDeposit, - bondedDeposit, - ) - bzMeta, err := codec.MarshalJSONIndent(legacyQuerierCdc, depositInfo) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - bz = append(bz, bzMeta...) - } - } - } - - if queryType == types.QueryType_All || queryType == types.QueryType_PP { - resourceNode, found := k.GetResourceNode(ctx, params.AccAddr) - if found { - // Adding resource node deposit info - networkAddr, _ := stratos.SdsAddressFromBech32(resourceNode.GetNetworkAddress()) - unBondingDeposit, unBondedDeposit, bondedDeposit, err := k.getNodeDeposit( - ctx, - resourceNode.GetStatus(), - networkAddr, - resourceNode.Tokens, - ) - if err != nil { - return nil, err - } - if !resourceNode.Equal(types.ResourceNode{}) { - depositInfo = types.NewDepositInfoByResourceNodeAddr( - k.BondDenom(ctx), - resourceNode, - unBondingDeposit, - unBondedDeposit, - bondedDeposit, - ) - bzResource, err := codec.MarshalJSONIndent(legacyQuerierCdc, depositInfo) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - bz = append(bz, bzResource...) - } - } - } - - return bz, nil -} - -func getDepositInfoByOwnerAddr(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ( - result []byte, err error) { - - var ( - params types.QueryNodesParams - depositInfoResponses types.DepositInfos - ) - - if req.Data == nil { - return nil, status.Errorf(codes.InvalidArgument, "empty request") - } - - err = legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) - } - - if params.OwnerAddr.String() == "" { - return nil, status.Error(codes.InvalidArgument, "owner address cannot be empty") - } - - store := ctx.KVStore(k.storeKey) - - // get resource nodes - var resourceNodes types.ResourceNodes - resourceNodeStore := prefix.NewStore(store, types.ResourceNodeKey) - - limit := params.PageQuery.Limit - if limit == 0 { - limit = types.QueryDefaultLimit - } - offset := params.PageQuery.Offset - countTotal := params.PageQuery.CountTotal - reverse := params.PageQuery.Reverse - PageRequest := pagiquery.PageRequest{Offset: offset, Limit: limit, CountTotal: countTotal, Reverse: reverse} - - resourceNodesPageRes, err := FilteredPaginate(k.cdc, resourceNodeStore, params.OwnerAddr, &PageRequest, func(key []byte, value []byte, accumulate bool) (bool, error) { - val, err := types.UnmarshalResourceNode(k.cdc, value) - if err != nil { - return true, err - } - - if accumulate { - resourceNodes = append(resourceNodes, val) - } - - return true, nil - }) - - if err != nil { - return nil, status.Error(codes.Internal, err.Error()) - } - depositInfoResponses, err = DepositInfosResourceNodes(ctx, k, resourceNodes) - if err != nil { - return nil, status.Error(codes.Internal, err.Error()) - } - - // Continue to get meta nodes - if PageRequest.Limit < resourceNodesPageRes.Total { - resourceNodesPageRes.Total = uint64(len(depositInfoResponses)) - result, err = codec.MarshalJSONIndent(legacyQuerierCdc, depositInfoResponses) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return result, nil - } - - metaNodesPageLimit := limit - uint64(len(depositInfoResponses)) - - metaNodesPageOffset := uint64(0) - if offset > resourceNodesPageRes.Total { - metaNodesPageOffset = offset - resourceNodesPageRes.Total - } - metaNodesPageRequest := pagiquery.PageRequest{Offset: metaNodesPageOffset, Limit: metaNodesPageLimit, CountTotal: countTotal, Reverse: reverse} - var metaNodes types.MetaNodes - metaNodeStore := prefix.NewStore(store, types.MetaNodeKey) - - _, err = FilteredPaginate(k.cdc, metaNodeStore, params.OwnerAddr, &metaNodesPageRequest, func(key []byte, value []byte, accumulate bool) (bool, error) { - val, err := types.UnmarshalMetaNode(k.cdc, value) - if err != nil { - return true, err - } - - if accumulate { - metaNodes = append(metaNodes, val) - } - - return true, nil - }) - - if err != nil { - return nil, status.Error(codes.Internal, err.Error()) - } - - metaNodesDepositInfoResponses, err := DepositInfosMetaNodes(ctx, k, metaNodes) - if err != nil { - return nil, status.Error(codes.Internal, err.Error()) - } - - depositInfoResponses = append(depositInfoResponses, metaNodesDepositInfoResponses...) - PageRes := resourceNodesPageRes - PageRes.Total = uint64(len(depositInfoResponses)) - result, err = codec.MarshalJSONIndent(legacyQuerierCdc, depositInfoResponses) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return result, nil -} +func (k Keeper) getNodeDeposit(ctx sdk.Context, bondStatus stakingtypes.BondStatus, nodeAddress stratos.SdsAddress, tokens sdkmath.Int) ( + unbondingDeposit, unbondedDeposit, bondedDeposit sdkmath.Int, err error) { -func (k Keeper) getNodeDeposit(ctx sdk.Context, bondStatus stakingtypes.BondStatus, nodeAddress stratos.SdsAddress, tokens sdk.Int) ( - unbondingDeposit, unbondedDeposit, bondedDeposit sdk.Int, err error) { - - unbondingDeposit = sdk.NewInt(0) - unbondedDeposit = sdk.NewInt(0) - bondedDeposit = sdk.NewInt(0) + unbondingDeposit = sdkmath.NewInt(0) + unbondedDeposit = sdkmath.NewInt(0) + bondedDeposit = sdkmath.NewInt(0) switch bondStatus { case stakingtypes.Unbonding: @@ -376,7 +35,7 @@ func (k Keeper) getNodeDeposit(ctx sdk.Context, bondStatus stakingtypes.BondStat default: err := fmt.Sprintf("Invalid status of node %s, expected Bonded, Unbonded, or Unbonding, got %s", nodeAddress.String(), bondStatus) - return sdk.Int{}, sdk.Int{}, sdk.Int{}, sdkerrors.Wrap(sdkerrors.ErrPanic, err) + return sdkmath.Int{}, sdkmath.Int{}, sdkmath.Int{}, errors.Wrap(sdkerrors.ErrPanic, err) } return unbondingDeposit, unbondedDeposit, bondedDeposit, nil } @@ -551,46 +210,6 @@ func FilteredPaginate(cdc codec.Codec, return res, nil } -// DepositInfosResourceNodes Iteration for querying DepositInfos of resource nodes by owner(cmd and rest) -func DepositInfosResourceNodes( - ctx sdk.Context, k Keeper, resourceNodes types.ResourceNodes, -) (types.DepositInfos, error) { - res := types.DepositInfos{} - resp := make([]*types.DepositInfo, len(resourceNodes)) - - for i, resourceNode := range resourceNodes { - depositInfo, err := GetDepositInfoByResourceNode(ctx, k, resourceNode) - if err != nil { - return nil, err - } - - resp[i] = &depositInfo - res = append(res, *resp[i]) - } - - return res, nil -} - -// DepositInfosMetaNodes Iteration for querying DepositInfos of meta nodes by owner(cmd and rest) -func DepositInfosMetaNodes( - ctx sdk.Context, k Keeper, metaNodes types.MetaNodes, -) (types.DepositInfos, error) { - res := types.DepositInfos{} - resp := make([]*types.DepositInfo, len(metaNodes)) - - for i, metaNode := range metaNodes { - depositInfo, err := GetDepositInfoByMetaNode(ctx, k, metaNode) - if err != nil { - return nil, err - } - - resp[i] = &depositInfo - res = append(res, *resp[i]) - } - - return res, nil -} - // GetDepositInfosByResourceNodes Iteration for querying DepositInfos of resource nodes by owner(grpc) func GetDepositInfosByResourceNodes( ctx sdk.Context, k Keeper, resourceNodes types.ResourceNodes, diff --git a/x/register/keeper/resource_node.go b/x/register/keeper/resource_node.go index 39405cf1..10fddb3e 100644 --- a/x/register/keeper/resource_node.go +++ b/x/register/keeper/resource_node.go @@ -3,6 +3,7 @@ package keeper import ( "time" + sdkmath "cosmossdk.io/math" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -52,12 +53,12 @@ func (k Keeper) GetResourceNodeIterator(ctx sdk.Context) sdk.Iterator { // AddResourceNodeDeposit Update the tokens of an existing resource node func (k Keeper) AddResourceNodeDeposit(ctx sdk.Context, resourceNode types.ResourceNode, tokenToAdd sdk.Coin, -) (ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdk.Int, err error) { +) (ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdkmath.Int, err error) { needAddCount := true networkAddr, err := stratos.SdsAddressFromBech32(resourceNode.GetNetworkAddress()) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrInvalidNetworkAddr + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrInvalidNetworkAddr } nodeStored, found := k.GetResourceNode(ctx, networkAddr) if found && nodeStored.IsBonded() { @@ -70,13 +71,13 @@ func (k Keeper) AddResourceNodeDeposit(ctx sdk.Context, resourceNode types.Resou ownerAddr, err := sdk.AccAddressFromBech32(resourceNode.GetOwnerAddress()) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrInvalidOwnerAddr + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrInvalidOwnerAddr } // sub coins from owner's wallet hasCoin := k.bankKeeper.HasBalance(ctx, ownerAddr, tokenToAdd) if !hasCoin { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrInsufficientBalance + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrInsufficientBalance } targetModuleAccName := "" @@ -87,13 +88,13 @@ func (k Keeper) AddResourceNodeDeposit(ctx sdk.Context, resourceNode types.Resou case stakingtypes.Bonded: targetModuleAccName = types.ResourceNodeBondedPool case stakingtypes.Unbonding: - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrUnbondingNode + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrUnbondingNode } if len(targetModuleAccName) > 0 { err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, ownerAddr, targetModuleAccName, coins) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), err + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), err } } @@ -109,17 +110,17 @@ func (k Keeper) AddResourceNodeDeposit(ctx sdk.Context, resourceNode types.Resou nBondedResourceAccountAddr := k.accountKeeper.GetModuleAddress(types.ResourceNodeNotBondedPool) if nBondedResourceAccountAddr == nil { ctx.Logger().Error("not bonded account address for resource nodes does not exist.") - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrUnknownAccountAddress + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrUnknownAccountAddress } hasCoin := k.bankKeeper.HasBalance(ctx, nBondedResourceAccountAddr, tokenToTrasfer) if !hasCoin { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrInsufficientBalance + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrInsufficientBalance } err := k.bankKeeper.SendCoinsFromModuleToModule(ctx, types.ResourceNodeNotBondedPool, types.ResourceNodeBondedPool, sdk.NewCoins(tokenToTrasfer)) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), types.ErrInsufficientBalance + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), types.ErrInsufficientBalance } } @@ -128,12 +129,12 @@ func (k Keeper) AddResourceNodeDeposit(ctx sdk.Context, resourceNode types.Resou if needAddCount { // increase resource node count v := k.GetBondedResourceNodeCnt(ctx) - count := v.Add(sdk.NewInt(1)) + count := v.Add(sdkmath.NewInt(1)) k.SetBondedResourceNodeCnt(ctx, count) } availableTokenAmtAfter = availableTokenAmtBefore.Add(tokenToAdd.Amount) - return sdk.ZeroInt(), availableTokenAmtBefore, availableTokenAmtAfter, nil + return sdkmath.ZeroInt(), availableTokenAmtBefore, availableTokenAmtAfter, nil } func (k Keeper) RemoveTokenFromPoolWhileUnbondingResourceNode(ctx sdk.Context, resourceNode types.ResourceNode, tokenToSub sdk.Coin) error { @@ -240,7 +241,7 @@ func (k Keeper) removeResourceNode(ctx sdk.Context, addr stratos.SdsAddress) err } func (k Keeper) RegisterResourceNode(ctx sdk.Context, networkAddr stratos.SdsAddress, pubKey cryptotypes.PubKey, ownerAddr sdk.AccAddress, - description types.Description, nodeType types.NodeType, deposit sdk.Coin) (ozoneLimitChange sdk.Int, err error) { + description types.Description, nodeType types.NodeType, deposit sdk.Coin) (ozoneLimitChange sdkmath.Int, err error) { if _, found := k.GetResourceNode(ctx, networkAddr); found { ctx.Logger().Error("Resource node already exist") @@ -289,54 +290,54 @@ func (k Keeper) UpdateResourceNode(ctx sdk.Context, description types.Descriptio return nil } -// Add deposit only +// UpdateResourceNodeDeposit Add deposit only func (k Keeper) UpdateResourceNodeDeposit(ctx sdk.Context, networkAddr stratos.SdsAddress, ownerAddr sdk.AccAddress, depositDelta sdk.Coin) ( - ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdk.Int, completionTime time.Time, resourcenode types.ResourceNode, err error) { + ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter sdkmath.Int, completionTime time.Time, resourcenode types.ResourceNode, err error) { if depositDelta.GetDenom() != k.BondDenom(ctx) { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ResourceNode{}, types.ErrBadDenom + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ResourceNode{}, types.ErrBadDenom } node, found := k.GetResourceNode(ctx, networkAddr) if !found { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ResourceNode{}, types.ErrNoResourceNodeFound + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ResourceNode{}, types.ErrNoResourceNodeFound } ownerAddrNode, _ := sdk.AccAddressFromBech32(node.GetOwnerAddress()) if !ownerAddrNode.Equals(ownerAddr) { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ResourceNode{}, types.ErrInvalidOwnerAddr + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ResourceNode{}, types.ErrInvalidOwnerAddr } completionTime = ctx.BlockHeader().Time ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter, err = k.AddResourceNodeDeposit(ctx, node, depositDelta) if err != nil { - return sdk.ZeroInt(), sdk.ZeroInt(), sdk.ZeroInt(), time.Time{}, types.ResourceNode{}, err + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), sdkmath.ZeroInt(), time.Time{}, types.ResourceNode{}, err } return ozoneLimitChange, availableTokenAmtBefore, availableTokenAmtAfter, completionTime, node, nil } -func (k Keeper) UpdateEffectiveDeposit(ctx sdk.Context, networkAddr stratos.SdsAddress, effectiveDepositAfter sdk.Int) ( - ozoneLimitChange, effectiveDepositChange sdk.Int, isUnsuspendedDuringUpdate bool, err error) { +func (k Keeper) UpdateEffectiveDeposit(ctx sdk.Context, networkAddr stratos.SdsAddress, effectiveDepositAfter sdkmath.Int) ( + ozoneLimitChange, effectiveDepositChange sdkmath.Int, isUnsuspendedDuringUpdate bool, err error) { node, found := k.GetResourceNode(ctx, networkAddr) if !found { - return sdk.ZeroInt(), sdk.ZeroInt(), false, types.ErrNoResourceNodeFound + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), false, types.ErrNoResourceNodeFound } // before calc ozone limit change, get unbonding deposit and calc effective deposit to trigger ozLimit change unbondingDeposit := k.GetUnbondingNodeBalance(ctx, networkAddr) // no effective deposit after subtracting unbonding deposit if node.Tokens.LTE(unbondingDeposit) { - return sdk.ZeroInt(), sdk.ZeroInt(), false, types.ErrInsufficientBalance + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), false, types.ErrInsufficientBalance } availableDeposit := node.Tokens.Sub(unbondingDeposit) if availableDeposit.LT(effectiveDepositAfter) { - return sdk.ZeroInt(), sdk.ZeroInt(), false, types.ErrInsufficientBalance + return sdkmath.ZeroInt(), sdkmath.ZeroInt(), false, types.ErrInsufficientBalance } - isUnsuspendedDuringUpdate = node.Suspend == true && node.EffectiveTokens.Equal(sdk.ZeroInt()) && effectiveDepositAfter.GT(sdk.ZeroInt()) + isUnsuspendedDuringUpdate = node.Suspend == true && node.EffectiveTokens.Equal(sdkmath.ZeroInt()) && effectiveDepositAfter.GT(sdkmath.ZeroInt()) - effectiveDepositBefore := sdk.NewInt(0).Add(node.EffectiveTokens) + effectiveDepositBefore := sdkmath.NewInt(0).Add(node.EffectiveTokens) effectiveDepositChange = effectiveDepositAfter.Sub(effectiveDepositBefore) node.EffectiveTokens = effectiveDepositAfter @@ -359,7 +360,7 @@ func (k Keeper) GetResourceNodeBondedToken(ctx sdk.Context) (token sdk.Coin) { ctx.Logger().Error("account address for resource node bonded pool does not exist.") return sdk.Coin{ Denom: k.BondDenom(ctx), - Amount: sdk.ZeroInt(), + Amount: sdkmath.ZeroInt(), } } return k.bankKeeper.GetBalance(ctx, resourceNodeBondedAccAddr, k.BondDenom(ctx)) @@ -371,7 +372,7 @@ func (k Keeper) GetResourceNodeNotBondedToken(ctx sdk.Context) (token sdk.Coin) ctx.Logger().Error("account address for resource node Not bonded pool does not exist.") return sdk.Coin{ Denom: k.BondDenom(ctx), - Amount: sdk.ZeroInt(), + Amount: sdkmath.ZeroInt(), } } return k.bankKeeper.GetBalance(ctx, resourceNodeNotBondedAccAddr, k.BondDenom(ctx)) diff --git a/x/register/keeper/slashing.go b/x/register/keeper/slashing.go index 46676636..12b06a43 100644 --- a/x/register/keeper/slashing.go +++ b/x/register/keeper/slashing.go @@ -1,6 +1,7 @@ package keeper import ( + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" ) @@ -10,7 +11,7 @@ func (k Keeper) DeductSlashing(ctx sdk.Context, walletAddress sdk.AccAddress, co remaining = coins deducted = sdk.Coins{} - if slashing.LTE(sdk.ZeroInt()) || coins.Empty() || coins.AmountOf(slashingDenom).IsZero() { + if slashing.LTE(sdkmath.ZeroInt()) || coins.Empty() || coins.AmountOf(slashingDenom).IsZero() { return } @@ -18,13 +19,13 @@ func (k Keeper) DeductSlashing(ctx sdk.Context, walletAddress sdk.AccAddress, co if coinAmt.GTE(slashing) { deducted = sdk.NewCoins(sdk.NewCoin(slashingDenom, slashing)) coinAmt = coinAmt.Sub(slashing) - remaining = remaining.Sub(deducted) - slashing = sdk.ZeroInt() + remaining = remaining.Sub(deducted...) + slashing = sdkmath.ZeroInt() } else { deducted = sdk.NewCoins(sdk.NewCoin(slashingDenom, coinAmt)) slashing = slashing.Sub(coinAmt) - remaining = remaining.Sub(deducted) - coinAmt = sdk.ZeroInt() + remaining = remaining.Sub(deducted...) + coinAmt = sdkmath.ZeroInt() } k.SetSlashing(ctx, walletAddress, slashing) diff --git a/x/register/keeper/store.go b/x/register/keeper/store.go index 2f4271a1..562cd0bc 100644 --- a/x/register/keeper/store.go +++ b/x/register/keeper/store.go @@ -3,23 +3,24 @@ package keeper import ( "time" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/register/types" ) -func (k Keeper) SetInitialGenesisDepositTotal(ctx sdk.Context, deposit sdk.Int) { +func (k Keeper) SetInitialGenesisDepositTotal(ctx sdk.Context, deposit sdkmath.Int) { store := ctx.KVStore(k.storeKey) b := k.cdc.MustMarshalLengthPrefixed(&stratos.Int{Value: &deposit}) store.Set(types.InitialGenesisDepositTotalKey, b) } -func (k Keeper) GetInitialGenesisDepositTotal(ctx sdk.Context) (deposit sdk.Int) { +func (k Keeper) GetInitialGenesisDepositTotal(ctx sdk.Context) (deposit sdkmath.Int) { store := ctx.KVStore(k.storeKey) b := store.Get(types.InitialGenesisDepositTotalKey) if b == nil { - return sdk.ZeroInt() + return sdkmath.ZeroInt() } value := stratos.Int{} k.cdc.MustUnmarshalLengthPrefixed(b, &value) @@ -27,17 +28,17 @@ func (k Keeper) GetInitialGenesisDepositTotal(ctx sdk.Context) (deposit sdk.Int) return } -func (k Keeper) SetRemainingOzoneLimit(ctx sdk.Context, value sdk.Int) { +func (k Keeper) SetRemainingOzoneLimit(ctx sdk.Context, value sdkmath.Int) { store := ctx.KVStore(k.storeKey) b := k.cdc.MustMarshalLengthPrefixed(&stratos.Int{Value: &value}) store.Set(types.UpperBoundOfTotalOzoneKey, b) } -func (k Keeper) GetRemainingOzoneLimit(ctx sdk.Context) (value sdk.Int) { +func (k Keeper) GetRemainingOzoneLimit(ctx sdk.Context) (value sdkmath.Int) { store := ctx.KVStore(k.storeKey) b := store.Get(types.UpperBoundOfTotalOzoneKey) if b == nil { - return sdk.ZeroInt() + return sdkmath.ZeroInt() } intVal := stratos.Int{} k.cdc.MustUnmarshalLengthPrefixed(b, &intVal) @@ -45,17 +46,17 @@ func (k Keeper) GetRemainingOzoneLimit(ctx sdk.Context) (value sdk.Int) { return } -func (k *Keeper) GetPrepayParams(ctx sdk.Context) (St, Pt, Lt sdk.Int) { +func (k *Keeper) GetPrepayParams(ctx sdk.Context) (St, Pt, Lt sdkmath.Int) { St = k.GetEffectiveTotalDeposit(ctx) Pt = k.GetTotalUnissuedPrepay(ctx).Amount Lt = k.GetRemainingOzoneLimit(ctx) return } -func (k Keeper) IsUnbondable(ctx sdk.Context, unbondAmt sdk.Int) bool { +func (k Keeper) IsUnbondable(ctx sdk.Context, unbondAmt sdkmath.Int) bool { remaining := k.GetRemainingOzoneLimit(ctx) depositNozRate := k.GetDepositNozRate(ctx) - return remaining.ToDec().GTE(unbondAmt.ToDec().Quo(depositNozRate)) + return remaining.ToLegacyDec().GTE(unbondAmt.ToLegacyDec().Quo(depositNozRate)) } // SetUnbondingNode sets the unbonding node @@ -117,17 +118,17 @@ func (k Keeper) UnbondingNodeQueueIterator(ctx sdk.Context, endTime time.Time) s return store.Iterator(types.UBDNodeQueueKey, sdk.InclusiveEndBytes(types.GetUBDTimeKey(endTime))) } -func (k Keeper) SetBondedResourceNodeCnt(ctx sdk.Context, count sdk.Int) { +func (k Keeper) SetBondedResourceNodeCnt(ctx sdk.Context, count sdkmath.Int) { store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshalLengthPrefixed(&stratos.Int{Value: &count}) store.Set(types.ResourceNodeCntKey, bz) } -func (k Keeper) GetBondedResourceNodeCnt(ctx sdk.Context) (balance sdk.Int) { +func (k Keeper) GetBondedResourceNodeCnt(ctx sdk.Context) (balance sdkmath.Int) { store := ctx.KVStore(k.storeKey) bz := store.Get(types.ResourceNodeCntKey) if bz == nil { - return sdk.ZeroInt() + return sdkmath.ZeroInt() } intValue := stratos.Int{} k.cdc.MustUnmarshalLengthPrefixed(bz, &intValue) @@ -135,17 +136,17 @@ func (k Keeper) GetBondedResourceNodeCnt(ctx sdk.Context) (balance sdk.Int) { return } -func (k Keeper) SetBondedMetaNodeCnt(ctx sdk.Context, count sdk.Int) { +func (k Keeper) SetBondedMetaNodeCnt(ctx sdk.Context, count sdkmath.Int) { store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshalLengthPrefixed(&stratos.Int{Value: &count}) store.Set(types.MetaNodeCntKey, bz) } -func (k Keeper) GetBondedMetaNodeCnt(ctx sdk.Context) (balance sdk.Int) { +func (k Keeper) GetBondedMetaNodeCnt(ctx sdk.Context) (balance sdkmath.Int) { store := ctx.KVStore(k.storeKey) bz := store.Get(types.MetaNodeCntKey) if bz == nil { - return sdk.ZeroInt() + return sdkmath.ZeroInt() } intValue := stratos.Int{} k.cdc.MustUnmarshalLengthPrefixed(bz, &intValue) @@ -175,17 +176,17 @@ func (k Keeper) GetMetaNodeRegistrationVotePool(ctx sdk.Context, nodeAddr strato return votePool, true } -func (k Keeper) SetEffectiveTotalDeposit(ctx sdk.Context, deposit sdk.Int) { +func (k Keeper) SetEffectiveTotalDeposit(ctx sdk.Context, deposit sdkmath.Int) { store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshalLengthPrefixed(&stratos.Int{Value: &deposit}) store.Set(types.EffectiveGenesisDepositTotalKey, bz) } -func (k Keeper) GetEffectiveTotalDeposit(ctx sdk.Context) (deposit sdk.Int) { +func (k Keeper) GetEffectiveTotalDeposit(ctx sdk.Context) (deposit sdkmath.Int) { store := ctx.KVStore(k.storeKey) bz := store.Get(types.EffectiveGenesisDepositTotalKey) if bz == nil { - return sdk.ZeroInt() + return sdkmath.ZeroInt() } intValue := stratos.Int{} k.cdc.MustUnmarshalLengthPrefixed(bz, &intValue) @@ -193,13 +194,13 @@ func (k Keeper) GetEffectiveTotalDeposit(ctx sdk.Context) (deposit sdk.Int) { return } -func (k Keeper) SetDepositNozRate(ctx sdk.Context, depositNozRate sdk.Dec) { +func (k Keeper) SetDepositNozRate(ctx sdk.Context, depositNozRate sdkmath.LegacyDec) { store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshalLengthPrefixed(&stratos.Dec{Value: &depositNozRate}) store.Set(types.DepositNozRateKey, bz) } -func (k Keeper) GetDepositNozRate(ctx sdk.Context) (depositNozRate sdk.Dec) { +func (k Keeper) GetDepositNozRate(ctx sdk.Context) (depositNozRate sdkmath.LegacyDec) { store := ctx.KVStore(k.storeKey) bz := store.Get(types.DepositNozRateKey) if bz == nil { @@ -212,7 +213,7 @@ func (k Keeper) GetDepositNozRate(ctx sdk.Context) (depositNozRate sdk.Dec) { } // IteratorSlashingInfo Iteration for each slashing -func (k Keeper) IteratorSlashingInfo(ctx sdk.Context, handler func(walletAddress sdk.AccAddress, slashing sdk.Int) (stop bool)) { +func (k Keeper) IteratorSlashingInfo(ctx sdk.Context, handler func(walletAddress sdk.AccAddress, slashing sdkmath.Int) (stop bool)) { store := ctx.KVStore(k.storeKey) iter := sdk.KVStorePrefixIterator(store, types.SlashingPrefix) defer iter.Close() @@ -227,18 +228,18 @@ func (k Keeper) IteratorSlashingInfo(ctx sdk.Context, handler func(walletAddress } } -func (k Keeper) SetSlashing(ctx sdk.Context, walletAddress sdk.AccAddress, slashing sdk.Int) { +func (k Keeper) SetSlashing(ctx sdk.Context, walletAddress sdk.AccAddress, slashing sdkmath.Int) { store := ctx.KVStore(k.storeKey) storeKey := types.GetSlashingKey(walletAddress) bz := k.cdc.MustMarshalLengthPrefixed(&stratos.Int{Value: &slashing}) store.Set(storeKey, bz) } -func (k Keeper) GetSlashing(ctx sdk.Context, walletAddress sdk.AccAddress) (res sdk.Int) { +func (k Keeper) GetSlashing(ctx sdk.Context, walletAddress sdk.AccAddress) (res sdkmath.Int) { store := ctx.KVStore(k.storeKey) bz := store.Get(types.GetSlashingKey(walletAddress)) if bz == nil { - return sdk.ZeroInt() + return sdkmath.ZeroInt() } intValue := stratos.Int{} k.cdc.MustUnmarshalLengthPrefixed(bz, &intValue) diff --git a/x/register/keeper/utils.go b/x/register/keeper/utils.go index c3740b0c..f9e1cff5 100644 --- a/x/register/keeper/utils.go +++ b/x/register/keeper/utils.go @@ -1,40 +1,5 @@ package keeper -import ( - "net/http" - - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/rest" - stratos "github.com/stratosnet/stratos-chain/types" -) - -func CheckAccAddr(w http.ResponseWriter, r *http.Request, data string) (sdk.AccAddress, bool) { - AccAddr, err := sdk.AccAddressFromBech32(data) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, "Invalid NodeAddress.") - return nil, false - } - return AccAddr, true -} - -func CheckSdsAddr(w http.ResponseWriter, r *http.Request, data string) (stratos.SdsAddress, bool) { - sdsAddr, err := stratos.SdsAddressFromBech32(data) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, "Invalid NodeAddress.") - return nil, false - } - return sdsAddr, true -} - -func hasValue(items []stratos.SdsAddress, item stratos.SdsAddress) bool { - for _, eachItem := range items { - if eachItem.Equals(item) { - return true - } - } - return false -} - func hasStringValue(items []string, item string) bool { for _, eachItem := range items { if len(item) > 0 && eachItem == item { diff --git a/x/register/module.go b/x/register/module.go index cfd10699..a7ac8279 100644 --- a/x/register/module.go +++ b/x/register/module.go @@ -5,29 +5,43 @@ import ( "encoding/json" "fmt" - "github.com/cosmos/cosmos-sdk/client" - simtypes "github.com/cosmos/cosmos-sdk/types/simulation" "github.com/grpc-ecosystem/grpc-gateway/runtime" - - "github.com/gorilla/mux" "github.com/spf13/cobra" - abci "github.com/tendermint/tendermint/abci/types" + abci "github.com/cometbft/cometbft/abci/types" + "cosmossdk.io/core/appmodule" + "cosmossdk.io/depinject" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" cdctypes "github.com/cosmos/cosmos-sdk/codec/types" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" + simtypes "github.com/cosmos/cosmos-sdk/types/simulation" + authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + + modulev1 "github.com/stratosnet/stratos-chain/api/stratos/register/module/v1" "github.com/stratosnet/stratos-chain/x/register/client/cli" - "github.com/stratosnet/stratos-chain/x/register/client/rest" "github.com/stratosnet/stratos-chain/x/register/keeper" "github.com/stratosnet/stratos-chain/x/register/types" ) +const ( + consensusVersion = 1 +) + // Type check to ensure the interface is properly implemented var ( - _ module.AppModule = AppModule{} - _ module.AppModuleBasic = AppModuleBasic{} + _ module.AppModule = AppModule{} + _ module.AppModuleBasic = AppModuleBasic{} + _ module.AppModuleSimulation = AppModule{} + _ appmodule.AppModule = AppModule{} + _ depinject.OnePerModuleType = AppModule{} ) // AppModuleBasic defines the basic application module used by the register module. @@ -35,8 +49,6 @@ type AppModuleBasic struct { cdc codec.Codec } -var _ module.AppModuleBasic = AppModuleBasic{} - // Name returns the register module's name. func (AppModuleBasic) Name() string { return types.ModuleName @@ -59,7 +71,7 @@ func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage { } // ValidateGenesis performs genesis state validation for the register module. -func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, bz json.RawMessage) error { +func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, _ client.TxEncodingConfig, bz json.RawMessage) error { var data types.GenesisState if err := cdc.UnmarshalJSON(bz, &data); err != nil { return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) @@ -67,11 +79,6 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncod return types.ValidateGenesis(data) } -// RegisterRESTRoutes registers the REST routes for the register module. -func (AppModuleBasic) RegisterRESTRoutes(ctx client.Context, rtr *mux.Router) { - rest.RegisterHandlers(ctx, rtr) -} - // RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the register module. func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux) { if err := types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx)); err != nil { @@ -94,93 +101,163 @@ func (AppModuleBasic) GetQueryCmd() *cobra.Command { // AppModule implements an application module for the register module. type AppModule struct { AppModuleBasic - keeper keeper.Keeper - accountKeeper types.AccountKeeper - bankKeeper types.BankKeeper + accountKeeper authkeeper.AccountKeeper + bankKeeper bankkeeper.Keeper + distrKeeper distrkeeper.Keeper + + // legacySubspace is used solely for migration of x/params managed parameters + legacySubspace types.ParamsSubspace } // NewAppModule creates a new AppModule object -func NewAppModule(k keeper.Keeper, accountKeeper types.AccountKeeper, bankKeeper types.BankKeeper) AppModule { +func NewAppModule(cdc codec.Codec, k keeper.Keeper, accountKeeper authkeeper.AccountKeeper, bankKeeper bankkeeper.Keeper, + distrKeeper distrkeeper.Keeper, legacySubspace types.ParamsSubspace, +) AppModule { return AppModule{ - AppModuleBasic: AppModuleBasic{}, + AppModuleBasic: AppModuleBasic{cdc: cdc}, keeper: k, accountKeeper: accountKeeper, bankKeeper: bankKeeper, + distrKeeper: distrKeeper, + legacySubspace: legacySubspace, } } -// RegisterInvariants registers the register module invariants. -func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} +// RegisterServices registers module services. +func (am AppModule) RegisterServices(cfg module.Configurator) { + types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper)) + querier := keeper.Querier{Keeper: am.keeper} + types.RegisterQueryServer(cfg.QueryServer(), querier) -// NewHandler returns an sdk.Handler for the register module. -func (am AppModule) NewHandler() sdk.Handler { - return NewHandler(am.keeper) + //m := keeper.NewMigrator(am.keeper) + //_ = cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2) } -// QuerierRoute returns the register module's querier route name. -func (AppModule) QuerierRoute() string { - return types.QuerierRoute +// RegisterInvariants registers the register module invariants. +func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} + +// InitGenesis performs genesis initialization for the register module. It returns +// no validator updates. +func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate { + var genesisState types.GenesisState + cdc.MustUnmarshalJSON(data, &genesisState) + InitGenesis(ctx, am.keeper, &genesisState) + return []abci.ValidatorUpdate{} } -// NewQuerierHandler returns the register module sdk.Querier. -func (am AppModule) NewQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return keeper.NewQuerier(am.keeper, legacyQuerierCdc) +// ExportGenesis returns the exported genesis state as raw bytes for the register +// module. +func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { + gs := ExportGenesis(ctx, am.keeper) + return cdc.MustMarshalJSON(gs) } -// BeginBlock returns the begin blocker for the register module. +// BeginBlock returns the beginBlocker for the register module. func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) { BeginBlocker(ctx, req, am.keeper) } -// EndBlock returns the end blocker for the register module. It returns no validator +// EndBlock returns the endBlocker for the register module. It returns no validator // updates. -func (am AppModule) EndBlock(ctx sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate { - return EndBlocker(ctx, am.keeper) +func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate { + return EndBlocker(ctx, req, am.keeper) } -// RegisterServices registers module services. -func (am AppModule) RegisterServices(cfg module.Configurator) { - types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper)) - querier := keeper.Querier{Keeper: am.keeper} - types.RegisterQueryServer(cfg.QueryServer(), querier) +// ConsensusVersion implements AppModule/ConsensusVersion. +func (AppModule) ConsensusVersion() uint64 { + return consensusVersion +} - //m := keeper.NewMigrator(am.keeper) - //_ = cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2) +// IsOnePerModuleType implements depinject.OnePerModuleType +func (am AppModule) IsOnePerModuleType() { } -// ConsensusVersion implements AppModule/ConsensusVersion. -func (AppModule) ConsensusVersion() uint64 { return 1 } +// IsAppModule implements appmodule.AppModule +func (am AppModule) IsAppModule() { +} -// ProposalContents doesn't return any content functions for governance proposals. -func (AppModule) ProposalContents(simState module.SimulationState) []simtypes.WeightedProposalContent { +//____________________________________________________________________________ + +// AppModuleSimulation defines the module simulation functions used by the profiles module. +type AppModuleSimulation struct{} + +// GenerateGenesisState implements AppModuleSimulation +func (am AppModule) GenerateGenesisState(input *module.SimulationState) { +} + +// RegisterStoreDecoder implements AppModuleSimulation +func (am AppModule) RegisterStoreDecoder(registry sdk.StoreDecoderRegistry) { +} + +// WeightedOperations implements AppModuleSimulation +func (am AppModule) WeightedOperations(simState module.SimulationState) []simtypes.WeightedOperation { return nil } -// LegacyQuerierHandler returns the register module sdk.Querier. -func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return keeper.NewQuerier(am.keeper, legacyQuerierCdc) +// ProposalMsgs returns msgs used for governance proposals for simulations. +func (AppModule) ProposalMsgs(simState module.SimulationState) []simtypes.WeightedProposalMsg { + return nil } -// InitGenesis performs genesis initialization for the register module. It returns -// no validator updates. -func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate { - var genesisState types.GenesisState +// -------------------------------------------------------------------------------------------------------------------- - cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, &genesisState) +// App Wiring Setup - return []abci.ValidatorUpdate{} +func init() { + appmodule.Register( + &modulev1.Module{}, + appmodule.Provide( + ProvideModule, + ), + ) } -// ExportGenesis returns the exported genesis state as raw bytes for the register -// module. -func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { - gs := ExportGenesis(ctx, am.keeper) - return cdc.MustMarshalJSON(gs) +type ModuleInputs struct { + depinject.In + + Config *modulev1.Module + Cdc codec.Codec + Key *storetypes.KVStoreKey + AccountKeeper authkeeper.AccountKeeper + BankKeeper bankkeeper.Keeper + DistrKeeper distrkeeper.Keeper + + // LegacySubspace is used solely for migration of x/params managed parameters + LegacySubspace types.ParamsSubspace `optional:"true"` } -// Route returns the message routing key for the register module. -func (am AppModule) Route() sdk.Route { - return sdk.NewRoute(types.RouterKey, NewHandler(am.keeper)) +type ModuleOutputs struct { + depinject.Out + + RegisterKeeper keeper.Keeper + Module appmodule.AppModule +} + +func ProvideModule(in ModuleInputs) ModuleOutputs { + // default to governance authority if not provided + authority := authtypes.NewModuleAddress(govtypes.ModuleName) + if in.Config.Authority != "" { + authority = authtypes.NewModuleAddressOrBech32Address(in.Config.Authority) + } + + k := keeper.NewKeeper( + in.Cdc, + in.Key, + in.AccountKeeper, + in.BankKeeper, + in.DistrKeeper, + authority.String(), + ) + + m := NewAppModule( + in.Cdc, + k, + in.AccountKeeper, + in.BankKeeper, + in.DistrKeeper, + in.LegacySubspace, + ) + + return ModuleOutputs{RegisterKeeper: k, Module: m} } diff --git a/x/register/types/codec.go b/x/register/types/codec.go index 04f141cb..5d40eb63 100644 --- a/x/register/types/codec.go +++ b/x/register/types/codec.go @@ -7,6 +7,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" "github.com/cosmos/cosmos-sdk/x/authz" + authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec" + govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" + groupcodec "github.com/cosmos/cosmos-sdk/x/group/codec" ) // RegisterLegacyAminoCodec registers concrete types on codec @@ -55,5 +58,10 @@ func init() { ModuleCdc = codec.NewLegacyAmino() RegisterLegacyAminoCodec(ModuleCdc) cryptocodec.RegisterCrypto(ModuleCdc) - ModuleCdc.Seal() + + // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be + // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances + RegisterLegacyAminoCodec(authzcodec.Amino) + RegisterLegacyAminoCodec(govcodec.Amino) + RegisterLegacyAminoCodec(groupcodec.Amino) } diff --git a/x/register/types/errors.go b/x/register/types/errors.go index de11deb1..c3453699 100644 --- a/x/register/types/errors.go +++ b/x/register/types/errors.go @@ -1,7 +1,7 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "cosmossdk.io/errors" ) const ( @@ -65,67 +65,69 @@ const ( codeErrReporterAddress codeErrInvalidAmount codeErrReporterAddressOrOwner + codeErrInvalidEffectiveToken ) var ( - ErrInvalid = sdkerrors.Register(ModuleName, codeErrInvalid, "error invalid") - ErrInvalidNetworkAddr = sdkerrors.Register(ModuleName, codeErrInvalidNetworkAddr, "invalid network address") - ErrEmptyOwnerAddr = sdkerrors.Register(ModuleName, codeErrEmptyOwnerAddr, "missing owner address") - ErrValueNegative = sdkerrors.Register(ModuleName, codeErrValueNegative, "value must be positive") - ErrEmptyDescription = sdkerrors.Register(ModuleName, codeErrEmptyDescription, "description must be not empty") - ErrEmptyMoniker = sdkerrors.Register(ModuleName, codeErrEmptyMoniker, "moniker must be not empty") - ErrEmptyResourceNodeAddr = sdkerrors.Register(ModuleName, codeErrEmptyResourceNodeAddr, "missing resource node address") - ErrEmptyMetaNodeAddr = sdkerrors.Register(ModuleName, codeErrEmptyMetaNodeAddr, "missing Meta node address") - ErrBadDenom = sdkerrors.Register(ModuleName, codeErrBadDenom, "invalid coin denomination") - ErrInsufficientDeposit = sdkerrors.Register(ModuleName, codeErrInsufficientDeposit, "insufficient deposit") - ErrResourceNodePubKeyExists = sdkerrors.Register(ModuleName, codeErrResourceNodePubKeyExists, "resource node already exist for this pubkey; must use new resource node pubkey") - ErrMetaNodePubKeyExists = sdkerrors.Register(ModuleName, codeErrMetaNodePubKeyExists, "meta node already exist for this pubkey; must use new meta node pubkey") - ErrNoResourceNodeFound = sdkerrors.Register(ModuleName, codeErrNoResourceNodeFound, "resource node does not exist") - ErrNoMetaNodeFound = sdkerrors.Register(ModuleName, codeErrNoMetaNodeFound, "meta node does not exist") - ErrNoOwnerAccountFound = sdkerrors.Register(ModuleName, codeErrNoOwnerAccountFound, "account of owner does not exist") - ErrInsufficientBalance = sdkerrors.Register(ModuleName, codeErrInsufficientBalance, "insufficient balance") - ErrNodeType = sdkerrors.Register(ModuleName, codeErrNodeType, "node type(s) not supported") - ErrEmptyCandidateNetworkAddr = sdkerrors.Register(ModuleName, codeErrEmptyCandidateNetworkAddr, "missing candidate network address") - ErrEmptyCandidateOwnerAddr = sdkerrors.Register(ModuleName, codeErrEmptyCandidateOwnerAddr, "missing candidate owner address") - ErrEmptyVoterNetworkAddr = sdkerrors.Register(ModuleName, codeErrEmptyVoterNetworkAddr, "missing voter network address") - ErrEmptyVoterOwnerAddr = sdkerrors.Register(ModuleName, codeErrEmptyVoterOwnerAddr, "missing voter owner address") - ErrInvalidCandidateNetworkAddr = sdkerrors.Register(ModuleName, codeErrInvalidCandidateNetworkAddr, "invalid candidate network address") - ErrInvalidCandidateOwnerAddr = sdkerrors.Register(ModuleName, codeErrInvalidCandidateOwnerAddr, "invalid candidate owner address") - ErrNoCandidateMetaNodeFound = sdkerrors.Register(ModuleName, codeErrNoCandidateMetaNodeFound, "candidate meta node does not exist") - ErrInvalidVoterNetworkAddr = sdkerrors.Register(ModuleName, codeErrInvalidVoterNetworkAddr, "invalid voter network address") - ErrInvalidVoterOwnerAddr = sdkerrors.Register(ModuleName, codeErrInvalidVoterOwnerAddr, "invalid voter owner address") - ErrNoVoterMetaNodeFound = sdkerrors.Register(ModuleName, codeErrNoVoterMetaNodeFound, "voter meta node does not exist") - ErrSameAddr = sdkerrors.Register(ModuleName, codeErrSameAddr, "node address should not same as the voter address") - ErrInvalidOwnerAddr = sdkerrors.Register(ModuleName, codeErrInvalidOwnerAddr, "invalid owner address") - ErrInvalidVoterStatus = sdkerrors.Register(ModuleName, codeErrInvalidVoterStatus, "invalid voter status") - ErrNoRegistrationVotePoolFound = sdkerrors.Register(ModuleName, codeEcoderrNoRegistrationVotePoolFound, "registration pool does not exist") - ErrDuplicateVoting = sdkerrors.Register(ModuleName, codeErrDuplicateVoting, "duplicate voting") - ErrVoteExpired = sdkerrors.Register(ModuleName, codeErrVoteExpired, "vote expired") - ErrInsufficientBalanceOfNotBondedPool = sdkerrors.Register(ModuleName, codeErrInsufficientBalanceOfNotBondedPool, "insufficient balance of not bonded pool") - ErrEmptyNodeNetworkAddress = sdkerrors.Register(ModuleName, codeErrEmptyNodeNetworkAddress, "missing node network address") - ErrEmptyPubKey = sdkerrors.Register(ModuleName, codeErrEmptyPubKey, "missing public key") - ErrNoUnbondingNode = sdkerrors.Register(ModuleName, codeErrNoUnbondingNode, "no unbonding node found") - ErrMaxUnbondingNodeEntries = sdkerrors.Register(ModuleName, codeErrMaxUnbondingNodeEntries, "too many unbonding node entries for networkAddr tuple") - ErrUnbondingNode = sdkerrors.Register(ModuleName, codeErrUnbondingNode, "changes cannot be made to an unbonding node") - ErrDepositNozRate = sdkerrors.Register(ModuleName, codeErrDepositNozRate, "deposit noz rate must be positive") - ErrRemainingNozLimit = sdkerrors.Register(ModuleName, codeErrRemainingNozLimit, "remaining Noz Limit must be non-negative") - ErrInvalidDepositChange = sdkerrors.Register(ModuleName, codeErrInvalidDepositChange, "invalid change for deposit") - ErrInvalidNodeType = sdkerrors.Register(ModuleName, codeErrInvalidNodeType, "invalid node type") - ErrUnknownAccountAddress = sdkerrors.Register(ModuleName, codeErrUnknownAccountAddress, "account address does not exist") - ErrUnknownPubKey = sdkerrors.Register(ModuleName, codeErrUnknownPubKey, "unknown pubKey ") - ErrInvalidNodeStat = sdkerrors.Register(ModuleName, codeErrInvalidNodeStat, "invalid node status") - ErrRegisterResourceNode = sdkerrors.Register(ModuleName, codeErrRegisterResourceNode, "failed to register resource node") - ErrRegisterMetaNode = sdkerrors.Register(ModuleName, codeErrRegisterMetaNode, "failed to register meta node") - ErrUnbondResourceNode = sdkerrors.Register(ModuleName, codeErrUnbondResourceNode, "failed to unbond resource node") - ErrUnbondMetaNode = sdkerrors.Register(ModuleName, codeErrUnbondMetaNode, "failed to unbond meta node") - ErrUpdateResourceNode = sdkerrors.Register(ModuleName, codeErrUpdateResourceNode, "failed to update resource node") - ErrUpdateMetaNode = sdkerrors.Register(ModuleName, codeErrUpdateMetaNode, "failed to update meta node") - ErrUpdateResourceNodeDeposit = sdkerrors.Register(ModuleName, codeErrUpdateResourceNodeDeposit, "failed to update deposit for resource node") - ErrUpdateMetaNodeDeposit = sdkerrors.Register(ModuleName, codeErrUpdateMetaNodeDeposit, "failed to update deposit for meta node") - ErrVoteMetaNode = sdkerrors.Register(ModuleName, codeErrVoteMetaNode, "failed to vote meta node") - ErrResourceNodeRegDisabled = sdkerrors.Register(ModuleName, codeErrResourceNodeRegDisabled, "resource node registration is disabled") - ErrInvalidSuspensionStatForUnbondNode = sdkerrors.Register(ModuleName, codeErrInvalidSuspensionStatForUnbondNode, "cannot unbond a suspended node") - ErrReporterAddress = sdkerrors.Register(ModuleName, codeErrReporterAddress, "invalid reporter address") - ErrInvalidAmount = sdkerrors.Register(ModuleName, codeErrInvalidAmount, "invalid amount") - ErrReporterAddressOrOwner = sdkerrors.Register(ModuleName, codeErrReporterAddressOrOwner, "invalid reporter address or owner address") + ErrInvalid = errors.Register(ModuleName, codeErrInvalid, "error invalid") + ErrInvalidNetworkAddr = errors.Register(ModuleName, codeErrInvalidNetworkAddr, "invalid network address") + ErrEmptyOwnerAddr = errors.Register(ModuleName, codeErrEmptyOwnerAddr, "missing owner address") + ErrValueNegative = errors.Register(ModuleName, codeErrValueNegative, "value must be positive") + ErrEmptyDescription = errors.Register(ModuleName, codeErrEmptyDescription, "description must be not empty") + ErrEmptyMoniker = errors.Register(ModuleName, codeErrEmptyMoniker, "moniker must be not empty") + ErrEmptyResourceNodeAddr = errors.Register(ModuleName, codeErrEmptyResourceNodeAddr, "missing resource node address") + ErrEmptyMetaNodeAddr = errors.Register(ModuleName, codeErrEmptyMetaNodeAddr, "missing Meta node address") + ErrBadDenom = errors.Register(ModuleName, codeErrBadDenom, "invalid coin denomination") + ErrInsufficientDeposit = errors.Register(ModuleName, codeErrInsufficientDeposit, "insufficient deposit") + ErrResourceNodePubKeyExists = errors.Register(ModuleName, codeErrResourceNodePubKeyExists, "resource node already exist for this pubkey; must use new resource node pubkey") + ErrMetaNodePubKeyExists = errors.Register(ModuleName, codeErrMetaNodePubKeyExists, "meta node already exist for this pubkey; must use new meta node pubkey") + ErrNoResourceNodeFound = errors.Register(ModuleName, codeErrNoResourceNodeFound, "resource node does not exist") + ErrNoMetaNodeFound = errors.Register(ModuleName, codeErrNoMetaNodeFound, "meta node does not exist") + ErrNoOwnerAccountFound = errors.Register(ModuleName, codeErrNoOwnerAccountFound, "account of owner does not exist") + ErrInsufficientBalance = errors.Register(ModuleName, codeErrInsufficientBalance, "insufficient balance") + ErrNodeType = errors.Register(ModuleName, codeErrNodeType, "node type(s) not supported") + ErrEmptyCandidateNetworkAddr = errors.Register(ModuleName, codeErrEmptyCandidateNetworkAddr, "missing candidate network address") + ErrEmptyCandidateOwnerAddr = errors.Register(ModuleName, codeErrEmptyCandidateOwnerAddr, "missing candidate owner address") + ErrEmptyVoterNetworkAddr = errors.Register(ModuleName, codeErrEmptyVoterNetworkAddr, "missing voter network address") + ErrEmptyVoterOwnerAddr = errors.Register(ModuleName, codeErrEmptyVoterOwnerAddr, "missing voter owner address") + ErrInvalidCandidateNetworkAddr = errors.Register(ModuleName, codeErrInvalidCandidateNetworkAddr, "invalid candidate network address") + ErrInvalidCandidateOwnerAddr = errors.Register(ModuleName, codeErrInvalidCandidateOwnerAddr, "invalid candidate owner address") + ErrNoCandidateMetaNodeFound = errors.Register(ModuleName, codeErrNoCandidateMetaNodeFound, "candidate meta node does not exist") + ErrInvalidVoterNetworkAddr = errors.Register(ModuleName, codeErrInvalidVoterNetworkAddr, "invalid voter network address") + ErrInvalidVoterOwnerAddr = errors.Register(ModuleName, codeErrInvalidVoterOwnerAddr, "invalid voter owner address") + ErrNoVoterMetaNodeFound = errors.Register(ModuleName, codeErrNoVoterMetaNodeFound, "voter meta node does not exist") + ErrSameAddr = errors.Register(ModuleName, codeErrSameAddr, "node address should not same as the voter address") + ErrInvalidOwnerAddr = errors.Register(ModuleName, codeErrInvalidOwnerAddr, "invalid owner address") + ErrInvalidVoterStatus = errors.Register(ModuleName, codeErrInvalidVoterStatus, "invalid voter status") + ErrNoRegistrationVotePoolFound = errors.Register(ModuleName, codeEcoderrNoRegistrationVotePoolFound, "registration pool does not exist") + ErrDuplicateVoting = errors.Register(ModuleName, codeErrDuplicateVoting, "duplicate voting") + ErrVoteExpired = errors.Register(ModuleName, codeErrVoteExpired, "vote expired") + ErrInsufficientBalanceOfNotBondedPool = errors.Register(ModuleName, codeErrInsufficientBalanceOfNotBondedPool, "insufficient balance of not bonded pool") + ErrEmptyNodeNetworkAddress = errors.Register(ModuleName, codeErrEmptyNodeNetworkAddress, "missing node network address") + ErrEmptyPubKey = errors.Register(ModuleName, codeErrEmptyPubKey, "missing public key") + ErrNoUnbondingNode = errors.Register(ModuleName, codeErrNoUnbondingNode, "no unbonding node found") + ErrMaxUnbondingNodeEntries = errors.Register(ModuleName, codeErrMaxUnbondingNodeEntries, "too many unbonding node entries for networkAddr tuple") + ErrUnbondingNode = errors.Register(ModuleName, codeErrUnbondingNode, "changes cannot be made to an unbonding node") + ErrDepositNozRate = errors.Register(ModuleName, codeErrDepositNozRate, "deposit noz rate must be positive") + ErrRemainingNozLimit = errors.Register(ModuleName, codeErrRemainingNozLimit, "remaining Noz Limit must be non-negative") + ErrInvalidDepositChange = errors.Register(ModuleName, codeErrInvalidDepositChange, "invalid change for deposit") + ErrInvalidNodeType = errors.Register(ModuleName, codeErrInvalidNodeType, "invalid node type") + ErrUnknownAccountAddress = errors.Register(ModuleName, codeErrUnknownAccountAddress, "account address does not exist") + ErrUnknownPubKey = errors.Register(ModuleName, codeErrUnknownPubKey, "unknown pubKey ") + ErrInvalidNodeStat = errors.Register(ModuleName, codeErrInvalidNodeStat, "invalid node status") + ErrRegisterResourceNode = errors.Register(ModuleName, codeErrRegisterResourceNode, "failed to register resource node") + ErrRegisterMetaNode = errors.Register(ModuleName, codeErrRegisterMetaNode, "failed to register meta node") + ErrUnbondResourceNode = errors.Register(ModuleName, codeErrUnbondResourceNode, "failed to unbond resource node") + ErrUnbondMetaNode = errors.Register(ModuleName, codeErrUnbondMetaNode, "failed to unbond meta node") + ErrUpdateResourceNode = errors.Register(ModuleName, codeErrUpdateResourceNode, "failed to update resource node") + ErrUpdateMetaNode = errors.Register(ModuleName, codeErrUpdateMetaNode, "failed to update meta node") + ErrUpdateResourceNodeDeposit = errors.Register(ModuleName, codeErrUpdateResourceNodeDeposit, "failed to update deposit for resource node") + ErrUpdateMetaNodeDeposit = errors.Register(ModuleName, codeErrUpdateMetaNodeDeposit, "failed to update deposit for meta node") + ErrVoteMetaNode = errors.Register(ModuleName, codeErrVoteMetaNode, "failed to vote meta node") + ErrResourceNodeRegDisabled = errors.Register(ModuleName, codeErrResourceNodeRegDisabled, "resource node registration is disabled") + ErrInvalidSuspensionStatForUnbondNode = errors.Register(ModuleName, codeErrInvalidSuspensionStatForUnbondNode, "cannot unbond a suspended node") + ErrReporterAddress = errors.Register(ModuleName, codeErrReporterAddress, "invalid reporter address") + ErrInvalidAmount = errors.Register(ModuleName, codeErrInvalidAmount, "invalid amount") + ErrReporterAddressOrOwner = errors.Register(ModuleName, codeErrReporterAddressOrOwner, "invalid reporter address or owner address") + ErrInvalidEffectiveToken = errors.Register(ModuleName, codeErrInvalidEffectiveToken, "invalid effective token") ) diff --git a/x/register/types/expected.go b/x/register/types/expected.go new file mode 100644 index 00000000..96ece8b7 --- /dev/null +++ b/x/register/types/expected.go @@ -0,0 +1,16 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// DONTCOVER + +// ParamsSubspace defines an interface that implements the legacy x/params ParamsSubspace +// type. +// +// NOTE: This is used solely for migration of x/params managed parameters. +type ParamsSubspace interface { + GetParamSet(ctx sdk.Context, ps paramstypes.ParamSet) +} diff --git a/x/register/types/expected_keepers.go b/x/register/types/expected_keepers.go index 254a6f20..dfca8ec2 100644 --- a/x/register/types/expected_keepers.go +++ b/x/register/types/expected_keepers.go @@ -16,7 +16,6 @@ type AccountKeeper interface { // BankKeeper defines the expected interface needed to retrieve account balances. type BankKeeper interface { HasBalance(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coin) bool - GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error diff --git a/x/register/types/genesis.go b/x/register/types/genesis.go index 2d9adfd4..a2041eac 100644 --- a/x/register/types/genesis.go +++ b/x/register/types/genesis.go @@ -3,11 +3,11 @@ package types import ( "encoding/json" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - stratos "github.com/stratosnet/stratos-chain/types" ) @@ -15,9 +15,9 @@ import ( func NewGenesisState(params Params, resourceNodes ResourceNodes, metaNodes MetaNodes, - remainingNozLimit sdk.Int, + remainingNozLimit sdkmath.Int, slashingInfo []Slashing, - depositNozRate sdk.Dec, + depositNozRate sdkmath.LegacyDec, ) *GenesisState { return &GenesisState{ Params: params, @@ -64,11 +64,11 @@ func ValidateGenesis(data GenesisState) error { return err } - if (data.RemainingNozLimit).LT(sdk.ZeroInt()) { + if (data.RemainingNozLimit).LT(sdkmath.ZeroInt()) { return ErrRemainingNozLimit } - if (data.DepositNozRate).LTE(sdk.ZeroDec()) { + if (data.DepositNozRate).LTE(sdkmath.LegacyZeroDec()) { return ErrDepositNozRate } return nil @@ -77,17 +77,17 @@ func ValidateGenesis(data GenesisState) error { func (v GenesisMetaNode) ToMetaNode() (MetaNode, error) { ownerAddress, err := sdk.AccAddressFromBech32(v.OwnerAddress) if err != nil { - return MetaNode{}, sdkerrors.Wrap(ErrInvalidOwnerAddr, err.Error()) + return MetaNode{}, errors.Wrap(ErrInvalidOwnerAddr, err.Error()) } netAddr, err := stratos.SdsAddressFromBech32(v.GetNetworkAddress()) if err != nil { - return MetaNode{}, sdkerrors.Wrap(ErrInvalidNetworkAddr, err.Error()) + return MetaNode{}, errors.Wrap(ErrInvalidNetworkAddr, err.Error()) } tokens, err := sdk.ParseCoinsNormalized(v.Tokens) if err != nil { - return MetaNode{}, sdkerrors.Wrap(ErrBadDenom, err.Error()) + return MetaNode{}, errors.Wrap(ErrBadDenom, err.Error()) } tokenAmt := tokens.AmountOf(DefaultBondDenom) @@ -102,7 +102,7 @@ func (v GenesisMetaNode) ToMetaNode() (MetaNode, error) { }, nil } -func NewSlashing(walletAddress sdk.AccAddress, value sdk.Int) Slashing { +func NewSlashing(walletAddress sdk.AccAddress, value sdkmath.Int) Slashing { return Slashing{ WalletAddress: walletAddress.String(), Value: value.Int64(), diff --git a/x/register/types/genesis.pb.go b/x/register/types/genesis.pb.go index a387271a..f49db8d6 100644 --- a/x/register/types/genesis.pb.go +++ b/x/register/types/genesis.pb.go @@ -5,12 +5,12 @@ package types import ( fmt "fmt" + _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/codec/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types1 "github.com/cosmos/cosmos-sdk/x/staking/types" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" - _ "github.com/regen-network/cosmos-proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" @@ -251,63 +251,187 @@ func init() { func init() { proto.RegisterFile("stratos/register/v1/genesis.proto", fileDescriptor_5bdab54ebea9e48e) } var fileDescriptor_5bdab54ebea9e48e = []byte{ - // 857 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x4f, 0x6b, 0x1b, 0x47, - 0x14, 0xf7, 0xc6, 0xb1, 0x62, 0x8f, 0x2d, 0xa5, 0xd9, 0xb8, 0xed, 0xda, 0x21, 0x1a, 0x65, 0x28, - 0x45, 0xa1, 0x78, 0x17, 0xdb, 0x81, 0x42, 0x4f, 0xcd, 0x12, 0x28, 0xa5, 0xad, 0x08, 0xe3, 0xd2, - 0x42, 0xa1, 0x88, 0xd1, 0xee, 0x64, 0xbd, 0x48, 0x3b, 0x23, 0x76, 0x46, 0x76, 0xe5, 0x2f, 0x50, - 0xe8, 0xa5, 0x85, 0x7e, 0x8b, 0x9e, 0xfb, 0x21, 0x42, 0x4f, 0xa1, 0xa7, 0xd2, 0xc3, 0xb4, 0xd8, - 0x37, 0x1d, 0xf7, 0x13, 0x14, 0xcd, 0x1f, 0xfd, 0xb3, 0x28, 0xe4, 0xa4, 0x79, 0xbf, 0xf7, 0x7b, - 0xef, 0xfd, 0xe6, 0xed, 0x7b, 0x23, 0xf0, 0x44, 0xc8, 0x92, 0x48, 0x2e, 0xa2, 0x92, 0x66, 0xb9, - 0x90, 0xb4, 0x8c, 0x2e, 0x8e, 0xa3, 0x8c, 0x32, 0x2a, 0x72, 0x11, 0x0e, 0x4b, 0x2e, 0xb9, 0xff, - 0xd0, 0x52, 0x42, 0x47, 0x09, 0x2f, 0x8e, 0x0f, 0x0f, 0x32, 0xce, 0xb3, 0x01, 0x8d, 0x34, 0xa5, - 0x37, 0x7a, 0x15, 0x11, 0x36, 0x36, 0xfc, 0xc3, 0xfd, 0x8c, 0x67, 0x5c, 0x1f, 0xa3, 0xe9, 0xc9, - 0xa2, 0x07, 0x09, 0x17, 0x05, 0x17, 0x5d, 0xe3, 0x30, 0x86, 0x75, 0x7d, 0x60, 0xac, 0x48, 0x48, - 0xd2, 0xcf, 0x59, 0x16, 0x5d, 0x1c, 0xf7, 0xa8, 0x24, 0xc7, 0xce, 0xb6, 0x2c, 0xb4, 0x4e, 0xe9, - 0x4c, 0x92, 0xe6, 0xa0, 0xc9, 0x16, 0xd8, 0xfb, 0xcc, 0x88, 0x3f, 0x93, 0x44, 0x52, 0xff, 0x6b, - 0x50, 0x1b, 0x92, 0x92, 0x14, 0x22, 0xf0, 0x5a, 0x5e, 0x7b, 0xf7, 0xe4, 0x51, 0xb8, 0xe6, 0x32, - 0xe1, 0x4b, 0x4d, 0x89, 0xe1, 0x6b, 0x05, 0x37, 0x26, 0x0a, 0xda, 0x90, 0x4a, 0xc1, 0xfa, 0x98, - 0x14, 0x83, 0x4f, 0x90, 0xb1, 0x11, 0xb6, 0x0e, 0xff, 0x27, 0x0f, 0x34, 0x4a, 0x2a, 0xf8, 0xa8, - 0x4c, 0x68, 0x97, 0xf1, 0x94, 0x8a, 0xe0, 0x4e, 0x6b, 0xb3, 0xbd, 0x7b, 0xf2, 0x64, 0x6d, 0x7a, - 0x6c, 0xa9, 0x1d, 0x9e, 0xd2, 0xf8, 0x53, 0x5b, 0x64, 0x25, 0x41, 0xa5, 0xe0, 0xbb, 0xa6, 0xd8, - 0x32, 0x8e, 0x7e, 0xfb, 0x07, 0xd6, 0x17, 0x13, 0x08, 0x5c, 0x2f, 0x17, 0x4d, 0xbf, 0x04, 0xa0, - 0xa0, 0x92, 0x58, 0x1d, 0x9b, 0x5a, 0xc7, 0xe3, 0xb5, 0x3a, 0xbe, 0xa2, 0x92, 0x68, 0x0d, 0xcf, - 0xac, 0x86, 0x85, 0xc0, 0x4a, 0xc1, 0x07, 0xa6, 0xfe, 0x1c, 0x9b, 0xd6, 0xde, 0x71, 0x41, 0x02, - 0xef, 0x14, 0xee, 0xe8, 0xff, 0xea, 0x81, 0x87, 0x25, 0x2d, 0x48, 0xce, 0x72, 0x96, 0x75, 0x19, - 0xbf, 0xea, 0x0e, 0xf2, 0x22, 0x97, 0xc1, 0xdd, 0x96, 0xd7, 0xde, 0x89, 0x93, 0x69, 0xfa, 0xbf, - 0x15, 0xfc, 0x30, 0xcb, 0xe5, 0xf9, 0xa8, 0x17, 0x26, 0xbc, 0xb0, 0x1f, 0xdc, 0xfe, 0x1c, 0x89, - 0xb4, 0x1f, 0xc9, 0xf1, 0x90, 0x8a, 0xf0, 0x73, 0x26, 0x27, 0x0a, 0xae, 0x4b, 0x56, 0x29, 0x78, - 0xe8, 0x3a, 0x72, 0xcb, 0x89, 0xf0, 0x83, 0x19, 0xda, 0xe1, 0x57, 0x5f, 0x4e, 0x31, 0x3f, 0x01, - 0xdb, 0x62, 0x40, 0xc4, 0x79, 0xce, 0xb2, 0x60, 0xeb, 0x7f, 0xfa, 0x70, 0x66, 0x49, 0x71, 0xdb, - 0xf6, 0x61, 0x16, 0x56, 0x29, 0xb8, 0x6f, 0x6a, 0x3a, 0xa4, 0x9b, 0xb3, 0x57, 0x1c, 0xe1, 0x19, - 0xc3, 0xff, 0xd1, 0x03, 0xef, 0xa4, 0x74, 0xc8, 0x45, 0x2e, 0xb5, 0x9c, 0x92, 0x48, 0x1a, 0xd4, - 0xf4, 0xbd, 0xbf, 0x7f, 0x8b, 0x7b, 0xbf, 0xa0, 0xc9, 0x44, 0xc1, 0x5b, 0x99, 0x2a, 0x05, 0xdf, - 0x37, 0x02, 0x56, 0x3d, 0x08, 0x37, 0x2c, 0xd4, 0xe1, 0x57, 0x78, 0x0a, 0xfc, 0x79, 0x17, 0xdc, - 0xb7, 0xc3, 0xee, 0x3e, 0x92, 0xff, 0x0d, 0xb8, 0xcf, 0xa8, 0xbc, 0xe4, 0x65, 0xbf, 0x4b, 0xd2, - 0xb4, 0xa4, 0xc2, 0x0c, 0xfe, 0x4e, 0x7c, 0x34, 0x51, 0x70, 0xd5, 0x55, 0x29, 0xf8, 0x9e, 0x29, - 0xb6, 0xe2, 0x40, 0xb8, 0x61, 0x91, 0xe7, 0x06, 0xf0, 0x09, 0xa8, 0x0d, 0x47, 0xbd, 0x3e, 0x1d, - 0x07, 0x77, 0xf4, 0x1e, 0xed, 0x87, 0x66, 0xff, 0x43, 0xb7, 0xff, 0xe1, 0x73, 0x36, 0x8e, 0x4f, - 0xf5, 0xf2, 0x68, 0xde, 0xc2, 0xf2, 0x68, 0x1b, 0xfd, 0xf1, 0xfb, 0xd1, 0xbe, 0xdd, 0xfa, 0xa4, - 0x1c, 0x0f, 0x25, 0x0f, 0x5f, 0x8e, 0x7a, 0x5f, 0xd0, 0x31, 0xb6, 0x01, 0xfe, 0xc7, 0xe0, 0x9e, - 0x18, 0x89, 0x21, 0x65, 0x69, 0xb0, 0xd9, 0xf2, 0xda, 0xdb, 0xf1, 0xe3, 0x89, 0x82, 0x0e, 0xaa, - 0x14, 0x6c, 0xd8, 0x0f, 0x63, 0x00, 0x84, 0x9d, 0xcb, 0xff, 0x16, 0xd4, 0x84, 0x24, 0x72, 0x24, - 0xf4, 0xf8, 0x35, 0x4e, 0x50, 0x68, 0xeb, 0xb8, 0xf7, 0xc3, 0xbe, 0x27, 0x61, 0xcc, 0x59, 0x7a, - 0xa6, 0x99, 0xf1, 0xa3, 0xa9, 0x52, 0x13, 0x35, 0x57, 0x6a, 0x6c, 0x84, 0xad, 0xc3, 0x3f, 0x05, - 0x35, 0xc9, 0xfb, 0x94, 0x89, 0x60, 0x4b, 0xf7, 0x50, 0x07, 0x19, 0x64, 0x1e, 0x64, 0x6c, 0x84, - 0xad, 0xc3, 0xef, 0x80, 0x3a, 0xbf, 0x64, 0xb4, 0x9c, 0xf5, 0xdf, 0xcc, 0xc6, 0xd3, 0x89, 0x82, - 0xcb, 0x8e, 0xf9, 0xac, 0x2d, 0xc1, 0x08, 0xef, 0x69, 0xdb, 0x75, 0xbe, 0x00, 0xbb, 0x29, 0x15, - 0x49, 0x99, 0x0f, 0x65, 0xce, 0x59, 0x70, 0x4f, 0xb7, 0xbf, 0xb5, 0x76, 0xae, 0x5f, 0xcc, 0x79, - 0xf1, 0x53, 0x3b, 0xda, 0x8b, 0xc1, 0x95, 0x82, 0xbe, 0x1b, 0xae, 0x19, 0x88, 0xf0, 0x22, 0x05, - 0xfd, 0xec, 0x81, 0x6d, 0xb7, 0x1f, 0x3e, 0x06, 0x8d, 0x4b, 0x32, 0x18, 0x50, 0xb9, 0x32, 0x4c, - 0x1f, 0x4d, 0xdf, 0xaf, 0x65, 0xcf, 0xfc, 0xfd, 0x5a, 0xc6, 0x11, 0xae, 0x1b, 0xc0, 0xdd, 0x27, - 0x02, 0x5b, 0x17, 0x64, 0x30, 0xa2, 0x7a, 0x90, 0x36, 0xe3, 0x83, 0x89, 0x82, 0x06, 0xa8, 0x14, - 0xdc, 0x33, 0x19, 0xb4, 0x89, 0xb0, 0x81, 0xe3, 0xce, 0xeb, 0xeb, 0xa6, 0xf7, 0xe6, 0xba, 0xe9, - 0xfd, 0x7b, 0xdd, 0xf4, 0x7e, 0xb9, 0x69, 0x6e, 0xbc, 0xb9, 0x69, 0x6e, 0xfc, 0x75, 0xd3, 0xdc, - 0xf8, 0xee, 0xd9, 0xc2, 0x9e, 0xd9, 0x7e, 0x30, 0x2a, 0xdd, 0xf1, 0x28, 0x39, 0x27, 0x39, 0x8b, - 0x7e, 0x98, 0xff, 0x5f, 0xe8, 0xcd, 0xeb, 0xd5, 0xf4, 0xc8, 0x9e, 0xfe, 0x17, 0x00, 0x00, 0xff, - 0xff, 0xbf, 0x81, 0xbc, 0x44, 0xfa, 0x06, 0x00, 0x00, + // 876 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x41, 0x6f, 0x1b, 0x45, + 0x14, 0xce, 0x36, 0x8d, 0x9b, 0x4c, 0x62, 0x97, 0x6e, 0x03, 0x6c, 0x52, 0xd5, 0xe3, 0x8e, 0x10, + 0x72, 0x85, 0xbc, 0xab, 0x24, 0x95, 0x90, 0x38, 0xd1, 0x55, 0x24, 0x54, 0x01, 0x51, 0x35, 0x41, + 0x20, 0x71, 0xb1, 0xc6, 0xbb, 0xd3, 0xcd, 0xca, 0xde, 0x19, 0xb3, 0x33, 0x4e, 0x70, 0x7e, 0x00, + 0x07, 0x2e, 0x70, 0xe1, 0x07, 0x70, 0x43, 0x9c, 0xfb, 0x23, 0x2a, 0x4e, 0x15, 0x27, 0xc4, 0x61, + 0x40, 0xce, 0xcd, 0xc7, 0xfd, 0x05, 0xc8, 0x33, 0xb3, 0xf6, 0xda, 0xb5, 0x90, 0x7a, 0xf2, 0xbc, + 0xef, 0xfb, 0xde, 0xcc, 0x37, 0x6f, 0xdf, 0x1b, 0x83, 0x47, 0x42, 0xe6, 0x44, 0x72, 0x11, 0xe4, + 0x34, 0x49, 0x85, 0xa4, 0x79, 0x70, 0x79, 0x14, 0x24, 0x94, 0x51, 0x91, 0x0a, 0x7f, 0x98, 0x73, + 0xc9, 0xdd, 0xfb, 0x56, 0xe2, 0x97, 0x12, 0xff, 0xf2, 0xe8, 0xf0, 0x20, 0xe1, 0x3c, 0x19, 0xd0, + 0x40, 0x4b, 0x7a, 0xa3, 0x17, 0x01, 0x61, 0x63, 0xa3, 0x3f, 0xdc, 0x4f, 0x78, 0xc2, 0xf5, 0x32, + 0x98, 0xad, 0x2c, 0x7a, 0x10, 0x71, 0x91, 0x71, 0xd1, 0x35, 0x84, 0x09, 0x2c, 0xf5, 0x81, 0x89, + 0x02, 0x21, 0x49, 0x3f, 0x65, 0x49, 0x70, 0x79, 0xd4, 0xa3, 0x92, 0x1c, 0x95, 0xb1, 0x55, 0xa1, + 0x75, 0x4e, 0xe7, 0x96, 0xb4, 0x06, 0xfd, 0x50, 0x03, 0x7b, 0x9f, 0x19, 0xf3, 0xe7, 0x92, 0x48, + 0xea, 0x7e, 0x05, 0x6a, 0x43, 0x92, 0x93, 0x4c, 0x78, 0x4e, 0xcb, 0x69, 0xef, 0x1e, 0x3f, 0xf0, + 0xd7, 0x5c, 0xc6, 0x7f, 0xae, 0x25, 0x21, 0x7c, 0xa5, 0xe0, 0xc6, 0x54, 0x41, 0x9b, 0x52, 0x28, + 0x58, 0x1f, 0x93, 0x6c, 0xf0, 0x09, 0x32, 0x31, 0xc2, 0x96, 0x70, 0x7f, 0x74, 0x40, 0x23, 0xa7, + 0x82, 0x8f, 0xf2, 0x88, 0x76, 0x19, 0x8f, 0xa9, 0xf0, 0x6e, 0xb5, 0x36, 0xdb, 0xbb, 0xc7, 0x8f, + 0xd6, 0x6e, 0x8f, 0xad, 0xf4, 0x8c, 0xc7, 0x34, 0xfc, 0xd4, 0x1e, 0xb2, 0xb2, 0x41, 0xa1, 0xe0, + 0xbb, 0xe6, 0xb0, 0x65, 0x1c, 0xfd, 0xfe, 0x0f, 0xac, 0x57, 0x37, 0x10, 0xb8, 0x9e, 0x57, 0x43, + 0x37, 0x07, 0x20, 0xa3, 0x92, 0x58, 0x1f, 0x9b, 0xda, 0xc7, 0xc3, 0xb5, 0x3e, 0xbe, 0xa4, 0x92, + 0x68, 0x0f, 0x4f, 0xac, 0x87, 0x4a, 0x62, 0xa1, 0xe0, 0x3d, 0x73, 0xfe, 0x02, 0x9b, 0x9d, 0xbd, + 0x53, 0x26, 0x09, 0xbc, 0x93, 0x95, 0x4b, 0xf7, 0x57, 0x07, 0xdc, 0xcf, 0x69, 0x46, 0x52, 0x96, + 0xb2, 0xa4, 0xcb, 0xf8, 0x75, 0x77, 0x90, 0x66, 0xa9, 0xf4, 0x6e, 0xb7, 0x9c, 0xf6, 0x4e, 0xf8, + 0xdd, 0x6c, 0xfb, 0xbf, 0x15, 0xfc, 0x30, 0x49, 0xe5, 0xc5, 0xa8, 0xe7, 0x47, 0x3c, 0xb3, 0x1f, + 0xdc, 0xfe, 0x74, 0x44, 0xdc, 0x0f, 0xe4, 0x78, 0x48, 0x85, 0xff, 0x8c, 0xc9, 0xa9, 0x82, 0xeb, + 0x36, 0x2b, 0x14, 0x3c, 0x2c, 0x2b, 0xf2, 0x06, 0x89, 0xfe, 0x7c, 0xd9, 0x01, 0xb6, 0x89, 0x9e, + 0x31, 0x89, 0xef, 0xcd, 0x35, 0x67, 0xfc, 0xfa, 0x8b, 0x99, 0xc2, 0x8d, 0xc0, 0xb6, 0x18, 0x10, + 0x71, 0x91, 0xb2, 0xc4, 0xdb, 0xfa, 0x9f, 0xaa, 0x9c, 0x5b, 0x51, 0xd8, 0xb6, 0x55, 0x99, 0xa7, + 0x15, 0x0a, 0xee, 0x1b, 0x07, 0x25, 0xd2, 0x4d, 0xd9, 0x0b, 0x8e, 0xf0, 0x5c, 0xe1, 0xfe, 0xe2, + 0x80, 0x77, 0x62, 0x3a, 0xe4, 0x22, 0x95, 0xda, 0x5c, 0x4e, 0x24, 0xf5, 0x6a, 0xba, 0x0a, 0xfd, + 0xb7, 0xa8, 0xc2, 0x29, 0x8d, 0xa6, 0x0a, 0xbe, 0xb1, 0x53, 0xa1, 0xe0, 0xfb, 0xc6, 0xc0, 0x2a, + 0x53, 0xbd, 0xff, 0x29, 0x8d, 0x70, 0xc3, 0x0a, 0xce, 0xf8, 0x35, 0xd6, 0xf4, 0x6d, 0x70, 0xd7, + 0x0e, 0x42, 0xf9, 0x01, 0xdd, 0xaf, 0xc1, 0x5d, 0x46, 0xe5, 0x15, 0xcf, 0xfb, 0x5d, 0x12, 0xc7, + 0x39, 0x15, 0x66, 0x28, 0x76, 0xc2, 0xce, 0x54, 0xc1, 0x55, 0xaa, 0x50, 0xf0, 0x3d, 0x73, 0xf4, + 0x0a, 0x81, 0x70, 0xc3, 0x22, 0x4f, 0x0d, 0xe0, 0x12, 0x50, 0x1b, 0x8e, 0x7a, 0x7d, 0x3a, 0xf6, + 0x6e, 0xe9, 0x19, 0xdb, 0xf7, 0xcd, 0xdb, 0xe0, 0x97, 0x6f, 0x83, 0xff, 0x94, 0x8d, 0xc3, 0x13, + 0x3d, 0x58, 0x5a, 0x57, 0x19, 0x2c, 0x1d, 0xa3, 0x3f, 0x5e, 0x76, 0xf6, 0xed, 0x65, 0xa2, 0x7c, + 0x3c, 0x94, 0xdc, 0x7f, 0x3e, 0xea, 0x7d, 0x4e, 0xc7, 0xd8, 0x26, 0xb8, 0x1f, 0x83, 0x3b, 0x62, + 0x24, 0x86, 0x94, 0xc5, 0xde, 0x66, 0xcb, 0x69, 0x6f, 0x87, 0x0f, 0xa7, 0x0a, 0x96, 0x50, 0xa1, + 0x60, 0xc3, 0x7e, 0x26, 0x03, 0x20, 0x5c, 0x52, 0xee, 0x37, 0xa0, 0x26, 0x24, 0x91, 0x23, 0xa1, + 0x5b, 0xb3, 0x71, 0x8c, 0x7c, 0x7b, 0x4e, 0xf9, 0xb6, 0xd8, 0xb7, 0xc6, 0x0f, 0x39, 0x8b, 0xcf, + 0xb5, 0x32, 0x7c, 0x30, 0x73, 0x6a, 0xb2, 0x16, 0x4e, 0x4d, 0x8c, 0xb0, 0x25, 0xdc, 0x13, 0x50, + 0x93, 0xbc, 0x4f, 0x99, 0xf0, 0xb6, 0x74, 0x0d, 0x75, 0x92, 0x41, 0x16, 0x49, 0x26, 0x46, 0xd8, + 0x12, 0xee, 0x19, 0xa8, 0xf3, 0x2b, 0x46, 0xf3, 0x79, 0xfd, 0x4d, 0xa7, 0x3c, 0x9e, 0x2a, 0xb8, + 0x4c, 0x2c, 0x3a, 0x6f, 0x09, 0x46, 0x78, 0x4f, 0xc7, 0x65, 0xe5, 0x33, 0xb0, 0x1b, 0x53, 0x11, + 0xe5, 0xe9, 0x50, 0xa6, 0x9c, 0x79, 0x77, 0x74, 0xf9, 0x5b, 0x6b, 0xbb, 0xfc, 0x74, 0xa1, 0x0b, + 0x1f, 0xdb, 0x46, 0xaf, 0x26, 0x17, 0x0a, 0xba, 0x65, 0xab, 0xcd, 0x41, 0x84, 0xab, 0x12, 0xf4, + 0x93, 0x03, 0xb6, 0xcb, 0x69, 0x71, 0x31, 0x68, 0x5c, 0x91, 0xc1, 0x80, 0xca, 0x95, 0x66, 0xfa, + 0x68, 0xf6, 0xb6, 0x2d, 0x33, 0x8b, 0xb7, 0x6d, 0x19, 0x47, 0xb8, 0x6e, 0x80, 0xf2, 0x3e, 0x01, + 0xd8, 0xba, 0x24, 0x83, 0x11, 0xd5, 0x8d, 0xb4, 0x19, 0x1e, 0x4c, 0x15, 0x34, 0x40, 0xa1, 0xe0, + 0x9e, 0xd9, 0x41, 0x87, 0x08, 0x1b, 0x38, 0xc4, 0xbf, 0x4d, 0x9a, 0xce, 0xab, 0x49, 0xd3, 0x79, + 0x3d, 0x69, 0x3a, 0xff, 0x4e, 0x9a, 0xce, 0xcf, 0x37, 0xcd, 0x8d, 0xd7, 0x37, 0xcd, 0x8d, 0xbf, + 0x6e, 0x9a, 0x1b, 0xdf, 0x3e, 0xa9, 0x4c, 0x9e, 0xad, 0x09, 0xa3, 0xb2, 0x5c, 0x76, 0xa2, 0x0b, + 0x92, 0xb2, 0xe0, 0xfb, 0xc5, 0xff, 0x89, 0x9e, 0xc5, 0x5e, 0x4d, 0xb7, 0xed, 0xc9, 0x7f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x2f, 0x94, 0xf8, 0x53, 0x1a, 0x07, 0x00, 0x00, } +func (this *GenesisState) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*GenesisState) + if !ok { + that2, ok := that.(GenesisState) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Params.Equal(&that1.Params) { + return false + } + if len(this.ResourceNodes) != len(that1.ResourceNodes) { + return false + } + for i := range this.ResourceNodes { + if !this.ResourceNodes[i].Equal(&that1.ResourceNodes[i]) { + return false + } + } + if len(this.MetaNodes) != len(that1.MetaNodes) { + return false + } + for i := range this.MetaNodes { + if !this.MetaNodes[i].Equal(&that1.MetaNodes[i]) { + return false + } + } + if !this.RemainingNozLimit.Equal(that1.RemainingNozLimit) { + return false + } + if len(this.Slashing) != len(that1.Slashing) { + return false + } + for i := range this.Slashing { + if !this.Slashing[i].Equal(&that1.Slashing[i]) { + return false + } + } + if !this.DepositNozRate.Equal(that1.DepositNozRate) { + return false + } + return true +} +func (this *GenesisMetaNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*GenesisMetaNode) + if !ok { + that2, ok := that.(GenesisMetaNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if !this.Pubkey.Equal(that1.Pubkey) { + return false + } + if this.Suspend != that1.Suspend { + return false + } + if this.Status != that1.Status { + return false + } + if this.Tokens != that1.Tokens { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + if !this.Description.Equal(&that1.Description) { + return false + } + return true +} +func (this *Slashing) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Slashing) + if !ok { + that2, ok := that.(Slashing) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.WalletAddress != that1.WalletAddress { + return false + } + if this.Value != that1.Value { + return false + } + return true +} func (m *GenesisState) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) diff --git a/x/register/types/keys.go b/x/register/types/keys.go index ff356ce6..98593d6d 100644 --- a/x/register/types/keys.go +++ b/x/register/types/keys.go @@ -62,12 +62,12 @@ func GetMetaNodeRegistrationVotesKey(nodeAddr stratos.SdsAddress) []byte { return append(MetaNodeRegistrationVotesKey, nodeAddr.Bytes()...) } -// GetURNKey gets the key for the unbonding Node with address +// GetUBDNodeKey gets the key for the unbonding Node with address func GetUBDNodeKey(nodeAddr stratos.SdsAddress) []byte { return append(UBDNodeKey, nodeAddr.Bytes()...) } -// gets the prefix for all unbonding Node +// GetUBDTimeKey gets the prefix for all unbonding Node func GetUBDTimeKey(timestamp time.Time) []byte { bz := sdk.FormatTimeBytes(timestamp) return append(UBDNodeQueueKey, bz...) diff --git a/x/register/types/meta_node.go b/x/register/types/meta_node.go index 733a8803..ce9c4f6b 100644 --- a/x/register/types/meta_node.go +++ b/x/register/types/meta_node.go @@ -5,6 +5,7 @@ import ( "strings" "time" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" @@ -34,7 +35,7 @@ func NewMetaNode(networkAddr stratos.SdsAddress, pubKey cryptotypes.PubKey, owne Pubkey: pkAny, Suspend: true, Status: stakingtypes.Unbonded, - Tokens: sdk.ZeroInt(), + Tokens: sdkmath.ZeroInt(), OwnerAddress: ownerAddr.String(), Description: description, CreationTime: creationTime, @@ -68,13 +69,13 @@ func (v MetaNode) ConvertToString() string { } // AddToken adds tokens to a meta node -func (v MetaNode) AddToken(amount sdk.Int) MetaNode { +func (v MetaNode) AddToken(amount sdkmath.Int) MetaNode { v.Tokens = v.Tokens.Add(amount) return v } // SubToken removes tokens from a meta node -func (v MetaNode) SubToken(amount sdk.Int) MetaNode { +func (v MetaNode) SubToken(amount sdkmath.Int) MetaNode { if amount.IsNegative() { panic(fmt.Sprintf("should not happen: trying to remove negative tokens %v", amount)) } @@ -118,7 +119,7 @@ func (v MetaNode) Validate() error { if ownerAddr.Empty() { return ErrEmptyOwnerAddr } - if v.Tokens.LT(sdk.ZeroInt()) { + if v.Tokens.LT(sdkmath.ZeroInt()) { return ErrValueNegative } if v.GetDescription().Moniker == "" { diff --git a/x/register/types/msg.go b/x/register/types/msg.go index 74b75d68..87ddc27e 100644 --- a/x/register/types/msg.go +++ b/x/register/types/msg.go @@ -1,6 +1,7 @@ package types import ( + sdkmath "cosmossdk.io/math" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -419,7 +420,7 @@ func (msg MsgUpdateResourceNodeDeposit) ValidateBasic() error { return ErrEmptyOwnerAddr } - if msg.DepositDelta.Amount.LTE(sdk.ZeroInt()) { + if msg.DepositDelta.Amount.LTE(sdkmath.ZeroInt()) { return ErrInvalidDepositChange } return nil @@ -529,7 +530,7 @@ func (msg MsgUpdateMetaNodeDeposit) ValidateBasic() error { return ErrEmptyOwnerAddr } - if msg.DepositDelta.Amount.LTE(sdk.ZeroInt()) { + if msg.DepositDelta.Amount.LTE(sdkmath.ZeroInt()) { return ErrInvalidDepositChange } return nil @@ -547,7 +548,7 @@ func NewMsgMetaNodeRegistrationVote(candidateNetworkAddress stratos.SdsAddress, } } -func (mmsg MsgMetaNodeRegistrationVote) Route() string { return RouterKey } +func (msg MsgMetaNodeRegistrationVote) Route() string { return RouterKey } func (msg MsgMetaNodeRegistrationVote) Type() string { return TypeMsgMetaNodeRegistrationVote } @@ -604,7 +605,7 @@ func (msg MsgMetaNodeRegistrationVote) GetSigners() []sdk.AccAddress { } func NewMsgUpdateEffectiveDeposit(reporters []stratos.SdsAddress, reporterOwner []sdk.AccAddress, - networkAddress stratos.SdsAddress, newEffectiveDeposit sdk.Int) *MsgUpdateEffectiveDeposit { + networkAddress stratos.SdsAddress, newEffectiveDeposit sdkmath.Int) *MsgUpdateEffectiveDeposit { reporterStrSlice := make([]string, 0) for _, reporter := range reporters { @@ -654,7 +655,7 @@ func (m MsgUpdateEffectiveDeposit) ValidateBasic() error { } } - if m.EffectiveTokens.LT(sdk.ZeroInt()) { + if m.EffectiveTokens.LT(sdkmath.ZeroInt()) { return ErrInvalidAmount } return nil @@ -687,7 +688,7 @@ func NewMsgWithdrawMetaNodeRegistrationDeposit(networkAddress stratos.SdsAddress } } -func (mmsg MsgWithdrawMetaNodeRegistrationDeposit) Route() string { return RouterKey } +func (msg MsgWithdrawMetaNodeRegistrationDeposit) Route() string { return RouterKey } func (msg MsgWithdrawMetaNodeRegistrationDeposit) Type() string { return TypeMsgWithdrawMetaNodeRegistrationDeposit diff --git a/x/register/types/params.go b/x/register/types/params.go index c90aeb3f..280bad32 100644 --- a/x/register/types/params.go +++ b/x/register/types/params.go @@ -6,6 +6,7 @@ import ( "strings" "time" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" @@ -31,12 +32,12 @@ var ( KeyResourceNodeMinDeposit = []byte("ResourceNodeMinDeposit") KeyVotingPeriod = []byte("VotingPeriod") - DefaultUnbondingThreasholdTime = 180 * 24 * time.Hour // threashold for unbonding - by default 180 days - DefaultUnbondingCompletionTime = 14 * 24 * time.Hour // lead time to complete unbonding - by default 14 days - DefaultVotingPeriod = 7 * 24 * time.Hour // expiration time of registration voting - by default 7 days - DefaultDepositNozRate = sdk.NewDec(1000000) // 0.001gwei -> 1noz = 1000000wei -> 1noz - DefaultRemainingNozLimit = sdk.NewInt(0) - DefaultResourceNodeMinDeposit = sdk.NewCoin(DefaultBondDenom, sdk.NewInt(1e18)) + DefaultUnbondingThreasholdTime = 180 * 24 * time.Hour // threashold for unbonding - by default 180 days + DefaultUnbondingCompletionTime = 14 * 24 * time.Hour // lead time to complete unbonding - by default 14 days + DefaultVotingPeriod = 7 * 24 * time.Hour // expiration time of registration voting - by default 7 days + DefaultDepositNozRate = sdkmath.LegacyNewDec(1000000) // 0.001gwei -> 1noz = 1000000wei -> 1noz + DefaultRemainingNozLimit = sdkmath.NewInt(0) + DefaultResourceNodeMinDeposit = sdk.NewCoin(DefaultBondDenom, sdkmath.NewInt(1e18)) ) // ParamKeyTable returns the parameter key table. diff --git a/x/register/types/querier.go b/x/register/types/querier.go index 5758281c..a4ee109b 100644 --- a/x/register/types/querier.go +++ b/x/register/types/querier.go @@ -1,6 +1,7 @@ package types import ( + sdkmath "cosmossdk.io/math" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -10,9 +11,9 @@ import ( ) const ( - QueryType_All = 0 - QueryType_SP = 1 - QueryType_PP = 2 + QueryTypeAll = 0 + QueryTypeSP = 1 + QueryTypePP = 2 QueryDefaultLimit = 100 ) @@ -49,7 +50,7 @@ func NewQueryNodeDepositParams(nodeAddr stratos.SdsAddress, queryType int64) Que // NewQueryDepositTotalInfo creates a new instance of QueryDepositTotalResponse func NewQueryDepositTotalInfo(bondDenom string, ResourceNodeTotalDeposit, MetaNodeTotalDeposit, totalBondedDeposit, - totalUnbondedDeposit, totalUnbondingDeposit sdk.Int) *QueryDepositTotalResponse { + totalUnbondedDeposit, totalUnbondingDeposit sdkmath.Int) *QueryDepositTotalResponse { resValue := sdk.NewCoin(bondDenom, ResourceNodeTotalDeposit) metaValue := sdk.NewCoin(bondDenom, MetaNodeTotalDeposit) @@ -70,9 +71,9 @@ func NewQueryDepositTotalInfo(bondDenom string, ResourceNodeTotalDeposit, MetaNo func NewDepositInfoByResourceNodeAddr( bondDenom string, resourceNode ResourceNode, - unBondingDeposit sdk.Int, - unBondedDeposit sdk.Int, - bondedDeposit sdk.Int, + unBondingDeposit sdkmath.Int, + unBondedDeposit sdkmath.Int, + bondedDeposit sdkmath.Int, ) DepositInfo { bonedValue := sdk.NewCoin(bondDenom, bondedDeposit) @@ -99,9 +100,9 @@ func NewDepositInfoByResourceNodeAddr( func NewDepositInfoByMetaNodeAddr( bondDenom string, metaNode MetaNode, - unBondingDeposit sdk.Int, - unBondedDeposit sdk.Int, - bondedDeposit sdk.Int, + unBondingDeposit sdkmath.Int, + unBondedDeposit sdkmath.Int, + bondedDeposit sdkmath.Int, ) DepositInfo { bonedValue := sdk.NewCoin(bondDenom, bondedDeposit) unBondedValue := sdk.NewCoin(bondDenom, unBondedDeposit) diff --git a/x/register/types/query.pb.go b/x/register/types/query.pb.go index 8d72a836..7c519343 100644 --- a/x/register/types/query.pb.go +++ b/x/register/types/query.pb.go @@ -6,16 +6,16 @@ package types import ( context "context" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" types1 "github.com/cosmos/cosmos-sdk/codec/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" query "github.com/cosmos/cosmos-sdk/types/query" types2 "github.com/cosmos/cosmos-sdk/x/staking/types" - _ "github.com/gogo/protobuf/gogoproto" - grpc1 "github.com/gogo/protobuf/grpc" - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - _ "github.com/regen-network/cosmos-proto" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" + github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -944,99 +944,100 @@ func init() { func init() { proto.RegisterFile("stratos/register/v1/query.proto", fileDescriptor_59a612d1da8c0670) } var fileDescriptor_59a612d1da8c0670 = []byte{ - // 1470 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcb, 0x8f, 0xd3, 0x56, - 0x17, 0x1f, 0xf3, 0x08, 0x93, 0x9b, 0x64, 0xe0, 0xbb, 0x04, 0xc8, 0x78, 0x98, 0x78, 0xc6, 0xf0, - 0xf1, 0x92, 0xc6, 0x66, 0x06, 0xf8, 0xf8, 0x40, 0x2a, 0x2a, 0xa6, 0x2f, 0x40, 0xe5, 0xe1, 0xd2, - 0x56, 0x42, 0xaa, 0x22, 0x27, 0xbe, 0x04, 0x6b, 0xc8, 0xbd, 0xc6, 0xd7, 0x86, 0x46, 0x14, 0x09, - 0xb5, 0xff, 0x00, 0x52, 0x57, 0xdd, 0x77, 0xd3, 0x4a, 0x55, 0x37, 0x55, 0x17, 0x55, 0x77, 0xdd, - 0xa0, 0xae, 0x90, 0xba, 0xa9, 0xba, 0x70, 0x2b, 0xe8, 0x6a, 0x96, 0xf9, 0x0b, 0x2a, 0xdf, 0x7b, - 0x9c, 0xd8, 0xc1, 0x33, 0x09, 0x5d, 0x25, 0xf7, 0x3c, 0x7e, 0xe7, 0x77, 0xee, 0x3d, 0x3e, 0xe7, - 0x20, 0x8d, 0x87, 0x81, 0x13, 0x32, 0x6e, 0x06, 0xa4, 0xeb, 0xf1, 0x90, 0x04, 0xe6, 0x83, 0x55, - 0xf3, 0x7e, 0x44, 0x82, 0xbe, 0xe1, 0x07, 0x2c, 0x64, 0x78, 0x2f, 0x18, 0x18, 0xa9, 0x81, 0xf1, - 0x60, 0x55, 0xad, 0x77, 0x59, 0x97, 0x09, 0xbd, 0x99, 0xfc, 0x93, 0xa6, 0xea, 0x7c, 0x97, 0xb1, - 0xee, 0x3d, 0x62, 0x8a, 0x53, 0x3b, 0xba, 0x63, 0x3a, 0x14, 0x50, 0x54, 0x6d, 0x5c, 0x15, 0x7a, - 0x3d, 0xc2, 0x43, 0xa7, 0xe7, 0x83, 0xc1, 0x41, 0x30, 0x70, 0x7c, 0xcf, 0x74, 0x28, 0x65, 0xa1, - 0x13, 0x7a, 0x8c, 0xf2, 0x14, 0xb9, 0xc3, 0x78, 0x8f, 0xf1, 0x96, 0x0c, 0x29, 0x0f, 0xa0, 0x3a, - 0x21, 0x4f, 0x66, 0xdb, 0xe1, 0x44, 0x12, 0x37, 0x1f, 0xac, 0xb6, 0x49, 0xe8, 0xac, 0x9a, 0xbe, - 0xd3, 0xf5, 0xa8, 0xc0, 0x01, 0xdb, 0x66, 0xd6, 0x36, 0xb5, 0xea, 0x30, 0x2f, 0xd5, 0x1f, 0x06, - 0x3d, 0x0f, 0x9d, 0x75, 0x8f, 0x76, 0x87, 0x26, 0x70, 0x06, 0x2b, 0xbd, 0xe8, 0xca, 0x86, 0xb7, - 0x23, 0x6c, 0xf4, 0x37, 0x50, 0xe3, 0x66, 0xc2, 0xc5, 0x26, 0x9c, 0x45, 0x41, 0x87, 0x5c, 0x63, - 0x2e, 0xb1, 0xc9, 0xfd, 0x88, 0xf0, 0x10, 0x2f, 0xa3, 0x2a, 0x25, 0xe1, 0x43, 0x16, 0xac, 0xb7, - 0x1c, 0xd7, 0x0d, 0x1a, 0xca, 0x92, 0x72, 0xac, 0x6c, 0x57, 0x40, 0x76, 0xd1, 0x75, 0x03, 0xdd, - 0x46, 0xf3, 0x05, 0xee, 0xdc, 0x67, 0x94, 0x13, 0x7c, 0x06, 0xed, 0xa0, 0xcc, 0x25, 0xc2, 0xaf, - 0xb2, 0xb6, 0x6c, 0x14, 0x3c, 0x90, 0x91, 0x73, 0x14, 0xe6, 0xfa, 0x39, 0x54, 0x17, 0x98, 0xef, - 0x93, 0xd0, 0x79, 0x4d, 0x3a, 0x57, 0xd0, 0xbe, 0x31, 0x57, 0xa0, 0xb2, 0x9a, 0xa3, 0xb2, 0x58, - 0x48, 0x65, 0xe8, 0x24, 0x69, 0x7c, 0x02, 0xa9, 0xbd, 0x45, 0x7c, 0xc6, 0xbd, 0xd0, 0xea, 0xbf, - 0x1e, 0x17, 0xbc, 0x88, 0x90, 0x78, 0xe5, 0x56, 0xd8, 0xf7, 0x49, 0x63, 0xdb, 0x92, 0x72, 0xac, - 0x66, 0x97, 0x85, 0xe4, 0x56, 0xdf, 0x27, 0xba, 0x83, 0xd4, 0x22, 0x78, 0xe0, 0x7b, 0x09, 0x55, - 0x5d, 0xa9, 0x68, 0x79, 0xf4, 0x0e, 0x03, 0xde, 0x4b, 0x85, 0xbc, 0x01, 0xe1, 0x32, 0xbd, 0xc3, - 0xec, 0x8a, 0x3b, 0x3a, 0xe8, 0x5f, 0x28, 0xe3, 0x31, 0xae, 0x3f, 0xa4, 0x24, 0x48, 0x73, 0x58, - 0x44, 0x88, 0x25, 0xe7, 0x6c, 0x06, 0x65, 0x21, 0x11, 0xfc, 0xdf, 0x41, 0x68, 0x54, 0x97, 0x82, - 0x7f, 0x65, 0xed, 0x88, 0x01, 0x25, 0x9d, 0x14, 0xa6, 0x21, 0xbf, 0x3e, 0xa8, 0x3d, 0xe3, 0x86, - 0xd3, 0x4d, 0xaf, 0xc7, 0xce, 0x78, 0xea, 0xdf, 0x29, 0x68, 0xa1, 0x90, 0x05, 0xa4, 0xfa, 0x36, - 0xaa, 0x65, 0x53, 0xe5, 0x0d, 0x65, 0x69, 0xfb, 0x54, 0xb9, 0x56, 0x33, 0xb9, 0x72, 0xfc, 0x6e, - 0x01, 0xdd, 0xa3, 0x13, 0xe9, 0x4a, 0x0e, 0x39, 0xbe, 0x2a, 0x7c, 0x11, 0x10, 0xea, 0x16, 0x0b, - 0x9d, 0x7b, 0x90, 0x97, 0xfe, 0xf3, 0xf6, 0x7c, 0x51, 0x80, 0x12, 0x32, 0xb9, 0x8d, 0x0e, 0x06, - 0x50, 0xce, 0xad, 0xa4, 0x84, 0x78, 0x2b, 0x4c, 0xf4, 0x2d, 0xe0, 0x09, 0x8f, 0x38, 0x9f, 0x23, - 0x95, 0xd2, 0xb9, 0xc4, 0x3c, 0x6a, 0xcf, 0x07, 0x99, 0xaf, 0x81, 0x0b, 0x70, 0x08, 0x84, 0x6d, - 0xd4, 0xe8, 0x91, 0xd0, 0x29, 0xc4, 0xdd, 0x36, 0x09, 0x77, 0x5f, 0x0f, 0x4a, 0x3b, 0x8f, 0x79, - 0x15, 0xd5, 0x25, 0x50, 0x9b, 0x51, 0x97, 0xb8, 0x43, 0xbc, 0xed, 0x93, 0xf0, 0xb0, 0x70, 0xb3, - 0x84, 0x57, 0x0a, 0x76, 0x1d, 0xed, 0x97, 0x60, 0x11, 0x1d, 0x83, 0xdb, 0x31, 0x09, 0x4e, 0xb2, - 0xf8, 0x10, 0xfc, 0x52, 0xc0, 0x9b, 0xe8, 0x40, 0x16, 0xd0, 0xa3, 0xdd, 0x21, 0xe2, 0xce, 0x89, - 0x09, 0x67, 0x10, 0x3d, 0xda, 0x05, 0x48, 0xbd, 0x8e, 0xb0, 0x78, 0xbd, 0x1b, 0x4e, 0xe0, 0xf4, - 0x78, 0xfa, 0xa8, 0x57, 0xd0, 0xde, 0x9c, 0x14, 0x5e, 0xf3, 0x14, 0x2a, 0xf9, 0x42, 0x02, 0xef, - 0xb6, 0x50, 0x58, 0x90, 0xe0, 0x04, 0xa6, 0xfa, 0x7f, 0xd1, 0x21, 0x81, 0x25, 0xef, 0x26, 0xdb, - 0xdc, 0x2e, 0xb1, 0x88, 0x86, 0x69, 0xc8, 0x0b, 0xe8, 0xf0, 0xd6, 0x66, 0xc0, 0x61, 0x3f, 0x2a, - 0xd1, 0xa8, 0xd7, 0x26, 0xf2, 0xf3, 0xdc, 0x61, 0xc3, 0x49, 0x5f, 0x46, 0x5a, 0xc6, 0x3f, 0x6d, - 0x5c, 0xb9, 0x10, 0xe7, 0xd1, 0xd2, 0xe6, 0x26, 0x13, 0xe0, 0xbf, 0x2e, 0xa3, 0x4a, 0xe6, 0x4b, - 0xc3, 0x1f, 0xa1, 0xdd, 0xd9, 0x6e, 0x47, 0xb8, 0xbc, 0x93, 0xb2, 0xb5, 0xb2, 0x11, 0x6b, 0xe3, - 0xaa, 0x41, 0xac, 0xed, 0xef, 0x3b, 0xbd, 0x7b, 0xe7, 0xf5, 0x31, 0x85, 0x6e, 0xcf, 0x65, 0xfa, - 0x23, 0xe1, 0x1c, 0x3b, 0xa8, 0xe4, 0x47, 0xed, 0x75, 0xd2, 0x87, 0x12, 0xae, 0x1b, 0x72, 0xb8, - 0x1a, 0xe9, 0xf4, 0x35, 0x2e, 0xd2, 0xbe, 0x75, 0x6a, 0x23, 0xd6, 0xc0, 0x6e, 0x10, 0x6b, 0x35, - 0x89, 0x2d, 0xcf, 0xfa, 0xaf, 0x3f, 0xac, 0xd4, 0xa1, 0x0a, 0x3a, 0x41, 0xdf, 0x0f, 0x99, 0x71, - 0x23, 0x6a, 0x5f, 0x25, 0x7d, 0x1b, 0x1c, 0xf0, 0x59, 0xb4, 0x8b, 0x47, 0xdc, 0x27, 0xd4, 0x15, - 0x65, 0x3d, 0x6b, 0x2d, 0x6e, 0xc4, 0x5a, 0x2a, 0x1a, 0xc4, 0xda, 0x9c, 0x84, 0x03, 0x81, 0x6e, - 0xa7, 0x2a, 0xfc, 0x31, 0x2a, 0xf1, 0xd0, 0x09, 0x23, 0x2e, 0xea, 0x77, 0x6e, 0x4d, 0x4f, 0xab, - 0x2d, 0x9d, 0xb1, 0x69, 0xc1, 0x25, 0x17, 0xfc, 0x81, 0xb0, 0xb4, 0x16, 0x12, 0xa6, 0xd2, 0x6b, - 0xc4, 0x54, 0x9e, 0x75, 0x1b, 0x14, 0x49, 0xd2, 0x21, 0x5b, 0x27, 0x94, 0x8b, 0x32, 0x2e, 0x5b, - 0x97, 0x9f, 0xc5, 0xda, 0xcc, 0x1f, 0xb1, 0x76, 0xa4, 0xeb, 0x85, 0x77, 0xa3, 0xb6, 0xd1, 0x61, - 0x3d, 0x58, 0x1c, 0xe0, 0x67, 0x85, 0xbb, 0xeb, 0x66, 0x32, 0x44, 0xb8, 0x71, 0x99, 0x86, 0x49, - 0x08, 0xe9, 0x3f, 0x0a, 0x21, 0xcf, 0xba, 0x0d, 0x0a, 0x7c, 0x0d, 0xd5, 0x46, 0x9d, 0x3d, 0x79, - 0xad, 0x92, 0x88, 0x74, 0x7c, 0x23, 0xd6, 0xf2, 0x8a, 0x41, 0xac, 0xd5, 0x25, 0x44, 0x4e, 0xac, - 0xdb, 0xd5, 0xe1, 0x1c, 0x48, 0xde, 0xa9, 0x87, 0x2a, 0x2e, 0xe1, 0x9d, 0xc0, 0xf3, 0x45, 0x73, - 0xdd, 0xb5, 0xe5, 0x30, 0x1a, 0xda, 0x59, 0xc7, 0x93, 0xcc, 0x36, 0x62, 0x2d, 0xeb, 0x3c, 0x88, - 0x35, 0x2c, 0x23, 0x66, 0x84, 0xba, 0x9d, 0x35, 0xc1, 0x01, 0xaa, 0x75, 0x02, 0x22, 0xba, 0x71, - 0x2b, 0x59, 0xbf, 0x1a, 0xb3, 0x22, 0xa0, 0xfa, 0x4a, 0x75, 0xdc, 0x4a, 0x77, 0x33, 0x6b, 0x15, - 0x42, 0xe5, 0x1d, 0x47, 0xe9, 0xe5, 0xc4, 0xfa, 0xd3, 0x3f, 0x35, 0xc5, 0xae, 0xa6, 0xb2, 0x04, - 0x05, 0x5f, 0x40, 0xe5, 0xa4, 0xb5, 0xca, 0x61, 0x5d, 0x4e, 0x86, 0xb5, 0xb5, 0xbc, 0x11, 0x6b, - 0x23, 0xe1, 0x20, 0xd6, 0xf6, 0x40, 0x59, 0xa7, 0x22, 0xdd, 0x9e, 0x4d, 0xfe, 0x27, 0xe3, 0x1c, - 0xdf, 0x47, 0x73, 0x63, 0x6d, 0x0f, 0x4d, 0x68, 0x52, 0x96, 0x09, 0x9c, 0xc7, 0x1c, 0x07, 0xb1, - 0xb6, 0x4f, 0x06, 0xca, 0xcb, 0x75, 0xbb, 0x96, 0x6f, 0x90, 0x4f, 0x14, 0x84, 0x23, 0xda, 0x1a, - 0x6f, 0x8e, 0x95, 0x49, 0x71, 0xcf, 0x42, 0xdc, 0x02, 0xe7, 0x41, 0xac, 0xcd, 0xcb, 0xd8, 0xaf, - 0xea, 0x74, 0x7b, 0x4f, 0x44, 0xad, 0x5c, 0x43, 0xc5, 0x9f, 0xa1, 0xff, 0x80, 0x61, 0x26, 0xf1, - 0xea, 0x24, 0x02, 0x67, 0x80, 0xc0, 0xab, 0xbe, 0x83, 0x58, 0x6b, 0xe4, 0xe2, 0x67, 0xd3, 0xdf, - 0x2d, 0xc3, 0x0f, 0x2f, 0x60, 0xed, 0x17, 0x84, 0x76, 0x8a, 0x1e, 0x87, 0xbf, 0x51, 0x50, 0x35, - 0xdb, 0x45, 0xf1, 0x4a, 0x61, 0x71, 0x6e, 0xb6, 0xe9, 0xaa, 0xc6, 0xb4, 0xe6, 0xb2, 0x71, 0xea, - 0xe7, 0x3f, 0xff, 0xed, 0xef, 0x2f, 0xb7, 0x9d, 0xc6, 0x6b, 0x66, 0xf1, 0x8a, 0x2d, 0x5d, 0x56, - 0xc4, 0xb0, 0x36, 0x1f, 0x65, 0xfb, 0xe0, 0x63, 0xfc, 0x95, 0x82, 0x66, 0xd3, 0x76, 0x8c, 0x8f, - 0x6f, 0x1e, 0x78, 0x6c, 0xfd, 0x55, 0x4f, 0x4c, 0x63, 0x0a, 0xfc, 0xfe, 0x27, 0xf8, 0x9d, 0xc4, - 0x46, 0x21, 0xbf, 0x64, 0x1b, 0x28, 0xe6, 0xf6, 0x44, 0x41, 0x25, 0x39, 0xd1, 0xf0, 0xd1, 0xcd, - 0xc3, 0xe5, 0xc6, 0xa7, 0x7a, 0x6c, 0xb2, 0x21, 0xb0, 0x3a, 0x24, 0x58, 0x2d, 0xe2, 0x85, 0x42, - 0x56, 0x72, 0x82, 0xe2, 0x9f, 0x14, 0x54, 0xcb, 0xed, 0xc4, 0x78, 0x8b, 0xc7, 0x29, 0xda, 0xcd, - 0x55, 0x73, 0x6a, 0x7b, 0xe0, 0xf5, 0x9e, 0xe0, 0x65, 0xe1, 0x37, 0x0b, 0x79, 0xa5, 0xcb, 0x69, - 0xbb, 0x2f, 0x96, 0xaf, 0xb1, 0x2b, 0x33, 0x1f, 0x8d, 0x96, 0xfc, 0xc7, 0xf8, 0x7b, 0x05, 0xcd, - 0xe5, 0xd7, 0x5c, 0x3c, 0x0d, 0x9b, 0xec, 0x5a, 0xae, 0x9e, 0x9c, 0xde, 0x61, 0xaa, 0x6a, 0xcc, - 0xf0, 0x17, 0x4d, 0xdd, 0x7c, 0x34, 0xea, 0xf5, 0xa2, 0x1a, 0xab, 0xd9, 0x65, 0x76, 0xab, 0x2f, - 0xa7, 0x60, 0x23, 0x56, 0x8d, 0x69, 0xcd, 0x81, 0xeb, 0x09, 0xc1, 0xf5, 0x30, 0xd6, 0xb7, 0xe4, - 0x2a, 0xd6, 0x37, 0xfc, 0xa3, 0x82, 0x0e, 0x6c, 0xb2, 0x21, 0xe1, 0xff, 0x6f, 0x1e, 0x77, 0xeb, - 0xdd, 0x4b, 0x3d, 0xf7, 0x2f, 0x3c, 0x81, 0xfc, 0x11, 0x41, 0x7e, 0x09, 0x37, 0x8b, 0x0b, 0xd8, - 0x6f, 0xc9, 0xfd, 0x09, 0x7f, 0xab, 0xa0, 0xbd, 0x05, 0x7b, 0x17, 0x3e, 0x3d, 0x29, 0x74, 0xd1, - 0x26, 0xa7, 0x9e, 0x79, 0x4d, 0xaf, 0xa9, 0xc8, 0xf2, 0x94, 0xac, 0x75, 0xed, 0xd9, 0x8b, 0xa6, - 0xf2, 0xfc, 0x45, 0x53, 0xf9, 0xeb, 0x45, 0x53, 0x79, 0xfa, 0xb2, 0x39, 0xf3, 0xfc, 0x65, 0x73, - 0xe6, 0xf7, 0x97, 0xcd, 0x99, 0xdb, 0xa7, 0x33, 0x1b, 0x09, 0x60, 0x50, 0x12, 0xa6, 0x7f, 0x57, - 0x3a, 0x77, 0x1d, 0x8f, 0x9a, 0x9f, 0x8e, 0x60, 0xc5, 0x8e, 0xd2, 0x2e, 0x89, 0xf1, 0x7c, 0xea, - 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbc, 0x8a, 0x48, 0x6c, 0xb1, 0x11, 0x00, 0x00, + // 1478 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0x5b, 0x8f, 0xd3, 0xc6, + 0x17, 0x5f, 0x73, 0x09, 0x9b, 0x49, 0xb2, 0xf0, 0x1f, 0x02, 0x64, 0xbd, 0x6c, 0xbc, 0x6b, 0xf8, + 0x73, 0x93, 0x62, 0xb3, 0x0b, 0x94, 0x82, 0x54, 0x54, 0x4c, 0x6f, 0x80, 0xca, 0xc5, 0xa5, 0x45, + 0x42, 0xaa, 0x22, 0x27, 0x19, 0x82, 0xb5, 0x64, 0xc6, 0x78, 0x6c, 0x68, 0x44, 0x91, 0x50, 0xfb, + 0x05, 0x90, 0xfa, 0xd4, 0x8f, 0xd0, 0x4a, 0x55, 0xa5, 0x0a, 0xf5, 0xa1, 0xea, 0x5b, 0x5f, 0x50, + 0x9f, 0x50, 0xfb, 0x52, 0xf5, 0xc1, 0xad, 0xa0, 0x4f, 0xfb, 0x98, 0x4f, 0x50, 0x79, 0xe6, 0x38, + 0xb1, 0x83, 0x77, 0x13, 0xfa, 0x94, 0xcc, 0xb9, 0xfc, 0xce, 0xef, 0xcc, 0x1c, 0x9f, 0x73, 0x90, + 0xc6, 0x03, 0xdf, 0x09, 0x18, 0x37, 0x7d, 0xd2, 0x75, 0x79, 0x40, 0x7c, 0xf3, 0xfe, 0x8a, 0x79, + 0x2f, 0x24, 0x7e, 0xdf, 0xf0, 0x7c, 0x16, 0x30, 0xbc, 0x1b, 0x0c, 0x8c, 0xc4, 0xc0, 0xb8, 0xbf, + 0xa2, 0x56, 0xbb, 0xac, 0xcb, 0x84, 0xde, 0x8c, 0xff, 0x49, 0x53, 0x75, 0xbe, 0xcb, 0x58, 0xf7, + 0x2e, 0x31, 0xc5, 0xa9, 0x15, 0xde, 0x36, 0x1d, 0x0a, 0x28, 0xaa, 0x36, 0xae, 0x0a, 0xdc, 0x1e, + 0xe1, 0x81, 0xd3, 0xf3, 0xc0, 0x60, 0x3f, 0x18, 0x38, 0x9e, 0x6b, 0x3a, 0x94, 0xb2, 0xc0, 0x09, + 0x5c, 0x46, 0x79, 0x82, 0xdc, 0x66, 0xbc, 0xc7, 0x78, 0x53, 0x86, 0x94, 0x07, 0x50, 0x1d, 0x93, + 0x27, 0xb3, 0xe5, 0x70, 0x22, 0x89, 0x9b, 0xf7, 0x57, 0x5a, 0x24, 0x70, 0x56, 0x4c, 0xcf, 0xe9, + 0xba, 0x54, 0xe0, 0x80, 0x6d, 0x3d, 0x6d, 0x9b, 0x58, 0xb5, 0x99, 0x9b, 0xe8, 0x0f, 0x82, 0x9e, + 0x07, 0xce, 0x9a, 0x4b, 0xbb, 0x43, 0x13, 0x38, 0x83, 0x95, 0x9e, 0x77, 0x65, 0xc3, 0xdb, 0x11, + 0x36, 0xfa, 0x5b, 0xa8, 0x76, 0x3d, 0xe6, 0x62, 0x13, 0xce, 0x42, 0xbf, 0x4d, 0xae, 0xb0, 0x0e, + 0xb1, 0xc9, 0xbd, 0x90, 0xf0, 0x00, 0x2f, 0xa3, 0x32, 0x25, 0xc1, 0x03, 0xe6, 0xaf, 0x35, 0x9d, + 0x4e, 0xc7, 0xaf, 0x29, 0x4b, 0xca, 0x91, 0xa2, 0x5d, 0x02, 0xd9, 0xf9, 0x4e, 0xc7, 0xd7, 0x6d, + 0x34, 0x9f, 0xe3, 0xce, 0x3d, 0x46, 0x39, 0xc1, 0xa7, 0xd0, 0x36, 0xca, 0x3a, 0x44, 0xf8, 0x95, + 0x56, 0x97, 0x8d, 0x9c, 0x07, 0x32, 0x32, 0x8e, 0xc2, 0x5c, 0x3f, 0x83, 0xaa, 0x02, 0xf3, 0x43, + 0x12, 0x38, 0xaf, 0x49, 0xe7, 0x12, 0xda, 0x33, 0xe6, 0x0a, 0x54, 0x56, 0x32, 0x54, 0x16, 0x73, + 0xa9, 0x0c, 0x9d, 0x24, 0x8d, 0x4f, 0x21, 0xb5, 0x77, 0x88, 0xc7, 0xb8, 0x1b, 0x58, 0xfd, 0xd7, + 0xe3, 0x82, 0x17, 0x11, 0x12, 0xaf, 0xdc, 0x0c, 0xfa, 0x1e, 0xa9, 0x6d, 0x59, 0x52, 0x8e, 0x54, + 0xec, 0xa2, 0x90, 0xdc, 0xe8, 0x7b, 0x44, 0x77, 0x90, 0x9a, 0x07, 0x0f, 0x7c, 0x2f, 0xa0, 0x72, + 0x47, 0x2a, 0x9a, 0x2e, 0xbd, 0xcd, 0x80, 0xf7, 0x52, 0x2e, 0x6f, 0x40, 0xb8, 0x48, 0x6f, 0x33, + 0xbb, 0xd4, 0x19, 0x1d, 0xf4, 0x2f, 0x95, 0xf1, 0x18, 0x57, 0x1f, 0x50, 0xe2, 0x27, 0x39, 0x2c, + 0x22, 0xc4, 0xe2, 0x73, 0x3a, 0x83, 0xa2, 0x90, 0x08, 0xfe, 0xef, 0x21, 0x34, 0xaa, 0x4b, 0xc1, + 0xbf, 0xb4, 0x7a, 0xc8, 0x80, 0x92, 0x8e, 0x0b, 0xd3, 0x90, 0x5f, 0x1f, 0xd4, 0x9e, 0x71, 0xcd, + 0xe9, 0x26, 0xd7, 0x63, 0xa7, 0x3c, 0xf5, 0xef, 0x14, 0xb4, 0x90, 0xcb, 0x02, 0x52, 0x7d, 0x17, + 0x55, 0xd2, 0xa9, 0xf2, 0x9a, 0xb2, 0xb4, 0x75, 0xaa, 0x5c, 0xcb, 0xa9, 0x5c, 0x39, 0x7e, 0x3f, + 0x87, 0xee, 0xe1, 0x89, 0x74, 0x25, 0x87, 0x0c, 0x5f, 0x15, 0xbe, 0x08, 0x08, 0x75, 0x83, 0x05, + 0xce, 0x5d, 0xc8, 0x4b, 0xff, 0x79, 0x6b, 0xb6, 0x28, 0x40, 0x09, 0x99, 0xdc, 0x42, 0xfb, 0x7d, + 0x28, 0xe7, 0x66, 0x5c, 0x42, 0xbc, 0x19, 0xc4, 0xfa, 0x26, 0xf0, 0x84, 0x47, 0x9c, 0xcf, 0x90, + 0x4a, 0xe8, 0x5c, 0x60, 0x2e, 0xb5, 0xe7, 0xfd, 0xd4, 0xd7, 0xc0, 0x05, 0x38, 0x04, 0xc2, 0x36, + 0xaa, 0xf5, 0x48, 0xe0, 0xe4, 0xe2, 0x6e, 0x99, 0x84, 0xbb, 0xa7, 0x07, 0xa5, 0x9d, 0xc5, 0xbc, + 0x8c, 0xaa, 0x12, 0xa8, 0xc5, 0x68, 0x87, 0x74, 0x86, 0x78, 0x5b, 0x27, 0xe1, 0x61, 0xe1, 0x66, + 0x09, 0xaf, 0x04, 0xec, 0x2a, 0xda, 0x2b, 0xc1, 0x42, 0x3a, 0x06, 0xb7, 0x6d, 0x12, 0x9c, 0x64, + 0xf1, 0x31, 0xf8, 0x25, 0x80, 0xd7, 0xd1, 0xbe, 0x34, 0xa0, 0x4b, 0xbb, 0x43, 0xc4, 0xed, 0x13, + 0x13, 0x4e, 0x21, 0xba, 0xb4, 0x0b, 0x90, 0x7a, 0x15, 0x61, 0xf1, 0x7a, 0xd7, 0x1c, 0xdf, 0xe9, + 0xf1, 0xe4, 0x51, 0x2f, 0xa1, 0xdd, 0x19, 0x29, 0xbc, 0xe6, 0x09, 0x54, 0xf0, 0x84, 0x04, 0xde, + 0x6d, 0x21, 0xb7, 0x20, 0xc1, 0x09, 0x4c, 0xf5, 0xff, 0xa3, 0x03, 0x02, 0x4b, 0xde, 0x4d, 0xba, + 0xb9, 0x5d, 0x60, 0x21, 0x0d, 0x92, 0x90, 0xe7, 0xd0, 0xc1, 0xcd, 0xcd, 0x80, 0xc3, 0x5e, 0x54, + 0xa0, 0x61, 0xaf, 0x45, 0xe4, 0xe7, 0xb9, 0xcd, 0x86, 0x93, 0xbe, 0x8c, 0xb4, 0x94, 0x7f, 0xd2, + 0xb8, 0x32, 0x21, 0xce, 0xa2, 0xa5, 0x8d, 0x4d, 0x26, 0xc0, 0xff, 0x50, 0x44, 0xa5, 0xd4, 0x97, + 0x86, 0x3f, 0x41, 0x3b, 0xd3, 0xdd, 0x8e, 0x70, 0x79, 0x27, 0x45, 0xab, 0xb1, 0x1e, 0x69, 0xe3, + 0xaa, 0x41, 0xa4, 0xed, 0xed, 0x3b, 0xbd, 0xbb, 0x67, 0xf5, 0x31, 0x85, 0x6e, 0xcf, 0xa5, 0xfa, + 0x23, 0xe1, 0x1c, 0x3b, 0xa8, 0xe0, 0x85, 0xad, 0x35, 0xd2, 0x87, 0x12, 0xae, 0x1a, 0x72, 0xb8, + 0x1a, 0xc9, 0xf4, 0x35, 0xce, 0xd3, 0xbe, 0x75, 0x62, 0x3d, 0xd2, 0xc0, 0x6e, 0x10, 0x69, 0x15, + 0x89, 0x2d, 0xcf, 0xfa, 0xaf, 0x4f, 0x1b, 0x55, 0xa8, 0x82, 0xb6, 0xdf, 0xf7, 0x02, 0x66, 0x5c, + 0x0b, 0x5b, 0x97, 0x49, 0xdf, 0x06, 0x07, 0x7c, 0x1a, 0xed, 0xe0, 0x21, 0xf7, 0x08, 0xed, 0x88, + 0xb2, 0x9e, 0xb5, 0x16, 0xd7, 0x23, 0x2d, 0x11, 0x0d, 0x22, 0x6d, 0x4e, 0xc2, 0x81, 0x40, 0xb7, + 0x13, 0x15, 0xbe, 0x89, 0x0a, 0x3c, 0x70, 0x82, 0x90, 0x8b, 0xfa, 0x9d, 0x5b, 0xd5, 0x93, 0x6a, + 0x4b, 0x66, 0x6c, 0x52, 0x70, 0xf1, 0x05, 0x7f, 0x24, 0x2c, 0xad, 0x85, 0x98, 0xa9, 0xf4, 0x1a, + 0x31, 0x95, 0x67, 0xdd, 0x06, 0x05, 0x66, 0xa8, 0x10, 0xb0, 0x35, 0x42, 0xb9, 0x28, 0xe3, 0xa2, + 0x75, 0xf3, 0x59, 0xa4, 0xcd, 0xfc, 0x19, 0x69, 0x87, 0xba, 0x6e, 0x70, 0x27, 0x6c, 0x19, 0x6d, + 0xd6, 0x83, 0xc5, 0x01, 0x7e, 0x1a, 0xbc, 0xb3, 0x66, 0xc6, 0x43, 0x84, 0x1b, 0x17, 0x69, 0x10, + 0x87, 0x90, 0xfe, 0xa3, 0x10, 0xf2, 0xac, 0xff, 0xf6, 0xb4, 0x81, 0x80, 0xe4, 0x45, 0x1a, 0xd8, + 0x60, 0x86, 0xaf, 0xa0, 0xca, 0xa8, 0xcf, 0xc7, 0x6f, 0x57, 0x10, 0x71, 0x8f, 0xae, 0x47, 0x5a, + 0x56, 0x31, 0x88, 0xb4, 0xaa, 0x04, 0xcc, 0x88, 0x75, 0xbb, 0x3c, 0x9c, 0x0a, 0xf1, 0xab, 0xf5, + 0x50, 0xa9, 0x43, 0x78, 0xdb, 0x77, 0x3d, 0xd1, 0x6a, 0x77, 0x6c, 0x3a, 0x9a, 0x86, 0x76, 0xd6, + 0xd1, 0x38, 0xcf, 0xf5, 0x48, 0x4b, 0x3b, 0x0f, 0x22, 0x0d, 0xcb, 0x88, 0x29, 0xa1, 0x6e, 0xa7, + 0x4d, 0xb0, 0x8f, 0x2a, 0x6d, 0x9f, 0x88, 0xde, 0xdc, 0x8c, 0x97, 0xb1, 0xda, 0xac, 0x08, 0xa8, + 0xbe, 0x52, 0x2b, 0x37, 0x92, 0x4d, 0xcd, 0x5a, 0x81, 0x50, 0x59, 0xc7, 0x51, 0x7a, 0x19, 0xb1, + 0xfe, 0xe4, 0x2f, 0x4d, 0xb1, 0xcb, 0x89, 0x2c, 0x46, 0xc1, 0xe7, 0x50, 0x31, 0x6e, 0xb4, 0x72, + 0x74, 0x17, 0xe3, 0xd1, 0x6d, 0x2d, 0xaf, 0x47, 0xda, 0x48, 0x38, 0x88, 0xb4, 0x5d, 0x50, 0xe4, + 0x89, 0x48, 0xb7, 0x67, 0xe3, 0xff, 0xf1, 0x70, 0xc7, 0xf7, 0xd0, 0xdc, 0x58, 0x13, 0x44, 0x13, + 0x5a, 0x96, 0x65, 0x02, 0xe7, 0x31, 0xc7, 0x41, 0xa4, 0xed, 0x91, 0x81, 0xb2, 0x72, 0xdd, 0xae, + 0x64, 0xdb, 0xe5, 0x63, 0x05, 0xe1, 0x90, 0x36, 0xc7, 0x5b, 0x65, 0x69, 0x52, 0xdc, 0xd3, 0x10, + 0x37, 0xc7, 0x79, 0x10, 0x69, 0xf3, 0x32, 0xf6, 0xab, 0x3a, 0xdd, 0xde, 0x15, 0x52, 0x2b, 0xd3, + 0x5e, 0xf1, 0xe7, 0xe8, 0x7f, 0x60, 0x98, 0x4a, 0xbc, 0x3c, 0x89, 0xc0, 0x29, 0x20, 0xf0, 0xaa, + 0xef, 0x20, 0xd2, 0x6a, 0x99, 0xf8, 0xe9, 0xf4, 0x77, 0xca, 0xf0, 0xc3, 0x0b, 0x58, 0xfd, 0x05, + 0xa1, 0xed, 0xa2, 0xe3, 0xe1, 0x6f, 0x14, 0x54, 0x4e, 0xf7, 0x54, 0xdc, 0xc8, 0x2d, 0xce, 0x8d, + 0xf6, 0x5e, 0xd5, 0x98, 0xd6, 0x5c, 0xb6, 0x51, 0xfd, 0xec, 0x17, 0xbf, 0xff, 0xf3, 0xd5, 0x96, + 0x93, 0x78, 0xd5, 0xcc, 0x5f, 0xb8, 0xa5, 0x4b, 0x43, 0x8c, 0x6e, 0xf3, 0x61, 0xba, 0x2b, 0x3e, + 0xc2, 0x5f, 0x2b, 0x68, 0x36, 0x69, 0xce, 0xf8, 0xe8, 0xc6, 0x81, 0xc7, 0x96, 0x61, 0xf5, 0xd8, + 0x34, 0xa6, 0xc0, 0xef, 0x0d, 0xc1, 0xef, 0x38, 0x36, 0x72, 0xf9, 0xc5, 0xbb, 0x41, 0x3e, 0xb7, + 0xc7, 0x0a, 0x2a, 0xc8, 0xf9, 0x86, 0x0f, 0x6f, 0x1c, 0x2e, 0x33, 0x4c, 0xd5, 0x23, 0x93, 0x0d, + 0x81, 0xd5, 0x01, 0xc1, 0x6a, 0x11, 0x2f, 0xe4, 0xb2, 0x92, 0xf3, 0x14, 0xff, 0xa4, 0xa0, 0x4a, + 0x66, 0x43, 0xc6, 0x9b, 0x3c, 0x4e, 0xde, 0xa6, 0xae, 0x9a, 0x53, 0xdb, 0x03, 0xaf, 0x0f, 0x04, + 0x2f, 0x0b, 0xbf, 0x9d, 0xcb, 0x2b, 0x59, 0x55, 0x5b, 0x7d, 0xb1, 0x8a, 0x8d, 0x5d, 0x99, 0xf9, + 0x70, 0xb4, 0xf2, 0x3f, 0xc2, 0xdf, 0x2b, 0x68, 0x2e, 0xbb, 0xf4, 0xe2, 0x69, 0xd8, 0xa4, 0x97, + 0x74, 0xf5, 0xf8, 0xf4, 0x0e, 0x53, 0x55, 0x63, 0x8a, 0xbf, 0x68, 0xea, 0xe6, 0xc3, 0x51, 0xaf, + 0x17, 0xd5, 0x58, 0x4e, 0xaf, 0xb6, 0x9b, 0x7d, 0x39, 0x39, 0xfb, 0xb1, 0x6a, 0x4c, 0x6b, 0x0e, + 0x5c, 0x8f, 0x09, 0xae, 0x07, 0xb1, 0xbe, 0x29, 0x57, 0xb1, 0xcc, 0xe1, 0x1f, 0x15, 0xb4, 0x6f, + 0x83, 0x7d, 0x09, 0xbf, 0xb9, 0x71, 0xdc, 0xcd, 0x37, 0x31, 0xf5, 0xcc, 0x7f, 0xf0, 0x04, 0xf2, + 0x87, 0x04, 0xf9, 0x25, 0x5c, 0xcf, 0x2f, 0x60, 0xaf, 0x29, 0xb7, 0x29, 0xfc, 0xad, 0x82, 0x76, + 0xe7, 0x6c, 0x61, 0xf8, 0xe4, 0xa4, 0xd0, 0x79, 0x7b, 0x9d, 0x7a, 0xea, 0x35, 0xbd, 0xa6, 0x22, + 0xcb, 0x13, 0xb2, 0xd6, 0x95, 0x67, 0x2f, 0xea, 0xca, 0xf3, 0x17, 0x75, 0xe5, 0xef, 0x17, 0x75, + 0xe5, 0xc9, 0xcb, 0xfa, 0xcc, 0xf3, 0x97, 0xf5, 0x99, 0x3f, 0x5e, 0xd6, 0x67, 0x6e, 0x9d, 0x4c, + 0xed, 0x27, 0x80, 0x41, 0x49, 0x90, 0xfc, 0x6d, 0xb4, 0xef, 0x38, 0x2e, 0x35, 0x3f, 0x1b, 0xc1, + 0x8a, 0x8d, 0xa5, 0x55, 0x10, 0xe3, 0xf9, 0xc4, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd1, 0xac, + 0x1e, 0xc6, 0xbf, 0x11, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -1999,7 +2000,7 @@ func (m *DepositInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x48 } - n15, err15 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CreationTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CreationTime):]) + n15, err15 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CreationTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime):]) if err15 != nil { return 0, err15 } @@ -2329,7 +2330,7 @@ func (m *DepositInfo) Size() (n int) { } l = m.Description.Size() n += 1 + l + sovQuery(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.CreationTime) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime) n += 1 + l + sovQuery(uint64(l)) if m.NodeType != 0 { n += 1 + sovQuery(uint64(m.NodeType)) @@ -4028,7 +4029,7 @@ func (m *DepositInfo) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.CreationTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.CreationTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/register/types/query.pb.gw.go b/x/register/types/query.pb.gw.go index ad991daa..8fceafb9 100644 --- a/x/register/types/query.pb.gw.go +++ b/x/register/types/query.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join func request_Query_ResourceNode_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryResourceNodeRequest @@ -362,12 +364,14 @@ func local_request_Query_BondedMetaNodeCount_0(ctx context.Context, marshaler ru // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer 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 (such as grpc.SendHeader, etc) to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { mux.Handle("GET", pattern_Query_ResourceNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -375,6 +379,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_ResourceNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -388,6 +393,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_MetaNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -395,6 +402,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_MetaNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -408,6 +416,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_Params_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -415,6 +425,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Params_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -428,6 +439,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_DepositByNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -435,6 +448,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_DepositByNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -448,6 +462,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_DepositByOwner_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -455,6 +471,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_DepositByOwner_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -468,6 +485,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_DepositTotal_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -475,6 +494,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_DepositTotal_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -488,6 +508,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_BondedResourceNodeCount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -495,6 +517,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_BondedResourceNodeCount_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -508,6 +531,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_BondedMetaNodeCount_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -515,6 +540,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_BondedMetaNodeCount_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -730,21 +756,21 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( - pattern_Query_ResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "register", "v1", "resource-nodes", "network_addr"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_ResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "register", "v1", "resource-nodes", "network_addr"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_MetaNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "register", "v1", "meta-nodes", "network_addr"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_MetaNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "register", "v1", "meta-nodes", "network_addr"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "params"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "params"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_DepositByNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"stratos", "register", "v1", "deposit_by_node", "network_addr", "query_type"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_DepositByNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4, 1, 0, 4, 1, 5, 5}, []string{"stratos", "register", "v1", "deposit_by_node", "network_addr", "query_type"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_DepositByOwner_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "register", "v1", "deposit_by_owner", "owner_addr"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_DepositByOwner_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "register", "v1", "deposit_by_owner", "owner_addr"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_DepositTotal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "deposit_total"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_DepositTotal_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "deposit_total"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_BondedResourceNodeCount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "pp_number"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_BondedResourceNodeCount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "pp_number"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_BondedMetaNodeCount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "sp_number"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_BondedMetaNodeCount_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "sp_number"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( diff --git a/x/register/types/register.pb.go b/x/register/types/register.pb.go index 42a93bb7..5917c891 100644 --- a/x/register/types/register.pb.go +++ b/x/register/types/register.pb.go @@ -5,14 +5,14 @@ package types import ( fmt "fmt" + _ "github.com/cosmos/cosmos-proto" types1 "github.com/cosmos/cosmos-sdk/codec/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" types2 "github.com/cosmos/cosmos-sdk/x/staking/types" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" - github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - _ "github.com/regen-network/cosmos-proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" _ "google.golang.org/protobuf/types/known/durationpb" _ "google.golang.org/protobuf/types/known/timestamppb" io "io" @@ -604,101 +604,144 @@ func init() { } var fileDescriptor_fef1e3aeec8499d6 = []byte{ - // 1465 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcf, 0x6f, 0xd4, 0x46, - 0x1b, 0x8e, 0x13, 0x48, 0x36, 0xb3, 0xf9, 0xc1, 0x67, 0xf2, 0xc1, 0x86, 0x8f, 0x2f, 0x13, 0xe6, - 0xfb, 0x5a, 0x82, 0xda, 0xec, 0x2a, 0x50, 0xa9, 0x2a, 0x87, 0x4a, 0x31, 0x49, 0x5b, 0x68, 0x41, - 0xa9, 0x9b, 0x82, 0x54, 0xa9, 0x72, 0x67, 0xed, 0x61, 0x33, 0x64, 0xed, 0x71, 0x3d, 0xb3, 0x4b, - 0x56, 0xea, 0xa1, 0x52, 0x2f, 0x1c, 0x39, 0x22, 0xf5, 0xc2, 0x1f, 0xd1, 0xbf, 0xa1, 0xa2, 0x9c, - 0x38, 0x56, 0x3d, 0xb8, 0x15, 0x5c, 0xaa, 0x3d, 0xba, 0x87, 0x5e, 0x2b, 0xcf, 0x8f, 0xb5, 0xd7, - 0x21, 0x42, 0x54, 0xe2, 0x54, 0x4e, 0xf1, 0x3c, 0xcf, 0x3b, 0xef, 0xfb, 0x8e, 0xdf, 0xe7, 0x7d, - 0xbd, 0x13, 0x80, 0xb8, 0x48, 0xb0, 0x60, 0xbc, 0x95, 0x90, 0x0e, 0xe5, 0x82, 0x24, 0xad, 0xfe, - 0xc6, 0xe8, 0xb9, 0x19, 0x27, 0x4c, 0x30, 0xfb, 0xa4, 0xb6, 0x69, 0x8e, 0xf0, 0xfe, 0xc6, 0x99, - 0xa5, 0x0e, 0xeb, 0x30, 0xc9, 0xb7, 0xf2, 0x27, 0x65, 0x7a, 0x66, 0xb9, 0xc3, 0x58, 0xa7, 0x4b, - 0x5a, 0x72, 0xd5, 0xee, 0xdd, 0x6e, 0xe1, 0x68, 0xa0, 0x29, 0x58, 0xa5, 0x04, 0x0d, 0x09, 0x17, - 0x38, 0x8c, 0xb5, 0xc1, 0x4a, 0xd5, 0x20, 0xe8, 0x25, 0x58, 0x50, 0x16, 0x19, 0xdf, 0x3e, 0xe3, - 0x21, 0xe3, 0x9e, 0x0a, 0xaa, 0x16, 0x66, 0xab, 0x5a, 0xb5, 0xda, 0x98, 0x93, 0x56, 0x7f, 0xa3, - 0x4d, 0x04, 0xde, 0x68, 0xf9, 0x8c, 0x9a, 0xad, 0xff, 0xd7, 0x3c, 0x17, 0x78, 0x9f, 0x46, 0x9d, - 0x91, 0x89, 0x5e, 0x2b, 0x2b, 0xf4, 0xc7, 0x34, 0x98, 0xde, 0xc1, 0x09, 0x0e, 0xb9, 0xed, 0x00, - 0xd0, 0x66, 0x51, 0xe0, 0x05, 0x24, 0x62, 0x61, 0xc3, 0x5a, 0xb5, 0xd6, 0x66, 0x9d, 0xff, 0x0d, - 0x53, 0x58, 0x42, 0xb3, 0x14, 0xfe, 0x6b, 0x80, 0xc3, 0xee, 0x65, 0x54, 0x60, 0xc8, 0x9d, 0xcd, - 0x17, 0x5b, 0xf9, 0xb3, 0xfd, 0xd0, 0x02, 0xcb, 0xbd, 0x28, 0x5f, 0xd3, 0xa8, 0xe3, 0x89, 0xbd, - 0x84, 0x60, 0xbe, 0xc7, 0xba, 0x81, 0x97, 0x1f, 0xbc, 0x31, 0xb9, 0x6a, 0xad, 0xd5, 0x2f, 0x2e, - 0x37, 0xd5, 0xa1, 0x9b, 0xe6, 0xd0, 0xcd, 0x2d, 0x7d, 0x68, 0xe7, 0xea, 0xa3, 0x14, 0x4e, 0x0c, - 0x53, 0x78, 0xb4, 0x8f, 0x2c, 0x85, 0xab, 0x2a, 0x83, 0x23, 0x4d, 0xd0, 0x83, 0x5f, 0xa1, 0xe5, - 0x9e, 0x1e, 0xf1, 0xbb, 0x23, 0x7a, 0x97, 0x86, 0xa4, 0x92, 0xa2, 0xcf, 0xc2, 0xb8, 0x4b, 0xf2, - 0xe0, 0x2a, 0xc5, 0xa9, 0xbf, 0x91, 0x62, 0xc5, 0xc7, 0xf3, 0x52, 0xac, 0x98, 0x54, 0x53, 0xbc, - 0x32, 0xa2, 0x65, 0x8a, 0x3b, 0xa0, 0x1e, 0xe2, 0x03, 0x8f, 0x44, 0x22, 0xa1, 0x84, 0x37, 0x8e, - 0xad, 0x5a, 0x6b, 0xf3, 0x4e, 0x6b, 0x98, 0xc2, 0x32, 0x9c, 0xa5, 0xf0, 0xac, 0x0a, 0x53, 0x02, - 0xd1, 0xdb, 0x2c, 0xa4, 0x82, 0x84, 0xb1, 0x18, 0xb8, 0x20, 0xc4, 0x07, 0xdb, 0x0a, 0xb6, 0xbf, - 0x01, 0xcb, 0x09, 0xe1, 0xac, 0x97, 0xf8, 0xc4, 0x8b, 0x58, 0x40, 0xbc, 0x84, 0x74, 0x3c, 0x12, - 0xe1, 0x76, 0x97, 0x04, 0x8d, 0xe3, 0xab, 0xd6, 0x5a, 0xcd, 0xd9, 0xcc, 0x0f, 0x75, 0xa4, 0x51, - 0x71, 0xa8, 0x23, 0x4d, 0x90, 0x7b, 0xca, 0x70, 0x37, 0x58, 0x40, 0x5c, 0xd2, 0xd9, 0x56, 0x84, - 0xfd, 0xbd, 0x55, 0x0d, 0x1f, 0xd2, 0xc8, 0x0b, 0x48, 0xcc, 0x38, 0x15, 0x8d, 0x69, 0xfd, 0xca, - 0xb5, 0xba, 0x73, 0x3d, 0x37, 0xb5, 0x58, 0x9b, 0x57, 0x18, 0x8d, 0x9c, 0x6d, 0xf3, 0xca, 0x8f, - 0xf4, 0x71, 0x54, 0x76, 0x25, 0x93, 0x4a, 0x76, 0xd7, 0x69, 0xb4, 0xa5, 0x08, 0xfb, 0x6b, 0x30, - 0xdf, 0x67, 0x22, 0xaf, 0x52, 0x4c, 0x12, 0xca, 0x82, 0xc6, 0xcc, 0x8b, 0x34, 0xb0, 0xa1, 0x13, - 0x1a, 0xdf, 0x97, 0xa5, 0x70, 0x49, 0x25, 0x31, 0x06, 0xab, 0x5a, 0xcf, 0x29, 0x6c, 0x47, 0x41, - 0x3f, 0xce, 0x80, 0x39, 0xb7, 0x94, 0x8d, 0x7d, 0x13, 0x2c, 0x46, 0x44, 0xdc, 0x65, 0xc9, 0xbe, - 0x87, 0x83, 0x20, 0x21, 0x9c, 0xeb, 0x06, 0x5c, 0x1f, 0xa6, 0xb0, 0x4a, 0x65, 0x29, 0x3c, 0xa5, - 0x02, 0x55, 0x08, 0xe4, 0x2e, 0x68, 0x64, 0x53, 0x01, 0x36, 0x06, 0xd3, 0x71, 0xaf, 0xbd, 0x4f, - 0x06, 0xba, 0xf7, 0x96, 0x0e, 0x1d, 0x6a, 0x33, 0x1a, 0x38, 0x97, 0x86, 0x29, 0xd4, 0x76, 0x59, - 0x0a, 0xe7, 0x95, 0x6f, 0xb5, 0x46, 0x8f, 0x7f, 0x58, 0x5f, 0xd2, 0x95, 0xf1, 0x93, 0x41, 0x2c, - 0x58, 0x73, 0xa7, 0xd7, 0xfe, 0x98, 0x0c, 0x5c, 0xbd, 0xc1, 0x7e, 0x17, 0xcc, 0xf0, 0x1e, 0x8f, - 0x49, 0x14, 0xc8, 0xe6, 0xa9, 0x39, 0xff, 0x1d, 0xa6, 0xd0, 0x40, 0x59, 0x0a, 0x17, 0x94, 0x3b, - 0x0d, 0x20, 0xd7, 0x50, 0xf6, 0x2d, 0x30, 0xcd, 0x05, 0x16, 0x3d, 0x25, 0xf0, 0x85, 0x8b, 0xc8, - 0x28, 0xc0, 0x4c, 0x28, 0x23, 0x02, 0x87, 0x45, 0xc1, 0x67, 0xd2, 0xd2, 0xf9, 0x4f, 0x9e, 0xa9, - 0xda, 0x55, 0x64, 0xaa, 0xd6, 0xc8, 0xd5, 0x44, 0x7e, 0x68, 0xc1, 0xf6, 0x49, 0xc4, 0xa5, 0xb2, - 0x67, 0x55, 0xcb, 0xfe, 0x92, 0xc2, 0x37, 0x3b, 0x54, 0xec, 0xf5, 0xda, 0x4d, 0x9f, 0x85, 0x7a, - 0x94, 0xea, 0x3f, 0xeb, 0x3c, 0xd8, 0x6f, 0x89, 0x41, 0x4c, 0x78, 0xf3, 0x6a, 0x24, 0xf2, 0x10, - 0x6a, 0x7f, 0x11, 0x42, 0xad, 0x91, 0xab, 0x09, 0xfb, 0x06, 0x98, 0x67, 0x77, 0x23, 0x92, 0x8c, - 0xaa, 0x35, 0x2d, 0x23, 0x5d, 0xc8, 0x45, 0x31, 0x46, 0x14, 0xa2, 0x18, 0x83, 0x91, 0x3b, 0x27, - 0xd7, 0xa6, 0x4e, 0x21, 0xa8, 0x07, 0x84, 0xfb, 0x09, 0x8d, 0x73, 0x81, 0x69, 0x05, 0xae, 0x36, - 0x9f, 0xf3, 0x11, 0x6a, 0x6e, 0x15, 0x76, 0xce, 0x05, 0x2d, 0xc4, 0xf2, 0xe6, 0x2c, 0x85, 0xb6, - 0x8a, 0x58, 0x02, 0x91, 0x5b, 0x36, 0xb1, 0x13, 0x30, 0xef, 0x27, 0x04, 0x17, 0x63, 0xaf, 0x26, - 0x03, 0x9e, 0x39, 0xa4, 0x8e, 0x5d, 0xf3, 0xbd, 0x2a, 0x34, 0x3f, 0xb6, 0xb1, 0x38, 0xde, 0x18, - 0x8c, 0xee, 0x4b, 0xcd, 0x1b, 0x4c, 0x0e, 0xb5, 0xf7, 0xc1, 0xac, 0xec, 0xc9, 0xfc, 0x3d, 0x37, - 0x66, 0xe5, 0x48, 0x3b, 0x37, 0x4c, 0x61, 0x01, 0x66, 0x29, 0x3c, 0xa1, 0x65, 0x6d, 0x20, 0xe4, - 0xd6, 0xf2, 0xe7, 0xdd, 0x41, 0x4c, 0xec, 0x7b, 0x16, 0x38, 0x41, 0x6e, 0xdf, 0x26, 0xbe, 0xa0, - 0x7d, 0xe2, 0xe9, 0x02, 0x03, 0xf9, 0xda, 0xbf, 0x7c, 0xe9, 0x02, 0x1f, 0xf2, 0x94, 0xa5, 0xf0, - 0xb4, 0x0a, 0x5e, 0x65, 0x90, 0xbb, 0x38, 0x82, 0x76, 0x25, 0x72, 0xb9, 0xf6, 0xe0, 0x21, 0xb4, - 0x7e, 0x7f, 0x08, 0x2d, 0xf4, 0xe7, 0x71, 0x50, 0xbb, 0x4e, 0x04, 0x7e, 0xdd, 0xc4, 0xaf, 0x9b, - 0xf8, 0x1f, 0xd0, 0xc4, 0x25, 0xe5, 0xff, 0x34, 0x05, 0xce, 0x1a, 0xe5, 0xbb, 0xf2, 0x64, 0xea, - 0xe3, 0x78, 0x93, 0x09, 0xb2, 0xc3, 0x58, 0xf7, 0x95, 0x75, 0xc3, 0x35, 0x30, 0x87, 0xe3, 0x38, - 0x61, 0x7d, 0xe2, 0x75, 0x29, 0x17, 0x8d, 0xc9, 0xd5, 0xa9, 0xb5, 0x59, 0xe7, 0xfc, 0x30, 0x85, - 0x63, 0x78, 0x96, 0xc2, 0x93, 0xca, 0x63, 0x19, 0x45, 0x6e, 0x5d, 0x2f, 0x3f, 0xa1, 0x5c, 0xd8, - 0x1f, 0x80, 0x7a, 0x42, 0xee, 0x10, 0x5f, 0x28, 0x57, 0x53, 0xd2, 0xd5, 0x1b, 0x79, 0x2d, 0x4a, - 0x70, 0x51, 0x8b, 0x12, 0x88, 0x5c, 0xa0, 0x56, 0xd2, 0xcf, 0x1d, 0x50, 0x27, 0x07, 0x31, 0x4d, - 0x88, 0x2a, 0xc4, 0xb1, 0x17, 0x16, 0x62, 0xdd, 0xd4, 0xbc, 0xb4, 0xad, 0x88, 0x53, 0x02, 0x55, - 0x11, 0x80, 0x42, 0xe4, 0x1c, 0xfd, 0x14, 0x2c, 0x50, 0xee, 0xf5, 0x99, 0x20, 0x5e, 0x8c, 0x39, - 0x1f, 0xfd, 0x7e, 0x7b, 0x6b, 0x98, 0xc2, 0x0a, 0x93, 0xa5, 0xf0, 0xdf, 0xca, 0xe3, 0x38, 0x8e, - 0xdc, 0x39, 0xca, 0x65, 0xa1, 0xd4, 0xf2, 0xbb, 0x29, 0x50, 0x2f, 0x29, 0x32, 0x9f, 0x06, 0x21, - 0x8b, 0xe8, 0x3e, 0x49, 0x74, 0xc9, 0xe4, 0x34, 0xd0, 0x50, 0x31, 0x0d, 0x34, 0x80, 0x5c, 0x43, - 0xd9, 0xdb, 0xa0, 0x46, 0x03, 0x12, 0x09, 0x2a, 0xd4, 0xac, 0x52, 0xcd, 0x34, 0xc2, 0xb2, 0x14, - 0x2e, 0xeb, 0x7c, 0x34, 0x52, 0xfe, 0xbd, 0x3a, 0x32, 0xb3, 0x37, 0xc1, 0xcc, 0x5d, 0xd2, 0xe6, - 0x54, 0xa8, 0xdf, 0xe3, 0xaa, 0xba, 0x06, 0xca, 0x52, 0xd8, 0x50, 0x4e, 0x34, 0x50, 0xf6, 0x61, - 0x8c, 0xec, 0x00, 0x9c, 0xe0, 0xc4, 0xef, 0x25, 0x54, 0x0c, 0x3c, 0x9f, 0x45, 0x02, 0xfb, 0x42, - 0x96, 0x65, 0xd6, 0x79, 0x2f, 0x1f, 0xff, 0x55, 0x2e, 0x4b, 0xe1, 0x39, 0x3d, 0x87, 0x2a, 0x4c, - 0xd9, 0xfb, 0xa2, 0x21, 0xaf, 0x28, 0x2e, 0x4f, 0x34, 0x20, 0x02, 0xd3, 0xae, 0x99, 0x52, 0x32, - 0x51, 0x0d, 0x15, 0x89, 0x6a, 0x60, 0x2c, 0x51, 0x8d, 0x95, 0x3a, 0xea, 0xde, 0x24, 0x98, 0xff, - 0xdc, 0xdc, 0x08, 0xe4, 0x07, 0xe5, 0x1a, 0x98, 0x2b, 0xb7, 0x83, 0x2e, 0x86, 0x94, 0x7a, 0x19, - 0x2f, 0xa4, 0x5e, 0x46, 0x91, 0x5b, 0x2f, 0x75, 0x8e, 0x7d, 0x15, 0xcc, 0x51, 0xee, 0x85, 0x44, - 0x60, 0xf9, 0xd3, 0x58, 0x96, 0xa7, 0xa6, 0x7c, 0x95, 0xf1, 0xc2, 0x57, 0x19, 0x45, 0x2e, 0xa0, - 0x7c, 0xf4, 0x9d, 0xfb, 0x0a, 0xcc, 0x98, 0xab, 0x49, 0xde, 0x31, 0xf5, 0x8b, 0xe7, 0x9f, 0x3b, - 0xe3, 0xc6, 0xce, 0x92, 0x5f, 0x44, 0x06, 0x4a, 0x47, 0xc5, 0xfd, 0x45, 0xeb, 0xc8, 0xdc, 0x5d, - 0x5c, 0x43, 0xa1, 0xc7, 0x53, 0xc0, 0x3e, 0xbc, 0x3d, 0x1f, 0x29, 0xa3, 0x09, 0xb5, 0x47, 0x68, - 0x67, 0x4f, 0xc8, 0x57, 0x32, 0xa5, 0x46, 0x4a, 0x85, 0x2a, 0x46, 0x4a, 0x85, 0x40, 0xee, 0x82, - 0x41, 0x3e, 0x92, 0x80, 0xdd, 0x07, 0x8b, 0xd5, 0x7b, 0xe0, 0xe4, 0xab, 0x98, 0xa5, 0x0b, 0xfe, - 0xf8, 0x3d, 0xef, 0x5b, 0x0b, 0x2c, 0xd2, 0x88, 0x0a, 0x8a, 0xbb, 0x5e, 0x1b, 0x77, 0x71, 0xe4, - 0x1b, 0xc1, 0xdf, 0x7a, 0xa9, 0x2f, 0x5d, 0xd5, 0x49, 0x71, 0xf4, 0x0a, 0x81, 0xdc, 0x05, 0x8d, - 0x38, 0x0a, 0xb0, 0x31, 0x98, 0x31, 0x91, 0x55, 0x7b, 0x7c, 0xf8, 0x52, 0x91, 0x67, 0x8a, 0x88, - 0xba, 0x98, 0xa3, 0x48, 0x86, 0x72, 0x6e, 0x3c, 0x7a, 0xba, 0x62, 0x3d, 0x79, 0xba, 0x62, 0xfd, - 0xf6, 0x74, 0xc5, 0xba, 0xff, 0x6c, 0x65, 0xe2, 0xc9, 0xb3, 0x95, 0x89, 0x9f, 0x9f, 0xad, 0x4c, - 0x7c, 0xf1, 0x4e, 0x29, 0x8e, 0x56, 0x50, 0x44, 0x84, 0x79, 0x5c, 0xf7, 0xf7, 0x30, 0x8d, 0x5a, - 0x07, 0xc5, 0xbf, 0x69, 0x64, 0xe4, 0xf6, 0xb4, 0x2c, 0xc6, 0xa5, 0xbf, 0x02, 0x00, 0x00, 0xff, - 0xff, 0xb4, 0x59, 0x8d, 0xfe, 0xc7, 0x11, 0x00, 0x00, -} + // 1483 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4f, 0x6f, 0xdc, 0x44, + 0x1b, 0x8f, 0x93, 0xbe, 0x9b, 0xcd, 0x6c, 0xfe, 0xf4, 0x75, 0xf3, 0xb6, 0x9b, 0xbe, 0x7d, 0x77, + 0x52, 0xbf, 0x40, 0x53, 0x41, 0x76, 0x95, 0x16, 0x09, 0xd1, 0x03, 0x52, 0xdc, 0x04, 0x91, 0x42, + 0xab, 0x60, 0xd2, 0x56, 0xe2, 0x62, 0xbc, 0xf6, 0x74, 0x33, 0xcd, 0x7a, 0xc6, 0x78, 0x66, 0xb7, + 0x59, 0x89, 0x1b, 0x42, 0xe2, 0x84, 0x7a, 0x42, 0x95, 0xb8, 0xf4, 0xc8, 0x07, 0xe8, 0x87, 0x28, + 0x9c, 0x2a, 0x4e, 0x88, 0x83, 0x41, 0xa9, 0x84, 0xd0, 0x1e, 0xcd, 0x17, 0x40, 0x9e, 0x3f, 0x6b, + 0xaf, 0xd3, 0x55, 0x55, 0xa4, 0x9e, 0xe8, 0x69, 0xfd, 0xfc, 0x7e, 0xcf, 0x3c, 0xcf, 0x33, 0x7e, + 0xfe, 0x8c, 0x67, 0x81, 0xc5, 0x78, 0xec, 0x71, 0xca, 0x5a, 0x31, 0xea, 0x60, 0xc6, 0x51, 0xdc, + 0xea, 0x6f, 0x8c, 0x9e, 0x9b, 0x51, 0x4c, 0x39, 0x35, 0x4f, 0x29, 0x9d, 0xe6, 0x08, 0xef, 0x6f, + 0x9c, 0x5d, 0xee, 0xd0, 0x0e, 0x15, 0x7c, 0x2b, 0x7b, 0x92, 0xaa, 0x67, 0x57, 0x3a, 0x94, 0x76, + 0xba, 0xa8, 0x25, 0xa4, 0x76, 0xef, 0x4e, 0xcb, 0x23, 0x03, 0x45, 0xc1, 0x32, 0xc5, 0x71, 0x88, + 0x18, 0xf7, 0xc2, 0x48, 0x29, 0x34, 0xca, 0x0a, 0x41, 0x2f, 0xf6, 0x38, 0xa6, 0x44, 0xdb, 0xf6, + 0x29, 0x0b, 0x29, 0x73, 0xa5, 0x53, 0x29, 0xe8, 0xa5, 0x52, 0x6a, 0xb5, 0x3d, 0x86, 0x5a, 0xfd, + 0x8d, 0x36, 0xe2, 0xde, 0x46, 0xcb, 0xa7, 0x58, 0x2f, 0x7d, 0x4d, 0xf1, 0x8c, 0x7b, 0x07, 0x98, + 0x74, 0x46, 0x2a, 0x4a, 0x96, 0x5a, 0xd6, 0x9f, 0x15, 0x50, 0xd9, 0xf5, 0x62, 0x2f, 0x64, 0xa6, + 0x0d, 0x40, 0x9b, 0x92, 0xc0, 0x0d, 0x10, 0xa1, 0x61, 0xdd, 0x58, 0x35, 0xd6, 0xe6, 0xec, 0xff, + 0x0f, 0x13, 0x58, 0x40, 0xd3, 0x04, 0xfe, 0x7b, 0xe0, 0x85, 0xdd, 0x2b, 0x56, 0x8e, 0x59, 0xce, + 0x5c, 0x26, 0x6c, 0x65, 0xcf, 0xe6, 0x43, 0x03, 0xac, 0xf4, 0x48, 0x26, 0x63, 0xd2, 0x71, 0xf9, + 0x7e, 0x8c, 0x3c, 0xb6, 0x4f, 0xbb, 0x81, 0x9b, 0x6d, 0xbc, 0x3e, 0xbd, 0x6a, 0xac, 0xd5, 0x2e, + 0xad, 0x34, 0xe5, 0xa6, 0x9b, 0x7a, 0xd3, 0xcd, 0x2d, 0xb5, 0x69, 0x7b, 0xe7, 0x71, 0x02, 0xa7, + 0x86, 0x09, 0x9c, 0x6c, 0x23, 0x4d, 0xe0, 0xaa, 0x8c, 0x60, 0xa2, 0x8a, 0xf5, 0xe0, 0x57, 0x68, + 0x38, 0x67, 0x46, 0xfc, 0xde, 0x88, 0xde, 0xc3, 0x21, 0x2a, 0x85, 0xe8, 0xd3, 0x30, 0xea, 0xa2, + 0xcc, 0xb9, 0x0c, 0x71, 0xe6, 0x6f, 0x84, 0x58, 0xb2, 0xf1, 0xac, 0x10, 0x4b, 0x2a, 0xe5, 0x10, + 0xaf, 0x8e, 0x68, 0x11, 0xe2, 0x2e, 0xa8, 0x85, 0xde, 0xa1, 0x8b, 0x08, 0x8f, 0x31, 0x62, 0xf5, + 0x13, 0xab, 0xc6, 0xda, 0x82, 0xdd, 0x1a, 0x26, 0xb0, 0x08, 0xa7, 0x09, 0x3c, 0x27, 0xdd, 0x14, + 0x40, 0xeb, 0x2d, 0x1a, 0x62, 0x8e, 0xc2, 0x88, 0x0f, 0x1c, 0x10, 0x7a, 0x87, 0xdb, 0x12, 0x36, + 0xbf, 0x00, 0x2b, 0x31, 0x62, 0xb4, 0x17, 0xfb, 0xc8, 0x25, 0x34, 0x40, 0x6e, 0x8c, 0x3a, 0x2e, + 0x22, 0x5e, 0xbb, 0x8b, 0x82, 0xfa, 0xbf, 0x56, 0x8d, 0xb5, 0xaa, 0xbd, 0x99, 0x6d, 0x6a, 0xa2, + 0x52, 0xbe, 0xa9, 0x89, 0x2a, 0x96, 0x73, 0x5a, 0x73, 0x37, 0x68, 0x80, 0x1c, 0xd4, 0xd9, 0x96, + 0x84, 0xf9, 0x9d, 0x51, 0x76, 0x1f, 0x62, 0xe2, 0x06, 0x28, 0xa2, 0x0c, 0xf3, 0x7a, 0x45, 0xbd, + 0x72, 0x55, 0xdd, 0x59, 0x3d, 0x37, 0x55, 0xb1, 0x36, 0xaf, 0x52, 0x4c, 0xec, 0x6d, 0xfd, 0xca, + 0x27, 0xda, 0x98, 0x14, 0x5d, 0x41, 0xa5, 0x14, 0xdd, 0x75, 0x4c, 0xb6, 0x24, 0x61, 0x7e, 0x0e, + 0x16, 0xfa, 0x94, 0x67, 0x59, 0x8a, 0x50, 0x8c, 0x69, 0x50, 0x9f, 0x7d, 0x5e, 0x0d, 0x6c, 0xa8, + 0x80, 0xc6, 0xd7, 0xa5, 0x09, 0x5c, 0x96, 0x41, 0x8c, 0xc1, 0x32, 0xd7, 0xf3, 0x12, 0xdb, 0x95, + 0xd0, 0xd1, 0x2c, 0x98, 0x77, 0x0a, 0xd1, 0x98, 0xb7, 0xc0, 0x12, 0x41, 0xfc, 0x1e, 0x8d, 0x0f, + 0x5c, 0x2f, 0x08, 0x62, 0xc4, 0x98, 0x6a, 0xc0, 0xf5, 0x61, 0x02, 0xcb, 0x54, 0x9a, 0xc0, 0xd3, + 0xd2, 0x51, 0x89, 0xb0, 0x9c, 0x45, 0x85, 0x6c, 0x4a, 0xc0, 0xf4, 0x40, 0x25, 0xea, 0xb5, 0x0f, + 0xd0, 0x40, 0xf5, 0xde, 0xf2, 0xb1, 0x4d, 0x6d, 0x92, 0x81, 0x7d, 0x79, 0x98, 0x40, 0xa5, 0x97, + 0x26, 0x70, 0x41, 0xda, 0x96, 0xb2, 0xf5, 0xe3, 0xa3, 0xf5, 0x65, 0x95, 0x19, 0x3f, 0x1e, 0x44, + 0x9c, 0x36, 0x77, 0x7b, 0xed, 0x0f, 0xd1, 0xc0, 0x51, 0x0b, 0xcc, 0x77, 0xc0, 0x2c, 0xeb, 0xb1, + 0x08, 0x91, 0x40, 0x34, 0x4f, 0xd5, 0xfe, 0xdf, 0x30, 0x81, 0x1a, 0x4a, 0x13, 0xb8, 0x28, 0xcd, + 0x29, 0xc0, 0x72, 0x34, 0x65, 0xde, 0x06, 0x15, 0xc6, 0x3d, 0xde, 0x93, 0x05, 0xbe, 0x78, 0xc9, + 0xd2, 0x15, 0xa0, 0x27, 0x94, 0x2e, 0x02, 0x9b, 0x92, 0xe0, 0x13, 0xa1, 0x69, 0xff, 0x37, 0x8b, + 0x54, 0xae, 0xca, 0x23, 0x95, 0xb2, 0xe5, 0x28, 0xc2, 0xa4, 0xa0, 0xc2, 0xe9, 0x01, 0x22, 0x4c, + 0x54, 0xf6, 0x9c, 0x7d, 0x3b, 0x4b, 0xd7, 0x2f, 0x09, 0x7c, 0xa3, 0x83, 0xf9, 0x7e, 0xaf, 0xdd, + 0xf4, 0x69, 0xa8, 0x46, 0xa9, 0xfa, 0x59, 0x67, 0xc1, 0x41, 0x8b, 0x0f, 0x22, 0xc4, 0x9a, 0x3b, + 0x84, 0x67, 0x2e, 0xe4, 0xfa, 0xdc, 0x85, 0x94, 0xad, 0x9f, 0x1e, 0xad, 0x03, 0x15, 0xe4, 0x0e, + 0xe1, 0x8e, 0x52, 0x33, 0x6f, 0x80, 0x05, 0x7a, 0x8f, 0xa0, 0x78, 0x94, 0xbb, 0x8a, 0xf0, 0x7b, + 0x31, 0x2b, 0x91, 0x31, 0x22, 0x2f, 0x91, 0x31, 0xd8, 0x72, 0xe6, 0x85, 0xac, 0xb3, 0x16, 0x82, + 0x5a, 0x80, 0x98, 0x1f, 0xe3, 0x28, 0x2b, 0x37, 0x55, 0x8f, 0xab, 0xcd, 0x67, 0x1c, 0x49, 0xcd, + 0xad, 0x5c, 0xcf, 0xbe, 0xa8, 0xca, 0xb2, 0xb8, 0x38, 0x4d, 0xa0, 0x29, 0x3d, 0x16, 0x40, 0xcb, + 0x29, 0xaa, 0x98, 0x31, 0x58, 0xf0, 0x63, 0xe4, 0xe5, 0x43, 0xb0, 0x2a, 0x1c, 0x9e, 0x3d, 0x56, + 0x2b, 0x7b, 0xfa, 0xf4, 0xca, 0x3b, 0x60, 0x6c, 0x61, 0xbe, 0xbd, 0x31, 0xd8, 0xba, 0x2f, 0x3a, + 0x40, 0x63, 0x62, 0xc4, 0xbd, 0x07, 0xe6, 0x44, 0x87, 0x66, 0x6f, 0xbd, 0x3e, 0x27, 0x06, 0xdc, + 0xf9, 0x61, 0x02, 0x73, 0x30, 0x4d, 0xe0, 0x49, 0x55, 0xe4, 0x1a, 0xb2, 0x9c, 0x6a, 0xf6, 0xbc, + 0x37, 0x88, 0x90, 0xf9, 0xad, 0x01, 0x4e, 0xa2, 0x3b, 0x77, 0x90, 0xcf, 0x71, 0x1f, 0xb9, 0x2a, + 0xdd, 0x40, 0xbc, 0xf6, 0x83, 0x17, 0x4e, 0xf7, 0x31, 0x4b, 0x69, 0x02, 0xcf, 0x48, 0xe7, 0x65, + 0xa6, 0x5c, 0x02, 0x4b, 0x23, 0x85, 0x3d, 0xc1, 0x5f, 0xa9, 0x3e, 0x78, 0x08, 0x8d, 0x3f, 0x1e, + 0x42, 0xc3, 0xfa, 0xaa, 0x02, 0xaa, 0xd7, 0x11, 0xf7, 0x5e, 0x35, 0xf8, 0xab, 0x06, 0xff, 0xc7, + 0x35, 0x78, 0xa1, 0x0f, 0x7e, 0x98, 0x01, 0xe7, 0x74, 0x1f, 0x38, 0x62, 0x67, 0xf2, 0x18, 0xbd, + 0x45, 0x39, 0xda, 0xa5, 0xb4, 0xfb, 0xd2, 0x7a, 0xe3, 0x1a, 0x98, 0xf7, 0xa2, 0x28, 0xa6, 0x7d, + 0xe4, 0x76, 0x31, 0xe3, 0xf5, 0xe9, 0xd5, 0x99, 0xb5, 0x39, 0xfb, 0xc2, 0x30, 0x81, 0x63, 0x78, + 0x9a, 0xc0, 0x53, 0xd2, 0x62, 0x11, 0xb5, 0x9c, 0x9a, 0x12, 0x3f, 0xc2, 0x8c, 0x9b, 0xef, 0x83, + 0x5a, 0x8c, 0xee, 0x22, 0x9f, 0x4b, 0x53, 0x33, 0xc2, 0xd4, 0xeb, 0x59, 0x2e, 0x0a, 0x70, 0x9e, + 0x8b, 0x02, 0x68, 0x39, 0x40, 0x4a, 0xc2, 0xce, 0x5d, 0x50, 0x43, 0x87, 0x11, 0x8e, 0x91, 0x4c, + 0xc4, 0x89, 0xe7, 0x26, 0x62, 0x5d, 0xe7, 0xbc, 0xb0, 0x2c, 0xf7, 0x53, 0x00, 0x65, 0x12, 0x80, + 0x44, 0xc4, 0x8c, 0xfd, 0x18, 0x2c, 0x62, 0xe6, 0xf6, 0x29, 0x47, 0x6e, 0xe4, 0x31, 0x36, 0xfa, + 0xd2, 0x7b, 0x73, 0x98, 0xc0, 0x12, 0x93, 0x26, 0xf0, 0x3f, 0xd2, 0xe2, 0x38, 0x6e, 0x39, 0xf3, + 0x98, 0x89, 0x44, 0x49, 0xf1, 0xcb, 0x19, 0x50, 0x2b, 0x54, 0x64, 0x36, 0x1b, 0x42, 0x4a, 0xf0, + 0x01, 0x8a, 0x55, 0xca, 0xc4, 0x6c, 0x50, 0x50, 0x3e, 0x1b, 0x14, 0x60, 0x39, 0x9a, 0x32, 0xb7, + 0x41, 0x15, 0x07, 0x88, 0x70, 0xcc, 0xe5, 0xe4, 0x92, 0xcd, 0x34, 0xc2, 0xd2, 0x04, 0xae, 0xa8, + 0x78, 0x14, 0x52, 0xfc, 0xb2, 0x1d, 0xa9, 0x99, 0x9b, 0x60, 0xf6, 0x1e, 0x6a, 0x33, 0xcc, 0xe5, + 0x97, 0xbb, 0xcc, 0xae, 0x86, 0xd2, 0x04, 0xd6, 0xa5, 0x11, 0x05, 0x14, 0x6d, 0x68, 0x25, 0x33, + 0x00, 0x27, 0x19, 0xf2, 0x7b, 0x31, 0xe6, 0x03, 0xd7, 0xa7, 0x84, 0x7b, 0x3e, 0x17, 0x69, 0x99, + 0xb3, 0xdf, 0xcd, 0x8e, 0x86, 0x32, 0x97, 0x26, 0xf0, 0xbc, 0x9a, 0x4a, 0x25, 0xa6, 0x68, 0x7d, + 0x49, 0x93, 0x57, 0x25, 0x97, 0x05, 0x1a, 0x20, 0xee, 0xe1, 0xae, 0x9e, 0x59, 0x22, 0x50, 0x05, + 0xe5, 0x81, 0x2a, 0x60, 0x2c, 0x50, 0x85, 0x15, 0x3a, 0xea, 0xeb, 0x69, 0xb0, 0x70, 0x53, 0xdf, + 0x1d, 0xc4, 0xf1, 0x72, 0x0d, 0xcc, 0x17, 0xdb, 0x41, 0x25, 0x43, 0x94, 0x7a, 0x11, 0xcf, 0x4b, + 0xbd, 0x88, 0x5a, 0x4e, 0xad, 0xd0, 0x39, 0xe6, 0x0e, 0x98, 0xc7, 0xcc, 0x0d, 0x11, 0xf7, 0xc4, + 0x47, 0xb4, 0x48, 0x4f, 0x55, 0xda, 0x2a, 0xe2, 0xb9, 0xad, 0x22, 0x6a, 0x39, 0x00, 0xb3, 0xd1, + 0xa9, 0xf7, 0x19, 0x98, 0xd5, 0x97, 0x98, 0xac, 0x63, 0x6a, 0x97, 0x2e, 0x3c, 0x73, 0xc6, 0x8d, + 0xed, 0x25, 0xbb, 0xb2, 0x0c, 0x64, 0x1d, 0xe5, 0x37, 0x1d, 0x55, 0x47, 0xfa, 0x96, 0xe3, 0x68, + 0xca, 0xfa, 0x7d, 0x06, 0x98, 0xc7, 0x97, 0x67, 0x23, 0x65, 0x34, 0xa1, 0xf6, 0x11, 0xee, 0xec, + 0x73, 0xf1, 0x4a, 0x66, 0xe4, 0x48, 0x29, 0x51, 0xf9, 0x48, 0x29, 0x11, 0x96, 0xb3, 0xa8, 0x91, + 0x0f, 0x04, 0x60, 0xf6, 0xc1, 0x52, 0xf9, 0xc6, 0x38, 0xfd, 0x32, 0x66, 0xe9, 0xa2, 0x3f, 0x7e, + 0x23, 0xfc, 0xc6, 0x00, 0x4b, 0x98, 0x60, 0x8e, 0xbd, 0xae, 0xdb, 0xf6, 0xba, 0x1e, 0xf1, 0x75, + 0xc1, 0xa3, 0x17, 0x3a, 0xf7, 0xca, 0x46, 0xf2, 0xad, 0x97, 0x88, 0xf2, 0x49, 0xb8, 0xa8, 0x78, + 0x5b, 0xd2, 0x26, 0x05, 0xb3, 0x3a, 0x0e, 0xd9, 0x2c, 0x37, 0x5f, 0x28, 0x8e, 0xd9, 0xdc, 0xbf, + 0x4a, 0xed, 0x04, 0xbf, 0x5a, 0xd1, 0x76, 0xbe, 0x3f, 0x6a, 0x18, 0x8f, 0x8f, 0x1a, 0xc6, 0x93, + 0xa3, 0x86, 0xf1, 0xdb, 0x51, 0xc3, 0xb8, 0xff, 0xb4, 0x31, 0xf5, 0xe4, 0x69, 0x63, 0xea, 0xe7, + 0xa7, 0x8d, 0xa9, 0x4f, 0xdf, 0x2e, 0x78, 0x56, 0x15, 0x46, 0x10, 0xd7, 0x8f, 0xeb, 0xfe, 0xbe, + 0x87, 0x49, 0xeb, 0x30, 0xff, 0xc3, 0x47, 0xc4, 0xd2, 0xae, 0x88, 0x64, 0x5d, 0xfe, 0x2b, 0x00, + 0x00, 0xff, 0xff, 0x55, 0x93, 0xa9, 0x36, 0x11, 0x12, 0x00, 0x00, +} + +func (this *Params) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + that1, ok := that.(*Params) + if !ok { + that2, ok := that.(Params) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.BondDenom != that1.BondDenom { + return false + } + if this.UnbondingThreasholdTime != that1.UnbondingThreasholdTime { + return false + } + if this.UnbondingCompletionTime != that1.UnbondingCompletionTime { + return false + } + if this.MaxEntries != that1.MaxEntries { + return false + } + if this.ResourceNodeRegEnabled != that1.ResourceNodeRegEnabled { + return false + } + if !this.ResourceNodeMinDeposit.Equal(&that1.ResourceNodeMinDeposit) { + return false + } + if this.VotingPeriod != that1.VotingPeriod { + return false + } + return true +} func (this *ResourceNode) Equal(that interface{}) bool { if that == nil { return this == nil @@ -795,6 +838,52 @@ func (this *MetaNode) Equal(that interface{}) bool { } return true } +func (this *MetaNodeRegistrationVotePool) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MetaNodeRegistrationVotePool) + if !ok { + that2, ok := that.(MetaNodeRegistrationVotePool) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if len(this.ApproveList) != len(that1.ApproveList) { + return false + } + for i := range this.ApproveList { + if this.ApproveList[i] != that1.ApproveList[i] { + return false + } + } + if len(this.RejectList) != len(that1.RejectList) { + return false + } + for i := range this.RejectList { + if this.RejectList[i] != that1.RejectList[i] { + return false + } + } + if !this.ExpireTime.Equal(that1.ExpireTime) { + return false + } + if this.IsVotePassed != that1.IsVotePassed { + return false + } + return true +} func (this *Description) Equal(that interface{}) bool { if that == nil { return this == nil @@ -831,6 +920,82 @@ func (this *Description) Equal(that interface{}) bool { } return true } +func (this *UnbondingNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*UnbondingNode) + if !ok { + that2, ok := that.(UnbondingNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddr != that1.NetworkAddr { + return false + } + if this.IsMetaNode != that1.IsMetaNode { + return false + } + if len(this.Entries) != len(that1.Entries) { + return false + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return false + } + } + return true +} +func (this *UnbondingNodeEntry) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*UnbondingNodeEntry) + if !ok { + that2, ok := that.(UnbondingNodeEntry) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.CreationHeight != that1.CreationHeight { + return false + } + if !this.CompletionTime.Equal(that1.CompletionTime) { + return false + } + if that1.InitialBalance == nil { + if this.InitialBalance != nil { + return false + } + } else if !this.InitialBalance.Equal(*that1.InitialBalance) { + return false + } + if that1.Balance == nil { + if this.Balance != nil { + return false + } + } else if !this.Balance.Equal(*that1.Balance) { + return false + } + return true +} func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -851,7 +1016,7 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - n1, err1 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.VotingPeriod, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.VotingPeriod):]) + n1, err1 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.VotingPeriod, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.VotingPeriod):]) if err1 != nil { return 0, err1 } @@ -884,7 +1049,7 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x20 } - n3, err3 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.UnbondingCompletionTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.UnbondingCompletionTime):]) + n3, err3 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingCompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingCompletionTime):]) if err3 != nil { return 0, err3 } @@ -892,7 +1057,7 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintRegister(dAtA, i, uint64(n3)) i-- dAtA[i] = 0x1a - n4, err4 := github_com_gogo_protobuf_types.StdDurationMarshalTo(m.UnbondingThreasholdTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdDuration(m.UnbondingThreasholdTime):]) + n4, err4 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingThreasholdTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingThreasholdTime):]) if err4 != nil { return 0, err4 } @@ -945,7 +1110,7 @@ func (m *ResourceNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x48 } - n5, err5 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CreationTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CreationTime):]) + n5, err5 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CreationTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime):]) if err5 != nil { return 0, err5 } @@ -1037,7 +1202,7 @@ func (m *MetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - n8, err8 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CreationTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CreationTime):]) + n8, err8 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CreationTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime):]) if err8 != nil { return 0, err8 } @@ -1139,7 +1304,7 @@ func (m *MetaNodeRegistrationVotePool) MarshalToSizedBuffer(dAtA []byte) (int, e i-- dAtA[i] = 0x28 } - n11, err11 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.ExpireTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.ExpireTime):]) + n11, err11 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.ExpireTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.ExpireTime):]) if err11 != nil { return 0, err11 } @@ -1331,7 +1496,7 @@ func (m *UnbondingNodeEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x1a } - n12, err12 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.CompletionTime):]) + n12, err12 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) if err12 != nil { return 0, err12 } @@ -1368,9 +1533,9 @@ func (m *Params) Size() (n int) { if l > 0 { n += 1 + l + sovRegister(uint64(l)) } - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.UnbondingThreasholdTime) + l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingThreasholdTime) n += 1 + l + sovRegister(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.UnbondingCompletionTime) + l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingCompletionTime) n += 1 + l + sovRegister(uint64(l)) if m.MaxEntries != 0 { n += 1 + sovRegister(uint64(m.MaxEntries)) @@ -1380,7 +1545,7 @@ func (m *Params) Size() (n int) { } l = m.ResourceNodeMinDeposit.Size() n += 1 + l + sovRegister(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdDuration(m.VotingPeriod) + l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.VotingPeriod) n += 1 + l + sovRegister(uint64(l)) return n } @@ -1413,7 +1578,7 @@ func (m *ResourceNode) Size() (n int) { } l = m.Description.Size() n += 1 + l + sovRegister(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.CreationTime) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime) n += 1 + l + sovRegister(uint64(l)) if m.NodeType != 0 { n += 1 + sovRegister(uint64(m.NodeType)) @@ -1451,7 +1616,7 @@ func (m *MetaNode) Size() (n int) { } l = m.Description.Size() n += 1 + l + sovRegister(uint64(l)) - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.CreationTime) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime) n += 1 + l + sovRegister(uint64(l)) return n } @@ -1478,7 +1643,7 @@ func (m *MetaNodeRegistrationVotePool) Size() (n int) { n += 1 + l + sovRegister(uint64(l)) } } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.ExpireTime) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.ExpireTime) n += 1 + l + sovRegister(uint64(l)) if m.IsVotePassed { n += 2 @@ -1546,7 +1711,7 @@ func (m *UnbondingNodeEntry) Size() (n int) { if m.CreationHeight != 0 { n += 1 + sovRegister(uint64(m.CreationHeight)) } - l = github_com_gogo_protobuf_types.SizeOfStdTime(m.CompletionTime) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime) n += 1 + l + sovRegister(uint64(l)) if m.InitialBalance != nil { l = m.InitialBalance.Size() @@ -1655,7 +1820,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.UnbondingThreasholdTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.UnbondingThreasholdTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1688,7 +1853,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.UnbondingCompletionTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.UnbondingCompletionTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -1793,7 +1958,7 @@ func (m *Params) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdDurationUnmarshal(&m.VotingPeriod, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.VotingPeriod, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2082,7 +2247,7 @@ func (m *ResourceNode) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.CreationTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.CreationTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2424,7 +2589,7 @@ func (m *MetaNode) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.CreationTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.CreationTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -2603,7 +2768,7 @@ func (m *MetaNodeRegistrationVotePool) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.ExpireTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.ExpireTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -3071,7 +3236,7 @@ func (m *UnbondingNodeEntry) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(&m.CompletionTime, dAtA[iNdEx:postIndex]); err != nil { + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.CompletionTime, dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/register/types/registration.go b/x/register/types/registration.go index 7acf56d6..31260cee 100644 --- a/x/register/types/registration.go +++ b/x/register/types/registration.go @@ -1,6 +1,7 @@ package types import ( + "cosmossdk.io/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" ) @@ -28,19 +29,19 @@ func NewDescription(moniker, identity, website, securityContact, details string) // EnsureLength ensures the length of a resource/meta node's description. func (d *Description) EnsureLength() (*Description, error) { if len(d.Moniker) > MaxMonikerLength { - return d, sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid moniker length; got: %d, max: %d", len(d.Moniker), MaxMonikerLength) + return d, errors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid moniker length; got: %d, max: %d", len(d.Moniker), MaxMonikerLength) } if len(d.Identity) > MaxIdentityLength { - return d, sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid identity length; got: %d, max: %d", len(d.Identity), MaxIdentityLength) + return d, errors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid identity length; got: %d, max: %d", len(d.Identity), MaxIdentityLength) } if len(d.Website) > MaxWebsiteLength { - return d, sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid website length; got: %d, max: %d", len(d.Website), MaxWebsiteLength) + return d, errors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid website length; got: %d, max: %d", len(d.Website), MaxWebsiteLength) } if len(d.SecurityContact) > MaxSecurityContactLength { - return d, sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid security contact length; got: %d, max: %d", len(d.SecurityContact), MaxSecurityContactLength) + return d, errors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid security contact length; got: %d, max: %d", len(d.SecurityContact), MaxSecurityContactLength) } if len(d.Details) > MaxDetailsLength { - return d, sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid details length; got: %d, max: %d", len(d.Details), MaxDetailsLength) + return d, errors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid details length; got: %d, max: %d", len(d.Details), MaxDetailsLength) } return d, nil diff --git a/x/register/types/resource_node.go b/x/register/types/resource_node.go index 622c4ba5..ccd5ccc8 100644 --- a/x/register/types/resource_node.go +++ b/x/register/types/resource_node.go @@ -5,6 +5,7 @@ import ( "strings" "time" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" @@ -84,12 +85,12 @@ func NewResourceNode(networkAddr stratos.SdsAddress, pubKey cryptotypes.PubKey, Pubkey: pkAny, Suspend: true, Status: stakingtypes.Unbonded, - Tokens: sdk.ZeroInt(), + Tokens: sdkmath.ZeroInt(), OwnerAddress: ownerAddr.String(), Description: description, NodeType: uint32(nodeType), CreationTime: creationTime, - EffectiveTokens: sdk.ZeroInt(), + EffectiveTokens: sdkmath.ZeroInt(), }, nil } @@ -121,13 +122,13 @@ func (v ResourceNode) ConvertToString() string { } // AddToken adds tokens to a resource node -func (v ResourceNode) AddToken(amount sdk.Int) ResourceNode { +func (v ResourceNode) AddToken(amount sdkmath.Int) ResourceNode { v.Tokens = v.Tokens.Add(amount) return v } // SubToken removes tokens from a resource node -func (v ResourceNode) SubToken(amount sdk.Int) ResourceNode { +func (v ResourceNode) SubToken(amount sdkmath.Int) ResourceNode { if amount.IsNegative() { panic(fmt.Sprintf("should not happen: trying to remove negative tokens %v", amount)) } @@ -171,7 +172,7 @@ func (v ResourceNode) Validate() error { return ErrEmptyOwnerAddr } - if v.Tokens.LT(sdk.ZeroInt()) { + if v.Tokens.LT(sdkmath.ZeroInt()) { return ErrValueNegative } if v.GetDescription().Moniker == "" { diff --git a/x/register/types/tx.pb.go b/x/register/types/tx.pb.go index 5ef7aa9d..fa42e33f 100644 --- a/x/register/types/tx.pb.go +++ b/x/register/types/tx.pb.go @@ -6,13 +6,13 @@ package types import ( context "context" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/codec/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types1 "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - grpc1 "github.com/gogo/protobuf/grpc" - proto "github.com/gogo/protobuf/proto" - _ "github.com/regen-network/cosmos-proto" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -1165,100 +1165,690 @@ func init() { func init() { proto.RegisterFile("stratos/register/v1/tx.proto", fileDescriptor_75d4b90d7a185a31) } var fileDescriptor_75d4b90d7a185a31 = []byte{ - // 1477 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4f, 0x8c, 0xdb, 0xc4, - 0x1a, 0x5f, 0x27, 0xdb, 0xbe, 0xee, 0xb4, 0xdb, 0x3f, 0xe9, 0xee, 0x6b, 0x36, 0xdd, 0x66, 0xb6, - 0xd3, 0xd7, 0x7d, 0xdb, 0xd7, 0x17, 0xbb, 0xd9, 0x52, 0x68, 0x0b, 0x14, 0x35, 0x5d, 0x24, 0x10, - 0xda, 0x2d, 0xb2, 0x4a, 0x91, 0x90, 0xaa, 0xc8, 0x49, 0xa6, 0x69, 0xb4, 0x1b, 0x4f, 0x64, 0x3b, - 0xd9, 0xe6, 0xc0, 0x85, 0x53, 0x8f, 0x48, 0x9c, 0x38, 0x51, 0x38, 0x72, 0x02, 0x09, 0x8e, 0x48, - 0x88, 0x53, 0x41, 0x42, 0xaa, 0x84, 0x84, 0x10, 0x12, 0x23, 0xd4, 0x72, 0xf2, 0x81, 0x83, 0x0f, - 0x9c, 0x91, 0x67, 0xc6, 0xe3, 0xd8, 0xb1, 0xdd, 0x2c, 0x6d, 0x0f, 0xa0, 0x9e, 0x92, 0xf9, 0xfe, - 0xcc, 0xfc, 0xbe, 0xdf, 0xf7, 0x7d, 0xf3, 0xc7, 0x60, 0xd1, 0x76, 0x2c, 0xc3, 0x21, 0xb6, 0x66, - 0xe1, 0x76, 0xc7, 0x76, 0xb0, 0xa5, 0x0d, 0xaa, 0x9a, 0x73, 0x5b, 0xed, 0x59, 0xc4, 0x21, 0x85, - 0xc3, 0x42, 0xab, 0x06, 0x5a, 0x75, 0x50, 0x2d, 0xcd, 0xb5, 0x49, 0x9b, 0x30, 0xbd, 0xe6, 0xff, - 0xe3, 0xa6, 0xa5, 0x85, 0x36, 0x21, 0xed, 0x2d, 0xac, 0xb1, 0x51, 0xa3, 0x7f, 0x53, 0x33, 0xcc, - 0xa1, 0x50, 0x2d, 0x0a, 0x95, 0xd1, 0xeb, 0x68, 0x86, 0x69, 0x12, 0xc7, 0x70, 0x3a, 0xc4, 0xb4, - 0x03, 0xc7, 0x26, 0xb1, 0xbb, 0xc4, 0xae, 0xf3, 0x19, 0xf9, 0x40, 0xa8, 0x50, 0x12, 0x38, 0x09, - 0x85, 0xdb, 0x94, 0xb9, 0x87, 0xd6, 0x30, 0x6c, 0xac, 0x0d, 0xaa, 0x0d, 0xec, 0x18, 0x55, 0xad, - 0x49, 0x3a, 0x26, 0xd7, 0xa3, 0x8f, 0xa7, 0xc1, 0xfc, 0xba, 0xdd, 0xbe, 0x62, 0x61, 0xc3, 0xc1, - 0x3a, 0xb6, 0x49, 0xdf, 0x6a, 0xe2, 0x0d, 0xd2, 0xc2, 0x85, 0xeb, 0xe0, 0x80, 0x89, 0x9d, 0x6d, - 0x62, 0x6d, 0xd6, 0x8d, 0x56, 0xcb, 0xc2, 0xb6, 0x5d, 0x54, 0x96, 0x94, 0x95, 0x99, 0x5a, 0xc5, - 0xa5, 0x30, 0xae, 0xf2, 0x28, 0xfc, 0xf7, 0xd0, 0xe8, 0x6e, 0x5d, 0x44, 0x31, 0x05, 0xd2, 0xf7, - 0x0b, 0xc9, 0x65, 0x2e, 0x28, 0x18, 0x60, 0x77, 0xaf, 0xdf, 0xd8, 0xc4, 0xc3, 0x62, 0x6e, 0x49, - 0x59, 0xd9, 0xbb, 0x3a, 0xa7, 0xf2, 0xf8, 0xd5, 0x80, 0x1a, 0xf5, 0xb2, 0x39, 0xac, 0x9d, 0x75, - 0x29, 0x14, 0x76, 0x1e, 0x85, 0xb3, 0x7c, 0x6e, 0x3e, 0x46, 0xdf, 0x7d, 0x51, 0x99, 0x13, 0x44, - 0x34, 0xad, 0x61, 0xcf, 0x21, 0xea, 0x9b, 0xfd, 0xc6, 0x1b, 0x78, 0xa8, 0x0b, 0x87, 0xc2, 0x06, - 0xd8, 0x35, 0x30, 0xb6, 0xfa, 0xb8, 0x98, 0x67, 0x2b, 0x2c, 0xa8, 0xc2, 0xda, 0x27, 0x41, 0x15, - 0x24, 0xa8, 0x57, 0x48, 0xc7, 0xac, 0x1d, 0xbb, 0x47, 0xe1, 0x94, 0x4b, 0x21, 0xb7, 0xf7, 0x28, - 0xdc, 0xc7, 0x57, 0x62, 0x43, 0xa4, 0x73, 0x71, 0x61, 0x03, 0xcc, 0x92, 0x6d, 0x13, 0x5b, 0x92, - 0x88, 0x69, 0x46, 0xc4, 0x29, 0x97, 0xc2, 0xa8, 0xc2, 0xa3, 0x70, 0x8e, 0x4f, 0x10, 0x11, 0x23, - 0x7d, 0x1f, 0x1b, 0x07, 0x14, 0x74, 0xc1, 0xde, 0x16, 0xb6, 0x9b, 0x56, 0xa7, 0xe7, 0x67, 0xba, - 0xb8, 0x8b, 0xa1, 0x5c, 0x52, 0x13, 0xaa, 0x49, 0x5d, 0x0b, 0xed, 0x6a, 0xa7, 0x04, 0xd8, 0x51, - 0x67, 0x8f, 0xc2, 0x02, 0x5f, 0x71, 0x44, 0x88, 0xf4, 0x51, 0x93, 0xc2, 0x25, 0x30, 0x63, 0x92, - 0x16, 0xae, 0x3b, 0xc3, 0x1e, 0x2e, 0xee, 0x5e, 0x52, 0x56, 0x66, 0x6b, 0xc7, 0x5d, 0x0a, 0x43, - 0xa1, 0x47, 0xe1, 0x41, 0x91, 0xbd, 0x40, 0x84, 0xf4, 0x3d, 0xfe, 0xff, 0x6b, 0xfe, 0x5f, 0x08, - 0x8e, 0x25, 0x96, 0x88, 0x8e, 0xed, 0x1e, 0x31, 0x6d, 0x8c, 0x7e, 0xc9, 0x83, 0x43, 0xd2, 0x62, - 0x1d, 0x3b, 0xc6, 0xb3, 0x02, 0xfa, 0x27, 0x15, 0x10, 0x3a, 0x0a, 0x16, 0xc6, 0xd2, 0x2b, 0x93, - 0xff, 0xa3, 0xc2, 0x76, 0x10, 0x1d, 0x77, 0xc9, 0x20, 0xba, 0x83, 0x74, 0xc1, 0xbc, 0x25, 0xc6, - 0x75, 0x56, 0x58, 0xd1, 0x32, 0xb8, 0xe0, 0x52, 0x98, 0x6c, 0xe0, 0x51, 0xb8, 0xc8, 0x31, 0x25, - 0xaa, 0x91, 0x7e, 0xd8, 0x1a, 0x59, 0x27, 0x20, 0x65, 0x8c, 0xe4, 0xdc, 0x63, 0x91, 0x2c, 0xca, - 0x7e, 0x3c, 0x2e, 0x19, 0xf9, 0x37, 0x0a, 0x2b, 0x7b, 0x6e, 0x21, 0xcb, 0xfe, 0x06, 0x38, 0xd4, - 0xc5, 0x8e, 0x91, 0x14, 0x71, 0xd5, 0xa5, 0x70, 0x5c, 0xe9, 0x51, 0x58, 0xe4, 0x70, 0xc6, 0x54, - 0x48, 0x3f, 0xd0, 0x15, 0xf3, 0x3e, 0xad, 0x28, 0x79, 0x6e, 0xa3, 0x31, 0xc8, 0x08, 0x7f, 0xcf, - 0xb1, 0xdc, 0xbe, 0xd5, 0x6b, 0xc5, 0x4f, 0x87, 0x58, 0x05, 0x2a, 0x4f, 0x79, 0x0b, 0x4b, 0xd8, - 0x4b, 0x72, 0x4f, 0x62, 0x2f, 0x19, 0x63, 0x33, 0xff, 0x78, 0x8d, 0x19, 0xd9, 0x6a, 0xa7, 0xff, - 0xea, 0x56, 0x3b, 0xce, 0xb7, 0xcc, 0xc8, 0xa7, 0x39, 0x56, 0x73, 0xdc, 0x42, 0xd6, 0xdc, 0xb3, - 0x6c, 0x64, 0xd4, 0x76, 0x94, 0x2b, 0xc9, 0xe4, 0x97, 0x39, 0xb0, 0x98, 0xc8, 0xf5, 0x1a, 0xee, - 0x11, 0xbb, 0xe3, 0x3c, 0xb5, 0xf3, 0xeb, 0x09, 0x77, 0x70, 0xa1, 0x0b, 0x66, 0x5b, 0x1c, 0x72, - 0xbd, 0x85, 0xb7, 0x1c, 0xe3, 0xd1, 0x87, 0x56, 0x45, 0xe4, 0x3d, 0xea, 0x17, 0x2e, 0x17, 0x11, - 0x23, 0x7d, 0x9f, 0x18, 0xaf, 0xb1, 0xe1, 0x32, 0xf8, 0x4f, 0x16, 0x6d, 0x92, 0xdf, 0x0f, 0xf3, - 0x23, 0xec, 0xbf, 0x7a, 0xf3, 0x26, 0x6e, 0x3a, 0x9d, 0x81, 0x24, 0xf7, 0x15, 0x30, 0x63, 0xe1, - 0x1e, 0xb1, 0x1c, 0x6c, 0xf9, 0xb4, 0xe6, 0x57, 0x66, 0x78, 0xa3, 0x48, 0x61, 0xd8, 0x28, 0x52, - 0x84, 0xf4, 0x50, 0x5d, 0xd0, 0xc1, 0xfe, 0x60, 0x50, 0x67, 0x74, 0x14, 0x73, 0x6c, 0x96, 0xd3, - 0x2e, 0x85, 0x31, 0x8d, 0x47, 0xe1, 0x7c, 0x74, 0x2a, 0x2e, 0x47, 0xfa, 0x6c, 0x20, 0xb8, 0xea, - 0x8f, 0x93, 0x32, 0x9e, 0x7f, 0x12, 0x19, 0xbf, 0xa3, 0x80, 0x83, 0x38, 0x60, 0xa0, 0xee, 0x90, - 0x4d, 0x6c, 0x06, 0x57, 0x80, 0x1b, 0x7e, 0x2a, 0x7e, 0xa6, 0x70, 0xb9, 0xdd, 0x71, 0x6e, 0xf5, - 0x1b, 0x6a, 0x93, 0x74, 0xc5, 0x25, 0x5f, 0xfc, 0x54, 0xec, 0xd6, 0xa6, 0xe6, 0x6f, 0x13, 0xb6, - 0xfa, 0xba, 0xe9, 0xb8, 0x14, 0x8e, 0xcd, 0xe4, 0x51, 0x78, 0x84, 0x03, 0x89, 0x6b, 0x90, 0x7e, - 0x40, 0x8a, 0xae, 0x31, 0xc9, 0xc5, 0xe9, 0x3b, 0x77, 0xe1, 0x14, 0x3a, 0x01, 0x8e, 0xa7, 0xa6, - 0x46, 0x26, 0xf0, 0xf3, 0x1c, 0x28, 0x8e, 0xb5, 0xcf, 0xb3, 0xe6, 0xc8, 0x6c, 0x0e, 0x04, 0x96, - 0xd2, 0x28, 0x93, 0xbc, 0x7e, 0x32, 0x0d, 0x8e, 0xae, 0xdb, 0xed, 0x70, 0x43, 0xf2, 0x37, 0x67, - 0x8b, 0x3d, 0xfa, 0xae, 0x13, 0x07, 0x17, 0xde, 0x05, 0x0b, 0x4d, 0xc3, 0x6c, 0x75, 0xfc, 0x39, - 0xea, 0xc9, 0x24, 0x5f, 0x76, 0x29, 0x4c, 0x37, 0xf2, 0x28, 0x5c, 0xe2, 0x58, 0x53, 0x4d, 0x90, - 0x7e, 0x44, 0xea, 0x36, 0xa2, 0x19, 0xe8, 0x83, 0x50, 0x55, 0x4f, 0xca, 0xc5, 0xcb, 0x2e, 0x85, - 0x69, 0x26, 0x1e, 0x85, 0xe5, 0xf8, 0xd2, 0xb1, 0xfc, 0xcc, 0x4b, 0xcd, 0xd5, 0xd1, 0x44, 0xbd, - 0x00, 0xfe, 0x45, 0x7a, 0x1d, 0xd3, 0x3f, 0xbe, 0xfc, 0x14, 0xed, 0xa9, 0x1d, 0x73, 0x29, 0x0c, - 0x44, 0x1e, 0x85, 0xfb, 0x45, 0xb2, 0xb9, 0x00, 0xe9, 0x81, 0xca, 0xbf, 0x65, 0x0e, 0x88, 0xdf, - 0xd3, 0x71, 0xaa, 0xa6, 0xc3, 0x5b, 0x66, 0xa2, 0x41, 0x78, 0xcb, 0x4c, 0x54, 0x23, 0xfd, 0x30, - 0x93, 0xc7, 0xe8, 0xc1, 0x80, 0x8b, 0x63, 0xd4, 0xec, 0x62, 0x8b, 0x9d, 0x73, 0x29, 0x4c, 0x52, - 0x7b, 0x14, 0x96, 0x46, 0x97, 0x8a, 0x51, 0x72, 0x88, 0x49, 0x47, 0xe9, 0x40, 0x27, 0xc1, 0x89, - 0x8c, 0x1a, 0x91, 0xb5, 0x74, 0x5f, 0x01, 0xcb, 0xeb, 0x76, 0xfb, 0xed, 0x8e, 0x73, 0xab, 0x65, - 0x19, 0xdb, 0x49, 0xf6, 0x7f, 0xb3, 0x8e, 0x45, 0x67, 0x80, 0x3a, 0x59, 0x44, 0x01, 0x09, 0xab, - 0x1f, 0x1d, 0x04, 0xf9, 0x75, 0xbb, 0x5d, 0xf8, 0x4c, 0x01, 0x47, 0x5f, 0x33, 0xcc, 0xd6, 0x16, - 0x4e, 0xfe, 0xa2, 0xf1, 0xbf, 0xc4, 0x0b, 0x51, 0xa2, 0x6d, 0x69, 0x75, 0x72, 0x5b, 0x99, 0x8c, - 0xea, 0x7b, 0x3f, 0xfc, 0xf6, 0x41, 0xee, 0x34, 0x3a, 0xa5, 0x25, 0x7d, 0x98, 0x69, 0x32, 0xc7, - 0x7a, 0xe4, 0x45, 0x13, 0x85, 0x9c, 0xf0, 0x84, 0x4a, 0x85, 0x3c, 0x6e, 0x9b, 0x0e, 0x39, 0xe3, - 0x09, 0x93, 0x0d, 0xd9, 0x62, 0x8e, 0x59, 0x90, 0x13, 0x5e, 0x06, 0xa9, 0x90, 0xc7, 0x6d, 0xd3, - 0x21, 0x67, 0xdc, 0x80, 0xb3, 0x21, 0xf7, 0x99, 0x63, 0x0c, 0xf2, 0xf7, 0x0a, 0x40, 0x19, 0x90, - 0x83, 0x0e, 0xa9, 0x4e, 0x8e, 0x46, 0xb8, 0x94, 0x2e, 0xec, 0xd8, 0x45, 0xc6, 0x71, 0x81, 0xc5, - 0x71, 0x16, 0x55, 0x27, 0x8e, 0xa3, 0x2e, 0x8e, 0x9a, 0xc2, 0xd7, 0x0a, 0x80, 0xb1, 0x78, 0xc6, - 0x2e, 0x58, 0x6a, 0x36, 0xb2, 0xb8, 0x7d, 0xe9, 0xf9, 0x9d, 0xd9, 0xcb, 0x30, 0xce, 0xb1, 0x30, - 0x34, 0x54, 0xc9, 0x0a, 0x23, 0xbc, 0x98, 0x04, 0x21, 0xdc, 0x55, 0xc0, 0x91, 0x58, 0xaf, 0xca, - 0xd7, 0xcc, 0x72, 0x76, 0xef, 0x05, 0x76, 0x25, 0x75, 0x32, 0x3b, 0x09, 0xb5, 0xc2, 0xa0, 0xfe, - 0x17, 0x9d, 0xcc, 0xea, 0x4f, 0xf9, 0x06, 0x8f, 0x42, 0x8c, 0x3d, 0xf2, 0x97, 0xb3, 0x7b, 0xed, - 0xd1, 0x10, 0x53, 0x1e, 0xdc, 0xd9, 0x10, 0x45, 0x3f, 0xa6, 0x40, 0x8c, 0xbd, 0x09, 0x97, 0xb3, - 0x13, 0xfa, 0x68, 0x88, 0x29, 0xef, 0xa6, 0x6c, 0x88, 0x22, 0xe1, 0x21, 0xc4, 0xaf, 0x14, 0x50, - 0x4e, 0x81, 0x18, 0x94, 0x6a, 0x65, 0x32, 0x04, 0x41, 0xa5, 0x9e, 0xdb, 0x91, 0xf9, 0xce, 0x0a, - 0x35, 0xfc, 0x02, 0x13, 0x14, 0xea, 0xb7, 0x0a, 0x38, 0x2e, 0xf1, 0xa7, 0xde, 0xd9, 0xce, 0xa4, - 0x61, 0x4a, 0xf3, 0x28, 0x9d, 0xdf, 0xa9, 0x87, 0x0c, 0xe4, 0x3c, 0x0b, 0x64, 0x15, 0x9d, 0x49, - 0x0c, 0x24, 0x8c, 0xc0, 0x1a, 0x99, 0xa0, 0xee, 0xdf, 0x30, 0x0a, 0x7f, 0x28, 0xe0, 0xff, 0x32, - 0x96, 0x49, 0xee, 0x0c, 0x2f, 0xa6, 0x81, 0x9c, 0xc0, 0xb9, 0x74, 0xe5, 0x31, 0x9c, 0x65, 0xb0, - 0x6b, 0x2c, 0xd8, 0x4b, 0xe8, 0xa5, 0xc4, 0x60, 0xb7, 0xc5, 0x4c, 0xf5, 0x94, 0xa8, 0x45, 0x12, - 0x6b, 0x1b, 0xf7, 0x1e, 0x94, 0x95, 0xfb, 0x0f, 0xca, 0xca, 0xaf, 0x0f, 0xca, 0xca, 0xfb, 0x0f, - 0xcb, 0x53, 0xf7, 0x1f, 0x96, 0xa7, 0x7e, 0x7a, 0x58, 0x9e, 0x7a, 0xe7, 0xb9, 0x91, 0x77, 0x97, - 0x58, 0xc1, 0xc4, 0x4e, 0xf0, 0xb7, 0xd2, 0xbc, 0x65, 0x74, 0x4c, 0xed, 0x76, 0xb8, 0x28, 0x7b, - 0x89, 0x35, 0x76, 0xb3, 0x4f, 0xcd, 0x67, 0xff, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x60, 0xb6, - 0x1c, 0x1f, 0x1a, 0x00, 0x00, + // 1487 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4d, 0x6c, 0x1b, 0x45, + 0x14, 0xce, 0xda, 0x69, 0x69, 0xa6, 0x4d, 0x7f, 0xdc, 0x84, 0x3a, 0x6e, 0xea, 0x49, 0xa7, 0x34, + 0xa4, 0x14, 0xef, 0xd6, 0x29, 0x85, 0xb6, 0x40, 0x51, 0xdd, 0x20, 0x51, 0xa1, 0xa4, 0x68, 0x55, + 0x8a, 0x84, 0x84, 0xac, 0xb5, 0x3d, 0x75, 0xad, 0xc4, 0x3b, 0xd6, 0xee, 0xda, 0xa9, 0x0f, 0x5c, + 0x38, 0x71, 0x44, 0x42, 0xe2, 0x4a, 0xe1, 0x02, 0xe2, 0x04, 0x52, 0x39, 0x22, 0x21, 0x4e, 0x05, + 0x09, 0xa9, 0x02, 0x09, 0x21, 0x24, 0x46, 0x28, 0xe5, 0xe4, 0x03, 0x87, 0x3d, 0x70, 0x46, 0x3b, + 0x33, 0x3b, 0xeb, 0x5d, 0xef, 0x6e, 0x1d, 0xda, 0x1e, 0x40, 0x3d, 0xd9, 0xf3, 0x7e, 0x66, 0xbe, + 0xf7, 0xbd, 0xf7, 0xe6, 0x67, 0xc1, 0xbc, 0xed, 0x58, 0x86, 0x43, 0x6c, 0xcd, 0xc2, 0xcd, 0x96, + 0xed, 0x60, 0x4b, 0xeb, 0x95, 0x35, 0xe7, 0xa6, 0xda, 0xb1, 0x88, 0x43, 0x72, 0x07, 0x85, 0x56, + 0xf5, 0xb5, 0x6a, 0xaf, 0x5c, 0x98, 0x69, 0x92, 0x26, 0x61, 0x7a, 0xcd, 0xfb, 0xc7, 0x4d, 0x0b, + 0x73, 0x4d, 0x42, 0x9a, 0x1b, 0x58, 0x63, 0xa3, 0x5a, 0xf7, 0xba, 0x66, 0x98, 0x7d, 0xa1, 0x9a, + 0x17, 0x2a, 0xa3, 0xd3, 0xd2, 0x0c, 0xd3, 0x24, 0x8e, 0xe1, 0xb4, 0x88, 0x69, 0xfb, 0x8e, 0x75, + 0x62, 0xb7, 0x89, 0x5d, 0xe5, 0x33, 0xf2, 0x81, 0x50, 0xa1, 0x38, 0x70, 0x12, 0x0a, 0xb7, 0x29, + 0x72, 0x0f, 0xad, 0x66, 0xd8, 0x58, 0xeb, 0x95, 0x6b, 0xd8, 0x31, 0xca, 0x5a, 0x9d, 0xb4, 0x4c, + 0xae, 0x47, 0x9f, 0x4c, 0x82, 0xd9, 0x55, 0xbb, 0x79, 0xc9, 0xc2, 0x86, 0x83, 0x75, 0x6c, 0x93, + 0xae, 0x55, 0xc7, 0x6b, 0xa4, 0x81, 0x73, 0xd7, 0xc0, 0x3e, 0x13, 0x3b, 0x9b, 0xc4, 0x5a, 0xaf, + 0x1a, 0x8d, 0x86, 0x85, 0x6d, 0x3b, 0xaf, 0x2c, 0x28, 0x4b, 0x53, 0x95, 0xd2, 0x80, 0xc2, 0xa8, + 0xca, 0xa5, 0xf0, 0xc9, 0xbe, 0xd1, 0xde, 0x38, 0x8f, 0x22, 0x0a, 0xa4, 0xef, 0x15, 0x92, 0x8b, + 0x5c, 0x90, 0x33, 0xc0, 0xce, 0x4e, 0xb7, 0xb6, 0x8e, 0xfb, 0xf9, 0xcc, 0x82, 0xb2, 0xb4, 0x7b, + 0x79, 0x46, 0xe5, 0xf1, 0xab, 0x3e, 0x35, 0xea, 0x45, 0xb3, 0x5f, 0x39, 0x3d, 0xa0, 0x50, 0xd8, + 0xb9, 0x14, 0x4e, 0xf3, 0xb9, 0xf9, 0x18, 0xfd, 0x70, 0xbb, 0x34, 0x23, 0x88, 0xa8, 0x5b, 0xfd, + 0x8e, 0x43, 0xd4, 0x37, 0xba, 0xb5, 0xd7, 0x71, 0x5f, 0x17, 0x0e, 0xb9, 0x35, 0xb0, 0xa3, 0x67, + 0x6c, 0x74, 0x71, 0x3e, 0xcb, 0x56, 0x98, 0x53, 0x85, 0xb5, 0x47, 0x82, 0x2a, 0x48, 0x50, 0x2f, + 0x91, 0x96, 0x59, 0x39, 0x72, 0x87, 0xc2, 0x89, 0x01, 0x85, 0xdc, 0xde, 0xa5, 0x70, 0x0f, 0x5f, + 0x89, 0x0d, 0x91, 0xce, 0xc5, 0xb9, 0x35, 0x30, 0x4d, 0x36, 0x4d, 0x6c, 0x49, 0x22, 0x26, 0x19, + 0x11, 0x27, 0x06, 0x14, 0x86, 0x15, 0x2e, 0x85, 0x33, 0x7c, 0x82, 0x90, 0x18, 0xe9, 0x7b, 0xd8, + 0xd8, 0xa7, 0xa0, 0x0d, 0x76, 0x37, 0xb0, 0x5d, 0xb7, 0x5a, 0x1d, 0x2f, 0xd3, 0xf9, 0x1d, 0x0c, + 0xe5, 0x82, 0x1a, 0x53, 0x4d, 0xea, 0x4a, 0x60, 0x57, 0x39, 0x21, 0xc0, 0x0e, 0x3b, 0xbb, 0x14, + 0xe6, 0xf8, 0x8a, 0x43, 0x42, 0xa4, 0x0f, 0x9b, 0xe4, 0x2e, 0x80, 0x29, 0x93, 0x34, 0x70, 0xd5, + 0xe9, 0x77, 0x70, 0x7e, 0xe7, 0x82, 0xb2, 0x34, 0x5d, 0x39, 0x3a, 0xa0, 0x30, 0x10, 0xba, 0x14, + 0xee, 0x17, 0xd9, 0xf3, 0x45, 0x48, 0xdf, 0xe5, 0xfd, 0xbf, 0xea, 0xfd, 0x85, 0xe0, 0x48, 0x6c, + 0x89, 0xe8, 0xd8, 0xee, 0x10, 0xd3, 0xc6, 0xe8, 0xf7, 0x2c, 0x38, 0x20, 0x2d, 0x56, 0xb1, 0x63, + 0x3c, 0x2e, 0xa0, 0xff, 0x53, 0x01, 0xa1, 0xc3, 0x60, 0x6e, 0x24, 0xbd, 0x32, 0xf9, 0xbf, 0x28, + 0x6c, 0x07, 0xd1, 0x71, 0x9b, 0xf4, 0xc2, 0x3b, 0x48, 0x1b, 0xcc, 0x5a, 0x62, 0x5c, 0x65, 0x85, + 0x15, 0x2e, 0x83, 0x73, 0x03, 0x0a, 0xe3, 0x0d, 0x5c, 0x0a, 0xe7, 0x39, 0xa6, 0x58, 0x35, 0xd2, + 0x0f, 0x5a, 0x43, 0xeb, 0xf8, 0xa4, 0x8c, 0x90, 0x9c, 0x79, 0x20, 0x92, 0x45, 0xd9, 0x8f, 0xc6, + 0x25, 0x23, 0xff, 0x4e, 0x61, 0x65, 0xcf, 0x2d, 0x64, 0xd9, 0xbf, 0x03, 0x0e, 0xb4, 0xb1, 0x63, + 0xc4, 0x45, 0x5c, 0x1e, 0x50, 0x38, 0xaa, 0x74, 0x29, 0xcc, 0x73, 0x38, 0x23, 0x2a, 0xa4, 0xef, + 0x6b, 0x8b, 0x79, 0x1f, 0x55, 0x94, 0x3c, 0xb7, 0xe1, 0x18, 0x64, 0x84, 0x7f, 0x65, 0x58, 0x6e, + 0xdf, 0xec, 0x34, 0xa2, 0xa7, 0x43, 0xa4, 0x02, 0x95, 0x47, 0xbc, 0x85, 0xc5, 0xec, 0x25, 0x99, + 0x87, 0xb1, 0x97, 0x8c, 0xb0, 0x99, 0x7d, 0xb0, 0xc6, 0x0c, 0x6d, 0xb5, 0x93, 0xff, 0x76, 0xab, + 0x1d, 0xe5, 0x5b, 0x66, 0xe4, 0x8b, 0x0c, 0xab, 0x39, 0x6e, 0x21, 0x6b, 0xee, 0x71, 0x36, 0x52, + 0x6a, 0x3b, 0xcc, 0x95, 0x64, 0xf2, 0xeb, 0x0c, 0x98, 0x8f, 0xe5, 0x7a, 0x05, 0x77, 0x88, 0xdd, + 0x72, 0x1e, 0xd9, 0xf9, 0xf5, 0x90, 0x3b, 0x38, 0xd7, 0x06, 0xd3, 0x0d, 0x0e, 0xb9, 0xda, 0xc0, + 0x1b, 0x8e, 0x71, 0xff, 0x43, 0xab, 0x24, 0xf2, 0x1e, 0xf6, 0x0b, 0x96, 0x0b, 0x89, 0x91, 0xbe, + 0x47, 0x8c, 0x57, 0xd8, 0x70, 0x11, 0x3c, 0x95, 0x46, 0x9b, 0xe4, 0xf7, 0xb3, 0xec, 0x10, 0xfb, + 0xaf, 0x5e, 0xbf, 0x8e, 0xeb, 0x4e, 0xab, 0x27, 0xc9, 0x7d, 0x05, 0x4c, 0x59, 0xb8, 0x43, 0x2c, + 0x07, 0x5b, 0x1e, 0xad, 0xd9, 0xa5, 0x29, 0xde, 0x28, 0x52, 0x18, 0x34, 0x8a, 0x14, 0x21, 0x3d, + 0x50, 0xe7, 0x74, 0xb0, 0xd7, 0x1f, 0x54, 0x19, 0x1d, 0xf9, 0x0c, 0x9b, 0xe5, 0xe4, 0x80, 0xc2, + 0x88, 0xc6, 0xa5, 0x70, 0x36, 0x3c, 0x15, 0x97, 0x23, 0x7d, 0xda, 0x17, 0x5c, 0xf1, 0xc6, 0x71, + 0x19, 0xcf, 0x3e, 0x8c, 0x8c, 0x7f, 0xa4, 0x80, 0xfd, 0xd8, 0x67, 0xa0, 0xea, 0x90, 0x75, 0x6c, + 0xfa, 0x57, 0x80, 0x75, 0x2f, 0x15, 0xbf, 0x51, 0xb8, 0xd8, 0x6c, 0x39, 0x37, 0xba, 0x35, 0xb5, + 0x4e, 0xda, 0xe2, 0x92, 0x2f, 0x7e, 0x4a, 0x76, 0x63, 0x5d, 0xf3, 0xb6, 0x09, 0x5b, 0xbd, 0x6c, + 0x3a, 0x03, 0x0a, 0x47, 0x66, 0x72, 0x29, 0x3c, 0xc4, 0x81, 0x44, 0x35, 0xe8, 0xa7, 0xdb, 0x25, + 0x20, 0xaa, 0xe0, 0xb2, 0xe9, 0xe8, 0xfb, 0xa4, 0xc1, 0x55, 0xa6, 0x3f, 0x3f, 0xf9, 0xfe, 0x2d, + 0x38, 0x81, 0x8e, 0x81, 0xa3, 0x89, 0x89, 0x92, 0xe9, 0xfc, 0x2a, 0x03, 0xf2, 0x23, 0xcd, 0xf4, + 0xb8, 0x55, 0x52, 0x5b, 0x05, 0x81, 0x85, 0x24, 0xca, 0x24, 0xaf, 0x9f, 0x4e, 0x82, 0xc3, 0xab, + 0x76, 0x33, 0xd8, 0x9e, 0xbc, 0xad, 0xda, 0x62, 0x4f, 0xc0, 0x6b, 0xc4, 0xc1, 0xb9, 0x77, 0xc1, + 0x5c, 0xdd, 0x30, 0x1b, 0x2d, 0x6f, 0x8e, 0x6a, 0x3c, 0xc9, 0x17, 0x07, 0x14, 0x26, 0x1b, 0xb9, + 0x14, 0x2e, 0x70, 0xac, 0x89, 0x26, 0x48, 0x3f, 0x24, 0x75, 0x6b, 0xe1, 0x0c, 0x74, 0x41, 0xa0, + 0xaa, 0xc6, 0xe5, 0xe2, 0xe5, 0x01, 0x85, 0x49, 0x26, 0x2e, 0x85, 0xc5, 0xe8, 0xd2, 0x91, 0xfc, + 0xcc, 0x4a, 0xcd, 0x95, 0xe1, 0x44, 0xbd, 0x00, 0x9e, 0x20, 0x9d, 0x96, 0xe9, 0x1d, 0x66, 0x5e, + 0x8a, 0x76, 0x55, 0x8e, 0x0c, 0x28, 0xf4, 0x45, 0x2e, 0x85, 0x7b, 0x45, 0xb2, 0xb9, 0x00, 0xe9, + 0xbe, 0xca, 0xbb, 0x73, 0xf6, 0x88, 0xd7, 0xe1, 0x51, 0xaa, 0x26, 0x83, 0x3b, 0x67, 0xac, 0x41, + 0x70, 0xe7, 0x8c, 0x55, 0x23, 0xfd, 0x20, 0x93, 0x47, 0xe8, 0xc1, 0x80, 0x8b, 0x23, 0xd4, 0xec, + 0x60, 0x8b, 0x9d, 0x19, 0x50, 0x18, 0xa7, 0x76, 0x29, 0x2c, 0x0c, 0x2f, 0x15, 0xa1, 0xe4, 0x00, + 0x93, 0x0e, 0xd3, 0x81, 0x8e, 0x83, 0x63, 0x29, 0x35, 0x22, 0x6b, 0xe9, 0xae, 0x02, 0x16, 0x57, + 0xed, 0xe6, 0x5b, 0x2d, 0xe7, 0x46, 0xc3, 0x32, 0x36, 0xe3, 0xec, 0xff, 0x63, 0x1d, 0x8b, 0x4e, + 0x01, 0x75, 0xbc, 0x88, 0x7c, 0x12, 0x96, 0x3f, 0xde, 0x0f, 0xb2, 0xab, 0x76, 0x33, 0xf7, 0xa5, + 0x02, 0x0e, 0xbf, 0x66, 0x98, 0x8d, 0x0d, 0x1c, 0xff, 0x7d, 0xe3, 0x99, 0xd8, 0xeb, 0x51, 0xac, + 0x6d, 0x61, 0x79, 0x7c, 0x5b, 0x99, 0x8c, 0xf2, 0x7b, 0x3f, 0xff, 0xf9, 0x61, 0xe6, 0x24, 0x3a, + 0xa1, 0xc5, 0x7d, 0xa6, 0xa9, 0x33, 0xc7, 0x6a, 0xe8, 0x7d, 0x13, 0x86, 0x1c, 0xf3, 0xa0, 0x4a, + 0x84, 0x3c, 0x6a, 0x9b, 0x0c, 0x39, 0xe5, 0x41, 0x93, 0x0e, 0xd9, 0x62, 0x8e, 0x69, 0x90, 0x63, + 0xde, 0x09, 0x89, 0x90, 0x47, 0x6d, 0x93, 0x21, 0xa7, 0xdc, 0x87, 0xd3, 0x21, 0x77, 0x99, 0x63, + 0x04, 0xf2, 0x8f, 0x0a, 0x40, 0x29, 0x90, 0xfd, 0x0e, 0x29, 0x8f, 0x8f, 0x46, 0xb8, 0x14, 0xce, + 0x6d, 0xdb, 0x45, 0xc6, 0x71, 0x8e, 0xc5, 0x71, 0x1a, 0x95, 0xc7, 0x8e, 0xa3, 0x2a, 0x8e, 0x9a, + 0xdc, 0xb7, 0x0a, 0x80, 0x91, 0x78, 0x46, 0xae, 0x5b, 0x6a, 0x3a, 0xb2, 0xa8, 0x7d, 0xe1, 0xf9, + 0xed, 0xd9, 0xcb, 0x30, 0xce, 0xb0, 0x30, 0x34, 0x54, 0x4a, 0x0b, 0x23, 0xb8, 0xa6, 0xf8, 0x21, + 0xdc, 0x52, 0xc0, 0xa1, 0x48, 0xaf, 0xca, 0xb7, 0xcd, 0x62, 0x7a, 0xef, 0xf9, 0x76, 0x05, 0x75, + 0x3c, 0x3b, 0x09, 0xb5, 0xc4, 0xa0, 0x3e, 0x8d, 0x8e, 0xa7, 0xf5, 0xa7, 0x7c, 0x91, 0x87, 0x21, + 0x46, 0x9e, 0xfc, 0x8b, 0xe9, 0xbd, 0x76, 0x7f, 0x88, 0x09, 0xcf, 0xef, 0x74, 0x88, 0xa2, 0x1f, + 0x13, 0x20, 0x46, 0x5e, 0x88, 0x8b, 0xe9, 0x09, 0xbd, 0x3f, 0xc4, 0x84, 0x57, 0x54, 0x3a, 0x44, + 0x91, 0xf0, 0x00, 0xe2, 0x37, 0x0a, 0x28, 0x26, 0x40, 0xf4, 0x4b, 0xb5, 0x34, 0x1e, 0x02, 0xbf, + 0x52, 0xcf, 0x6c, 0xcb, 0x7c, 0x7b, 0x85, 0x1a, 0x7c, 0x8f, 0xf1, 0x0b, 0xf5, 0x7b, 0x05, 0x1c, + 0x95, 0xf8, 0x13, 0xef, 0x6c, 0xa7, 0x92, 0x30, 0x25, 0x79, 0x14, 0xce, 0x6e, 0xd7, 0x43, 0x06, + 0x72, 0x96, 0x05, 0xb2, 0x8c, 0x4e, 0xc5, 0x06, 0x12, 0x44, 0x60, 0x0d, 0x4d, 0x50, 0xf5, 0x6e, + 0x18, 0xb9, 0xbf, 0x15, 0xf0, 0xac, 0x8c, 0x65, 0x9c, 0x3b, 0xc3, 0x8b, 0x49, 0x20, 0xc7, 0x70, + 0x2e, 0x5c, 0x7a, 0x00, 0x67, 0x19, 0xec, 0x0a, 0x0b, 0xf6, 0x02, 0x7a, 0x29, 0x36, 0xd8, 0x4d, + 0x31, 0x53, 0x35, 0x21, 0x6a, 0x91, 0xc4, 0x8a, 0xfe, 0xf9, 0x56, 0x51, 0xb9, 0xb3, 0x55, 0x54, + 0xee, 0x6e, 0x15, 0x95, 0x3f, 0xb6, 0x8a, 0xca, 0x07, 0xf7, 0x8a, 0x13, 0x77, 0xef, 0x15, 0x27, + 0x7e, 0xbd, 0x57, 0x9c, 0x78, 0xfb, 0xb9, 0xa1, 0x97, 0x98, 0x58, 0xc5, 0xc4, 0x8e, 0xff, 0xb7, + 0x54, 0xbf, 0x61, 0xb4, 0x4c, 0xed, 0x66, 0xb0, 0x30, 0x7b, 0x9b, 0xd5, 0x76, 0xb2, 0x8f, 0xcf, + 0xa7, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x7b, 0x69, 0x65, 0x39, 0x31, 0x1a, 0x00, 0x00, +} + +func (this *MsgCreateResourceNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgCreateResourceNode) + if !ok { + that2, ok := that.(MsgCreateResourceNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if !this.Pubkey.Equal(that1.Pubkey) { + return false + } + if !this.Value.Equal(&that1.Value) { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + if !this.Description.Equal(&that1.Description) { + return false + } + if this.NodeType != that1.NodeType { + return false + } + return true +} +func (this *MsgCreateResourceNodeResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgCreateResourceNodeResponse) + if !ok { + that2, ok := that.(MsgCreateResourceNodeResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgCreateMetaNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgCreateMetaNode) + if !ok { + that2, ok := that.(MsgCreateMetaNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if !this.Pubkey.Equal(that1.Pubkey) { + return false + } + if !this.Value.Equal(&that1.Value) { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + if !this.Description.Equal(&that1.Description) { + return false + } + return true +} +func (this *MsgCreateMetaNodeResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgCreateMetaNodeResponse) + if !ok { + that2, ok := that.(MsgCreateMetaNodeResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgRemoveResourceNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgRemoveResourceNode) + if !ok { + that2, ok := that.(MsgRemoveResourceNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.ResourceNodeAddress != that1.ResourceNodeAddress { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + return true +} +func (this *MsgRemoveResourceNodeResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgRemoveResourceNodeResponse) + if !ok { + that2, ok := that.(MsgRemoveResourceNodeResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgRemoveMetaNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgRemoveMetaNode) + if !ok { + that2, ok := that.(MsgRemoveMetaNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.MetaNodeAddress != that1.MetaNodeAddress { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + return true +} +func (this *MsgRemoveMetaNodeResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgRemoveMetaNodeResponse) + if !ok { + that2, ok := that.(MsgRemoveMetaNodeResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgUpdateResourceNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateResourceNode) + if !ok { + that2, ok := that.(MsgUpdateResourceNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Description.Equal(&that1.Description) { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + if this.NodeType != that1.NodeType { + return false + } + return true +} +func (this *MsgUpdateResourceNodeResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateResourceNodeResponse) + if !ok { + that2, ok := that.(MsgUpdateResourceNodeResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgUpdateMetaNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateMetaNode) + if !ok { + that2, ok := that.(MsgUpdateMetaNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Description.Equal(&that1.Description) { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + return true +} +func (this *MsgUpdateMetaNodeResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateMetaNodeResponse) + if !ok { + that2, ok := that.(MsgUpdateMetaNodeResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgUpdateResourceNodeDeposit) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateResourceNodeDeposit) + if !ok { + that2, ok := that.(MsgUpdateResourceNodeDeposit) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + if !this.DepositDelta.Equal(&that1.DepositDelta) { + return false + } + return true +} +func (this *MsgUpdateResourceNodeDepositResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateResourceNodeDepositResponse) + if !ok { + that2, ok := that.(MsgUpdateResourceNodeDepositResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgUpdateEffectiveDeposit) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateEffectiveDeposit) + if !ok { + that2, ok := that.(MsgUpdateEffectiveDeposit) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.Reporters) != len(that1.Reporters) { + return false + } + for i := range this.Reporters { + if this.Reporters[i] != that1.Reporters[i] { + return false + } + } + if len(this.ReporterOwner) != len(that1.ReporterOwner) { + return false + } + for i := range this.ReporterOwner { + if this.ReporterOwner[i] != that1.ReporterOwner[i] { + return false + } + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if !this.EffectiveTokens.Equal(that1.EffectiveTokens) { + return false + } + return true +} +func (this *MsgUpdateEffectiveDepositResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateEffectiveDepositResponse) + if !ok { + that2, ok := that.(MsgUpdateEffectiveDepositResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgUpdateMetaNodeDeposit) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateMetaNodeDeposit) + if !ok { + that2, ok := that.(MsgUpdateMetaNodeDeposit) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + if !this.DepositDelta.Equal(&that1.DepositDelta) { + return false + } + return true +} +func (this *MsgUpdateMetaNodeDepositResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateMetaNodeDepositResponse) + if !ok { + that2, ok := that.(MsgUpdateMetaNodeDepositResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgMetaNodeRegistrationVote) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgMetaNodeRegistrationVote) + if !ok { + that2, ok := that.(MsgMetaNodeRegistrationVote) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.CandidateNetworkAddress != that1.CandidateNetworkAddress { + return false + } + if this.CandidateOwnerAddress != that1.CandidateOwnerAddress { + return false + } + if this.Opinion != that1.Opinion { + return false + } + if this.VoterNetworkAddress != that1.VoterNetworkAddress { + return false + } + if this.VoterOwnerAddress != that1.VoterOwnerAddress { + return false + } + return true +} +func (this *MsgMetaNodeRegistrationVoteResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgMetaNodeRegistrationVoteResponse) + if !ok { + that2, ok := that.(MsgMetaNodeRegistrationVoteResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgWithdrawMetaNodeRegistrationDeposit) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgWithdrawMetaNodeRegistrationDeposit) + if !ok { + that2, ok := that.(MsgWithdrawMetaNodeRegistrationDeposit) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + return true +} +func (this *MsgWithdrawMetaNodeRegistrationDepositResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgWithdrawMetaNodeRegistrationDepositResponse) + if !ok { + that2, ok := that.(MsgWithdrawMetaNodeRegistrationDepositResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/register/types/tx.pb.gw.go b/x/register/types/tx.pb.gw.go index b4149c07..1962e55d 100644 --- a/x/register/types/tx.pb.gw.go +++ b/x/register/types/tx.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join var ( filter_Msg_HandleMsgCreateResourceNode_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -430,12 +432,14 @@ func local_request_Msg_HandleMsgWithdrawMetaNodeRegistrationDeposit_0(ctx contex // RegisterMsgHandlerServer registers the http handlers for service Msg to "mux". // UnaryRPC :call MsgServer 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 (such as grpc.SendHeader, etc) to stop working. Consider using RegisterMsgHandlerFromEndpoint instead. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterMsgHandlerFromEndpoint instead. func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server MsgServer) error { mux.Handle("POST", pattern_Msg_HandleMsgCreateResourceNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -443,6 +447,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgCreateResourceNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -456,6 +461,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgRemoveResourceNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -463,6 +470,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgRemoveResourceNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -476,6 +484,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgUpdateResourceNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -483,6 +493,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgUpdateResourceNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -496,6 +507,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgUpdateResourceNodeDeposit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -503,6 +516,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgUpdateResourceNodeDeposit_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -516,6 +530,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgUpdateEffectiveDeposit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -523,6 +539,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgUpdateEffectiveDeposit_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -536,6 +553,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgCreateMetaNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -543,6 +562,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgCreateMetaNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -556,6 +576,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgRemoveMetaNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -563,6 +585,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgRemoveMetaNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -576,6 +599,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgUpdateMetaNode_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -583,6 +608,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgUpdateMetaNode_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -596,6 +622,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgUpdateMetaNodeDeposit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -603,6 +631,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgUpdateMetaNodeDeposit_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -616,6 +645,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgMetaNodeRegistrationVote_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -623,6 +654,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgMetaNodeRegistrationVote_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -636,6 +668,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgWithdrawMetaNodeRegistrationDeposit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -643,6 +677,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgWithdrawMetaNodeRegistrationDeposit_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -918,27 +953,27 @@ func RegisterMsgHandlerClient(ctx context.Context, mux *runtime.ServeMux, client } var ( - pattern_Msg_HandleMsgCreateResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "create_resource_node"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgCreateResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "create_resource_node"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgRemoveResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "remove_resource_node"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgRemoveResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "remove_resource_node"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgUpdateResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_resource_node"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgUpdateResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_resource_node"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgUpdateResourceNodeDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_resource_node_deposit"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgUpdateResourceNodeDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_resource_node_deposit"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgUpdateEffectiveDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_effective_deposit"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgUpdateEffectiveDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_effective_deposit"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgCreateMetaNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "create_meta_node"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgCreateMetaNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "create_meta_node"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgRemoveMetaNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "remove_meta_node"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgRemoveMetaNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "remove_meta_node"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgUpdateMetaNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_meta_node"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgUpdateMetaNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_meta_node"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgUpdateMetaNodeDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_meta_node_deposit"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgUpdateMetaNodeDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "update_meta_node_deposit"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgMetaNodeRegistrationVote_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "meta_node_registration_vote"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgMetaNodeRegistrationVote_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "meta_node_registration_vote"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgWithdrawMetaNodeRegistrationDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "withdraw_meta_node_registration_deposit"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgWithdrawMetaNodeRegistrationDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "register", "v1", "withdraw_meta_node_registration_deposit"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( diff --git a/x/register/types/unbonding_node.go b/x/register/types/unbonding_node.go index 1229c874..ad92e5a3 100644 --- a/x/register/types/unbonding_node.go +++ b/x/register/types/unbonding_node.go @@ -3,7 +3,7 @@ package types import ( "time" - sdk "github.com/cosmos/cosmos-sdk/types" + sdkmath "cosmossdk.io/math" stratos "github.com/stratosnet/stratos-chain/types" ) @@ -15,7 +15,7 @@ func (e UnbondingNodeEntry) IsMature(currentTime time.Time) bool { // NewUnbondingNode - create a new unbonding Node object func NewUnbondingNode(networkAddr stratos.SdsAddress, isMetaNode bool, creationHeight int64, minTime time.Time, - balance sdk.Int) UnbondingNode { + balance sdkmath.Int) UnbondingNode { entry := NewUnbondingNodeEntry(creationHeight, minTime, balance) return UnbondingNode{ @@ -26,7 +26,7 @@ func NewUnbondingNode(networkAddr stratos.SdsAddress, isMetaNode bool, creationH } // NewUnbondingNodeEntry - create a new unbonding Node object -func NewUnbondingNodeEntry(creationHeight int64, completionTime time.Time, balance sdk.Int) UnbondingNodeEntry { +func NewUnbondingNodeEntry(creationHeight int64, completionTime time.Time, balance sdkmath.Int) UnbondingNodeEntry { return UnbondingNodeEntry{ CreationHeight: creationHeight, CompletionTime: completionTime, @@ -36,7 +36,7 @@ func NewUnbondingNodeEntry(creationHeight int64, completionTime time.Time, balan } // AddEntry - append entry to the unbonding Node -func (un *UnbondingNode) AddEntry(creationHeight int64, minTime time.Time, balance sdk.Int) { +func (un *UnbondingNode) AddEntry(creationHeight int64, minTime time.Time, balance sdkmath.Int) { entry := NewUnbondingNodeEntry(creationHeight, minTime, balance) un.Entries = append(un.Entries, &entry) } diff --git a/x/sds/abci.go b/x/sds/abci.go index 7e1428a1..ccbade31 100644 --- a/x/sds/abci.go +++ b/x/sds/abci.go @@ -1,19 +1,20 @@ package sds import ( + abci "github.com/cometbft/cometbft/abci/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/x/sds/keeper" - abci "github.com/tendermint/tendermint/abci/types" - // abci "github.com/tendermint/tendermint/abci/types" ) // BeginBlocker check for infraction evidence or downtime of validators // on every begin block -func BeginBlocker(ctx sdk.Context, req abci.RequestBeginBlock, k keeper.Keeper) { - // TODO: fill out if your application requires beginblock, if not you can delete this function +func BeginBlocker(_ sdk.Context, _ abci.RequestBeginBlock, _ keeper.Keeper) { + // TODO: fill out if your application requires beginBlock, if not you can delete this function } // EndBlocker called every block, process inflation, update validator set. -func EndBlocker(ctx sdk.Context, k keeper.Keeper) { - // TODO: fill out if your application requires endblock, if not you can delete this function +func EndBlocker(_ sdk.Context, _ abci.RequestEndBlock, _ keeper.Keeper) []abci.ValidatorUpdate { + return []abci.ValidatorUpdate{} } diff --git a/x/sds/client/cli/query.go b/x/sds/client/cli/query.go index 212c38b6..3f376db2 100644 --- a/x/sds/client/cli/query.go +++ b/x/sds/client/cli/query.go @@ -4,11 +4,13 @@ import ( "fmt" "strings" + "github.com/spf13/cobra" + + "cosmossdk.io/errors" "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/client/flags" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/version" - "github.com/spf13/cobra" + "github.com/stratosnet/stratos-chain/x/sds/types" ) @@ -92,7 +94,7 @@ $ %s query sds upload c03661732294feb49caf6dc16c7cbb2534986d73 queryFileHash := strings.TrimSpace(args[0][:]) if len(queryFileHash) == 0 { - return sdkerrors.Wrap(types.ErrEmptyFileHash, "Missing file hash") + return errors.Wrap(types.ErrEmptyFileHash, "Missing file hash") } result, err := queryClient.Fileupload(cmd.Context(), &types.QueryFileUploadRequest{ diff --git a/x/sds/client/cli/tx.go b/x/sds/client/cli/tx.go index 28e933dc..09f5ba0f 100644 --- a/x/sds/client/cli/tx.go +++ b/x/sds/client/cli/tx.go @@ -44,14 +44,12 @@ func FileUploadTxCmd() *cobra.Command { return err } - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildFileuploadMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildFileuploadMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } @@ -88,14 +86,12 @@ func PrepayTxCmd() *cobra.Command { clientCtx := cliCtx.WithFrom(args[0]).WithFromAddress(fromAddr).WithFromName(fromName) - txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()). - WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever) - txf, msg, err := newBuildPrepayMsg(clientCtx, txf, cmd.Flags()) + msg, err := newBuildPrepayMsg(clientCtx, cmd.Flags()) if err != nil { return err } - return tx.GenerateOrBroadcastTxWithFactory(clientCtx, txf, msg) + return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) }, } flags.AddTxFlagsToCmd(cmd) @@ -103,28 +99,28 @@ func PrepayTxCmd() *cobra.Command { } // makes a new newBuildFileuploadMsg -func newBuildFileuploadMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgFileUpload, error) { +func newBuildFileuploadMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgFileUpload, error) { fileHash, err := fs.GetString(FlagFileHash) if err != nil { - return txf, nil, err + return nil, err } flagReporterStr, err := fs.GetString(FlagReporter) if err != nil { - return txf, nil, err + return nil, err } _, err = stratos.SdsAddressFromBech32(flagReporterStr) if err != nil { - return txf, nil, err + return nil, err } flagUploaderStr, err := fs.GetString(FlagUploader) if err != nil { - return txf, nil, err + return nil, err } _, err = sdk.AccAddressFromBech32(flagUploaderStr) if err != nil { - return txf, nil, err + return nil, err } msg := types.NewMsgUpload( @@ -134,23 +130,23 @@ func newBuildFileuploadMsg(clientCtx client.Context, txf tx.Factory, fs *flag.Fl flagUploaderStr, ) - return txf, msg, nil + return msg, nil } // makes a new newBuildPrepayMsg -func newBuildPrepayMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet) (tx.Factory, *types.MsgPrepay, error) { +func newBuildPrepayMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgPrepay, error) { beneficiary, err := sdk.AccAddressFromBech32(fs.Arg(1)) if err != nil { - return txf, nil, err + return nil, err } amount, err := sdk.ParseCoinNormalized(fs.Arg(2)) if err != nil { - return txf, nil, err + return nil, err } // build and sign the transaction, then broadcast to Tendermint msg := types.NewMsgPrepay(clientCtx.GetFromAddress().String(), beneficiary.String(), sdk.NewCoins(amount)) - return txf, msg, nil + return msg, nil } diff --git a/x/sds/client/common/common.go b/x/sds/client/common/common.go deleted file mode 100644 index 1fb8c3ad..00000000 --- a/x/sds/client/common/common.go +++ /dev/null @@ -1,31 +0,0 @@ -package common - -import ( - "fmt" - - "github.com/cosmos/cosmos-sdk/client" - sdk "github.com/cosmos/cosmos-sdk/types" - sdstypes "github.com/stratosnet/stratos-chain/x/sds/types" -) - -// QuerySimulatePrepay queries the ongoing price for prepay -func QuerySimulatePrepay(clientCtx client.Context, amtToPrepay sdk.Int) ([]byte, int64, error) { - amtByteArray, err := amtToPrepay.MarshalJSON() - if err != nil { - return nil, 0, fmt.Errorf("invalid amount, please specify a valid amount to simulate prepay %w", err) - } - route := fmt.Sprintf("custom/%s/%s", sdstypes.QuerierRoute, sdstypes.QuerySimulatePrepay) - return clientCtx.QueryWithData(route, amtByteArray) -} - -// QueryCurrNozPrice queries the current price for noz -func QueryCurrNozPrice(clientCtx client.Context) ([]byte, int64, error) { - route := fmt.Sprintf("custom/%s/%s", sdstypes.QuerierRoute, sdstypes.QueryCurrNozPrice) - return clientCtx.QueryWithData(route, nil) -} - -// QueryNozSupply QueryCurrNozPrice queries the current price for noz -func QueryNozSupply(clientCtx client.Context) ([]byte, int64, error) { - route := fmt.Sprintf("custom/%s/%s", sdstypes.QuerierRoute, sdstypes.QueryNozSupply) - return clientCtx.QueryWithData(route, nil) -} diff --git a/x/sds/client/rest/query.go b/x/sds/client/rest/query.go deleted file mode 100644 index 5075c3de..00000000 --- a/x/sds/client/rest/query.go +++ /dev/null @@ -1,171 +0,0 @@ -package rest - -import ( - "encoding/json" - "fmt" - "net/http" - - "github.com/cosmos/cosmos-sdk/client" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/cosmos/cosmos-sdk/types/rest" - "github.com/gorilla/mux" - "github.com/ipfs/go-cid" - "github.com/stratosnet/stratos-chain/x/sds/client/common" - "github.com/stratosnet/stratos-chain/x/sds/types" -) - -func sdsQueryRoutes(clientCtx client.Context, r *mux.Router) { - r.HandleFunc("/sds/fileUpload/{fileHash}", queryFileUploadHandlerFn(clientCtx, types.QueryFileUpload)).Methods("GET") - r.HandleFunc("/sds/simPrepay/{amtToPrepay}", SimulatePrepayHandlerFn(clientCtx)).Methods("GET") - r.HandleFunc("/sds/nozPrice", NozPriceHandlerFn(clientCtx)).Methods("GET") - r.HandleFunc("/sds/nozSupply", NozSupplyHandlerFn(clientCtx)).Methods("GET") - r.HandleFunc("/sds/params", sdsParamsHandlerFn(clientCtx, types.QueryParams)).Methods("GET") -} - -func queryFileUploadHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - fileHash := mux.Vars(r)["fileHash"] - if len(fileHash) == 0 { - return - } - _, err := cid.Decode(fileHash) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - params := types.NewQueryFileUploadParams(fileHash) - - bz, err := cliCtx.LegacyAmino.MarshalJSON(params) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.QueryWithData(route, bz) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// GET request handler to query params of POT module -func sdsParamsHandlerFn(clientCtx client.Context, queryPath string) http.HandlerFunc { - - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - route := fmt.Sprintf("custom/%s/%s", types.QuerierRoute, queryPath) - res, height, err := cliCtx.Query(route) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, res) - } -} - -// SimulatePrepayHandlerFn HTTP request handler to query the simulated purchased amt of prepay -func SimulatePrepayHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - amtToPrepay, ok := checkAmtToPrepayVar(w, r) - if !ok { - return - } - resp, height, err := common.QuerySimulatePrepay(cliCtx, amtToPrepay) - - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - var simulatePrepayOut sdk.Int - err = simulatePrepayOut.UnmarshalJSON(resp) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, simulatePrepayOut) - } -} - -// NozPriceHandlerFn HTTP request handler to query ongoing noz price -func NozPriceHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - resp, height, err := common.QueryCurrNozPrice(cliCtx) - - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - var nozPrice sdk.Dec - err = nozPrice.UnmarshalJSON(resp) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, nozPrice) - } -} - -// NozSupplyHandlerFn HTTP request handler to query noz supply details -func NozSupplyHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - resp, height, err := common.QueryNozSupply(cliCtx) - - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - type Supply struct { - Remaining sdk.Int - Total sdk.Int - } - var nozSupply Supply - err = json.Unmarshal(resp, &nozSupply) - if err != nil { - rest.WriteErrorResponse(w, http.StatusInternalServerError, err.Error()) - return - } - cliCtx = cliCtx.WithHeight(height) - rest.PostProcessResponse(w, cliCtx, nozSupply) - } -} - -func checkAmtToPrepayVar(w http.ResponseWriter, r *http.Request) (sdk.Int, bool) { - prepayAmtStr := mux.Vars(r)["amtToPrepay"] - amtToPrepay, ok := sdk.NewIntFromString(prepayAmtStr) - if ok != true { - rest.WriteErrorResponse(w, http.StatusBadRequest, sdkerrors.ErrInvalidRequest.Error()) - return sdk.Int{}, false - } - return amtToPrepay, true -} diff --git a/x/sds/client/rest/rest.go b/x/sds/client/rest/rest.go deleted file mode 100644 index 540a085b..00000000 --- a/x/sds/client/rest/rest.go +++ /dev/null @@ -1,32 +0,0 @@ -package rest - -import ( - "github.com/gorilla/mux" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/rest" - sdk "github.com/cosmos/cosmos-sdk/types" - sdktrest "github.com/cosmos/cosmos-sdk/types/rest" -) - -// RegisterHandlers registers register-related REST handlers to a router -func RegisterHandlers(clientCtx client.Context, rtr *mux.Router) { - r := rest.WithHTTPDeprecationHeaders(rtr) - sdsQueryRoutes(clientCtx, r) - sdsTxHandlers(clientCtx, r) -} - -// FileUploadReq defines the properties of a file upload request's body. -type FileUploadReq struct { - BaseReq sdktrest.BaseReq `json:"base_req" yaml:"base_req"` - Reporter string `json:"reporter" yaml:"reporter"` - FileHash string `json:"file_hash" yaml:"file_hash"` - Uploader string `json:"uploader" yaml:"uploader"` -} - -// PrepayReq defines the properties of a prepay request's body. -type PrepayReq struct { - BaseReq sdktrest.BaseReq `json:"base_req" yaml:"base_req"` - Beneficiary string `json:"beneficiary" yaml:"beneficiary"` - Amount sdk.Coins `json:"amount" yaml:"amount"` -} diff --git a/x/sds/client/rest/tx.go b/x/sds/client/rest/tx.go deleted file mode 100644 index 1f9d1fe2..00000000 --- a/x/sds/client/rest/tx.go +++ /dev/null @@ -1,103 +0,0 @@ -package rest - -import ( - "encoding/hex" - "net/http" - - "github.com/gorilla/mux" - - "github.com/cosmos/cosmos-sdk/client" - "github.com/cosmos/cosmos-sdk/client/tx" - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/rest" - - stratos "github.com/stratosnet/stratos-chain/types" - "github.com/stratosnet/stratos-chain/x/sds/types" -) - -func sdsTxHandlers(cliCtx client.Context, r *mux.Router) { - r.HandleFunc("/sds/file/upload", postFileUploadHandlerFn(cliCtx)).Methods("POST") - r.HandleFunc("/sds/prepay", postPrepayHandlerFn(cliCtx)).Methods("POST") -} - -// postFileUploadHandlerFn - http request handler for file uploading. -func postFileUploadHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - - var req FileUploadReq - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - fromAddr, err := sdk.AccAddressFromBech32(req.BaseReq.From) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - reporter, err := stratos.SdsAddressFromBech32(req.Reporter) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - fileHash := req.FileHash - _, err = hex.DecodeString(fileHash) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - uploader, err := sdk.AccAddressFromBech32(req.Uploader) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - msg := types.NewMsgUpload(fileHash, fromAddr.String(), reporter.String(), uploader.String()) - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} - -// postPrepayHandlerFn - http request handler for prepay. -func postPrepayHandlerFn(clientCtx client.Context) http.HandlerFunc { - return func(w http.ResponseWriter, r *http.Request) { - cliCtx, ok := rest.ParseQueryHeightOrReturnBadRequest(w, clientCtx, r) - if !ok { - return - } - var req PrepayReq - if !rest.ReadRESTReq(w, r, cliCtx.LegacyAmino, &req) { - return - } - - req.BaseReq = req.BaseReq.Sanitize() - if !req.BaseReq.ValidateBasic(w) { - return - } - - fromAddr, err := sdk.AccAddressFromBech32(req.BaseReq.From) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - beneficiary, err := sdk.AccAddressFromBech32(req.Beneficiary) - if err != nil { - rest.WriteErrorResponse(w, http.StatusBadRequest, err.Error()) - return - } - - msg := types.NewMsgPrepay(fromAddr.String(), beneficiary.String(), req.Amount) - tx.WriteGeneratedTxResponse(cliCtx, w, req.BaseReq, msg) - } -} diff --git a/x/sds/handler.go b/x/sds/handler.go index a947c606..1a04872a 100644 --- a/x/sds/handler.go +++ b/x/sds/handler.go @@ -3,6 +3,7 @@ package sds import ( "fmt" + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/stratosnet/stratos-chain/x/sds/keeper" @@ -25,7 +26,7 @@ func NewHandler(k keeper.Keeper) sdk.Handler { default: errMsg := fmt.Sprintf("unrecognized %s message type: %T", types.ModuleName, msg) - return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) + return nil, errors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) } } } diff --git a/x/sds/keeper/keeper.go b/x/sds/keeper/keeper.go index 53ae09f0..0c1f9f23 100644 --- a/x/sds/keeper/keeper.go +++ b/x/sds/keeper/keeper.go @@ -1,22 +1,19 @@ package keeper import ( - "errors" - "fmt" - "github.com/kelindar/bitmap" - "github.com/tendermint/tendermint/libs/log" + "github.com/cometbft/cometbft/libs/log" + "cosmossdk.io/errors" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - bankKeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" stratos "github.com/stratosnet/stratos-chain/types" - potKeeper "github.com/stratosnet/stratos-chain/x/pot/keeper" - registerKeeper "github.com/stratosnet/stratos-chain/x/register/keeper" registertypes "github.com/stratosnet/stratos-chain/x/register/types" "github.com/stratosnet/stratos-chain/x/sds/types" ) @@ -24,12 +21,16 @@ import ( // Keeper encodes/decodes files using the go-amino (binary) // encoding/decoding library. type Keeper struct { - key sdk.StoreKey + key storetypes.StoreKey cdc codec.Codec paramSpace paramtypes.Subspace - bankKeeper bankKeeper.Keeper - registerKeeper registerKeeper.Keeper - potKeeper potKeeper.Keeper + bankKeeper types.BankKeeper + registerKeeper types.RegisterKeeper + potKeeper types.PotKeeper + + // the address capable of executing a MsgUpdateParams message. Typically, this + // should be the x/gov module account. + authority string } // NewKeeper returns a new sdk.NewKeeper that uses go-amino to @@ -37,25 +38,25 @@ type Keeper struct { // nolint func NewKeeper( cdc codec.Codec, - key sdk.StoreKey, - paramSpace paramtypes.Subspace, - bankKeeper bankKeeper.Keeper, - registerKeeper registerKeeper.Keeper, - potKeeper potKeeper.Keeper, + key storetypes.StoreKey, + bankKeeper types.BankKeeper, + registerKeeper types.RegisterKeeper, + potKeeper types.PotKeeper, + authority string, ) Keeper { return Keeper{ key: key, cdc: cdc, - paramSpace: paramSpace.WithKeyTable(types.ParamKeyTable()), bankKeeper: bankKeeper, registerKeeper: registerKeeper, potKeeper: potKeeper, + authority: authority, } } // Logger returns a module-specific logger. func (k Keeper) Logger(ctx sdk.Context) log.Logger { - return ctx.Logger().With("module", fmt.Sprintf("x/%s", types.ModuleName)) + return ctx.Logger().With("module", "x/"+types.ModuleName) } func (k Keeper) FileUpload(ctx sdk.Context, fileHash string, reporter stratos.SdsAddress, reporterOwner, uploader sdk.AccAddress) (err error) { @@ -73,7 +74,7 @@ func (k Keeper) FileUpload(ctx sdk.Context, fileHash string, reporter stratos.Sd } reporterIndex, err := k.registerKeeper.GetMetaNodeBitMapIndex(ctx, reporter) fileUploadReporters.Set(uint32(reporterIndex)) - height := sdk.NewInt(ctx.BlockHeight()) + height := sdkmath.NewInt(ctx.BlockHeight()) newFileInfo := types.NewFileInfo(height, fileUploadReporters.ToBytes(), uploader.String()) @@ -87,26 +88,26 @@ func (k Keeper) FileUpload(ctx sdk.Context, fileHash string, reporter stratos.Sd // The remaining total Ozone limit [Lt] is the upper bound of the total Ozone that users can purchase from the Stratos blockchain. // [X] is the total amount of STOS token prepaid by user at time t // the total amount of Ozone the user gets = Lt * X / (S + Pt + X) -func (k Keeper) purchaseNozAndSubCoins(ctx sdk.Context, from sdk.AccAddress, amount sdk.Int) (sdk.Int, error) { +func (k Keeper) purchaseNozAndSubCoins(ctx sdk.Context, from sdk.AccAddress, amount sdkmath.Int) (sdkmath.Int, error) { St := k.registerKeeper.GetEffectiveTotalDeposit(ctx) Pt := k.registerKeeper.GetTotalUnissuedPrepay(ctx).Amount Lt := k.registerKeeper.GetRemainingOzoneLimit(ctx) - purchased := Lt.ToDec(). - Mul(amount.ToDec()). + purchased := Lt.ToLegacyDec(). + Mul(amount.ToLegacyDec()). Quo((St. Add(Pt). - Add(amount)).ToDec()). + Add(amount)).ToLegacyDec()). TruncateInt() if purchased.GT(Lt) { - return sdk.ZeroInt(), errors.New("not enough remaining ozone limit to complete prepay") + return sdkmath.ZeroInt(), types.ErrOzoneLimitNotEnough } // send coins to total unissued prepay pool prepayAmt := sdk.NewCoin(k.BondDenom(ctx), amount) err := k.bankKeeper.SendCoinsFromAccountToModule(ctx, from, registertypes.TotalUnissuedPrepay, sdk.NewCoins(prepayAmt)) if err != nil { - return sdk.ZeroInt(), err + return sdkmath.ZeroInt(), err } // update remaining noz limit @@ -116,27 +117,27 @@ func (k Keeper) purchaseNozAndSubCoins(ctx sdk.Context, from sdk.AccAddress, amo return purchased, nil } -func (k Keeper) simulatePurchaseNoz(ctx sdk.Context, coins sdk.Coins) sdk.Int { +func (k Keeper) simulatePurchaseNoz(ctx sdk.Context, coins sdk.Coins) sdkmath.Int { amount := coins.AmountOf(k.BondDenom(ctx)) St := k.registerKeeper.GetEffectiveTotalDeposit(ctx) Pt := k.registerKeeper.GetTotalUnissuedPrepay(ctx).Amount Lt := k.registerKeeper.GetRemainingOzoneLimit(ctx) - purchased := Lt.ToDec(). - Mul(amount.ToDec()). + purchased := Lt.ToLegacyDec(). + Mul(amount.ToLegacyDec()). Quo((St. Add(Pt). - Add(amount)).ToDec()). + Add(amount)).ToLegacyDec()). TruncateInt() return purchased } -// Prepay transfers coins from bank to sds (volumn) pool -func (k Keeper) Prepay(ctx sdk.Context, sender sdk.AccAddress, coins sdk.Coins) (sdk.Int, error) { +// Prepay transfers coins from bank to sds (volume) pool +func (k Keeper) Prepay(ctx sdk.Context, sender sdk.AccAddress, coins sdk.Coins) (sdkmath.Int, error) { validPrepayAmt := coins.AmountOf(k.BondDenom(ctx)) hasCoin := k.bankKeeper.HasBalance(ctx, sender, sdk.NewCoin(k.BondDenom(ctx), validPrepayAmt)) if !hasCoin { - return sdk.ZeroInt(), sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, "Insufficient balance in the acc %s", sender.String()) + return sdkmath.ZeroInt(), errors.Wrapf(sdkerrors.ErrInsufficientFunds, "Insufficient balance in the acc %s", sender.String()) } return k.purchaseNozAndSubCoins(ctx, sender, validPrepayAmt) diff --git a/x/sds/keeper/msg_server.go b/x/sds/keeper/msg_server.go index eadcd744..217dbf7d 100644 --- a/x/sds/keeper/msg_server.go +++ b/x/sds/keeper/msg_server.go @@ -3,6 +3,7 @@ package keeper import ( "context" + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -28,17 +29,17 @@ func (k msgServer) HandleMsgFileUpload(c context.Context, msg *types.MsgFileUplo reporter, err := stratos.SdsAddressFromBech32(msg.GetReporter()) if err != nil { - return &types.MsgFileUploadResponse{}, sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return &types.MsgFileUploadResponse{}, errors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } reporterOwner, err := sdk.AccAddressFromBech32(msg.GetFrom()) if err != nil { - return &types.MsgFileUploadResponse{}, sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return &types.MsgFileUploadResponse{}, errors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } uploader, err := sdk.AccAddressFromBech32(msg.Uploader) if err != nil { - return &types.MsgFileUploadResponse{}, sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) + return &types.MsgFileUploadResponse{}, errors.Wrap(sdkerrors.ErrInvalidAddress, err.Error()) } err = k.FileUpload(ctx, msg.GetFileHash(), reporter, reporterOwner, uploader) @@ -70,17 +71,17 @@ func (k msgServer) HandleMsgPrepay(c context.Context, msg *types.MsgPrepay) (*ty sender, err := sdk.AccAddressFromBech32(msg.GetSender()) if err != nil { - return &types.MsgPrepayResponse{}, sdkerrors.Wrap(types.ErrInvalidSenderAddr, err.Error()) + return &types.MsgPrepayResponse{}, errors.Wrap(types.ErrInvalidSenderAddr, err.Error()) } _, err = sdk.AccAddressFromBech32(msg.GetBeneficiary()) if err != nil { - return &types.MsgPrepayResponse{}, sdkerrors.Wrap(types.ErrInvalidBeneficiaryAddr, err.Error()) + return &types.MsgPrepayResponse{}, errors.Wrap(types.ErrInvalidBeneficiaryAddr, err.Error()) } purchased, err := k.Prepay(ctx, sender, msg.GetAmount()) if err != nil { - return nil, sdkerrors.Wrap(types.ErrPrepayFailure, err.Error()) + return nil, errors.Wrap(types.ErrPrepayFailure, err.Error()) } ctx.EventManager().EmitEvents(sdk.Events{ diff --git a/x/sds/keeper/querier.go b/x/sds/keeper/querier.go deleted file mode 100644 index 2e2cf045..00000000 --- a/x/sds/keeper/querier.go +++ /dev/null @@ -1,97 +0,0 @@ -package keeper - -import ( - "encoding/hex" - "encoding/json" - - abci "github.com/tendermint/tendermint/abci/types" - - "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - "github.com/stratosnet/stratos-chain/x/sds/types" -) - -// NewQuerier creates a new querier for sds clients. -func NewQuerier(k Keeper, legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return func(ctx sdk.Context, path []string, req abci.RequestQuery) ([]byte, error) { - switch path[0] { - case types.QueryFileUpload: - return queryUploadedFileByHash(ctx, req, k, legacyQuerierCdc) - case types.QuerySimulatePrepay: - return querySimulatePrepay(ctx, req, k, legacyQuerierCdc) - case types.QueryCurrNozPrice: - return queryCurrNozPrice(ctx, req, k, legacyQuerierCdc) - case types.QueryNozSupply: - return queryNozSupply(ctx, req, k, legacyQuerierCdc) - case types.QueryParams: - return getSdsParams(ctx, req, k, legacyQuerierCdc) - default: - return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "unknown sds query endpoint "+req.String()+hex.EncodeToString(req.Data)) - } - } -} - -func getSdsParams(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - params := k.GetParams(ctx) - res, err := codec.MarshalJSONIndent(legacyQuerierCdc, params) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - - return res, nil -} - -// queryFileHash fetch a file's hash for the supplied height. -func queryUploadedFileByHash(ctx sdk.Context, req abci.RequestQuery, k Keeper, legacyQuerierCdc *codec.LegacyAmino) ([]byte, error) { - var params types.QueryFileUploadParams - err := legacyQuerierCdc.UnmarshalJSON(req.Data, ¶ms) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONUnmarshal, err.Error()) - } - - fileInfo, found := k.GetFileInfoByFileHash(ctx, []byte(params.FileHash)) - if !found { - return nil, types.ErrNoFileFound - } - res, err := codec.MarshalJSONIndent(legacyQuerierCdc, fileInfo) - if err != nil { - return nil, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - return res, nil -} - -// querySimulatePrepay fetch amt of noz with a simulated prepay of X wei. -func querySimulatePrepay(ctx sdk.Context, req abci.RequestQuery, k Keeper, _ *codec.LegacyAmino) ([]byte, error) { - var amtToPrepay sdk.Int - err := amtToPrepay.UnmarshalJSON(req.Data) - if err != nil { - return []byte{}, sdkerrors.Wrap(sdkerrors.ErrJSONMarshal, err.Error()) - } - // temporary solution, avoid to modify Rest api. After upgrade to cosmos sdk v0.46.x, legacy Rest API will be removed - coins := sdk.NewCoins(sdk.NewCoin(k.BondDenom(ctx), amtToPrepay)) - nozAmt := k.simulatePurchaseNoz(ctx, coins) - nozAmtByte, _ := nozAmt.MarshalJSON() - return nozAmtByte, nil -} - -// queryCurrNozPrice fetch current noz price. -func queryCurrNozPrice(ctx sdk.Context, _ abci.RequestQuery, k Keeper, _ *codec.LegacyAmino) ([]byte, error) { - St, Pt, Lt := k.registerKeeper.GetCurrNozPriceParams(ctx) - nozPrice := k.potKeeper.GetCurrentNozPrice(St, Pt, Lt) - nozPriceByte, _ := nozPrice.MarshalJSON() - return nozPriceByte, nil -} - -// queryNozSupply fetch remaining/total noz supply. -func queryNozSupply(ctx sdk.Context, _ abci.RequestQuery, k Keeper, _ *codec.LegacyAmino) ([]byte, error) { - type Supply struct { - Remaining sdk.Int - Total sdk.Int - } - var nozSupply Supply - nozSupply.Remaining, nozSupply.Total = k.potKeeper.NozSupply(ctx) - nozSupplyByte, _ := json.Marshal(nozSupply) - return nozSupplyByte, nil -} diff --git a/x/sds/module.go b/x/sds/module.go index 4f03465d..41792bbd 100644 --- a/x/sds/module.go +++ b/x/sds/module.go @@ -3,32 +3,45 @@ package sds import ( "context" "encoding/json" + "fmt" - "github.com/cosmos/cosmos-sdk/client" - simtypes "github.com/cosmos/cosmos-sdk/types/simulation" - bankKeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" - "github.com/gorilla/mux" "github.com/grpc-ecosystem/grpc-gateway/runtime" "github.com/spf13/cobra" - potkeeper "github.com/stratosnet/stratos-chain/x/pot/keeper" - registerkeeper "github.com/stratosnet/stratos-chain/x/register/keeper" - abci "github.com/tendermint/tendermint/abci/types" + abci "github.com/cometbft/cometbft/abci/types" + "cosmossdk.io/core/appmodule" + "cosmossdk.io/depinject" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" cdctypes "github.com/cosmos/cosmos-sdk/codec/types" + storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" + simtypes "github.com/cosmos/cosmos-sdk/types/simulation" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + bankkeeper "github.com/cosmos/cosmos-sdk/x/bank/keeper" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + + modulev1 "github.com/stratosnet/stratos-chain/api/stratos/sds/module/v1" + potkeeper "github.com/stratosnet/stratos-chain/x/pot/keeper" + registerkeeper "github.com/stratosnet/stratos-chain/x/register/keeper" "github.com/stratosnet/stratos-chain/x/sds/client/cli" - "github.com/stratosnet/stratos-chain/x/sds/client/rest" "github.com/stratosnet/stratos-chain/x/sds/keeper" "github.com/stratosnet/stratos-chain/x/sds/types" ) +const ( + consensusVersion = 1 +) + // Type check to ensure the interface is properly implemented var ( - _ module.AppModule = AppModule{} - _ module.AppModuleBasic = AppModuleBasic{} + _ module.AppModule = AppModule{} + _ module.AppModuleBasic = AppModuleBasic{} + _ module.AppModuleSimulation = AppModule{} + _ appmodule.AppModule = AppModule{} + _ depinject.OnePerModuleType = AppModule{} ) // AppModuleBasic defines the basic application module used by the sds module. @@ -36,8 +49,6 @@ type AppModuleBasic struct { cdc codec.Codec } -var _ module.AppModuleBasic = AppModuleBasic{} - // Name returns the sds module's name. func (AppModuleBasic) Name() string { return types.ModuleName @@ -60,20 +71,15 @@ func (AppModuleBasic) DefaultGenesis(cdc codec.JSONCodec) json.RawMessage { } // ValidateGenesis performs genesis state validation for the sds module. -func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncodingConfig, bz json.RawMessage) error { +func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, _ client.TxEncodingConfig, bz json.RawMessage) error { var data types.GenesisState err := cdc.UnmarshalJSON(bz, &data) if err != nil { - return err + return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } return types.ValidateGenesis(data) } -// RegisterRESTRoutes registers the REST routes for the sds module. -func (AppModuleBasic) RegisterRESTRoutes(ctx client.Context, rtr *mux.Router) { - rest.RegisterHandlers(ctx, rtr) -} - // RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the sds module. func (AppModuleBasic) RegisterGRPCGatewayRoutes(clientCtx client.Context, mux *runtime.ServeMux) { if err := types.RegisterQueryHandlerClient(context.Background(), mux, types.NewQueryClient(clientCtx)); err != nil { @@ -97,43 +103,40 @@ func (AppModuleBasic) GetQueryCmd() *cobra.Command { type AppModule struct { AppModuleBasic keeper keeper.Keeper - coinKeeper bankKeeper.Keeper - registerKeeper registerkeeper.Keeper - potKeeper potkeeper.Keeper + bankKeeper types.BankKeeper + registerKeeper types.RegisterKeeper + potKeeper types.PotKeeper + + // legacySubspace is used solely for migration of x/params managed parameters + legacySubspace types.ParamsSubspace } // NewAppModule creates a new AppModule object -func NewAppModule(k keeper.Keeper, bankKeeper bankKeeper.Keeper, registerKeeper registerkeeper.Keeper, potKeeper potkeeper.Keeper) AppModule { +func NewAppModule(cdc codec.Codec, k keeper.Keeper, bankKeeper types.BankKeeper, registerKeeper types.RegisterKeeper, + potKeeper types.PotKeeper, legacySubspace types.ParamsSubspace, +) AppModule { return AppModule{ - AppModuleBasic: AppModuleBasic{}, + AppModuleBasic: AppModuleBasic{cdc: cdc}, keeper: k, - coinKeeper: bankKeeper, + bankKeeper: bankKeeper, registerKeeper: registerKeeper, potKeeper: potKeeper, + legacySubspace: legacySubspace, } } -// RegisterInvariants registers the sds module invariants. -func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} - -func (am AppModule) Route() sdk.Route { - return sdk.NewRoute(types.RouterKey, NewHandler(am.keeper)) -} - -// NewHandler returns an sdk.Handler for the sds module. -func (am AppModule) NewHandler() sdk.Handler { - return NewHandler(am.keeper) -} +// RegisterServices registers module services. +func (am AppModule) RegisterServices(cfg module.Configurator) { + types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper)) + querier := keeper.Querier{Keeper: am.keeper} + types.RegisterQueryServer(cfg.QueryServer(), querier) -// QuerierRoute returns the sds module's querier route name. -func (AppModule) QuerierRoute() string { - return types.QuerierRoute + //m := keeper.NewMigrator(am.keeper) + //_ = cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2) } -// NewQuerierHandler returns the sds module sdk.Querier. -func (am AppModule) NewQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return keeper.NewQuerier(am.keeper, legacyQuerierCdc) -} +// RegisterInvariants registers the sds module invariants. +func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} // InitGenesis performs genesis initialization for the sds module. It returns // no validator updates. @@ -151,36 +154,111 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw return cdc.MustMarshalJSON(&gs) } -// BeginBlock returns the begin blocker for the sds module. +// BeginBlock returns the beginBlocker for the sds module. func (am AppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) { BeginBlocker(ctx, req, am.keeper) } -// EndBlock returns the end blocker for the sds module. It returns no validator +// EndBlock returns the endBlocker for the sds module. It returns no validator // updates. -func (AppModule) EndBlock(_ sdk.Context, _ abci.RequestEndBlock) []abci.ValidatorUpdate { - return []abci.ValidatorUpdate{} +func (am AppModule) EndBlock(ctx sdk.Context, req abci.RequestEndBlock) []abci.ValidatorUpdate { + return EndBlocker(ctx, req, am.keeper) } // ConsensusVersion implements AppModule/ConsensusVersion. -func (AppModule) ConsensusVersion() uint64 { return 1 } +func (AppModule) ConsensusVersion() uint64 { + return consensusVersion +} -// LegacyQuerierHandler returns the sds module sdk.Querier. -func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sdk.Querier { - return keeper.NewQuerier(am.keeper, legacyQuerierCdc) +// IsOnePerModuleType implements depinject.OnePerModuleType +func (am AppModule) IsOnePerModuleType() { } -// RegisterServices registers module services. -func (am AppModule) RegisterServices(cfg module.Configurator) { - types.RegisterMsgServer(cfg.MsgServer(), keeper.NewMsgServerImpl(am.keeper)) - querier := keeper.Querier{Keeper: am.keeper} - types.RegisterQueryServer(cfg.QueryServer(), querier) +// IsAppModule implements appmodule.AppModule +func (am AppModule) IsAppModule() { +} - //m := keeper.NewMigrator(am.keeper) - //_ = cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2) +//____________________________________________________________________________ + +// AppModuleSimulation defines the module simulation functions used by the profiles module. +type AppModuleSimulation struct{} + +// GenerateGenesisState implements AppModuleSimulation +func (am AppModule) GenerateGenesisState(input *module.SimulationState) { +} + +// RegisterStoreDecoder implements AppModuleSimulation +func (am AppModule) RegisterStoreDecoder(registry sdk.StoreDecoderRegistry) { +} + +// WeightedOperations implements AppModuleSimulation +func (am AppModule) WeightedOperations(simState module.SimulationState) []simtypes.WeightedOperation { + return nil } -// ProposalContents doesn't return any content functions for governance proposals. -func (AppModule) ProposalContents(simState module.SimulationState) []simtypes.WeightedProposalContent { +// ProposalMsgs returns msgs used for governance proposals for simulations. +func (AppModule) ProposalMsgs(simState module.SimulationState) []simtypes.WeightedProposalMsg { return nil } + +// -------------------------------------------------------------------------------------------------------------------- + +// App Wiring Setup + +func init() { + appmodule.Register( + &modulev1.Module{}, + appmodule.Provide( + ProvideModule, + ), + ) +} + +type ModuleInputs struct { + depinject.In + + Config *modulev1.Module + Cdc codec.Codec + Key *storetypes.KVStoreKey + BankKeeper bankkeeper.Keeper + RegisterKeeper registerkeeper.Keeper + PotKeeper potkeeper.Keeper + + // LegacySubspace is used solely for migration of x/params managed parameters + LegacySubspace types.ParamsSubspace `optional:"true"` +} + +type ModuleOutputs struct { + depinject.Out + + SdsKeeper keeper.Keeper + Module appmodule.AppModule +} + +func ProvideModule(in ModuleInputs) ModuleOutputs { + // default to governance authority if not provided + authority := authtypes.NewModuleAddress(govtypes.ModuleName) + if in.Config.Authority != "" { + authority = authtypes.NewModuleAddressOrBech32Address(in.Config.Authority) + } + + k := keeper.NewKeeper( + in.Cdc, + in.Key, + in.BankKeeper, + in.RegisterKeeper, + in.PotKeeper, + authority.String(), + ) + + m := NewAppModule( + in.Cdc, + k, + in.BankKeeper, + in.RegisterKeeper, + in.PotKeeper, + in.LegacySubspace, + ) + + return ModuleOutputs{SdsKeeper: k, Module: m} +} diff --git a/x/sds/oz_price_test.go b/x/sds/oz_price_test.go index 5c69dd4f..4fede08c 100644 --- a/x/sds/oz_price_test.go +++ b/x/sds/oz_price_test.go @@ -9,10 +9,11 @@ import ( "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmtypes "github.com/tendermint/tendermint/types" + abci "github.com/cometbft/cometbft/abci/types" + tmproto "github.com/cometbft/cometbft/proto/tendermint/types" + tmtypes "github.com/cometbft/cometbft/types" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" @@ -24,6 +25,7 @@ import ( stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/stratosnet/stratos-chain/app" + stratostestutil "github.com/stratosnet/stratos-chain/testutil/stratos" stratos "github.com/stratosnet/stratos-chain/types" potKeeper "github.com/stratosnet/stratos-chain/x/pot/keeper" pottypes "github.com/stratosnet/stratos-chain/x/pot/types" @@ -47,25 +49,25 @@ const ( ) var ( - depositNozRateInt, _ = sdk.NewIntFromString(depositNozRateStr) + depositNozRateInt, _ = sdkmath.NewIntFromString(depositNozRateStr) paramSpecificMinedReward = sdk.NewCoins(stratos.NewCoinInt64(160000000000)) - paramSpecificEpoch = sdk.NewInt(10) + paramSpecificEpoch = sdkmath.NewInt(10) - resNodeSlashingNOZAmt1 = sdk.NewInt(100000000000) - resNodeSlashingEffectiveTokenAmt1 = sdk.NewInt(1000000000000000000) + resNodeSlashingNOZAmt1 = sdkmath.NewInt(100000000000) + resNodeSlashingEffectiveTokenAmt1 = sdkmath.NewInt(1000000000000000000) - resourceNodeVolume1 = sdk.NewInt(537500000000) - resourceNodeVolume2 = sdk.NewInt(200000000000) - resourceNodeVolume3 = sdk.NewInt(200000000000) + resourceNodeVolume1 = sdkmath.NewInt(537500000000) + resourceNodeVolume2 = sdkmath.NewInt(200000000000) + resourceNodeVolume3 = sdkmath.NewInt(200000000000) - depositForSendingTx, _ = sdk.NewIntFromString("100000000000000000000000000000") - totalUnissuedPrepayVal = sdk.ZeroInt() + depositForSendingTx, _ = sdkmath.NewIntFromString("100000000000000000000000000000") + totalUnissuedPrepayVal = sdkmath.ZeroInt() totalUnissuedPrepay = stratos.NewCoin(totalUnissuedPrepayVal) foundationDepositorPrivKey = secp256k1.GenPrivKey() foundationDepositorAccAddr = sdk.AccAddress(foundationDepositorPrivKey.PubKey().Address()) - foundationDeposit = sdk.NewCoins(sdk.NewCoin(rewardDenom, sdk.NewInt(40000000000000000))) + foundationDeposit = sdk.NewCoins(sdk.NewCoin(rewardDenom, sdkmath.NewInt(40000000000000000))) resOwnerPrivKey1 = secp256k1.GenPrivKey() resOwnerPrivKey2 = secp256k1.GenPrivKey() @@ -85,55 +87,55 @@ var ( idxOwner2 = sdk.AccAddress(idxOwnerPrivKey2.PubKey().Address()) idxOwner3 = sdk.AccAddress(idxOwnerPrivKey3.PubKey().Address()) - resNodeInitialDepositForMultipleNodes, _ = sdk.NewIntFromString("3" + StosToWeiSuffix) - //resNodeInitialDepositForMultipleNodes = sdk.NewInt(3 * stos2wei) + resNodeInitialDepositForMultipleNodes, _ = sdkmath.NewIntFromString("3" + StosToWeiSuffix) + //resNodeInitialDepositForMultipleNodes = sdkmath.NewInt(3 * stos2wei) resNodePubKey1 = ed25519.GenPrivKey().PubKey() resNodeAddr1 = sdk.AccAddress(resNodePubKey1.Address()) resNodeNetworkId1 = stratos.SdsAddress(resNodePubKey1.Address()) - resNodeInitialDeposit1, _ = sdk.NewIntFromString("3" + StosToWeiSuffix) - //resNodeInitialDeposit1 = sdk.NewInt(3 * stos2wei) + resNodeInitialDeposit1, _ = sdkmath.NewIntFromString("3" + StosToWeiSuffix) + //resNodeInitialDeposit1 = sdkmath.NewInt(3 * stos2wei) resNodePubKey2 = ed25519.GenPrivKey().PubKey() resNodeAddr2 = sdk.AccAddress(resNodePubKey2.Address()) resNodeNetworkId2 = stratos.SdsAddress(resNodePubKey2.Address()) - resNodeInitialDeposit2, _ = sdk.NewIntFromString("3" + StosToWeiSuffix) - //resNodeInitialDeposit2 = sdk.NewInt(3 * stos2wei) + resNodeInitialDeposit2, _ = sdkmath.NewIntFromString("3" + StosToWeiSuffix) + //resNodeInitialDeposit2 = sdkmath.NewInt(3 * stos2wei) resNodePubKey3 = ed25519.GenPrivKey().PubKey() resNodeAddr3 = sdk.AccAddress(resNodePubKey3.Address()) resNodeNetworkId3 = stratos.SdsAddress(resNodePubKey3.Address()) - resNodeInitialDeposit3, _ = sdk.NewIntFromString("3" + StosToWeiSuffix) - //resNodeInitialDeposit3 = sdk.NewInt(3 * stos2wei) + resNodeInitialDeposit3, _ = sdkmath.NewIntFromString("3" + StosToWeiSuffix) + //resNodeInitialDeposit3 = sdkmath.NewInt(3 * stos2wei) resNodePubKey4 = ed25519.GenPrivKey().PubKey() resNodeAddr4 = sdk.AccAddress(resNodePubKey4.Address()) resNodeNetworkId4 = stratos.SdsAddress(resNodePubKey4.Address()) - resNodeInitialDeposit4 = sdk.NewInt(3 * stos2wei) + resNodeInitialDeposit4 = sdkmath.NewInt(3 * stos2wei) resNodePubKey5 = ed25519.GenPrivKey().PubKey() resNodeAddr5 = sdk.AccAddress(resNodePubKey5.Address()) resNodeNetworkId5 = stratos.SdsAddress(resNodePubKey5.Address()) - resNodeInitialDeposit5 = sdk.NewInt(3 * stos2wei) + resNodeInitialDeposit5 = sdkmath.NewInt(3 * stos2wei) idxNodePrivKey1 = ed25519.GenPrivKey() idxNodePubKey1 = idxNodePrivKey1.PubKey() idxNodeAddr1 = sdk.AccAddress(idxNodePubKey1.Address()) idxNodeNetworkId1 = stratos.SdsAddress(idxNodePubKey1.Address()) - idxNodeInitialDeposit1, _ = sdk.NewIntFromString("5" + StosToWeiSuffix) - //idxNodeInitialDeposit1 = sdk.NewInt(5 * stos2wei) + idxNodeInitialDeposit1, _ = sdkmath.NewIntFromString("5" + StosToWeiSuffix) + //idxNodeInitialDeposit1 = sdkmath.NewInt(5 * stos2wei) idxNodePubKey2 = ed25519.GenPrivKey().PubKey() idxNodeAddr2 = sdk.AccAddress(idxNodePubKey2.Address()) idxNodeNetworkId2 = stratos.SdsAddress(idxNodePubKey2.Address()) - idxNodeInitialDeposit2, _ = sdk.NewIntFromString("5" + StosToWeiSuffix) - //idxNodeInitialDeposit2 = sdk.NewInt(5 * stos2wei) + idxNodeInitialDeposit2, _ = sdkmath.NewIntFromString("5" + StosToWeiSuffix) + //idxNodeInitialDeposit2 = sdkmath.NewInt(5 * stos2wei) idxNodePubKey3 = ed25519.GenPrivKey().PubKey() idxNodeAddr3 = sdk.AccAddress(idxNodePubKey3.Address()) idxNodeNetworkId3 = stratos.SdsAddress(idxNodePubKey3.Address()) - idxNodeInitialDeposit3, _ = sdk.NewIntFromString("5" + StosToWeiSuffix) - //idxNodeInitialDeposit3 = sdk.NewInt(5 * stos2wei) + idxNodeInitialDeposit3, _ = sdkmath.NewIntFromString("5" + StosToWeiSuffix) + //idxNodeInitialDeposit3 = sdkmath.NewInt(5 * stos2wei) valOpPrivKey1 = secp256k1.GenPrivKey() valOpPubKey1 = valOpPrivKey1.PubKey() @@ -142,17 +144,17 @@ var ( valConsPrivKey1 = ed25519.GenPrivKey() valConsPubk1 = valConsPrivKey1.PubKey() - valInitialStake, _ = sdk.NewIntFromString("15" + StosToWeiSuffix) + valInitialStake, _ = sdkmath.NewIntFromString("15" + StosToWeiSuffix) ) type NozPriceFactors struct { - NOzonePrice sdk.Dec - InitialTotalDeposit sdk.Int - EffectiveTotalDeposit sdk.Int - TotalUnissuedPrepay sdk.Int - DepositAndPrepay sdk.Int - OzoneLimit sdk.Int - NozSupply sdk.Int + NOzonePrice sdkmath.LegacyDec + InitialTotalDeposit sdkmath.Int + EffectiveTotalDeposit sdkmath.Int + TotalUnissuedPrepay sdkmath.Int + DepositAndPrepay sdkmath.Int + OzoneLimit sdkmath.Int + NozSupply sdkmath.Int } func TestPriceCurve(t *testing.T) { @@ -165,13 +167,13 @@ func TestPriceCurve(t *testing.T) { EffectiveTotalDeposit: initialTotalDepositStore, TotalUnissuedPrepay: totalUnissuedPrepayStore, DepositAndPrepay: initialTotalDepositStore.Add(totalUnissuedPrepayStore), - OzoneLimit: initialTotalDepositStore.ToDec().Quo(nozPrice).TruncateInt(), - NozSupply: initialTotalDepositStore.ToDec().Quo(depositNozRateInt.ToDec()).TruncateInt(), + OzoneLimit: initialTotalDepositStore.ToLegacyDec().Quo(nozPrice).TruncateInt(), + NozSupply: initialTotalDepositStore.ToLegacyDec().Quo(depositNozRateInt.ToLegacyDec()).TruncateInt(), } initFactorsBefore, _, _ = simulatePriceChange(t, &PriceChangeEvent{ - depositDelta: sdk.ZeroInt(), - unissuedPrepayDelta: sdk.ZeroInt(), + depositDelta: sdkmath.ZeroInt(), + unissuedPrepayDelta: sdkmath.ZeroInt(), }, initFactorsBefore) depositChangePerm := rand.Perm(NUM_TESTS) @@ -186,11 +188,11 @@ func TestPriceCurve(t *testing.T) { if i > 50 && rand.Intn(5) >= 3 { tempPrepaySign = -1 } - depositDeltaChange, _ := sdk.NewIntFromString(strconv.Itoa(depositChangePerm[i]) + StosToWeiSuffix) - unissuedPrepayDeltaChange, _ := sdk.NewIntFromString(strconv.Itoa(prepayChangePerm[i]) + StosToWeiSuffix) + depositDeltaChange, _ := sdkmath.NewIntFromString(strconv.Itoa(depositChangePerm[i]) + StosToWeiSuffix) + unissuedPrepayDeltaChange, _ := sdkmath.NewIntFromString(strconv.Itoa(prepayChangePerm[i]) + StosToWeiSuffix) change := &PriceChangeEvent{ - depositDelta: depositDeltaChange.Mul(sdk.NewInt(int64(tempDepositSign))), - unissuedPrepayDelta: unissuedPrepayDeltaChange.Mul(sdk.NewInt(int64(tempPrepaySign))), + depositDelta: depositDeltaChange.Mul(sdkmath.NewInt(int64(tempDepositSign))), + unissuedPrepayDelta: unissuedPrepayDeltaChange.Mul(sdkmath.NewInt(int64(tempPrepaySign))), } t.Logf("\ndepositDeltaOri: %d, unissuedPrepayDeltaOri: %d\n", depositChangePerm[i], prepayChangePerm[i]) t.Logf("\ndepositDelta: %v, unissuedPrepayDelta: %v\n", change.depositDelta.String(), change.unissuedPrepayDelta.String()) @@ -228,7 +230,7 @@ func TestOzPriceChange(t *testing.T) { foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) accNum := foundationDepositorAcc.GetAccountNumber() accSeq := foundationDepositorAcc.GetSequence() - _, _, err := app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) + _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) @@ -238,14 +240,18 @@ func TestOzPriceChange(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - commission := stakingtypes.NewCommissionRates(sdk.NewDecWithPrec(5, 1), sdk.NewDecWithPrec(5, 1), sdk.NewDec(0)) + commission := stakingtypes.NewCommissionRates( + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDec(0), + ) description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdk.OneInt()) + createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) accNum = valOpAcc1.GetAccountNumber() accSeq = valOpAcc1.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) require.NoError(t, err) app.CheckBalance(t, stApp, valOpAccAddr1, nil) @@ -256,7 +262,7 @@ func TestOzPriceChange(t *testing.T) { validator := checkValidator(t, stApp, valOpValAddr1, true) require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdk.IntEq(t, valInitialStake, validator.BondedTokens())) + require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) _, nozSupply := potKeeper.NozSupply(ctx) St, Pt, Lt := registerKeeper.GetCurrNozPriceParams(ctx) @@ -279,7 +285,7 @@ func TestOzPriceChange(t *testing.T) { ownerAccNum := resOwnerAcc.GetAccountNumber() ownerAccSeq := resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -287,8 +293,8 @@ func TestOzPriceChange(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) nozPriceFactorsSeq1, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq0) - require.True(t, nozPricePercentage.GT(sdk.ZeroDec()), "noz price should increase after PREPAY") - require.True(t, ozoneLimitPercentage.LT(sdk.ZeroDec()), "OzLimit should decrease after PREPAY") + require.True(t, nozPricePercentage.GT(sdkmath.LegacyZeroDec()), "noz price should increase after PREPAY") + require.True(t, ozoneLimitPercentage.LT(sdkmath.LegacyZeroDec()), "OzLimit should decrease after PREPAY") t.Log("********************************* Deliver Prepay Tx END ********************************************\n\n...\n[NEXT TEST CASE]") t.Log("********************************* Deliver CreateResourceNode Tx START ********************************************") @@ -299,7 +305,7 @@ func TestOzPriceChange(t *testing.T) { ownerAccNum = resOwnerAcc.GetAccountNumber() ownerAccSeq = resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -307,8 +313,8 @@ func TestOzPriceChange(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) nozPriceFactorsSeq2, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq1) - require.True(t, nozPricePercentage.Equal(sdk.ZeroDec()), "noz price shouldn't change after CreateResourceNode") - require.True(t, ozoneLimitPercentage.Equal(sdk.ZeroDec()), "OzLimit shouldn't change after CreateResourceNode") + require.True(t, nozPricePercentage.Equal(sdkmath.LegacyZeroDec()), "noz price shouldn't change after CreateResourceNode") + require.True(t, ozoneLimitPercentage.Equal(sdkmath.LegacyZeroDec()), "OzLimit shouldn't change after CreateResourceNode") t.Log("********************************* Deliver CreateResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") t.Log("********************************* Deliver UnsuspendResourceNode Tx (Slashing) START ********************************************") @@ -319,7 +325,7 @@ func TestOzPriceChange(t *testing.T) { ownerAccNum = idxOwnerAcc.GetAccountNumber() ownerAccSeq = idxOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -328,15 +334,15 @@ func TestOzPriceChange(t *testing.T) { slashingAmtSetup := registerKeeper.GetSlashing(ctx, resOwner1) - totalConsumedNoz := sdk.ZeroInt().ToDec() + totalConsumedNoz := sdkmath.ZeroInt().ToLegacyDec() slashingAmtCheck := potKeeper.GetTrafficReward(ctx, totalConsumedNoz) t.Log("slashingAmtSetup=" + slashingAmtSetup.String()) require.Equal(t, slashingAmtSetup, slashingAmtCheck.TruncateInt()) nozPriceFactorsSeq3, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq2) - require.True(t, nozPricePercentage.LT(sdk.ZeroDec()), "noz price should decrease after UnsuspendResourceNode") - require.True(t, ozoneLimitPercentage.GT(sdk.ZeroDec()), "OzLimit should increase after UnsuspendResourceNode") + require.True(t, nozPricePercentage.LT(sdkmath.LegacyZeroDec()), "noz price should decrease after UnsuspendResourceNode") + require.True(t, ozoneLimitPercentage.GT(sdkmath.LegacyZeroDec()), "OzLimit should increase after UnsuspendResourceNode") t.Log("********************************* Deliver UnsuspendResourceNode Tx (Slashing) END ********************************************\n\n...\n[NEXT TEST CASE]") t.Log("********************************* Deliver SuspendResourceNode Tx (Slashing) START ********************************************") @@ -347,7 +353,7 @@ func TestOzPriceChange(t *testing.T) { ownerAccNum = idxOwnerAcc.GetAccountNumber() ownerAccSeq = idxOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -356,19 +362,19 @@ func TestOzPriceChange(t *testing.T) { //slashingAmtSetup = registerKeeper.GetSlashing(ctx, resOwner1) // - //totalConsumedNoz = resNodeSlashingNOZAmt1.ToDec() + //totalConsumedNoz = resNodeSlashingNOZAmt1.ToLegacyDec() // //slashingAmtCheck = potKeeper.GetTrafficReward(ctx, totalConsumedNoz) //t.Log("slashingAmtSetup=" + slashingAmtSetup.String()) //require.Equal(t, slashingAmtSetup, slashingAmtCheck.TruncateInt()) nozPriceFactorsSeq4, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq3) - require.True(t, nozPricePercentage.GT(sdk.ZeroDec()), "noz price should increase after SlashResourceNode") - require.True(t, ozoneLimitPercentage.LT(sdk.ZeroDec()), "OzLimit should decrease after SlashResourceNode") + require.True(t, nozPricePercentage.GT(sdkmath.LegacyZeroDec()), "noz price should increase after SlashResourceNode") + require.True(t, ozoneLimitPercentage.LT(sdkmath.LegacyZeroDec()), "OzLimit should decrease after SlashResourceNode") _, nozPricePercentage42, ozoneLimitPercentage42 := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq2) - require.True(t, nozPricePercentage42.Equal(sdk.ZeroDec()), "noz price after SlashResourceNode should be same with the price when node hadn't been activated") - require.True(t, ozoneLimitPercentage42.Equal(sdk.ZeroDec()), "OzLimit after SlashResourceNode should be same with the ozLimit when node hadn't been activated") + require.True(t, nozPricePercentage42.Equal(sdkmath.LegacyZeroDec()), "noz price after SlashResourceNode should be same with the price when node hadn't been activated") + require.True(t, ozoneLimitPercentage42.Equal(sdkmath.LegacyZeroDec()), "OzLimit after SlashResourceNode should be same with the ozLimit when node hadn't been activated") t.Log("********************************* Deliver SuspendResourceNode Tx (Slashing) END ********************************************\n\n...\n[NEXT TEST CASE]") t.Log("********************************* Deliver VolumeReport Tx START ********************************************") @@ -377,19 +383,19 @@ func TestOzPriceChange(t *testing.T) { lastTotalMinedToken := potKeeper.GetTotalMinedTokens(ctx) t.Log("last committed TotalMinedTokens = " + lastTotalMinedToken.String()) - epoch, ok := sdk.NewIntFromString(volumeReportMsg.Epoch.String()) + epoch, ok := sdkmath.NewIntFromString(volumeReportMsg.Epoch.String()) require.Equal(t, ok, true) - totalConsumedNoz = potKeeper.GetTotalConsumedNoz(volumeReportMsg.WalletVolumes).ToDec() + totalConsumedNoz = potKeeper.GetTotalConsumedNoz(volumeReportMsg.WalletVolumes).ToLegacyDec() remaining, total := potKeeper.NozSupply(ctx) require.True(t, potKeeper.GetTotalConsumedNoz(volumeReportMsg.WalletVolumes).Add(remaining).LTE(total), "remaining+consumed Noz exceeds total Noz supply") /********************* print info *********************/ t.Log("epoch " + volumeReportMsg.Epoch.String()) - StDec := registerKeeper.GetEffectiveTotalDeposit(ctx).ToDec() - PtDec := registerKeeper.GetTotalUnissuedPrepay(ctx).Amount.ToDec() + StDec := registerKeeper.GetEffectiveTotalDeposit(ctx).ToLegacyDec() + PtDec := registerKeeper.GetTotalUnissuedPrepay(ctx).Amount.ToLegacyDec() Y := totalConsumedNoz - LtDec := registerKeeper.GetRemainingOzoneLimit(ctx).ToDec() + LtDec := registerKeeper.GetRemainingOzoneLimit(ctx).ToLegacyDec() R := StDec.Add(PtDec).Mul(Y).Quo(LtDec.Add(Y)) //t.Log("R = (S + Pt) * Y / (Lt + Y)") t.Log("St=" + StDec.String() + "\nPt=" + PtDec.String() + "\nY=" + Y.String() + "\nLt=" + LtDec.String() + "\nR=" + R.String() + "\n") @@ -459,7 +465,7 @@ func TestOzPriceChange(t *testing.T) { require.NotNil(t, feePoolAccAddr) feeCollectorToFeePoolAtBeginBlock := bankKeeper.GetBalance(ctx, feePoolAccAddr, potKeeper.BondDenom(ctx)) - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) stApp.EndBlock(abci.RequestEndBlock{Height: header.Height}) @@ -471,7 +477,7 @@ func TestOzPriceChange(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - epoch, ok = sdk.NewIntFromString(volumeReportMsg.Epoch.String()) + epoch, ok = sdkmath.NewIntFromString(volumeReportMsg.Epoch.String()) require.Equal(t, ok, true) checkResult(t, ctx, potKeeper, @@ -488,8 +494,8 @@ func TestOzPriceChange(t *testing.T) { ) nozPriceFactorsSeq5, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq4) - require.True(t, nozPricePercentage.LT(sdk.ZeroDec()), "noz price should decrease after VolumeReport") - require.True(t, ozoneLimitPercentage.GT(sdk.ZeroDec()), "OzLimit shouldn't change after VolumeReport") + require.True(t, nozPricePercentage.LT(sdkmath.LegacyZeroDec()), "noz price should decrease after VolumeReport") + require.True(t, ozoneLimitPercentage.GT(sdkmath.LegacyZeroDec()), "OzLimit shouldn't change after VolumeReport") t.Log("********************************* Deliver VolumeReport Tx END ********************************************\n\n...\n[NEXT TEST CASE]") t.Log("********************************* Deliver CreateResourceNode Tx START ********************************************") @@ -500,7 +506,7 @@ func TestOzPriceChange(t *testing.T) { ownerAccNum = resOwnerAcc.GetAccountNumber() ownerAccSeq = resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg2}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey2) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg2}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey2) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -508,8 +514,8 @@ func TestOzPriceChange(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) nozPriceFactorsSeq6, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq5) - require.True(t, nozPricePercentage.Equal(sdk.ZeroDec()), "noz price shouldn't change after CreateResourceNode") - require.True(t, ozoneLimitPercentage.Equal(sdk.ZeroDec()), "OzLimit shouldn't change after CreateResourceNode") + require.True(t, nozPricePercentage.Equal(sdkmath.LegacyZeroDec()), "noz price shouldn't change after CreateResourceNode") + require.True(t, ozoneLimitPercentage.Equal(sdkmath.LegacyZeroDec()), "OzLimit shouldn't change after CreateResourceNode") t.Log("********************************* Deliver CreateResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") t.Log("********************************* Deliver CreateResourceNode Tx START ********************************************") @@ -520,7 +526,7 @@ func TestOzPriceChange(t *testing.T) { ownerAccNum = resOwnerAcc.GetAccountNumber() ownerAccSeq = resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg3}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey3) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg3}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey3) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -528,8 +534,8 @@ func TestOzPriceChange(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) nozPriceFactorsSeq7, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq6) - require.True(t, nozPricePercentage.Equal(sdk.ZeroDec()), "noz price shouldn't change after CreateResourceNode") - require.True(t, ozoneLimitPercentage.Equal(sdk.ZeroDec()), "OzLimit shouldn't change after CreateResourceNode") + require.True(t, nozPricePercentage.Equal(sdkmath.LegacyZeroDec()), "noz price shouldn't change after CreateResourceNode") + require.True(t, ozoneLimitPercentage.Equal(sdkmath.LegacyZeroDec()), "OzLimit shouldn't change after CreateResourceNode") t.Log("********************************* Deliver CreateResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") t.Log("********************************* Deliver CreateResourceNode Tx START ********************************************") @@ -540,7 +546,7 @@ func TestOzPriceChange(t *testing.T) { ownerAccNum = resOwnerAcc.GetAccountNumber() ownerAccSeq = resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg4}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey4) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg4}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey4) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -548,8 +554,8 @@ func TestOzPriceChange(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) nozPriceFactorsSeq8, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq7) - require.True(t, nozPricePercentage.Equal(sdk.ZeroDec()), "noz price shouldn't change after CreateResourceNode") - require.True(t, ozoneLimitPercentage.Equal(sdk.ZeroDec()), "OzLimit shouldn't change after CreateResourceNode") + require.True(t, nozPricePercentage.Equal(sdkmath.LegacyZeroDec()), "noz price shouldn't change after CreateResourceNode") + require.True(t, ozoneLimitPercentage.Equal(sdkmath.LegacyZeroDec()), "OzLimit shouldn't change after CreateResourceNode") t.Log("********************************* Deliver CreateResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") t.Log("********************************* Deliver CreateResourceNode Tx START ********************************************") @@ -560,7 +566,7 @@ func TestOzPriceChange(t *testing.T) { ownerAccNum = resOwnerAcc.GetAccountNumber() ownerAccSeq = resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg5}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey5) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg5}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey5) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -568,8 +574,8 @@ func TestOzPriceChange(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) _, nozPricePercentage, ozoneLimitPercentage = printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq8) - require.True(t, nozPricePercentage.Equal(sdk.ZeroDec()), "noz price shouldn't change after CreateResourceNode") - require.True(t, ozoneLimitPercentage.Equal(sdk.ZeroDec()), "OzLimit shouldn't change after CreateResourceNode") + require.True(t, nozPricePercentage.Equal(sdkmath.LegacyZeroDec()), "noz price shouldn't change after CreateResourceNode") + require.True(t, ozoneLimitPercentage.Equal(sdkmath.LegacyZeroDec()), "OzLimit shouldn't change after CreateResourceNode") t.Log("********************************* Deliver CreateResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") } @@ -582,7 +588,7 @@ func setupMsgVolumeReport(newEpoch int64) *pottypes.MsgVolumeReport { nodesVolume := []pottypes.SingleWalletVolume{volume1, volume2, volume3} reporter := idxNodeNetworkId1 - epoch := sdk.NewInt(newEpoch) + epoch := sdkmath.NewInt(newEpoch) reportReference := "report for epoch " + epoch.String() reporterOwner := idxOwner1 @@ -621,12 +627,12 @@ func setupUnsuspendMsg() *pottypes.MsgSlashingResourceNode { reporters = append(reporters, idxNodeNetworkId1) reportOwner := make([]sdk.AccAddress, 0) reportOwner = append(reportOwner, idxOwner1) - slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeNetworkId1, resOwner1, sdk.ZeroInt(), false) + slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeNetworkId1, resOwner1, sdkmath.ZeroInt(), false) return slashingMsg } func setupPrepayMsg() *sdstypes.MsgPrepay { sender := resOwner1 - amount, _ := sdk.NewIntFromString("1" + StosToWeiSuffix) + amount, _ := sdkmath.NewIntFromString("1" + StosToWeiSuffix) coin := sdk.NewCoin(stratos.Wei, amount) prepayMsg := sdstypes.NewMsgPrepay(sender.String(), sender.String(), sdk.NewCoins(coin)) return prepayMsg @@ -634,7 +640,7 @@ func setupPrepayMsg() *sdstypes.MsgPrepay { func setupPrepayMsgWithResOwner(resOwner sdk.AccAddress) *sdstypes.MsgPrepay { sender := resOwner - amount, _ := sdk.NewIntFromString("3" + StosToWeiSuffix) + amount, _ := sdkmath.NewIntFromString("3" + StosToWeiSuffix) coin := sdk.NewCoin(stratos.Wei, amount) prepayMsg := sdstypes.NewMsgPrepay(sender.String(), sender.String(), sdk.NewCoins(coin)) return prepayMsg @@ -655,7 +661,7 @@ func setupUnsuspendMsgByIndex(i int, resNodeNetworkId stratos.SdsAddress, resNod reporters = append(reporters, idxNodeNetworkId1) reportOwner := make([]sdk.AccAddress, 0) reportOwner = append(reportOwner, idxOwner1) - slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeNetworkId, resOwner, sdk.ZeroInt(), false) + slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeNetworkId, resOwner, sdkmath.ZeroInt(), false) return slashingMsg } @@ -687,7 +693,7 @@ func setupMsgCreateResourceNode5() *registertypes.MsgCreateResourceNode { return createResourceNodeMsg } -func printCurrNozPrice(t *testing.T, ctx sdk.Context, potKeeper potKeeper.Keeper, registerKeeper registerKeeper.Keeper, nozPriceFactorsBefore NozPriceFactors) (NozPriceFactors, sdk.Dec, sdk.Dec) { +func printCurrNozPrice(t *testing.T, ctx sdk.Context, potKeeper potKeeper.Keeper, registerKeeper registerKeeper.Keeper, nozPriceFactorsBefore NozPriceFactors) (NozPriceFactors, sdkmath.LegacyDec, sdkmath.LegacyDec) { nozPriceFactorsAfter := NozPriceFactors{} nozPriceFactorsAfter.InitialTotalDeposit = registerKeeper.GetInitialGenesisDepositTotal(ctx) nozPriceFactorsAfter.EffectiveTotalDeposit = registerKeeper.GetEffectiveTotalDeposit(ctx) @@ -706,12 +712,12 @@ func printCurrNozPrice(t *testing.T, ctx sdk.Context, potKeeper potKeeper.Keeper ozoneLimitDelta := nozPriceFactorsAfter.OzoneLimit.Sub(nozPriceFactorsBefore.OzoneLimit) nozSupplyDelta := nozPriceFactorsAfter.NozSupply.Sub(nozPriceFactorsBefore.NozSupply) - nozPricePercentage := nozPriceDelta.Quo(nozPriceFactorsBefore.NOzonePrice).MulInt(sdk.NewInt(100)) + nozPricePercentage := nozPriceDelta.Quo(nozPriceFactorsBefore.NOzonePrice).MulInt(sdkmath.NewInt(100)) //initialTotalDepositPercentage := initialTotalDepositDelta.Quo(nozPriceFactorsBefore.InitialTotalDeposit) //effectiveTotalDepositPercentage := effectiveTotalDepositDelta.Quo(nozPriceFactorsBefore.EffectiveTotalDeposit) //totalUnissuedPrepayPercentage := totalUnissuedPrepayDelta.Quo(nozPriceFactorsBefore.TotalUnissuedPrepay) //depositAndPrepayPercentage := depositAndPrepayDelta.Quo(nozPriceFactorsBefore.DepositAndPrepay) - ozoneLimitPercentage := ozoneLimitDelta.ToDec().Quo(nozPriceFactorsBefore.OzoneLimit.ToDec()).MulInt(sdk.NewInt(100)) + ozoneLimitPercentage := ozoneLimitDelta.ToLegacyDec().Quo(nozPriceFactorsBefore.OzoneLimit.ToLegacyDec()).MulInt(sdkmath.NewInt(100)) t.Log("===>>>>>>>>>>>>>> Current noz Price ===>>>>>>>>>>>>>>") t.Log("NOzonePrice: " + nozPriceFactorsAfter.NOzonePrice.String() + "(delta: " + nozPriceDelta.String() + ", " + nozPricePercentage.String()[:5] + "%)") @@ -726,16 +732,16 @@ func printCurrNozPrice(t *testing.T, ctx sdk.Context, potKeeper potKeeper.Keeper } // return : coins - slashing -func deductSlashingAmt(ctx sdk.Context, coins sdk.Coins, slashing sdk.Int) sdk.Coins { +func deductSlashingAmt(ctx sdk.Context, coins sdk.Coins, slashing sdkmath.Int) sdk.Coins { ret := sdk.Coins{} for _, coin := range coins { if coin.Amount.GTE(slashing) { coin = coin.Sub(sdk.NewCoin(coin.Denom, slashing)) ret = ret.Add(coin) - slashing = sdk.ZeroInt() + slashing = sdkmath.ZeroInt() } else { slashing = slashing.Sub(coin.Amount) - coin = sdk.NewCoin(coin.Denom, sdk.ZeroInt()) + coin = sdk.NewCoin(coin.Denom, sdkmath.ZeroInt()) ret = ret.Add(coin) } } @@ -748,19 +754,19 @@ func checkResult(t *testing.T, ctx sdk.Context, accountKeeper authkeeper.AccountKeeper, bankKeeper bankKeeper.Keeper, registerKeeper registerKeeper.Keeper, - currentEpoch sdk.Int, + currentEpoch sdkmath.Int, lastFoundationAccBalance sdk.Coins, lastUnissuedPrepay sdk.Coin, lastCommunityPool sdk.Coins, lastMatureTotalOfResNode1 sdk.Coins, - slashingAmtSetup sdk.Int, + slashingAmtSetup sdkmath.Int, feeCollectorToFeePoolAtBeginBlock sdk.Coin) { currentSlashing := registerKeeper.GetSlashing(ctx, resNodeAddr2) t.Log("currentSlashing = " + currentSlashing.String()) individualRewardTotal := sdk.Coins{} - newMatureEpoch := currentEpoch.Add(sdk.NewInt(k.MatureEpoch(ctx))) + newMatureEpoch := currentEpoch.Add(sdkmath.NewInt(k.MatureEpoch(ctx))) k.IteratorIndividualReward(ctx, newMatureEpoch, func(walletAddress sdk.AccAddress, individualReward pottypes.Reward) (stop bool) { individualRewardTotal = individualRewardTotal.Add(individualReward.RewardFromTrafficPool...).Add(individualReward.RewardFromMiningPool...) @@ -782,9 +788,9 @@ func checkResult(t *testing.T, ctx sdk.Context, t.Log("resource node 1 immatureTotal = " + immatureTotal.String()) rewardSrcChange := lastFoundationAccBalance. - Sub(newFoundationAccBalance). + Sub(newFoundationAccBalance...). Add(lastUnissuedPrepay). - Sub(newUnissuedPrepay) + Sub(newUnissuedPrepay...) t.Log("rewardSrcChange = " + rewardSrcChange.String()) // distribution module will send all tokens from "fee_collector" to "distribution" account in the BeginBlocker() method @@ -809,7 +815,7 @@ func checkResult(t *testing.T, ctx sdk.Context, // get mature total changes newMatureTotalOfResNode1 := k.GetMatureTotalReward(ctx, resOwner1) - matureTotalOfResNode1Change, _ := newMatureTotalOfResNode1.SafeSub(lastMatureTotalOfResNode1) + matureTotalOfResNode1Change, _ := newMatureTotalOfResNode1.SafeSub(lastMatureTotalOfResNode1...) if matureTotalOfResNode1Change == nil || matureTotalOfResNode1Change.IsAnyNegative() { matureTotalOfResNode1Change = sdk.Coins{} } @@ -817,7 +823,7 @@ func checkResult(t *testing.T, ctx sdk.Context, require.Equal(t, matureTotalOfResNode1Change.String(), upcomingMaturedIndividual.String()) } -func checkValidator(t *testing.T, app *app.NewApp, addr sdk.ValAddress, expFound bool) stakingtypes.Validator { +func checkValidator(t *testing.T, app *app.StratosApp, addr sdk.ValAddress, expFound bool) stakingtypes.Validator { ctxCheck := app.BaseApp.NewContext(true, tmproto.Header{}) validator, found := app.GetStakingKeeper().GetValidator(ctxCheck, addr) @@ -897,7 +903,7 @@ func setupAccounts() ([]authtypes.GenesisAccount, []banktypes.Balance) { }, { Address: idxNodeAddr1.String(), - Coins: sdk.Coins{stratos.NewCoin(sdk.ZeroInt())}, + Coins: sdk.Coins{stratos.NewCoin(sdkmath.ZeroInt())}, }, { Address: foundationDepositorAccAddr.String(), @@ -956,7 +962,7 @@ func setupAccountsMultipleResNodes(resOwners []sdk.AccAddress) ([]authtypes.Gene }, { Address: idxNodeAddr1.String(), - Coins: sdk.Coins{stratos.NewCoin(sdk.ZeroInt())}, + Coins: sdk.Coins{stratos.NewCoin(sdkmath.ZeroInt())}, }, { Address: foundationDepositorAccAddr.String(), @@ -1057,40 +1063,40 @@ func setupAllMetaNodes() []registertypes.MetaNode { } var ( - initialTotalDepositStore = sdk.NewInt(1500000000000) - effectiveTotalDepositStore = sdk.NewInt(1500000000000) - remainOzoneLimitStore = sdk.NewInt(1500000000000000) - totalUnissuedPrepayStore = sdk.ZeroInt() - nozPrice = sdk.NewDecWithPrec(1000000, 9) + initialTotalDepositStore = sdkmath.NewInt(1500000000000) + effectiveTotalDepositStore = sdkmath.NewInt(1500000000000) + remainOzoneLimitStore = sdkmath.NewInt(1500000000000000) + totalUnissuedPrepayStore = sdkmath.ZeroInt() + nozPrice = sdkmath.LegacyNewDecWithPrec(1000000, 9) //priceChangeChan = make(chan PriceChangeEvent, 0) ) type PriceChangeEvent struct { - depositDelta sdk.Int - unissuedPrepayDelta sdk.Int + depositDelta sdkmath.Int + unissuedPrepayDelta sdkmath.Int } -func simulatePriceChange(t *testing.T, priceChangeEvent *PriceChangeEvent, nozPriceFactorsBefore *NozPriceFactors) (*NozPriceFactors, sdk.Dec, sdk.Dec) { +func simulatePriceChange(t *testing.T, priceChangeEvent *PriceChangeEvent, nozPriceFactorsBefore *NozPriceFactors) (*NozPriceFactors, sdkmath.LegacyDec, sdkmath.LegacyDec) { nozPriceFactorsAfter := &NozPriceFactors{} nozPriceFactorsAfter.InitialTotalDeposit = nozPriceFactorsBefore.InitialTotalDeposit nozPriceFactorsAfter.TotalUnissuedPrepay = nozPriceFactorsBefore.TotalUnissuedPrepay.Add(priceChangeEvent.unissuedPrepayDelta) nozPriceFactorsAfter.DepositAndPrepay = nozPriceFactorsAfter.InitialTotalDeposit.Add(nozPriceFactorsAfter.TotalUnissuedPrepay) nozPriceFactorsAfter.EffectiveTotalDeposit = nozPriceFactorsBefore.EffectiveTotalDeposit.Add(priceChangeEvent.depositDelta) - deltaNozLimit := sdk.ZeroInt() + deltaNozLimit := sdkmath.ZeroInt() nozPriceFactorsAfter.NozSupply = nozPriceFactorsBefore.NozSupply - if !priceChangeEvent.depositDelta.Equal(sdk.ZeroInt()) { - ozoneLimitChangeByDeposit := priceChangeEvent.depositDelta.ToDec().Quo(depositNozRateInt.ToDec()).TruncateInt() - //ozoneLimitChangeByDeposit := nozPriceFactorsBefore.OzoneLimit.ToDec().Quo(nozPriceFactorsBefore.InitialTotalDeposit.ToDec()).Mul(priceChangeEvent.depositDelta.ToDec()).TruncateInt() + if !priceChangeEvent.depositDelta.Equal(sdkmath.ZeroInt()) { + ozoneLimitChangeByDeposit := priceChangeEvent.depositDelta.ToLegacyDec().Quo(depositNozRateInt.ToLegacyDec()).TruncateInt() + //ozoneLimitChangeByDeposit := nozPriceFactorsBefore.OzoneLimit.ToLegacyDec().Quo(nozPriceFactorsBefore.InitialTotalDeposit.ToLegacyDec()).Mul(priceChangeEvent.depositDelta.ToDec()).TruncateInt() deltaNozLimit = deltaNozLimit.Add(ozoneLimitChangeByDeposit) nozPriceFactorsAfter.NozSupply = nozPriceFactorsBefore.NozSupply.Add(ozoneLimitChangeByDeposit) } - if !priceChangeEvent.unissuedPrepayDelta.Equal(sdk.ZeroInt()) { - ozoneLimitChangeByPrepay := nozPriceFactorsBefore.OzoneLimit.ToDec(). - Mul(priceChangeEvent.unissuedPrepayDelta.ToDec()). - Quo(nozPriceFactorsBefore.EffectiveTotalDeposit.Add(nozPriceFactorsBefore.TotalUnissuedPrepay).Add(priceChangeEvent.unissuedPrepayDelta).ToDec()). + if !priceChangeEvent.unissuedPrepayDelta.Equal(sdkmath.ZeroInt()) { + ozoneLimitChangeByPrepay := nozPriceFactorsBefore.OzoneLimit.ToLegacyDec(). + Mul(priceChangeEvent.unissuedPrepayDelta.ToLegacyDec()). + Quo(nozPriceFactorsBefore.EffectiveTotalDeposit.Add(nozPriceFactorsBefore.TotalUnissuedPrepay).Add(priceChangeEvent.unissuedPrepayDelta).ToLegacyDec()). TruncateInt() //Sub(nozPriceFactorsBefore.OzoneLimit) - if priceChangeEvent.unissuedPrepayDelta.GT(sdk.ZeroInt()) { + if priceChangeEvent.unissuedPrepayDelta.GT(sdkmath.ZeroInt()) { // positive value of prepay leads to limit decrease deltaNozLimit = deltaNozLimit.Sub(ozoneLimitChangeByPrepay) } else { @@ -1101,7 +1107,7 @@ func simulatePriceChange(t *testing.T, priceChangeEvent *PriceChangeEvent, nozPr nozPriceFactorsAfter.OzoneLimit = nozPriceFactorsBefore.OzoneLimit.Add(deltaNozLimit) - nozPriceFactorsAfter.NOzonePrice = nozPriceFactorsAfter.DepositAndPrepay.ToDec().Quo(nozPriceFactorsAfter.OzoneLimit.ToDec()) + nozPriceFactorsAfter.NOzonePrice = nozPriceFactorsAfter.DepositAndPrepay.ToLegacyDec().Quo(nozPriceFactorsAfter.OzoneLimit.ToLegacyDec()) nozPriceFactorsAfter.EffectiveTotalDeposit = nozPriceFactorsBefore.EffectiveTotalDeposit.Add(priceChangeEvent.depositDelta) nozPriceDelta := nozPriceFactorsAfter.NOzonePrice.Sub(nozPriceFactorsBefore.NOzonePrice) @@ -1112,12 +1118,12 @@ func simulatePriceChange(t *testing.T, priceChangeEvent *PriceChangeEvent, nozPr ozoneLimitDelta := nozPriceFactorsAfter.OzoneLimit.Sub(nozPriceFactorsBefore.OzoneLimit) nozSupplyDelta := nozPriceFactorsAfter.NozSupply.Sub(nozPriceFactorsBefore.NozSupply) - nozPricePercentage := nozPriceDelta.Quo(nozPriceFactorsBefore.NOzonePrice).MulInt(sdk.NewInt(100)) + nozPricePercentage := nozPriceDelta.Quo(nozPriceFactorsBefore.NOzonePrice).MulInt(sdkmath.NewInt(100)) //initialTotalDepositPercentage := initialTotalDepositDelta.Quo(nozPriceFactorsBefore.InitialTotalDeposit) //effectiveTotalDepositPercentage := effectiveTotalDepositDelta.Quo(nozPriceFactorsBefore.EffectiveTotalDeposit) //totalUnissuedPrepayPercentage := totalUnissuedPrepayDelta.Quo(nozPriceFactorsBefore.TotalUnissuedPrepay) //depositAndPrepayPercentage := depositAndPrepayDelta.Quo(nozPriceFactorsBefore.DepositAndPrepay) - ozoneLimitPercentage := ozoneLimitDelta.ToDec().Quo(nozPriceFactorsBefore.OzoneLimit.ToDec()).MulInt(sdk.NewInt(100)) + ozoneLimitPercentage := ozoneLimitDelta.ToLegacyDec().Quo(nozPriceFactorsBefore.OzoneLimit.ToLegacyDec()).MulInt(sdkmath.NewInt(100)) t.Log("===>>>>>>>>>>>>>> Current noz Price ===>>>>>>>>>>>>>>") t.Log("NOzonePrice: " + nozPriceFactorsAfter.NOzonePrice.String() + "(delta: " + nozPriceDelta.String() + ", " + nozPricePercentage.String()[:5] + "%)") @@ -1162,7 +1168,7 @@ func TestOzPriceChangePrepay(t *testing.T) { foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) accNum := foundationDepositorAcc.GetAccountNumber() accSeq := foundationDepositorAcc.GetSequence() - _, _, err := app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) + _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) @@ -1172,14 +1178,18 @@ func TestOzPriceChangePrepay(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - commission := stakingtypes.NewCommissionRates(sdk.NewDecWithPrec(5, 1), sdk.NewDecWithPrec(5, 1), sdk.NewDec(0)) + commission := stakingtypes.NewCommissionRates( + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDec(0), + ) description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdk.OneInt()) + createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) accNum = valOpAcc1.GetAccountNumber() accSeq = valOpAcc1.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) require.NoError(t, err) app.CheckBalance(t, stApp, valOpAccAddr1, nil) @@ -1190,7 +1200,7 @@ func TestOzPriceChangePrepay(t *testing.T) { validator := checkValidator(t, stApp, valOpValAddr1, true) require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdk.IntEq(t, valInitialStake, validator.BondedTokens())) + require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) _, nozSupply := potKeeper.NozSupply(ctx) St, Pt, Lt := registerKeeper.GetCurrNozPriceParams(ctx) nozPriceFactorsSeq0, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, NozPriceFactors{ @@ -1218,7 +1228,7 @@ func TestOzPriceChangePrepay(t *testing.T) { ownerAccNum := resOwnerAcc.GetAccountNumber() ownerAccSeq := resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1226,8 +1236,8 @@ func TestOzPriceChangePrepay(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) priceAfter, nozPricePercentage, ozoneLimitPercentage = printCurrNozPrice(t, ctx, potKeeper, registerKeeper, priceBefore) dataToExcel = append(dataToExcel, priceAfter) - require.True(t, nozPricePercentage.GT(sdk.ZeroDec()), "noz price should increase after PREPAY") - require.True(t, ozoneLimitPercentage.LT(sdk.ZeroDec()), "OzLimit should not change after PREPAY") + require.True(t, nozPricePercentage.GT(sdkmath.LegacyZeroDec()), "noz price should increase after PREPAY") + require.True(t, ozoneLimitPercentage.LT(sdkmath.LegacyZeroDec()), "OzLimit should not change after PREPAY") t.Log("********************************* Deliver Prepay Tx END ********************************************\n\n...\n[NEXT TEST CASE]") priceBefore = priceAfter @@ -1267,7 +1277,7 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) accNum := foundationDepositorAcc.GetAccountNumber() accSeq := foundationDepositorAcc.GetSequence() - _, _, err := app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) + _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) @@ -1277,14 +1287,18 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - commission := stakingtypes.NewCommissionRates(sdk.NewDecWithPrec(5, 1), sdk.NewDecWithPrec(5, 1), sdk.NewDec(0)) + commission := stakingtypes.NewCommissionRates( + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDec(0), + ) description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdk.OneInt()) + createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) accNum = valOpAcc1.GetAccountNumber() accSeq = valOpAcc1.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) require.NoError(t, err) app.CheckBalance(t, stApp, valOpAccAddr1, nil) @@ -1295,7 +1309,7 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { validator := checkValidator(t, stApp, valOpValAddr1, true) require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdk.IntEq(t, valInitialStake, validator.BondedTokens())) + require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) _, nozSupply := potKeeper.NozSupply(ctx) St, Pt, Lt := registerKeeper.GetCurrNozPriceParams(ctx) nozPriceFactorsSeq0, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, NozPriceFactors{ @@ -1323,7 +1337,7 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { ownerAccNum := resOwnerAcc.GetAccountNumber() ownerAccSeq := resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1331,8 +1345,8 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) priceAfter, nozPricePercentage, ozoneLimitPercentage = printCurrNozPrice(t, ctx, potKeeper, registerKeeper, priceBefore) dataToExcel = append(dataToExcel, priceAfter) - require.True(t, nozPricePercentage.GT(sdk.ZeroDec()), "noz price should increase after PREPAY") - require.True(t, ozoneLimitPercentage.LT(sdk.ZeroDec()), "OzLimit should decrease after PREPAY") + require.True(t, nozPricePercentage.GT(sdkmath.LegacyZeroDec()), "noz price should increase after PREPAY") + require.True(t, ozoneLimitPercentage.LT(sdkmath.LegacyZeroDec()), "OzLimit should decrease after PREPAY") t.Log("********************************* Deliver Prepay Tx END ********************************************\n\n...\n[NEXT TEST CASE]") priceBefore = priceAfter @@ -1345,16 +1359,16 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { lastTotalMinedToken := potKeeper.GetTotalMinedTokens(ctx) t.Log("last committed TotalMinedTokens = " + lastTotalMinedToken.String()) - _, ok := sdk.NewIntFromString(volumeReportMsg.Epoch.String()) + _, ok := sdkmath.NewIntFromString(volumeReportMsg.Epoch.String()) require.Equal(t, ok, true) - totalConsumedNoz := potKeeper.GetTotalConsumedNoz(volumeReportMsg.WalletVolumes).ToDec() + totalConsumedNoz := potKeeper.GetTotalConsumedNoz(volumeReportMsg.WalletVolumes).ToLegacyDec() /********************* print info *********************/ t.Log("epoch " + volumeReportMsg.Epoch.String()) - S := registerKeeper.GetInitialGenesisDepositTotal(ctx).ToDec() - Pt := registerKeeper.GetTotalUnissuedPrepay(ctx).Amount.ToDec() + S := registerKeeper.GetInitialGenesisDepositTotal(ctx).ToLegacyDec() + Pt := registerKeeper.GetTotalUnissuedPrepay(ctx).Amount.ToLegacyDec() Y := totalConsumedNoz - Lt := registerKeeper.GetRemainingOzoneLimit(ctx).ToDec() + Lt := registerKeeper.GetRemainingOzoneLimit(ctx).ToLegacyDec() R := S.Add(Pt).Mul(Y).Quo(Lt.Add(Y)) //t.Log("R = (S + Pt) * Y / (Lt + Y)") t.Log("S=" + S.String() + "\nPt=" + Pt.String() + "\nY=" + Y.String() + "\nLt=" + Lt.String() + "\nR=" + R.String() + "\n") @@ -1427,7 +1441,7 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { _ = bankKeeper.GetBalance(ctx, feePoolAccAddr, potKeeper.BondDenom(ctx)) //feeCollectorToFeePoolAtBeginBlock := bankKeeper.GetBalance(ctx, feePoolAccAddr, potKeeper.BondDenom(ctx)) - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) require.NoError(t, err) header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) @@ -1492,7 +1506,7 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) accNum := foundationDepositorAcc.GetAccountNumber() accSeq := foundationDepositorAcc.GetSequence() - _, _, err := app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) + _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) @@ -1502,14 +1516,18 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - commission := stakingtypes.NewCommissionRates(sdk.NewDecWithPrec(5, 1), sdk.NewDecWithPrec(5, 1), sdk.NewDec(0)) + commission := stakingtypes.NewCommissionRates( + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDec(0), + ) description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdk.OneInt()) + createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) accNum = valOpAcc1.GetAccountNumber() accSeq = valOpAcc1.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) require.NoError(t, err) app.CheckBalance(t, stApp, valOpAccAddr1, nil) @@ -1520,7 +1538,7 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { validator := checkValidator(t, stApp, valOpValAddr1, true) require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdk.IntEq(t, valInitialStake, validator.BondedTokens())) + require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) _, nozSupply := potKeeper.NozSupply(ctx) //nozPriceFactorsSeq0, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, registerKeeper, NozPriceFactors{ // NOzonePrice: registerKeeper.GetCurrNozPriceParams(ctx), @@ -1542,7 +1560,7 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { ownerAccNum := resOwnerAcc.GetAccountNumber() ownerAccSeq := resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKeys[0]) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKeys[0]) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1575,7 +1593,7 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { ownerAccNum := resOwnerAcc.GetAccountNumber() ownerAccSeq := resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKeys[i]) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKeys[i]) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1589,7 +1607,7 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { ownerAccNum = idxOwnerAcc.GetAccountNumber() ownerAccSeq = idxOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1597,8 +1615,8 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { ctx = stApp.BaseApp.NewContext(true, header) priceAfter, nozPricePercentage, ozoneLimitPercentage = printCurrNozPrice(t, ctx, potKeeper, registerKeeper, priceBefore) - require.True(t, nozPricePercentage.LT(sdk.ZeroDec()), "noz price should decrease after CreateResourceNode") - require.True(t, ozoneLimitPercentage.GT(sdk.ZeroDec()), "OzLimit should increase after CreateResourceNode") + require.True(t, nozPricePercentage.LT(sdkmath.LegacyZeroDec()), "noz price should decrease after CreateResourceNode") + require.True(t, ozoneLimitPercentage.GT(sdkmath.LegacyZeroDec()), "OzLimit should increase after CreateResourceNode") t.Log("********************************* Deliver Create and unsuspend ResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") dataToExcel = append(dataToExcel, priceAfter) @@ -1613,7 +1631,7 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { ownerAccNum = idxOwnerAcc.GetAccountNumber() ownerAccSeq = idxOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1635,8 +1653,8 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { //ctx = stApp.BaseApp.NewContext(true, header) priceAfter, nozPricePercentage, ozoneLimitPercentage = printCurrNozPrice(t, ctx, potKeeper, registerKeeper, priceBefore) - require.True(t, nozPricePercentage.GT(sdk.ZeroDec()), "noz price should increase after RemoveResourceNode") - require.True(t, ozoneLimitPercentage.LT(sdk.ZeroDec()), "OzLimit should decrease after RemoveResourceNode") + require.True(t, nozPricePercentage.GT(sdkmath.LegacyZeroDec()), "noz price should increase after RemoveResourceNode") + require.True(t, ozoneLimitPercentage.LT(sdkmath.LegacyZeroDec()), "OzLimit should decrease after RemoveResourceNode") t.Log("********************************* Deliver CreateResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") dataToExcel = append(dataToExcel, priceAfter) @@ -1693,7 +1711,7 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) accNum := foundationDepositorAcc.GetAccountNumber() accSeq := foundationDepositorAcc.GetSequence() - _, _, err := app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) + _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) @@ -1703,14 +1721,18 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - commission := stakingtypes.NewCommissionRates(sdk.NewDecWithPrec(5, 1), sdk.NewDecWithPrec(5, 1), sdk.NewDec(0)) + commission := stakingtypes.NewCommissionRates( + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDec(0), + ) description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdk.OneInt()) + createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) accNum = valOpAcc1.GetAccountNumber() accSeq = valOpAcc1.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) require.NoError(t, err) app.CheckBalance(t, stApp, valOpAccAddr1, nil) @@ -1721,7 +1743,7 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { validator := checkValidator(t, stApp, valOpValAddr1, true) require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdk.IntEq(t, valInitialStake, validator.BondedTokens())) + require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) _, nozSupply := potKeeper.NozSupply(ctx) //nozPriceFactorsSeq0, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, registerKeeper, NozPriceFactors{ // NOzonePrice: registerKeeper.GetCurrNozPriceParams(ctx), @@ -1741,7 +1763,7 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { ownerAccNum := idxOwnerAcc.GetAccountNumber() ownerAccSeq := idxOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1760,7 +1782,7 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { ownerAccNum := resOwnerAcc.GetAccountNumber() ownerAccSeq := resOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKeys[0]) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKeys[0]) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1789,7 +1811,7 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { ownerAccNum = idxOwnerAcc.GetAccountNumber() ownerAccSeq = idxOwnerAcc.GetSequence() - _, _, err = app.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1810,8 +1832,8 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { //ctx = stApp.BaseApp.NewContext(true, header) priceAfter, nozPricePercentage, ozoneLimitPercentage = printCurrNozPrice(t, ctx, potKeeper, registerKeeper, priceBefore) - require.True(t, nozPricePercentage.GT(sdk.ZeroDec()), "noz price should increase after RemoveResourceNode") - require.True(t, ozoneLimitPercentage.LT(sdk.ZeroDec()), "OzLimit should decrease after RemoveResourceNode") + require.True(t, nozPricePercentage.GT(sdkmath.LegacyZeroDec()), "noz price should increase after RemoveResourceNode") + require.True(t, ozoneLimitPercentage.LT(sdkmath.LegacyZeroDec()), "OzLimit should decrease after RemoveResourceNode") t.Log("********************************* Deliver CreateResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") dataToExcel = append(dataToExcel, priceAfter) diff --git a/x/sds/types/codec.go b/x/sds/types/codec.go index e351aed0..557db84c 100644 --- a/x/sds/types/codec.go +++ b/x/sds/types/codec.go @@ -7,6 +7,9 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/msgservice" "github.com/cosmos/cosmos-sdk/x/authz" + authzcodec "github.com/cosmos/cosmos-sdk/x/authz/codec" + govcodec "github.com/cosmos/cosmos-sdk/x/gov/codec" + groupcodec "github.com/cosmos/cosmos-sdk/x/group/codec" ) // RegisterLegacyAminoCodec registers concrete types on codec @@ -41,5 +44,10 @@ func init() { ModuleCdc = codec.NewLegacyAmino() RegisterLegacyAminoCodec(ModuleCdc) cryptocodec.RegisterCrypto(ModuleCdc) - ModuleCdc.Seal() + + // Register all Amino interfaces and concrete types on the authz and gov Amino codec so that this can later be + // used to properly serialize MsgGrant, MsgExec and MsgSubmitProposal instances + RegisterLegacyAminoCodec(authzcodec.Amino) + RegisterLegacyAminoCodec(govcodec.Amino) + RegisterLegacyAminoCodec(groupcodec.Amino) } diff --git a/x/sds/types/errors.go b/x/sds/types/errors.go index 469a770f..f3dd0ffc 100644 --- a/x/sds/types/errors.go +++ b/x/sds/types/errors.go @@ -1,7 +1,7 @@ package types import ( - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "cosmossdk.io/errors" ) const ( @@ -15,23 +15,25 @@ const ( codeErrNoFileFound codeErrInvalidDenom codeErrPrepayFailure - codeErrReporterAddressOrOwner + codeErrReporterAddressOrOwner codeErrInvalidSenderAddr codeErrInvalidBeneficiaryAddr + codeErrOzoneLimitNotEnough ) var ( - ErrInvalid = sdkerrors.Register(ModuleName, codeErrInvalid, "error invalid") - ErrInvalidHeight = sdkerrors.Register(ModuleName, codeErrInvalidHeight, "invalid height") - ErrEmptyUploaderAddr = sdkerrors.Register(ModuleName, codeErrEmptyUploaderAddr, "missing uploader address") - ErrEmptyReporterAddr = sdkerrors.Register(ModuleName, codeErrEmptyReporterAddr, "missing reporter address") - ErrEmptyReporters = sdkerrors.Register(ModuleName, codeErrEmptyReporters, "missing reporters") - ErrEmptyFileHash = sdkerrors.Register(ModuleName, codeErrEmptyFileHash, "missing file hash") - ErrInvalidFileHash = sdkerrors.Register(ModuleName, codeErrInvalidFileHash, "invalid file hash") - ErrNoFileFound = sdkerrors.Register(ModuleName, codeErrNoFileFound, "file does not exist") - ErrInvalidDenom = sdkerrors.Register(ModuleName, codeErrInvalidDenom, "invalid denomination") - ErrPrepayFailure = sdkerrors.Register(ModuleName, codeErrPrepayFailure, "failure during prepay") - ErrReporterAddressOrOwner = sdkerrors.Register(ModuleName, codeErrReporterAddressOrOwner, "invalid reporter address or owner address") - ErrInvalidSenderAddr = sdkerrors.Register(ModuleName, codeErrInvalidSenderAddr, "invalid sender address") - ErrInvalidBeneficiaryAddr = sdkerrors.Register(ModuleName, codeErrInvalidBeneficiaryAddr, "invalid beneficiary address") + ErrInvalid = errors.Register(ModuleName, codeErrInvalid, "error invalid") + ErrInvalidHeight = errors.Register(ModuleName, codeErrInvalidHeight, "invalid height") + ErrEmptyUploaderAddr = errors.Register(ModuleName, codeErrEmptyUploaderAddr, "missing uploader address") + ErrEmptyReporterAddr = errors.Register(ModuleName, codeErrEmptyReporterAddr, "missing reporter address") + ErrEmptyReporters = errors.Register(ModuleName, codeErrEmptyReporters, "missing reporters") + ErrEmptyFileHash = errors.Register(ModuleName, codeErrEmptyFileHash, "missing file hash") + ErrInvalidFileHash = errors.Register(ModuleName, codeErrInvalidFileHash, "invalid file hash") + ErrNoFileFound = errors.Register(ModuleName, codeErrNoFileFound, "file does not exist") + ErrInvalidDenom = errors.Register(ModuleName, codeErrInvalidDenom, "invalid denomination") + ErrPrepayFailure = errors.Register(ModuleName, codeErrPrepayFailure, "failure during prepay") + ErrReporterAddressOrOwner = errors.Register(ModuleName, codeErrReporterAddressOrOwner, "invalid reporter address or owner address") + ErrInvalidSenderAddr = errors.Register(ModuleName, codeErrInvalidSenderAddr, "invalid sender address") + ErrInvalidBeneficiaryAddr = errors.Register(ModuleName, codeErrInvalidBeneficiaryAddr, "invalid beneficiary address") + ErrOzoneLimitNotEnough = errors.Register(ModuleName, codeErrOzoneLimitNotEnough, "not enough remaining ozone limit to complete prepay") ) diff --git a/x/sds/types/expected.go b/x/sds/types/expected.go new file mode 100644 index 00000000..96ece8b7 --- /dev/null +++ b/x/sds/types/expected.go @@ -0,0 +1,16 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// DONTCOVER + +// ParamsSubspace defines an interface that implements the legacy x/params ParamsSubspace +// type. +// +// NOTE: This is used solely for migration of x/params managed parameters. +type ParamsSubspace interface { + GetParamSet(ctx sdk.Context, ps paramstypes.ParamSet) +} diff --git a/x/sds/types/expected_keepers.go b/x/sds/types/expected_keepers.go index ab1254f4..0eae0bd3 100644 --- a/x/sds/types/expected_keepers.go +++ b/x/sds/types/expected_keepers.go @@ -1 +1,28 @@ package types + +import ( + sdkmath "cosmossdk.io/math" + sdk "github.com/cosmos/cosmos-sdk/types" + stratos "github.com/stratosnet/stratos-chain/types" +) + +// BankKeeper defines the expected interface needed to retrieve account balances. +type BankKeeper interface { + HasBalance(ctx sdk.Context, addr sdk.AccAddress, amt sdk.Coin) bool + SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error +} + +type RegisterKeeper interface { + GetCurrNozPriceParams(ctx sdk.Context) (St, Pt, Lt sdkmath.Int) + GetEffectiveTotalDeposit(ctx sdk.Context) (deposit sdkmath.Int) + GetMetaNodeBitMapIndex(ctx sdk.Context, networkAddr stratos.SdsAddress) (index int, err error) + GetRemainingOzoneLimit(ctx sdk.Context) (value sdkmath.Int) + GetTotalUnissuedPrepay(ctx sdk.Context) (totalUnissuedPrepay sdk.Coin) + SetRemainingOzoneLimit(ctx sdk.Context, value sdkmath.Int) + OwnMetaNode(ctx sdk.Context, ownerAddr sdk.AccAddress, p2pAddr stratos.SdsAddress) bool +} + +type PotKeeper interface { + GetCurrentNozPrice(St, Pt, Lt sdkmath.Int) (currentNozPrice sdkmath.LegacyDec) + NozSupply(ctx sdk.Context) (remaining, total sdkmath.Int) +} diff --git a/x/sds/types/genesis.go b/x/sds/types/genesis.go index 449c6485..1a749382 100644 --- a/x/sds/types/genesis.go +++ b/x/sds/types/genesis.go @@ -3,8 +3,8 @@ package types import ( "encoding/json" + sdkmath "cosmossdk.io/math" "github.com/cosmos/cosmos-sdk/codec" - sdk "github.com/cosmos/cosmos-sdk/types" ) // NewGenesisState creates a new GenesisState object @@ -44,7 +44,7 @@ func ValidateGenesis(data GenesisState) error { if len(file.FileHash) == 0 { return ErrEmptyFileHash } - if file.FileInfo.Height.LT(sdk.ZeroInt()) { + if file.FileInfo.Height.LT(sdkmath.ZeroInt()) { return ErrInvalidHeight } if len(file.FileInfo.Reporters) == 0 { diff --git a/x/sds/types/genesis.pb.go b/x/sds/types/genesis.pb.go index 9039cce6..71004345 100644 --- a/x/sds/types/genesis.pb.go +++ b/x/sds/types/genesis.pb.go @@ -5,8 +5,8 @@ package types import ( fmt "fmt" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" @@ -136,7 +136,7 @@ func init() { func init() { proto.RegisterFile("stratos/sds/v1/genesis.proto", fileDescriptor_a3396301dd7676d6) } var fileDescriptor_a3396301dd7676d6 = []byte{ - // 344 bytes of a gzipped FileDescriptorProto + // 348 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x29, 0x2e, 0x29, 0x4a, 0x2c, 0xc9, 0x2f, 0xd6, 0x2f, 0x4e, 0x29, 0xd6, 0x2f, 0x33, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x83, 0xca, 0xea, 0x15, 0xa7, 0x14, @@ -153,14 +153,73 @@ var fileDescriptor_a3396301dd7676d6 = []byte{ 0x93, 0xe2, 0xab, 0x7b, 0xf2, 0x08, 0xc1, 0x4f, 0xf7, 0xe4, 0x05, 0x10, 0x86, 0x81, 0x85, 0x94, 0x82, 0x38, 0x40, 0x6c, 0x8f, 0xc4, 0xe2, 0x0c, 0xa1, 0x18, 0xa8, 0xfe, 0xcc, 0xbc, 0xb4, 0x7c, 0x09, 0x26, 0xb0, 0xcf, 0x25, 0xd0, 0x5d, 0x0b, 0x77, 0xa6, 0x2a, 0xd4, 0x99, 0x08, 0x2d, 0x68, - 0xa6, 0x83, 0x84, 0xa0, 0xa6, 0x83, 0x35, 0x78, 0x9e, 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, 0x94, 0x7e, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x3e, 0xd4, - 0xba, 0xbc, 0xd4, 0x12, 0x18, 0x53, 0x37, 0x39, 0x23, 0x31, 0x33, 0x4f, 0xbf, 0x02, 0x1c, 0x6f, - 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x49, 0x6c, 0xe0, 0x78, 0x33, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, - 0x10, 0x41, 0x42, 0x04, 0x17, 0x02, 0x00, 0x00, + 0xa6, 0x83, 0x84, 0xa0, 0xa6, 0x83, 0x35, 0xf8, 0xae, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, + 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, + 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0xfa, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, + 0xf9, 0xb9, 0xfa, 0x50, 0x2b, 0xf3, 0x52, 0x4b, 0x60, 0x4c, 0xdd, 0xe4, 0x8c, 0xc4, 0xcc, 0x3c, + 0xfd, 0x0a, 0x70, 0xdc, 0x95, 0x54, 0x16, 0xa4, 0x16, 0x27, 0xb1, 0x81, 0xe3, 0xce, 0x18, 0x10, + 0x00, 0x00, 0xff, 0xff, 0x9a, 0x3b, 0xca, 0x5d, 0x1b, 0x02, 0x00, 0x00, } +func (this *GenesisState) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*GenesisState) + if !ok { + that2, ok := that.(GenesisState) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Params.Equal(that1.Params) { + return false + } + if len(this.Files) != len(that1.Files) { + return false + } + for i := range this.Files { + if !this.Files[i].Equal(&that1.Files[i]) { + return false + } + } + return true +} +func (this *GenesisFileInfo) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*GenesisFileInfo) + if !ok { + that2, ok := that.(GenesisFileInfo) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.FileHash != that1.FileHash { + return false + } + if !this.FileInfo.Equal(&that1.FileInfo) { + return false + } + return true +} func (m *GenesisState) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) diff --git a/x/sds/types/key.go b/x/sds/types/key.go index d4417851..72003e6c 100644 --- a/x/sds/types/key.go +++ b/x/sds/types/key.go @@ -15,8 +15,7 @@ const ( ) var ( - // FileStorage prefix for sds store - FileStoreKeyPrefix = []byte{0x01} + FileStoreKeyPrefix = []byte{0x01} // FileStorage prefix for sds store ) // FileStoreKey turn an address to key used to get it from the account store diff --git a/x/sds/types/msg.go b/x/sds/types/msg.go index 3feaab88..a09e3c5e 100644 --- a/x/sds/types/msg.go +++ b/x/sds/types/msg.go @@ -3,6 +3,7 @@ package types import ( "github.com/ipfs/go-cid" + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" @@ -57,35 +58,35 @@ func (msg MsgFileUpload) GetSignBytes() []byte { func (msg MsgFileUpload) ValidateBasic() error { _, err := cid.Decode(msg.FileHash) if err != nil { - return sdkerrors.Wrap(ErrInvalidFileHash, "failed to validate file hash") + return errors.Wrap(ErrInvalidFileHash, "failed to validate file hash") } from, err := sdk.AccAddressFromBech32(msg.GetFrom()) if err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "failed to validate from address") + return errors.Wrap(sdkerrors.ErrInvalidAddress, "failed to validate from address") } reporter, err := stratos.SdsAddressFromBech32(msg.GetReporter()) if err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "failed to parse reporter address") + return errors.Wrap(sdkerrors.ErrInvalidAddress, "failed to parse reporter address") } uploader, err := sdk.AccAddressFromBech32(msg.GetUploader()) if err != nil { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "failed to parse uploader address") + return errors.Wrap(sdkerrors.ErrInvalidAddress, "failed to parse uploader address") } if from.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "missing address of tx from") + return errors.Wrap(sdkerrors.ErrInvalidAddress, "missing address of tx from") } if reporter.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "missing address of tx reporter") + return errors.Wrap(sdkerrors.ErrInvalidAddress, "missing address of tx reporter") } if uploader.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "missing address of file uploader") + return errors.Wrap(sdkerrors.ErrInvalidAddress, "missing address of file uploader") } if len(msg.FileHash) == 0 { - return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "missing file hash") + return errors.Wrap(sdkerrors.ErrInvalidRequest, "missing file hash") } return nil } @@ -135,7 +136,7 @@ func (msg MsgPrepay) ValidateBasic() error { } if msg.Amount.Empty() { - return sdkerrors.Wrap(sdkerrors.ErrInvalidCoins, "missing amount to send") + return errors.Wrap(sdkerrors.ErrInvalidCoins, "missing amount to send") } return nil diff --git a/x/sds/types/params.go b/x/sds/types/params.go index e1378cb0..e1054f46 100644 --- a/x/sds/types/params.go +++ b/x/sds/types/params.go @@ -1,22 +1,19 @@ package types import ( - "errors" "fmt" "strings" + "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" stratos "github.com/stratosnet/stratos-chain/types" ) -// Default parameter namespace const ( DefaultBondDenom = stratos.Wei ) -// Parameter store keys var ( KeyBondDenom = []byte("BondDenom") ) @@ -53,7 +50,7 @@ func validateBondDenom(i interface{}) error { } if strings.TrimSpace(v) == "" { - return errors.New("bond denom cannot be blank") + return fmt.Errorf("bond denom cannot be blank") } if err := sdk.ValidateDenom(v); err != nil { return err @@ -64,7 +61,7 @@ func validateBondDenom(i interface{}) error { func (p Params) ValidateBasic() error { if err := validateBondDenom(p.BondDenom); err != nil { - return sdkerrors.Wrap(ErrInvalidDenom, "failed to validate bond denomination") + return errors.Wrap(ErrInvalidDenom, "failed to validate bond denomination") } return nil } diff --git a/x/sds/types/querier.go b/x/sds/types/querier.go deleted file mode 100644 index 5d407f92..00000000 --- a/x/sds/types/querier.go +++ /dev/null @@ -1,21 +0,0 @@ -package types - -// querier keys -const ( - QueryParams = "params" - QueryFileUpload = "file_upload" - QuerySimulatePrepay = "simulate_prepay" - QueryCurrNozPrice = "curr_noz_price" - QueryNozSupply = "noz_supply" -) - -type QueryFileUploadParams struct { - FileHash string `json:"file_hash" yaml:"file_hash"` -} - -// NewQueryUploadedFileParams creates a new instance of QueryValidatorSlashesParams -func NewQueryFileUploadParams(fileHash string) QueryFileUploadParams { - return QueryFileUploadParams{ - FileHash: fileHash, - } -} diff --git a/x/sds/types/query.pb.go b/x/sds/types/query.pb.go index 91328d2b..3a82f103 100644 --- a/x/sds/types/query.pb.go +++ b/x/sds/types/query.pb.go @@ -6,11 +6,12 @@ package types import ( context "context" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - grpc1 "github.com/gogo/protobuf/grpc" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -449,54 +450,56 @@ func init() { func init() { proto.RegisterFile("stratos/sds/v1/query.proto", fileDescriptor_5b213ac8f144321e) } var fileDescriptor_5b213ac8f144321e = []byte{ - // 745 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xcd, 0x4f, 0x13, 0x4d, - 0x1c, 0xee, 0x42, 0x68, 0xe8, 0xf0, 0xbe, 0x6f, 0xde, 0x8c, 0x58, 0xca, 0x42, 0x76, 0x71, 0x94, - 0x0f, 0x0f, 0xec, 0xa4, 0x18, 0x2e, 0x1e, 0xc1, 0x2f, 0x62, 0xa2, 0xb5, 0x84, 0x8b, 0x89, 0x21, - 0xd3, 0x76, 0x68, 0x37, 0x76, 0x67, 0x96, 0xce, 0xb6, 0xb1, 0x35, 0x72, 0xf0, 0xe2, 0xcd, 0x98, - 0x78, 0xf0, 0x7f, 0xf0, 0x2f, 0xe1, 0x48, 0xe2, 0xc5, 0x78, 0x58, 0x0d, 0x18, 0x0f, 0x1c, 0xfb, - 0x17, 0x98, 0xf9, 0x68, 0x4b, 0x97, 0x22, 0x72, 0xea, 0xee, 0xef, 0xeb, 0x79, 0x9e, 0x5f, 0x7f, - 0x4f, 0x0b, 0x6c, 0x11, 0x35, 0x48, 0xc4, 0x05, 0x16, 0x15, 0x81, 0x5b, 0x79, 0xbc, 0xdf, 0xa4, - 0x8d, 0xb6, 0x17, 0x36, 0x78, 0xc4, 0xe1, 0x7f, 0x26, 0xe7, 0x89, 0x8a, 0xf0, 0x5a, 0x79, 0x7b, - 0xba, 0xca, 0xab, 0x5c, 0xa5, 0xb0, 0x7c, 0xd2, 0x55, 0xf6, 0x7c, 0x95, 0xf3, 0x6a, 0x9d, 0x62, - 0x12, 0xfa, 0x98, 0x30, 0xc6, 0x23, 0x12, 0xf9, 0x9c, 0x09, 0x93, 0x75, 0xca, 0x5c, 0x04, 0x5c, - 0xe0, 0x12, 0x11, 0x14, 0xb7, 0xf2, 0x25, 0x1a, 0x91, 0x3c, 0x2e, 0x73, 0x9f, 0x99, 0x7c, 0x2e, - 0x81, 0x2f, 0xa1, 0x54, 0x06, 0xad, 0x83, 0xec, 0x33, 0x49, 0xe6, 0x81, 0x5f, 0xa7, 0x3b, 0x61, - 0x9d, 0x93, 0x4a, 0x91, 0xee, 0x37, 0xa9, 0x88, 0xe0, 0x1c, 0xc8, 0xec, 0xf9, 0x75, 0xba, 0x5b, - 0x23, 0xa2, 0x96, 0xb3, 0x16, 0xac, 0x95, 0x4c, 0x71, 0x52, 0x06, 0x1e, 0x11, 0x51, 0x43, 0x05, - 0x30, 0x73, 0xae, 0x4d, 0x84, 0x9c, 0x09, 0x0a, 0xd7, 0x4d, 0x9f, 0xcf, 0xf6, 0xb8, 0xea, 0x9b, - 0x5a, 0xcb, 0x79, 0xc3, 0x1a, 0x3d, 0xd9, 0xb6, 0xc5, 0xf6, 0xb8, 0x9e, 0x28, 0x9f, 0xd0, 0x27, - 0x0b, 0x5c, 0x57, 0x23, 0xb7, 0xfd, 0xa0, 0xd0, 0xa0, 0x21, 0x69, 0xf7, 0x88, 0x1c, 0x80, 0x34, - 0x09, 0x78, 0x93, 0x45, 0x39, 0x6b, 0x61, 0x7c, 0x65, 0x6a, 0x6d, 0xd6, 0xd3, 0x6a, 0x3d, 0xa9, - 0xd6, 0x33, 0x6a, 0xbd, 0x4d, 0xee, 0xb3, 0x8d, 0xc7, 0x87, 0xb1, 0x9b, 0x3a, 0x8d, 0x5d, 0xd3, - 0xd0, 0x8d, 0xdd, 0x7f, 0xdb, 0x24, 0xa8, 0xdf, 0x45, 0xfa, 0x1d, 0x7d, 0xfe, 0xee, 0xae, 0x54, - 0xfd, 0xa8, 0xd6, 0x2c, 0x79, 0x65, 0x1e, 0x60, 0xb3, 0x35, 0xfd, 0xb1, 0x2a, 0x2a, 0x2f, 0x71, - 0xd4, 0x0e, 0xa9, 0x50, 0xb3, 0x44, 0xd1, 0x0c, 0x41, 0xdc, 0xac, 0xe8, 0x0c, 0x31, 0x23, 0x75, - 0x07, 0x8c, 0x33, 0xde, 0xd1, 0xcb, 0xd9, 0xd8, 0x94, 0xd8, 0xdf, 0x62, 0x77, 0xe9, 0x2f, 0x00, - 0xb6, 0x58, 0x74, 0x1a, 0xbb, 0xb2, 0xb9, 0x1b, 0xbb, 0x40, 0x53, 0x64, 0xbc, 0x83, 0x8a, 0x32, - 0x84, 0xb2, 0x60, 0x5a, 0x01, 0x3e, 0xe1, 0x9d, 0x42, 0xc3, 0x2f, 0x53, 0xb3, 0x08, 0xd4, 0x32, - 0x1b, 0x1a, 0xc4, 0x0d, 0x8f, 0x17, 0x60, 0x22, 0x94, 0x01, 0xc3, 0xe4, 0xe1, 0x15, 0x98, 0xdc, - 0xa3, 0xe5, 0xd3, 0xd8, 0xd5, 0xed, 0xdd, 0xd8, 0xfd, 0x47, 0x73, 0x51, 0xaf, 0xa8, 0xa8, 0xc3, - 0x68, 0x66, 0x80, 0xbb, 0xdd, 0x0c, 0xc3, 0x7a, 0xef, 0x9b, 0x41, 0xbf, 0x2c, 0xb3, 0x9a, 0x33, - 0x19, 0x43, 0x29, 0x00, 0x99, 0x06, 0x0d, 0x88, 0xcf, 0x7c, 0x56, 0x35, 0xb4, 0x9e, 0x5e, 0x79, - 0x41, 0x83, 0x11, 0xdd, 0xd8, 0xfd, 0x5f, 0x53, 0xeb, 0x87, 0x50, 0x71, 0x90, 0x96, 0x1b, 0x88, - 0x78, 0x44, 0xea, 0xb9, 0xb1, 0x2b, 0x6f, 0x40, 0x43, 0xe9, 0xf6, 0xc1, 0x06, 0xd4, 0x2b, 0x2a, - 0xea, 0x30, 0x9a, 0x06, 0x50, 0xe9, 0x2c, 0x90, 0x06, 0x09, 0x44, 0x4f, 0xfe, 0x7d, 0x70, 0x6d, - 0x28, 0x6a, 0xa4, 0x7b, 0x20, 0x1d, 0xaa, 0x88, 0xb9, 0xfe, 0x6c, 0xf2, 0xfa, 0x4d, 0xbd, 0xa9, - 0x5a, 0x7b, 0x37, 0x01, 0x26, 0xd4, 0x1c, 0xf8, 0xde, 0x02, 0x40, 0x5a, 0xa3, 0xa9, 0x1c, 0x05, - 0x97, 0x92, 0x8d, 0xa3, 0x9d, 0x6a, 0x2f, 0x5f, 0x5a, 0xa7, 0x99, 0x21, 0xfc, 0xf6, 0xcb, 0xcf, - 0x8f, 0x63, 0xb7, 0xe1, 0x32, 0x4e, 0xfc, 0x1e, 0x28, 0xc3, 0x6a, 0x54, 0xfc, 0xba, 0xef, 0xfa, - 0x37, 0xf0, 0x00, 0x64, 0xfa, 0x57, 0x0f, 0x17, 0x47, 0xc2, 0x24, 0xed, 0x6a, 0x2f, 0x5d, 0x56, - 0x66, 0xc8, 0x20, 0x45, 0x66, 0x1e, 0xda, 0x49, 0x32, 0xc2, 0x0f, 0x76, 0x43, 0x0d, 0xd9, 0x01, - 0x93, 0xbd, 0x63, 0x87, 0xb7, 0x46, 0xce, 0x4d, 0x78, 0xc4, 0x5e, 0xbc, 0xa4, 0xca, 0x80, 0xdf, - 0x50, 0xe0, 0x73, 0x70, 0x36, 0x09, 0xce, 0x78, 0x67, 0x57, 0x5d, 0xbd, 0xd4, 0xde, 0x3f, 0x6b, - 0x78, 0xe1, 0xd8, 0x21, 0x43, 0x5c, 0xa0, 0xfd, 0x9c, 0x3b, 0x2e, 0xd6, 0x2e, 0xe1, 0x85, 0x86, - 0xdc, 0x07, 0x69, 0x7d, 0x28, 0x10, 0x8d, 0x9c, 0x3a, 0x74, 0x8b, 0xf6, 0xcd, 0x3f, 0xd6, 0x18, - 0x58, 0x47, 0xc1, 0xe6, 0x60, 0x36, 0x09, 0xab, 0x2f, 0x71, 0x63, 0xeb, 0xf0, 0xd8, 0xb1, 0x8e, - 0x8e, 0x1d, 0xeb, 0xc7, 0xb1, 0x63, 0x7d, 0x38, 0x71, 0x52, 0x47, 0x27, 0x4e, 0xea, 0xeb, 0x89, - 0x93, 0x7a, 0x8e, 0xcf, 0x18, 0xc9, 0xf4, 0x32, 0x1a, 0xf5, 0x1e, 0x57, 0xcb, 0x35, 0xe2, 0x33, - 0xfc, 0x4a, 0x8d, 0x53, 0xae, 0x2a, 0xa5, 0xd5, 0xdf, 0xcb, 0x9d, 0xdf, 0x01, 0x00, 0x00, 0xff, - 0xff, 0x57, 0x56, 0x3b, 0xbc, 0xfa, 0x06, 0x00, 0x00, + // 771 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x4d, 0x4f, 0xdb, 0x48, + 0x18, 0x8e, 0x41, 0x44, 0x64, 0xd8, 0x5d, 0xad, 0xbc, 0x6c, 0x08, 0x06, 0xd9, 0xac, 0x77, 0xf9, + 0xd8, 0x03, 0x1e, 0x85, 0x15, 0x97, 0x3d, 0xb2, 0x6c, 0xd5, 0xa8, 0x52, 0x15, 0x82, 0xb8, 0x54, + 0xaa, 0xa2, 0x89, 0x33, 0x24, 0x16, 0xf1, 0x8c, 0xc9, 0x4c, 0x50, 0x13, 0x04, 0x07, 0x54, 0xa9, + 0xb7, 0xaa, 0x52, 0x0f, 0xfd, 0x0f, 0x3d, 0xf7, 0x47, 0x70, 0x44, 0xed, 0xa5, 0xea, 0xc1, 0xad, + 0xa0, 0x27, 0x8e, 0xf9, 0x05, 0xd5, 0x7c, 0xe4, 0xcb, 0x84, 0x52, 0x4e, 0xd8, 0xf3, 0x3e, 0xef, + 0xfb, 0x3c, 0xef, 0xc3, 0x3c, 0x0e, 0xb0, 0x18, 0x6f, 0x22, 0x4e, 0x19, 0x64, 0x55, 0x06, 0x8f, + 0xf2, 0xf0, 0xb0, 0x85, 0x9b, 0x6d, 0x2f, 0x6a, 0x52, 0x4e, 0xcd, 0x5f, 0x74, 0xcd, 0x63, 0x55, + 0xe6, 0x1d, 0xe5, 0xad, 0xd9, 0x1a, 0xad, 0x51, 0x59, 0x82, 0xe2, 0x49, 0xa1, 0xac, 0x79, 0x9f, + 0xb2, 0x90, 0xb2, 0xb2, 0x2a, 0xa8, 0x17, 0x5d, 0x5a, 0xac, 0x51, 0x5a, 0x6b, 0x60, 0x88, 0xa2, + 0x00, 0x22, 0x42, 0x28, 0x47, 0x3c, 0xa0, 0xa4, 0x57, 0xb5, 0x15, 0x16, 0x56, 0x10, 0xc3, 0xf0, + 0x28, 0x5f, 0xc1, 0x1c, 0xe5, 0xa1, 0x4f, 0x03, 0xa2, 0xeb, 0xb9, 0x84, 0x34, 0xa1, 0x42, 0x56, + 0xdc, 0x4d, 0x90, 0xdd, 0x11, 0x3a, 0x1f, 0x04, 0x0d, 0xbc, 0x17, 0x35, 0x28, 0xaa, 0x96, 0xf0, + 0x61, 0x0b, 0x33, 0x6e, 0x2e, 0x80, 0xcc, 0x7e, 0xd0, 0xc0, 0xe5, 0x3a, 0x62, 0xf5, 0x9c, 0xb1, + 0x64, 0xac, 0x65, 0x4a, 0xd3, 0xe2, 0xe0, 0x21, 0x62, 0x75, 0xb7, 0x08, 0xe6, 0x6e, 0xb4, 0xb1, + 0x88, 0x12, 0x86, 0xcd, 0x4d, 0xdd, 0x17, 0x90, 0x7d, 0x2a, 0xfb, 0x66, 0x36, 0x72, 0xde, 0xe8, + 0xfa, 0x9e, 0x68, 0x2b, 0x90, 0x7d, 0xaa, 0x26, 0x8a, 0x27, 0xf7, 0x8d, 0x01, 0x7e, 0x97, 0x23, + 0x77, 0x83, 0xb0, 0xd8, 0xc4, 0x11, 0x6a, 0xf7, 0x84, 0x9c, 0x82, 0x34, 0x0a, 0x69, 0x8b, 0xf0, + 0x9c, 0xb1, 0x34, 0xb9, 0x36, 0xb3, 0x31, 0xef, 0x69, 0x67, 0xc4, 0xb6, 0x9e, 0xde, 0xd6, 0xfb, + 0x8f, 0x06, 0x64, 0xeb, 0xd1, 0x79, 0xec, 0xa4, 0xae, 0x63, 0x47, 0x37, 0x74, 0x63, 0xe7, 0xe7, + 0x36, 0x0a, 0x1b, 0xff, 0xba, 0xea, 0xdd, 0x7d, 0xfb, 0xd9, 0x59, 0xab, 0x05, 0xbc, 0xde, 0xaa, + 0x78, 0x3e, 0x0d, 0xb5, 0xc3, 0xfa, 0xcf, 0x3a, 0xab, 0x1e, 0x40, 0xde, 0x8e, 0x30, 0x93, 0xb3, + 0x58, 0x49, 0x0f, 0x71, 0x4f, 0xb4, 0x45, 0x43, 0xc2, 0xf4, 0xaa, 0x3e, 0x98, 0x24, 0xb4, 0xa3, + 0xcc, 0xd9, 0xda, 0x11, 0xdc, 0x9f, 0x62, 0x67, 0xe5, 0x07, 0x08, 0x0a, 0x84, 0x5f, 0xc7, 0x8e, + 0x68, 0xee, 0xc6, 0x0e, 0x50, 0x12, 0x09, 0xed, 0xb8, 0xef, 0xdf, 0xad, 0x03, 0xbd, 0x5c, 0x81, + 0xf0, 0x92, 0x00, 0xb8, 0x59, 0x30, 0x2b, 0xe9, 0x1f, 0xd3, 0x4e, 0xb1, 0x19, 0xf8, 0x58, 0xdb, + 0xe2, 0x3e, 0xef, 0x19, 0x36, 0x28, 0x68, 0x59, 0x07, 0x60, 0x2a, 0x12, 0x07, 0x5a, 0xd8, 0xde, + 0x3d, 0x84, 0x6d, 0x63, 0xff, 0x3a, 0x76, 0x54, 0x7b, 0x37, 0x76, 0x7e, 0x52, 0xd2, 0xe4, 0xeb, + 0xb0, 0xb8, 0x6d, 0xec, 0x97, 0x14, 0xc8, 0x9d, 0x1b, 0xa8, 0xd8, 0x6d, 0x45, 0x51, 0xa3, 0xf7, + 0x6f, 0x73, 0xcf, 0x26, 0xb4, 0x6f, 0x43, 0x15, 0x2d, 0xf0, 0x18, 0x64, 0x9a, 0x38, 0x44, 0x01, + 0x09, 0x48, 0x4d, 0x8b, 0x7c, 0x7a, 0x6f, 0xf7, 0x06, 0x23, 0xba, 0xb1, 0xf3, 0xab, 0x12, 0xda, + 0x3f, 0x4a, 0x3a, 0x39, 0x00, 0x0b, 0x77, 0x38, 0xe5, 0xa8, 0x91, 0x9b, 0xb8, 0xb7, 0x3b, 0x8a, + 0x58, 0xb5, 0x0f, 0xdc, 0x91, 0xaf, 0x49, 0x42, 0x05, 0x72, 0x67, 0x81, 0x29, 0x3d, 0x28, 0xa2, + 0x26, 0x0a, 0x59, 0xcf, 0x9a, 0xff, 0xc1, 0x6f, 0x23, 0xa7, 0xda, 0x16, 0x0f, 0xa4, 0x23, 0x79, + 0xa2, 0x63, 0x93, 0x4d, 0xc6, 0x46, 0xe3, 0x35, 0x6a, 0xe3, 0xc5, 0x14, 0x98, 0x92, 0x73, 0xcc, + 0x97, 0x06, 0x00, 0x22, 0x53, 0x2d, 0x19, 0x45, 0x73, 0x25, 0xd9, 0x38, 0x3e, 0xe2, 0xd6, 0xea, + 0x9d, 0x38, 0xa5, 0xcc, 0x85, 0x67, 0x1f, 0xbe, 0xbe, 0x9e, 0xf8, 0xdb, 0x5c, 0x85, 0x89, 0x0f, + 0x89, 0x4c, 0xba, 0x62, 0x85, 0xc7, 0xfd, 0xcf, 0xc5, 0x89, 0x79, 0x0a, 0x32, 0xfd, 0xb8, 0x98, + 0xcb, 0x63, 0x69, 0x92, 0x39, 0xb7, 0x56, 0xee, 0x82, 0x69, 0x31, 0xae, 0x14, 0xb3, 0x68, 0x5a, + 0x49, 0x31, 0x2c, 0x08, 0xcb, 0x91, 0xa2, 0xec, 0x80, 0xe9, 0x5e, 0x2c, 0xcc, 0xbf, 0xc6, 0xce, + 0x4d, 0xc4, 0xc9, 0x5a, 0xbe, 0x03, 0xa5, 0xc9, 0xff, 0x90, 0xe4, 0x0b, 0xe6, 0x7c, 0x92, 0x9c, + 0xd0, 0x4e, 0x59, 0x26, 0x42, 0xec, 0xde, 0xbf, 0xf2, 0xe6, 0xad, 0x63, 0x47, 0xc2, 0x72, 0xcb, + 0xee, 0x37, 0x92, 0x73, 0xfb, 0xee, 0x82, 0x9e, 0x29, 0xca, 0x43, 0x90, 0x56, 0x17, 0xc5, 0x74, + 0xc7, 0x4e, 0x1d, 0xb9, 0x8b, 0xd6, 0x9f, 0xdf, 0xc5, 0x68, 0x5a, 0x5b, 0xd2, 0xe6, 0xcc, 0x6c, + 0x92, 0x56, 0xdd, 0xc4, 0xad, 0xc2, 0xf9, 0xa5, 0x6d, 0x5c, 0x5c, 0xda, 0xc6, 0x97, 0x4b, 0xdb, + 0x78, 0x75, 0x65, 0xa7, 0x2e, 0xae, 0xec, 0xd4, 0xc7, 0x2b, 0x3b, 0xf5, 0x04, 0x0e, 0xc5, 0x4a, + 0xf7, 0x12, 0xcc, 0x7b, 0x8f, 0xeb, 0x7e, 0x1d, 0x05, 0x04, 0x3e, 0x93, 0xe3, 0x64, 0xc6, 0x2a, + 0x69, 0xf9, 0xbb, 0xf4, 0xcf, 0xb7, 0x00, 0x00, 0x00, 0xff, 0xff, 0x77, 0xc7, 0x0d, 0x78, 0x4e, + 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/sds/types/query.pb.gw.go b/x/sds/types/query.pb.gw.go index e8b40c84..1144aec2 100644 --- a/x/sds/types/query.pb.gw.go +++ b/x/sds/types/query.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join func request_Query_Fileupload_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryFileUploadRequest @@ -178,12 +180,14 @@ func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshal // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer 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 (such as grpc.SendHeader, etc) to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterQueryHandlerFromEndpoint instead. func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, server QueryServer) error { mux.Handle("GET", pattern_Query_Fileupload_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -191,6 +195,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Fileupload_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -204,6 +209,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_SimPrepay_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -211,6 +218,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_SimPrepay_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -224,6 +232,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_NozPrice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -231,6 +241,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_NozPrice_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -244,6 +255,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_NozSupply_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -251,6 +264,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_NozSupply_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -264,6 +278,8 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv mux.Handle("GET", pattern_Query_Params_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -271,6 +287,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } resp, md, err := local_request_Query_Params_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -426,15 +443,15 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( - pattern_Query_Fileupload_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "sds", "v1", "file_upload", "file_hash"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Fileupload_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "sds", "v1", "file_upload", "file_hash"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_SimPrepay_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "sim_prepay"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_SimPrepay_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "sim_prepay"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_NozPrice_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "noz_price"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_NozPrice_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "noz_price"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_NozSupply_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "noz_supply"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_NozSupply_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "noz_supply"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "params"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "params"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( diff --git a/x/sds/types/sds.pb.go b/x/sds/types/sds.pb.go index d9a3bcd4..759ce8ef 100644 --- a/x/sds/types/sds.pb.go +++ b/x/sds/types/sds.pb.go @@ -4,10 +4,12 @@ package types import ( + bytes "bytes" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" io "io" math "math" math_bits "math/bits" @@ -130,30 +132,86 @@ func init() { func init() { proto.RegisterFile("stratos/sds/v1/sds.proto", fileDescriptor_a89f3959b8649eb2) } var fileDescriptor_a89f3959b8649eb2 = []byte{ - // 334 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x91, 0x3d, 0x6b, 0xeb, 0x30, - 0x14, 0x86, 0xad, 0x7b, 0x21, 0x24, 0xe2, 0xde, 0x7e, 0x98, 0x0e, 0xa6, 0x83, 0x95, 0xba, 0x50, - 0xb2, 0xc4, 0x22, 0x74, 0x6b, 0x87, 0x82, 0x29, 0x05, 0x43, 0x87, 0xe2, 0xb1, 0x4b, 0x51, 0x62, - 0xd5, 0x36, 0x8d, 0x7d, 0x8c, 0xa4, 0x84, 0xe6, 0x5f, 0xf4, 0x67, 0x65, 0xcc, 0x58, 0x3a, 0x88, - 0x92, 0x6c, 0xee, 0xe6, 0x5f, 0x50, 0xfc, 0x91, 0x8f, 0xe9, 0x9c, 0xf3, 0xbc, 0x7a, 0x25, 0x1d, - 0x5e, 0x6c, 0x49, 0x25, 0x98, 0x02, 0x49, 0x65, 0x28, 0xe9, 0x7c, 0x54, 0x15, 0x37, 0x17, 0xa0, - 0xc0, 0x3c, 0x6a, 0x15, 0xb7, 0x42, 0xf3, 0xd1, 0xf9, 0x59, 0x04, 0x11, 0xd4, 0x12, 0xad, 0xba, - 0xe6, 0x94, 0xf3, 0x88, 0x3b, 0x4f, 0x4c, 0xb0, 0x54, 0x9a, 0x1e, 0xc6, 0x63, 0xc8, 0xc2, 0x97, - 0x90, 0x67, 0x90, 0x5a, 0xa8, 0x8f, 0x06, 0x3d, 0xef, 0xb2, 0xd0, 0xe4, 0x80, 0x96, 0x9a, 0x9c, - 0x2e, 0x58, 0x3a, 0xbd, 0x71, 0xf6, 0xcc, 0x09, 0x7a, 0xd5, 0x70, 0x5f, 0xf7, 0x3f, 0x08, 0x77, - 0x1f, 0x92, 0x29, 0xf7, 0xb3, 0x57, 0x30, 0x19, 0xee, 0xc4, 0x3c, 0x89, 0x62, 0xd5, 0x5e, 0xe6, - 0x2f, 0x35, 0x31, 0xbe, 0x34, 0xb9, 0x8a, 0x12, 0x15, 0xcf, 0xc6, 0xee, 0x04, 0x52, 0x3a, 0x01, - 0x99, 0x82, 0x6c, 0xcb, 0x50, 0x86, 0x6f, 0x54, 0x2d, 0x72, 0x2e, 0x5d, 0x3f, 0x53, 0x85, 0x26, - 0xad, 0xbf, 0xd4, 0xe4, 0x7f, 0xf3, 0x6c, 0x33, 0x3b, 0x41, 0x2b, 0x98, 0x77, 0xb8, 0x27, 0x78, - 0x0e, 0x42, 0x71, 0x21, 0xad, 0x3f, 0x7d, 0x34, 0xf8, 0xe7, 0x5d, 0x14, 0x9a, 0xec, 0x61, 0xa9, - 0xc9, 0x49, 0x63, 0xdd, 0x21, 0x27, 0xd8, 0xcb, 0xe6, 0x2d, 0xee, 0xce, 0xf2, 0x29, 0xb0, 0x90, - 0x0b, 0xeb, 0x6f, 0xfd, 0x4b, 0x52, 0x68, 0xb2, 0x63, 0xa5, 0x26, 0xc7, 0x8d, 0x7d, 0x4b, 0x9c, - 0x60, 0x27, 0x7a, 0xfe, 0x72, 0x6d, 0xa3, 0xd5, 0xda, 0x46, 0xdf, 0x6b, 0x1b, 0x7d, 0x6c, 0x6c, - 0x63, 0xb5, 0xb1, 0x8d, 0xcf, 0x8d, 0x6d, 0x3c, 0xd3, 0x83, 0x15, 0xdb, 0x18, 0x32, 0xae, 0xb6, - 0xed, 0x70, 0x12, 0xb3, 0x24, 0xa3, 0xef, 0x75, 0x66, 0xf5, 0xbe, 0xe3, 0x4e, 0x9d, 0xc6, 0xf5, - 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd6, 0xc6, 0x4f, 0x7b, 0xcf, 0x01, 0x00, 0x00, + // 361 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x91, 0x4d, 0x4b, 0xf3, 0x40, + 0x10, 0xc7, 0xb3, 0xcf, 0x03, 0xa5, 0x5d, 0x9e, 0xc7, 0x97, 0xe0, 0x21, 0xf6, 0x90, 0xad, 0x11, + 0xa4, 0x97, 0x26, 0x14, 0x6f, 0x7a, 0x10, 0x82, 0x08, 0x05, 0x05, 0xc9, 0x45, 0xf0, 0x52, 0xd2, + 0x66, 0x4d, 0x82, 0x4d, 0x36, 0xec, 0x6e, 0x8b, 0xfd, 0x16, 0x7e, 0x0c, 0x3f, 0x80, 0x1f, 0xa2, + 0xc7, 0xe2, 0x49, 0x3c, 0x2c, 0x92, 0xde, 0x72, 0xcc, 0xcd, 0x9b, 0x24, 0xbb, 0x7d, 0x39, 0xcd, + 0xcc, 0xef, 0x3f, 0x33, 0x3b, 0xb3, 0x03, 0x0d, 0xc6, 0xa9, 0xcf, 0x09, 0x73, 0x58, 0xc0, 0x9c, + 0x59, 0xbf, 0x32, 0x76, 0x46, 0x09, 0x27, 0xfa, 0x9e, 0x52, 0xec, 0x0a, 0xcd, 0xfa, 0xed, 0xa3, + 0x90, 0x84, 0xa4, 0x96, 0x9c, 0xca, 0x93, 0x59, 0xed, 0xe3, 0x31, 0x61, 0x09, 0x61, 0x43, 0x29, + 0xc8, 0x40, 0x4a, 0xd6, 0x2d, 0x6c, 0xdc, 0xfb, 0xd4, 0x4f, 0x98, 0xee, 0x42, 0x38, 0x22, 0x69, + 0x30, 0x0c, 0x70, 0x4a, 0x12, 0x03, 0x74, 0x40, 0xb7, 0xe5, 0x9e, 0x16, 0x02, 0xed, 0xd0, 0x52, + 0xa0, 0xc3, 0xb9, 0x9f, 0x4c, 0x2e, 0xac, 0x2d, 0xb3, 0xbc, 0x56, 0x15, 0x5c, 0xd7, 0xfe, 0x0f, + 0x80, 0xcd, 0x9b, 0x78, 0x82, 0x07, 0xe9, 0x13, 0xd1, 0x09, 0x6c, 0x44, 0x38, 0x0e, 0x23, 0xae, + 0x9a, 0x3d, 0x2c, 0x04, 0xd2, 0xbe, 0x04, 0x3a, 0x0b, 0x63, 0x1e, 0x4d, 0x47, 0xf6, 0x98, 0x24, + 0x6a, 0x16, 0x65, 0x7a, 0x2c, 0x78, 0x76, 0xf8, 0x3c, 0xc3, 0xcc, 0x1e, 0xa4, 0xbc, 0x10, 0x48, + 0xd5, 0x97, 0x02, 0xfd, 0x97, 0xcf, 0xca, 0xd8, 0xfa, 0x78, 0xef, 0x41, 0xb5, 0xc5, 0x20, 0xe5, + 0x9e, 0x4a, 0xd3, 0xaf, 0x60, 0x8b, 0xe2, 0x8c, 0x50, 0x8e, 0x29, 0x33, 0xfe, 0x74, 0x40, 0xf7, + 0x9f, 0x7b, 0x52, 0x08, 0xb4, 0x85, 0xa5, 0x40, 0x07, 0xb2, 0xd1, 0x06, 0x59, 0xde, 0x56, 0xd6, + 0x2f, 0x61, 0x73, 0x9a, 0x4d, 0x88, 0x1f, 0x60, 0x6a, 0xfc, 0xad, 0x67, 0x46, 0x85, 0x40, 0x1b, + 0x56, 0x0a, 0xb4, 0x2f, 0xcb, 0xd7, 0xc4, 0xf2, 0x36, 0xa2, 0x7b, 0xf7, 0x96, 0x9b, 0x60, 0x91, + 0x9b, 0x60, 0x99, 0x9b, 0xe0, 0x3b, 0x37, 0xc1, 0xeb, 0xca, 0xd4, 0x96, 0x2b, 0x53, 0xfb, 0x5c, + 0x99, 0xda, 0xa3, 0xb3, 0xb3, 0xb4, 0xba, 0x59, 0x8a, 0xf9, 0xda, 0xed, 0x8d, 0x23, 0x3f, 0x4e, + 0x9d, 0x97, 0xfa, 0xc0, 0xf5, 0x0f, 0x8c, 0x1a, 0xf5, 0x7d, 0xce, 0x7f, 0x03, 0x00, 0x00, 0xff, + 0xff, 0x1d, 0xf7, 0x87, 0xea, 0xfc, 0x01, 0x00, 0x00, } +func (this *Params) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Params) + if !ok { + that2, ok := that.(Params) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.BondDenom != that1.BondDenom { + return false + } + return true +} +func (this *FileInfo) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*FileInfo) + if !ok { + that2, ok := that.(FileInfo) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Height.Equal(that1.Height) { + return false + } + if !bytes.Equal(this.Reporters, that1.Reporters) { + return false + } + if this.Uploader != that1.Uploader { + return false + } + return true +} func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) diff --git a/x/sds/types/tx.pb.go b/x/sds/types/tx.pb.go index d4cd230c..e811d037 100644 --- a/x/sds/types/tx.pb.go +++ b/x/sds/types/tx.pb.go @@ -8,9 +8,9 @@ import ( fmt "fmt" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types "github.com/cosmos/cosmos-sdk/types" - _ "github.com/gogo/protobuf/gogoproto" - grpc1 "github.com/gogo/protobuf/grpc" - proto "github.com/gogo/protobuf/proto" + _ "github.com/cosmos/gogoproto/gogoproto" + grpc1 "github.com/cosmos/gogoproto/grpc" + proto "github.com/cosmos/gogoproto/proto" _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -241,43 +241,154 @@ func init() { func init() { proto.RegisterFile("stratos/sds/v1/tx.proto", fileDescriptor_a5a216e2f9435b27) } var fileDescriptor_a5a216e2f9435b27 = []byte{ - // 572 bytes of a gzipped FileDescriptorProto + // 575 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x53, 0x41, 0x6b, 0x13, 0x41, 0x14, 0xce, 0x36, 0xa5, 0xb4, 0x13, 0x6a, 0x75, 0xab, 0x66, 0x9b, 0xda, 0x9d, 0x76, 0xa4, 0x10, - 0x90, 0xee, 0x90, 0xf6, 0xa6, 0xe0, 0x21, 0x82, 0x56, 0x24, 0x20, 0x0b, 0x5e, 0xbc, 0xc8, 0x24, - 0x99, 0x6c, 0x16, 0x77, 0x67, 0x96, 0x9d, 0x49, 0x68, 0x2e, 0x22, 0xde, 0xbc, 0x09, 0xfe, 0x0b, - 0x7f, 0x49, 0x8f, 0x05, 0x2f, 0x9e, 0x56, 0x49, 0x3c, 0xe5, 0x98, 0x83, 0xe0, 0x4d, 0x76, 0x66, - 0xb2, 0x49, 0x8a, 0x7a, 0xda, 0x99, 0xef, 0x7b, 0xdf, 0x7b, 0x6f, 0xdf, 0xf7, 0x06, 0x54, 0x85, - 0x4c, 0x89, 0xe4, 0x02, 0x8b, 0xae, 0xc0, 0xc3, 0x06, 0x96, 0x17, 0x5e, 0x92, 0x72, 0xc9, 0xed, - 0x1b, 0x86, 0xf0, 0x44, 0x57, 0x78, 0xc3, 0x46, 0xed, 0x76, 0xc0, 0x03, 0xae, 0x28, 0x9c, 0x9f, - 0x74, 0x54, 0xed, 0x5e, 0xc0, 0x79, 0x10, 0x51, 0x4c, 0x92, 0x10, 0x13, 0xc6, 0xb8, 0x24, 0x32, - 0xe4, 0x4c, 0x18, 0xd6, 0xed, 0x70, 0x11, 0x73, 0x81, 0xdb, 0x44, 0x50, 0x3c, 0x6c, 0xb4, 0xa9, - 0x24, 0x0d, 0xdc, 0xe1, 0x21, 0xd3, 0x3c, 0xfa, 0x65, 0x81, 0xed, 0x96, 0x08, 0x9e, 0x86, 0x11, - 0x7d, 0x95, 0x44, 0x9c, 0x74, 0xed, 0xc7, 0x60, 0xab, 0x17, 0x46, 0xf4, 0x4d, 0x9f, 0x88, 0xbe, - 0x63, 0x1d, 0x5a, 0xf5, 0xad, 0xe6, 0xd1, 0x34, 0x83, 0x0b, 0x70, 0x96, 0xc1, 0x9b, 0x23, 0x12, - 0x47, 0x0f, 0x51, 0x01, 0x21, 0x7f, 0x33, 0x3f, 0x9f, 0x13, 0xd1, 0xb7, 0x1f, 0x80, 0xf5, 0x5e, - 0xca, 0x63, 0x67, 0x4d, 0x49, 0xab, 0xd3, 0x0c, 0xaa, 0xfb, 0x2c, 0x83, 0x15, 0xa3, 0x4a, 0x79, - 0x8c, 0x7c, 0x05, 0xda, 0x8f, 0xc0, 0x66, 0x4a, 0x13, 0x9e, 0x4a, 0x9a, 0x3a, 0x65, 0x25, 0x80, - 0xd3, 0x0c, 0x16, 0xd8, 0x2c, 0x83, 0x3b, 0x5a, 0x34, 0x47, 0x90, 0x5f, 0x90, 0xb9, 0x78, 0xa0, - 0x7a, 0xa6, 0xa9, 0xb3, 0xbe, 0x10, 0xcf, 0xb1, 0x85, 0x78, 0x8e, 0x20, 0xbf, 0x20, 0x51, 0x15, - 0xdc, 0x59, 0xf9, 0x6f, 0x9f, 0x8a, 0x84, 0x33, 0x41, 0xd1, 0xc7, 0x35, 0xb0, 0xd5, 0x12, 0xc1, - 0xcb, 0x94, 0x26, 0x64, 0x64, 0x9f, 0x81, 0x0d, 0x41, 0x59, 0x5e, 0x41, 0x8f, 0x62, 0x7f, 0x9a, - 0x41, 0x83, 0xcc, 0x32, 0xb8, 0xad, 0xf3, 0xeb, 0x3b, 0xf2, 0x0d, 0x61, 0x3f, 0x03, 0x95, 0x36, - 0x65, 0xb4, 0x17, 0x76, 0x42, 0x92, 0x8e, 0xcc, 0x24, 0x8e, 0xa7, 0x19, 0x5c, 0x86, 0x67, 0x19, - 0xb4, 0xb5, 0x7c, 0x09, 0x44, 0xfe, 0x72, 0x88, 0xfd, 0x0e, 0x6c, 0x90, 0x98, 0x0f, 0x98, 0x74, - 0xca, 0x87, 0xe5, 0x7a, 0xe5, 0x74, 0xcf, 0xd3, 0x76, 0x7a, 0xb9, 0x9d, 0x9e, 0xb1, 0xd3, 0x7b, - 0xc2, 0x43, 0xd6, 0x7c, 0x71, 0x99, 0xc1, 0x52, 0xde, 0x9c, 0x16, 0x2c, 0x9a, 0xd3, 0x77, 0xf4, - 0xe5, 0x3b, 0xac, 0x07, 0xa1, 0xec, 0x0f, 0xda, 0x5e, 0x87, 0xc7, 0xd8, 0xac, 0x85, 0xfe, 0x9c, - 0x88, 0xee, 0x5b, 0x2c, 0x47, 0x09, 0x15, 0x2a, 0x97, 0xf0, 0x4d, 0x12, 0xb4, 0x0b, 0x6e, 0x15, - 0xa3, 0x98, 0x0f, 0xe8, 0xf4, 0xb7, 0x05, 0xca, 0x2d, 0x11, 0xd8, 0xef, 0x2d, 0xb0, 0x7b, 0x4e, - 0x58, 0x37, 0xa2, 0xab, 0x0b, 0x74, 0xe0, 0xad, 0xee, 0xad, 0xb7, 0x42, 0xd7, 0x8e, 0xff, 0x4b, - 0x17, 0x36, 0xdc, 0xff, 0xf0, 0xf5, 0xe7, 0xe7, 0xb5, 0x03, 0xb4, 0x8f, 0xaf, 0x3d, 0x0f, 0xb5, - 0x74, 0xda, 0x46, 0x9b, 0x83, 0x9d, 0xa2, 0x03, 0x63, 0xd8, 0xde, 0x5f, 0xd2, 0x6b, 0xaa, 0x76, - 0xf4, 0x4f, 0xaa, 0xa8, 0xea, 0xaa, 0xaa, 0x0e, 0xba, 0x7b, 0xbd, 0x6a, 0xa2, 0xe2, 0x9a, 0xcf, - 0x2f, 0xc7, 0xae, 0x75, 0x35, 0x76, 0xad, 0x1f, 0x63, 0xd7, 0xfa, 0x34, 0x71, 0x4b, 0x57, 0x13, - 0xb7, 0xf4, 0x6d, 0xe2, 0x96, 0x5e, 0xe3, 0xa5, 0xe1, 0x1a, 0x2d, 0xa3, 0x72, 0x7e, 0x3c, 0xe9, - 0xf4, 0x49, 0xc8, 0xf0, 0x85, 0x4a, 0xa7, 0x26, 0xdd, 0xde, 0x50, 0x0f, 0xf0, 0xec, 0x4f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x8f, 0xf1, 0x39, 0xd2, 0xff, 0x03, 0x00, 0x00, + 0x90, 0xee, 0x90, 0xf6, 0xa6, 0xe0, 0x21, 0x82, 0x16, 0x24, 0x20, 0x0b, 0x5e, 0xbc, 0xc8, 0x24, + 0x99, 0x6c, 0x16, 0x77, 0x67, 0x96, 0x9d, 0x49, 0x68, 0x2e, 0x22, 0xde, 0xbc, 0x09, 0xfe, 0x09, + 0xf1, 0x97, 0xf4, 0x58, 0xf0, 0xe2, 0x69, 0x95, 0xc4, 0x53, 0x8e, 0x39, 0x08, 0xde, 0x64, 0x67, + 0x26, 0x9b, 0xa4, 0xa8, 0xa7, 0x9d, 0xf9, 0xbe, 0xf7, 0xbd, 0xf7, 0xf6, 0x7d, 0x6f, 0x40, 0x55, + 0xc8, 0x94, 0x48, 0x2e, 0xb0, 0xe8, 0x0a, 0x3c, 0x6c, 0x60, 0x79, 0xe1, 0x25, 0x29, 0x97, 0xdc, + 0xbe, 0x61, 0x08, 0x4f, 0x74, 0x85, 0x37, 0x6c, 0xd4, 0x6e, 0x07, 0x3c, 0xe0, 0x8a, 0xc2, 0xf9, + 0x49, 0x47, 0xd5, 0xee, 0x05, 0x9c, 0x07, 0x11, 0xc5, 0x24, 0x09, 0x31, 0x61, 0x8c, 0x4b, 0x22, + 0x43, 0xce, 0x84, 0x61, 0xdd, 0x0e, 0x17, 0x31, 0x17, 0xb8, 0x4d, 0x04, 0xc5, 0xc3, 0x46, 0x9b, + 0x4a, 0xd2, 0xc0, 0x1d, 0x1e, 0x32, 0xcd, 0xa3, 0x5f, 0x16, 0xd8, 0x6e, 0x89, 0xe0, 0x69, 0x18, + 0xd1, 0x97, 0x49, 0xc4, 0x49, 0xd7, 0x7e, 0x0c, 0xb6, 0x7a, 0x61, 0x44, 0x5f, 0xf7, 0x89, 0xe8, + 0x3b, 0xd6, 0xa1, 0x55, 0xdf, 0x6a, 0x1e, 0x4d, 0x33, 0xb8, 0x00, 0x67, 0x19, 0xbc, 0x39, 0x22, + 0x71, 0xf4, 0x10, 0x15, 0x10, 0xf2, 0x37, 0xf3, 0xf3, 0x39, 0x11, 0x7d, 0xfb, 0x01, 0x58, 0xef, + 0xa5, 0x3c, 0x76, 0xd6, 0x94, 0xb4, 0x3a, 0xcd, 0xa0, 0xba, 0xcf, 0x32, 0x58, 0x31, 0xaa, 0x94, + 0xc7, 0xc8, 0x57, 0xa0, 0xfd, 0x08, 0x6c, 0xa6, 0x34, 0xe1, 0xa9, 0xa4, 0xa9, 0x53, 0x56, 0x02, + 0x38, 0xcd, 0x60, 0x81, 0xcd, 0x32, 0xb8, 0xa3, 0x45, 0x73, 0x04, 0xf9, 0x05, 0x99, 0x8b, 0x07, + 0xaa, 0x67, 0x9a, 0x3a, 0xeb, 0x0b, 0xf1, 0x1c, 0x5b, 0x88, 0xe7, 0x08, 0xf2, 0x0b, 0x12, 0x55, + 0xc1, 0x9d, 0x95, 0xff, 0xf6, 0xa9, 0x48, 0x38, 0x13, 0x14, 0x7d, 0x58, 0x03, 0x5b, 0x2d, 0x11, + 0xbc, 0x48, 0x69, 0x42, 0x46, 0xf6, 0x19, 0xd8, 0x10, 0x94, 0xe5, 0x15, 0xf4, 0x28, 0xf6, 0xa7, + 0x19, 0x34, 0xc8, 0x2c, 0x83, 0xdb, 0x3a, 0xbf, 0xbe, 0x23, 0xdf, 0x10, 0xf6, 0x33, 0x50, 0x69, + 0x53, 0x46, 0x7b, 0x61, 0x27, 0x24, 0xe9, 0xc8, 0x4c, 0xe2, 0x78, 0x9a, 0xc1, 0x65, 0x78, 0x96, + 0x41, 0x5b, 0xcb, 0x97, 0x40, 0xe4, 0x2f, 0x87, 0xd8, 0x6f, 0xc1, 0x06, 0x89, 0xf9, 0x80, 0x49, + 0xa7, 0x7c, 0x58, 0xae, 0x57, 0x4e, 0xf7, 0x3c, 0x6d, 0xa7, 0x97, 0xdb, 0xe9, 0x19, 0x3b, 0xbd, + 0x27, 0x3c, 0x64, 0xcd, 0xe7, 0x97, 0x19, 0x2c, 0xe5, 0xcd, 0x69, 0xc1, 0xa2, 0x39, 0x7d, 0x47, + 0x5f, 0xbe, 0xc3, 0x7a, 0x10, 0xca, 0xfe, 0xa0, 0xed, 0x75, 0x78, 0x8c, 0xcd, 0x5a, 0xe8, 0xcf, + 0x89, 0xe8, 0xbe, 0xc1, 0x72, 0x94, 0x50, 0xa1, 0x72, 0x09, 0xdf, 0x24, 0x41, 0xbb, 0xe0, 0x56, + 0x31, 0x8a, 0xf9, 0x80, 0x4e, 0x7f, 0x5b, 0xa0, 0xdc, 0x12, 0x81, 0xfd, 0xce, 0x02, 0xbb, 0xe7, + 0x84, 0x75, 0x23, 0xba, 0xba, 0x40, 0x07, 0xde, 0xea, 0xde, 0x7a, 0x2b, 0x74, 0xed, 0xf8, 0xbf, + 0x74, 0x61, 0xc3, 0xfd, 0xf7, 0x5f, 0x7f, 0x7e, 0x5a, 0x3b, 0x40, 0xfb, 0xf8, 0xda, 0xf3, 0x50, + 0x4b, 0xa7, 0x6d, 0xb4, 0x39, 0xd8, 0x29, 0x3a, 0x30, 0x86, 0xed, 0xfd, 0x25, 0xbd, 0xa6, 0x6a, + 0x47, 0xff, 0xa4, 0x8a, 0xaa, 0xae, 0xaa, 0xea, 0xa0, 0xbb, 0xd7, 0xab, 0x26, 0x2a, 0xae, 0xd9, + 0xfa, 0x3c, 0x76, 0xad, 0xcb, 0xb1, 0x6b, 0x5d, 0x8d, 0x5d, 0xeb, 0xc7, 0xd8, 0xb5, 0x3e, 0x4e, + 0xdc, 0xd2, 0xd5, 0xc4, 0x2d, 0x7d, 0x9b, 0xb8, 0xa5, 0x57, 0x78, 0x69, 0xc0, 0x46, 0xcf, 0xa8, + 0x9c, 0x1f, 0x4f, 0x3a, 0x7d, 0x12, 0x32, 0x7c, 0xa1, 0x52, 0xaa, 0x69, 0xb7, 0x37, 0xd4, 0x23, + 0x3c, 0xfb, 0x13, 0x00, 0x00, 0xff, 0xff, 0xa4, 0xe3, 0xcc, 0xde, 0x03, 0x04, 0x00, 0x00, +} + +func (this *MsgFileUpload) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgFileUpload) + if !ok { + that2, ok := that.(MsgFileUpload) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.FileHash != that1.FileHash { + return false + } + if this.From != that1.From { + return false + } + if this.Reporter != that1.Reporter { + return false + } + if this.Uploader != that1.Uploader { + return false + } + return true +} +func (this *MsgFileUploadResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgFileUploadResponse) + if !ok { + that2, ok := that.(MsgFileUploadResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} +func (this *MsgPrepay) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgPrepay) + if !ok { + that2, ok := that.(MsgPrepay) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Sender != that1.Sender { + return false + } + if this.Beneficiary != that1.Beneficiary { + return false + } + if len(this.Amount) != len(that1.Amount) { + return false + } + for i := range this.Amount { + if !this.Amount[i].Equal(&that1.Amount[i]) { + return false + } + } + return true +} +func (this *MsgPrepayResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgPrepayResponse) + if !ok { + that2, ok := that.(MsgPrepayResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/sds/types/tx.pb.gw.go b/x/sds/types/tx.pb.gw.go index 2d27aa39..4bab3641 100644 --- a/x/sds/types/tx.pb.gw.go +++ b/x/sds/types/tx.pb.gw.go @@ -20,6 +20,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -30,6 +31,7 @@ var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage +var _ = metadata.Join var ( filter_Msg_HandleMsgFileUpload_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} @@ -106,12 +108,14 @@ func local_request_Msg_HandleMsgPrepay_0(ctx context.Context, marshaler runtime. // RegisterMsgHandlerServer registers the http handlers for service Msg to "mux". // UnaryRPC :call MsgServer 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 (such as grpc.SendHeader, etc) to stop working. Consider using RegisterMsgHandlerFromEndpoint instead. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterMsgHandlerFromEndpoint instead. func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server MsgServer) error { mux.Handle("POST", pattern_Msg_HandleMsgFileUpload_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -119,6 +123,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgFileUpload_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -132,6 +137,8 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server mux.Handle("POST", pattern_Msg_HandleMsgPrepay_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { @@ -139,6 +146,7 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server return } resp, md, err := local_request_Msg_HandleMsgPrepay_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -234,9 +242,9 @@ func RegisterMsgHandlerClient(ctx context.Context, mux *runtime.ServeMux, client } var ( - pattern_Msg_HandleMsgFileUpload_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "file_upload"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgFileUpload_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "file_upload"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgPrepay_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "prepay"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_Msg_HandleMsgPrepay_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "sds", "v1", "prepay"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( diff --git a/x/sds/types/types.go b/x/sds/types/types.go index 07f17a49..59f67b59 100644 --- a/x/sds/types/types.go +++ b/x/sds/types/types.go @@ -1,11 +1,11 @@ package types import ( - sdk "github.com/cosmos/cosmos-sdk/types" + sdkmath "cosmossdk.io/math" ) // NewFileInfo constructor -func NewFileInfo(height sdk.Int, reporters []byte, uploader string) FileInfo { +func NewFileInfo(height sdkmath.Int, reporters []byte, uploader string) FileInfo { return FileInfo{ Height: height, Reporters: reporters, From 90f3ad658c0f507c29b4b6a595c85b80b053eafe Mon Sep 17 00:00:00 2001 From: Xiong Date: Mon, 23 Oct 2023 17:30:14 -0400 Subject: [PATCH 02/15] node start error fix --- proto/stratos/evm/v1/evm.proto | 23 ++- proto/stratos/evm/v1/genesis.proto | 43 ++++- proto/stratos/pot/v1/genesis.proto | 18 +- proto/stratos/pot/v1/pot.proto | 22 +++ proto/stratos/register/v1/genesis.proto | 16 +- proto/stratos/register/v1/register.proto | 24 ++- proto/stratos/sds/v1/genesis.proto | 4 + proto/stratos/sds/v1/sds.proto | 7 +- x/evm/{ => keeper}/genesis.go | 8 +- x/evm/keeper/keeper.go | 4 - x/evm/keeper/params.go | 25 ++- x/evm/module.go | 4 +- x/evm/types/evm.pb.go | 224 ++++++++++++----------- x/evm/types/genesis.pb.go | 121 ++++++------ x/evm/types/key.go | 2 + x/evm/types/params.go | 36 ---- x/evm/types/params_legacy.go | 45 +++++ x/pot/{ => keeper}/genesis.go | 43 +++-- x/pot/keeper/keeper.go | 2 - x/pot/keeper/params.go | 39 ++-- x/pot/module.go | 4 +- x/pot/types/genesis.pb.go | 93 +++++----- x/pot/types/key.go | 5 +- x/pot/types/params.go | 77 ++------ x/pot/types/params_legacy.go | 34 ++++ x/pot/types/pot.pb.go | 150 +++++++-------- x/register/{ => keeper}/genesis.go | 67 ++++--- x/register/keeper/keeper.go | 2 - x/register/keeper/params.go | 42 +++-- x/register/module.go | 4 +- x/register/types/genesis.go | 7 +- x/register/types/genesis.pb.go | 160 ++++++++-------- x/register/types/keys.go | 3 +- x/register/types/params.go | 62 ++----- x/register/types/params_legacy.go | 36 ++++ x/register/types/register.pb.go | 193 +++++++++---------- x/sds/{ => keeper}/genesis.go | 17 +- x/sds/keeper/keeper.go | 9 +- x/sds/keeper/params.go | 24 ++- x/sds/keeper/store.go | 10 +- x/sds/module.go | 6 +- x/sds/types/genesis.go | 6 +- x/sds/types/genesis.pb.go | 75 ++++---- x/sds/types/key.go | 9 +- x/sds/types/params.go | 29 +-- x/sds/types/params_legacy.go | 23 +++ x/sds/types/sds.pb.go | 54 +++--- 47 files changed, 1047 insertions(+), 864 deletions(-) rename x/evm/{ => keeper}/genesis.go (92%) create mode 100644 x/evm/types/params_legacy.go rename x/pot/{ => keeper}/genesis.go (56%) create mode 100644 x/pot/types/params_legacy.go rename x/register/{ => keeper}/genesis.go (55%) create mode 100644 x/register/types/params_legacy.go rename x/sds/{ => keeper}/genesis.go (50%) create mode 100644 x/sds/types/params_legacy.go diff --git a/proto/stratos/evm/v1/evm.proto b/proto/stratos/evm/v1/evm.proto index 80c84387..78b2f6c3 100644 --- a/proto/stratos/evm/v1/evm.proto +++ b/proto/stratos/evm/v1/evm.proto @@ -3,12 +3,15 @@ package stratos.evm.v1; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/evm/types"; // Params defines the EVM module parameters message Params { + option (gogoproto.goproto_stringer) = true; + option (amino.name) = "stratos/x/evm/Params"; // evm denom represents the token denomination used to run the EVM state // transitions. string evm_denom = 1 [ (gogoproto.moretags) = "yaml:\"evm_denom\"" ]; @@ -23,12 +26,14 @@ message Params { ]; // chain config defines the EVM chain configuration parameters ChainConfig chain_config = 5 [ - (gogoproto.moretags) = "yaml:\"chain_config\"", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.moretags) = "yaml:\"chain_config\"" ]; FeeMarketParams fee_market_params = 6 [ - (gogoproto.moretags) = "yaml:\"fee_market_params\"", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.moretags) = "yaml:\"fee_market_params\"" ]; } @@ -207,8 +212,9 @@ message TxResult { // tx_logs contains the transaction hash and the proto-compatible ethereum // logs. TransactionLogs tx_logs = 3 [ - (gogoproto.moretags) = "yaml:\"tx_logs\"", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.moretags) = "yaml:\"tx_logs\"" ]; // ret defines the bytes from the execution. bytes ret = 4; @@ -275,8 +281,9 @@ message FeeMarketParams { int64 enable_height = 5; // base fee for EIP-1559 blocks. string base_fee = 6 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; } \ No newline at end of file diff --git a/proto/stratos/evm/v1/genesis.proto b/proto/stratos/evm/v1/genesis.proto index 962f5bca..a93358ab 100644 --- a/proto/stratos/evm/v1/genesis.proto +++ b/proto/stratos/evm/v1/genesis.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package stratos.evm.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; import "stratos/evm/v1/evm.proto"; option (gogoproto.equal_all) = true; @@ -9,15 +11,30 @@ option go_package = "github.com/stratosnet/stratos-chain/x/evm/types"; // GenesisState defines the evm module's genesis state. message GenesisState { - // accounts is an array containing the ethereum genesis accounts. - repeated GenesisAccount accounts = 1 [ (gogoproto.nullable) = false ]; // params defines all the parameters of the module. - Params params = 2 [ (gogoproto.nullable) = false ]; + Params params = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.jsontag) = "params", + (gogoproto.moretags) = "yaml:\"params\"" + ]; + + // accounts is an array containing the ethereum genesis accounts. + repeated GenesisAccount accounts = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (gogoproto.jsontag) = "accounts", + (gogoproto.moretags) = "yaml:\"accounts\"" + ]; /*---------------------------fee market start----------------------------------------*/ // block gas is the amount of gas used on the last block before the upgrade. // Zero by default. - uint64 block_gas = 3; + uint64 block_gas = 3 [ + (amino.dont_omitempty) = true, + (gogoproto.jsontag) = "block_gas", + (gogoproto.moretags) = "yaml:\"block_gas\"" + ]; } // GenesisAccount defines an account to be initialized in the genesis state. @@ -25,10 +42,20 @@ message GenesisState { // custom storage type and that it doesn't contain the private key field. message GenesisAccount { // address defines an ethereum hex formated address of an account - string address = 1; + string address = 1 [ + (gogoproto.jsontag) = "address", + (gogoproto.moretags) = "yaml:\"address\"" + ]; // code defines the hex bytes of the account code. - string code = 2; + string code = 2 [ + (gogoproto.jsontag) = "code", + (gogoproto.moretags) = "yaml:\"code\"" + ]; // storage defines the set of state key values for the account. - repeated State storage = 3 - [ (gogoproto.nullable) = false, (gogoproto.castrepeated) = "Storage" ]; + repeated State storage = 3 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "Storage", + (gogoproto.jsontag) = "storage", + (gogoproto.moretags) = "yaml:\"storage\"" + ]; } diff --git a/proto/stratos/pot/v1/genesis.proto b/proto/stratos/pot/v1/genesis.proto index 2799a74f..09eb92e8 100644 --- a/proto/stratos/pot/v1/genesis.proto +++ b/proto/stratos/pot/v1/genesis.proto @@ -3,6 +3,7 @@ package stratos.pot.v1; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; import "cosmos/base/v1beta1/coin.proto"; import "stratos/pot/v1/pot.proto"; @@ -13,16 +14,19 @@ option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; message GenesisState { Params params = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "params", (gogoproto.moretags) = "yaml:\"params\"" ]; cosmos.base.v1beta1.Coin total_mined_token = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "total_mined_token", (gogoproto.moretags) = "yaml:\"total_mined_token\"" ]; string last_distributed_epoch = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "last_distributed_epoch", (gogoproto.moretags) = "yaml:\"last_distributed_epoch\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -30,21 +34,25 @@ message GenesisState { ]; repeated ImmatureTotal immature_total_info = 4 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "immature_total_info", (gogoproto.moretags) = "yaml:\"immature_total_info\"" ]; repeated MatureTotal mature_total_info = 5 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "mature_total_info", (gogoproto.moretags) = "yaml:\"mature_total_info\"" ]; repeated Reward individual_reward_info = 6 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "individual_reward_info", (gogoproto.moretags) = "yaml:\"individual_reward_info\"" ]; string matured_epoch = 7 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "matured_epoch", (gogoproto.moretags) = "yaml:\"matured_epoch\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -54,22 +62,28 @@ message GenesisState { message ImmatureTotal { string wallet_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "wallet_address", (gogoproto.moretags) = "yaml:\"wallet_address\"" ]; repeated cosmos.base.v1beta1.Coin value = 2 [ (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.jsontag) = "value", + (gogoproto.moretags) = "yaml:\"value\"" ]; } message MatureTotal { string wallet_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "wallet_address", (gogoproto.moretags) = "yaml:\"wallet_address\"" ]; repeated cosmos.base.v1beta1.Coin value = 2 [ (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", + (gogoproto.jsontag) = "value", + (gogoproto.moretags) = "yaml:\"value\"" ]; } diff --git a/proto/stratos/pot/v1/pot.proto b/proto/stratos/pot/v1/pot.proto index 4f9c3368..dd721560 100644 --- a/proto/stratos/pot/v1/pot.proto +++ b/proto/stratos/pot/v1/pot.proto @@ -3,6 +3,7 @@ package stratos.pot.v1; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; import "cosmos/base/v1beta1/coin.proto"; option (gogoproto.equal_all) = true; @@ -10,6 +11,9 @@ option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; // Params defines the PoT module parameters message Params { + option (gogoproto.goproto_stringer) = true; + option (amino.name) = "stratos/x/pot/Params"; + string bond_denom = 1 [ (gogoproto.jsontag) = "bond_denom", (gogoproto.moretags) = "yaml:\"bond_denom\"" @@ -24,11 +28,13 @@ message Params { ]; repeated MiningRewardParam mining_reward_params = 4 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "mining_reward_params", (gogoproto.moretags) = "yaml:\"mining_reward_params\"" ]; string community_tax = 5 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "community_tax", (gogoproto.moretags) = "yaml:\"community_tax\"", (cosmos_proto.scalar) = "cosmos.Dec", @@ -36,6 +42,7 @@ message Params { ]; cosmos.base.v1beta1.Coin initial_total_supply = 6 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "initial_total_supply", (gogoproto.moretags) = "yaml:\"initial_total_supply\"" ]; @@ -44,21 +51,25 @@ message Params { message MiningRewardParam { cosmos.base.v1beta1.Coin total_mined_valve_start = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "total_mined_valve_start", (gogoproto.moretags) = "yaml:\"total_mined_valve_start\"" ]; cosmos.base.v1beta1.Coin total_mined_valve_end = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "total_mined_valve_end", (gogoproto.moretags) = "yaml:\"total_mined_valve_end\"" ]; cosmos.base.v1beta1.Coin mining_reward = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "mining_reward", (gogoproto.moretags) = "yaml:\"mining_reward\"" ]; string block_chain_percentage_in_bp = 4 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "block_chain_percentage_in_bp", (gogoproto.moretags) = "yaml:\"block_chain_percentage_in_bp\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -66,6 +77,7 @@ message MiningRewardParam { ]; string resource_node_percentage_in_bp = 5 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "resource_node_percentage_in_bp", (gogoproto.moretags) = "yaml:\"resource_node_percentage_in_bp\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -73,6 +85,7 @@ message MiningRewardParam { ]; string meta_node_percentage_in_bp = 6 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "meta_node_percentage_in_bp", (gogoproto.moretags) = "yaml:\"meta_node_percentage_in_bp\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -82,17 +95,20 @@ message MiningRewardParam { message Reward { string wallet_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "wallet_address", (gogoproto.moretags) = "yaml:\"wallet_address\"" ]; repeated cosmos.base.v1beta1.Coin reward_from_mining_pool = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "reward_from_mining_pool", (gogoproto.moretags) = "yaml:\"reward_from_mining_pool\"", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin reward_from_traffic_pool = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "reward_from_traffic_pool", (gogoproto.moretags) = "yaml:\"reward_from_traffic_pool\"", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" @@ -101,11 +117,13 @@ message Reward { message SingleWalletVolume { string wallet_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "wallet_address", (gogoproto.moretags) = "yaml:\"wallet_address\"" ]; string volume = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "volume", (gogoproto.moretags) = "yaml:\"volume\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -116,6 +134,7 @@ message SingleWalletVolume { message WalletVolumes { repeated SingleWalletVolume volumes = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "volumes", (gogoproto.moretags) = "yaml:\"volumes\"" ]; @@ -123,6 +142,7 @@ message WalletVolumes { message VolumeReportRecord { string reporter = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "reporter", (gogoproto.moretags) = "yaml:\"reporter\"" ]; @@ -139,12 +159,14 @@ message VolumeReportRecord { message TotalReward { repeated cosmos.base.v1beta1.Coin mining_reward = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "mining_reward", (gogoproto.moretags) = "yaml:\"mining_reward\"", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin traffic_reward = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "traffic_reward", (gogoproto.moretags) = "yaml:\"traffic_reward\"", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" diff --git a/proto/stratos/register/v1/genesis.proto b/proto/stratos/register/v1/genesis.proto index 80332863..b4d8945f 100644 --- a/proto/stratos/register/v1/genesis.proto +++ b/proto/stratos/register/v1/genesis.proto @@ -4,6 +4,8 @@ package stratos.register.v1; import "google/protobuf/any.proto"; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; +import "cosmos/base/v1beta1/coin.proto"; import "cosmos/staking/v1beta1/staking.proto"; import "stratos/register/v1/register.proto"; @@ -14,23 +16,27 @@ option go_package = "github.com/stratosnet/stratos-chain/x/register/types"; message GenesisState { Params params = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "params", (gogoproto.moretags) = "yaml:\"params\"" ]; repeated ResourceNode resource_nodes = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "resource_nodes", (gogoproto.moretags) = "yaml:\"resource_nodes\"", (gogoproto.castrepeated) = "ResourceNodes" ]; repeated MetaNode meta_nodes = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "meta_nodes", (gogoproto.moretags) = "yaml:\"meta_nodes\"", (gogoproto.castrepeated) = "MetaNodes" ]; string remaining_noz_limit = 4 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "remaining_noz_limit", (gogoproto.moretags) = "yaml:\"remaining_noz_limit\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -38,11 +44,13 @@ message GenesisState { ]; // remaining noz limit repeated Slashing slashing = 5 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "slashing", (gogoproto.moretags) = "yaml:\"slashing_info\"" ]; string deposit_noz_rate = 6 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "deposit_noz_rate", (gogoproto.moretags) = "yaml:\"deposit_noz_rate\"", (cosmos_proto.scalar) = "cosmos.Dec", @@ -52,6 +60,7 @@ message GenesisState { message GenesisMetaNode { string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; // network address of the meta node @@ -68,16 +77,20 @@ message GenesisMetaNode { (gogoproto.jsontag) = "status", (gogoproto.moretags) = "yaml:\"status\"" ]; // meta node status (Unspecified/Bonded/Unbonding/Unbonded) - string tokens = 5 [ + cosmos.base.v1beta1.Coin tokens = 5 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "tokens", (gogoproto.moretags) = "yaml:\"tokens\"" ]; // delegated tokens string owner_address = 6 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; // owner address of the meta node Description description = 7 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "description", (gogoproto.moretags) = "yaml:\"description\"" ]; // description terms for the meta node @@ -85,6 +98,7 @@ message GenesisMetaNode { message Slashing { string wallet_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "wallet_address", (gogoproto.moretags) = "yaml:\"wallet_address\"" ]; diff --git a/proto/stratos/register/v1/register.proto b/proto/stratos/register/v1/register.proto index 4696670e..e25fcf55 100644 --- a/proto/stratos/register/v1/register.proto +++ b/proto/stratos/register/v1/register.proto @@ -6,6 +6,7 @@ import "google/protobuf/any.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; import "cosmos/base/v1beta1/coin.proto"; import "cosmos/staking/v1beta1/staking.proto"; @@ -14,18 +15,23 @@ option go_package = "github.com/stratosnet/stratos-chain/x/register/types"; // Params defines the Register module parameters message Params { + option (gogoproto.goproto_stringer) = true; + option (amino.name) = "stratos/x/register/Params"; + string bond_denom = 1 [ (gogoproto.jsontag) = "bond_denom", (gogoproto.moretags) = "yaml:\"bond_denom\"" ]; google.protobuf.Duration unbonding_threashold_time = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.stdduration) = true, (gogoproto.jsontag) = "unbonding_threashold_time", (gogoproto.moretags) = "yaml:\"unbonding_threashold_time\"" ]; google.protobuf.Duration unbonding_completion_time = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.stdduration) = true, (gogoproto.jsontag) = "unbonding_completion_time", (gogoproto.moretags) = "yaml:\"unbonding_completion_time\"" @@ -40,11 +46,13 @@ message Params { ]; cosmos.base.v1beta1.Coin resource_node_min_deposit = 6 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "resource_node_min_deposit", (gogoproto.moretags) = "yaml:\"resource_node_min_deposit\"" ]; google.protobuf.Duration voting_period = 7 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.stdduration) = true, (gogoproto.jsontag) = "voting_period", (gogoproto.moretags) = "yaml:\"voting_period\"" @@ -52,10 +60,10 @@ message Params { } message ResourceNode { - option (gogoproto.equal) = true; option (gogoproto.goproto_stringer) = true; string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; @@ -73,12 +81,14 @@ message ResourceNode { (gogoproto.moretags) = "yaml:\"status\""]; string tokens = 5 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "tokens", (gogoproto.moretags) = "yaml:\"tokens\"", (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string owner_address = 6 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; @@ -89,6 +99,7 @@ message ResourceNode { ]; google.protobuf.Timestamp creation_time = 8 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.stdtime) = true, (gogoproto.jsontag) = "creation_time", (gogoproto.moretags) = "yaml:\"creation_time\"" @@ -99,6 +110,7 @@ message ResourceNode { ]; string effective_tokens = 10 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "effective_tokens", (gogoproto.moretags) = "yaml:\"effective_tokens\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -107,10 +119,10 @@ message ResourceNode { } message MetaNode { - option (gogoproto.equal) = true; option (gogoproto.goproto_stringer) = true; string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; @@ -128,12 +140,14 @@ message MetaNode { (gogoproto.moretags) = "yaml:\"status\""]; string tokens = 5 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "tokens", (gogoproto.moretags) = "yaml:\"tokens\"", (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; string owner_address = 6 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; @@ -144,6 +158,7 @@ message MetaNode { ]; google.protobuf.Timestamp creation_time = 8 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.stdtime) = true, (gogoproto.jsontag) = "creation_time", (gogoproto.moretags) = "yaml:\"creation_time\"" @@ -152,6 +167,7 @@ message MetaNode { message MetaNodeRegistrationVotePool { string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; @@ -165,6 +181,7 @@ message MetaNodeRegistrationVotePool { ]; google.protobuf.Timestamp expire_time = 4 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.stdtime) = true, (gogoproto.jsontag) = "expire_time", (gogoproto.moretags) = "yaml:\"expire_time\"" @@ -176,7 +193,6 @@ message MetaNodeRegistrationVotePool { } message Description { - option (gogoproto.equal) = true; option (gogoproto.goproto_stringer) = true; string moniker = 1 [ @@ -203,6 +219,7 @@ message Description { // for a single unbonding node in a time-ordered list message UnbondingNode { string network_addr = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_addr", (gogoproto.moretags) = "yaml:\"network_addr\"" ]; @@ -224,6 +241,7 @@ message UnbondingNodeEntry { ]; google.protobuf.Timestamp completion_time = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.stdtime) = true, (gogoproto.jsontag) = "creation_time", (gogoproto.moretags) = "yaml:\"creation_time\"" diff --git a/proto/stratos/sds/v1/genesis.proto b/proto/stratos/sds/v1/genesis.proto index 3dc20736..bcfa012a 100644 --- a/proto/stratos/sds/v1/genesis.proto +++ b/proto/stratos/sds/v1/genesis.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package stratos.sds.v1; import "gogoproto/gogo.proto"; +import "amino/amino.proto"; import "stratos/sds/v1/sds.proto"; option (gogoproto.equal_all) = true; @@ -10,11 +11,14 @@ option go_package = "github.com/stratosnet/stratos-chain/x/sds/types"; // GenesisState defines the register module's genesis state. message GenesisState { Params params = 1 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "params", (gogoproto.moretags) = "yaml:\"params\"" ]; repeated GenesisFileInfo files = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "files", (gogoproto.moretags) = "yaml:\"files\"" ]; diff --git a/proto/stratos/sds/v1/sds.proto b/proto/stratos/sds/v1/sds.proto index aded4dd9..ddd8a776 100644 --- a/proto/stratos/sds/v1/sds.proto +++ b/proto/stratos/sds/v1/sds.proto @@ -3,12 +3,16 @@ package stratos.sds.v1; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/sds/types"; -// Params defines the Register module parameters +// Params defines the parameters for the sds module. message Params { + option (gogoproto.goproto_stringer) = true; + option (amino.name) = "stratos/x/sds/Params"; + string bond_denom = 1 [ (gogoproto.jsontag) = "bond_denom", (gogoproto.moretags) = "yaml:\"bond_denom\"" @@ -28,6 +32,7 @@ message FileInfo { (gogoproto.moretags) = "yaml:\"reporters\"" ]; string uploader = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "uploader", (gogoproto.moretags) = "yaml:\"uploader\"" ]; diff --git a/x/evm/genesis.go b/x/evm/keeper/genesis.go similarity index 92% rename from x/evm/genesis.go rename to x/evm/keeper/genesis.go index d342f4c1..ad720023 100644 --- a/x/evm/genesis.go +++ b/x/evm/keeper/genesis.go @@ -1,4 +1,4 @@ -package evm +package keeper import ( "bytes" @@ -13,14 +13,12 @@ import ( authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" stratos "github.com/stratosnet/stratos-chain/types" - "github.com/stratosnet/stratos-chain/x/evm/keeper" "github.com/stratosnet/stratos-chain/x/evm/types" ) // InitGenesis initializes genesis state based on exported genesis -func InitGenesis( +func (k *Keeper) InitGenesis( ctx sdk.Context, - k *keeper.Keeper, accountKeeper types.AccountKeeper, data types.GenesisState, ) []abci.ValidatorUpdate { @@ -68,7 +66,7 @@ func InitGenesis( } // ExportGenesis exports genesis state of the EVM module -func ExportGenesis(ctx sdk.Context, k *keeper.Keeper, ak types.AccountKeeper) *types.GenesisState { +func (k *Keeper) ExportGenesis(ctx sdk.Context, ak types.AccountKeeper) *types.GenesisState { var ethGenAccounts []types.GenesisAccount ak.IterateAccounts(ctx, func(account authtypes.AccountI) bool { ethAccount, ok := account.(stratos.EthAccountI) diff --git a/x/evm/keeper/keeper.go b/x/evm/keeper/keeper.go index 1153eaf0..1a897c08 100644 --- a/x/evm/keeper/keeper.go +++ b/x/evm/keeper/keeper.go @@ -10,8 +10,6 @@ import ( "github.com/cosmos/cosmos-sdk/store/prefix" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core" ethtypes "github.com/ethereum/go-ethereum/core/types" @@ -37,8 +35,6 @@ type Keeper struct { // key to access the transient store, which is reset on every block during Commit transientKey storetypes.StoreKey - // module specific parameter space that can be configured through governance - paramSpace paramtypes.Subspace // access to account state accountKeeper types.AccountKeeper // update balance and accounting operations with coins diff --git a/x/evm/keeper/params.go b/x/evm/keeper/params.go index 88f85f41..29bcd4e7 100644 --- a/x/evm/keeper/params.go +++ b/x/evm/keeper/params.go @@ -9,15 +9,22 @@ import ( "github.com/stratosnet/stratos-chain/x/evm/types" ) -// GetParams returns the total set of evm parameters. -func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) { - k.paramSpace.GetParamSet(ctx, ¶ms) - return params +// SetParams sets the params on the store +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { + store := ctx.KVStore(k.storeKey) + bz := k.cdc.MustMarshal(¶ms) + store.Set(types.KeyPrefixParams, bz) } -// SetParams sets the evm parameters to the param space. -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { - k.paramSpace.SetParamSet(ctx, ¶ms) +// GetParams returns the params from the store +func (k Keeper) GetParams(ctx sdk.Context) (p types.Params) { + store := ctx.KVStore(k.storeKey) + bz := store.Get(types.KeyPrefixParams) + if bz == nil { + return p + } + k.cdc.MustUnmarshal(bz, &p) + return p } // ---------------------------------------------------------------------------- @@ -38,5 +45,7 @@ func (k Keeper) GetBaseFeeParam(ctx sdk.Context) *big.Int { // SetBaseFeeParam set's the base fee in the paramSpace func (k Keeper) SetBaseFeeParam(ctx sdk.Context, baseFee *big.Int) { - k.paramSpace.Set(ctx, types.ParamStoreKeyBaseFee, sdkmath.NewIntFromBigInt(baseFee)) + params := k.GetParams(ctx) + params.FeeMarketParams.BaseFee = sdkmath.NewIntFromBigInt(baseFee) + k.SetParams(ctx, params) } diff --git a/x/evm/module.go b/x/evm/module.go index dd1eaffd..f14e415b 100644 --- a/x/evm/module.go +++ b/x/evm/module.go @@ -143,14 +143,14 @@ func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json. var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, am.accountKeeper, genesisState) + am.keeper.InitGenesis(ctx, am.accountKeeper, genesisState) return []abci.ValidatorUpdate{} } // ExportGenesis returns the exported genesis state as raw bytes for the evm // module. func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { - gs := ExportGenesis(ctx, am.keeper, am.accountKeeper) + gs := am.keeper.ExportGenesis(ctx, am.accountKeeper) return cdc.MustMarshalJSON(gs) } diff --git a/x/evm/types/evm.pb.go b/x/evm/types/evm.pb.go index 6181a13b..89c8e811 100644 --- a/x/evm/types/evm.pb.go +++ b/x/evm/types/evm.pb.go @@ -8,6 +8,7 @@ import ( fmt "fmt" _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -747,116 +748,119 @@ func init() { func init() { proto.RegisterFile("stratos/evm/v1/evm.proto", fileDescriptor_6ee18d4714e9d670) } var fileDescriptor_6ee18d4714e9d670 = []byte{ - // 1735 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4f, 0x6f, 0x1b, 0xb9, - 0x15, 0xb7, 0x2c, 0xd9, 0x1e, 0x51, 0xb2, 0x34, 0xa6, 0xbd, 0xa9, 0x12, 0x03, 0x1e, 0x63, 0x0a, - 0xb4, 0x3e, 0x6c, 0xec, 0x75, 0x02, 0xa3, 0xe9, 0xb6, 0x7b, 0x88, 0xe2, 0xa4, 0x6b, 0x37, 0xd9, - 0x4d, 0x99, 0x6c, 0x03, 0xb4, 0x40, 0x07, 0xd4, 0x0c, 0x3d, 0x1a, 0x78, 0x66, 0xa8, 0x92, 0x94, - 0x56, 0x6a, 0xd1, 0x02, 0x45, 0x81, 0xfe, 0x3b, 0xf5, 0x23, 0xf4, 0xd8, 0x0f, 0xd0, 0x5b, 0x6f, - 0x3d, 0x2d, 0x7a, 0x5a, 0xf4, 0x54, 0xf4, 0x30, 0x28, 0x9c, 0x9b, 0x2f, 0x05, 0xf4, 0x09, 0x8a, - 0x79, 0xa4, 0xfe, 0x8d, 0x8d, 0x20, 0xf6, 0x49, 0x7c, 0x7c, 0x7f, 0x7e, 0xbf, 0xf7, 0xf8, 0x38, - 0x24, 0x85, 0x5a, 0x52, 0x09, 0xaa, 0xb8, 0x3c, 0x60, 0x83, 0xe4, 0x60, 0x70, 0x98, 0xff, 0xec, - 0xf7, 0x04, 0x57, 0x1c, 0x37, 0x8c, 0x66, 0x3f, 0x9f, 0x1a, 0x1c, 0xde, 0xdb, 0x0a, 0x79, 0xc8, - 0x41, 0x75, 0x90, 0x8f, 0xb4, 0xd5, 0xbd, 0xbb, 0x3e, 0x97, 0x09, 0x97, 0x9e, 0x56, 0x68, 0x41, - 0xab, 0xdc, 0x7f, 0x94, 0xd1, 0xea, 0x4b, 0x2a, 0x68, 0x22, 0xf1, 0x21, 0xaa, 0xb2, 0x41, 0xe2, - 0x05, 0x2c, 0xe5, 0x49, 0xab, 0xb4, 0x5b, 0xda, 0xab, 0xb6, 0xb7, 0xc6, 0x99, 0x63, 0x8f, 0x68, - 0x12, 0x7f, 0xec, 0x4e, 0x55, 0x2e, 0xb1, 0xd8, 0x20, 0x39, 0xce, 0x87, 0xf8, 0x13, 0xb4, 0xce, - 0x52, 0xda, 0x89, 0x99, 0xe7, 0x0b, 0x46, 0x15, 0x6b, 0x2d, 0xef, 0x96, 0xf6, 0xac, 0x76, 0x6b, - 0x9c, 0x39, 0x5b, 0xc6, 0x6d, 0x5e, 0xed, 0x92, 0xba, 0x96, 0x9f, 0x80, 0x88, 0xbf, 0x83, 0x6a, - 0x13, 0x3d, 0x8d, 0xe3, 0x56, 0x19, 0x9c, 0xef, 0x8c, 0x33, 0x07, 0x2f, 0x3a, 0xd3, 0x38, 0x76, - 0x09, 0x32, 0xae, 0x34, 0x8e, 0xf1, 0x63, 0x84, 0xd8, 0x50, 0x09, 0xea, 0xb1, 0xa8, 0x27, 0x5b, - 0x95, 0xdd, 0xf2, 0x5e, 0xb9, 0xed, 0x5e, 0x64, 0x4e, 0xf5, 0x69, 0x3e, 0xfb, 0xf4, 0xe4, 0xa5, - 0x1c, 0x67, 0xce, 0x86, 0x09, 0x32, 0x35, 0x74, 0x49, 0x15, 0x84, 0xa7, 0x51, 0x4f, 0xe2, 0x9f, - 0xa2, 0xba, 0xdf, 0xa5, 0x51, 0xea, 0xf9, 0x3c, 0x3d, 0x8b, 0xc2, 0xd6, 0xca, 0x6e, 0x69, 0xaf, - 0xf6, 0x60, 0x7b, 0x7f, 0xb1, 0xa0, 0xfb, 0x4f, 0x72, 0x9b, 0x27, 0x60, 0xd2, 0xde, 0xfe, 0x2a, - 0x73, 0x96, 0xc6, 0x99, 0xb3, 0xa9, 0x03, 0xcf, 0xbb, 0xbb, 0xa4, 0xe6, 0xcf, 0x2c, 0x71, 0x82, - 0x36, 0xce, 0x18, 0xf3, 0x12, 0x2a, 0xce, 0x99, 0xf2, 0x7a, 0x50, 0xdf, 0xd6, 0x2a, 0x20, 0x38, - 0x45, 0x84, 0x67, 0x8c, 0xbd, 0x00, 0x3b, 0xbd, 0x0c, 0xed, 0x5d, 0x83, 0xd2, 0xd2, 0x28, 0x57, - 0xe2, 0xb8, 0xa4, 0x79, 0xb6, 0xe8, 0xe2, 0xfe, 0xcf, 0x46, 0xb5, 0x39, 0xa2, 0xf8, 0xe7, 0xc8, - 0xd2, 0xe4, 0xa2, 0xc0, 0x2c, 0xe4, 0x8f, 0xff, 0x93, 0x39, 0xdf, 0x0a, 0x23, 0xd5, 0xed, 0x77, - 0xf6, 0x7d, 0x9e, 0x98, 0x1e, 0x30, 0x3f, 0xf7, 0x65, 0x70, 0x7e, 0xa0, 0x46, 0x3d, 0x26, 0xf7, - 0x4f, 0x52, 0x75, 0x91, 0x39, 0x6b, 0x10, 0xec, 0xe4, 0x78, 0x9c, 0x39, 0xcd, 0xf9, 0x5c, 0xa3, - 0xc0, 0xfd, 0xd7, 0xdf, 0xee, 0x23, 0xd3, 0x40, 0x27, 0xa9, 0x22, 0x6b, 0xa0, 0x38, 0x09, 0xf0, - 0x2f, 0x51, 0xb3, 0xcb, 0x13, 0x26, 0x15, 0xa3, 0x81, 0xd7, 0x89, 0xb9, 0x7f, 0x0e, 0xbd, 0x50, - 0x6d, 0x93, 0xf7, 0x47, 0x1e, 0x67, 0xce, 0x1d, 0x0d, 0x57, 0x08, 0x55, 0x44, 0x6d, 0x4c, 0xf5, - 0xed, 0x5c, 0x8d, 0x7f, 0x5f, 0x42, 0x8d, 0x80, 0x72, 0xef, 0x8c, 0x8b, 0x73, 0x03, 0x5e, 0x06, - 0x70, 0x7a, 0xa3, 0xb4, 0xeb, 0xc7, 0x8f, 0x3f, 0x7f, 0xc6, 0xc5, 0x39, 0x04, 0x1d, 0x67, 0xce, - 0x07, 0x9a, 0xcc, 0x62, 0xe4, 0x22, 0x97, 0x7a, 0x40, 0xf9, 0xd4, 0x09, 0xbf, 0x41, 0xf6, 0xd4, - 0x5c, 0xf6, 0x7b, 0x3d, 0x2e, 0x54, 0xab, 0x02, 0x6d, 0x7d, 0xff, 0x22, 0x73, 0x1a, 0x06, 0xe0, - 0x95, 0xd6, 0x8c, 0x33, 0xe7, 0x1b, 0x05, 0x08, 0xe3, 0xe3, 0x92, 0x86, 0x09, 0x6b, 0x4c, 0xf1, - 0x6f, 0x4a, 0xa8, 0xce, 0xa2, 0xde, 0xe1, 0xd1, 0x47, 0x26, 0xc1, 0x15, 0x48, 0xf0, 0x67, 0x37, - 0x4a, 0xb0, 0xf6, 0xf4, 0xe4, 0xe5, 0xe1, 0xd1, 0x47, 0x93, 0xfc, 0x4c, 0x1f, 0xcf, 0x87, 0x2d, - 0x66, 0x57, 0xd3, 0x4a, 0x9d, 0xdc, 0x09, 0x32, 0xa2, 0xd7, 0xa5, 0xb2, 0x0b, 0xfd, 0x5c, 0x6d, - 0xef, 0x5d, 0x64, 0x0e, 0xd2, 0x71, 0x3f, 0xa5, 0xb2, 0x3b, 0x5b, 0xc3, 0xce, 0xe8, 0x17, 0x34, - 0x55, 0x51, 0x3f, 0x31, 0x91, 0x09, 0xd2, 0xce, 0xb9, 0xd5, 0x2c, 0x9d, 0x23, 0x93, 0xce, 0xda, - 0xad, 0xd3, 0x39, 0xba, 0x2e, 0x9d, 0xa3, 0x77, 0xa5, 0xa3, 0x3d, 0x66, 0x1c, 0x1e, 0x19, 0x0e, - 0xd6, 0xad, 0x39, 0x3c, 0xba, 0x8e, 0xc3, 0xa3, 0x77, 0x71, 0xd0, 0x1e, 0xf9, 0xb6, 0x29, 0xd4, - 0xa9, 0x55, 0xbd, 0xfd, 0xb6, 0x29, 0x96, 0xbc, 0xb8, 0x6d, 0xa6, 0x7a, 0x0d, 0xfe, 0xa7, 0x12, - 0xda, 0xf2, 0x79, 0x2a, 0x55, 0x3e, 0x99, 0xf2, 0x5e, 0xcc, 0x0c, 0x05, 0x04, 0x14, 0xde, 0xdc, - 0x88, 0xc2, 0xb6, 0xf9, 0x50, 0x5c, 0x13, 0xaf, 0xc8, 0x63, 0x73, 0xd1, 0x48, 0x93, 0xf9, 0x35, - 0xb2, 0x7b, 0x4c, 0x31, 0x21, 0x3b, 0x7d, 0x11, 0x1a, 0x1e, 0x35, 0xe0, 0xf1, 0xea, 0x46, 0x3c, - 0xcc, 0x8e, 0x2a, 0xc6, 0x2a, 0x72, 0x68, 0xce, 0x0c, 0x34, 0xfe, 0x10, 0x35, 0xa2, 0x9c, 0x54, - 0xa7, 0x1f, 0x1b, 0xf4, 0x3a, 0xa0, 0xff, 0xe8, 0x46, 0xe8, 0xe6, 0x93, 0xb1, 0x18, 0xa9, 0x88, - 0xbd, 0x3e, 0x51, 0x6b, 0xe4, 0xdf, 0x96, 0x10, 0x4e, 0xfa, 0x91, 0xf0, 0xc2, 0x98, 0xfa, 0x11, - 0x13, 0x06, 0x7e, 0x1d, 0xe0, 0xbf, 0xb8, 0x11, 0xfc, 0x5d, 0x0d, 0x7f, 0x35, 0x5a, 0x91, 0x82, - 0x9d, 0x9b, 0xfc, 0x40, 0x5b, 0x68, 0x16, 0x02, 0xd5, 0x3b, 0x4c, 0xc4, 0x51, 0x6a, 0xe0, 0x1b, - 0x00, 0xff, 0xf9, 0x8d, 0xe0, 0x4d, 0xf7, 0xcf, 0xc7, 0xb9, 0xd2, 0xfd, 0x5a, 0x39, 0xc5, 0x8c, - 0x79, 0x1a, 0xf0, 0x09, 0x26, 0xbe, 0x3d, 0xe6, 0x7c, 0x9c, 0x2b, 0x98, 0x5a, 0xa9, 0x31, 0x7f, - 0x57, 0x42, 0x9b, 0x54, 0x08, 0xfe, 0x65, 0xa1, 0xdc, 0x9b, 0x37, 0x3d, 0x27, 0xc7, 0x99, 0x73, - 0x4f, 0x63, 0x5f, 0x13, 0xae, 0x48, 0x61, 0x03, 0x6c, 0x16, 0x0a, 0xfe, 0x2b, 0x64, 0x27, 0x4c, - 0x84, 0x6c, 0xfe, 0xd4, 0xda, 0xba, 0x7d, 0xc3, 0x17, 0x63, 0x5d, 0xd9, 0xfc, 0x60, 0x30, 0x3d, - 0xa9, 0x4e, 0x2b, 0x56, 0xd3, 0xb6, 0x4f, 0x2b, 0x96, 0x6d, 0x6f, 0x9c, 0x56, 0xac, 0x0d, 0x1b, - 0x93, 0xf5, 0x11, 0x8f, 0xb9, 0x37, 0x78, 0xa8, 0xfd, 0x49, 0x8d, 0x7d, 0x49, 0xa5, 0xf9, 0x92, - 0x90, 0x86, 0x4f, 0x15, 0x8d, 0x47, 0x52, 0x99, 0xe0, 0x07, 0x68, 0xe5, 0x95, 0xca, 0xaf, 0x70, - 0x36, 0x2a, 0x9f, 0xb3, 0x91, 0xbe, 0x65, 0x90, 0x7c, 0x88, 0xb7, 0xd0, 0xca, 0x80, 0xc6, 0x7d, - 0x7d, 0x17, 0xac, 0x12, 0x2d, 0xb8, 0x9f, 0xa1, 0xe6, 0x6b, 0x41, 0x53, 0x49, 0x7d, 0x15, 0xf1, - 0xf4, 0x39, 0x0f, 0x25, 0xc6, 0xa8, 0x02, 0xe7, 0x88, 0xf6, 0x85, 0x31, 0xfe, 0x36, 0xaa, 0xc4, - 0x3c, 0x94, 0xad, 0xe5, 0xdd, 0xf2, 0x5e, 0xed, 0xc1, 0x66, 0xf1, 0xae, 0xf4, 0x9c, 0x87, 0x04, - 0x0c, 0xdc, 0x7f, 0x2e, 0xa3, 0xf2, 0x73, 0x1e, 0xe2, 0x16, 0x5a, 0xa3, 0x41, 0x20, 0x98, 0x94, - 0x26, 0xce, 0x44, 0xc4, 0x77, 0xd0, 0xaa, 0xe2, 0xbd, 0xc8, 0xd7, 0xc1, 0xaa, 0xc4, 0x48, 0x39, - 0x6c, 0x40, 0x15, 0x85, 0x1b, 0x42, 0x9d, 0xc0, 0x18, 0x3f, 0x40, 0x75, 0xc8, 0xcb, 0x4b, 0xfb, - 0x49, 0x87, 0x09, 0x38, 0xb2, 0x2b, 0xed, 0xe6, 0x65, 0xe6, 0xd4, 0x60, 0xfe, 0x33, 0x98, 0x26, - 0xf3, 0x02, 0xfe, 0x10, 0xad, 0xa9, 0xa1, 0x3e, 0x09, 0xf5, 0x59, 0xbc, 0x79, 0x99, 0x39, 0x4d, - 0x35, 0x4b, 0x32, 0x3f, 0xe8, 0xc8, 0xaa, 0x1a, 0xc2, 0x81, 0x77, 0x80, 0x2c, 0x35, 0xf4, 0xa2, - 0x34, 0x60, 0x43, 0x38, 0x38, 0x2b, 0xed, 0xad, 0xcb, 0xcc, 0xb1, 0xe7, 0xcc, 0x4f, 0x72, 0x1d, - 0x59, 0x53, 0x43, 0x18, 0xe0, 0x0f, 0x11, 0xd2, 0x94, 0x00, 0x41, 0x1f, 0x8f, 0xeb, 0x97, 0x99, - 0x53, 0x85, 0x59, 0x88, 0x3d, 0x1b, 0x62, 0x17, 0xad, 0xe8, 0xd8, 0x16, 0xc4, 0xae, 0x5f, 0x66, - 0x8e, 0x15, 0xf3, 0x50, 0xc7, 0xd4, 0xaa, 0xbc, 0x54, 0x82, 0x25, 0x7c, 0xc0, 0x02, 0x38, 0x63, - 0x2c, 0x32, 0x11, 0xdd, 0x3f, 0x2e, 0x23, 0xeb, 0xf5, 0x90, 0x30, 0xd9, 0x8f, 0x15, 0x7e, 0x86, - 0x6c, 0x9f, 0xa7, 0x4a, 0x50, 0x5f, 0x79, 0x0b, 0xa5, 0x6d, 0x6f, 0xcf, 0xba, 0xad, 0x68, 0xe1, - 0x92, 0xe6, 0x64, 0xea, 0xb1, 0xa9, 0xff, 0x16, 0x5a, 0xe9, 0xc4, 0x9c, 0x27, 0xd0, 0x07, 0x75, - 0xa2, 0x05, 0xfc, 0x12, 0xaa, 0x06, 0x6b, 0x5c, 0xbe, 0xfe, 0x3e, 0x5c, 0x68, 0x93, 0xf6, 0x1d, - 0x73, 0x1f, 0x6e, 0x68, 0x64, 0xe3, 0xed, 0xe6, 0x95, 0x85, 0x36, 0xb2, 0x51, 0x59, 0x30, 0x7d, - 0xcb, 0xaa, 0x93, 0x7c, 0x88, 0xef, 0x21, 0x4b, 0xb0, 0x01, 0x13, 0x8a, 0x05, 0xb0, 0x34, 0x16, - 0x99, 0xca, 0xf8, 0x2e, 0xb2, 0x42, 0x2a, 0xbd, 0xbe, 0x64, 0x81, 0x5e, 0x07, 0xb2, 0x16, 0x52, - 0xf9, 0x85, 0x64, 0xc1, 0xc7, 0x95, 0x3f, 0xfc, 0xc5, 0x59, 0x72, 0x29, 0xaa, 0x3d, 0xf6, 0x7d, - 0x26, 0xe5, 0xeb, 0x7e, 0x2f, 0x66, 0xef, 0xe8, 0xaf, 0x07, 0xa8, 0x2e, 0x15, 0x17, 0x34, 0x64, - 0xde, 0x39, 0x1b, 0x99, 0x2e, 0xd3, 0x3d, 0x63, 0xe6, 0x7f, 0xc8, 0x46, 0x92, 0xcc, 0x0b, 0x06, - 0x22, 0x2b, 0xa3, 0xda, 0x6b, 0x41, 0x7d, 0x66, 0xae, 0xeb, 0x79, 0xa7, 0xe6, 0xa2, 0x30, 0x10, - 0x46, 0xca, 0xb1, 0x55, 0x94, 0x30, 0xde, 0x57, 0x66, 0x2f, 0x4d, 0xc4, 0xdc, 0x43, 0x30, 0x36, - 0x64, 0x3e, 0x14, 0xb1, 0x42, 0x8c, 0x84, 0x8f, 0xd0, 0x7a, 0x10, 0x49, 0x78, 0x34, 0x49, 0x45, - 0xcd, 0x2d, 0xd1, 0x6a, 0xdb, 0x97, 0x99, 0x53, 0x37, 0x8a, 0x57, 0xf9, 0x3c, 0x59, 0x90, 0xf0, - 0xf7, 0x50, 0x73, 0xe6, 0x06, 0x6c, 0xa1, 0x36, 0x56, 0x1b, 0x5f, 0x66, 0x4e, 0x63, 0x6a, 0x0a, - 0x1a, 0x52, 0x90, 0xf3, 0x75, 0x0e, 0x58, 0xa7, 0x1f, 0x42, 0xeb, 0x59, 0x44, 0x0b, 0xf9, 0x6c, - 0x1c, 0x25, 0x91, 0x82, 0x56, 0x5b, 0x21, 0x5a, 0xc0, 0xdf, 0x45, 0x55, 0x3e, 0x60, 0x42, 0x44, - 0x01, 0x93, 0x70, 0xcb, 0x78, 0xf7, 0x8b, 0x8b, 0xcc, 0xac, 0xf3, 0xd4, 0xcc, 0x73, 0x30, 0x61, - 0x09, 0x17, 0x23, 0xb8, 0x1c, 0x98, 0xd4, 0xb4, 0xe2, 0x05, 0xcc, 0x93, 0x05, 0x09, 0xb7, 0x11, - 0x36, 0x6e, 0x82, 0xa9, 0xbe, 0x48, 0x3d, 0xd8, 0xfb, 0x75, 0xf0, 0x85, 0x1d, 0xa8, 0xb5, 0x04, - 0x94, 0xc7, 0x54, 0x51, 0x72, 0x65, 0xe6, 0xb4, 0x62, 0x55, 0xec, 0x95, 0xd3, 0x8a, 0xb5, 0x66, - 0x5b, 0xd3, 0xec, 0x0d, 0x0b, 0xb2, 0x39, 0x91, 0xe7, 0xc2, 0xbb, 0x7f, 0x5f, 0x46, 0xcd, 0xc2, - 0xb3, 0x0e, 0xef, 0xa0, 0x5a, 0xca, 0xbd, 0x0e, 0x95, 0xcc, 0x3b, 0x63, 0x0c, 0x56, 0xda, 0x22, - 0xd5, 0x94, 0xb7, 0xa9, 0x64, 0xcf, 0x18, 0xc3, 0x9f, 0xa0, 0xed, 0x89, 0xd2, 0xf3, 0xbb, 0x34, - 0x0d, 0x99, 0x7e, 0x6e, 0x47, 0x29, 0x55, 0x5c, 0x40, 0x03, 0xac, 0x93, 0x56, 0x47, 0x5b, 0x3f, - 0x01, 0x83, 0xe3, 0x99, 0x1e, 0x3f, 0x44, 0x1f, 0xb0, 0x98, 0x4a, 0x15, 0xf9, 0x91, 0x1a, 0x79, - 0x49, 0x3f, 0x56, 0x51, 0x2f, 0x8e, 0x98, 0x80, 0x06, 0x59, 0x27, 0x5b, 0x33, 0xe5, 0x8b, 0xa9, - 0x0e, 0x7f, 0x73, 0x5a, 0xd3, 0x2e, 0x8b, 0xc2, 0xae, 0x82, 0x76, 0x29, 0x4f, 0x2a, 0xf8, 0x29, - 0xcc, 0xe1, 0x37, 0xc8, 0x9a, 0xb2, 0xd6, 0x57, 0xfe, 0xef, 0xe7, 0x3b, 0xf2, 0xfd, 0xcf, 0xa8, - 0xe2, 0x93, 0xd1, 0xe4, 0xa0, 0xcb, 0x4a, 0xec, 0x28, 0x8d, 0x54, 0x44, 0xe3, 0x69, 0x69, 0xda, - 0x2f, 0xfe, 0x7a, 0xb1, 0x53, 0xfa, 0xea, 0x62, 0xa7, 0xf4, 0xf5, 0xc5, 0x4e, 0xe9, 0xbf, 0x17, - 0x3b, 0xa5, 0x3f, 0xbf, 0xdd, 0x59, 0xfa, 0xfa, 0xed, 0xce, 0xd2, 0xbf, 0xdf, 0xee, 0x2c, 0xfd, - 0xe4, 0x60, 0x0e, 0xd4, 0x74, 0x4e, 0xca, 0xd4, 0x64, 0x78, 0x1f, 0xde, 0xa3, 0x07, 0x43, 0xf8, - 0xa7, 0x04, 0x18, 0x74, 0x56, 0xe1, 0x8f, 0x8e, 0x87, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x3b, - 0x0c, 0x4e, 0xe2, 0x45, 0x11, 0x00, 0x00, + // 1779 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x58, 0x4f, 0x6f, 0x23, 0x49, + 0x15, 0x8f, 0x63, 0x27, 0x69, 0x97, 0x1d, 0xbb, 0x53, 0xf1, 0x0e, 0x9e, 0x89, 0x48, 0x47, 0x46, + 0x40, 0xb4, 0xda, 0x49, 0x36, 0x33, 0x8a, 0x18, 0x06, 0xed, 0x21, 0x9e, 0xcc, 0xb0, 0x09, 0x33, + 0xbb, 0x43, 0xcd, 0x0c, 0x2b, 0x21, 0x44, 0x53, 0xee, 0xae, 0x74, 0x5a, 0xe9, 0xee, 0x32, 0x55, + 0x65, 0xaf, 0x0d, 0x02, 0x09, 0x21, 0x01, 0xda, 0x03, 0xe2, 0xc8, 0x71, 0x8f, 0x7b, 0xdc, 0x03, + 0x1f, 0x80, 0xe3, 0x8a, 0xd3, 0x8a, 0x13, 0xe2, 0xd0, 0x42, 0x99, 0xc3, 0x4a, 0xe1, 0x80, 0xe4, + 0x4f, 0x80, 0xfa, 0x55, 0xf9, 0x5f, 0x27, 0x1a, 0x6d, 0x72, 0x89, 0xeb, 0xd5, 0xef, 0xbd, 0xf7, + 0x7b, 0xef, 0xd5, 0xab, 0xae, 0xaa, 0xa0, 0xa6, 0x54, 0x82, 0x2a, 0x2e, 0x77, 0x59, 0x3f, 0xde, + 0xed, 0xef, 0x65, 0x3f, 0x3b, 0x5d, 0xc1, 0x15, 0xc7, 0x35, 0x83, 0xec, 0x64, 0x53, 0xfd, 0xbd, + 0x3b, 0x8d, 0x80, 0x07, 0x1c, 0xa0, 0xdd, 0x6c, 0xa4, 0xb5, 0xee, 0xdc, 0xf6, 0xb8, 0x8c, 0xb9, + 0x74, 0x35, 0xa0, 0x05, 0x03, 0xad, 0xd1, 0x38, 0x4c, 0xf8, 0x2e, 0xfc, 0xd5, 0x53, 0xad, 0xff, + 0x16, 0xd1, 0xf2, 0x73, 0x2a, 0x68, 0x2c, 0xf1, 0x1e, 0x2a, 0xb3, 0x7e, 0xec, 0xfa, 0x2c, 0xe1, + 0x71, 0xb3, 0xb0, 0x55, 0xd8, 0x2e, 0xb7, 0x1b, 0xa3, 0xd4, 0xb1, 0x87, 0x34, 0x8e, 0x1e, 0xb6, + 0x26, 0x50, 0x8b, 0x58, 0xac, 0x1f, 0x1f, 0x66, 0x43, 0xfc, 0x1e, 0x5a, 0x65, 0x09, 0xed, 0x44, + 0xcc, 0xf5, 0x04, 0xa3, 0x8a, 0x35, 0x17, 0xb7, 0x0a, 0xdb, 0x56, 0xbb, 0x39, 0x4a, 0x9d, 0x86, + 0x31, 0x9b, 0x85, 0x5b, 0xa4, 0xaa, 0xe5, 0x47, 0x20, 0xe2, 0xef, 0xa1, 0xca, 0x18, 0xa7, 0x51, + 0xd4, 0x2c, 0x82, 0xf1, 0xad, 0x51, 0xea, 0xe0, 0x79, 0x63, 0x1a, 0x45, 0x2d, 0x82, 0x8c, 0x29, + 0x8d, 0x22, 0x7c, 0x80, 0x10, 0x1b, 0x28, 0x41, 0x5d, 0x16, 0x76, 0x65, 0xb3, 0xb4, 0x55, 0xdc, + 0x2e, 0xb6, 0x5b, 0xe7, 0xa9, 0x53, 0x7e, 0x9c, 0xcd, 0x3e, 0x3e, 0x7a, 0x2e, 0x47, 0xa9, 0xb3, + 0x66, 0x9c, 0x4c, 0x14, 0x5b, 0xa4, 0x0c, 0xc2, 0xe3, 0xb0, 0x2b, 0xf1, 0x2f, 0x50, 0xd5, 0x3b, + 0xa5, 0x61, 0xe2, 0x7a, 0x3c, 0x39, 0x09, 0x83, 0xe6, 0xd2, 0x56, 0x61, 0xbb, 0x72, 0x6f, 0x63, + 0x67, 0xbe, 0xc6, 0x3b, 0x8f, 0x32, 0x9d, 0x47, 0xa0, 0xd2, 0xde, 0xfa, 0x22, 0x75, 0x16, 0x46, + 0xa9, 0xb3, 0xae, 0x1d, 0xcf, 0x9a, 0xb7, 0x3e, 0xfb, 0xea, 0xf3, 0xb7, 0x0b, 0xa4, 0xe2, 0x4d, + 0xd5, 0xb1, 0x40, 0x6b, 0x27, 0x8c, 0xb9, 0x31, 0x15, 0x67, 0x4c, 0xb9, 0x5d, 0x28, 0x72, 0x73, + 0x19, 0x68, 0x9c, 0x3c, 0xcd, 0x13, 0xc6, 0x9e, 0x81, 0x9e, 0x5e, 0x8b, 0xf6, 0xb7, 0x0d, 0x55, + 0x53, 0x53, 0x5d, 0xf2, 0x63, 0xf8, 0xea, 0x27, 0xf3, 0x76, 0x0f, 0xbf, 0xf9, 0xd7, 0x4f, 0x9d, + 0xc2, 0x27, 0x5f, 0x7d, 0xfe, 0x76, 0x63, 0xdc, 0x45, 0x03, 0xe8, 0x23, 0x0d, 0xb7, 0xfe, 0x67, + 0xa3, 0xca, 0x4c, 0x46, 0xf8, 0x97, 0xc8, 0xd2, 0x59, 0x84, 0xbe, 0x59, 0xf1, 0x9f, 0xfc, 0x3b, + 0x75, 0xbe, 0x13, 0x84, 0xea, 0xb4, 0xd7, 0xd9, 0xf1, 0x78, 0x6c, 0xfa, 0xc7, 0xfc, 0xdc, 0x95, + 0xfe, 0xd9, 0xae, 0x1a, 0x76, 0x99, 0xdc, 0x39, 0x4a, 0xd4, 0x79, 0xea, 0xac, 0x80, 0xb3, 0xa3, + 0xc3, 0x51, 0xea, 0xd4, 0x67, 0x8b, 0x12, 0xfa, 0xad, 0x7f, 0xfe, 0xed, 0x2e, 0x32, 0xcd, 0x77, + 0x94, 0x28, 0xb2, 0x02, 0xc0, 0x91, 0x8f, 0x7f, 0x8d, 0xea, 0xa7, 0x3c, 0x66, 0x52, 0x31, 0xea, + 0xbb, 0x9d, 0x88, 0x7b, 0x67, 0xd0, 0x34, 0xe5, 0x36, 0xf9, 0xfa, 0xcc, 0xa3, 0xd4, 0xb9, 0xa5, + 0xe9, 0x72, 0xae, 0xf2, 0xac, 0xb5, 0x09, 0xde, 0xce, 0x60, 0xfc, 0xc7, 0x02, 0xaa, 0xf9, 0x94, + 0xbb, 0x27, 0x5c, 0x9c, 0x19, 0xf2, 0x22, 0x90, 0xd3, 0x6b, 0xa5, 0x5d, 0x3d, 0x3c, 0xf8, 0xf0, + 0x09, 0x17, 0x67, 0xe0, 0x74, 0x94, 0x3a, 0x6f, 0xe9, 0x60, 0xe6, 0x3d, 0xe7, 0x63, 0xa9, 0xfa, + 0x94, 0x4f, 0x8c, 0xf0, 0x47, 0xc8, 0x9e, 0xa8, 0xcb, 0x5e, 0xb7, 0xcb, 0x85, 0x6a, 0x96, 0xa0, + 0xff, 0xef, 0x9e, 0xa7, 0x4e, 0xcd, 0x10, 0xbc, 0xd0, 0xc8, 0x28, 0x75, 0xbe, 0x91, 0xa3, 0x30, + 0x36, 0x2d, 0x52, 0x33, 0x6e, 0x8d, 0x2a, 0xfe, 0x5d, 0x01, 0x55, 0x59, 0xd8, 0xdd, 0xdb, 0x7f, + 0xd7, 0x24, 0xb8, 0x04, 0x09, 0xfe, 0xfc, 0x5a, 0x09, 0x56, 0x1e, 0x1f, 0x3d, 0xdf, 0xdb, 0x7f, + 0x77, 0x9c, 0x9f, 0x69, 0xf8, 0x59, 0xb7, 0xf9, 0xec, 0x2a, 0x1a, 0xd4, 0xc9, 0x1d, 0x21, 0x23, + 0xba, 0xa7, 0x54, 0x9e, 0x42, 0xcf, 0x97, 0xdb, 0xdb, 0xe7, 0xa9, 0x83, 0xb4, 0xdf, 0xf7, 0xa9, + 0x3c, 0x9d, 0xae, 0x61, 0x67, 0xf8, 0x2b, 0x9a, 0xa8, 0xb0, 0x17, 0x1b, 0xcf, 0x04, 0x69, 0xe3, + 0x4c, 0x6b, 0x9a, 0xce, 0xbe, 0x49, 0x67, 0xe5, 0xc6, 0xe9, 0xec, 0x5f, 0x95, 0xce, 0xfe, 0x9b, + 0xd2, 0xd1, 0x16, 0xd3, 0x18, 0x1e, 0x98, 0x18, 0xac, 0x1b, 0xc7, 0xf0, 0xe0, 0xaa, 0x18, 0x1e, + 0xbc, 0x29, 0x06, 0x6d, 0x91, 0x6d, 0x9b, 0x5c, 0x9d, 0x9a, 0xe5, 0x9b, 0x6f, 0x9b, 0x7c, 0xc9, + 0xf3, 0xdb, 0x66, 0x82, 0x6b, 0xf2, 0x4f, 0x0a, 0xa8, 0xe1, 0xf1, 0x44, 0xaa, 0x6c, 0x32, 0xe1, + 0xdd, 0x88, 0x99, 0x10, 0x10, 0x84, 0xf0, 0xd1, 0xb5, 0x42, 0xd8, 0x30, 0x1f, 0x8a, 0x2b, 0xfc, + 0xe5, 0xe3, 0x58, 0x9f, 0x57, 0xd2, 0xc1, 0xfc, 0x16, 0xd9, 0x5d, 0xa6, 0x98, 0x90, 0x9d, 0x9e, + 0x08, 0x4c, 0x1c, 0x15, 0x88, 0xe3, 0xc5, 0xb5, 0xe2, 0x30, 0x3b, 0x2a, 0xef, 0x2b, 0x1f, 0x43, + 0x7d, 0xaa, 0xa0, 0xf9, 0x07, 0xa8, 0x16, 0x66, 0x41, 0x75, 0x7a, 0x91, 0x61, 0xaf, 0x02, 0xfb, + 0x8f, 0xaf, 0xc5, 0x6e, 0x3e, 0x19, 0xf3, 0x9e, 0xf2, 0xdc, 0xab, 0x63, 0x58, 0x33, 0xff, 0xbe, + 0x80, 0x70, 0xdc, 0x0b, 0x85, 0x1b, 0x44, 0xd4, 0x0b, 0x99, 0x30, 0xf4, 0xab, 0x40, 0xff, 0xea, + 0x5a, 0xf4, 0xb7, 0x35, 0xfd, 0x65, 0x6f, 0xf9, 0x10, 0xec, 0x4c, 0xe5, 0x87, 0x5a, 0x43, 0x47, + 0x21, 0x50, 0xb5, 0xc3, 0x44, 0x14, 0x26, 0x86, 0xbe, 0x06, 0xf4, 0x1f, 0x5e, 0x8b, 0xde, 0x74, + 0xff, 0xac, 0x9f, 0x4b, 0xdd, 0xaf, 0xc1, 0x09, 0x67, 0xc4, 0x13, 0x9f, 0x8f, 0x39, 0xf1, 0xcd, + 0x39, 0x67, 0xfd, 0x5c, 0xe2, 0xd4, 0xa0, 0xe6, 0xfc, 0x43, 0x01, 0xad, 0x53, 0x21, 0xf8, 0xc7, + 0xb9, 0x72, 0xaf, 0x5f, 0xf7, 0x9c, 0x1c, 0xa5, 0xce, 0x1d, 0xcd, 0x7d, 0x85, 0xbb, 0x7c, 0x08, + 0x6b, 0xa0, 0x33, 0x57, 0xf0, 0xdf, 0x20, 0x3b, 0x66, 0x22, 0x60, 0xb3, 0xa7, 0x56, 0xe3, 0xe6, + 0x0d, 0x9f, 0xf7, 0x75, 0x69, 0xf3, 0x83, 0xc2, 0xe4, 0xa4, 0x3a, 0x2e, 0x59, 0x75, 0xdb, 0x3e, + 0x2e, 0x59, 0xb6, 0xbd, 0x76, 0x5c, 0xb2, 0xd6, 0x6c, 0x4c, 0x56, 0x87, 0x3c, 0xe2, 0x6e, 0xff, + 0xbe, 0xb6, 0x27, 0x15, 0xf6, 0x31, 0x95, 0xe6, 0x4b, 0x42, 0x6a, 0x1e, 0x55, 0x34, 0x1a, 0x4a, + 0x65, 0x9c, 0xef, 0xa2, 0xa5, 0x17, 0x2a, 0xbb, 0xeb, 0xd9, 0xa8, 0x78, 0xc6, 0x86, 0xfa, 0x96, + 0x41, 0xb2, 0x21, 0x6e, 0xa0, 0xa5, 0x3e, 0x8d, 0x7a, 0xfa, 0xd2, 0x58, 0x26, 0x5a, 0x68, 0x7d, + 0x80, 0xea, 0x2f, 0x05, 0x4d, 0x24, 0xf5, 0x54, 0xc8, 0x93, 0xa7, 0x3c, 0x90, 0x18, 0xa3, 0x12, + 0x9c, 0x23, 0xda, 0x16, 0xc6, 0xf8, 0xbb, 0xa8, 0x14, 0xf1, 0x40, 0x36, 0x17, 0xb7, 0x8a, 0xdb, + 0x95, 0x7b, 0xeb, 0xf9, 0xfb, 0xd4, 0x53, 0x1e, 0x10, 0x50, 0x68, 0xfd, 0x63, 0x11, 0x15, 0x9f, + 0xf2, 0x00, 0x37, 0xd1, 0x0a, 0xf5, 0x7d, 0xc1, 0xa4, 0x34, 0x7e, 0xc6, 0x22, 0xbe, 0x85, 0x96, + 0x15, 0xef, 0x86, 0x9e, 0x76, 0x56, 0x26, 0x46, 0xca, 0x68, 0x7d, 0xaa, 0x28, 0xdc, 0x10, 0xaa, + 0x04, 0xc6, 0xf8, 0x1e, 0xaa, 0x42, 0x5e, 0x6e, 0xd2, 0x8b, 0x3b, 0x4c, 0xc0, 0x91, 0x5d, 0x6a, + 0xd7, 0x2f, 0x52, 0xa7, 0x02, 0xf3, 0x1f, 0xc0, 0x34, 0x99, 0x15, 0xf0, 0x3b, 0x68, 0x45, 0x0d, + 0xf4, 0x49, 0xa8, 0xcf, 0xe2, 0xf5, 0x8b, 0xd4, 0xa9, 0xab, 0x69, 0x92, 0xd9, 0x41, 0x47, 0x96, + 0xd5, 0x00, 0x0e, 0xbc, 0x5d, 0x64, 0xa9, 0x81, 0x1b, 0x26, 0x3e, 0x1b, 0xc0, 0xc1, 0x59, 0x6a, + 0x37, 0x2e, 0x52, 0xc7, 0x9e, 0x51, 0x3f, 0xca, 0x30, 0xb2, 0xa2, 0x06, 0x30, 0xc0, 0xef, 0x20, + 0xa4, 0x43, 0x02, 0x06, 0x7d, 0x3c, 0xae, 0x5e, 0xa4, 0x4e, 0x19, 0x66, 0xc1, 0xf7, 0x74, 0x88, + 0x5b, 0x68, 0x49, 0xfb, 0xb6, 0xc0, 0x77, 0xf5, 0x22, 0x75, 0xac, 0x88, 0x07, 0xda, 0xa7, 0x86, + 0xb2, 0x52, 0x09, 0x16, 0xf3, 0x3e, 0xf3, 0xe1, 0x8c, 0xb1, 0xc8, 0x58, 0x6c, 0xfd, 0x79, 0x11, + 0x59, 0x2f, 0x07, 0x84, 0xc9, 0x5e, 0xa4, 0xf0, 0x13, 0x64, 0x7b, 0x3c, 0x51, 0x82, 0x7a, 0xca, + 0x9d, 0x2b, 0x6d, 0x7b, 0x63, 0xda, 0x6d, 0x79, 0x8d, 0x16, 0xa9, 0x8f, 0xa7, 0x0e, 0x4c, 0xfd, + 0x1b, 0x68, 0xa9, 0x13, 0x71, 0x1e, 0x43, 0x1f, 0x54, 0x89, 0x16, 0xf0, 0x2b, 0xa8, 0x1a, 0xac, + 0x71, 0xf1, 0xea, 0x3b, 0x73, 0xae, 0x4d, 0xda, 0x1b, 0xe6, 0xce, 0x5c, 0xd3, 0xcc, 0xc6, 0xda, + 0xdc, 0x94, 0x97, 0xd5, 0x00, 0x7a, 0xc9, 0x46, 0x45, 0xc1, 0xf4, 0x55, 0xab, 0x4a, 0xb2, 0x21, + 0xbe, 0x83, 0x2c, 0xc1, 0xfa, 0x4c, 0x28, 0xe6, 0xc3, 0xfa, 0x58, 0x64, 0x22, 0xe3, 0xdb, 0xc8, + 0x0a, 0xa8, 0x74, 0x7b, 0x92, 0xf9, 0x7a, 0x31, 0xc8, 0x4a, 0x40, 0xe5, 0x2b, 0xc9, 0xfc, 0x87, + 0xa5, 0x3f, 0x7d, 0xea, 0x2c, 0xb4, 0x28, 0xaa, 0x1c, 0x78, 0x1e, 0x93, 0xf2, 0x65, 0xaf, 0x1b, + 0xb1, 0x37, 0x34, 0xd9, 0x3d, 0x54, 0x95, 0x8a, 0x0b, 0x1a, 0x30, 0xf7, 0x8c, 0x0d, 0x4d, 0xab, + 0xe9, 0xc6, 0x31, 0xf3, 0x3f, 0x62, 0x43, 0x49, 0x66, 0x05, 0x43, 0x91, 0x16, 0x51, 0xe5, 0xa5, + 0xa0, 0x1e, 0x33, 0x77, 0xf6, 0xac, 0x5d, 0x33, 0x51, 0x18, 0x0a, 0x23, 0x65, 0xdc, 0x2a, 0x8c, + 0x19, 0xef, 0x29, 0xb3, 0xa1, 0xc6, 0x62, 0x66, 0x21, 0x18, 0x1b, 0x30, 0x0f, 0x2a, 0x59, 0x22, + 0x46, 0xc2, 0xfb, 0x68, 0xd5, 0x0f, 0x25, 0x3c, 0xb1, 0xa4, 0xa2, 0xe6, 0xaa, 0x68, 0xb5, 0xed, + 0x8b, 0xd4, 0xa9, 0x1a, 0xe0, 0x45, 0x36, 0x4f, 0xe6, 0x24, 0xfc, 0x03, 0x54, 0x9f, 0x9a, 0x41, + 0xb4, 0x50, 0x1b, 0xab, 0x8d, 0x2f, 0x52, 0xa7, 0x36, 0x51, 0x05, 0x84, 0xe4, 0xe4, 0x6c, 0xb1, + 0x7d, 0xd6, 0xe9, 0x05, 0xd0, 0x7f, 0x16, 0xd1, 0x42, 0x36, 0x1b, 0x85, 0x71, 0xa8, 0xa0, 0xdf, + 0x96, 0x88, 0x16, 0xf0, 0xf7, 0x51, 0x99, 0xf7, 0x99, 0x10, 0xa1, 0xcf, 0x24, 0x5c, 0x35, 0xde, + 0xfc, 0x3e, 0x23, 0x53, 0xed, 0x2c, 0x35, 0xf3, 0x78, 0x8c, 0x59, 0xcc, 0xc5, 0x10, 0x6e, 0x08, + 0x26, 0x35, 0x0d, 0x3c, 0x83, 0x79, 0x32, 0x27, 0xe1, 0x36, 0xc2, 0xc6, 0x4c, 0x30, 0xd5, 0x13, + 0x89, 0x0b, 0x1f, 0x80, 0x2a, 0xd8, 0xc2, 0x36, 0xd4, 0x28, 0x01, 0xf0, 0x90, 0x2a, 0x4a, 0x2e, + 0xcd, 0x1c, 0x97, 0xac, 0x92, 0xbd, 0x74, 0x5c, 0xb2, 0x56, 0x6c, 0x6b, 0x92, 0xbd, 0x89, 0x82, + 0xac, 0x8f, 0xe5, 0x19, 0xf7, 0xad, 0xbf, 0x2f, 0xa2, 0x7a, 0xee, 0xfd, 0x87, 0x37, 0x51, 0x25, + 0xe1, 0x6e, 0x87, 0x4a, 0xe6, 0x9e, 0x30, 0x06, 0x2b, 0x6d, 0x91, 0x72, 0xc2, 0xdb, 0x54, 0xb2, + 0x27, 0x8c, 0xe1, 0xf7, 0xd0, 0xc6, 0x18, 0x74, 0xbd, 0x53, 0x9a, 0x04, 0x4c, 0x3f, 0xce, 0xc3, + 0x84, 0x2a, 0x2e, 0xa0, 0x01, 0x56, 0x49, 0xb3, 0xa3, 0xb5, 0x1f, 0x81, 0xc2, 0xe1, 0x14, 0xc7, + 0xf7, 0xd1, 0x5b, 0x2c, 0xa2, 0x52, 0x85, 0x5e, 0xa8, 0x86, 0x6e, 0xdc, 0x8b, 0x54, 0xd8, 0x8d, + 0x42, 0x26, 0xa0, 0x41, 0x56, 0x49, 0x63, 0x0a, 0x3e, 0x9b, 0x60, 0xf8, 0x5b, 0x93, 0x9a, 0x9e, + 0xb2, 0x30, 0x38, 0x55, 0xd0, 0x2e, 0xc5, 0x71, 0x05, 0xdf, 0x87, 0x39, 0xfc, 0x33, 0x64, 0x4d, + 0xa2, 0xd6, 0xf7, 0xfe, 0x83, 0x6c, 0x5b, 0x7e, 0xfd, 0x83, 0x6a, 0xfe, 0x34, 0xd2, 0x9b, 0x77, + 0xc5, 0x24, 0xa2, 0x6b, 0x4b, 0xec, 0x30, 0x09, 0x55, 0x48, 0xa3, 0x49, 0x7d, 0xda, 0xcf, 0x3e, + 0x3b, 0xdf, 0x2c, 0x7c, 0x71, 0xbe, 0x59, 0xf8, 0xf2, 0x7c, 0xb3, 0xf0, 0x9f, 0xf3, 0xcd, 0xc2, + 0x5f, 0x5e, 0x6f, 0x2e, 0x7c, 0xf9, 0x7a, 0x73, 0xe1, 0x5f, 0xaf, 0x37, 0x17, 0x7e, 0xba, 0x3b, + 0xc3, 0x6c, 0xda, 0x27, 0x61, 0x6a, 0x3c, 0xbc, 0x0b, 0x2f, 0x53, 0xf3, 0x4e, 0x86, 0x30, 0x3a, + 0xcb, 0xf0, 0xbf, 0x91, 0xfb, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0x92, 0x43, 0x73, 0x79, 0x8b, + 0x11, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/evm/types/genesis.pb.go b/x/evm/types/genesis.pb.go index 1e4940d0..1d8da23a 100644 --- a/x/evm/types/genesis.pb.go +++ b/x/evm/types/genesis.pb.go @@ -5,6 +5,8 @@ package types import ( fmt "fmt" + _ "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" @@ -25,13 +27,13 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the evm module's genesis state. type GenesisState struct { - // accounts is an array containing the ethereum genesis accounts. - Accounts []GenesisAccount `protobuf:"bytes,1,rep,name=accounts,proto3" json:"accounts"` // params defines all the parameters of the module. - Params Params `protobuf:"bytes,2,opt,name=params,proto3" json:"params"` + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params" yaml:"params"` + // accounts is an array containing the ethereum genesis accounts. + Accounts []GenesisAccount `protobuf:"bytes,2,rep,name=accounts,proto3" json:"accounts" yaml:"accounts"` // block gas is the amount of gas used on the last block before the upgrade. // Zero by default. - BlockGas uint64 `protobuf:"varint,3,opt,name=block_gas,json=blockGas,proto3" json:"block_gas,omitempty"` + BlockGas uint64 `protobuf:"varint,3,opt,name=block_gas,json=blockGas,proto3" json:"block_gas" yaml:"block_gas"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -67,18 +69,18 @@ func (m *GenesisState) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisState proto.InternalMessageInfo -func (m *GenesisState) GetAccounts() []GenesisAccount { +func (m *GenesisState) GetParams() Params { if m != nil { - return m.Accounts + return m.Params } - return nil + return Params{} } -func (m *GenesisState) GetParams() Params { +func (m *GenesisState) GetAccounts() []GenesisAccount { if m != nil { - return m.Params + return m.Accounts } - return Params{} + return nil } func (m *GenesisState) GetBlockGas() uint64 { @@ -93,11 +95,11 @@ func (m *GenesisState) GetBlockGas() uint64 { // custom storage type and that it doesn't contain the private key field. type GenesisAccount struct { // address defines an ethereum hex formated address of an account - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address" yaml:"address"` // code defines the hex bytes of the account code. - Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code,omitempty"` + Code string `protobuf:"bytes,2,opt,name=code,proto3" json:"code" yaml:"code"` // storage defines the set of state key values for the account. - Storage Storage `protobuf:"bytes,3,rep,name=storage,proto3,castrepeated=Storage" json:"storage"` + Storage Storage `protobuf:"bytes,3,rep,name=storage,proto3,castrepeated=Storage" json:"storage" yaml:"storage"` } func (m *GenesisAccount) Reset() { *m = GenesisAccount{} } @@ -162,28 +164,35 @@ func init() { func init() { proto.RegisterFile("stratos/evm/v1/genesis.proto", fileDescriptor_8bfc0e5ccf7131d4) } var fileDescriptor_8bfc0e5ccf7131d4 = []byte{ - // 333 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0xcf, 0x4e, 0x32, 0x31, - 0x14, 0xc5, 0xa7, 0x1f, 0x84, 0x3f, 0xe5, 0x0b, 0x26, 0x8d, 0x9a, 0x06, 0x4d, 0x21, 0xac, 0x66, - 0x63, 0x1b, 0xd0, 0x07, 0x40, 0x36, 0xac, 0x4c, 0xcc, 0xb0, 0x73, 0x63, 0x4a, 0x69, 0x0a, 0xd1, - 0x99, 0x92, 0x69, 0x99, 0xe8, 0xce, 0x47, 0xf0, 0x1d, 0xdc, 0x18, 0x9f, 0x84, 0x25, 0x4b, 0x57, - 0x6a, 0x86, 0x17, 0x31, 0xd3, 0x19, 0x4c, 0x98, 0xdd, 0x6d, 0xcf, 0xef, 0xdc, 0x7b, 0xee, 0x85, - 0xe7, 0xc6, 0xc6, 0xdc, 0x6a, 0xc3, 0x64, 0x12, 0xb2, 0x64, 0xc0, 0x94, 0x8c, 0xa4, 0x59, 0x1a, - 0xba, 0x8a, 0xb5, 0xd5, 0xa8, 0x5d, 0xa8, 0x54, 0x26, 0x21, 0x4d, 0x06, 0x9d, 0x63, 0xa5, 0x95, - 0x76, 0x12, 0xcb, 0xaa, 0x9c, 0xea, 0xe0, 0x52, 0x8f, 0x0c, 0x76, 0x4a, 0xff, 0x0d, 0xc0, 0xff, - 0x93, 0xbc, 0xe3, 0xd4, 0x72, 0x2b, 0xd1, 0x08, 0x36, 0xb8, 0x10, 0x7a, 0x1d, 0x59, 0x83, 0x41, - 0xaf, 0xe2, 0xb7, 0x86, 0x84, 0x1e, 0xce, 0xa0, 0x05, 0x7f, 0x9d, 0x63, 0xe3, 0xea, 0xe6, 0xab, - 0xeb, 0x05, 0x7f, 0x2e, 0x74, 0x05, 0x6b, 0x2b, 0x1e, 0xf3, 0xd0, 0xe0, 0x7f, 0x3d, 0xe0, 0xb7, - 0x86, 0xa7, 0x65, 0xff, 0xad, 0x53, 0x0b, 0x5f, 0xc1, 0xa2, 0x33, 0xd8, 0x9c, 0x3d, 0x6a, 0xf1, - 0x70, 0xaf, 0xb8, 0xc1, 0x95, 0x1e, 0xf0, 0xab, 0x41, 0xc3, 0x7d, 0x4c, 0xb8, 0xe9, 0xbf, 0x00, - 0xd8, 0x3e, 0x9c, 0x8a, 0x30, 0xac, 0xf3, 0xf9, 0x3c, 0x96, 0x26, 0x8b, 0x09, 0xfc, 0x66, 0xb0, - 0x7f, 0x22, 0x04, 0xab, 0x42, 0xcf, 0xa5, 0x9b, 0xde, 0x0c, 0x5c, 0x8d, 0x46, 0xb0, 0x6e, 0xac, - 0x8e, 0xb9, 0x92, 0xb8, 0xe2, 0x96, 0x3a, 0x29, 0x87, 0x72, 0xdb, 0x8f, 0x8f, 0xb2, 0x4c, 0x1f, - 0xdf, 0xdd, 0xfa, 0x34, 0xa7, 0x83, 0xbd, 0x6d, 0x7c, 0xf3, 0x9e, 0x12, 0xb0, 0x49, 0x09, 0xd8, - 0xa6, 0x04, 0xfc, 0xa4, 0x04, 0xbc, 0xee, 0x88, 0xb7, 0xdd, 0x11, 0xef, 0x73, 0x47, 0xbc, 0x3b, - 0xa6, 0x96, 0x76, 0xb1, 0x9e, 0x51, 0xa1, 0x43, 0x56, 0x34, 0x8e, 0xa4, 0xdd, 0x97, 0x17, 0x62, - 0xc1, 0x97, 0x11, 0x7b, 0x72, 0xe7, 0xb7, 0xcf, 0x2b, 0x69, 0x66, 0x35, 0x77, 0xfe, 0xcb, 0xdf, - 0x00, 0x00, 0x00, 0xff, 0xff, 0xeb, 0x5f, 0x4d, 0xe9, 0xde, 0x01, 0x00, 0x00, + // 442 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x52, 0x4d, 0x6b, 0xd4, 0x40, + 0x18, 0xce, 0xec, 0x96, 0xae, 0x9d, 0xd5, 0x55, 0x83, 0x1f, 0xb1, 0xe8, 0xcc, 0x12, 0x44, 0x82, + 0x1f, 0x19, 0x5a, 0x0f, 0x82, 0x37, 0xe3, 0xa1, 0x27, 0x41, 0x52, 0x4f, 0x82, 0x94, 0xd9, 0x64, + 0x48, 0x83, 0x4d, 0x66, 0xc9, 0x4c, 0x83, 0xfd, 0x15, 0xfa, 0x33, 0x8a, 0x27, 0x7f, 0x46, 0x8f, + 0xbd, 0x08, 0x9e, 0x46, 0xc9, 0x1e, 0x84, 0x1c, 0xf3, 0x0b, 0xca, 0xce, 0x4c, 0xb6, 0xec, 0x5e, + 0xc2, 0xfb, 0x3e, 0xcf, 0xf3, 0xbe, 0xcf, 0xc3, 0x9b, 0x81, 0x8f, 0x85, 0xac, 0xa8, 0xe4, 0x82, + 0xb0, 0xba, 0x20, 0xf5, 0x1e, 0xc9, 0x58, 0xc9, 0x44, 0x2e, 0xc2, 0x79, 0xc5, 0x25, 0x77, 0x27, + 0x96, 0x0d, 0x59, 0x5d, 0x84, 0xf5, 0xde, 0xee, 0xbd, 0x8c, 0x67, 0x5c, 0x53, 0x64, 0x59, 0x19, + 0xd5, 0xee, 0xa3, 0x84, 0x8b, 0x82, 0x8b, 0x23, 0x43, 0x98, 0xc6, 0x52, 0x77, 0x69, 0x91, 0x97, + 0x9c, 0xe8, 0xaf, 0x85, 0xbc, 0x0d, 0xc7, 0xe5, 0x6a, 0xcd, 0xf8, 0xdf, 0x07, 0xf0, 0xe6, 0x81, + 0xf1, 0x3f, 0x94, 0x54, 0x32, 0xf7, 0x13, 0xdc, 0x9e, 0xd3, 0x8a, 0x16, 0xc2, 0x03, 0x53, 0x10, + 0x8c, 0xf7, 0x1f, 0x84, 0xeb, 0x79, 0xc2, 0x8f, 0x9a, 0x8d, 0x9e, 0x5e, 0x28, 0xec, 0xb4, 0x0a, + 0x5b, 0x75, 0xa7, 0xf0, 0xad, 0x33, 0x5a, 0x9c, 0xbc, 0xf5, 0x4d, 0xef, 0x9f, 0xff, 0xff, 0xf5, + 0x1c, 0xc4, 0x96, 0x75, 0x53, 0x78, 0x83, 0x26, 0x09, 0x3f, 0x2d, 0xa5, 0xf0, 0x06, 0xd3, 0x61, + 0x30, 0xde, 0x47, 0x9b, 0x7b, 0x6d, 0x8a, 0x77, 0x46, 0x16, 0x05, 0x76, 0xff, 0x6a, 0xae, 0x53, + 0xf8, 0xb6, 0x71, 0xe8, 0x11, 0xeb, 0xb1, 0x52, 0xb8, 0xef, 0xe1, 0xce, 0xec, 0x84, 0x27, 0x5f, + 0x8f, 0x32, 0x2a, 0xbc, 0xe1, 0x14, 0x04, 0x5b, 0xd1, 0xb3, 0x56, 0xe1, 0x6b, 0xb0, 0x53, 0xf8, + 0x8e, 0xd9, 0xb1, 0x82, 0xfa, 0x25, 0x1a, 0x38, 0xa0, 0xc2, 0xff, 0x0d, 0xe0, 0x64, 0x3d, 0x8b, + 0xfb, 0x06, 0x8e, 0x68, 0x9a, 0x56, 0x4c, 0x98, 0xa3, 0xec, 0x44, 0x4f, 0x5a, 0x85, 0x7b, 0xa8, + 0x53, 0x78, 0x62, 0x73, 0x19, 0xc0, 0x8f, 0x7b, 0xca, 0x7d, 0x01, 0xb7, 0x12, 0x9e, 0x32, 0x6f, + 0xa0, 0xa7, 0x1e, 0xb6, 0x0a, 0xeb, 0xbe, 0x53, 0x78, 0x6c, 0x46, 0x96, 0x9d, 0x1f, 0x6b, 0xd0, + 0xfd, 0x02, 0x47, 0x42, 0xf2, 0x8a, 0x66, 0xcc, 0x1b, 0xea, 0x13, 0xdd, 0xdf, 0x3c, 0x91, 0xfe, + 0x43, 0xd1, 0x4b, 0x7b, 0x99, 0x5e, 0x7d, 0x1d, 0xc0, 0x02, 0xfe, 0xcf, 0xbf, 0x78, 0x74, 0x68, + 0xea, 0xb8, 0x57, 0x45, 0x1f, 0xce, 0x1b, 0x04, 0x2e, 0x1a, 0x04, 0x2e, 0x1b, 0x04, 0xfe, 0x35, + 0x08, 0xfc, 0x58, 0x20, 0xe7, 0x72, 0x81, 0x9c, 0x3f, 0x0b, 0xe4, 0x7c, 0x26, 0x59, 0x2e, 0x8f, + 0x4f, 0x67, 0x61, 0xc2, 0x0b, 0x62, 0x5d, 0x4b, 0x26, 0xfb, 0xf2, 0x55, 0x72, 0x4c, 0xf3, 0x92, + 0x7c, 0xd3, 0xef, 0x47, 0x9e, 0xcd, 0x99, 0x98, 0x6d, 0xeb, 0xf7, 0xf3, 0xfa, 0x2a, 0x00, 0x00, + 0xff, 0xff, 0x55, 0x8f, 0x0b, 0xcd, 0xcd, 0x02, 0x00, 0x00, } func (this *GenesisState) Equal(that interface{}) bool { @@ -205,6 +214,9 @@ func (this *GenesisState) Equal(that interface{}) bool { } else if this == nil { return false } + if !this.Params.Equal(&that1.Params) { + return false + } if len(this.Accounts) != len(that1.Accounts) { return false } @@ -213,9 +225,6 @@ func (this *GenesisState) Equal(that interface{}) bool { return false } } - if !this.Params.Equal(&that1.Params) { - return false - } if this.BlockGas != that1.BlockGas { return false } @@ -281,16 +290,6 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x18 } - { - size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenesis(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 if len(m.Accounts) > 0 { for iNdEx := len(m.Accounts) - 1; iNdEx >= 0; iNdEx-- { { @@ -302,9 +301,19 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0xa + dAtA[i] = 0x12 } } + { + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -376,14 +385,14 @@ func (m *GenesisState) Size() (n int) { } var l int _ = l + l = m.Params.Size() + n += 1 + l + sovGenesis(uint64(l)) if len(m.Accounts) > 0 { for _, e := range m.Accounts { l = e.Size() n += 1 + l + sovGenesis(uint64(l)) } } - l = m.Params.Size() - n += 1 + l + sovGenesis(uint64(l)) if m.BlockGas != 0 { n += 1 + sovGenesis(uint64(m.BlockGas)) } @@ -450,7 +459,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { 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 Params", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -477,14 +486,13 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Accounts = append(m.Accounts, GenesisAccount{}) - if err := m.Accounts[len(m.Accounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex case 2: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Accounts", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -511,7 +519,8 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Accounts = append(m.Accounts, GenesisAccount{}) + if err := m.Accounts[len(m.Accounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/evm/types/key.go b/x/evm/types/key.go index 54cb8847..f677c998 100644 --- a/x/evm/types/key.go +++ b/x/evm/types/key.go @@ -25,6 +25,7 @@ const ( const ( prefixCode = iota + 1 prefixStorage + prefixParams ) // prefix bytes for the EVM transient store @@ -40,6 +41,7 @@ const ( var ( KeyPrefixCode = []byte{prefixCode} KeyPrefixStorage = []byte{prefixStorage} + KeyPrefixParams = []byte{prefixParams} ) // Transient Store key prefixes diff --git a/x/evm/types/params.go b/x/evm/types/params.go index 383f975a..1df15c39 100644 --- a/x/evm/types/params.go +++ b/x/evm/types/params.go @@ -20,34 +20,15 @@ const ( DefaultEVMDenom = stratos.Wei ) -// Parameter keys var ( - ParamStoreKeyEVMDenom = []byte("EVMDenom") - ParamStoreKeyEnableCreate = []byte("EnableCreate") - ParamStoreKeyEnableCall = []byte("EnableCall") - ParamStoreKeyExtraEIPs = []byte("EnableExtraEIPs") - ParamStoreKeyChainConfig = []byte("ChainConfig") - // AvailableExtraEIPs define the list of all EIPs that can be enabled by the // EVM interpreter. These EIPs are applied in order and can override the // instruction sets from the latest hard fork enabled by the ChainConfig. For // more info check: // https://github.com/ethereum/go-ethereum/blob/master/core/vm/interpreter.go#L97 AvailableExtraEIPs = []int64{1344, 1884, 2200, 2929, 3198, 3529} - - // fee market - ParamStoreKeyNoBaseFee = []byte("NoBaseFee") - ParamStoreKeyBaseFeeChangeDenominator = []byte("BaseFeeChangeDenominator") - ParamStoreKeyElasticityMultiplier = []byte("ElasticityMultiplier") - ParamStoreKeyBaseFee = []byte("BaseFee") - ParamStoreKeyEnableHeight = []byte("EnableHeight") ) -// ParamKeyTable returns the parameter key table. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - // NewParams creates a new Params instance func NewParams(evmDenom string, enableCreate, enableCall bool, config ChainConfig, feeMarketParams FeeMarketParams, extraEIPs ...int64) Params { return Params{ @@ -73,23 +54,6 @@ func DefaultParams() Params { } } -// ParamSetPairs returns the parameter set pairs. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(ParamStoreKeyEVMDenom, &p.EvmDenom, validateEVMDenom), - paramtypes.NewParamSetPair(ParamStoreKeyEnableCreate, &p.EnableCreate, validateBool), - paramtypes.NewParamSetPair(ParamStoreKeyEnableCall, &p.EnableCall, validateBool), - paramtypes.NewParamSetPair(ParamStoreKeyExtraEIPs, &p.ExtraEIPs, validateEIPs), - paramtypes.NewParamSetPair(ParamStoreKeyChainConfig, &p.ChainConfig, validateChainConfig), - //fee market - paramtypes.NewParamSetPair(ParamStoreKeyNoBaseFee, &p.FeeMarketParams.NoBaseFee, validateBool), - paramtypes.NewParamSetPair(ParamStoreKeyBaseFeeChangeDenominator, &p.FeeMarketParams.BaseFeeChangeDenominator, validateBaseFeeChangeDenominator), - paramtypes.NewParamSetPair(ParamStoreKeyElasticityMultiplier, &p.FeeMarketParams.ElasticityMultiplier, validateElasticityMultiplier), - paramtypes.NewParamSetPair(ParamStoreKeyBaseFee, &p.FeeMarketParams.BaseFee, validateBaseFee), - paramtypes.NewParamSetPair(ParamStoreKeyEnableHeight, &p.FeeMarketParams.EnableHeight, validateEnableHeight), - } -} - // Validate performs basic validation on evm parameters. func (p Params) Validate() error { if err := sdk.ValidateDenom(p.EvmDenom); err != nil { diff --git a/x/evm/types/params_legacy.go b/x/evm/types/params_legacy.go new file mode 100644 index 00000000..69a4015e --- /dev/null +++ b/x/evm/types/params_legacy.go @@ -0,0 +1,45 @@ +package types + +import ( + paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// Parameter keys +var ( + ParamStoreKeyEVMDenom = []byte("EVMDenom") + ParamStoreKeyEnableCreate = []byte("EnableCreate") + ParamStoreKeyEnableCall = []byte("EnableCall") + ParamStoreKeyExtraEIPs = []byte("EnableExtraEIPs") + ParamStoreKeyChainConfig = []byte("ChainConfig") + + // fee market + ParamStoreKeyNoBaseFee = []byte("NoBaseFee") + ParamStoreKeyBaseFeeChangeDenominator = []byte("BaseFeeChangeDenominator") + ParamStoreKeyElasticityMultiplier = []byte("ElasticityMultiplier") + ParamStoreKeyBaseFee = []byte("BaseFee") + ParamStoreKeyEnableHeight = []byte("EnableHeight") +) + +// ParamKeyTable returns the parameter key table. +// Deprecated: now params can be accessed on key `prefixParams` on the evm store. +func ParamKeyTable() paramtypes.KeyTable { + return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) +} + +// ParamSetPairs returns the parameter set pairs. +// Deprecated. +func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { + return paramtypes.ParamSetPairs{ + paramtypes.NewParamSetPair(ParamStoreKeyEVMDenom, &p.EvmDenom, validateEVMDenom), + paramtypes.NewParamSetPair(ParamStoreKeyEnableCreate, &p.EnableCreate, validateBool), + paramtypes.NewParamSetPair(ParamStoreKeyEnableCall, &p.EnableCall, validateBool), + paramtypes.NewParamSetPair(ParamStoreKeyExtraEIPs, &p.ExtraEIPs, validateEIPs), + paramtypes.NewParamSetPair(ParamStoreKeyChainConfig, &p.ChainConfig, validateChainConfig), + //fee market + paramtypes.NewParamSetPair(ParamStoreKeyNoBaseFee, &p.FeeMarketParams.NoBaseFee, validateBool), + paramtypes.NewParamSetPair(ParamStoreKeyBaseFeeChangeDenominator, &p.FeeMarketParams.BaseFeeChangeDenominator, validateBaseFeeChangeDenominator), + paramtypes.NewParamSetPair(ParamStoreKeyElasticityMultiplier, &p.FeeMarketParams.ElasticityMultiplier, validateElasticityMultiplier), + paramtypes.NewParamSetPair(ParamStoreKeyBaseFee, &p.FeeMarketParams.BaseFee, validateBaseFee), + paramtypes.NewParamSetPair(ParamStoreKeyEnableHeight, &p.FeeMarketParams.EnableHeight, validateEnableHeight), + } +} diff --git a/x/pot/genesis.go b/x/pot/keeper/genesis.go similarity index 56% rename from x/pot/genesis.go rename to x/pot/keeper/genesis.go index dabff67c..a05c78bb 100644 --- a/x/pot/genesis.go +++ b/x/pot/keeper/genesis.go @@ -1,4 +1,4 @@ -package pot +package keeper import ( "fmt" @@ -6,23 +6,22 @@ import ( sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/stratosnet/stratos-chain/x/pot/keeper" "github.com/stratosnet/stratos-chain/x/pot/types" ) // InitGenesis initialize default parameters // and the keeper's address to pubkey map -func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState) { - keeper.SetParams(ctx, data.Params) - keeper.SetTotalMinedTokens(ctx, sdk.NewCoin(keeper.RewardDenom(ctx), sdkmath.NewInt(0))) - keeper.SetLastDistributedEpoch(ctx, data.LastDistributedEpoch) +func (k Keeper) InitGenesis(ctx sdk.Context, data *types.GenesisState) { + k.SetParams(ctx, data.Params) + k.SetTotalMinedTokens(ctx, sdk.NewCoin(k.RewardDenom(ctx), sdkmath.NewInt(0))) + k.SetLastDistributedEpoch(ctx, data.LastDistributedEpoch) for _, immatureTotal := range data.ImmatureTotalInfo { walletAddr, err := sdk.AccAddressFromBech32(immatureTotal.WalletAddress) if err != nil { panic("invliad wallet address when init genesis of PoT module") } - keeper.SetImmatureTotalReward(ctx, walletAddr, immatureTotal.Value) + k.SetImmatureTotalReward(ctx, walletAddr, immatureTotal.Value) } for _, matureTotal := range data.MatureTotalInfo { @@ -30,7 +29,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState if err != nil { panic("invliad wallet address when init genesis of PoT module") } - keeper.SetMatureTotalReward(ctx, walletAddr, matureTotal.Value) + k.SetMatureTotalReward(ctx, walletAddr, matureTotal.Value) } for _, individual := range data.IndividualRewardInfo { @@ -38,15 +37,15 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState if err != nil { panic("invliad wallet address when init genesis of PoT module") } - keeper.SetIndividualReward(ctx, walletAddr, data.LastDistributedEpoch.Add(sdkmath.NewInt(data.Params.MatureEpoch)), individual) + k.SetIndividualReward(ctx, walletAddr, data.LastDistributedEpoch.Add(sdkmath.NewInt(data.Params.MatureEpoch)), individual) } - keeper.SetMaturedEpoch(ctx, data.MaturedEpoch) + k.SetMaturedEpoch(ctx, data.MaturedEpoch) // ensure total supply of bank module is LT InitialTotalSupply - totalSupply := keeper.GetSupply(ctx) - if keeper.GetParams(ctx).InitialTotalSupply.IsLT(totalSupply) { + totalSupply := k.GetSupply(ctx) + if k.GetParams(ctx).InitialTotalSupply.IsLT(totalSupply) { errMsg := fmt.Sprintf("current total supply[%v] is greater than total supply limit[%v]", - totalSupply.String(), keeper.GetParams(ctx).InitialTotalSupply.String()) + totalSupply.String(), k.GetParams(ctx).InitialTotalSupply.String()) panic(errMsg) } } @@ -54,20 +53,20 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState // ExportGenesis writes the current store values // to a genesis file, which can be imported again // with InitGenesis -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data *types.GenesisState) { - params := keeper.GetParams(ctx) - totalMinedToken := keeper.GetTotalMinedTokens(ctx) - lastDistributedEpoch := keeper.GetLastDistributedEpoch(ctx) +func (k Keeper) ExportGenesis(ctx sdk.Context) (data *types.GenesisState) { + params := k.GetParams(ctx) + totalMinedToken := k.GetTotalMinedTokens(ctx) + lastDistributedEpoch := k.GetLastDistributedEpoch(ctx) var individualRewardInfo []types.Reward var immatureTotalInfo []types.ImmatureTotal - keeper.IteratorImmatureTotal(ctx, func(walletAddress sdk.AccAddress, reward sdk.Coins) (stop bool) { + k.IteratorImmatureTotal(ctx, func(walletAddress sdk.AccAddress, reward sdk.Coins) (stop bool) { if !reward.Empty() && !reward.IsZero() { immatureTotal := types.NewImmatureTotal(walletAddress, reward) immatureTotalInfo = append(immatureTotalInfo, immatureTotal) - miningReward := sdk.NewCoins(sdk.NewCoin(keeper.RewardDenom(ctx), reward.AmountOf(keeper.RewardDenom(ctx)))) - trafficReward := sdk.NewCoins(sdk.NewCoin(keeper.BondDenom(ctx), reward.AmountOf(keeper.BondDenom(ctx)))) + miningReward := sdk.NewCoins(sdk.NewCoin(k.RewardDenom(ctx), reward.AmountOf(k.RewardDenom(ctx)))) + trafficReward := sdk.NewCoins(sdk.NewCoin(k.BondDenom(ctx), reward.AmountOf(k.BondDenom(ctx)))) individualReward := types.NewReward(walletAddress, miningReward, trafficReward) individualRewardInfo = append(individualRewardInfo, individualReward) @@ -76,7 +75,7 @@ func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data *types.GenesisSt }) var matureTotalInfo []types.MatureTotal - keeper.IteratorMatureTotal(ctx, func(walletAddress sdk.AccAddress, reward sdk.Coins) (stop bool) { + k.IteratorMatureTotal(ctx, func(walletAddress sdk.AccAddress, reward sdk.Coins) (stop bool) { if !reward.Empty() && !reward.IsZero() { matureTotal := types.NewMatureTotal(walletAddress, reward) matureTotalInfo = append(matureTotalInfo, matureTotal) @@ -84,7 +83,7 @@ func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data *types.GenesisSt return false }) - maturedEpoch := keeper.GetMaturedEpoch(ctx) + maturedEpoch := k.GetMaturedEpoch(ctx) return types.NewGenesisState( params, diff --git a/x/pot/keeper/keeper.go b/x/pot/keeper/keeper.go index 40e99651..ff7125ca 100644 --- a/x/pot/keeper/keeper.go +++ b/x/pot/keeper/keeper.go @@ -16,7 +16,6 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" stratos "github.com/stratosnet/stratos-chain/types" @@ -28,7 +27,6 @@ import ( type Keeper struct { storeKey storetypes.StoreKey cdc codec.Codec - paramSpace paramstypes.Subspace accountKeeper types.AccountKeeper bankKeeper types.BankKeeper distrKeeper types.DistrKeeper diff --git a/x/pot/keeper/params.go b/x/pot/keeper/params.go index 7cc9443e..7a5ce4e6 100644 --- a/x/pot/keeper/params.go +++ b/x/pot/keeper/params.go @@ -7,35 +7,46 @@ import ( "github.com/stratosnet/stratos-chain/x/pot/types" ) -// GetParams returns the total set of pot parameters. -func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) { - k.paramSpace.GetParamSet(ctx, ¶ms) - return params +// SetParams sets the params on the store +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { + store := ctx.KVStore(k.storeKey) + bz := k.cdc.MustMarshal(¶ms) + store.Set(types.ParamsKey, bz) } -// SetParams sets the pot parameters to the param space. -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { - k.paramSpace.SetParamSet(ctx, ¶ms) +// GetParams returns the params from the store +func (k Keeper) GetParams(ctx sdk.Context) (p types.Params) { + store := ctx.KVStore(k.storeKey) + bz := store.Get(types.ParamsKey) + if bz == nil { + return p + } + k.cdc.MustUnmarshal(bz, &p) + return p } // BondDenom - Bondable coin denomination func (k Keeper) BondDenom(ctx sdk.Context) (res string) { - k.paramSpace.Get(ctx, types.KeyBondDenom, &res) + params := k.GetParams(ctx) + res = params.GetBondDenom() return } func (k Keeper) RewardDenom(ctx sdk.Context) (res string) { - k.paramSpace.Get(ctx, types.KeyRewardDenom, &res) + params := k.GetParams(ctx) + res = params.GetRewardDenom() return } func (k Keeper) MatureEpoch(ctx sdk.Context) (res int64) { - k.paramSpace.Get(ctx, types.KeyMatureEpoch, &res) + params := k.GetParams(ctx) + res = params.GetMatureEpoch() return } func (k Keeper) MiningRewardParams(ctx sdk.Context) (res []types.MiningRewardParam) { - k.paramSpace.Get(ctx, types.KeyMiningRewardParams, &res) + params := k.GetParams(ctx) + res = params.GetMiningRewardParams() return } @@ -50,11 +61,13 @@ func (k Keeper) GetMiningRewardParamByMinedToken(ctx sdk.Context, minedToken sdk } func (k Keeper) GetCommunityTax(ctx sdk.Context) (res sdkmath.LegacyDec) { - k.paramSpace.Get(ctx, types.KeyCommunityTax, &res) + params := k.GetParams(ctx) + res = params.CommunityTax return } func (k Keeper) InitialTotalSupply(ctx sdk.Context) (res sdk.Coin) { - k.paramSpace.Get(ctx, types.KeyInitialTotalSupply, &res) + params := k.GetParams(ctx) + res = params.GetInitialTotalSupply() return } diff --git a/x/pot/module.go b/x/pot/module.go index 620cd0b5..69c0f376 100644 --- a/x/pot/module.go +++ b/x/pot/module.go @@ -149,14 +149,14 @@ func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, &genesisState) + am.keeper.InitGenesis(ctx, &genesisState) return []abci.ValidatorUpdate{} } // ExportGenesis returns the exported genesis state as raw bytes for the pot // module. func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { - gs := ExportGenesis(ctx, am.keeper) + gs := am.keeper.ExportGenesis(ctx) return cdc.MustMarshalJSON(gs) } diff --git a/x/pot/types/genesis.pb.go b/x/pot/types/genesis.pb.go index c970e375..436c60c8 100644 --- a/x/pot/types/genesis.pb.go +++ b/x/pot/types/genesis.pb.go @@ -8,6 +8,7 @@ import ( _ "github.com/cosmos/cosmos-proto" 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/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -107,7 +108,7 @@ func (m *GenesisState) GetIndividualRewardInfo() []Reward { type ImmatureTotal struct { WalletAddress string `protobuf:"bytes,1,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address" yaml:"wallet_address"` - Value github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,2,rep,name=value,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"value"` + Value github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,2,rep,name=value,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"value" yaml:"value"` } func (m *ImmatureTotal) Reset() { *m = ImmatureTotal{} } @@ -159,7 +160,7 @@ func (m *ImmatureTotal) GetValue() github_com_cosmos_cosmos_sdk_types.Coins { type MatureTotal struct { WalletAddress string `protobuf:"bytes,1,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address" yaml:"wallet_address"` - Value github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,2,rep,name=value,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"value"` + Value github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,2,rep,name=value,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"value" yaml:"value"` } func (m *MatureTotal) Reset() { *m = MatureTotal{} } @@ -218,49 +219,51 @@ func init() { func init() { proto.RegisterFile("stratos/pot/v1/genesis.proto", fileDescriptor_abdde08c2564316a) } var fileDescriptor_abdde08c2564316a = []byte{ - // 658 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x94, 0x4f, 0x6b, 0xd4, 0x4e, - 0x18, 0xc7, 0x77, 0xda, 0x5f, 0x5b, 0x3a, 0xed, 0xb6, 0x34, 0xbf, 0xb5, 0xa4, 0xd5, 0x66, 0x4a, - 0x0e, 0xb2, 0x20, 0x4d, 0xdc, 0x8a, 0x07, 0xbd, 0x88, 0x51, 0x91, 0x3d, 0x2c, 0x4a, 0xec, 0xc9, - 0x4b, 0x98, 0xdd, 0x4c, 0xb7, 0x43, 0x93, 0xcc, 0x92, 0x99, 0xdd, 0x5a, 0x10, 0xcf, 0x22, 0x08, - 0xbe, 0x0c, 0x11, 0xbc, 0xe9, 0x3b, 0x10, 0xe9, 0xb1, 0x78, 0x12, 0x0f, 0x51, 0xb6, 0xb7, 0x1e, - 0xf7, 0x15, 0x48, 0x66, 0xa6, 0x76, 0xff, 0xa4, 0xa2, 0x47, 0x4f, 0xc9, 0xcc, 0xf7, 0x99, 0xef, - 0xf3, 0x99, 0xe7, 0x79, 0x12, 0x78, 0x85, 0x8b, 0x14, 0x0b, 0xc6, 0xdd, 0x0e, 0x13, 0x6e, 0xaf, - 0xe6, 0xb6, 0x49, 0x42, 0x38, 0xe5, 0x4e, 0x27, 0x65, 0x82, 0x19, 0x4b, 0x5a, 0x75, 0x3a, 0x4c, - 0x38, 0xbd, 0xda, 0x7a, 0xa5, 0xcd, 0xda, 0x4c, 0x4a, 0x6e, 0xfe, 0xa6, 0xa2, 0xd6, 0xd7, 0x5a, - 0x8c, 0xc7, 0x8c, 0x07, 0x4a, 0x50, 0x0b, 0x2d, 0x59, 0x6a, 0xe5, 0x36, 0x31, 0x27, 0x6e, 0xaf, - 0xd6, 0x24, 0x02, 0xd7, 0xdc, 0x16, 0xa3, 0x89, 0xd6, 0xcd, 0xb1, 0xf4, 0x79, 0x1e, 0xa9, 0xd8, - 0x1f, 0xe7, 0xe0, 0xe2, 0x43, 0x05, 0xf3, 0x44, 0x60, 0x41, 0x8c, 0x47, 0x70, 0xb6, 0x83, 0x53, - 0x1c, 0x73, 0x13, 0x6c, 0x82, 0xea, 0xc2, 0xf6, 0xaa, 0x33, 0x0a, 0xe7, 0x3c, 0x96, 0xaa, 0x87, - 0x8e, 0x32, 0x54, 0x3a, 0xcd, 0x90, 0x8e, 0x1e, 0x64, 0xa8, 0x7c, 0x88, 0xe3, 0xe8, 0xb6, 0xad, - 0xd6, 0xb6, 0xaf, 0x05, 0xe3, 0x39, 0x5c, 0x11, 0x4c, 0xe0, 0x28, 0x88, 0x69, 0x42, 0xc2, 0x40, - 0xb0, 0x7d, 0x92, 0x98, 0x53, 0xd2, 0x7b, 0xcd, 0xd1, 0xb7, 0xc8, 0xb9, 0x1d, 0xcd, 0xed, 0xdc, - 0x63, 0x34, 0xf1, 0x6e, 0x6a, 0xfb, 0xc9, 0xb3, 0x83, 0x0c, 0x99, 0x2a, 0xd3, 0x84, 0x64, 0xfb, - 0xcb, 0x72, 0xaf, 0x91, 0x6f, 0xed, 0xe4, 0x3b, 0xc6, 0x7b, 0x00, 0x57, 0x23, 0xcc, 0x45, 0x10, - 0x52, 0x2e, 0x52, 0xda, 0xec, 0x0a, 0x12, 0x06, 0xa4, 0xc3, 0x5a, 0x7b, 0xe6, 0xf4, 0x26, 0xa8, - 0xce, 0x7b, 0x07, 0x79, 0xa2, 0x6f, 0x19, 0xba, 0xda, 0xa6, 0x62, 0xaf, 0xdb, 0x74, 0x5a, 0x2c, - 0xd6, 0xb5, 0xd5, 0x8f, 0x2d, 0x1e, 0xee, 0xbb, 0xe2, 0xb0, 0x43, 0xb8, 0x53, 0x4f, 0xc4, 0x69, - 0x86, 0x2e, 0xf0, 0x1b, 0x64, 0x68, 0x43, 0x71, 0x15, 0xeb, 0xf6, 0x97, 0x0f, 0x5b, 0x50, 0xdf, - 0xb7, 0x9e, 0x08, 0xbf, 0x92, 0x87, 0xdd, 0x3f, 0x8f, 0x7a, 0x90, 0x07, 0x19, 0x2f, 0x01, 0xfc, - 0x9f, 0xc6, 0x31, 0x16, 0xdd, 0x94, 0x04, 0xea, 0x82, 0x34, 0xd9, 0x65, 0xe6, 0x7f, 0x9b, 0xd3, - 0xd5, 0x85, 0xed, 0x8d, 0xf1, 0x66, 0xd4, 0x75, 0xe8, 0x4e, 0x1e, 0xe9, 0xdd, 0xd2, 0x45, 0x2b, - 0x72, 0x18, 0x64, 0x68, 0x5d, 0xe1, 0x15, 0x88, 0xb6, 0xbf, 0x42, 0x87, 0x9d, 0xea, 0xc9, 0x2e, - 0x33, 0x5e, 0xc0, 0x95, 0x49, 0x8e, 0x19, 0xc9, 0x71, 0x79, 0x9c, 0xa3, 0x31, 0x44, 0xf1, 0xab, - 0x75, 0x45, 0x0c, 0xba, 0x75, 0x05, 0x04, 0xcb, 0xe3, 0xf9, 0x5f, 0x03, 0xb8, 0x4a, 0x93, 0x90, - 0xf6, 0x68, 0xd8, 0xc5, 0x51, 0x90, 0x92, 0x03, 0x9c, 0x86, 0x8a, 0x62, 0x56, 0x52, 0x4c, 0x8c, - 0xa6, 0x2f, 0x43, 0xbc, 0x3b, 0x1a, 0xe0, 0x82, 0xd3, 0xe7, 0x8d, 0x2a, 0xd6, 0x6d, 0xbf, 0x72, - 0x2e, 0x28, 0x4b, 0xc9, 0xf3, 0x0a, 0xc0, 0xb2, 0x62, 0x3c, 0x9b, 0xa0, 0x39, 0x39, 0x41, 0xe4, - 0xaf, 0x27, 0x68, 0xd4, 0x66, 0x90, 0xa1, 0xca, 0x70, 0x55, 0x2e, 0x98, 0x97, 0x45, 0xad, 0xca, - 0x39, 0xb1, 0x3f, 0x03, 0x58, 0x1e, 0x69, 0xbe, 0xe1, 0xc3, 0xa5, 0x03, 0x1c, 0x45, 0x44, 0x04, - 0x38, 0x0c, 0x53, 0xc2, 0xd5, 0x07, 0x3c, 0xef, 0x5d, 0x3b, 0xcd, 0xd0, 0x98, 0x32, 0xc8, 0xd0, - 0x25, 0x95, 0x71, 0x74, 0xdf, 0xf6, 0xcb, 0x6a, 0xe3, 0xae, 0x5a, 0x1b, 0x18, 0xce, 0xf4, 0x70, - 0xd4, 0x25, 0xe6, 0x94, 0x2c, 0xf8, 0x6f, 0xbe, 0xd7, 0xeb, 0x79, 0x11, 0xde, 0x7d, 0x47, 0xd5, - 0x3f, 0x28, 0x42, 0x7e, 0x80, 0xfb, 0xca, 0xd9, 0xfe, 0x04, 0xe0, 0x42, 0xe3, 0x9f, 0xbf, 0x86, - 0xd7, 0x78, 0xdb, 0xb7, 0xc0, 0x51, 0xdf, 0x02, 0xc7, 0x7d, 0x0b, 0xfc, 0xe8, 0x5b, 0xe0, 0xcd, - 0x89, 0x55, 0x3a, 0x3e, 0xb1, 0x4a, 0x5f, 0x4f, 0xac, 0xd2, 0x53, 0x77, 0xc8, 0x4e, 0xcf, 0x6c, - 0x42, 0xc4, 0xd9, 0xeb, 0x56, 0x6b, 0x0f, 0xd3, 0xc4, 0x7d, 0x26, 0xff, 0xce, 0xd2, 0xbb, 0x39, - 0x2b, 0xff, 0xce, 0x37, 0x7e, 0x06, 0x00, 0x00, 0xff, 0xff, 0x23, 0xb3, 0x2e, 0x80, 0x38, 0x06, - 0x00, 0x00, + // 694 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x95, 0xcf, 0x4f, 0x13, 0x41, + 0x14, 0xc7, 0x3b, 0x20, 0x10, 0x06, 0x0a, 0xe9, 0x5a, 0x49, 0x41, 0xd9, 0x25, 0x8d, 0x31, 0x8d, + 0x09, 0xbb, 0x29, 0xde, 0x38, 0x98, 0xb8, 0x60, 0x4c, 0x0f, 0x4d, 0x4c, 0xe1, 0xe4, 0x65, 0x33, + 0xed, 0x0e, 0x65, 0x60, 0x77, 0xa6, 0xd9, 0x99, 0x16, 0x31, 0x5e, 0x8c, 0x67, 0xa3, 0xf1, 0xaf, + 0x20, 0x9e, 0x8c, 0xf1, 0x8f, 0xe0, 0x48, 0x3c, 0x19, 0x0e, 0xab, 0x29, 0x07, 0x13, 0x8e, 0x9b, + 0x18, 0xaf, 0x66, 0x67, 0x06, 0xe9, 0x2f, 0x88, 0x9e, 0xbd, 0xb4, 0x3b, 0xef, 0xfb, 0xdd, 0xf7, + 0x3e, 0x33, 0xef, 0x4d, 0x16, 0xde, 0xe1, 0x22, 0x42, 0x82, 0x71, 0xa7, 0xc5, 0x84, 0xd3, 0x29, + 0x3b, 0x4d, 0x4c, 0x31, 0x27, 0xdc, 0x6e, 0x45, 0x4c, 0x30, 0x63, 0x4e, 0xab, 0x76, 0x8b, 0x09, + 0xbb, 0x53, 0x5e, 0xca, 0x37, 0x59, 0x93, 0x49, 0xc9, 0x49, 0x9f, 0x94, 0x6b, 0x69, 0xb1, 0xc1, + 0x78, 0xc8, 0xb8, 0xa7, 0x04, 0xb5, 0xd0, 0x52, 0x0e, 0x85, 0x84, 0x32, 0x47, 0xfe, 0xea, 0x90, + 0xa9, 0x0c, 0x4e, 0x1d, 0x71, 0xec, 0x74, 0xca, 0x75, 0x2c, 0x50, 0xd9, 0x69, 0x30, 0x42, 0xb5, + 0x5e, 0x18, 0x20, 0x4a, 0x4b, 0x4b, 0xa5, 0x78, 0x3a, 0x05, 0x67, 0x9f, 0x28, 0xbe, 0x2d, 0x81, + 0x04, 0x36, 0xb6, 0xe1, 0x64, 0x0b, 0x45, 0x28, 0xe4, 0x05, 0xb0, 0x02, 0x4a, 0x33, 0x6b, 0x0b, + 0x76, 0x3f, 0xaf, 0xfd, 0x54, 0xaa, 0xee, 0xdd, 0xe3, 0xd8, 0xca, 0x9c, 0xc7, 0x96, 0x76, 0x27, + 0xb1, 0x95, 0x3d, 0x44, 0x61, 0xb0, 0x5e, 0x54, 0xeb, 0xe2, 0xd1, 0x8f, 0x8f, 0xf7, 0x41, 0x4d, + 0xab, 0xc6, 0x2b, 0x00, 0x73, 0x82, 0x09, 0x14, 0x78, 0x21, 0xa1, 0xd8, 0xf7, 0x04, 0xdb, 0xc7, + 0xb4, 0x30, 0x26, 0x2b, 0x2c, 0xda, 0x7a, 0x7b, 0x29, 0xbd, 0xad, 0xe9, 0xed, 0x0d, 0x46, 0xa8, + 0xbb, 0xae, 0x8b, 0x0c, 0xbf, 0x9b, 0xc4, 0x56, 0x41, 0xd5, 0x1b, 0x92, 0x74, 0xe9, 0x79, 0x29, + 0x54, 0xd3, 0xf8, 0x76, 0x1a, 0x36, 0x3e, 0x01, 0xb8, 0x10, 0x20, 0x2e, 0x3c, 0x9f, 0x70, 0x11, + 0x91, 0x7a, 0x5b, 0x60, 0xdf, 0xc3, 0x2d, 0xd6, 0xd8, 0x2d, 0x8c, 0xaf, 0x80, 0xd2, 0xb4, 0xfb, + 0x32, 0xad, 0x76, 0x1a, 0x5b, 0xf7, 0x9a, 0x44, 0xec, 0xb6, 0xeb, 0x76, 0x83, 0x85, 0xfa, 0xe4, + 0xf5, 0xdf, 0x2a, 0xf7, 0xf7, 0x1d, 0x71, 0xd8, 0xc2, 0xdc, 0xae, 0x50, 0x71, 0x1e, 0x5b, 0x57, + 0xe4, 0x4b, 0x62, 0x6b, 0x59, 0xc1, 0x8d, 0xd6, 0x8b, 0x5f, 0x3e, 0xaf, 0x42, 0xbd, 0xe9, 0x0a, + 0x15, 0x8a, 0x37, 0x9f, 0x7a, 0x37, 0x2f, 0xad, 0x8f, 0x53, 0xa7, 0xf1, 0x06, 0xc0, 0x9b, 0x24, + 0x0c, 0x91, 0x68, 0x47, 0xd8, 0x53, 0x5b, 0x25, 0x74, 0x87, 0x15, 0x6e, 0xac, 0x8c, 0x97, 0x66, + 0xd6, 0x96, 0x07, 0x9b, 0x53, 0xd1, 0xd6, 0xed, 0xd4, 0xe9, 0x3e, 0xd4, 0xc7, 0x37, 0x2a, 0x43, + 0x12, 0x5b, 0x4b, 0x8a, 0x71, 0x84, 0xa8, 0x8f, 0x30, 0x47, 0x7a, 0xd3, 0x55, 0xe8, 0x0e, 0x33, + 0x5e, 0x03, 0x98, 0x1b, 0xa6, 0x99, 0x90, 0x34, 0xb7, 0x07, 0x69, 0xaa, 0x3d, 0x2c, 0x7f, 0x5a, + 0x39, 0x8a, 0x44, 0xb7, 0xf2, 0x2a, 0x8e, 0xf9, 0x41, 0x8a, 0xf7, 0x00, 0x2e, 0x10, 0xea, 0x93, + 0x0e, 0xf1, 0xdb, 0x28, 0xf0, 0x22, 0x7c, 0x80, 0x22, 0x5f, 0xa1, 0x4c, 0x4a, 0x94, 0xa1, 0xa9, + 0xad, 0x49, 0x8b, 0xbb, 0xa9, 0x29, 0xae, 0x78, 0xfb, 0xb2, 0x71, 0xa3, 0x75, 0xcd, 0x93, 0xbf, + 0x54, 0x55, 0x5e, 0x09, 0xf5, 0x16, 0xc0, 0xac, 0x02, 0xbd, 0x18, 0xab, 0x29, 0x39, 0x56, 0x7b, + 0xff, 0x3c, 0x56, 0xfd, 0x69, 0x92, 0xd8, 0xca, 0xf7, 0x9e, 0xcf, 0x75, 0x43, 0x34, 0xab, 0x2d, + 0x72, 0x78, 0x8a, 0xbf, 0x00, 0xcc, 0xf6, 0x4d, 0x84, 0xb1, 0x07, 0xe7, 0x0e, 0x50, 0x10, 0x60, + 0xe1, 0x21, 0xdf, 0x8f, 0x30, 0x57, 0xb7, 0x7c, 0xda, 0xdd, 0x38, 0x8f, 0xad, 0x01, 0x25, 0x89, + 0xad, 0x5b, 0xaa, 0x6c, 0x7f, 0x3c, 0xad, 0x9b, 0xd7, 0x75, 0x1f, 0xa9, 0xd0, 0x96, 0x88, 0x08, + 0x6d, 0xd6, 0xb2, 0xca, 0xa8, 0x83, 0xc6, 0x0b, 0x38, 0xd1, 0x41, 0x41, 0x1b, 0x17, 0xc6, 0x64, + 0x4b, 0xae, 0xb9, 0xe6, 0x15, 0xdd, 0x15, 0xe5, 0x4f, 0x62, 0x6b, 0x56, 0x15, 0x96, 0xcb, 0xe2, + 0x87, 0x6f, 0x56, 0xe9, 0x2f, 0x8e, 0x2e, 0xcd, 0xc4, 0x6b, 0x2a, 0x45, 0xf1, 0x27, 0x80, 0x33, + 0xd5, 0xff, 0x6f, 0xdf, 0x6e, 0xf5, 0xa8, 0x6b, 0x82, 0xe3, 0xae, 0x09, 0x4e, 0xba, 0x26, 0xf8, + 0xde, 0x35, 0xc1, 0xbb, 0x33, 0x33, 0x73, 0x72, 0x66, 0x66, 0xbe, 0x9e, 0x99, 0x99, 0x67, 0x4e, + 0x4f, 0x3a, 0x7d, 0x3f, 0x28, 0x16, 0x17, 0x8f, 0xab, 0x8d, 0x5d, 0x44, 0xa8, 0xf3, 0x5c, 0x7e, + 0x24, 0x64, 0xee, 0xfa, 0xa4, 0xfc, 0x48, 0x3c, 0xf8, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xb9, 0xaf, + 0xd1, 0xbd, 0xd2, 0x06, 0x00, 0x00, } func (this *GenesisState) Equal(that interface{}) bool { diff --git a/x/pot/types/key.go b/x/pot/types/key.go index 22eb172b..756844de 100644 --- a/x/pot/types/key.go +++ b/x/pot/types/key.go @@ -14,9 +14,6 @@ const ( // RouterKey to be used for routing msgs RouterKey = ModuleName - - // QuerierRoute to be used for querier msgs - QuerierRoute = ModuleName ) var ( @@ -27,6 +24,8 @@ var ( ImmatureTotalRewardKeyPrefix = []byte{0x05} // key: prefix{address} VolumeReportStoreKeyPrefix = []byte{0x06} // VolumeReportStoreKeyPrefix prefix for volumeReport store MaturedEpochKeyPrefix = []byte{0x07} + + ParamsKey = []byte{0x20} ) func VolumeReportStoreKey(epoch sdkmath.Int) []byte { diff --git a/x/pot/types/params.go b/x/pot/types/params.go index a628e236..aee3f19c 100644 --- a/x/pot/types/params.go +++ b/x/pot/types/params.go @@ -7,8 +7,6 @@ import ( "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - stratos "github.com/stratosnet/stratos-chain/types" ) @@ -18,26 +16,13 @@ const ( DefaultMatureEpoch = 2016 ) -// Parameter store keys var ( - KeyBondDenom = []byte("BondDenom") - KeyRewardDenom = []byte("RewardDenom") - KeyMatureEpoch = []byte("MatureEpoch") - KeyMiningRewardParams = []byte("MiningRewardParams") - KeyCommunityTax = []byte("CommunityTax") - KeyInitialTotalSupply = []byte("InitialTotalSupply") - DefaultCommunityTax = sdkmath.LegacyNewDecWithPrec(2, 2) // 2% DefaultInitialTotalSupply = sdk.NewCoin(DefaultBondDenom, sdkmath.NewInt(1e8).Mul(sdkmath.NewInt(stratos.StosToWei)), ) //100,000,000 stos ) -// ParamKeyTable for pot module -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - // NewParams creates a new Params object func NewParams(bondDenom string, rewardDenom string, matureEpoch int64, miningRewardParams []MiningRewardParam, communityTax sdkmath.LegacyDec, initialTotalSupply sdk.Coin) Params { @@ -101,28 +86,26 @@ func DefaultParams() Params { ) } -// HrpString implements the stringer interface for Params -func (p Params) HrpString() string { - return fmt.Sprintf(`Params: - BondDenom: %s - RewardDenom: %s - MatureEpoch: %d - MiningRewardParams: %s - CommunitiyTax: %v - InitialTotalSupply: %v`, - p.BondDenom, p.RewardDenom, p.MatureEpoch, p.MiningRewardParams, p.CommunityTax, p.InitialTotalSupply) -} - -// ParamSetPairs - Implements params.ParamSet -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyBondDenom, &p.BondDenom, validateBondDenom), - paramtypes.NewParamSetPair(KeyRewardDenom, &p.RewardDenom, validateRewardDenom), - paramtypes.NewParamSetPair(KeyMatureEpoch, &p.MatureEpoch, validateMatureEpoch), - paramtypes.NewParamSetPair(KeyMiningRewardParams, &p.MiningRewardParams, validateMiningRewardParams), - paramtypes.NewParamSetPair(KeyCommunityTax, &p.CommunityTax, validateCommunityTax), - paramtypes.NewParamSetPair(KeyInitialTotalSupply, &p.InitialTotalSupply, validateInitialTotalSupply), +func (p Params) Validate() error { + if err := validateBondDenom(p.BondDenom); err != nil { + return errors.Wrap(ErrInvalidDenom, "failed to validate bond denomination") + } + if err := validateRewardDenom(p.RewardDenom); err != nil { + return errors.Wrap(ErrInvalidDenom, "failed to validate reward denomination") + } + if err := validateMatureEpoch(p.MatureEpoch); err != nil { + return errors.Wrap(ErrMatureEpoch, "failed to validate mature epoch") + } + if err := validateMiningRewardParams(p.MiningRewardParams); err != nil { + return errors.Wrap(ErrMiningRewardParams, "failed to validate mining reward params") + } + if err := validateCommunityTax(p.CommunityTax); err != nil { + return errors.Wrap(ErrCommunityTax, "failed to validate community tax") + } + if err := validateInitialTotalSupply(p.InitialTotalSupply); err != nil { + return errors.Wrap(ErrInitialTotalSupply, err.Error()) } + return nil } func validateBondDenom(i interface{}) error { @@ -217,25 +200,3 @@ func validateInitialTotalSupply(i interface{}) error { } return nil } - -func (p Params) ValidateBasic() error { - if err := validateBondDenom(p.BondDenom); err != nil { - return errors.Wrap(ErrInvalidDenom, "failed to validate bond denomination") - } - if err := validateRewardDenom(p.RewardDenom); err != nil { - return errors.Wrap(ErrInvalidDenom, "failed to validate reward denomination") - } - if err := validateMatureEpoch(p.MatureEpoch); err != nil { - return errors.Wrap(ErrMatureEpoch, "failed to validate mature epoch") - } - if err := validateMiningRewardParams(p.MiningRewardParams); err != nil { - return errors.Wrap(ErrMiningRewardParams, "failed to validate mining reward params") - } - if err := validateCommunityTax(p.CommunityTax); err != nil { - return errors.Wrap(ErrCommunityTax, "failed to validate community tax") - } - if err := validateInitialTotalSupply(p.InitialTotalSupply); err != nil { - return errors.Wrap(ErrInitialTotalSupply, err.Error()) - } - return nil -} diff --git a/x/pot/types/params_legacy.go b/x/pot/types/params_legacy.go new file mode 100644 index 00000000..53fbf191 --- /dev/null +++ b/x/pot/types/params_legacy.go @@ -0,0 +1,34 @@ +package types + +import ( + paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// Parameter store keys +var ( + KeyBondDenom = []byte("BondDenom") + KeyRewardDenom = []byte("RewardDenom") + KeyMatureEpoch = []byte("MatureEpoch") + KeyMiningRewardParams = []byte("MiningRewardParams") + KeyCommunityTax = []byte("CommunityTax") + KeyInitialTotalSupply = []byte("InitialTotalSupply") +) + +// ParamKeyTable for pot module +// Deprecated: now params can be accessed on key `0x20` on the pot store. +func ParamKeyTable() paramtypes.KeyTable { + return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) +} + +// ParamSetPairs - Implements params.ParamSet +// Deprecated. +func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { + return paramtypes.ParamSetPairs{ + paramtypes.NewParamSetPair(KeyBondDenom, &p.BondDenom, validateBondDenom), + paramtypes.NewParamSetPair(KeyRewardDenom, &p.RewardDenom, validateRewardDenom), + paramtypes.NewParamSetPair(KeyMatureEpoch, &p.MatureEpoch, validateMatureEpoch), + paramtypes.NewParamSetPair(KeyMiningRewardParams, &p.MiningRewardParams, validateMiningRewardParams), + paramtypes.NewParamSetPair(KeyCommunityTax, &p.CommunityTax, validateCommunityTax), + paramtypes.NewParamSetPair(KeyInitialTotalSupply, &p.InitialTotalSupply, validateInitialTotalSupply), + } +} diff --git a/x/pot/types/pot.pb.go b/x/pot/types/pot.pb.go index 5364e8d6..1c277a1f 100644 --- a/x/pot/types/pot.pb.go +++ b/x/pot/types/pot.pb.go @@ -8,6 +8,7 @@ import ( _ "github.com/cosmos/cosmos-proto" 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/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -441,79 +442,82 @@ func init() { func init() { proto.RegisterFile("stratos/pot/v1/pot.proto", fileDescriptor_a05930b44d981057) } var fileDescriptor_a05930b44d981057 = []byte{ - // 1141 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0x31, 0x6c, 0x23, 0x45, - 0x14, 0xcd, 0x24, 0x77, 0x0e, 0x99, 0xc4, 0x39, 0x6e, 0x70, 0x88, 0x2f, 0x1c, 0x9e, 0x64, 0x4e, - 0x40, 0x24, 0x14, 0x5b, 0x39, 0x24, 0x0a, 0x4e, 0x14, 0xe7, 0xcb, 0x21, 0x82, 0x14, 0x14, 0x6d, - 0xa2, 0x3b, 0x71, 0x14, 0xab, 0xf5, 0xee, 0xc4, 0x59, 0xdd, 0xee, 0xcc, 0x6a, 0x77, 0xec, 0x4b, - 0x2a, 0x0a, 0x0a, 0x10, 0x14, 0x9c, 0x44, 0x45, 0x41, 0x8f, 0xa8, 0xe9, 0x28, 0x28, 0xa0, 0x38, - 0x24, 0x8a, 0x13, 0x15, 0x50, 0x0c, 0x28, 0x81, 0xc6, 0xe5, 0x96, 0x54, 0x68, 0x67, 0xc6, 0xf1, - 0xda, 0x8e, 0x1d, 0x5c, 0x5c, 0xe5, 0x99, 0xf7, 0xff, 0x7f, 0xf3, 0xdf, 0x9f, 0x3f, 0x33, 0x6b, - 0x58, 0x4e, 0x44, 0xec, 0x08, 0x9e, 0xd4, 0x22, 0x2e, 0x6a, 0xed, 0xcd, 0xec, 0xa7, 0x1a, 0xc5, - 0x5c, 0x70, 0xb4, 0x68, 0x2c, 0xd5, 0x0c, 0x6a, 0x6f, 0xae, 0x94, 0x9a, 0xbc, 0xc9, 0x95, 0xa9, - 0x96, 0x8d, 0xb4, 0xd7, 0xca, 0x35, 0x97, 0x27, 0x21, 0x4f, 0x6c, 0x6d, 0xd0, 0x13, 0x63, 0xaa, - 0xe8, 0x59, 0xad, 0xe1, 0x24, 0xb4, 0xd6, 0xde, 0x6c, 0x50, 0xe1, 0x6c, 0xd6, 0x5c, 0xee, 0x33, - 0x6d, 0x27, 0x5f, 0x5c, 0x86, 0x85, 0x5d, 0x27, 0x76, 0xc2, 0x04, 0xd5, 0x21, 0x6c, 0x70, 0xe6, - 0xd9, 0x1e, 0x65, 0x3c, 0x2c, 0x83, 0x55, 0xb0, 0x3e, 0x57, 0xbf, 0xd1, 0x91, 0x38, 0x87, 0xa6, - 0x12, 0x5f, 0x3d, 0x76, 0xc2, 0xe0, 0x2d, 0xd2, 0xc3, 0x88, 0x35, 0x97, 0x4d, 0xb6, 0xb2, 0x31, - 0x7a, 0x0f, 0x2e, 0xc4, 0xf4, 0x91, 0x13, 0x77, 0x59, 0xa6, 0x15, 0xcb, 0x6b, 0x1d, 0x89, 0xfb, - 0xf0, 0x54, 0xe2, 0x17, 0x34, 0x4f, 0x1e, 0x25, 0xd6, 0xbc, 0x9e, 0x9e, 0x71, 0x85, 0x8e, 0x68, - 0xc5, 0xd4, 0xa6, 0x11, 0x77, 0x0f, 0xcb, 0x33, 0xab, 0x60, 0x7d, 0x46, 0x73, 0xe5, 0xf1, 0x1e, - 0x57, 0x1e, 0x25, 0xd6, 0xbc, 0x9e, 0xde, 0xcd, 0x66, 0xe8, 0x31, 0x80, 0xa5, 0xd0, 0x67, 0x3e, - 0x6b, 0xda, 0x66, 0xc5, 0x48, 0x89, 0x2e, 0x5f, 0x5a, 0x9d, 0x59, 0x9f, 0xbf, 0xb9, 0x56, 0xed, - 0xaf, 0x73, 0x75, 0x47, 0xf9, 0x5a, 0xca, 0x55, 0x95, 0xa7, 0x7e, 0xeb, 0x89, 0xc4, 0x53, 0x1d, - 0x89, 0xcf, 0xa5, 0x49, 0x25, 0x7e, 0xc9, 0xe4, 0x70, 0x8e, 0x95, 0x58, 0x28, 0x1c, 0xe4, 0x4b, - 0xd0, 0x67, 0x00, 0x16, 0x5d, 0x1e, 0x86, 0x2d, 0xe6, 0x8b, 0x63, 0x5b, 0x38, 0x47, 0xe5, 0xcb, - 0xaa, 0x58, 0x34, 0x5b, 0xe8, 0x0f, 0x89, 0x5f, 0x6d, 0xfa, 0xe2, 0xb0, 0xd5, 0xa8, 0xba, 0x3c, - 0x34, 0x5b, 0x6a, 0x7e, 0x36, 0x12, 0xef, 0x61, 0x4d, 0x1c, 0x47, 0x34, 0xa9, 0x6e, 0x51, 0xb7, - 0x23, 0x71, 0x3f, 0x4d, 0x2a, 0x71, 0x49, 0xe7, 0xd2, 0x07, 0x93, 0x5f, 0xbf, 0xdb, 0x80, 0xa6, - 0x35, 0xb6, 0xa8, 0x6b, 0x2d, 0x9c, 0x59, 0xf7, 0x9d, 0x23, 0xf4, 0x29, 0x80, 0x25, 0x9f, 0xf9, - 0xc2, 0x77, 0x02, 0x5b, 0x70, 0xe1, 0x04, 0x76, 0xd2, 0x8a, 0xa2, 0xe0, 0xb8, 0x5c, 0x58, 0x05, - 0xeb, 0xf3, 0x37, 0xaf, 0x55, 0x4d, 0x64, 0xd6, 0x46, 0x55, 0xd3, 0x46, 0xd5, 0x3b, 0xdc, 0x67, - 0xbd, 0xba, 0x9c, 0x17, 0xde, 0xab, 0xcb, 0x79, 0x56, 0x62, 0x21, 0x03, 0xef, 0x67, 0xe8, 0x9e, - 0x06, 0xff, 0x9d, 0x85, 0x57, 0x87, 0xca, 0x8f, 0xbe, 0x04, 0x70, 0x59, 0xc7, 0x86, 0x3e, 0xa3, - 0x9e, 0xdd, 0x76, 0x82, 0x36, 0xb5, 0x13, 0xe1, 0xc4, 0x42, 0xb5, 0xea, 0xd8, 0x1c, 0x6f, 0x9b, - 0x1c, 0x47, 0x31, 0xa4, 0x12, 0x57, 0x74, 0x9a, 0x23, 0x1c, 0x88, 0x55, 0x52, 0x96, 0x9d, 0xcc, - 0x70, 0x2f, 0xc3, 0xf7, 0x32, 0x18, 0x7d, 0x0e, 0xe0, 0xd2, 0x70, 0x08, 0x65, 0x9e, 0x6a, 0xfc, - 0xb1, 0x39, 0xbd, 0x6d, 0x72, 0x3a, 0x3f, 0x3e, 0x95, 0xf8, 0xfa, 0xa8, 0x8c, 0x28, 0xf3, 0x88, - 0x85, 0x06, 0xf2, 0xb9, 0xcb, 0x3c, 0x14, 0xc2, 0x62, 0x5f, 0xfb, 0xa9, 0x13, 0x33, 0x36, 0x89, - 0x0d, 0x93, 0x44, 0x7f, 0x5c, 0xaf, 0x83, 0xfa, 0x60, 0x62, 0x2d, 0xe4, 0xdb, 0x18, 0xfd, 0x04, - 0xe0, 0xf5, 0x46, 0xc0, 0xdd, 0x87, 0xb6, 0x7b, 0xe8, 0xf8, 0xcc, 0x8e, 0x68, 0xec, 0x52, 0x26, - 0x9c, 0x26, 0xb5, 0x7d, 0x66, 0x37, 0xa2, 0xf2, 0x25, 0xd5, 0xcf, 0x1f, 0x83, 0x09, 0x1a, 0x7a, - 0x9b, 0x89, 0x8e, 0xc4, 0x63, 0x69, 0x53, 0x89, 0x6f, 0x98, 0x3b, 0x68, 0x8c, 0x57, 0xbe, 0xdd, - 0xb7, 0x99, 0xb0, 0xca, 0xca, 0xf9, 0x4e, 0xe6, 0xbb, 0x7b, 0xe6, 0xba, 0xcd, 0xea, 0x11, 0xfa, - 0x05, 0xc0, 0x4a, 0x4c, 0x13, 0xde, 0x8a, 0x5d, 0x6a, 0x33, 0xee, 0xd1, 0x61, 0x21, 0xfa, 0x60, - 0x7e, 0x32, 0xb9, 0x90, 0x0b, 0x88, 0x53, 0x89, 0x5f, 0xe9, 0x5e, 0x83, 0xe3, 0xfc, 0x06, 0xc5, - 0xac, 0x74, 0xdd, 0xdf, 0xe7, 0x1e, 0x1d, 0x90, 0xf3, 0x3d, 0x80, 0x2b, 0x21, 0x15, 0xce, 0x08, - 0x29, 0x05, 0x25, 0xe5, 0xa3, 0x89, 0x95, 0x8c, 0xe1, 0x4c, 0x25, 0x5e, 0x33, 0xed, 0x32, 0xd2, - 0x67, 0x50, 0xc1, 0x8b, 0x99, 0xeb, 0x70, 0xf6, 0xe4, 0xef, 0x19, 0x58, 0x30, 0xed, 0x65, 0xc1, - 0xc5, 0x47, 0x4e, 0x10, 0x50, 0x61, 0x3b, 0x9e, 0x17, 0xd3, 0x24, 0x31, 0x4f, 0xd2, 0xeb, 0x1d, - 0x89, 0x07, 0x2c, 0xa9, 0xc4, 0x4b, 0x3a, 0x83, 0x7e, 0x9c, 0x58, 0x45, 0x0d, 0xdc, 0xd6, 0x73, - 0xf4, 0x03, 0x80, 0xcb, 0xe6, 0x6a, 0x3e, 0x88, 0x79, 0x68, 0x9b, 0xfe, 0x8e, 0x38, 0x0f, 0xca, - 0xd3, 0xea, 0x25, 0x18, 0x73, 0x58, 0xc2, 0xee, 0x2d, 0x32, 0x82, 0xa1, 0x77, 0x8b, 0x8c, 0x70, - 0x20, 0xdf, 0xfe, 0x89, 0xd7, 0xff, 0x47, 0xc5, 0xb3, 0xd5, 0x12, 0xab, 0xa4, 0x59, 0xde, 0x89, - 0x79, 0xa8, 0xaf, 0xc3, 0x5d, 0xce, 0x03, 0xf4, 0x23, 0x80, 0xe5, 0x3c, 0xbd, 0x88, 0x9d, 0x83, - 0x03, 0xdf, 0xd5, 0x12, 0x66, 0x2e, 0x92, 0xc0, 0x8d, 0x84, 0x91, 0x14, 0xa9, 0xc4, 0x78, 0x58, - 0x43, 0xde, 0x63, 0x32, 0x11, 0x4b, 0x3d, 0x11, 0xfb, 0x9a, 0x24, 0x53, 0x41, 0x7e, 0x07, 0x10, - 0xed, 0xf9, 0xac, 0x19, 0xd0, 0xfb, 0x6a, 0x7f, 0xee, 0xf1, 0xa0, 0x15, 0xd2, 0x67, 0xb2, 0xe5, - 0x1c, 0x16, 0xda, 0x8a, 0xdd, 0x7c, 0x8b, 0xdc, 0x9f, 0xb8, 0xf5, 0x4d, 0x7c, 0x2a, 0x71, 0x51, - 0xaf, 0xa8, 0xe7, 0x83, 0x2d, 0x6d, 0xdc, 0x48, 0x04, 0x8b, 0x79, 0x51, 0x09, 0xb2, 0xe1, 0xac, - 0x36, 0x65, 0x72, 0xb2, 0x0d, 0x22, 0x83, 0x5f, 0x1b, 0xc3, 0xa5, 0xa8, 0xaf, 0x99, 0x9d, 0xea, - 0x86, 0xa6, 0x12, 0x2f, 0xe6, 0x57, 0x4f, 0x88, 0xd5, 0x35, 0x91, 0x7f, 0x00, 0x44, 0x3a, 0xcc, - 0xa2, 0x11, 0x8f, 0x85, 0x45, 0x5d, 0x1e, 0x7b, 0xe8, 0x16, 0x7c, 0x2e, 0x56, 0x73, 0x1a, 0x9b, - 0x3a, 0xe2, 0x8e, 0xc4, 0x67, 0x58, 0x2a, 0xf1, 0x95, 0xee, 0x56, 0x6b, 0x84, 0x58, 0x67, 0x46, - 0xf4, 0x00, 0x3e, 0xaf, 0xc7, 0x76, 0x4c, 0x0f, 0x68, 0x4c, 0x99, 0xdb, 0x2d, 0x60, 0xad, 0x23, - 0xf1, 0x90, 0x2d, 0x95, 0x78, 0x39, 0x4f, 0xd6, 0xb3, 0x10, 0xeb, 0x4a, 0x6c, 0xb2, 0x32, 0x08, - 0x7a, 0x13, 0xce, 0x8a, 0x23, 0xfb, 0xd0, 0x49, 0xf4, 0x37, 0xdd, 0x5c, 0xfd, 0xe5, 0x4c, 0xa8, - 0x81, 0x7a, 0x42, 0x0d, 0x40, 0xac, 0x82, 0x38, 0x7a, 0x37, 0x1b, 0xfc, 0x3c, 0x0d, 0xe7, 0xd5, - 0x97, 0x82, 0xb9, 0x21, 0xbe, 0x02, 0x83, 0x0f, 0x1e, 0xb8, 0xe8, 0x00, 0x7c, 0x30, 0xd1, 0x83, - 0x37, 0x51, 0xab, 0xf7, 0x3f, 0x8e, 0x5f, 0x03, 0xb8, 0xd8, 0x3d, 0x36, 0x26, 0xb9, 0x0b, 0x2f, - 0x98, 0x0f, 0x4d, 0x72, 0x03, 0x81, 0xbd, 0x56, 0xef, 0xc7, 0x27, 0x4b, 0xaf, 0x68, 0x82, 0x75, - 0x7e, 0xf5, 0x9d, 0x6f, 0x4e, 0x2a, 0xe0, 0xc9, 0x49, 0x05, 0x3c, 0x3d, 0xa9, 0x80, 0xbf, 0x4e, - 0x2a, 0xe0, 0xf1, 0x69, 0x65, 0xea, 0xe9, 0x69, 0x65, 0xea, 0xb7, 0xd3, 0xca, 0xd4, 0x83, 0x5a, - 0x8e, 0xd6, 0xf4, 0x2a, 0xa3, 0xa2, 0x3b, 0xdc, 0x50, 0x4f, 0x6e, 0xed, 0x48, 0xfd, 0x5d, 0x51, - 0x6b, 0x34, 0x0a, 0xea, 0xdf, 0xc4, 0x1b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x32, 0x93, 0x8d, - 0x71, 0xca, 0x0c, 0x00, 0x00, + // 1195 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x3d, 0x6c, 0x1c, 0x45, + 0x14, 0xf6, 0xc4, 0xc9, 0x25, 0x19, 0xe7, 0x1c, 0xbc, 0x9c, 0xf1, 0xc5, 0x24, 0x37, 0xce, 0x46, + 0x04, 0x2b, 0x92, 0xef, 0x64, 0x23, 0x81, 0x94, 0x0a, 0xce, 0x4e, 0x84, 0x91, 0x8c, 0xac, 0xb3, + 0x15, 0xa4, 0x08, 0xb1, 0xec, 0xed, 0x8e, 0xcf, 0x9b, 0xec, 0xce, 0xac, 0x66, 0xe7, 0x2e, 0x76, + 0x8f, 0x10, 0x42, 0x20, 0xd2, 0x20, 0x85, 0x06, 0x21, 0xaa, 0x88, 0x2a, 0x05, 0x2d, 0x05, 0x12, + 0x85, 0xe9, 0x02, 0x34, 0x88, 0x62, 0x40, 0x76, 0x11, 0xe9, 0xca, 0x2d, 0xe8, 0x90, 0xd0, 0xce, + 0xcc, 0xfa, 0xf6, 0x7e, 0xcd, 0xa5, 0xa0, 0xf1, 0xed, 0xbc, 0x9f, 0xef, 0xbd, 0xef, 0xcd, 0x7b, + 0x33, 0x63, 0x58, 0x8c, 0x38, 0xb3, 0x39, 0x8d, 0x2a, 0x21, 0xe5, 0x95, 0xd6, 0x72, 0xf2, 0x53, + 0x0e, 0x19, 0xe5, 0xd4, 0x98, 0xd6, 0x9a, 0x72, 0x22, 0x6a, 0x2d, 0xcf, 0x17, 0x1a, 0xb4, 0x41, + 0xa5, 0xaa, 0x92, 0x7c, 0x29, 0xab, 0xf9, 0x4b, 0x0e, 0x8d, 0x02, 0x1a, 0x59, 0x4a, 0xa1, 0x16, + 0x5a, 0x35, 0x63, 0x07, 0x1e, 0xa1, 0x15, 0xf9, 0x57, 0x8b, 0x4a, 0xca, 0xa0, 0x52, 0xb7, 0x23, + 0x5c, 0x69, 0x2d, 0xd7, 0x31, 0xb7, 0x97, 0x2b, 0x0e, 0xf5, 0x88, 0xd2, 0x9b, 0x3f, 0x9c, 0x81, + 0xb9, 0x4d, 0x9b, 0xd9, 0x41, 0x64, 0x54, 0x21, 0xac, 0x53, 0xe2, 0x5a, 0x2e, 0x26, 0x34, 0x28, + 0x82, 0x05, 0xb0, 0x78, 0xbe, 0x7a, 0xad, 0x2d, 0x50, 0x46, 0x1a, 0x0b, 0x34, 0xb3, 0x6f, 0x07, + 0xfe, 0x4d, 0xb3, 0x23, 0x33, 0x6b, 0xe7, 0x93, 0xc5, 0x5a, 0xf2, 0x6d, 0xbc, 0x03, 0x2f, 0x30, + 0xfc, 0xc0, 0x66, 0x29, 0xca, 0x29, 0x89, 0xf2, 0x6a, 0x5b, 0xa0, 0x2e, 0x79, 0x2c, 0xd0, 0x8b, + 0x0a, 0x27, 0x2b, 0x35, 0x6b, 0x53, 0x6a, 0x79, 0x8c, 0x15, 0xd8, 0xbc, 0xc9, 0xb0, 0x85, 0x43, + 0xea, 0xec, 0x16, 0x27, 0x17, 0xc0, 0xe2, 0xa4, 0xc2, 0xca, 0xca, 0x3b, 0x58, 0x59, 0xa9, 0x59, + 0x9b, 0x52, 0xcb, 0x5b, 0xc9, 0xca, 0xf8, 0x12, 0xc0, 0x42, 0xe0, 0x11, 0x8f, 0x34, 0x2c, 0x1d, + 0x31, 0x94, 0xa4, 0x8b, 0xa7, 0x17, 0x26, 0x17, 0xa7, 0x56, 0xae, 0x96, 0xbb, 0x4b, 0x5f, 0xde, + 0x90, 0xb6, 0x35, 0x69, 0x2a, 0xcb, 0x53, 0x7d, 0xf3, 0x40, 0xa0, 0x89, 0xb6, 0x40, 0x03, 0x61, + 0x62, 0x81, 0x5e, 0xd6, 0x39, 0x0c, 0xd0, 0x9a, 0x8f, 0x9f, 0x3d, 0xb9, 0x01, 0x6a, 0x46, 0xd0, + 0x0b, 0x1a, 0x19, 0x5f, 0x00, 0x98, 0x77, 0x68, 0x10, 0x34, 0x89, 0xc7, 0xf7, 0x2d, 0x6e, 0xef, + 0x15, 0xcf, 0xc8, 0x8a, 0xdd, 0x4b, 0xa2, 0xfd, 0x21, 0xd0, 0xf5, 0x86, 0xc7, 0x77, 0x9b, 0xf5, + 0xb2, 0x43, 0x03, 0xbd, 0xd5, 0xfa, 0x67, 0x29, 0x72, 0xef, 0x57, 0xf8, 0x7e, 0x88, 0xa3, 0xf2, + 0x1a, 0x76, 0xda, 0x02, 0x75, 0xc3, 0xc4, 0x02, 0x15, 0x54, 0x42, 0x5d, 0x62, 0xf3, 0xd7, 0xef, + 0x97, 0xa0, 0x6e, 0x99, 0x35, 0xec, 0xa8, 0xbc, 0x2e, 0x1c, 0x9b, 0x6c, 0xdb, 0x7b, 0xc6, 0xe7, + 0x00, 0x16, 0x3c, 0xe2, 0x71, 0xcf, 0xf6, 0x2d, 0x4e, 0xb9, 0xed, 0x5b, 0x51, 0x33, 0x0c, 0xfd, + 0xfd, 0x62, 0x6e, 0x01, 0x2c, 0x4e, 0xad, 0x5c, 0x2a, 0x6b, 0xf7, 0xa4, 0xa1, 0xca, 0xba, 0xa1, + 0xca, 0xab, 0xd4, 0x23, 0x9d, 0x0a, 0x0d, 0x72, 0xef, 0x54, 0x68, 0x90, 0x36, 0xad, 0x90, 0xd6, + 0x6d, 0x27, 0xaa, 0x2d, 0xa9, 0xb9, 0x79, 0xe5, 0xd1, 0x37, 0x08, 0x7c, 0xfa, 0xec, 0xc9, 0x8d, + 0x42, 0x3a, 0x37, 0x7b, 0x72, 0x72, 0x54, 0x01, 0xcd, 0xaf, 0xce, 0xc1, 0x99, 0xbe, 0xcd, 0x32, + 0x1e, 0x01, 0x38, 0xa7, 0xf0, 0x03, 0x8f, 0x60, 0xd7, 0x6a, 0xd9, 0x7e, 0x0b, 0x5b, 0x11, 0xb7, + 0x19, 0x97, 0x8d, 0x3d, 0x92, 0xc7, 0x6d, 0xcd, 0x63, 0x18, 0x42, 0x2c, 0x50, 0x49, 0x51, 0x19, + 0x62, 0xa0, 0xd9, 0x14, 0xa4, 0x7a, 0x23, 0xd1, 0xde, 0x49, 0x94, 0x5b, 0x89, 0xce, 0x78, 0x08, + 0xe0, 0x6c, 0xbf, 0x1f, 0x26, 0xae, 0x9c, 0x95, 0x91, 0x89, 0x55, 0x75, 0x62, 0x83, 0xfd, 0x63, + 0x81, 0x2e, 0x0f, 0x4b, 0x0b, 0x13, 0x37, 0x2d, 0x71, 0x4f, 0x52, 0xb7, 0x88, 0x6b, 0x30, 0x98, + 0xef, 0x6a, 0x5b, 0x39, 0x69, 0x23, 0x33, 0x59, 0xd1, 0x99, 0x74, 0xfb, 0x75, 0x9a, 0xae, 0x4b, + 0xac, 0x23, 0x5f, 0xc8, 0xb6, 0xbf, 0xf1, 0x33, 0x80, 0x97, 0xeb, 0x3e, 0x75, 0xee, 0x5b, 0xce, + 0xae, 0xed, 0x11, 0x2b, 0xc4, 0xcc, 0xc1, 0x84, 0xdb, 0x0d, 0x6c, 0x79, 0xc4, 0xaa, 0x87, 0xc5, + 0xd3, 0x72, 0x0e, 0x3e, 0x01, 0x63, 0x0c, 0xc2, 0x3a, 0xe1, 0x6d, 0x81, 0x46, 0xc2, 0xc6, 0x02, + 0x5d, 0xd3, 0x07, 0xd8, 0x08, 0xab, 0xec, 0x98, 0xac, 0x13, 0xae, 0xf2, 0x2f, 0x4a, 0x8f, 0xd5, + 0xc4, 0x61, 0xf3, 0xd8, 0x7e, 0x9d, 0x54, 0x43, 0xe3, 0x17, 0x00, 0x4b, 0x0c, 0x47, 0xb4, 0xc9, + 0x1c, 0x6c, 0x11, 0xea, 0xe2, 0x7e, 0x36, 0x6a, 0xaa, 0x3f, 0x1b, 0x9f, 0xcd, 0x09, 0xc0, 0xb1, + 0x40, 0xaf, 0xa4, 0x07, 0xe9, 0x28, 0xbb, 0x81, 0x8c, 0xe6, 0x53, 0x9f, 0x77, 0xa9, 0x8b, 0x7b, + 0x38, 0xfd, 0x08, 0xe0, 0x7c, 0x80, 0xb9, 0x3d, 0x84, 0x4f, 0x4e, 0xf2, 0xf9, 0x68, 0x7c, 0x3e, + 0x23, 0x40, 0x63, 0x81, 0xae, 0xea, 0xf6, 0x19, 0x6a, 0x33, 0x90, 0xc7, 0x4b, 0x89, 0x7d, 0x3f, + 0x07, 0xf3, 0xe3, 0xd3, 0x30, 0xa7, 0xdb, 0xed, 0x1e, 0x9c, 0x7e, 0x60, 0xfb, 0x3e, 0xe6, 0x96, + 0xed, 0xba, 0x0c, 0x47, 0x91, 0xbe, 0xdf, 0x56, 0xdb, 0x02, 0xf5, 0x68, 0x62, 0x81, 0x66, 0x55, + 0x1a, 0xdd, 0xf2, 0x24, 0x74, 0x41, 0x87, 0x7e, 0x4b, 0x89, 0xb6, 0x38, 0x4b, 0x3a, 0x3a, 0xaf, + 0x0c, 0xb5, 0xd0, 0xf8, 0x09, 0xc0, 0x39, 0x7d, 0xfe, 0xef, 0x30, 0x1a, 0x58, 0x7a, 0x18, 0x42, + 0x4a, 0xfd, 0xe2, 0x29, 0x79, 0xdd, 0x8c, 0x98, 0x2c, 0x96, 0x1e, 0x3e, 0x43, 0x10, 0x3a, 0x87, + 0xcf, 0x10, 0x03, 0xf3, 0xbb, 0x3f, 0xd1, 0xe2, 0x7f, 0xd8, 0x8e, 0x24, 0x5a, 0xa4, 0x0f, 0x2a, + 0x05, 0x75, 0x9b, 0xd1, 0x40, 0x1d, 0xa5, 0x9b, 0x94, 0xfa, 0xc6, 0x01, 0x80, 0xc5, 0x6c, 0x0c, + 0xce, 0xec, 0x9d, 0x1d, 0xcf, 0x51, 0x3c, 0x26, 0x4f, 0xe2, 0xc1, 0x35, 0x8f, 0xa1, 0x10, 0xb1, + 0x40, 0xa8, 0x9f, 0x48, 0xd6, 0xe2, 0x39, 0x98, 0xcc, 0x76, 0x98, 0x6c, 0x2b, 0xa4, 0x84, 0x8a, + 0xf9, 0x37, 0x80, 0xc6, 0x96, 0x47, 0x1a, 0x3e, 0x7e, 0x4f, 0xee, 0xd4, 0x1d, 0xea, 0x37, 0x03, + 0xfc, 0xbf, 0x36, 0x05, 0x87, 0xb9, 0x96, 0x8c, 0xaa, 0x9f, 0x44, 0xef, 0x8f, 0x3d, 0x39, 0xda, + 0x3f, 0x16, 0x28, 0xaf, 0x32, 0x51, 0xeb, 0x81, 0x13, 0xa1, 0x6d, 0xcd, 0x26, 0xcc, 0x67, 0x19, + 0x47, 0x86, 0x0b, 0xcf, 0x2a, 0x55, 0xc2, 0x35, 0xd9, 0x42, 0xb3, 0xf7, 0xe5, 0xd3, 0x5f, 0xa7, + 0xea, 0x75, 0xbd, 0x97, 0xa9, 0x6b, 0x2c, 0xd0, 0x74, 0x36, 0x85, 0xf4, 0x81, 0x93, 0xea, 0xcd, + 0x7f, 0x00, 0x34, 0x94, 0x6f, 0x0d, 0x87, 0x94, 0xf1, 0x1a, 0x76, 0x28, 0x73, 0x8d, 0x2d, 0x78, + 0x8e, 0xc9, 0x35, 0x66, 0xba, 0xd2, 0x6f, 0xb4, 0x05, 0x3a, 0x96, 0xc5, 0x02, 0x5d, 0x4c, 0x3b, + 0x42, 0x49, 0x86, 0x57, 0xf7, 0xd8, 0xc9, 0xb8, 0x0b, 0x5f, 0x50, 0xdf, 0x16, 0xc3, 0x3b, 0x98, + 0x61, 0xe2, 0xa4, 0x25, 0xae, 0xb4, 0x05, 0xea, 0xd3, 0xc5, 0x02, 0xcd, 0x65, 0x83, 0x74, 0x34, + 0x66, 0xed, 0x22, 0xd3, 0xd9, 0x6a, 0x89, 0xf1, 0x3a, 0x3c, 0xcb, 0xf7, 0xac, 0x5d, 0x3b, 0x52, + 0x8f, 0xcf, 0xf3, 0xd5, 0x2b, 0x49, 0x15, 0xb4, 0xa8, 0x53, 0x05, 0x2d, 0x30, 0x6b, 0x39, 0xbe, + 0xf7, 0x76, 0xf2, 0xf1, 0xdb, 0x29, 0x38, 0x25, 0xdf, 0x30, 0xfa, 0xf4, 0xf9, 0x1a, 0xf4, 0xde, + 0xb0, 0xe0, 0xa4, 0xf9, 0xf9, 0x60, 0xac, 0x1b, 0x76, 0xfc, 0x49, 0xe9, 0xbe, 0x8d, 0xbf, 0x05, + 0x70, 0x3a, 0x1d, 0x3d, 0x9d, 0xe1, 0x89, 0x27, 0xd5, 0x87, 0x3a, 0xc3, 0x1e, 0xc7, 0xce, 0xa4, + 0x74, 0xcb, 0x9f, 0x23, 0xc7, 0xbc, 0x46, 0x50, 0x49, 0x56, 0x37, 0x1e, 0x1f, 0x96, 0xc0, 0xc1, + 0x61, 0x09, 0x3c, 0x3d, 0x2c, 0x81, 0xbf, 0x0e, 0x4b, 0xe0, 0xe1, 0x51, 0x69, 0xe2, 0xe9, 0x51, + 0x69, 0xe2, 0xf7, 0xa3, 0xd2, 0xc4, 0xdd, 0x4a, 0x06, 0x5b, 0xb7, 0x34, 0xc1, 0x3c, 0xfd, 0x5c, + 0x92, 0x17, 0xbd, 0x7e, 0x3a, 0xca, 0x40, 0xf5, 0x9c, 0xfc, 0x07, 0xe8, 0xb5, 0x7f, 0x03, 0x00, + 0x00, 0xff, 0xff, 0xa9, 0x84, 0xf4, 0xcc, 0x90, 0x0d, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/register/genesis.go b/x/register/keeper/genesis.go similarity index 55% rename from x/register/genesis.go rename to x/register/keeper/genesis.go index ebb00679..b4ae064e 100644 --- a/x/register/genesis.go +++ b/x/register/keeper/genesis.go @@ -1,23 +1,22 @@ -package register +package keeper import ( sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/stratosnet/stratos-chain/x/register/keeper" "github.com/stratosnet/stratos-chain/x/register/types" ) // InitGenesis initialize default parameters // and the keeper's address to pubkey map -func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState) { - keeper.SetParams(ctx, data.Params) +func (k Keeper) InitGenesis(ctx sdk.Context, data *types.GenesisState) { + k.SetParams(ctx, data.Params) - freshStart := keeper.GetResourceNodeNotBondedToken(ctx).IsZero() && - keeper.GetResourceNodeBondedToken(ctx).IsZero() && - keeper.GetMetaNodeNotBondedToken(ctx).IsZero() && - keeper.GetMetaNodeBondedToken(ctx).IsZero() + freshStart := k.GetResourceNodeNotBondedToken(ctx).IsZero() && + k.GetResourceNodeBondedToken(ctx).IsZero() && + k.GetMetaNodeNotBondedToken(ctx).IsZero() && + k.GetMetaNodeBondedToken(ctx).IsZero() initialDepositTotal := sdkmath.ZeroInt() lenOfGenesisBondedResourceNode := int64(0) @@ -34,16 +33,16 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState initialDepositTotal = initialDepositTotal.Add(resourceNode.EffectiveTokens) } if freshStart { - amount := sdk.NewCoin(keeper.BondDenom(ctx), resourceNode.Tokens) - err = keeper.GetBankKeeper().SendCoinsFromAccountToModule(ctx, ownerAddr, types.ResourceNodeBondedPool, sdk.NewCoins(amount)) + amount := sdk.NewCoin(k.BondDenom(ctx), resourceNode.Tokens) + err = k.GetBankKeeper().SendCoinsFromAccountToModule(ctx, ownerAddr, types.ResourceNodeBondedPool, sdk.NewCoins(amount)) if err != nil { panic(err) } } case stakingtypes.Unbonded: if freshStart { - amount := sdk.NewCoin(keeper.BondDenom(ctx), resourceNode.Tokens) - err = keeper.GetBankKeeper().SendCoinsFromAccountToModule(ctx, ownerAddr, types.ResourceNodeNotBondedPool, sdk.NewCoins(amount)) + amount := sdk.NewCoin(k.BondDenom(ctx), resourceNode.Tokens) + err = k.GetBankKeeper().SendCoinsFromAccountToModule(ctx, ownerAddr, types.ResourceNodeNotBondedPool, sdk.NewCoins(amount)) if err != nil { panic(err) } @@ -51,10 +50,10 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState default: panic(types.ErrInvalidNodeStat) } - keeper.SetResourceNode(ctx, resourceNode) + k.SetResourceNode(ctx, resourceNode) } // set initial genesis number of resource nodes - keeper.SetBondedResourceNodeCnt(ctx, sdkmath.NewInt(lenOfGenesisBondedResourceNode)) + k.SetBondedResourceNodeCnt(ctx, sdkmath.NewInt(lenOfGenesisBondedResourceNode)) lenOfGenesisBondedMetaNode := int64(0) for _, metaNode := range data.GetMetaNodes() { @@ -69,16 +68,16 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState initialDepositTotal = initialDepositTotal.Add(metaNode.Tokens) } if freshStart { - amount := sdk.NewCoin(keeper.BondDenom(ctx), metaNode.Tokens) - err = keeper.GetBankKeeper().SendCoinsFromAccountToModule(ctx, ownerAddr, types.MetaNodeBondedPool, sdk.NewCoins(amount)) + amount := sdk.NewCoin(k.BondDenom(ctx), metaNode.Tokens) + err = k.GetBankKeeper().SendCoinsFromAccountToModule(ctx, ownerAddr, types.MetaNodeBondedPool, sdk.NewCoins(amount)) if err != nil { panic(err) } } case stakingtypes.Unbonded: if freshStart { - amount := sdk.NewCoin(keeper.BondDenom(ctx), metaNode.Tokens) - err = keeper.GetBankKeeper().SendCoinsFromAccountToModule(ctx, ownerAddr, types.MetaNodeNotBondedPool, sdk.NewCoins(amount)) + amount := sdk.NewCoin(k.BondDenom(ctx), metaNode.Tokens) + err = k.GetBankKeeper().SendCoinsFromAccountToModule(ctx, ownerAddr, types.MetaNodeNotBondedPool, sdk.NewCoins(amount)) if err != nil { panic(err) } @@ -86,17 +85,17 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState default: panic(types.ErrInvalidNodeStat) } - keeper.SetMetaNode(ctx, metaNode) + k.SetMetaNode(ctx, metaNode) } // set initial genesis number of meta nodes - keeper.SetBondedMetaNodeCnt(ctx, sdkmath.NewInt(lenOfGenesisBondedMetaNode)) + k.SetBondedMetaNodeCnt(ctx, sdkmath.NewInt(lenOfGenesisBondedMetaNode)) - totalUnissuedPrepay := keeper.GetTotalUnissuedPrepay(ctx).Amount - keeper.SetInitialGenesisDepositTotal(ctx, initialDepositTotal) - keeper.SetEffectiveTotalDeposit(ctx, initialDepositTotal) + totalUnissuedPrepay := k.GetTotalUnissuedPrepay(ctx).Amount + k.SetInitialGenesisDepositTotal(ctx, initialDepositTotal) + k.SetEffectiveTotalDeposit(ctx, initialDepositTotal) depositNozRate := sdkmath.LegacyZeroDec() depositNozRate = depositNozRate.Add(data.DepositNozRate) - keeper.SetDepositNozRate(ctx, depositNozRate) + k.SetDepositNozRate(ctx, depositNozRate) // calc total noz supply with EffectiveGenesisDepositTotal and depositNozRate totalNozSupply := initialDepositTotal.ToLegacyDec().Quo(depositNozRate).TruncateInt() @@ -108,7 +107,7 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState // not fresh start initOzoneLimit = initOzoneLimit.Add(data.RemainingNozLimit) } - keeper.SetRemainingOzoneLimit(ctx, initOzoneLimit) + k.SetRemainingOzoneLimit(ctx, initOzoneLimit) for _, slashing := range data.Slashing { walletAddress, err := sdk.AccAddressFromBech32(slashing.GetWalletAddress()) @@ -116,10 +115,10 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState panic(err) } - keeper.SetSlashing(ctx, walletAddress, sdkmath.NewInt(slashing.Value)) + k.SetSlashing(ctx, walletAddress, sdkmath.NewInt(slashing.Value)) } - keeper.ReloadMetaNodeBitMapIdxCache(ctx) + k.ReloadMetaNodeBitMapIdxCache(ctx) return } @@ -127,16 +126,16 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState // ExportGenesis writes the current store values // to a genesis file, which can be imported again // with InitGenesis -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data *types.GenesisState) { - params := keeper.GetParams(ctx) +func (k Keeper) ExportGenesis(ctx sdk.Context) (data *types.GenesisState) { + params := k.GetParams(ctx) - resourceNodes := keeper.GetAllResourceNodes(ctx) - metaNodes := keeper.GetAllMetaNodes(ctx) - remainingNozLimit := keeper.GetRemainingOzoneLimit(ctx) - depositNozRate := keeper.GetDepositNozRate(ctx) + resourceNodes := k.GetAllResourceNodes(ctx) + metaNodes := k.GetAllMetaNodes(ctx) + remainingNozLimit := k.GetRemainingOzoneLimit(ctx) + depositNozRate := k.GetDepositNozRate(ctx) var slashingInfo []types.Slashing - keeper.IteratorSlashingInfo(ctx, func(walletAddress sdk.AccAddress, val sdkmath.Int) (stop bool) { + k.IteratorSlashingInfo(ctx, func(walletAddress sdk.AccAddress, val sdkmath.Int) (stop bool) { if val.GT(sdkmath.ZeroInt()) { slashing := types.NewSlashing(walletAddress, val) slashingInfo = append(slashingInfo, slashing) diff --git a/x/register/keeper/keeper.go b/x/register/keeper/keeper.go index 61e1cac3..02a57d5b 100644 --- a/x/register/keeper/keeper.go +++ b/x/register/keeper/keeper.go @@ -11,7 +11,6 @@ import ( "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" stratos "github.com/stratosnet/stratos-chain/types" @@ -23,7 +22,6 @@ import ( type Keeper struct { storeKey storetypes.StoreKey cdc codec.Codec - paramSpace paramtypes.Subspace accountKeeper types.AccountKeeper bankKeeper types.BankKeeper distrKeeper types.DistrKeeper diff --git a/x/register/keeper/params.go b/x/register/keeper/params.go index 28360a5d..80c86308 100644 --- a/x/register/keeper/params.go +++ b/x/register/keeper/params.go @@ -7,51 +7,65 @@ import ( "github.com/stratosnet/stratos-chain/x/register/types" ) -// GetParams returns the total set of register parameters. -func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) { - k.paramSpace.GetParamSet(ctx, ¶ms) - return params +// SetParams sets the params on the store +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { + store := ctx.KVStore(k.storeKey) + bz := k.cdc.MustMarshal(¶ms) + store.Set(types.ParamsKey, bz) } -// SetParams sets the register parameters to the param space. -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { - k.paramSpace.SetParamSet(ctx, ¶ms) +// GetParams returns the params from the store +func (k Keeper) GetParams(ctx sdk.Context) (p types.Params) { + store := ctx.KVStore(k.storeKey) + bz := store.Get(types.ParamsKey) + if bz == nil { + return p + } + k.cdc.MustUnmarshal(bz, &p) + return p } // BondDenom - Bondable coin denomination func (k Keeper) BondDenom(ctx sdk.Context) (res string) { - k.paramSpace.Get(ctx, types.KeyBondDenom, &res) + params := k.GetParams(ctx) + res = params.GetBondDenom() return } // MaxEntries - Maximum number of simultaneous unbonding // delegations or redelegations (per pair/trio) func (k Keeper) MaxEntries(ctx sdk.Context) (res uint32) { - k.paramSpace.Get(ctx, types.KeyMaxEntries, &res) + params := k.GetParams(ctx) + res = params.GetMaxEntries() return } func (k Keeper) UnbondingThreasholdTime(ctx sdk.Context) (res time.Duration) { - k.paramSpace.Get(ctx, types.KeyUnbondingThreasholdTime, &res) + params := k.GetParams(ctx) + res = params.GetUnbondingThreasholdTime() return } func (k Keeper) UnbondingCompletionTime(ctx sdk.Context) (res time.Duration) { - k.paramSpace.Get(ctx, types.KeyUnbondingCompletionTime, &res) + params := k.GetParams(ctx) + res = params.GetUnbondingCompletionTime() return } func (k Keeper) ResourceNodeRegEnabled(ctx sdk.Context) (res bool) { - k.paramSpace.Get(ctx, types.KeyResourceNodeRegEnabled, &res) + params := k.GetParams(ctx) + res = params.GetResourceNodeRegEnabled() return } func (k Keeper) ResourceNodeMinDeposit(ctx sdk.Context) (res sdk.Coin) { - k.paramSpace.Get(ctx, types.KeyResourceNodeMinDeposit, &res) + params := k.GetParams(ctx) + res = params.GetResourceNodeMinDeposit() return } func (k Keeper) VotingPeriod(ctx sdk.Context) (res time.Duration) { - k.paramSpace.Get(ctx, types.KeyVotingPeriod, &res) + params := k.GetParams(ctx) + res = params.GetVotingPeriod() return } diff --git a/x/register/module.go b/x/register/module.go index a7ac8279..049359f6 100644 --- a/x/register/module.go +++ b/x/register/module.go @@ -142,14 +142,14 @@ func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, &genesisState) + am.keeper.InitGenesis(ctx, &genesisState) return []abci.ValidatorUpdate{} } // ExportGenesis returns the exported genesis state as raw bytes for the register // module. func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { - gs := ExportGenesis(ctx, am.keeper) + gs := am.keeper.ExportGenesis(ctx) return cdc.MustMarshalJSON(gs) } diff --git a/x/register/types/genesis.go b/x/register/types/genesis.go index a2041eac..8f447d67 100644 --- a/x/register/types/genesis.go +++ b/x/register/types/genesis.go @@ -85,11 +85,8 @@ func (v GenesisMetaNode) ToMetaNode() (MetaNode, error) { return MetaNode{}, errors.Wrap(ErrInvalidNetworkAddr, err.Error()) } - tokens, err := sdk.ParseCoinsNormalized(v.Tokens) - if err != nil { - return MetaNode{}, errors.Wrap(ErrBadDenom, err.Error()) - } - tokenAmt := tokens.AmountOf(DefaultBondDenom) + tokens := sdk.NormalizeCoin(v.Tokens) + tokenAmt := tokens.Amount return MetaNode{ NetworkAddress: netAddr.String(), diff --git a/x/register/types/genesis.pb.go b/x/register/types/genesis.pb.go index f49db8d6..67f8684d 100644 --- a/x/register/types/genesis.pb.go +++ b/x/register/types/genesis.pb.go @@ -8,6 +8,8 @@ import ( _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/codec/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + types2 "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" types1 "github.com/cosmos/cosmos-sdk/x/staking/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" @@ -103,7 +105,7 @@ type GenesisMetaNode struct { Pubkey *types.Any `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey" yaml:"pubkey"` Suspend bool `protobuf:"varint,3,opt,name=suspend,proto3" json:"suspend" yaml:"suspend"` Status types1.BondStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status" yaml:"status"` - Tokens string `protobuf:"bytes,5,opt,name=tokens,proto3" json:"tokens" yaml:"tokens"` + Tokens types2.Coin `protobuf:"bytes,5,opt,name=tokens,proto3" json:"tokens" yaml:"tokens"` OwnerAddress string `protobuf:"bytes,6,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` Description Description `protobuf:"bytes,7,opt,name=description,proto3" json:"description" yaml:"description"` } @@ -169,11 +171,11 @@ func (m *GenesisMetaNode) GetStatus() types1.BondStatus { return types1.Unspecified } -func (m *GenesisMetaNode) GetTokens() string { +func (m *GenesisMetaNode) GetTokens() types2.Coin { if m != nil { return m.Tokens } - return "" + return types2.Coin{} } func (m *GenesisMetaNode) GetOwnerAddress() string { @@ -251,62 +253,66 @@ func init() { func init() { proto.RegisterFile("stratos/register/v1/genesis.proto", fileDescriptor_5bdab54ebea9e48e) } var fileDescriptor_5bdab54ebea9e48e = []byte{ - // 876 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x41, 0x6f, 0x1b, 0x45, - 0x14, 0xce, 0x36, 0x8d, 0x9b, 0x4c, 0x62, 0x97, 0x6e, 0x03, 0x6c, 0x52, 0xd5, 0xe3, 0x8e, 0x10, - 0x72, 0x85, 0xbc, 0xab, 0x24, 0x95, 0x90, 0x38, 0xd1, 0x55, 0x24, 0x54, 0x01, 0x51, 0x35, 0x41, - 0x20, 0x71, 0xb1, 0xc6, 0xbb, 0xd3, 0xcd, 0xca, 0xde, 0x19, 0xb3, 0x33, 0x4e, 0x70, 0x7e, 0x00, - 0x07, 0x2e, 0x70, 0xe1, 0x07, 0x70, 0x43, 0x9c, 0xfb, 0x23, 0x2a, 0x4e, 0x15, 0x27, 0xc4, 0x61, - 0x40, 0xce, 0xcd, 0xc7, 0xfd, 0x05, 0xc8, 0x33, 0xb3, 0xf6, 0xda, 0xb5, 0x90, 0x7a, 0xf2, 0xbc, - 0xef, 0xfb, 0xde, 0xcc, 0x37, 0x6f, 0xdf, 0x1b, 0x83, 0x47, 0x42, 0xe6, 0x44, 0x72, 0x11, 0xe4, - 0x34, 0x49, 0x85, 0xa4, 0x79, 0x70, 0x79, 0x14, 0x24, 0x94, 0x51, 0x91, 0x0a, 0x7f, 0x98, 0x73, - 0xc9, 0xdd, 0xfb, 0x56, 0xe2, 0x97, 0x12, 0xff, 0xf2, 0xe8, 0xf0, 0x20, 0xe1, 0x3c, 0x19, 0xd0, - 0x40, 0x4b, 0x7a, 0xa3, 0x17, 0x01, 0x61, 0x63, 0xa3, 0x3f, 0xdc, 0x4f, 0x78, 0xc2, 0xf5, 0x32, - 0x98, 0xad, 0x2c, 0x7a, 0x10, 0x71, 0x91, 0x71, 0xd1, 0x35, 0x84, 0x09, 0x2c, 0xf5, 0x81, 0x89, - 0x02, 0x21, 0x49, 0x3f, 0x65, 0x49, 0x70, 0x79, 0xd4, 0xa3, 0x92, 0x1c, 0x95, 0xb1, 0x55, 0xa1, - 0x75, 0x4e, 0xe7, 0x96, 0xb4, 0x06, 0xfd, 0x50, 0x03, 0x7b, 0x9f, 0x19, 0xf3, 0xe7, 0x92, 0x48, - 0xea, 0x7e, 0x05, 0x6a, 0x43, 0x92, 0x93, 0x4c, 0x78, 0x4e, 0xcb, 0x69, 0xef, 0x1e, 0x3f, 0xf0, - 0xd7, 0x5c, 0xc6, 0x7f, 0xae, 0x25, 0x21, 0x7c, 0xa5, 0xe0, 0xc6, 0x54, 0x41, 0x9b, 0x52, 0x28, - 0x58, 0x1f, 0x93, 0x6c, 0xf0, 0x09, 0x32, 0x31, 0xc2, 0x96, 0x70, 0x7f, 0x74, 0x40, 0x23, 0xa7, - 0x82, 0x8f, 0xf2, 0x88, 0x76, 0x19, 0x8f, 0xa9, 0xf0, 0x6e, 0xb5, 0x36, 0xdb, 0xbb, 0xc7, 0x8f, - 0xd6, 0x6e, 0x8f, 0xad, 0xf4, 0x8c, 0xc7, 0x34, 0xfc, 0xd4, 0x1e, 0xb2, 0xb2, 0x41, 0xa1, 0xe0, - 0xbb, 0xe6, 0xb0, 0x65, 0x1c, 0xfd, 0xfe, 0x0f, 0xac, 0x57, 0x37, 0x10, 0xb8, 0x9e, 0x57, 0x43, - 0x37, 0x07, 0x20, 0xa3, 0x92, 0x58, 0x1f, 0x9b, 0xda, 0xc7, 0xc3, 0xb5, 0x3e, 0xbe, 0xa4, 0x92, - 0x68, 0x0f, 0x4f, 0xac, 0x87, 0x4a, 0x62, 0xa1, 0xe0, 0x3d, 0x73, 0xfe, 0x02, 0x9b, 0x9d, 0xbd, - 0x53, 0x26, 0x09, 0xbc, 0x93, 0x95, 0x4b, 0xf7, 0x57, 0x07, 0xdc, 0xcf, 0x69, 0x46, 0x52, 0x96, - 0xb2, 0xa4, 0xcb, 0xf8, 0x75, 0x77, 0x90, 0x66, 0xa9, 0xf4, 0x6e, 0xb7, 0x9c, 0xf6, 0x4e, 0xf8, - 0xdd, 0x6c, 0xfb, 0xbf, 0x15, 0xfc, 0x30, 0x49, 0xe5, 0xc5, 0xa8, 0xe7, 0x47, 0x3c, 0xb3, 0x1f, - 0xdc, 0xfe, 0x74, 0x44, 0xdc, 0x0f, 0xe4, 0x78, 0x48, 0x85, 0xff, 0x8c, 0xc9, 0xa9, 0x82, 0xeb, - 0x36, 0x2b, 0x14, 0x3c, 0x2c, 0x2b, 0xf2, 0x06, 0x89, 0xfe, 0x7c, 0xd9, 0x01, 0xb6, 0x89, 0x9e, - 0x31, 0x89, 0xef, 0xcd, 0x35, 0x67, 0xfc, 0xfa, 0x8b, 0x99, 0xc2, 0x8d, 0xc0, 0xb6, 0x18, 0x10, - 0x71, 0x91, 0xb2, 0xc4, 0xdb, 0xfa, 0x9f, 0xaa, 0x9c, 0x5b, 0x51, 0xd8, 0xb6, 0x55, 0x99, 0xa7, - 0x15, 0x0a, 0xee, 0x1b, 0x07, 0x25, 0xd2, 0x4d, 0xd9, 0x0b, 0x8e, 0xf0, 0x5c, 0xe1, 0xfe, 0xe2, - 0x80, 0x77, 0x62, 0x3a, 0xe4, 0x22, 0x95, 0xda, 0x5c, 0x4e, 0x24, 0xf5, 0x6a, 0xba, 0x0a, 0xfd, - 0xb7, 0xa8, 0xc2, 0x29, 0x8d, 0xa6, 0x0a, 0xbe, 0xb1, 0x53, 0xa1, 0xe0, 0xfb, 0xc6, 0xc0, 0x2a, - 0x53, 0xbd, 0xff, 0x29, 0x8d, 0x70, 0xc3, 0x0a, 0xce, 0xf8, 0x35, 0xd6, 0xf4, 0x6d, 0x70, 0xd7, - 0x0e, 0x42, 0xf9, 0x01, 0xdd, 0xaf, 0xc1, 0x5d, 0x46, 0xe5, 0x15, 0xcf, 0xfb, 0x5d, 0x12, 0xc7, - 0x39, 0x15, 0x66, 0x28, 0x76, 0xc2, 0xce, 0x54, 0xc1, 0x55, 0xaa, 0x50, 0xf0, 0x3d, 0x73, 0xf4, - 0x0a, 0x81, 0x70, 0xc3, 0x22, 0x4f, 0x0d, 0xe0, 0x12, 0x50, 0x1b, 0x8e, 0x7a, 0x7d, 0x3a, 0xf6, - 0x6e, 0xe9, 0x19, 0xdb, 0xf7, 0xcd, 0xdb, 0xe0, 0x97, 0x6f, 0x83, 0xff, 0x94, 0x8d, 0xc3, 0x13, - 0x3d, 0x58, 0x5a, 0x57, 0x19, 0x2c, 0x1d, 0xa3, 0x3f, 0x5e, 0x76, 0xf6, 0xed, 0x65, 0xa2, 0x7c, - 0x3c, 0x94, 0xdc, 0x7f, 0x3e, 0xea, 0x7d, 0x4e, 0xc7, 0xd8, 0x26, 0xb8, 0x1f, 0x83, 0x3b, 0x62, - 0x24, 0x86, 0x94, 0xc5, 0xde, 0x66, 0xcb, 0x69, 0x6f, 0x87, 0x0f, 0xa7, 0x0a, 0x96, 0x50, 0xa1, - 0x60, 0xc3, 0x7e, 0x26, 0x03, 0x20, 0x5c, 0x52, 0xee, 0x37, 0xa0, 0x26, 0x24, 0x91, 0x23, 0xa1, - 0x5b, 0xb3, 0x71, 0x8c, 0x7c, 0x7b, 0x4e, 0xf9, 0xb6, 0xd8, 0xb7, 0xc6, 0x0f, 0x39, 0x8b, 0xcf, - 0xb5, 0x32, 0x7c, 0x30, 0x73, 0x6a, 0xb2, 0x16, 0x4e, 0x4d, 0x8c, 0xb0, 0x25, 0xdc, 0x13, 0x50, - 0x93, 0xbc, 0x4f, 0x99, 0xf0, 0xb6, 0x74, 0x0d, 0x75, 0x92, 0x41, 0x16, 0x49, 0x26, 0x46, 0xd8, - 0x12, 0xee, 0x19, 0xa8, 0xf3, 0x2b, 0x46, 0xf3, 0x79, 0xfd, 0x4d, 0xa7, 0x3c, 0x9e, 0x2a, 0xb8, - 0x4c, 0x2c, 0x3a, 0x6f, 0x09, 0x46, 0x78, 0x4f, 0xc7, 0x65, 0xe5, 0x33, 0xb0, 0x1b, 0x53, 0x11, - 0xe5, 0xe9, 0x50, 0xa6, 0x9c, 0x79, 0x77, 0x74, 0xf9, 0x5b, 0x6b, 0xbb, 0xfc, 0x74, 0xa1, 0x0b, - 0x1f, 0xdb, 0x46, 0xaf, 0x26, 0x17, 0x0a, 0xba, 0x65, 0xab, 0xcd, 0x41, 0x84, 0xab, 0x12, 0xf4, - 0x93, 0x03, 0xb6, 0xcb, 0x69, 0x71, 0x31, 0x68, 0x5c, 0x91, 0xc1, 0x80, 0xca, 0x95, 0x66, 0xfa, - 0x68, 0xf6, 0xb6, 0x2d, 0x33, 0x8b, 0xb7, 0x6d, 0x19, 0x47, 0xb8, 0x6e, 0x80, 0xf2, 0x3e, 0x01, - 0xd8, 0xba, 0x24, 0x83, 0x11, 0xd5, 0x8d, 0xb4, 0x19, 0x1e, 0x4c, 0x15, 0x34, 0x40, 0xa1, 0xe0, - 0x9e, 0xd9, 0x41, 0x87, 0x08, 0x1b, 0x38, 0xc4, 0xbf, 0x4d, 0x9a, 0xce, 0xab, 0x49, 0xd3, 0x79, - 0x3d, 0x69, 0x3a, 0xff, 0x4e, 0x9a, 0xce, 0xcf, 0x37, 0xcd, 0x8d, 0xd7, 0x37, 0xcd, 0x8d, 0xbf, - 0x6e, 0x9a, 0x1b, 0xdf, 0x3e, 0xa9, 0x4c, 0x9e, 0xad, 0x09, 0xa3, 0xb2, 0x5c, 0x76, 0xa2, 0x0b, - 0x92, 0xb2, 0xe0, 0xfb, 0xc5, 0xff, 0x89, 0x9e, 0xc5, 0x5e, 0x4d, 0xb7, 0xed, 0xc9, 0x7f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x2f, 0x94, 0xf8, 0x53, 0x1a, 0x07, 0x00, 0x00, + // 929 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x41, 0x6f, 0xe3, 0x44, + 0x14, 0xae, 0xb7, 0x34, 0xdb, 0x4e, 0x9b, 0x2c, 0xf5, 0x16, 0x70, 0xbb, 0xda, 0x4c, 0xd6, 0x5a, + 0xa1, 0x0a, 0xa9, 0xb6, 0xda, 0x45, 0x42, 0x70, 0xab, 0xb7, 0x2b, 0xb4, 0x02, 0xaa, 0x95, 0x7b, + 0x40, 0x70, 0x89, 0x26, 0xf6, 0xd4, 0x1d, 0x12, 0xcf, 0x58, 0x9e, 0x49, 0x4a, 0xfa, 0x27, 0xe0, + 0xcc, 0x19, 0xc1, 0x0a, 0x2e, 0x1c, 0xf8, 0x11, 0x2b, 0x4e, 0x2b, 0x4e, 0x88, 0xc3, 0x80, 0xda, + 0x03, 0x52, 0x8e, 0xfe, 0x05, 0xc8, 0x33, 0xe3, 0x38, 0xc9, 0x66, 0x91, 0xb8, 0xb4, 0x7e, 0xdf, + 0xfb, 0xe6, 0xbd, 0xef, 0xcd, 0xbc, 0xf7, 0x02, 0x1e, 0x70, 0x91, 0x23, 0xc1, 0xb8, 0x9f, 0xe3, + 0x84, 0x70, 0x81, 0x73, 0x7f, 0x74, 0xe8, 0x27, 0x98, 0x62, 0x4e, 0xb8, 0x97, 0xe5, 0x4c, 0x30, + 0xfb, 0xae, 0xa1, 0x78, 0x15, 0xc5, 0x1b, 0x1d, 0xee, 0xed, 0x26, 0x8c, 0x25, 0x03, 0xec, 0x2b, + 0x4a, 0x6f, 0x78, 0xee, 0x23, 0x3a, 0xd6, 0xfc, 0xbd, 0x9d, 0x84, 0x25, 0x4c, 0x7d, 0xfa, 0xe5, + 0x97, 0x41, 0x77, 0x23, 0xc6, 0x53, 0xc6, 0xbb, 0xda, 0xa1, 0x0d, 0xe3, 0xda, 0x46, 0x29, 0xa1, + 0xcc, 0x57, 0x7f, 0x0d, 0xd4, 0xd6, 0x04, 0xbf, 0x87, 0x38, 0xf6, 0x47, 0x87, 0x3d, 0x2c, 0xd0, + 0xa1, 0x1f, 0x31, 0x42, 0x8d, 0xff, 0xa1, 0xf1, 0x73, 0x81, 0xfa, 0x84, 0x26, 0x53, 0x8a, 0xb1, + 0x0d, 0xcb, 0x5d, 0x56, 0xdc, 0xb4, 0x0a, 0xc5, 0x71, 0xbf, 0x6f, 0x80, 0xad, 0x8f, 0x75, 0xbd, + 0x67, 0x02, 0x09, 0x6c, 0x7f, 0x01, 0x1a, 0x19, 0xca, 0x51, 0xca, 0x1d, 0xab, 0x63, 0xed, 0x6f, + 0x1e, 0xdd, 0xf3, 0x96, 0xd4, 0xef, 0x3d, 0x53, 0x94, 0xe0, 0xe1, 0x0b, 0x09, 0x57, 0x26, 0x12, + 0x9a, 0x23, 0x85, 0x84, 0xcd, 0x31, 0x4a, 0x07, 0x1f, 0xb9, 0xda, 0x76, 0x9f, 0xff, 0xf3, 0xcb, + 0x7b, 0x56, 0x68, 0xbc, 0xf6, 0x37, 0x16, 0x68, 0xe5, 0x98, 0xb3, 0x61, 0x1e, 0xe1, 0x2e, 0x65, + 0x31, 0xe6, 0xce, 0xad, 0xce, 0xea, 0xfe, 0xe6, 0xd1, 0x83, 0xa5, 0x39, 0x42, 0x43, 0x3d, 0x65, + 0x31, 0x0e, 0x9e, 0x98, 0x4c, 0x0b, 0x01, 0x0a, 0x09, 0xdf, 0xd2, 0x19, 0xe7, 0x71, 0xf7, 0xa7, + 0xbf, 0x60, 0x73, 0x36, 0x00, 0xd7, 0x52, 0x9a, 0xf9, 0x2c, 0x66, 0x5f, 0x02, 0x90, 0x62, 0x81, + 0x8c, 0x98, 0x55, 0x25, 0xe6, 0xfe, 0x52, 0x31, 0x9f, 0x61, 0x81, 0x94, 0x90, 0x0f, 0x8d, 0x90, + 0x99, 0x83, 0x85, 0x84, 0xdb, 0x5a, 0x44, 0x8d, 0x95, 0x02, 0x36, 0xaa, 0x43, 0x26, 0xf9, 0x46, + 0x5a, 0xd9, 0xf6, 0x0f, 0x16, 0xb8, 0x9b, 0xe3, 0x14, 0x11, 0x4a, 0x68, 0xd2, 0xa5, 0xec, 0xaa, + 0x3b, 0x20, 0x29, 0x11, 0xce, 0x1b, 0x1d, 0x6b, 0x7f, 0x23, 0x18, 0x95, 0x39, 0xfe, 0x94, 0xf0, + 0xdd, 0x84, 0x88, 0x8b, 0x61, 0xcf, 0x8b, 0x58, 0x6a, 0x5a, 0xc6, 0xfc, 0x3b, 0xe0, 0x71, 0xdf, + 0x17, 0xe3, 0x0c, 0x73, 0xef, 0x29, 0x15, 0x13, 0x09, 0x97, 0x05, 0x2b, 0x24, 0xdc, 0xab, 0xee, + 0xe6, 0x15, 0xa7, 0xfb, 0xfb, 0xaf, 0x07, 0xc0, 0xb4, 0xe1, 0x53, 0x2a, 0xb4, 0xc0, 0xed, 0x29, + 0xf1, 0x94, 0x5d, 0x7d, 0x5a, 0xd2, 0xec, 0x0b, 0xb0, 0xce, 0x07, 0x88, 0x5f, 0x10, 0x9a, 0x38, + 0x6b, 0xff, 0x71, 0x3f, 0x67, 0x86, 0x14, 0x1c, 0x98, 0xfb, 0x99, 0x1e, 0x2b, 0x24, 0xdc, 0xd1, + 0x32, 0x2a, 0xa4, 0x4b, 0xe8, 0x39, 0x33, 0xbd, 0x31, 0xa5, 0xd9, 0xdf, 0x59, 0xe0, 0xcd, 0x18, + 0x67, 0x8c, 0x13, 0xa1, 0x64, 0xe6, 0x48, 0x60, 0xa7, 0xa1, 0xee, 0x23, 0xfb, 0x1f, 0xf7, 0x71, + 0x82, 0xa3, 0x89, 0x84, 0xaf, 0x44, 0x2a, 0x24, 0x7c, 0x47, 0xab, 0x58, 0xf4, 0xcc, 0xde, 0xc4, + 0x09, 0x8e, 0xb4, 0xac, 0x96, 0x61, 0x9d, 0xb2, 0xab, 0xb0, 0xe4, 0xfc, 0xbc, 0x06, 0xee, 0x98, + 0x31, 0xa9, 0x1e, 0xd5, 0xa6, 0xe0, 0x0e, 0xc5, 0xe2, 0x92, 0xe5, 0xfd, 0x2e, 0x8a, 0xe3, 0x1c, + 0x73, 0x3d, 0x32, 0x1b, 0xc1, 0x93, 0x89, 0x84, 0x8b, 0xae, 0x42, 0xc2, 0xb7, 0x75, 0xfe, 0x05, + 0x47, 0x99, 0x7e, 0xc7, 0xa4, 0x3f, 0xd6, 0xd0, 0x99, 0xc8, 0x09, 0x4d, 0xc2, 0x96, 0x61, 0x1a, + 0xd4, 0x46, 0xa0, 0x91, 0x0d, 0x7b, 0x7d, 0x3c, 0x76, 0x6e, 0xa9, 0xc9, 0xdc, 0xf1, 0xf4, 0x12, + 0xf2, 0xaa, 0x25, 0xe4, 0x1d, 0xd3, 0x71, 0xf0, 0x48, 0x8d, 0xa3, 0xe2, 0xcd, 0x8c, 0xa3, 0xb2, + 0xdd, 0xdf, 0xea, 0x54, 0x51, 0x3e, 0xce, 0x04, 0xf3, 0x9e, 0x0d, 0x7b, 0x9f, 0xe0, 0x71, 0x68, + 0x0e, 0xd8, 0x1f, 0x80, 0xdb, 0x7c, 0xc8, 0x33, 0x4c, 0x63, 0x67, 0xb5, 0x63, 0xed, 0xaf, 0x07, + 0xf7, 0x27, 0x12, 0x56, 0x50, 0x21, 0x61, 0xcb, 0x3c, 0xa4, 0x06, 0xdc, 0xb0, 0x72, 0xd9, 0x9f, + 0x83, 0x06, 0x17, 0x48, 0x0c, 0xb9, 0xea, 0xe0, 0xd6, 0x91, 0xeb, 0x99, 0x3c, 0xd5, 0x46, 0x32, + 0x1b, 0xca, 0x0b, 0x18, 0x8d, 0xcf, 0x14, 0x33, 0xb8, 0x57, 0x2a, 0xd5, 0xa7, 0x6a, 0xa5, 0xda, + 0x76, 0x43, 0xe3, 0x28, 0x03, 0x0b, 0xd6, 0xc7, 0x94, 0x3b, 0x6b, 0xaa, 0xe8, 0xdd, 0x2a, 0x70, + 0xb9, 0x1a, 0xa7, 0x51, 0x1f, 0x33, 0x42, 0xeb, 0x65, 0xa4, 0x0f, 0xd4, 0x31, 0xb5, 0x5d, 0x2d, + 0x23, 0x6d, 0xd9, 0xe7, 0xa0, 0xc9, 0x2e, 0x29, 0xce, 0xa7, 0x6f, 0xa7, 0x5b, 0xed, 0x78, 0x22, + 0xe1, 0xbc, 0xa3, 0xee, 0xdf, 0x39, 0xf8, 0xf5, 0xef, 0xb6, 0xa5, 0x78, 0xd5, 0xab, 0xe5, 0x60, + 0x33, 0xc6, 0x3c, 0xca, 0x49, 0x26, 0x08, 0xa3, 0xce, 0x6d, 0x55, 0x45, 0x67, 0xe9, 0x0c, 0x9d, + 0xd4, 0xbc, 0xc0, 0x33, 0xc5, 0xcc, 0x1e, 0x2e, 0x24, 0xb4, 0xab, 0x1e, 0x9e, 0x82, 0xa6, 0xac, + 0x59, 0x9e, 0xfb, 0xa3, 0x05, 0xd6, 0xab, 0x81, 0xb4, 0xbf, 0x02, 0xad, 0x4b, 0x34, 0x18, 0x60, + 0xb1, 0xd0, 0xa5, 0x8f, 0xcb, 0x6d, 0x3a, 0xef, 0xa9, 0xb7, 0xe9, 0x3c, 0xfe, 0xfa, 0x5a, 0x9b, + 0x9a, 0x58, 0x15, 0xeb, 0x83, 0xb5, 0x11, 0x1a, 0x0c, 0xb1, 0xea, 0xd0, 0xd5, 0x60, 0x77, 0x22, + 0xa1, 0x06, 0x0a, 0x09, 0xb7, 0x74, 0x64, 0x65, 0xba, 0xa1, 0x86, 0x83, 0xf0, 0xf9, 0x75, 0xdb, + 0x7a, 0x71, 0xdd, 0xb6, 0x5e, 0x5e, 0xb7, 0xad, 0xbf, 0xaf, 0xdb, 0xd6, 0xb7, 0x37, 0xed, 0x95, + 0x97, 0x37, 0xed, 0x95, 0x3f, 0x6e, 0xda, 0x2b, 0x5f, 0xbe, 0x3f, 0x33, 0xef, 0xe6, 0xc2, 0x28, + 0x16, 0xd5, 0xe7, 0x41, 0x74, 0x81, 0x08, 0xf5, 0xbf, 0xae, 0x7f, 0xde, 0xd4, 0x06, 0xe8, 0x35, + 0xd4, 0x3c, 0x3c, 0xfa, 0x37, 0x00, 0x00, 0xff, 0xff, 0x17, 0x5e, 0x52, 0x83, 0xdc, 0x07, 0x00, + 0x00, } func (this *GenesisState) Equal(that interface{}) bool { @@ -394,7 +400,7 @@ func (this *GenesisMetaNode) Equal(that interface{}) bool { if this.Status != that1.Status { return false } - if this.Tokens != that1.Tokens { + if !this.Tokens.Equal(&that1.Tokens) { return false } if this.OwnerAddress != that1.OwnerAddress { @@ -564,13 +570,16 @@ func (m *GenesisMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x32 } - if len(m.Tokens) > 0 { - i -= len(m.Tokens) - copy(dAtA[i:], m.Tokens) - i = encodeVarintGenesis(dAtA, i, uint64(len(m.Tokens))) - i-- - dAtA[i] = 0x2a + { + size, err := m.Tokens.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x2a if m.Status != 0 { i = encodeVarintGenesis(dAtA, i, uint64(m.Status)) i-- @@ -707,10 +716,8 @@ func (m *GenesisMetaNode) Size() (n int) { if m.Status != 0 { n += 1 + sovGenesis(uint64(m.Status)) } - l = len(m.Tokens) - if l > 0 { - n += 1 + l + sovGenesis(uint64(l)) - } + l = m.Tokens.Size() + n += 1 + l + sovGenesis(uint64(l)) l = len(m.OwnerAddress) if l > 0 { n += 1 + l + sovGenesis(uint64(l)) @@ -1135,7 +1142,7 @@ func (m *GenesisMetaNode) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Tokens", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowGenesis @@ -1145,23 +1152,24 @@ func (m *GenesisMetaNode) 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 ErrInvalidLengthGenesis } - postIndex := iNdEx + intStringLen + postIndex := iNdEx + msglen if postIndex < 0 { return ErrInvalidLengthGenesis } if postIndex > l { return io.ErrUnexpectedEOF } - m.Tokens = string(dAtA[iNdEx:postIndex]) + if err := m.Tokens.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } iNdEx = postIndex case 6: if wireType != 2 { diff --git a/x/register/types/keys.go b/x/register/types/keys.go index 98593d6d..c4ed15be 100644 --- a/x/register/types/keys.go +++ b/x/register/types/keys.go @@ -15,8 +15,6 @@ const ( StoreKey = ModuleName // RouterKey to be used for routing msgs RouterKey = ModuleName - // QuerierRoute to be used for querier msgs - QuerierRoute = ModuleName // ResourceNodeBondedPool stores the total balance of bonded resource nodes ResourceNodeBondedPool = "resource_node_bonded_pool" // ResourceNodeNotBondedPool stores the total balance of not bonded resource nodes @@ -43,6 +41,7 @@ var ( UBDNodeKey = []byte{0x11} // prefix for each key to an unbonding node UBDNodeQueueKey = []byte{0x12} // prefix for the timestamps in unbonding node queue + ParamsKey = []byte{0x20} ) // GetResourceNodeKey gets the key for the resourceNode with address diff --git a/x/register/types/params.go b/x/register/types/params.go index 280bad32..a1dba7eb 100644 --- a/x/register/types/params.go +++ b/x/register/types/params.go @@ -8,13 +8,9 @@ import ( sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - "github.com/stratosnet/stratos-chain/types" ) -var _ paramtypes.ParamSet = &Params{} - // Default parameter namespace const ( DefaultBondDenom = types.Wei @@ -24,27 +20,14 @@ const ( // Parameter store keys var ( - KeyBondDenom = []byte("BondDenom") - KeyUnbondingThreasholdTime = []byte("UnbondingThreasholdTime") - KeyUnbondingCompletionTime = []byte("UnbondingCompletionTime") - KeyMaxEntries = []byte("MaxEntries") - KeyResourceNodeRegEnabled = []byte("ResourceNodeRegEnabled") - KeyResourceNodeMinDeposit = []byte("ResourceNodeMinDeposit") - KeyVotingPeriod = []byte("VotingPeriod") - - DefaultUnbondingThreasholdTime = 180 * 24 * time.Hour // threashold for unbonding - by default 180 days - DefaultUnbondingCompletionTime = 14 * 24 * time.Hour // lead time to complete unbonding - by default 14 days - DefaultVotingPeriod = 7 * 24 * time.Hour // expiration time of registration voting - by default 7 days - DefaultDepositNozRate = sdkmath.LegacyNewDec(1000000) // 0.001gwei -> 1noz = 1000000wei -> 1noz - DefaultRemainingNozLimit = sdkmath.NewInt(0) + DefaultUnbondingThreasholdTime = 180 * 24 * time.Hour // threashold for unbonding - by default 180 days + DefaultUnbondingCompletionTime = 14 * 24 * time.Hour // lead time to complete unbonding - by default 14 days + DefaultVotingPeriod = 7 * 24 * time.Hour // expiration time of registration voting - by default 7 days + DefaultDepositNozRate = sdkmath.LegacyNewDec(1e6) // 0.001gwei -> 1noz = 1000000wei -> 1noz + DefaultRemainingNozLimit = sdkmath.ZeroInt() DefaultResourceNodeMinDeposit = sdk.NewCoin(DefaultBondDenom, sdkmath.NewInt(1e18)) ) -// ParamKeyTable returns the parameter key table. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - // NewParams creates a new Params object func NewParams(bondDenom string, threashold, completion time.Duration, maxEntries uint32, resourceNodeRegEnabled bool, resourceNodeMinDeposit sdk.Coin, votingPeriod time.Duration) Params { @@ -60,17 +43,17 @@ func NewParams(bondDenom string, threashold, completion time.Duration, maxEntrie } } -// ParamSetPairs - Implements params.ParamSet -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyBondDenom, &p.BondDenom, validateBondDenom), - paramtypes.NewParamSetPair(KeyUnbondingThreasholdTime, &p.UnbondingThreasholdTime, validateUnbondingThreasholdTime), - paramtypes.NewParamSetPair(KeyUnbondingCompletionTime, &p.UnbondingCompletionTime, validateUnbondingCompletionTime), - paramtypes.NewParamSetPair(KeyMaxEntries, &p.MaxEntries, validateMaxEntries), - paramtypes.NewParamSetPair(KeyResourceNodeRegEnabled, &p.ResourceNodeRegEnabled, validateResourceNodeRegEnabled), - paramtypes.NewParamSetPair(KeyResourceNodeMinDeposit, &p.ResourceNodeMinDeposit, validateResourceNodeMinDeposit), - paramtypes.NewParamSetPair(KeyVotingPeriod, &p.VotingPeriod, validateVotingPeriod), - } +// DefaultParams defines the parameters for this module +func DefaultParams() Params { + return NewParams( + DefaultBondDenom, + DefaultUnbondingThreasholdTime, + DefaultUnbondingCompletionTime, + DefaultMaxEntries, + DefaultResourceNodeRegEnabled, + DefaultResourceNodeMinDeposit, + DefaultVotingPeriod, + ) } func (p Params) Validate() error { @@ -98,19 +81,6 @@ func (p Params) Validate() error { return nil } -// DefaultParams defines the parameters for this module -func DefaultParams() Params { - return NewParams( - DefaultBondDenom, - DefaultUnbondingThreasholdTime, - DefaultUnbondingCompletionTime, - DefaultMaxEntries, - DefaultResourceNodeRegEnabled, - DefaultResourceNodeMinDeposit, - DefaultVotingPeriod, - ) -} - func validateBondDenom(i interface{}) error { v, ok := i.(string) if !ok { diff --git a/x/register/types/params_legacy.go b/x/register/types/params_legacy.go new file mode 100644 index 00000000..0be0b8ac --- /dev/null +++ b/x/register/types/params_legacy.go @@ -0,0 +1,36 @@ +package types + +import ( + paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// Parameter store keys +var ( + KeyBondDenom = []byte("BondDenom") + KeyUnbondingThreasholdTime = []byte("UnbondingThreasholdTime") + KeyUnbondingCompletionTime = []byte("UnbondingCompletionTime") + KeyMaxEntries = []byte("MaxEntries") + KeyResourceNodeRegEnabled = []byte("ResourceNodeRegEnabled") + KeyResourceNodeMinDeposit = []byte("ResourceNodeMinDeposit") + KeyVotingPeriod = []byte("VotingPeriod") +) + +// ParamKeyTable returns the parameter key table. +// Deprecated: now params can be accessed on key `0x20` on the register store. +func ParamKeyTable() paramtypes.KeyTable { + return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) +} + +// ParamSetPairs - Implements params.ParamSet +// Deprecated. +func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { + return paramtypes.ParamSetPairs{ + paramtypes.NewParamSetPair(KeyBondDenom, &p.BondDenom, validateBondDenom), + paramtypes.NewParamSetPair(KeyUnbondingThreasholdTime, &p.UnbondingThreasholdTime, validateUnbondingThreasholdTime), + paramtypes.NewParamSetPair(KeyUnbondingCompletionTime, &p.UnbondingCompletionTime, validateUnbondingCompletionTime), + paramtypes.NewParamSetPair(KeyMaxEntries, &p.MaxEntries, validateMaxEntries), + paramtypes.NewParamSetPair(KeyResourceNodeRegEnabled, &p.ResourceNodeRegEnabled, validateResourceNodeRegEnabled), + paramtypes.NewParamSetPair(KeyResourceNodeMinDeposit, &p.ResourceNodeMinDeposit, validateResourceNodeMinDeposit), + paramtypes.NewParamSetPair(KeyVotingPeriod, &p.VotingPeriod, validateVotingPeriod), + } +} diff --git a/x/register/types/register.pb.go b/x/register/types/register.pb.go index 5917c891..3bb9fefd 100644 --- a/x/register/types/register.pb.go +++ b/x/register/types/register.pb.go @@ -9,6 +9,7 @@ import ( types1 "github.com/cosmos/cosmos-sdk/codec/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/tx/amino" types2 "github.com/cosmos/cosmos-sdk/x/staking/types" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" @@ -604,100 +605,104 @@ func init() { } var fileDescriptor_fef1e3aeec8499d6 = []byte{ - // 1483 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4f, 0x6f, 0xdc, 0x44, - 0x1b, 0x8f, 0x93, 0xbe, 0x9b, 0xcd, 0x6c, 0xfe, 0xf4, 0x75, 0xf3, 0xb6, 0x9b, 0xbe, 0x7d, 0x77, - 0x52, 0xbf, 0x40, 0x53, 0x41, 0x76, 0x95, 0x16, 0x09, 0xd1, 0x03, 0x52, 0xdc, 0x04, 0x91, 0x42, - 0xab, 0x60, 0xd2, 0x56, 0xe2, 0x62, 0xbc, 0xf6, 0x74, 0x33, 0xcd, 0x7a, 0xc6, 0x78, 0x66, 0xb7, - 0x59, 0x89, 0x1b, 0x42, 0xe2, 0x84, 0x7a, 0x42, 0x95, 0xb8, 0xf4, 0xc8, 0x07, 0xe8, 0x87, 0x28, - 0x9c, 0x2a, 0x4e, 0x88, 0x83, 0x41, 0xa9, 0x84, 0xd0, 0x1e, 0xcd, 0x17, 0x40, 0x9e, 0x3f, 0x6b, - 0xaf, 0xd3, 0x55, 0x55, 0xa4, 0x9e, 0xe8, 0x69, 0xfd, 0xfc, 0x7e, 0xcf, 0x3c, 0xcf, 0x33, 0x7e, - 0xfe, 0x8c, 0x67, 0x81, 0xc5, 0x78, 0xec, 0x71, 0xca, 0x5a, 0x31, 0xea, 0x60, 0xc6, 0x51, 0xdc, - 0xea, 0x6f, 0x8c, 0x9e, 0x9b, 0x51, 0x4c, 0x39, 0x35, 0x4f, 0x29, 0x9d, 0xe6, 0x08, 0xef, 0x6f, - 0x9c, 0x5d, 0xee, 0xd0, 0x0e, 0x15, 0x7c, 0x2b, 0x7b, 0x92, 0xaa, 0x67, 0x57, 0x3a, 0x94, 0x76, - 0xba, 0xa8, 0x25, 0xa4, 0x76, 0xef, 0x4e, 0xcb, 0x23, 0x03, 0x45, 0xc1, 0x32, 0xc5, 0x71, 0x88, - 0x18, 0xf7, 0xc2, 0x48, 0x29, 0x34, 0xca, 0x0a, 0x41, 0x2f, 0xf6, 0x38, 0xa6, 0x44, 0xdb, 0xf6, - 0x29, 0x0b, 0x29, 0x73, 0xa5, 0x53, 0x29, 0xe8, 0xa5, 0x52, 0x6a, 0xb5, 0x3d, 0x86, 0x5a, 0xfd, - 0x8d, 0x36, 0xe2, 0xde, 0x46, 0xcb, 0xa7, 0x58, 0x2f, 0x7d, 0x4d, 0xf1, 0x8c, 0x7b, 0x07, 0x98, - 0x74, 0x46, 0x2a, 0x4a, 0x96, 0x5a, 0xd6, 0x9f, 0x15, 0x50, 0xd9, 0xf5, 0x62, 0x2f, 0x64, 0xa6, - 0x0d, 0x40, 0x9b, 0x92, 0xc0, 0x0d, 0x10, 0xa1, 0x61, 0xdd, 0x58, 0x35, 0xd6, 0xe6, 0xec, 0xff, - 0x0f, 0x13, 0x58, 0x40, 0xd3, 0x04, 0xfe, 0x7b, 0xe0, 0x85, 0xdd, 0x2b, 0x56, 0x8e, 0x59, 0xce, - 0x5c, 0x26, 0x6c, 0x65, 0xcf, 0xe6, 0x43, 0x03, 0xac, 0xf4, 0x48, 0x26, 0x63, 0xd2, 0x71, 0xf9, - 0x7e, 0x8c, 0x3c, 0xb6, 0x4f, 0xbb, 0x81, 0x9b, 0x6d, 0xbc, 0x3e, 0xbd, 0x6a, 0xac, 0xd5, 0x2e, - 0xad, 0x34, 0xe5, 0xa6, 0x9b, 0x7a, 0xd3, 0xcd, 0x2d, 0xb5, 0x69, 0x7b, 0xe7, 0x71, 0x02, 0xa7, - 0x86, 0x09, 0x9c, 0x6c, 0x23, 0x4d, 0xe0, 0xaa, 0x8c, 0x60, 0xa2, 0x8a, 0xf5, 0xe0, 0x57, 0x68, - 0x38, 0x67, 0x46, 0xfc, 0xde, 0x88, 0xde, 0xc3, 0x21, 0x2a, 0x85, 0xe8, 0xd3, 0x30, 0xea, 0xa2, - 0xcc, 0xb9, 0x0c, 0x71, 0xe6, 0x6f, 0x84, 0x58, 0xb2, 0xf1, 0xac, 0x10, 0x4b, 0x2a, 0xe5, 0x10, - 0xaf, 0x8e, 0x68, 0x11, 0xe2, 0x2e, 0xa8, 0x85, 0xde, 0xa1, 0x8b, 0x08, 0x8f, 0x31, 0x62, 0xf5, - 0x13, 0xab, 0xc6, 0xda, 0x82, 0xdd, 0x1a, 0x26, 0xb0, 0x08, 0xa7, 0x09, 0x3c, 0x27, 0xdd, 0x14, - 0x40, 0xeb, 0x2d, 0x1a, 0x62, 0x8e, 0xc2, 0x88, 0x0f, 0x1c, 0x10, 0x7a, 0x87, 0xdb, 0x12, 0x36, - 0xbf, 0x00, 0x2b, 0x31, 0x62, 0xb4, 0x17, 0xfb, 0xc8, 0x25, 0x34, 0x40, 0x6e, 0x8c, 0x3a, 0x2e, - 0x22, 0x5e, 0xbb, 0x8b, 0x82, 0xfa, 0xbf, 0x56, 0x8d, 0xb5, 0xaa, 0xbd, 0x99, 0x6d, 0x6a, 0xa2, - 0x52, 0xbe, 0xa9, 0x89, 0x2a, 0x96, 0x73, 0x5a, 0x73, 0x37, 0x68, 0x80, 0x1c, 0xd4, 0xd9, 0x96, - 0x84, 0xf9, 0x9d, 0x51, 0x76, 0x1f, 0x62, 0xe2, 0x06, 0x28, 0xa2, 0x0c, 0xf3, 0x7a, 0x45, 0xbd, - 0x72, 0x55, 0xdd, 0x59, 0x3d, 0x37, 0x55, 0xb1, 0x36, 0xaf, 0x52, 0x4c, 0xec, 0x6d, 0xfd, 0xca, - 0x27, 0xda, 0x98, 0x14, 0x5d, 0x41, 0xa5, 0x14, 0xdd, 0x75, 0x4c, 0xb6, 0x24, 0x61, 0x7e, 0x0e, - 0x16, 0xfa, 0x94, 0x67, 0x59, 0x8a, 0x50, 0x8c, 0x69, 0x50, 0x9f, 0x7d, 0x5e, 0x0d, 0x6c, 0xa8, - 0x80, 0xc6, 0xd7, 0xa5, 0x09, 0x5c, 0x96, 0x41, 0x8c, 0xc1, 0x32, 0xd7, 0xf3, 0x12, 0xdb, 0x95, - 0xd0, 0xd1, 0x2c, 0x98, 0x77, 0x0a, 0xd1, 0x98, 0xb7, 0xc0, 0x12, 0x41, 0xfc, 0x1e, 0x8d, 0x0f, - 0x5c, 0x2f, 0x08, 0x62, 0xc4, 0x98, 0x6a, 0xc0, 0xf5, 0x61, 0x02, 0xcb, 0x54, 0x9a, 0xc0, 0xd3, - 0xd2, 0x51, 0x89, 0xb0, 0x9c, 0x45, 0x85, 0x6c, 0x4a, 0xc0, 0xf4, 0x40, 0x25, 0xea, 0xb5, 0x0f, - 0xd0, 0x40, 0xf5, 0xde, 0xf2, 0xb1, 0x4d, 0x6d, 0x92, 0x81, 0x7d, 0x79, 0x98, 0x40, 0xa5, 0x97, - 0x26, 0x70, 0x41, 0xda, 0x96, 0xb2, 0xf5, 0xe3, 0xa3, 0xf5, 0x65, 0x95, 0x19, 0x3f, 0x1e, 0x44, - 0x9c, 0x36, 0x77, 0x7b, 0xed, 0x0f, 0xd1, 0xc0, 0x51, 0x0b, 0xcc, 0x77, 0xc0, 0x2c, 0xeb, 0xb1, - 0x08, 0x91, 0x40, 0x34, 0x4f, 0xd5, 0xfe, 0xdf, 0x30, 0x81, 0x1a, 0x4a, 0x13, 0xb8, 0x28, 0xcd, - 0x29, 0xc0, 0x72, 0x34, 0x65, 0xde, 0x06, 0x15, 0xc6, 0x3d, 0xde, 0x93, 0x05, 0xbe, 0x78, 0xc9, - 0xd2, 0x15, 0xa0, 0x27, 0x94, 0x2e, 0x02, 0x9b, 0x92, 0xe0, 0x13, 0xa1, 0x69, 0xff, 0x37, 0x8b, - 0x54, 0xae, 0xca, 0x23, 0x95, 0xb2, 0xe5, 0x28, 0xc2, 0xa4, 0xa0, 0xc2, 0xe9, 0x01, 0x22, 0x4c, - 0x54, 0xf6, 0x9c, 0x7d, 0x3b, 0x4b, 0xd7, 0x2f, 0x09, 0x7c, 0xa3, 0x83, 0xf9, 0x7e, 0xaf, 0xdd, - 0xf4, 0x69, 0xa8, 0x46, 0xa9, 0xfa, 0x59, 0x67, 0xc1, 0x41, 0x8b, 0x0f, 0x22, 0xc4, 0x9a, 0x3b, - 0x84, 0x67, 0x2e, 0xe4, 0xfa, 0xdc, 0x85, 0x94, 0xad, 0x9f, 0x1e, 0xad, 0x03, 0x15, 0xe4, 0x0e, - 0xe1, 0x8e, 0x52, 0x33, 0x6f, 0x80, 0x05, 0x7a, 0x8f, 0xa0, 0x78, 0x94, 0xbb, 0x8a, 0xf0, 0x7b, - 0x31, 0x2b, 0x91, 0x31, 0x22, 0x2f, 0x91, 0x31, 0xd8, 0x72, 0xe6, 0x85, 0xac, 0xb3, 0x16, 0x82, - 0x5a, 0x80, 0x98, 0x1f, 0xe3, 0x28, 0x2b, 0x37, 0x55, 0x8f, 0xab, 0xcd, 0x67, 0x1c, 0x49, 0xcd, - 0xad, 0x5c, 0xcf, 0xbe, 0xa8, 0xca, 0xb2, 0xb8, 0x38, 0x4d, 0xa0, 0x29, 0x3d, 0x16, 0x40, 0xcb, - 0x29, 0xaa, 0x98, 0x31, 0x58, 0xf0, 0x63, 0xe4, 0xe5, 0x43, 0xb0, 0x2a, 0x1c, 0x9e, 0x3d, 0x56, - 0x2b, 0x7b, 0xfa, 0xf4, 0xca, 0x3b, 0x60, 0x6c, 0x61, 0xbe, 0xbd, 0x31, 0xd8, 0xba, 0x2f, 0x3a, - 0x40, 0x63, 0x62, 0xc4, 0xbd, 0x07, 0xe6, 0x44, 0x87, 0x66, 0x6f, 0xbd, 0x3e, 0x27, 0x06, 0xdc, - 0xf9, 0x61, 0x02, 0x73, 0x30, 0x4d, 0xe0, 0x49, 0x55, 0xe4, 0x1a, 0xb2, 0x9c, 0x6a, 0xf6, 0xbc, - 0x37, 0x88, 0x90, 0xf9, 0xad, 0x01, 0x4e, 0xa2, 0x3b, 0x77, 0x90, 0xcf, 0x71, 0x1f, 0xb9, 0x2a, - 0xdd, 0x40, 0xbc, 0xf6, 0x83, 0x17, 0x4e, 0xf7, 0x31, 0x4b, 0x69, 0x02, 0xcf, 0x48, 0xe7, 0x65, - 0xa6, 0x5c, 0x02, 0x4b, 0x23, 0x85, 0x3d, 0xc1, 0x5f, 0xa9, 0x3e, 0x78, 0x08, 0x8d, 0x3f, 0x1e, - 0x42, 0xc3, 0xfa, 0xaa, 0x02, 0xaa, 0xd7, 0x11, 0xf7, 0x5e, 0x35, 0xf8, 0xab, 0x06, 0xff, 0xc7, - 0x35, 0x78, 0xa1, 0x0f, 0x7e, 0x98, 0x01, 0xe7, 0x74, 0x1f, 0x38, 0x62, 0x67, 0xf2, 0x18, 0xbd, - 0x45, 0x39, 0xda, 0xa5, 0xb4, 0xfb, 0xd2, 0x7a, 0xe3, 0x1a, 0x98, 0xf7, 0xa2, 0x28, 0xa6, 0x7d, - 0xe4, 0x76, 0x31, 0xe3, 0xf5, 0xe9, 0xd5, 0x99, 0xb5, 0x39, 0xfb, 0xc2, 0x30, 0x81, 0x63, 0x78, - 0x9a, 0xc0, 0x53, 0xd2, 0x62, 0x11, 0xb5, 0x9c, 0x9a, 0x12, 0x3f, 0xc2, 0x8c, 0x9b, 0xef, 0x83, - 0x5a, 0x8c, 0xee, 0x22, 0x9f, 0x4b, 0x53, 0x33, 0xc2, 0xd4, 0xeb, 0x59, 0x2e, 0x0a, 0x70, 0x9e, - 0x8b, 0x02, 0x68, 0x39, 0x40, 0x4a, 0xc2, 0xce, 0x5d, 0x50, 0x43, 0x87, 0x11, 0x8e, 0x91, 0x4c, - 0xc4, 0x89, 0xe7, 0x26, 0x62, 0x5d, 0xe7, 0xbc, 0xb0, 0x2c, 0xf7, 0x53, 0x00, 0x65, 0x12, 0x80, - 0x44, 0xc4, 0x8c, 0xfd, 0x18, 0x2c, 0x62, 0xe6, 0xf6, 0x29, 0x47, 0x6e, 0xe4, 0x31, 0x36, 0xfa, - 0xd2, 0x7b, 0x73, 0x98, 0xc0, 0x12, 0x93, 0x26, 0xf0, 0x3f, 0xd2, 0xe2, 0x38, 0x6e, 0x39, 0xf3, - 0x98, 0x89, 0x44, 0x49, 0xf1, 0xcb, 0x19, 0x50, 0x2b, 0x54, 0x64, 0x36, 0x1b, 0x42, 0x4a, 0xf0, - 0x01, 0x8a, 0x55, 0xca, 0xc4, 0x6c, 0x50, 0x50, 0x3e, 0x1b, 0x14, 0x60, 0x39, 0x9a, 0x32, 0xb7, - 0x41, 0x15, 0x07, 0x88, 0x70, 0xcc, 0xe5, 0xe4, 0x92, 0xcd, 0x34, 0xc2, 0xd2, 0x04, 0xae, 0xa8, - 0x78, 0x14, 0x52, 0xfc, 0xb2, 0x1d, 0xa9, 0x99, 0x9b, 0x60, 0xf6, 0x1e, 0x6a, 0x33, 0xcc, 0xe5, - 0x97, 0xbb, 0xcc, 0xae, 0x86, 0xd2, 0x04, 0xd6, 0xa5, 0x11, 0x05, 0x14, 0x6d, 0x68, 0x25, 0x33, - 0x00, 0x27, 0x19, 0xf2, 0x7b, 0x31, 0xe6, 0x03, 0xd7, 0xa7, 0x84, 0x7b, 0x3e, 0x17, 0x69, 0x99, - 0xb3, 0xdf, 0xcd, 0x8e, 0x86, 0x32, 0x97, 0x26, 0xf0, 0xbc, 0x9a, 0x4a, 0x25, 0xa6, 0x68, 0x7d, - 0x49, 0x93, 0x57, 0x25, 0x97, 0x05, 0x1a, 0x20, 0xee, 0xe1, 0xae, 0x9e, 0x59, 0x22, 0x50, 0x05, - 0xe5, 0x81, 0x2a, 0x60, 0x2c, 0x50, 0x85, 0x15, 0x3a, 0xea, 0xeb, 0x69, 0xb0, 0x70, 0x53, 0xdf, - 0x1d, 0xc4, 0xf1, 0x72, 0x0d, 0xcc, 0x17, 0xdb, 0x41, 0x25, 0x43, 0x94, 0x7a, 0x11, 0xcf, 0x4b, - 0xbd, 0x88, 0x5a, 0x4e, 0xad, 0xd0, 0x39, 0xe6, 0x0e, 0x98, 0xc7, 0xcc, 0x0d, 0x11, 0xf7, 0xc4, - 0x47, 0xb4, 0x48, 0x4f, 0x55, 0xda, 0x2a, 0xe2, 0xb9, 0xad, 0x22, 0x6a, 0x39, 0x00, 0xb3, 0xd1, - 0xa9, 0xf7, 0x19, 0x98, 0xd5, 0x97, 0x98, 0xac, 0x63, 0x6a, 0x97, 0x2e, 0x3c, 0x73, 0xc6, 0x8d, - 0xed, 0x25, 0xbb, 0xb2, 0x0c, 0x64, 0x1d, 0xe5, 0x37, 0x1d, 0x55, 0x47, 0xfa, 0x96, 0xe3, 0x68, - 0xca, 0xfa, 0x7d, 0x06, 0x98, 0xc7, 0x97, 0x67, 0x23, 0x65, 0x34, 0xa1, 0xf6, 0x11, 0xee, 0xec, - 0x73, 0xf1, 0x4a, 0x66, 0xe4, 0x48, 0x29, 0x51, 0xf9, 0x48, 0x29, 0x11, 0x96, 0xb3, 0xa8, 0x91, - 0x0f, 0x04, 0x60, 0xf6, 0xc1, 0x52, 0xf9, 0xc6, 0x38, 0xfd, 0x32, 0x66, 0xe9, 0xa2, 0x3f, 0x7e, - 0x23, 0xfc, 0xc6, 0x00, 0x4b, 0x98, 0x60, 0x8e, 0xbd, 0xae, 0xdb, 0xf6, 0xba, 0x1e, 0xf1, 0x75, - 0xc1, 0xa3, 0x17, 0x3a, 0xf7, 0xca, 0x46, 0xf2, 0xad, 0x97, 0x88, 0xf2, 0x49, 0xb8, 0xa8, 0x78, - 0x5b, 0xd2, 0x26, 0x05, 0xb3, 0x3a, 0x0e, 0xd9, 0x2c, 0x37, 0x5f, 0x28, 0x8e, 0xd9, 0xdc, 0xbf, - 0x4a, 0xed, 0x04, 0xbf, 0x5a, 0xd1, 0x76, 0xbe, 0x3f, 0x6a, 0x18, 0x8f, 0x8f, 0x1a, 0xc6, 0x93, - 0xa3, 0x86, 0xf1, 0xdb, 0x51, 0xc3, 0xb8, 0xff, 0xb4, 0x31, 0xf5, 0xe4, 0x69, 0x63, 0xea, 0xe7, - 0xa7, 0x8d, 0xa9, 0x4f, 0xdf, 0x2e, 0x78, 0x56, 0x15, 0x46, 0x10, 0xd7, 0x8f, 0xeb, 0xfe, 0xbe, - 0x87, 0x49, 0xeb, 0x30, 0xff, 0xc3, 0x47, 0xc4, 0xd2, 0xae, 0x88, 0x64, 0x5d, 0xfe, 0x2b, 0x00, - 0x00, 0xff, 0xff, 0x55, 0x93, 0xa9, 0x36, 0x11, 0x12, 0x00, 0x00, + // 1543 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0x4d, 0x6f, 0xdb, 0x46, + 0x1a, 0x36, 0xed, 0xac, 0x2c, 0x8d, 0xfc, 0x91, 0x30, 0xde, 0x44, 0xce, 0x66, 0x45, 0x87, 0xfb, + 0x11, 0x27, 0xbb, 0x96, 0x60, 0x67, 0xb1, 0x45, 0x73, 0x68, 0x61, 0xc6, 0x2e, 0x9a, 0xb4, 0x09, + 0x5c, 0xc6, 0x49, 0x81, 0xa2, 0x00, 0x4b, 0x91, 0x63, 0x79, 0x6a, 0x71, 0x86, 0xe0, 0x8c, 0x64, + 0x0b, 0xed, 0x2f, 0xe8, 0xa1, 0xc8, 0x31, 0x40, 0x51, 0x20, 0x97, 0x02, 0x01, 0x7a, 0xc9, 0xa1, + 0xb7, 0xfe, 0x81, 0xa0, 0xa7, 0xa0, 0xa7, 0xa2, 0x07, 0xb6, 0x70, 0x80, 0x06, 0x50, 0x6f, 0xfc, + 0x03, 0x2d, 0x38, 0x1f, 0x22, 0x45, 0x5b, 0x48, 0x53, 0xa0, 0x3d, 0xe5, 0x62, 0x73, 0x9e, 0xe7, + 0xe1, 0xfb, 0xbe, 0x9c, 0xf7, 0x63, 0x34, 0xc0, 0xa4, 0x2c, 0x72, 0x19, 0xa1, 0xcd, 0x08, 0xb6, + 0x11, 0x65, 0x30, 0x6a, 0xf6, 0x56, 0x87, 0xcf, 0x8d, 0x30, 0x22, 0x8c, 0xe8, 0xa7, 0xa5, 0xa6, + 0x31, 0xc4, 0x7b, 0xab, 0xe7, 0x16, 0xda, 0xa4, 0x4d, 0x38, 0xdf, 0x4c, 0x9f, 0x84, 0xf4, 0xdc, + 0x62, 0x9b, 0x90, 0x76, 0x07, 0x36, 0xf9, 0xaa, 0xd5, 0xdd, 0x69, 0xba, 0xb8, 0x2f, 0x29, 0xa3, + 0x48, 0x31, 0x14, 0x40, 0xca, 0xdc, 0x20, 0x94, 0x82, 0x7a, 0x51, 0xe0, 0x77, 0x23, 0x97, 0x21, + 0x82, 0x95, 0x6d, 0x8f, 0xd0, 0x80, 0x50, 0x47, 0x38, 0x15, 0x0b, 0x49, 0x9d, 0x72, 0x03, 0x84, + 0x49, 0x93, 0xff, 0x55, 0xd6, 0x84, 0xa0, 0xd9, 0x72, 0x29, 0x6c, 0xf6, 0x56, 0x5b, 0x90, 0xb9, + 0xab, 0x4d, 0x8f, 0x20, 0x65, 0xed, 0x9f, 0x92, 0xa7, 0xcc, 0xdd, 0x43, 0xb8, 0x3d, 0x94, 0xc8, + 0xb5, 0x50, 0x99, 0x5f, 0x4e, 0x83, 0xd2, 0x96, 0x1b, 0xb9, 0x01, 0xd5, 0x2d, 0x00, 0x5a, 0x04, + 0xfb, 0x8e, 0x0f, 0x31, 0x09, 0x6a, 0xda, 0x92, 0xb6, 0x5c, 0xb1, 0xfe, 0x31, 0x88, 0x8d, 0x1c, + 0x9a, 0xc4, 0xc6, 0xa9, 0xbe, 0x1b, 0x74, 0xae, 0x9a, 0x19, 0x66, 0xda, 0x95, 0x74, 0xb1, 0x91, + 0x3e, 0xeb, 0x5f, 0x68, 0x60, 0xb1, 0x8b, 0xd3, 0x35, 0xc2, 0x6d, 0x87, 0xed, 0x46, 0xd0, 0xa5, + 0xbb, 0xa4, 0xe3, 0x3b, 0xe9, 0x5e, 0xd4, 0x26, 0x97, 0xb4, 0xe5, 0xea, 0xda, 0x62, 0x43, 0xec, + 0x43, 0x43, 0xed, 0x43, 0x63, 0x43, 0xee, 0x83, 0x75, 0xeb, 0x71, 0x6c, 0x4c, 0x0c, 0x62, 0x63, + 0xbc, 0x8d, 0x24, 0x36, 0x96, 0x44, 0x04, 0x63, 0x25, 0xe6, 0xfd, 0x1f, 0x0c, 0xed, 0xe1, 0xb3, + 0x47, 0x97, 0x35, 0xfb, 0xec, 0x50, 0xb4, 0x3d, 0xd4, 0x6c, 0xa3, 0x00, 0x16, 0xe2, 0xf4, 0x48, + 0x10, 0x76, 0x60, 0x1a, 0x81, 0x88, 0x73, 0xea, 0x77, 0xc4, 0x59, 0xb0, 0x71, 0x5c, 0x9c, 0x05, + 0xc9, 0xb1, 0x71, 0x5e, 0x1b, 0x6a, 0x78, 0x9c, 0x5b, 0xa0, 0x1a, 0xb8, 0x07, 0x0e, 0xc4, 0x2c, + 0x42, 0x90, 0xd6, 0x4e, 0x2c, 0x69, 0xcb, 0xb3, 0x56, 0x73, 0x10, 0x1b, 0x79, 0x38, 0x89, 0x8d, + 0xf3, 0xc2, 0x57, 0x0e, 0x34, 0xff, 0x4b, 0x02, 0xc4, 0x60, 0x10, 0xb2, 0xbe, 0x0d, 0x02, 0xf7, + 0x60, 0x53, 0xc0, 0xfa, 0xc7, 0x60, 0x31, 0x82, 0x94, 0x74, 0x23, 0x0f, 0x3a, 0x98, 0xf8, 0xd0, + 0x89, 0x60, 0xdb, 0x81, 0xd8, 0x6d, 0x75, 0xa0, 0x5f, 0xfb, 0xcb, 0x92, 0xb6, 0x5c, 0xb6, 0xd6, + 0xd3, 0x2f, 0x1b, 0x2b, 0xca, 0xbe, 0x6c, 0xac, 0xc4, 0xb4, 0xcf, 0x28, 0xee, 0x16, 0xf1, 0xa1, + 0x0d, 0xdb, 0x9b, 0x82, 0xd0, 0x1f, 0x68, 0x45, 0xf7, 0x01, 0xc2, 0x8e, 0x0f, 0x43, 0x42, 0x11, + 0xab, 0x95, 0xe4, 0xbe, 0xcb, 0xd2, 0x4f, 0x2b, 0xbb, 0x21, 0xcb, 0xb6, 0x71, 0x8d, 0x20, 0x6c, + 0xdd, 0x50, 0xfb, 0x3e, 0xd6, 0xc6, 0xb8, 0xe8, 0x72, 0x12, 0x53, 0xec, 0xf9, 0x48, 0x88, 0x37, + 0x11, 0xde, 0x10, 0xac, 0xde, 0x03, 0xb3, 0x3d, 0xc2, 0xd2, 0x7c, 0x85, 0x30, 0x42, 0xc4, 0xaf, + 0x4d, 0x3f, 0xaf, 0x1a, 0xfe, 0x2f, 0xa3, 0x1a, 0x7d, 0x2f, 0x89, 0x8d, 0x05, 0x11, 0xc9, 0x08, + 0x9c, 0xcb, 0xfa, 0x8c, 0x20, 0xb6, 0x38, 0x7e, 0xd5, 0xbc, 0xff, 0xc0, 0xd0, 0x3e, 0x79, 0xf6, + 0xe8, 0xf2, 0xa2, 0x9a, 0x58, 0x07, 0xd9, 0xcc, 0x12, 0x2d, 0x6a, 0x7e, 0x5e, 0x06, 0x33, 0x76, + 0x2e, 0x6c, 0x1d, 0x83, 0x79, 0x0c, 0xd9, 0x3e, 0x89, 0xf6, 0x1c, 0xd7, 0xf7, 0x23, 0x48, 0xa9, + 0x6c, 0xdc, 0xcd, 0x41, 0x6c, 0x14, 0xa9, 0x24, 0x36, 0xce, 0x88, 0x88, 0x0a, 0x84, 0xf9, 0xed, + 0x57, 0x2b, 0x0b, 0x72, 0xd3, 0xd7, 0x05, 0x74, 0x9b, 0x45, 0x08, 0xb7, 0xed, 0x39, 0xa9, 0x94, + 0xa8, 0xee, 0x82, 0x52, 0xd8, 0x6d, 0xed, 0xc1, 0xbe, 0xec, 0xe5, 0x85, 0x23, 0xbb, 0xb2, 0x8e, + 0xfb, 0xd6, 0x95, 0x41, 0x6c, 0x48, 0x5d, 0x12, 0x1b, 0xb3, 0xc2, 0xa7, 0x58, 0x9b, 0xdf, 0x64, + 0xae, 0xbc, 0xa8, 0x1f, 0x32, 0xd2, 0xd8, 0xea, 0xb6, 0xde, 0x82, 0x7d, 0x5b, 0xbe, 0xa0, 0xbf, + 0x02, 0xa6, 0x69, 0x97, 0x86, 0x10, 0xfb, 0xbc, 0x0f, 0xcb, 0xd6, 0xdf, 0x07, 0xb1, 0xa1, 0xa0, + 0x24, 0x36, 0xe6, 0x84, 0x39, 0x09, 0x98, 0xb6, 0xa2, 0xf4, 0x77, 0x41, 0x89, 0x32, 0x97, 0x75, + 0x45, 0x9b, 0xcc, 0xad, 0x99, 0xaa, 0x8e, 0xd4, 0xc4, 0x53, 0xa5, 0x64, 0x11, 0xec, 0xdf, 0xe6, + 0x4a, 0xeb, 0x6f, 0x69, 0xa4, 0xe2, 0xad, 0x2c, 0x52, 0xb1, 0x36, 0x6d, 0x49, 0xe8, 0x0c, 0x94, + 0x18, 0xd9, 0x83, 0x98, 0xf2, 0xfe, 0xa8, 0x58, 0xef, 0xa7, 0xf9, 0xfe, 0x3e, 0x36, 0xfe, 0xdd, + 0x46, 0x6c, 0xb7, 0xdb, 0x6a, 0x78, 0x24, 0x90, 0xd3, 0x5a, 0xfe, 0x5b, 0xa1, 0xfe, 0x5e, 0x93, + 0xf5, 0x43, 0x48, 0x1b, 0xd7, 0x31, 0x4b, 0x5d, 0x88, 0xf7, 0x33, 0x17, 0x62, 0x9d, 0xee, 0x3b, + 0x90, 0x41, 0x5e, 0xc7, 0x4c, 0x54, 0x85, 0xd4, 0xea, 0x3b, 0x60, 0x96, 0xec, 0x63, 0x18, 0x0d, + 0x13, 0x5b, 0xe2, 0xce, 0xd3, 0xe6, 0x1c, 0x25, 0xb2, 0x42, 0x1b, 0x81, 0xc7, 0x27, 0x75, 0x86, + 0xeb, 0x54, 0x4a, 0x03, 0x50, 0xf5, 0x21, 0xf5, 0x22, 0x14, 0xa6, 0xc5, 0x2c, 0xab, 0x7d, 0xa9, + 0x71, 0xcc, 0x91, 0xd8, 0xd8, 0xc8, 0x74, 0xd6, 0x25, 0x59, 0xf4, 0xf9, 0x97, 0x93, 0xd8, 0xd0, + 0x45, 0x24, 0x39, 0xd0, 0xb4, 0xf3, 0x12, 0x7d, 0x1f, 0xcc, 0x7a, 0x11, 0x74, 0xb3, 0x61, 0x5b, + 0xe6, 0x0e, 0xcf, 0x1d, 0x29, 0xa4, 0x6d, 0x75, 0x7a, 0x66, 0xfd, 0x35, 0xf2, 0x62, 0xf6, 0xd9, + 0x23, 0xb0, 0x79, 0x2f, 0xeb, 0x2f, 0x45, 0xf0, 0x51, 0xfa, 0x1a, 0xa8, 0xf0, 0x49, 0x90, 0xe6, + 0xa5, 0x56, 0xe1, 0x83, 0xf4, 0xc2, 0x20, 0x36, 0x32, 0x30, 0x89, 0x8d, 0x93, 0xb2, 0x3d, 0x14, + 0x64, 0xda, 0xe5, 0xf4, 0x79, 0xbb, 0x1f, 0x42, 0xfd, 0x33, 0x0d, 0x9c, 0x84, 0x3b, 0x3b, 0xd0, + 0x63, 0xa8, 0x07, 0x1d, 0x59, 0x10, 0x80, 0xe7, 0x24, 0x7c, 0xe1, 0x82, 0x38, 0x62, 0x29, 0x89, + 0x8d, 0xb3, 0xc2, 0x79, 0x91, 0x39, 0xb6, 0x48, 0xe6, 0x87, 0xaa, 0x6d, 0x2e, 0xba, 0x7a, 0x22, + 0x9d, 0x1e, 0xe6, 0xd7, 0x25, 0x50, 0xbe, 0x09, 0x99, 0xfb, 0x72, 0x36, 0xbc, 0x9c, 0x0d, 0x2f, + 0x67, 0xc3, 0x6f, 0x9e, 0x0d, 0xb2, 0x7b, 0x7e, 0x9a, 0x02, 0xe7, 0x55, 0xf7, 0xd8, 0xfc, 0xd3, + 0xc4, 0x01, 0x7f, 0x97, 0x30, 0xb8, 0x45, 0x48, 0xe7, 0x4f, 0xef, 0xa8, 0x1b, 0x60, 0xc6, 0x0d, + 0xc3, 0x88, 0xf4, 0xa0, 0xd3, 0x41, 0x94, 0xd5, 0x26, 0x97, 0xa6, 0x96, 0x2b, 0xd6, 0xc5, 0x41, + 0x6c, 0x8c, 0xe0, 0x49, 0x6c, 0x9c, 0x16, 0x9e, 0xf2, 0xa8, 0x69, 0x57, 0xe5, 0xf2, 0x6d, 0x44, + 0x99, 0xfe, 0x06, 0xa8, 0x46, 0xf0, 0x43, 0xe8, 0x31, 0x61, 0x6a, 0x8a, 0x9b, 0xfa, 0x57, 0x9a, + 0xa4, 0x1c, 0x9c, 0x25, 0x29, 0x07, 0x9a, 0x36, 0x10, 0x2b, 0x6e, 0x87, 0x80, 0x2a, 0x3c, 0x08, + 0x51, 0x04, 0x45, 0x86, 0x4e, 0x3c, 0x37, 0x43, 0x6b, 0xaa, 0x18, 0x72, 0xaf, 0x65, 0x7e, 0x72, + 0x60, 0x2e, 0x3b, 0x40, 0xc0, 0x7c, 0x6e, 0xbf, 0x03, 0xe6, 0x10, 0x75, 0x7a, 0x84, 0x41, 0x27, + 0x74, 0x29, 0x1d, 0xfe, 0x4a, 0xfd, 0xcf, 0x20, 0x36, 0x0a, 0x4c, 0x12, 0x1b, 0x7f, 0x15, 0x66, + 0x47, 0x71, 0xd3, 0x9e, 0x41, 0x94, 0x67, 0x51, 0x2c, 0x7f, 0x99, 0x04, 0xd5, 0x5c, 0xbd, 0xa6, + 0x63, 0x25, 0x20, 0x18, 0xed, 0xc1, 0x48, 0xe6, 0x93, 0x8f, 0x15, 0x09, 0x65, 0x63, 0x45, 0x02, + 0xa6, 0xad, 0x28, 0x7d, 0x13, 0x94, 0x91, 0x0f, 0x31, 0x43, 0x4c, 0x0c, 0xbd, 0x8a, 0x75, 0x69, + 0x10, 0x1b, 0x43, 0x2c, 0x89, 0x8d, 0x45, 0x19, 0x8f, 0x44, 0xf2, 0xbf, 0xca, 0x87, 0x32, 0x7d, + 0x1d, 0x4c, 0xef, 0xc3, 0x16, 0x45, 0x4c, 0x5c, 0x3d, 0x44, 0x8a, 0x15, 0x94, 0xc4, 0x46, 0x4d, + 0x18, 0x91, 0x40, 0xde, 0x86, 0x12, 0xe9, 0x3e, 0x38, 0x49, 0xa1, 0xd7, 0x8d, 0x10, 0xeb, 0x3b, + 0x1e, 0xc1, 0xcc, 0xf5, 0x18, 0xcf, 0x4d, 0xc5, 0x7a, 0x35, 0x3d, 0x6e, 0x8a, 0x5c, 0x12, 0x1b, + 0x17, 0xe4, 0x40, 0x2b, 0x30, 0x79, 0xeb, 0xf3, 0x8a, 0xbc, 0x26, 0xb8, 0x34, 0x50, 0x1f, 0x32, + 0x17, 0x75, 0xd4, 0xb8, 0xe3, 0x81, 0x4a, 0x28, 0x0b, 0x54, 0x02, 0x23, 0x81, 0x4a, 0x4c, 0xb6, + 0xda, 0x83, 0x49, 0x30, 0x7b, 0x47, 0xdd, 0x79, 0xf8, 0x69, 0xd5, 0x02, 0x33, 0xf9, 0x3e, 0x91, + 0x89, 0x78, 0x3d, 0xad, 0xf5, 0x3c, 0x9e, 0xd5, 0x7a, 0x1e, 0x1d, 0xdf, 0x52, 0xd5, 0x5c, 0x4b, + 0xe9, 0xd7, 0xc1, 0x0c, 0xa2, 0x4e, 0x00, 0x99, 0xcb, 0x2f, 0x05, 0x3c, 0x65, 0x65, 0xd1, 0x4f, + 0x79, 0x3c, 0xf3, 0x91, 0x47, 0x4d, 0x1b, 0x20, 0x3a, 0x3c, 0x5c, 0x3f, 0x00, 0xd3, 0xea, 0x52, + 0x96, 0xb6, 0x52, 0x75, 0xed, 0xe2, 0xb1, 0x53, 0x71, 0xe4, 0x1b, 0xd3, 0x2b, 0x58, 0x5f, 0xd4, + 0x56, 0x76, 0x73, 0x93, 0xb5, 0xa5, 0x6e, 0x6d, 0xb6, 0xa2, 0xcc, 0x9f, 0xa7, 0x80, 0x7e, 0xf4, + 0x75, 0xfd, 0x2e, 0x98, 0x1f, 0xce, 0xb4, 0x5d, 0x88, 0xda, 0xbb, 0x8c, 0x6f, 0xd5, 0x94, 0xb5, + 0x92, 0xce, 0xa0, 0x02, 0x95, 0xcd, 0xa0, 0x02, 0x61, 0xda, 0x73, 0x0a, 0x79, 0x93, 0x03, 0xfa, + 0x47, 0x60, 0xbe, 0x78, 0x0d, 0x9e, 0xfc, 0xc3, 0xa6, 0xef, 0x9c, 0x37, 0x7a, 0xcd, 0xfd, 0x54, + 0x03, 0xf3, 0x08, 0x23, 0x86, 0xdc, 0x8e, 0xd3, 0x72, 0x3b, 0x2e, 0xf6, 0x54, 0x27, 0xc0, 0x17, + 0x3a, 0x4b, 0x8b, 0x46, 0xb2, 0xef, 0x2f, 0x10, 0x85, 0xd3, 0xd5, 0x9e, 0x93, 0xbc, 0x25, 0x68, + 0x9d, 0x80, 0x69, 0x15, 0x87, 0xe8, 0xa2, 0x3b, 0x2f, 0x14, 0xc7, 0x74, 0xe6, 0x5f, 0xe6, 0x77, + 0x8c, 0x5f, 0x25, 0xb4, 0xec, 0x87, 0x87, 0x75, 0xed, 0xf1, 0x61, 0x5d, 0x7b, 0x72, 0x58, 0xd7, + 0x7e, 0x3c, 0xac, 0x6b, 0xf7, 0x9e, 0xd6, 0x27, 0x9e, 0x3c, 0xad, 0x4f, 0x7c, 0xf7, 0xb4, 0x3e, + 0xf1, 0xde, 0xff, 0x72, 0x9e, 0x65, 0x99, 0x61, 0xc8, 0xd4, 0xe3, 0x8a, 0xb7, 0xeb, 0x22, 0x9c, + 0xbf, 0x2e, 0xf2, 0x58, 0x5a, 0x25, 0x9e, 0xb1, 0x2b, 0xbf, 0x06, 0x00, 0x00, 0xff, 0xff, 0x80, + 0x76, 0x04, 0x8a, 0x03, 0x13, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/sds/genesis.go b/x/sds/keeper/genesis.go similarity index 50% rename from x/sds/genesis.go rename to x/sds/keeper/genesis.go index 0ce480dd..c2febf60 100644 --- a/x/sds/genesis.go +++ b/x/sds/keeper/genesis.go @@ -1,19 +1,18 @@ -package sds +package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/stratosnet/stratos-chain/x/sds/keeper" "github.com/stratosnet/stratos-chain/x/sds/types" ) // InitGenesis initialize default parameters // and the keeper's address to pubkey map -func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState) { - keeper.SetParams(ctx, *data.Params) +func (k Keeper) InitGenesis(ctx sdk.Context, data *types.GenesisState) { + k.SetParams(ctx, data.Params) for _, file := range data.GetFiles() { - keeper.SetFileInfo(ctx, []byte(file.FileHash), file.GetFileInfo()) + k.SetFileInfo(ctx, []byte(file.FileHash), file.GetFileInfo()) } return } @@ -21,14 +20,14 @@ func InitGenesis(ctx sdk.Context, keeper keeper.Keeper, data *types.GenesisState // ExportGenesis writes the current store values // to a genesis file, which can be imported again // with InitGenesis -func ExportGenesis(ctx sdk.Context, keeper keeper.Keeper) (data types.GenesisState) { - params := keeper.GetParams(ctx) +func (k Keeper) ExportGenesis(ctx sdk.Context) (data *types.GenesisState) { + params := k.GetParams(ctx) var files []types.GenesisFileInfo - keeper.IterateFileInfo(ctx, func(fileHash string, fileInfo types.FileInfo) (stop bool) { + k.IterateFileInfo(ctx, func(fileHash string, fileInfo types.FileInfo) (stop bool) { files = append(files, types.GenesisFileInfo{FileHash: fileHash, FileInfo: fileInfo}) return false }) - return types.NewGenesisState(¶ms, files) + return types.NewGenesisState(params, files) } diff --git a/x/sds/keeper/keeper.go b/x/sds/keeper/keeper.go index 0c1f9f23..5def5fc7 100644 --- a/x/sds/keeper/keeper.go +++ b/x/sds/keeper/keeper.go @@ -11,8 +11,6 @@ import ( storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - stratos "github.com/stratosnet/stratos-chain/types" registertypes "github.com/stratosnet/stratos-chain/x/register/types" "github.com/stratosnet/stratos-chain/x/sds/types" @@ -21,9 +19,8 @@ import ( // Keeper encodes/decodes files using the go-amino (binary) // encoding/decoding library. type Keeper struct { - key storetypes.StoreKey + storeKey storetypes.StoreKey cdc codec.Codec - paramSpace paramtypes.Subspace bankKeeper types.BankKeeper registerKeeper types.RegisterKeeper potKeeper types.PotKeeper @@ -38,14 +35,14 @@ type Keeper struct { // nolint func NewKeeper( cdc codec.Codec, - key storetypes.StoreKey, + storeKey storetypes.StoreKey, bankKeeper types.BankKeeper, registerKeeper types.RegisterKeeper, potKeeper types.PotKeeper, authority string, ) Keeper { return Keeper{ - key: key, + storeKey: storeKey, cdc: cdc, bankKeeper: bankKeeper, registerKeeper: registerKeeper, diff --git a/x/sds/keeper/params.go b/x/sds/keeper/params.go index a5a7cbdb..81a7d6af 100644 --- a/x/sds/keeper/params.go +++ b/x/sds/keeper/params.go @@ -5,19 +5,27 @@ import ( "github.com/stratosnet/stratos-chain/x/sds/types" ) -// GetParams returns the total set of sds parameters. -func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) { - k.paramSpace.GetParamSet(ctx, ¶ms) - return params +// SetParams sets the params on the store +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { + store := ctx.KVStore(k.storeKey) + bz := k.cdc.MustMarshal(¶ms) + store.Set(types.ParamsKey, bz) } -// SetParams sets the sds parameters to the param space. -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { - k.paramSpace.SetParamSet(ctx, ¶ms) +// GetParams returns the params from the store +func (k Keeper) GetParams(ctx sdk.Context) (p types.Params) { + store := ctx.KVStore(k.storeKey) + bz := store.Get(types.ParamsKey) + if bz == nil { + return p + } + k.cdc.MustUnmarshal(bz, &p) + return p } // BondDenom - Bondable coin denomination func (k Keeper) BondDenom(ctx sdk.Context) (res string) { - k.paramSpace.Get(ctx, types.KeyBondDenom, &res) + params := k.GetParams(ctx) + res = params.GetBondDenom() return } diff --git a/x/sds/keeper/store.go b/x/sds/keeper/store.go index 16b4a9d2..35df21dc 100644 --- a/x/sds/keeper/store.go +++ b/x/sds/keeper/store.go @@ -8,8 +8,8 @@ import ( // GetFileInfoByFileHash Returns the fileInfo func (k Keeper) GetFileInfoByFileHash(ctx sdk.Context, fileHash []byte) (fileInfo types.FileInfo, found bool) { - store := ctx.KVStore(k.key) - bz := store.Get(types.FileStoreKey(fileHash)) + store := ctx.KVStore(k.storeKey) + bz := store.Get(types.GetFileStoreKey(fileHash)) if bz == nil { return fileInfo, false } @@ -18,8 +18,8 @@ func (k Keeper) GetFileInfoByFileHash(ctx sdk.Context, fileHash []byte) (fileInf } func (k Keeper) SetFileInfo(ctx sdk.Context, fileHash []byte, fileInfo types.FileInfo) { - store := ctx.KVStore(k.key) - storeKey := types.FileStoreKey(fileHash) + store := ctx.KVStore(k.storeKey) + storeKey := types.GetFileStoreKey(fileHash) bz := k.cdc.MustMarshalLengthPrefixed(&fileInfo) store.Set(storeKey, bz) } @@ -27,7 +27,7 @@ func (k Keeper) SetFileInfo(ctx sdk.Context, fileHash []byte, fileInfo types.Fil // IterateFileInfo Iterate over all uploaded files. // Iteration for all uploaded files func (k Keeper) IterateFileInfo(ctx sdk.Context, handler func(string, types.FileInfo) (stop bool)) { - store := ctx.KVStore(k.key) + store := ctx.KVStore(k.storeKey) iter := sdk.KVStorePrefixIterator(store, types.FileStoreKeyPrefix) defer iter.Close() for ; iter.Valid(); iter.Next() { diff --git a/x/sds/module.go b/x/sds/module.go index 41792bbd..49d337ce 100644 --- a/x/sds/module.go +++ b/x/sds/module.go @@ -143,15 +143,15 @@ func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {} func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, data json.RawMessage) []abci.ValidatorUpdate { var genesisState types.GenesisState cdc.MustUnmarshalJSON(data, &genesisState) - InitGenesis(ctx, am.keeper, &genesisState) + am.keeper.InitGenesis(ctx, &genesisState) return []abci.ValidatorUpdate{} } // ExportGenesis returns the exported genesis state as raw bytes for the sds // module. func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.RawMessage { - gs := ExportGenesis(ctx, am.keeper) - return cdc.MustMarshalJSON(&gs) + gs := am.keeper.ExportGenesis(ctx) + return cdc.MustMarshalJSON(gs) } // BeginBlock returns the beginBlocker for the sds module. diff --git a/x/sds/types/genesis.go b/x/sds/types/genesis.go index 1a749382..aa198393 100644 --- a/x/sds/types/genesis.go +++ b/x/sds/types/genesis.go @@ -8,8 +8,8 @@ import ( ) // NewGenesisState creates a new GenesisState object -func NewGenesisState(params *Params, files []GenesisFileInfo) GenesisState { - return GenesisState{ +func NewGenesisState(params Params, files []GenesisFileInfo) *GenesisState { + return &GenesisState{ Params: params, Files: files, } @@ -35,7 +35,7 @@ func GetGenesisStateFromAppState(cdc codec.JSONCodec, appState map[string]json.R // ValidateGenesis validates the sds genesis parameters func ValidateGenesis(data GenesisState) error { - if err := data.Params.ValidateBasic(); err != nil { + if err := data.Params.Validate(); err != nil { return err } diff --git a/x/sds/types/genesis.pb.go b/x/sds/types/genesis.pb.go index 71004345..0bba260e 100644 --- a/x/sds/types/genesis.pb.go +++ b/x/sds/types/genesis.pb.go @@ -5,6 +5,7 @@ package types import ( fmt "fmt" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -25,7 +26,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the register module's genesis state. type GenesisState struct { - Params *Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params" yaml:"params"` + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params" yaml:"params"` Files []GenesisFileInfo `protobuf:"bytes,2,rep,name=files,proto3" json:"files" yaml:"files"` } @@ -62,11 +63,11 @@ func (m *GenesisState) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisState proto.InternalMessageInfo -func (m *GenesisState) GetParams() *Params { +func (m *GenesisState) GetParams() Params { if m != nil { return m.Params } - return nil + return Params{} } func (m *GenesisState) GetFiles() []GenesisFileInfo { @@ -136,29 +137,30 @@ func init() { func init() { proto.RegisterFile("stratos/sds/v1/genesis.proto", fileDescriptor_a3396301dd7676d6) } var fileDescriptor_a3396301dd7676d6 = []byte{ - // 348 bytes of a gzipped FileDescriptorProto + // 363 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x29, 0x2e, 0x29, 0x4a, 0x2c, 0xc9, 0x2f, 0xd6, 0x2f, 0x4e, 0x29, 0xd6, 0x2f, 0x33, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x83, 0xca, 0xea, 0x15, 0xa7, 0x14, 0xeb, 0x95, 0x19, 0x4a, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0xa5, 0xf4, 0x41, 0x2c, 0x88, 0x2a, - 0x29, 0x09, 0x34, 0x33, 0x40, 0x8a, 0xc1, 0x32, 0x4a, 0x1b, 0x19, 0xb9, 0x78, 0xdc, 0x21, 0x26, - 0x06, 0x97, 0x24, 0x96, 0xa4, 0x0a, 0x79, 0x73, 0xb1, 0x15, 0x24, 0x16, 0x25, 0xe6, 0x16, 0x4b, - 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x89, 0xe9, 0xa1, 0xda, 0xa0, 0x17, 0x00, 0x96, 0x75, 0x92, - 0x7e, 0x75, 0x4f, 0x1e, 0xaa, 0xf2, 0xd3, 0x3d, 0x79, 0xde, 0xca, 0xc4, 0xdc, 0x1c, 0x2b, 0x25, - 0x08, 0x5f, 0x29, 0x08, 0x2a, 0x21, 0x14, 0xc2, 0xc5, 0x9a, 0x96, 0x99, 0x93, 0x5a, 0x2c, 0xc1, - 0xa4, 0xc0, 0xac, 0xc1, 0x6d, 0x24, 0x8f, 0x6e, 0x16, 0xd4, 0x66, 0xb7, 0xcc, 0x9c, 0x54, 0xcf, - 0xbc, 0xb4, 0x7c, 0x27, 0xd9, 0x13, 0xf7, 0xe4, 0x19, 0x5e, 0xdd, 0x93, 0x87, 0xe8, 0xfa, 0x74, - 0x4f, 0x9e, 0x07, 0x62, 0x2e, 0x98, 0xab, 0x14, 0x04, 0x11, 0x56, 0x5a, 0xcf, 0xc8, 0xc5, 0x8f, - 0xa6, 0x53, 0xc8, 0x8e, 0x8b, 0x13, 0x24, 0x19, 0x9f, 0x91, 0x58, 0x9c, 0x01, 0x76, 0x39, 0xa7, - 0x93, 0xe2, 0xab, 0x7b, 0xf2, 0x08, 0xc1, 0x4f, 0xf7, 0xe4, 0x05, 0x10, 0x86, 0x81, 0x85, 0x94, - 0x82, 0x38, 0x40, 0x6c, 0x8f, 0xc4, 0xe2, 0x0c, 0xa1, 0x18, 0xa8, 0xfe, 0xcc, 0xbc, 0xb4, 0x7c, - 0x09, 0x26, 0xb0, 0xcf, 0x25, 0xd0, 0x5d, 0x0b, 0x77, 0xa6, 0x2a, 0xd4, 0x99, 0x08, 0x2d, 0x68, - 0xa6, 0x83, 0x84, 0xa0, 0xa6, 0x83, 0x35, 0xf8, 0xae, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, - 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, - 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0xfa, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, - 0xf9, 0xb9, 0xfa, 0x50, 0x2b, 0xf3, 0x52, 0x4b, 0x60, 0x4c, 0xdd, 0xe4, 0x8c, 0xc4, 0xcc, 0x3c, - 0xfd, 0x0a, 0x70, 0xdc, 0x95, 0x54, 0x16, 0xa4, 0x16, 0x27, 0xb1, 0x81, 0xe3, 0xce, 0x18, 0x10, - 0x00, 0x00, 0xff, 0xff, 0x9a, 0x3b, 0xca, 0x5d, 0x1b, 0x02, 0x00, 0x00, + 0x29, 0xc1, 0xc4, 0xdc, 0xcc, 0xbc, 0x7c, 0x7d, 0x30, 0x09, 0x15, 0x92, 0x40, 0x33, 0x16, 0xa4, + 0x1f, 0x2c, 0xa3, 0xb4, 0x9f, 0x91, 0x8b, 0xc7, 0x1d, 0x62, 0x49, 0x70, 0x49, 0x62, 0x49, 0xaa, + 0x50, 0x08, 0x17, 0x5b, 0x41, 0x62, 0x51, 0x62, 0x6e, 0xb1, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0xb7, + 0x91, 0x98, 0x1e, 0xaa, 0xa5, 0x7a, 0x01, 0x60, 0x59, 0x27, 0x95, 0x13, 0xf7, 0xe4, 0x19, 0x5e, + 0xdd, 0x93, 0x87, 0xaa, 0xfe, 0x74, 0x4f, 0x9e, 0xb7, 0x32, 0x31, 0x37, 0xc7, 0x4a, 0x09, 0xc2, + 0x57, 0x5a, 0xf1, 0x7c, 0x83, 0x16, 0x63, 0x10, 0x54, 0x56, 0x28, 0x92, 0x8b, 0x35, 0x2d, 0x33, + 0x27, 0xb5, 0x58, 0x82, 0x49, 0x81, 0x59, 0x83, 0xdb, 0x48, 0x1e, 0xdd, 0x50, 0xa8, 0x13, 0xdc, + 0x32, 0x73, 0x52, 0x3d, 0xf3, 0xd2, 0xf2, 0x9d, 0x94, 0xa0, 0xa6, 0x43, 0x74, 0x7d, 0xba, 0x27, + 0xcf, 0x03, 0x31, 0x1c, 0xcc, 0x85, 0x9a, 0x0d, 0x91, 0x53, 0x5a, 0xcf, 0xc8, 0xc5, 0x8f, 0xa6, + 0x5d, 0xc8, 0x8e, 0x8b, 0x13, 0x24, 0x19, 0x9f, 0x91, 0x58, 0x9c, 0x01, 0xf6, 0x07, 0xa7, 0x93, + 0xe2, 0xab, 0x7b, 0xf2, 0x08, 0xc1, 0x4f, 0xf7, 0xe4, 0x05, 0x10, 0x26, 0x82, 0x85, 0x94, 0x82, + 0x38, 0x40, 0x6c, 0x8f, 0xc4, 0xe2, 0x0c, 0xa1, 0x18, 0xa8, 0xfe, 0xcc, 0xbc, 0xb4, 0x7c, 0x09, + 0x26, 0x70, 0x38, 0x48, 0xa0, 0x3b, 0x19, 0xee, 0x56, 0x55, 0xa8, 0x5b, 0x11, 0x5a, 0xd0, 0x4c, + 0x07, 0x09, 0x41, 0x4d, 0x07, 0x6b, 0xf0, 0x5d, 0xf1, 0x48, 0x8e, 0xf1, 0xc4, 0x23, 0x39, 0xc6, + 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39, + 0x86, 0x1b, 0x8f, 0xe5, 0x18, 0xa2, 0xf4, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, + 0x73, 0xf5, 0xa1, 0x56, 0xe6, 0xa5, 0x96, 0xc0, 0x98, 0xba, 0xc9, 0x19, 0x89, 0x99, 0x79, 0xfa, + 0x15, 0xe0, 0x98, 0x2c, 0xa9, 0x2c, 0x48, 0x2d, 0x4e, 0x62, 0x03, 0xc7, 0xa4, 0x31, 0x20, 0x00, + 0x00, 0xff, 0xff, 0x8e, 0xac, 0xcf, 0x21, 0x3c, 0x02, 0x00, 0x00, } func (this *GenesisState) Equal(that interface{}) bool { @@ -180,7 +182,7 @@ func (this *GenesisState) Equal(that interface{}) bool { } else if this == nil { return false } - if !this.Params.Equal(that1.Params) { + if !this.Params.Equal(&that1.Params) { return false } if len(this.Files) != len(that1.Files) { @@ -254,18 +256,16 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } } - if m.Params != nil { - { - size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintGenesis(dAtA, i, uint64(size)) + { + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err } - i-- - dAtA[i] = 0xa + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0xa return len(dAtA) - i, nil } @@ -326,10 +326,8 @@ func (m *GenesisState) Size() (n int) { } var l int _ = l - if m.Params != nil { - l = m.Params.Size() - n += 1 + l + sovGenesis(uint64(l)) - } + l = m.Params.Size() + n += 1 + l + sovGenesis(uint64(l)) if len(m.Files) > 0 { for _, e := range m.Files { l = e.Size() @@ -418,9 +416,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Params == nil { - m.Params = &Params{} - } if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/x/sds/types/key.go b/x/sds/types/key.go index 72003e6c..ded7b037 100644 --- a/x/sds/types/key.go +++ b/x/sds/types/key.go @@ -9,16 +9,15 @@ const ( // RouterKey to be used for routing msgs RouterKey = ModuleName - - // QuerierRoute to be used for querier msgs - QuerierRoute = ModuleName ) var ( FileStoreKeyPrefix = []byte{0x01} // FileStorage prefix for sds store + + ParamsKey = []byte{0x20} ) -// FileStoreKey turn an address to key used to get it from the account store -func FileStoreKey(sender []byte) []byte { +// GetFileStoreKey turn an address to key used to get it from the account store +func GetFileStoreKey(sender []byte) []byte { return append(FileStoreKeyPrefix, sender...) } diff --git a/x/sds/types/params.go b/x/sds/types/params.go index e1054f46..897cb26b 100644 --- a/x/sds/types/params.go +++ b/x/sds/types/params.go @@ -6,7 +6,6 @@ import ( "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" stratos "github.com/stratosnet/stratos-chain/types" ) @@ -14,15 +13,6 @@ const ( DefaultBondDenom = stratos.Wei ) -var ( - KeyBondDenom = []byte("BondDenom") -) - -// ParamKeyTable for sds module -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - // NewParams creates a new Params object func NewParams(bondDenom string) Params { return Params{ @@ -31,16 +21,16 @@ func NewParams(bondDenom string) Params { } // DefaultParams defines the parameters for this module -func DefaultParams() *Params { +func DefaultParams() Params { p := NewParams(DefaultBondDenom) - return &p + return p } -// ParamSetPairs - Implements params.ParamSet -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyBondDenom, &p.BondDenom, validateBondDenom), +func (p Params) Validate() error { + if err := validateBondDenom(p.BondDenom); err != nil { + return errors.Wrap(ErrInvalidDenom, "failed to validate bond denomination") } + return nil } func validateBondDenom(i interface{}) error { @@ -58,10 +48,3 @@ func validateBondDenom(i interface{}) error { return nil } - -func (p Params) ValidateBasic() error { - if err := validateBondDenom(p.BondDenom); err != nil { - return errors.Wrap(ErrInvalidDenom, "failed to validate bond denomination") - } - return nil -} diff --git a/x/sds/types/params_legacy.go b/x/sds/types/params_legacy.go new file mode 100644 index 00000000..7994f779 --- /dev/null +++ b/x/sds/types/params_legacy.go @@ -0,0 +1,23 @@ +package types + +import ( + paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +var ( + KeyBondDenom = []byte("BondDenom") +) + +// ParamKeyTable for sds module +// Deprecated: now params can be accessed on key `0x20` on the sds store. +func ParamKeyTable() paramtypes.KeyTable { + return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) +} + +// ParamSetPairs - Implements params.ParamSet +// Deprecated. +func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { + return paramtypes.ParamSetPairs{ + paramtypes.NewParamSetPair(KeyBondDenom, &p.BondDenom, validateBondDenom), + } +} diff --git a/x/sds/types/sds.pb.go b/x/sds/types/sds.pb.go index 759ce8ef..58e608a3 100644 --- a/x/sds/types/sds.pb.go +++ b/x/sds/types/sds.pb.go @@ -8,6 +8,7 @@ import ( fmt "fmt" _ "github.com/cosmos/cosmos-proto" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" io "io" @@ -26,7 +27,7 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -// Params defines the Register module parameters +// Params defines the parameters for the sds module. type Params struct { BondDenom string `protobuf:"bytes,1,opt,name=bond_denom,json=bondDenom,proto3" json:"bond_denom" yaml:"bond_denom"` } @@ -132,30 +133,33 @@ func init() { func init() { proto.RegisterFile("stratos/sds/v1/sds.proto", fileDescriptor_a89f3959b8649eb2) } var fileDescriptor_a89f3959b8649eb2 = []byte{ - // 361 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x91, 0x4d, 0x4b, 0xf3, 0x40, - 0x10, 0xc7, 0xb3, 0xcf, 0x03, 0xa5, 0x5d, 0x9e, 0xc7, 0x97, 0xe0, 0x21, 0xf6, 0x90, 0xad, 0x11, - 0xa4, 0x97, 0x26, 0x14, 0x6f, 0x7a, 0x10, 0x82, 0x08, 0x05, 0x05, 0xc9, 0x45, 0xf0, 0x52, 0xd2, - 0x66, 0x4d, 0x82, 0x4d, 0x36, 0xec, 0x6e, 0x8b, 0xfd, 0x16, 0x7e, 0x0c, 0x3f, 0x80, 0x1f, 0xa2, - 0xc7, 0xe2, 0x49, 0x3c, 0x2c, 0x92, 0xde, 0x72, 0xcc, 0xcd, 0x9b, 0x24, 0xbb, 0x7d, 0x39, 0xcd, - 0xcc, 0xef, 0x3f, 0x33, 0x3b, 0xb3, 0x03, 0x0d, 0xc6, 0xa9, 0xcf, 0x09, 0x73, 0x58, 0xc0, 0x9c, - 0x59, 0xbf, 0x32, 0x76, 0x46, 0x09, 0x27, 0xfa, 0x9e, 0x52, 0xec, 0x0a, 0xcd, 0xfa, 0xed, 0xa3, - 0x90, 0x84, 0xa4, 0x96, 0x9c, 0xca, 0x93, 0x59, 0xed, 0xe3, 0x31, 0x61, 0x09, 0x61, 0x43, 0x29, - 0xc8, 0x40, 0x4a, 0xd6, 0x2d, 0x6c, 0xdc, 0xfb, 0xd4, 0x4f, 0x98, 0xee, 0x42, 0x38, 0x22, 0x69, - 0x30, 0x0c, 0x70, 0x4a, 0x12, 0x03, 0x74, 0x40, 0xb7, 0xe5, 0x9e, 0x16, 0x02, 0xed, 0xd0, 0x52, - 0xa0, 0xc3, 0xb9, 0x9f, 0x4c, 0x2e, 0xac, 0x2d, 0xb3, 0xbc, 0x56, 0x15, 0x5c, 0xd7, 0xfe, 0x0f, - 0x80, 0xcd, 0x9b, 0x78, 0x82, 0x07, 0xe9, 0x13, 0xd1, 0x09, 0x6c, 0x44, 0x38, 0x0e, 0x23, 0xae, - 0x9a, 0x3d, 0x2c, 0x04, 0xd2, 0xbe, 0x04, 0x3a, 0x0b, 0x63, 0x1e, 0x4d, 0x47, 0xf6, 0x98, 0x24, - 0x6a, 0x16, 0x65, 0x7a, 0x2c, 0x78, 0x76, 0xf8, 0x3c, 0xc3, 0xcc, 0x1e, 0xa4, 0xbc, 0x10, 0x48, - 0xd5, 0x97, 0x02, 0xfd, 0x97, 0xcf, 0xca, 0xd8, 0xfa, 0x78, 0xef, 0x41, 0xb5, 0xc5, 0x20, 0xe5, - 0x9e, 0x4a, 0xd3, 0xaf, 0x60, 0x8b, 0xe2, 0x8c, 0x50, 0x8e, 0x29, 0x33, 0xfe, 0x74, 0x40, 0xf7, - 0x9f, 0x7b, 0x52, 0x08, 0xb4, 0x85, 0xa5, 0x40, 0x07, 0xb2, 0xd1, 0x06, 0x59, 0xde, 0x56, 0xd6, - 0x2f, 0x61, 0x73, 0x9a, 0x4d, 0x88, 0x1f, 0x60, 0x6a, 0xfc, 0xad, 0x67, 0x46, 0x85, 0x40, 0x1b, - 0x56, 0x0a, 0xb4, 0x2f, 0xcb, 0xd7, 0xc4, 0xf2, 0x36, 0xa2, 0x7b, 0xf7, 0x96, 0x9b, 0x60, 0x91, - 0x9b, 0x60, 0x99, 0x9b, 0xe0, 0x3b, 0x37, 0xc1, 0xeb, 0xca, 0xd4, 0x96, 0x2b, 0x53, 0xfb, 0x5c, - 0x99, 0xda, 0xa3, 0xb3, 0xb3, 0xb4, 0xba, 0x59, 0x8a, 0xf9, 0xda, 0xed, 0x8d, 0x23, 0x3f, 0x4e, - 0x9d, 0x97, 0xfa, 0xc0, 0xf5, 0x0f, 0x8c, 0x1a, 0xf5, 0x7d, 0xce, 0x7f, 0x03, 0x00, 0x00, 0xff, - 0xff, 0x1d, 0xf7, 0x87, 0xea, 0xfc, 0x01, 0x00, 0x00, + // 406 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x91, 0x3f, 0xeb, 0xd3, 0x40, + 0x18, 0xc7, 0x73, 0x3f, 0xa1, 0xb4, 0x87, 0xff, 0x1a, 0x3a, 0xc4, 0x82, 0xb9, 0x1a, 0x41, 0x8a, + 0xd0, 0x84, 0xe2, 0x20, 0x74, 0x11, 0x83, 0x08, 0x1d, 0x04, 0x49, 0x07, 0xc1, 0xa5, 0xa4, 0xcd, + 0x99, 0x84, 0x36, 0x77, 0xe1, 0xee, 0x5a, 0xec, 0x5b, 0x70, 0xd2, 0xcd, 0xd1, 0xd1, 0xd1, 0xc1, + 0x17, 0xd1, 0xb1, 0x38, 0x89, 0xc3, 0x21, 0xe9, 0x20, 0x64, 0xcc, 0x2b, 0x90, 0xe4, 0xae, 0x7f, + 0x96, 0xdc, 0xf3, 0x7c, 0xbe, 0xf7, 0xe4, 0xf9, 0x3e, 0xcf, 0x41, 0x8b, 0x0b, 0x16, 0x0a, 0xca, + 0x3d, 0x1e, 0x71, 0x6f, 0x3b, 0xae, 0x0f, 0x37, 0x67, 0x54, 0x50, 0xf3, 0xae, 0x56, 0xdc, 0x1a, + 0x6d, 0xc7, 0xfd, 0x5e, 0x4c, 0x63, 0xda, 0x48, 0x5e, 0x1d, 0xa9, 0x5b, 0xfd, 0x07, 0x4b, 0xca, + 0x33, 0xca, 0xe7, 0x4a, 0x50, 0x89, 0x96, 0xba, 0x61, 0x96, 0x12, 0xea, 0x35, 0x5f, 0x85, 0x9c, + 0x15, 0x6c, 0xbd, 0x0d, 0x59, 0x98, 0x71, 0xd3, 0x87, 0x70, 0x41, 0x49, 0x34, 0x8f, 0x30, 0xa1, + 0x99, 0x05, 0x06, 0x60, 0xd8, 0xf1, 0x1f, 0x97, 0x12, 0x5d, 0xd1, 0x4a, 0xa2, 0xee, 0x2e, 0xcc, + 0xd6, 0x13, 0xe7, 0xc2, 0x9c, 0xa0, 0x53, 0x27, 0xaf, 0xea, 0x78, 0xf2, 0xf0, 0xeb, 0x37, 0x04, + 0x3e, 0xfd, 0xfb, 0xf1, 0xb4, 0x77, 0x1a, 0xe2, 0x63, 0x33, 0x86, 0x6a, 0xe1, 0x7c, 0xb9, 0x81, + 0xed, 0xd7, 0xe9, 0x1a, 0x4f, 0xc9, 0x07, 0x6a, 0x52, 0xd8, 0x4a, 0x70, 0x1a, 0x27, 0x42, 0xf7, + 0x7a, 0xb7, 0x97, 0xc8, 0xf8, 0x23, 0xd1, 0x93, 0x38, 0x15, 0xc9, 0x66, 0xe1, 0x2e, 0x69, 0xa6, + 0xdd, 0xeb, 0x63, 0xc4, 0xa3, 0x95, 0x27, 0x76, 0x39, 0xe6, 0xee, 0x94, 0x88, 0x52, 0x22, 0x5d, + 0x5f, 0x49, 0x74, 0x47, 0xb9, 0x52, 0xb9, 0xf3, 0xeb, 0xe7, 0x08, 0xea, 0xb9, 0xa7, 0x44, 0x04, + 0xfa, 0x9a, 0xf9, 0x02, 0x76, 0x18, 0xce, 0x29, 0x13, 0x98, 0x71, 0xeb, 0x66, 0x00, 0x86, 0xb7, + 0xfd, 0x47, 0xa5, 0x44, 0x17, 0x58, 0x49, 0x74, 0x5f, 0xfd, 0xe8, 0x8c, 0x9c, 0xe0, 0x22, 0x9b, + 0x33, 0xd8, 0xde, 0xe4, 0x6b, 0x1a, 0x46, 0x98, 0x59, 0xb7, 0x1a, 0xcf, 0xcf, 0x4b, 0x89, 0xce, + 0xac, 0x92, 0xe8, 0x9e, 0x2a, 0x3f, 0x91, 0xda, 0x49, 0x4f, 0x3b, 0x79, 0x19, 0x45, 0x0c, 0x73, + 0x3e, 0x13, 0x2c, 0x25, 0x71, 0x70, 0x2e, 0xf2, 0xdf, 0x7c, 0x2f, 0x6c, 0xb0, 0x2f, 0x6c, 0x70, + 0x28, 0x6c, 0xf0, 0xb7, 0xb0, 0xc1, 0xe7, 0xa3, 0x6d, 0x1c, 0x8e, 0xb6, 0xf1, 0xfb, 0x68, 0x1b, + 0xef, 0xbd, 0xab, 0x65, 0xe8, 0x95, 0x12, 0x2c, 0x4e, 0xe1, 0x68, 0x99, 0x84, 0x29, 0xd1, 0x3b, + 0x6e, 0x36, 0xb3, 0x68, 0x35, 0xcf, 0xfa, 0xec, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x87, + 0x09, 0x64, 0x46, 0x02, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { From cd6e0ee3b92730830c999433b173a1fc19fed0d9 Mon Sep 17 00:00:00 2001 From: Xiong Date: Wed, 25 Oct 2023 17:36:54 -0400 Subject: [PATCH 03/15] use EmitTypedEvent() --- app/ante/eth.go | 9 +- proto/stratos/evm/v1/event.proto | 64 + proto/stratos/evm/v1/tx.proto | 3 + proto/stratos/pot/v1/event.proto | 60 + proto/stratos/pot/v1/tx.proto | 68 +- proto/stratos/register/v1/event.proto | 231 ++ proto/stratos/register/v1/tx.proto | 74 +- proto/stratos/sds/v1/event.proto | 41 + proto/stratos/sds/v1/tx.proto | 22 +- x/evm/abci.go | 28 +- x/evm/keeper/keeper.go | 11 +- x/evm/keeper/msg_server.go | 54 +- x/evm/types/event.pb.go | 1841 ++++++++++ x/evm/types/tx.pb.go | 114 +- x/pot/client/cli/tx.go | 62 - x/pot/handler.go | 3 - x/pot/keeper/msg_server.go | 115 +- x/pot/types/errors.go | 10 +- x/pot/types/event.pb.go | 1220 +++++++ x/pot/types/msg.go | 53 +- x/pot/types/tx.pb.go | 702 +--- x/pot/types/tx.pb.gw.go | 83 - x/register/keeper/msg_server.go | 244 +- x/register/keeper/node_state_change.go | 22 +- x/register/types/errors.go | 2 + x/register/types/event.pb.go | 4374 ++++++++++++++++++++++++ x/register/types/tx.pb.go | 222 +- x/sds/keeper/msg_server.go | 43 +- x/sds/types/errors.go | 4 +- x/sds/types/event.pb.go | 820 +++++ x/sds/types/tx.pb.go | 89 +- 31 files changed, 9327 insertions(+), 1361 deletions(-) create mode 100644 proto/stratos/evm/v1/event.proto create mode 100644 proto/stratos/pot/v1/event.proto create mode 100644 proto/stratos/register/v1/event.proto create mode 100644 proto/stratos/sds/v1/event.proto create mode 100644 x/evm/types/event.pb.go create mode 100644 x/pot/types/event.pb.go create mode 100644 x/register/types/event.pb.go create mode 100644 x/sds/types/event.pb.go diff --git a/app/ante/eth.go b/app/ante/eth.go index a014d354..91c428e8 100644 --- a/app/ante/eth.go +++ b/app/ante/eth.go @@ -206,7 +206,7 @@ func (egcd EthGasConsumeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula london := ethCfg.IsLondon(blockHeight) evmDenom := params.EvmDenom gasWanted := uint64(0) - var events sdk.Events + var events []*evmtypes.EventTx for _, msg := range tx.GetMsgs() { msgEthTx, ok := msg.(*evmtypes.MsgEthereumTx) @@ -243,11 +243,12 @@ func (egcd EthGasConsumeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simula return ctx, errors.Wrapf(err, "failed to deduct transaction costs from user balance") } - events = append(events, sdk.NewEvent(sdk.EventTypeTx, sdk.NewAttribute(sdk.AttributeKeyFee, fees.String()))) + events = append(events, &evmtypes.EventTx{Fee: fees.String()}) } - // TODO: change to typed events - ctx.EventManager().EmitEvents(events) + for _, event := range events { + _ = ctx.EventManager().EmitTypedEvent(event) + } // TODO: deprecate after https://github.com/cosmos/cosmos-sdk/issues/9514 is fixed on SDK blockGasLimit := stratos.BlockGasLimit(ctx) diff --git a/proto/stratos/evm/v1/event.proto b/proto/stratos/evm/v1/event.proto new file mode 100644 index 00000000..fbb487f8 --- /dev/null +++ b/proto/stratos/evm/v1/event.proto @@ -0,0 +1,64 @@ +syntax = "proto3"; +package stratos.evm.v1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/timestamp.proto"; +import "cosmos/staking/v1beta1/staking.proto"; + +option go_package = "github.com/stratosnet/stratos-chain/x/evm/types"; + +// EventEthereumTx defines the event for an Ethereum transaction +message EventEthereumTx { + // amount + string amount = 1; + // eth_hash is the Ethereum hash of the transaction + string eth_hash = 2; + // index of the transaction in the block + string index = 3; + // gas_used is the amount of gas used by the transaction + string gas_used = 4; + // hash is the Tendermint hash of the transaction + string hash = 5; + // recipient of the transaction + string recipient = 6; + // eth_tx_failed contains a VM error should it occur + string eth_tx_failed = 7; +} + +// EventTxLog defines the event for an Ethereum transaction log +message EventTxLog { + // tx_logs is an array of transaction logs + repeated string tx_logs = 1; +} + +// EventMessage +message EventMessage { + // module which emits the event + string module = 1; + // sender of the message + string sender = 2; + // tx_type is the type of the message + string tx_type = 3; +} + +// EventBlockBloom defines an Ethereum block bloom filter event +message EventBlockBloom { + // bloom is the bloom filter of the block + string bloom = 1; +} + +message EventBlockGas { + string height = 1; + string amount = 2; +} + +message EventFeeMarket{ + string base_fee = 1; +} + +message EventTx{ + string fee = 1; +} diff --git a/proto/stratos/evm/v1/tx.proto b/proto/stratos/evm/v1/tx.proto index b3fc6237..b5ff7776 100644 --- a/proto/stratos/evm/v1/tx.proto +++ b/proto/stratos/evm/v1/tx.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package stratos.evm.v1; import "gogoproto/gogo.proto"; +import "cosmos/msg/v1/msg.proto"; import "google/api/annotations.proto"; import "google/protobuf/any.proto"; import "cosmos_proto/cosmos.proto"; @@ -12,6 +13,8 @@ option go_package = "github.com/stratosnet/stratos-chain/x/evm/types"; // Msg defines the evm Msg service. service Msg { + option (cosmos.msg.v1.service) = true; + // EthereumTx defines a method submitting Ethereum transactions. rpc EthereumTx(MsgEthereumTx) returns (MsgEthereumTxResponse) { option (google.api.http).post = "/stratos/evm/v1/ethereum_tx"; diff --git a/proto/stratos/pot/v1/event.proto b/proto/stratos/pot/v1/event.proto new file mode 100644 index 00000000..5950a30c --- /dev/null +++ b/proto/stratos/pot/v1/event.proto @@ -0,0 +1,60 @@ +syntax = "proto3"; +package stratos.pot.v1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/timestamp.proto"; +import "cosmos/staking/v1beta1/staking.proto"; + +option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; + +// EventVolumeReport is emitted on Msg/MsgVolumeReport +message EventVolumeReport { + string report_reference = 1; + string epoch = 2 [ + (gogoproto.nullable) = false, + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; +} + +// EventWithdraw is emitted on Msg/MsgWithdraw +message EventWithdraw { + repeated cosmos.base.v1beta1.Coin amount = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + string wallet_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string target_address = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; +} + +// EventFoundationDeposit is emitted on Msg/MsgFoundationDeposit +message EventFoundationDeposit { + repeated cosmos.base.v1beta1.Coin amount = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; +} + +// EventSlashing is emitted on Msg/MsgSlashingResourceNode +message EventSlashing { + string wallet_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string amount = 3 [ + (gogoproto.nullable) = false, + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; + string slashing_type = 4; + bool suspend = 5; +} diff --git a/proto/stratos/pot/v1/tx.proto b/proto/stratos/pot/v1/tx.proto index 7dc91692..b7020f58 100644 --- a/proto/stratos/pot/v1/tx.proto +++ b/proto/stratos/pot/v1/tx.proto @@ -3,6 +3,8 @@ package stratos.pot.v1; import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; +import "cosmos/msg/v1/msg.proto"; import "google/api/annotations.proto"; import "stratos/pot/v1/pot.proto"; import "cosmos/base/v1beta1/coin.proto"; @@ -10,17 +12,16 @@ import "cosmos/base/v1beta1/coin.proto"; option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; -// Msg defines the evm Msg service. +// Msg defines the pot Msg service. service Msg { + option (cosmos.msg.v1.service) = true; + rpc HandleMsgVolumeReport(MsgVolumeReport) returns (MsgVolumeReportResponse) { option (google.api.http).post = "/stratos/pot/v1/volume_report"; }; rpc HandleMsgWithdraw(MsgWithdraw) returns (MsgWithdrawResponse) { option (google.api.http).post = "/stratos/pot/v1/withdraw"; }; - rpc HandleMsgLegacyWithdraw(MsgLegacyWithdraw) returns (MsgLegacyWithdrawResponse) { - option (google.api.http).post = "/stratos/pot/v1/legacy_withdraw"; - }; rpc HandleMsgFoundationDeposit(MsgFoundationDeposit) returns (MsgFoundationDepositResponse) { option (google.api.http).post = "/stratos/pot/v1/foundation_deposit"; }; @@ -31,17 +32,23 @@ service Msg { // MsgVolumeReport encapsulates an VolumeReport transaction as an SDK message. message MsgVolumeReport { + option (cosmos.msg.v1.signer) = "reporter_owner"; + option (amino.name) = "stratos/MsgVolumeReport"; + repeated SingleWalletVolume wallet_volumes = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "wallet_volumes", (gogoproto.moretags) = "yaml:\"wallet_volumes\"" ]; string reporter = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "reporter", (gogoproto.moretags) = "yaml:\"reporter\"" ]; string epoch = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "epoch", (gogoproto.moretags) = "yaml:\"epoch\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -52,11 +59,13 @@ message MsgVolumeReport { (gogoproto.moretags) = "yaml:\"report_reference\"" ]; string reporter_owner = 5 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "reporter_owner", (gogoproto.moretags) = "yaml:\"reporter_owner\"" ]; BLSSignatureInfo BLS_signature = 6 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "bls_signature", (gogoproto.moretags) = "yaml:\"bls_signature\"" ]; @@ -66,54 +75,44 @@ message MsgVolumeReportResponse {} // MsgWithdraw encapsulates an withdraw transaction as an SDK message. message MsgWithdraw { - repeated cosmos.base.v1beta1.Coin amount = 1 [ - (gogoproto.nullable) = false, - (gogoproto.jsontag) = "amount", - (gogoproto.moretags) = "yaml:\"amount\"", - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; - string wallet_address = 2 [ - (gogoproto.jsontag) = "wallet_address", - (gogoproto.moretags) = "yaml:\"wallet_address\"" - ]; - string target_address = 3 [ - (gogoproto.jsontag) = "target_address", - (gogoproto.moretags) = "yaml:\"target_address\"" - ]; -} -// MsgWithdrawResponse defines the Msg/MsgWithdraw response type. -message MsgWithdrawResponse {} + option (cosmos.msg.v1.signer) = "wallet_address"; + option (amino.name) = "stratos/MsgWithdraw"; -// MsgLegacyWithdraw encapsulates an legacyWithdraw transaction as an SDK message. -message MsgLegacyWithdraw { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, - (gogoproto.jsontag) = "amount", + (amino.dont_omitempty) = true, + (gogoproto.jsontag) = "amount", (gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; - string from = 2 [ - (gogoproto.jsontag) = "from", - (gogoproto.moretags) = "yaml:\"from\"" + string wallet_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", + (gogoproto.jsontag) = "wallet_address", + (gogoproto.moretags) = "yaml:\"wallet_address\"" ]; string target_address = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "target_address", (gogoproto.moretags) = "yaml:\"target_address\"" ]; } - -// MsgLegacyWithdrawResponse defines the Msg/MsgWithdraw response type. -message MsgLegacyWithdrawResponse {} +// MsgWithdrawResponse defines the Msg/MsgWithdraw response type. +message MsgWithdrawResponse {} // MsgFoundationDeposit - encapsulates an FoundationDeposit transaction as an SDK message message MsgFoundationDeposit { + option (cosmos.msg.v1.signer) = "from"; + option (amino.name) = "stratos/MsgFoundationDeposit"; + repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "amount", (gogoproto.moretags) = "yaml:\"amount\"", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; string from = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "from", (gogoproto.moretags) = "yaml:\"from\"" ]; @@ -124,23 +123,32 @@ message MsgFoundationDepositResponse {} // MsgRemoveMetaNode - encapsulates an MsgRemoveMetaNode transaction as an SDK message message MsgSlashingResourceNode { + option (cosmos.msg.v1.signer) = "reporter_owner"; + option (amino.name) = "stratos/MsgSlashingResourceNode"; + repeated string reporters = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "reporters", (gogoproto.moretags) = "yaml:\"reporters\"" ]; repeated string reporter_owner = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "reporter_owner", (gogoproto.moretags) = "yaml:\"reporter_owner\"" ]; string network_address = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; string wallet_address = 4 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "wallet_address", (gogoproto.moretags) = "yaml:\"wallet_address\"" ]; string slashing = 5 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "slashing", (gogoproto.moretags) = "yaml:\"slashing\"", (cosmos_proto.scalar) = "cosmos.Int", diff --git a/proto/stratos/register/v1/event.proto b/proto/stratos/register/v1/event.proto new file mode 100644 index 00000000..50190235 --- /dev/null +++ b/proto/stratos/register/v1/event.proto @@ -0,0 +1,231 @@ +syntax = "proto3"; +package stratos.register.v1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; +import "google/protobuf/any.proto"; +import "google/protobuf/timestamp.proto"; +import "cosmos/staking/v1beta1/staking.proto"; + +option go_package = "github.com/stratosnet/stratos-chain/x/register/types"; + +// EventCreateResourceNode is emitted on Msg/MsgCreateResourceNode +message EventCreateResourceNode { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + google.protobuf.Any pubkey = 3 [ + (cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey" + ]; + string ozone_limit_changes = 4 [ + (gogoproto.nullable) = false, + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; + cosmos.base.v1beta1.Coin initial_deposit = 5 [ + (gogoproto.nullable) = false + ]; +} + +// EventCreateMetaNode is emitted on Msg/MsgCreateMetaNode +message EventCreateMetaNode { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string ozone_limit_changes = 3 [ + (gogoproto.nullable) = false, + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; +} + +// EventUnBondingResourceNode is emitted on Msg/MsgRemoveResourceNode +message EventUnBondingResourceNode { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string resource_node = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + cosmos.base.v1beta1.Coin deposit_to_remove = 3 [ + (gogoproto.nullable) = false + ]; + google.protobuf.Timestamp unbonding_mature_time = 4 [ + (gogoproto.nullable) = false, + (gogoproto.stdtime) = true + ]; +} + +// EventUnBondingResourceNode is emitted on Msg/MsgRemoveMetaNode +message EventUnBondingMetaNode { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string meta_node = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string ozone_limit_changes = 3 [ + (gogoproto.nullable) = false, + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; + cosmos.base.v1beta1.Coin deposit_to_remove = 4 [ + (gogoproto.nullable) = false + ]; + google.protobuf.Timestamp unbonding_mature_time = 5 [ + (gogoproto.nullable) = false, + (gogoproto.stdtime) = true + ]; +} + +// EventMetaNodeRegistrationVote is emitted on Msg/MsgMetaNodeRegistrationVote +message EventMetaNodeRegistrationVote { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string voter_network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string candidate_network_address = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + cosmos.staking.v1beta1.BondStatus candidate_status = 4; +} + +// EventWithdrawMetaNodeRegistrationDeposit is emitted on Msg/MsgWithdrawMetaNodeRegistrationDeposit +message EventWithdrawMetaNodeRegistrationDeposit { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + google.protobuf.Timestamp unbonding_mature_time = 3 [ + (gogoproto.nullable) = false, + (gogoproto.stdtime) = true + ]; +} + +// EventUpdateResourceNode is emitted on Msg/MsgUpdateResourceNode +message EventUpdateResourceNode { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; +} + +// EventUpdateResourceNodeDeposit is emitted on Msg/MsgUpdateResourceNodeDeposit +message EventUpdateResourceNodeDeposit { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + cosmos.base.v1beta1.Coin deposit_delta = 3 [ + (gogoproto.nullable) = false + ]; + cosmos.base.v1beta1.Coin current_deposit = 4 [ + (gogoproto.nullable) = false + ]; + cosmos.base.v1beta1.Coin available_token_before = 5 [ + (gogoproto.nullable) = false + ]; + cosmos.base.v1beta1.Coin available_token_after = 6 [ + (gogoproto.nullable) = false + ]; + string ozone_limit_changes = 7 [ + (gogoproto.nullable) = false, + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; + google.protobuf.Timestamp unbonding_mature_time = 8 [ + (gogoproto.nullable) = false, + (gogoproto.stdtime) = true + ]; +} + +// EventUpdateEffectiveDeposit is emitted on Msg/MsgUpdateEffectiveDeposit +message EventUpdateEffectiveDeposit { + string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string effective_deposit_after = 2 [ + (gogoproto.nullable) = false, + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; + bool is_unsuspended = 3; +} + +// EventUpdateMetaNode is emitted on Msg/MsgUpdateMetaNode +message EventUpdateMetaNode { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; +} + +// EventUpdateMetaNodeDeposit is emitted on Msg/MsgUpdateMetaNodeDeposit +message EventUpdateMetaNodeDeposit { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + cosmos.base.v1beta1.Coin deposit_delta = 3 [ + (gogoproto.nullable) = false + ]; + cosmos.base.v1beta1.Coin current_deposit = 4 [ + (gogoproto.nullable) = false + ]; + cosmos.base.v1beta1.Coin available_token_before = 5 [ + (gogoproto.nullable) = false + ]; + cosmos.base.v1beta1.Coin available_token_after = 6 [ + (gogoproto.nullable) = false + ]; + string ozone_limit_changes = 7 [ + (gogoproto.nullable) = false, + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; + google.protobuf.Timestamp unbonding_mature_time = 8 [ + (gogoproto.nullable) = false, + (gogoproto.stdtime) = true + ]; +} + +// EventCompleteUnBondingResourceNode is emitted on EndBlocker +message EventCompleteUnBondingResourceNode{ + repeated cosmos.base.v1beta1.Coin amount = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; +} + +// EventCompleteUnBondingMetaNode is emitted on EndBlocker +message EventCompleteUnBondingMetaNode{ + repeated cosmos.base.v1beta1.Coin amount = 1 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; +} \ No newline at end of file diff --git a/proto/stratos/register/v1/tx.proto b/proto/stratos/register/v1/tx.proto index b4c0f326..f9b5dc7f 100644 --- a/proto/stratos/register/v1/tx.proto +++ b/proto/stratos/register/v1/tx.proto @@ -2,10 +2,11 @@ syntax = "proto3"; package stratos.register.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; +import "cosmos/msg/v1/msg.proto"; import "google/protobuf/any.proto"; import "google/api/annotations.proto"; - -import "cosmos_proto/cosmos.proto"; import "stratos/register/v1/register.proto"; import "cosmos/base/v1beta1/coin.proto"; @@ -14,6 +15,8 @@ option go_package = "github.com/stratosnet/stratos-chain/x/register/types"; // Msg defines the register module Msg service. service Msg { + option (cosmos.msg.v1.service) = true; + // CreateResourceNode defines a method for creating a new resource node. rpc HandleMsgCreateResourceNode(MsgCreateResourceNode) returns (MsgCreateResourceNodeResponse) { option (google.api.http).post = "/stratos/register/v1/create_resource_node"; @@ -54,7 +57,11 @@ service Msg { // MsgCreateResourceNode encapsulates an MsgCreateResourceNodeTx transaction as an SDK message. message MsgCreateResourceNode { + option (cosmos.msg.v1.signer) = "owner_address"; + option (amino.name) = "stratos/MsgCreateResourceNode"; + string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; @@ -65,15 +72,18 @@ message MsgCreateResourceNode { ]; cosmos.base.v1beta1.Coin value = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "value", (gogoproto.moretags) = "yaml:\"value\"" ]; string owner_address = 4 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; Description description = 5 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "description", (gogoproto.moretags) = "yaml:\"description\"" ]; @@ -88,7 +98,11 @@ message MsgCreateResourceNodeResponse {} // MsgCreateMetaNode encapsulates an MsgCreateMetaNodeTx transaction as an SDK message. message MsgCreateMetaNode { + option (cosmos.msg.v1.signer) = "owner_address"; + option (amino.name) = "stratos/MsgCreateMetaNode"; + string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; @@ -99,15 +113,18 @@ message MsgCreateMetaNode { ]; cosmos.base.v1beta1.Coin value = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "value", (gogoproto.moretags) = "yaml:\"value\"" ]; string owner_address = 4 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; Description description = 5 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "description", (gogoproto.moretags) = "yaml:\"description\"" ]; @@ -119,11 +136,16 @@ message MsgCreateMetaNodeResponse {} // MsgRemoveResourceNode - encapsulates an RemoveResourceNode transaction as an SDK message message MsgRemoveResourceNode { + option (cosmos.msg.v1.signer) = "owner_address"; + option (amino.name) = "stratos/MsgRemoveResourceNode"; + string resource_node_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "resource_node_address", (gogoproto.moretags) = "yaml:\"resource_node_address\"" ]; string owner_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; @@ -134,11 +156,16 @@ message MsgRemoveResourceNodeResponse {} // MsgRemoveMetaNode - encapsulates an MsgRemoveMetaNode transaction as an SDK message message MsgRemoveMetaNode { + option (cosmos.msg.v1.signer) = "owner_address"; + option (amino.name) = "stratos/MsgRemoveMetaNode"; + string meta_node_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "meta_node_address", (gogoproto.moretags) = "yaml:\"meta_node_address\"" ]; string owner_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; @@ -150,16 +177,22 @@ message MsgRemoveMetaNodeResponse {} // MsgUpdateResourceNode defines a SDK message for updating an existing resource node. message MsgUpdateResourceNode { + option (cosmos.msg.v1.signer) = "owner_address"; + option (amino.name) = "stratos/MsgUpdateResourceNode"; + Description description = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "description", (gogoproto.moretags) = "yaml:\"description\"" ]; string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; string owner_address = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; @@ -175,16 +208,22 @@ message MsgUpdateResourceNodeResponse {} // MsgUpdateMetaNode defines a SDK message for updating an existing meta node. message MsgUpdateMetaNode { + option (cosmos.msg.v1.signer) = "owner_address"; + option (amino.name) = "stratos/MsgUpdateMetaNode"; + Description description = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "description", (gogoproto.moretags) = "yaml:\"description\"" ]; string network_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; string owner_address = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; @@ -196,16 +235,22 @@ message MsgUpdateMetaNodeResponse {} // MsgUpdateResourceNodeDeposit defines a SDK message for updating the deposit of an existing resource node. message MsgUpdateResourceNodeDeposit { + option (cosmos.msg.v1.signer) = "owner_address"; + option (amino.name) = "stratos/MsgUpdateResourceNodeDeposit"; + string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; string owner_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; cosmos.base.v1beta1.Coin deposit_delta = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "deposit_delta", (gogoproto.moretags) = "yaml:\"deposit_delta\"" ]; @@ -216,22 +261,27 @@ message MsgUpdateResourceNodeDepositResponse {} // MsgUpdateEffectiveDeposit defines a SDK message for updating the effective deposit of an existing resource node. message MsgUpdateEffectiveDeposit { - option (gogoproto.goproto_getters) = false; + option (cosmos.msg.v1.signer) = "reporter_owner"; + option (amino.name) = "stratos/MsgUpdateEffectiveDeposit"; repeated string reporters = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "reporters", (gogoproto.moretags) = "yaml:\"reporters\"" ]; repeated string reporter_owner = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "reporter_owner", (gogoproto.moretags) = "yaml:\"reporter_owner\"" ]; string network_address = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; string effective_tokens = 4 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "effective_tokens", (gogoproto.moretags) = "yaml:\"effective_tokens\"", (cosmos_proto.scalar) = "cosmos.Int", @@ -245,16 +295,22 @@ message MsgUpdateEffectiveDepositResponse {} // MsgUpdateMetaNodeDeposit defines a SDK message for updating the deposit of an existing meta node. message MsgUpdateMetaNodeDeposit { + option (cosmos.msg.v1.signer) = "owner_address"; + option (amino.name) = "stratos/MsgUpdateMetaNodeDeposit"; + string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; string owner_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; cosmos.base.v1beta1.Coin deposit_delta = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "deposit_delta", (gogoproto.moretags) = "yaml:\"deposit_delta\"" ]; @@ -265,11 +321,16 @@ message MsgUpdateMetaNodeDepositResponse {} // MsgMetaNodeRegistrationVote defines a SDK message for registration vote of an existing meta node. message MsgMetaNodeRegistrationVote { + option (cosmos.msg.v1.signer) = "voter_owner_address"; + option (amino.name) = "stratos/MsgMetaNodeRegistrationVote"; + string candidate_network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "candidate_network_address", (gogoproto.moretags) = "yaml:\"candidate_network_address\"" ]; // node address of meta node string candidate_owner_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "candidate_owner_address", (gogoproto.moretags) = "yaml:\"candidate_owner_address\"" ]; // owner address of meta node @@ -278,10 +339,12 @@ message MsgMetaNodeRegistrationVote { (gogoproto.moretags) = "yaml:\"opinion\"" ]; string voter_network_address = 4 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "voter_network_address", (gogoproto.moretags) = "yaml:\"voter_network_address\"" ]; // address of voter (other existed meta node) string voter_owner_address = 5 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "voter_owner_address", (gogoproto.moretags) = "yaml:\"voter_owner_address\"" ]; // address of owner of the voter (other existed meta node) @@ -292,11 +355,16 @@ message MsgMetaNodeRegistrationVoteResponse {} // MsgWithdrawMetaNodeRegistrationDeposit defines a SDK message for withdrawing registration deposit of meta node. message MsgWithdrawMetaNodeRegistrationDeposit { + option (cosmos.msg.v1.signer) = "owner_address"; + option (amino.name) = "stratos/MsgWithdrawMetaNodeRegistrationDeposit"; + string network_address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; // node address of meta node string owner_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; // owner address of meta node diff --git a/proto/stratos/sds/v1/event.proto b/proto/stratos/sds/v1/event.proto new file mode 100644 index 00000000..e0bfe1d1 --- /dev/null +++ b/proto/stratos/sds/v1/event.proto @@ -0,0 +1,41 @@ +syntax = "proto3"; +package stratos.sds.v1; + +import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "cosmos/base/v1beta1/coin.proto"; + +option go_package = "github.com/stratosnet/stratos-chain/x/sds/types"; + +// EventPrePay is emitted on Msg/MsgPrepay +message EventPrePay { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string beneficiary = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; + string purchased_noz = 4 [ + (gogoproto.nullable) = false, + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; +} + +// EventFileUpload is emitted on Msg/MsgFileUpload +message EventFileUpload { + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string reporter = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string uploader = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + string file_hash = 4 ; +} diff --git a/proto/stratos/sds/v1/tx.proto b/proto/stratos/sds/v1/tx.proto index b444e0a8..43a46c0c 100644 --- a/proto/stratos/sds/v1/tx.proto +++ b/proto/stratos/sds/v1/tx.proto @@ -2,6 +2,9 @@ syntax = "proto3"; package stratos.sds.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; +import "amino/amino.proto"; +import "cosmos/msg/v1/msg.proto"; import "google/api/annotations.proto"; import "cosmos/base/v1beta1/coin.proto"; @@ -10,29 +13,38 @@ option go_package = "github.com/stratosnet/stratos-chain/x/sds/types"; // Msg defines the sds module Msg service. service Msg { - // CreateResourceNode defines a method for creating a new resource node. + option (cosmos.msg.v1.service) = true; + + // HandleMsgFileUpload defines a method for file uploading rpc HandleMsgFileUpload(MsgFileUpload) returns (MsgFileUploadResponse) { option (google.api.http).post = "/stratos/sds/v1/file_upload"; }; + // HandleMsgPrepay defines a method for prepay rpc HandleMsgPrepay(MsgPrepay) returns (MsgPrepayResponse) { option (google.api.http).post = "/stratos/sds/v1/prepay"; }; } message MsgFileUpload { + option (cosmos.msg.v1.signer) = "from"; + option (amino.name) = "stratos/MsgFileUpload"; + string file_hash = 1 [ (gogoproto.jsontag) = "file_hash", (gogoproto.moretags) = "yaml:\"file_hash\"" ]; string from = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "from", (gogoproto.moretags) = "yaml:\"from\"" ]; string reporter = 3 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "reporter", (gogoproto.moretags) = "yaml:\"reporter\"" ]; string uploader = 4 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "uploader", (gogoproto.moretags) = "yaml:\"uploader\"" ]; @@ -41,18 +53,24 @@ message MsgFileUpload { message MsgFileUploadResponse {} message MsgPrepay { + option (cosmos.msg.v1.signer) = "sender"; + option (amino.name) = "stratos/MsgPrepay"; + string sender = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "sender", (gogoproto.moretags) = "yaml:\"sender\"" ]; string beneficiary = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "beneficiary", (gogoproto.moretags) = "yaml:\"beneficiary\"" ]; repeated cosmos.base.v1beta1.Coin amount = 3 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, (gogoproto.jsontag) = "amount", (gogoproto.moretags) = "yaml:\"amount\"", - (gogoproto.nullable) = false, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/x/evm/abci.go b/x/evm/abci.go index 4f3d10e2..338978a5 100644 --- a/x/evm/abci.go +++ b/x/evm/abci.go @@ -25,12 +25,13 @@ func BeginBlocker(ctx sdk.Context, _ abci.RequestBeginBlock, k *keeper.Keeper) { k.SetBaseFeeParam(ctx, baseFee) // Store current base fee in event - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeFeeMarket, - sdk.NewAttribute(types.AttributeKeyBaseFee, baseFee.String()), - ), + err := ctx.EventManager().EmitTypedEvent(&types.EventFeeMarket{ + BaseFee: baseFee.String(), }) + if err != nil { + k.Logger(ctx).Error(err.Error()) + } + } // EndBlocker also retrieves the bloom filter value from the transient store and commits it to the @@ -46,17 +47,22 @@ func EndBlocker(ctx sdk.Context, _ abci.RequestEndBlock, k *keeper.Keeper) []abc k.SetBlockGasUsed(ctx, gasUsed) - ctx.EventManager().EmitEvent(sdk.NewEvent( - "block_gas", - sdk.NewAttribute("height", fmt.Sprintf("%d", ctx.BlockHeight())), - sdk.NewAttribute("amount", fmt.Sprintf("%d", ctx.BlockGasMeter().GasConsumedToLimit())), - )) + err := ctx.EventManager().EmitTypedEvent(&types.EventBlockGas{ + Height: fmt.Sprintf("%d", ctx.BlockHeight()), + Amount: fmt.Sprintf("%d", ctx.BlockGasMeter().GasConsumedToLimit()), + }) + if err != nil { + k.Logger(ctx).Error(err.Error()) + } // Gas costs are handled within msg handler so costs should be ignored infCtx := ctx.WithGasMeter(sdk.NewInfiniteGasMeter()) bloom := ethtypes.BytesToBloom(k.GetBlockBloomTransient(infCtx).Bytes()) - k.EmitBlockBloomEvent(infCtx, bloom) + err = k.EmitBlockBloomEvent(infCtx, bloom) + if err != nil { + k.Logger(ctx).Error(err.Error()) + } return []abci.ValidatorUpdate{} } diff --git a/x/evm/keeper/keeper.go b/x/evm/keeper/keeper.go index 1a897c08..ba1bfc1e 100644 --- a/x/evm/keeper/keeper.go +++ b/x/evm/keeper/keeper.go @@ -97,13 +97,10 @@ func (k *Keeper) SetTracer(tracer string) { // ---------------------------------------------------------------------------- // EmitBlockBloomEvent emit block bloom events -func (k Keeper) EmitBlockBloomEvent(ctx sdk.Context, bloom ethtypes.Bloom) { - ctx.EventManager().EmitEvent( - sdk.NewEvent( - types.EventTypeBlockBloom, - sdk.NewAttribute(types.AttributeKeyEthereumBloom, string(bloom.Bytes())), - ), - ) +func (k Keeper) EmitBlockBloomEvent(ctx sdk.Context, bloom ethtypes.Bloom) error { + return ctx.EventManager().EmitTypedEvent(&types.EventBlockBloom{ + Bloom: string(bloom.Bytes()), + }) } // GetBlockBloomTransient returns bloom bytes for the current block height diff --git a/x/evm/keeper/msg_server.go b/x/evm/keeper/msg_server.go index 0d6755ce..957fa60e 100644 --- a/x/evm/keeper/msg_server.go +++ b/x/evm/keeper/msg_server.go @@ -34,56 +34,44 @@ func (k *Keeper) EthereumTx(goCtx context.Context, msg *types.MsgEthereumTx) (*t return nil, errors.Wrap(err, "failed to apply transaction") } - attrs := []sdk.Attribute{ - sdk.NewAttribute(sdk.AttributeKeyAmount, tx.Value().String()), - // add event for ethereum transaction hash format - sdk.NewAttribute(types.AttributeKeyEthereumTxHash, response.Hash), - // add event for index of valid ethereum tx - sdk.NewAttribute(types.AttributeKeyTxIndex, strconv.FormatUint(txIndex, 10)), - // add event for eth tx gas used, we can't get it from cosmos tx result when it contains multiple eth tx msgs. - sdk.NewAttribute(types.AttributeKeyTxGasUsed, strconv.FormatUint(response.GasUsed, 10)), + // build events + eventEthereumTx := &types.EventEthereumTx{ + Amount: tx.Value().String(), + EthHash: response.Hash, // ethereum transaction hash format + Index: strconv.FormatUint(txIndex, 10), // index of valid ethereum tx + GasUsed: strconv.FormatUint(response.GasUsed, 10), // eth tx gas used, we can't get it from cosmos tx result when it contains multiple eth tx msgs. } - if len(ctx.TxBytes()) > 0 { - // add event for tendermint transaction hash format + // tendermint transaction hash format hash := tmbytes.HexBytes(tmtypes.Tx(ctx.TxBytes()).Hash()) - attrs = append(attrs, sdk.NewAttribute(types.AttributeKeyTxHash, hash.String())) + eventEthereumTx.Hash = hash.String() } - if to := tx.To(); to != nil { - attrs = append(attrs, sdk.NewAttribute(types.AttributeKeyRecipient, to.Hex())) + eventEthereumTx.Recipient = to.Hex() } - if response.Failed() { - attrs = append(attrs, sdk.NewAttribute(types.AttributeKeyEthereumTxFailed, response.VmError)) + eventEthereumTx.EthTxFailed = response.VmError } - txLogAttrs := make([]sdk.Attribute, len(response.Logs)) + eventTxLog := &types.EventTxLog{} for i, log := range response.Logs { value, err := json.Marshal(log) if err != nil { return nil, errors.Wrap(sdkerrors.ErrJSONMarshal, "failed to encode log") } - txLogAttrs[i] = sdk.NewAttribute(types.AttributeKeyTxLog, string(value)) + eventTxLog.TxLogs[i] = string(value) } // emit events - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeEthereumTx, - attrs..., - ), - sdk.NewEvent( - types.EventTypeTxLog, - txLogAttrs..., - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, sender), - sdk.NewAttribute(types.AttributeKeyTxType, fmt.Sprintf("%d", tx.Type())), - ), - }) + err = ctx.EventManager().EmitTypedEvents( + eventEthereumTx, + eventTxLog, + &types.EventMessage{ + Module: types.AttributeValueCategory, + Sender: sender, + TxType: fmt.Sprintf("%d", tx.Type()), + }, + ) return response, nil } diff --git a/x/evm/types/event.pb.go b/x/evm/types/event.pb.go new file mode 100644 index 00000000..98ca21ce --- /dev/null +++ b/x/evm/types/event.pb.go @@ -0,0 +1,1841 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: stratos/evm/v1/event.proto + +package types + +import ( + fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + _ "github.com/cosmos/cosmos-sdk/codec/types" + _ "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/x/staking/types" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + _ "google.golang.org/protobuf/types/known/timestamppb" + 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 + +// EventEthereumTx defines the event for an Ethereum transaction +type EventEthereumTx struct { + // amount + Amount string `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + // eth_hash is the Ethereum hash of the transaction + EthHash string `protobuf:"bytes,2,opt,name=eth_hash,json=ethHash,proto3" json:"eth_hash,omitempty"` + // index of the transaction in the block + Index string `protobuf:"bytes,3,opt,name=index,proto3" json:"index,omitempty"` + // gas_used is the amount of gas used by the transaction + GasUsed string `protobuf:"bytes,4,opt,name=gas_used,json=gasUsed,proto3" json:"gas_used,omitempty"` + // hash is the Tendermint hash of the transaction + Hash string `protobuf:"bytes,5,opt,name=hash,proto3" json:"hash,omitempty"` + // recipient of the transaction + Recipient string `protobuf:"bytes,6,opt,name=recipient,proto3" json:"recipient,omitempty"` + // eth_tx_failed contains a VM error should it occur + EthTxFailed string `protobuf:"bytes,7,opt,name=eth_tx_failed,json=ethTxFailed,proto3" json:"eth_tx_failed,omitempty"` +} + +func (m *EventEthereumTx) Reset() { *m = EventEthereumTx{} } +func (m *EventEthereumTx) String() string { return proto.CompactTextString(m) } +func (*EventEthereumTx) ProtoMessage() {} +func (*EventEthereumTx) Descriptor() ([]byte, []int) { + return fileDescriptor_bf04d7c55b62717e, []int{0} +} +func (m *EventEthereumTx) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventEthereumTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventEthereumTx.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 *EventEthereumTx) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventEthereumTx.Merge(m, src) +} +func (m *EventEthereumTx) XXX_Size() int { + return m.Size() +} +func (m *EventEthereumTx) XXX_DiscardUnknown() { + xxx_messageInfo_EventEthereumTx.DiscardUnknown(m) +} + +var xxx_messageInfo_EventEthereumTx proto.InternalMessageInfo + +func (m *EventEthereumTx) GetAmount() string { + if m != nil { + return m.Amount + } + return "" +} + +func (m *EventEthereumTx) GetEthHash() string { + if m != nil { + return m.EthHash + } + return "" +} + +func (m *EventEthereumTx) GetIndex() string { + if m != nil { + return m.Index + } + return "" +} + +func (m *EventEthereumTx) GetGasUsed() string { + if m != nil { + return m.GasUsed + } + return "" +} + +func (m *EventEthereumTx) GetHash() string { + if m != nil { + return m.Hash + } + return "" +} + +func (m *EventEthereumTx) GetRecipient() string { + if m != nil { + return m.Recipient + } + return "" +} + +func (m *EventEthereumTx) GetEthTxFailed() string { + if m != nil { + return m.EthTxFailed + } + return "" +} + +// EventTxLog defines the event for an Ethereum transaction log +type EventTxLog struct { + // tx_logs is an array of transaction logs + TxLogs []string `protobuf:"bytes,1,rep,name=tx_logs,json=txLogs,proto3" json:"tx_logs,omitempty"` +} + +func (m *EventTxLog) Reset() { *m = EventTxLog{} } +func (m *EventTxLog) String() string { return proto.CompactTextString(m) } +func (*EventTxLog) ProtoMessage() {} +func (*EventTxLog) Descriptor() ([]byte, []int) { + return fileDescriptor_bf04d7c55b62717e, []int{1} +} +func (m *EventTxLog) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventTxLog) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventTxLog.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 *EventTxLog) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventTxLog.Merge(m, src) +} +func (m *EventTxLog) XXX_Size() int { + return m.Size() +} +func (m *EventTxLog) XXX_DiscardUnknown() { + xxx_messageInfo_EventTxLog.DiscardUnknown(m) +} + +var xxx_messageInfo_EventTxLog proto.InternalMessageInfo + +func (m *EventTxLog) GetTxLogs() []string { + if m != nil { + return m.TxLogs + } + return nil +} + +// EventMessage +type EventMessage struct { + // module which emits the event + Module string `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"` + // sender of the message + Sender string `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` + // tx_type is the type of the message + TxType string `protobuf:"bytes,3,opt,name=tx_type,json=txType,proto3" json:"tx_type,omitempty"` +} + +func (m *EventMessage) Reset() { *m = EventMessage{} } +func (m *EventMessage) String() string { return proto.CompactTextString(m) } +func (*EventMessage) ProtoMessage() {} +func (*EventMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_bf04d7c55b62717e, []int{2} +} +func (m *EventMessage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventMessage.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 *EventMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventMessage.Merge(m, src) +} +func (m *EventMessage) XXX_Size() int { + return m.Size() +} +func (m *EventMessage) XXX_DiscardUnknown() { + xxx_messageInfo_EventMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_EventMessage proto.InternalMessageInfo + +func (m *EventMessage) GetModule() string { + if m != nil { + return m.Module + } + return "" +} + +func (m *EventMessage) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventMessage) GetTxType() string { + if m != nil { + return m.TxType + } + return "" +} + +// EventBlockBloom defines an Ethereum block bloom filter event +type EventBlockBloom struct { + // bloom is the bloom filter of the block + Bloom string `protobuf:"bytes,1,opt,name=bloom,proto3" json:"bloom,omitempty"` +} + +func (m *EventBlockBloom) Reset() { *m = EventBlockBloom{} } +func (m *EventBlockBloom) String() string { return proto.CompactTextString(m) } +func (*EventBlockBloom) ProtoMessage() {} +func (*EventBlockBloom) Descriptor() ([]byte, []int) { + return fileDescriptor_bf04d7c55b62717e, []int{3} +} +func (m *EventBlockBloom) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventBlockBloom) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventBlockBloom.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 *EventBlockBloom) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventBlockBloom.Merge(m, src) +} +func (m *EventBlockBloom) XXX_Size() int { + return m.Size() +} +func (m *EventBlockBloom) XXX_DiscardUnknown() { + xxx_messageInfo_EventBlockBloom.DiscardUnknown(m) +} + +var xxx_messageInfo_EventBlockBloom proto.InternalMessageInfo + +func (m *EventBlockBloom) GetBloom() string { + if m != nil { + return m.Bloom + } + return "" +} + +type EventBlockGas struct { + Height string `protobuf:"bytes,1,opt,name=height,proto3" json:"height,omitempty"` + Amount string `protobuf:"bytes,2,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (m *EventBlockGas) Reset() { *m = EventBlockGas{} } +func (m *EventBlockGas) String() string { return proto.CompactTextString(m) } +func (*EventBlockGas) ProtoMessage() {} +func (*EventBlockGas) Descriptor() ([]byte, []int) { + return fileDescriptor_bf04d7c55b62717e, []int{4} +} +func (m *EventBlockGas) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventBlockGas) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventBlockGas.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 *EventBlockGas) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventBlockGas.Merge(m, src) +} +func (m *EventBlockGas) XXX_Size() int { + return m.Size() +} +func (m *EventBlockGas) XXX_DiscardUnknown() { + xxx_messageInfo_EventBlockGas.DiscardUnknown(m) +} + +var xxx_messageInfo_EventBlockGas proto.InternalMessageInfo + +func (m *EventBlockGas) GetHeight() string { + if m != nil { + return m.Height + } + return "" +} + +func (m *EventBlockGas) GetAmount() string { + if m != nil { + return m.Amount + } + return "" +} + +type EventFeeMarket struct { + BaseFee string `protobuf:"bytes,1,opt,name=base_fee,json=baseFee,proto3" json:"base_fee,omitempty"` +} + +func (m *EventFeeMarket) Reset() { *m = EventFeeMarket{} } +func (m *EventFeeMarket) String() string { return proto.CompactTextString(m) } +func (*EventFeeMarket) ProtoMessage() {} +func (*EventFeeMarket) Descriptor() ([]byte, []int) { + return fileDescriptor_bf04d7c55b62717e, []int{5} +} +func (m *EventFeeMarket) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventFeeMarket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventFeeMarket.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 *EventFeeMarket) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventFeeMarket.Merge(m, src) +} +func (m *EventFeeMarket) XXX_Size() int { + return m.Size() +} +func (m *EventFeeMarket) XXX_DiscardUnknown() { + xxx_messageInfo_EventFeeMarket.DiscardUnknown(m) +} + +var xxx_messageInfo_EventFeeMarket proto.InternalMessageInfo + +func (m *EventFeeMarket) GetBaseFee() string { + if m != nil { + return m.BaseFee + } + return "" +} + +type EventTx struct { + Fee string `protobuf:"bytes,1,opt,name=fee,proto3" json:"fee,omitempty"` +} + +func (m *EventTx) Reset() { *m = EventTx{} } +func (m *EventTx) String() string { return proto.CompactTextString(m) } +func (*EventTx) ProtoMessage() {} +func (*EventTx) Descriptor() ([]byte, []int) { + return fileDescriptor_bf04d7c55b62717e, []int{6} +} +func (m *EventTx) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventTx) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventTx.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 *EventTx) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventTx.Merge(m, src) +} +func (m *EventTx) XXX_Size() int { + return m.Size() +} +func (m *EventTx) XXX_DiscardUnknown() { + xxx_messageInfo_EventTx.DiscardUnknown(m) +} + +var xxx_messageInfo_EventTx proto.InternalMessageInfo + +func (m *EventTx) GetFee() string { + if m != nil { + return m.Fee + } + return "" +} + +func init() { + proto.RegisterType((*EventEthereumTx)(nil), "stratos.evm.v1.EventEthereumTx") + proto.RegisterType((*EventTxLog)(nil), "stratos.evm.v1.EventTxLog") + proto.RegisterType((*EventMessage)(nil), "stratos.evm.v1.EventMessage") + proto.RegisterType((*EventBlockBloom)(nil), "stratos.evm.v1.EventBlockBloom") + proto.RegisterType((*EventBlockGas)(nil), "stratos.evm.v1.EventBlockGas") + proto.RegisterType((*EventFeeMarket)(nil), "stratos.evm.v1.EventFeeMarket") + proto.RegisterType((*EventTx)(nil), "stratos.evm.v1.EventTx") +} + +func init() { proto.RegisterFile("stratos/evm/v1/event.proto", fileDescriptor_bf04d7c55b62717e) } + +var fileDescriptor_bf04d7c55b62717e = []byte{ + // 502 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x53, 0xdf, 0x8a, 0xd3, 0x4e, + 0x14, 0x6e, 0xb6, 0xbb, 0xed, 0x6f, 0xe7, 0xe7, 0xae, 0x12, 0x16, 0xcd, 0x56, 0x89, 0x4b, 0x50, + 0x14, 0xc4, 0x0e, 0xc5, 0x07, 0x10, 0x0a, 0x5b, 0x15, 0xdc, 0x1b, 0xa9, 0x08, 0xde, 0x84, 0x49, + 0x72, 0x3a, 0x13, 0x9a, 0x64, 0x42, 0xe6, 0x24, 0xa4, 0x6f, 0xe1, 0x63, 0x09, 0xde, 0xec, 0xa5, + 0x97, 0xd2, 0xbe, 0x88, 0xcc, 0x9f, 0x6e, 0x17, 0xef, 0xce, 0xf7, 0x67, 0xbe, 0xf0, 0x9d, 0x99, + 0x90, 0x89, 0xc2, 0x86, 0xa1, 0x54, 0x14, 0xba, 0x92, 0x76, 0x33, 0x0a, 0x1d, 0x54, 0x38, 0xad, + 0x1b, 0x89, 0xd2, 0x3f, 0x77, 0xda, 0x14, 0xba, 0x72, 0xda, 0xcd, 0x26, 0x17, 0x5c, 0x72, 0x69, + 0x24, 0xaa, 0x27, 0xeb, 0x9a, 0x5c, 0xa6, 0x52, 0x95, 0x52, 0xc5, 0x56, 0xb0, 0xc0, 0x49, 0xa1, + 0x45, 0x34, 0x61, 0x0a, 0x68, 0x37, 0x4b, 0x00, 0xd9, 0x8c, 0xa6, 0x32, 0xaf, 0xf6, 0x47, 0xb9, + 0x94, 0xbc, 0x00, 0x6a, 0x50, 0xd2, 0xae, 0x28, 0xab, 0x36, 0x4e, 0x7a, 0xfe, 0xaf, 0x84, 0x79, + 0x09, 0x0a, 0x59, 0x59, 0x3b, 0xc3, 0x0b, 0x97, 0xad, 0x90, 0xad, 0xf3, 0x8a, 0xdf, 0xc5, 0x3b, + 0x6c, 0x5d, 0xd1, 0x2f, 0x8f, 0x3c, 0xbc, 0xd6, 0x95, 0xae, 0x51, 0x40, 0x03, 0x6d, 0xb9, 0xec, + 0xfd, 0xc7, 0x64, 0xc4, 0x4a, 0xd9, 0x56, 0x18, 0x78, 0x57, 0xde, 0xeb, 0xd3, 0x2f, 0x0e, 0xf9, + 0x97, 0xe4, 0x3f, 0x40, 0x11, 0x0b, 0xa6, 0x44, 0x70, 0x64, 0x94, 0x31, 0xa0, 0xf8, 0xc8, 0x94, + 0xf0, 0x2f, 0xc8, 0x49, 0x5e, 0x65, 0xd0, 0x07, 0x43, 0xc3, 0x5b, 0xa0, 0x0f, 0x70, 0xa6, 0xe2, + 0x56, 0x41, 0x16, 0x1c, 0xdb, 0x03, 0x9c, 0xa9, 0xaf, 0x0a, 0x32, 0xdf, 0x27, 0xc7, 0x26, 0xe7, + 0xc4, 0xd0, 0x66, 0xf6, 0x9f, 0x91, 0xd3, 0x06, 0xd2, 0xbc, 0xce, 0xa1, 0xc2, 0x60, 0x64, 0x84, + 0x03, 0xe1, 0x47, 0xe4, 0x4c, 0x7f, 0x1d, 0xfb, 0x78, 0xc5, 0xf2, 0x02, 0xb2, 0x60, 0x6c, 0x1c, + 0xff, 0x03, 0x8a, 0x65, 0xbf, 0x30, 0x54, 0xf4, 0x92, 0x10, 0x53, 0x66, 0xd9, 0x7f, 0x96, 0xdc, + 0x7f, 0x42, 0xc6, 0xd8, 0xc7, 0x85, 0xe4, 0x2a, 0xf0, 0xae, 0x86, 0xba, 0x08, 0x6a, 0x5e, 0x45, + 0xdf, 0xc8, 0x03, 0x63, 0xbb, 0x01, 0xa5, 0x18, 0x07, 0x5d, 0xb8, 0x94, 0x59, 0x5b, 0xc0, 0xbe, + 0xb0, 0x45, 0x9a, 0x57, 0x50, 0x65, 0xd0, 0xb8, 0xba, 0x0e, 0xb9, 0x60, 0xdc, 0xd4, 0xe0, 0xfa, + 0x8e, 0xb0, 0x5f, 0x6e, 0x6a, 0x88, 0x5e, 0xb9, 0x65, 0xce, 0x0b, 0x99, 0xae, 0xe7, 0x85, 0x94, + 0xa5, 0xde, 0x4c, 0xa2, 0x07, 0x17, 0x6d, 0x41, 0xf4, 0x9e, 0x9c, 0x1d, 0x8c, 0x1f, 0x98, 0xd2, + 0x9f, 0x12, 0x90, 0x73, 0x71, 0xb7, 0x73, 0x8b, 0xee, 0xdd, 0xc5, 0xd1, 0xfd, 0xbb, 0x88, 0xde, + 0x90, 0x73, 0x13, 0xb0, 0x00, 0xb8, 0x61, 0xcd, 0x1a, 0xcc, 0xed, 0xe8, 0x67, 0x14, 0xaf, 0x60, + 0x5f, 0x63, 0xac, 0xf1, 0x02, 0x20, 0x7a, 0x4a, 0xc6, 0x6e, 0x2d, 0xfe, 0x23, 0x32, 0x3c, 0x18, + 0xf4, 0x38, 0xff, 0xf4, 0x73, 0x1b, 0x7a, 0xb7, 0xdb, 0xd0, 0xfb, 0xb3, 0x0d, 0xbd, 0x1f, 0xbb, + 0x70, 0x70, 0xbb, 0x0b, 0x07, 0xbf, 0x77, 0xe1, 0xe0, 0x3b, 0xe5, 0x39, 0x8a, 0x36, 0x99, 0xa6, + 0xb2, 0xa4, 0xee, 0xa5, 0x57, 0x80, 0xfb, 0xf1, 0x6d, 0x2a, 0x58, 0x5e, 0xd1, 0xde, 0xfc, 0x18, + 0x7a, 0x17, 0x2a, 0x19, 0x99, 0x37, 0xf5, 0xee, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x27, + 0x08, 0x5a, 0x34, 0x03, 0x00, 0x00, +} + +func (m *EventEthereumTx) 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 *EventEthereumTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventEthereumTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.EthTxFailed) > 0 { + i -= len(m.EthTxFailed) + copy(dAtA[i:], m.EthTxFailed) + i = encodeVarintEvent(dAtA, i, uint64(len(m.EthTxFailed))) + i-- + dAtA[i] = 0x3a + } + if len(m.Recipient) > 0 { + i -= len(m.Recipient) + copy(dAtA[i:], m.Recipient) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Recipient))) + i-- + dAtA[i] = 0x32 + } + if len(m.Hash) > 0 { + i -= len(m.Hash) + copy(dAtA[i:], m.Hash) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Hash))) + i-- + dAtA[i] = 0x2a + } + if len(m.GasUsed) > 0 { + i -= len(m.GasUsed) + copy(dAtA[i:], m.GasUsed) + i = encodeVarintEvent(dAtA, i, uint64(len(m.GasUsed))) + i-- + dAtA[i] = 0x22 + } + if len(m.Index) > 0 { + i -= len(m.Index) + copy(dAtA[i:], m.Index) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Index))) + i-- + dAtA[i] = 0x1a + } + if len(m.EthHash) > 0 { + i -= len(m.EthHash) + copy(dAtA[i:], m.EthHash) + i = encodeVarintEvent(dAtA, i, uint64(len(m.EthHash))) + i-- + dAtA[i] = 0x12 + } + if len(m.Amount) > 0 { + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventTxLog) 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 *EventTxLog) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventTxLog) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.TxLogs) > 0 { + for iNdEx := len(m.TxLogs) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.TxLogs[iNdEx]) + copy(dAtA[i:], m.TxLogs[iNdEx]) + i = encodeVarintEvent(dAtA, i, uint64(len(m.TxLogs[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EventMessage) 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 *EventMessage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.TxType) > 0 { + i -= len(m.TxType) + copy(dAtA[i:], m.TxType) + i = encodeVarintEvent(dAtA, i, uint64(len(m.TxType))) + i-- + dAtA[i] = 0x1a + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0x12 + } + if len(m.Module) > 0 { + i -= len(m.Module) + copy(dAtA[i:], m.Module) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Module))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventBlockBloom) 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 *EventBlockBloom) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventBlockBloom) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Bloom) > 0 { + i -= len(m.Bloom) + copy(dAtA[i:], m.Bloom) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Bloom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventBlockGas) 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 *EventBlockGas) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventBlockGas) 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 = encodeVarintEvent(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0x12 + } + if len(m.Height) > 0 { + i -= len(m.Height) + copy(dAtA[i:], m.Height) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Height))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventFeeMarket) 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 *EventFeeMarket) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventFeeMarket) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.BaseFee) > 0 { + i -= len(m.BaseFee) + copy(dAtA[i:], m.BaseFee) + i = encodeVarintEvent(dAtA, i, uint64(len(m.BaseFee))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventTx) 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 *EventTx) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventTx) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Fee) > 0 { + i -= len(m.Fee) + copy(dAtA[i:], m.Fee) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Fee))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintEvent(dAtA []byte, offset int, v uint64) int { + offset -= sovEvent(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *EventEthereumTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.EthHash) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Index) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.GasUsed) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Hash) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Recipient) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.EthTxFailed) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventTxLog) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.TxLogs) > 0 { + for _, s := range m.TxLogs { + l = len(s) + n += 1 + l + sovEvent(uint64(l)) + } + } + return n +} + +func (m *EventMessage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Module) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.TxType) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventBlockBloom) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Bloom) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventBlockGas) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Height) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventFeeMarket) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.BaseFee) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventTx) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Fee) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func sovEvent(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozEvent(x uint64) (n int) { + return sovEvent(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *EventEthereumTx) 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 ErrIntOverflowEvent + } + 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: EventEthereumTx: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventEthereumTx: 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) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EthHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EthHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Index = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GasUsed", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.GasUsed = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Hash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Recipient", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Recipient = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EthTxFailed", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EthTxFailed = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventTxLog) 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 ErrIntOverflowEvent + } + 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: EventTxLog: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventTxLog: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxLogs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxLogs = append(m.TxLogs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventMessage) 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 ErrIntOverflowEvent + } + 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: EventMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Module", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Module = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TxType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TxType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventBlockBloom) 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 ErrIntOverflowEvent + } + 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: EventBlockBloom: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventBlockBloom: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Bloom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Bloom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventBlockGas) 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 ErrIntOverflowEvent + } + 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: EventBlockGas: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventBlockGas: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Height", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Height = 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventFeeMarket) 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 ErrIntOverflowEvent + } + 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: EventFeeMarket: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventFeeMarket: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BaseFee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BaseFee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventTx) 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 ErrIntOverflowEvent + } + 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: EventTx: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventTx: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fee", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Fee = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipEvent(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, ErrIntOverflowEvent + } + 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, ErrIntOverflowEvent + } + 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, ErrIntOverflowEvent + } + 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, ErrInvalidLengthEvent + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupEvent + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthEvent + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthEvent = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEvent = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupEvent = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/evm/types/tx.pb.go b/x/evm/types/tx.pb.go index c7edc51f..cb533b9d 100644 --- a/x/evm/types/tx.pb.go +++ b/x/evm/types/tx.pb.go @@ -11,6 +11,7 @@ import ( _ "github.com/cosmos/cosmos-proto" types "github.com/cosmos/cosmos-sdk/codec/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/msgservice" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -353,62 +354,63 @@ func init() { func init() { proto.RegisterFile("stratos/evm/v1/tx.proto", fileDescriptor_8aaa626562d93f7b) } var fileDescriptor_8aaa626562d93f7b = []byte{ - // 868 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0xc1, 0x6f, 0xe3, 0x44, - 0x14, 0xc6, 0x33, 0x89, 0x13, 0x3b, 0x93, 0x50, 0x21, 0x53, 0x84, 0x9b, 0x65, 0xed, 0xc8, 0x08, - 0xc8, 0x25, 0xb6, 0xb6, 0x5c, 0x50, 0x6f, 0xf5, 0xb6, 0x8b, 0x2a, 0xa5, 0x80, 0xac, 0xac, 0xb4, - 0x70, 0x89, 0xa6, 0xce, 0xd4, 0xb1, 0x88, 0x3d, 0x96, 0x67, 0x62, 0x1c, 0x0e, 0x1c, 0x38, 0x71, - 0x03, 0x89, 0x13, 0x37, 0xc4, 0x09, 0x71, 0xde, 0x3f, 0x62, 0xc5, 0x85, 0x15, 0x5c, 0x10, 0x07, - 0x83, 0x52, 0x4e, 0x3d, 0x72, 0xe0, 0x8c, 0x66, 0xec, 0xb4, 0x4d, 0xaa, 0x54, 0x20, 0x5a, 0x89, - 0x53, 0xe7, 0xcd, 0x37, 0x7d, 0xf3, 0xde, 0x7c, 0xbf, 0xf8, 0xc1, 0x57, 0x28, 0x4b, 0x10, 0x23, - 0xd4, 0xc6, 0x69, 0x68, 0xa7, 0x0f, 0x6c, 0x96, 0x59, 0x71, 0x42, 0x18, 0x51, 0xb7, 0x4a, 0xc1, - 0xc2, 0x69, 0x68, 0xa5, 0x0f, 0x3a, 0xdb, 0x3e, 0xf1, 0x89, 0x90, 0x6c, 0xbe, 0x2a, 0x4e, 0x75, - 0x5e, 0xf5, 0x09, 0xf1, 0xa7, 0xd8, 0x46, 0x71, 0x60, 0xa3, 0x28, 0x22, 0x0c, 0xb1, 0x80, 0x44, - 0xb4, 0x54, 0x77, 0x4a, 0x55, 0x44, 0x27, 0xb3, 0x53, 0x1b, 0x45, 0xf3, 0xa5, 0xe4, 0x11, 0x1a, - 0x12, 0x3a, 0x2a, 0x32, 0x16, 0x41, 0x29, 0x69, 0x6b, 0x25, 0xf1, 0x02, 0x84, 0x62, 0x7e, 0x01, - 0xe0, 0x0b, 0xc7, 0xd4, 0x3f, 0x64, 0x13, 0x9c, 0xe0, 0x59, 0x38, 0xcc, 0xd4, 0x1e, 0x94, 0xc6, - 0x88, 0x21, 0x0d, 0x74, 0x41, 0xaf, 0xb5, 0xbb, 0x6d, 0x15, 0x17, 0x5a, 0xcb, 0x0b, 0xad, 0xfd, - 0x68, 0xee, 0x8a, 0x13, 0xea, 0x0e, 0x94, 0x68, 0xf0, 0x09, 0xd6, 0xaa, 0x5d, 0xd0, 0x03, 0x4e, - 0xfd, 0x3c, 0x37, 0x40, 0xdf, 0x15, 0x5b, 0xaa, 0x01, 0xa5, 0x09, 0xa2, 0x13, 0xad, 0xd6, 0x05, - 0xbd, 0xa6, 0xd3, 0xfa, 0x33, 0x37, 0xe4, 0x64, 0x1a, 0xef, 0x99, 0x7d, 0xd3, 0x15, 0x82, 0xaa, - 0x42, 0xe9, 0x34, 0x21, 0xa1, 0x26, 0xf1, 0x03, 0xae, 0x58, 0xef, 0x49, 0x9f, 0x7f, 0x63, 0x54, - 0xcc, 0x1f, 0xab, 0x50, 0x19, 0x60, 0x1f, 0x79, 0xf3, 0x61, 0xa6, 0x6e, 0xc3, 0x7a, 0x44, 0x22, - 0x0f, 0x8b, 0x6a, 0x24, 0xb7, 0x08, 0xd4, 0xc7, 0xb0, 0xe9, 0x23, 0xde, 0x68, 0xe0, 0x15, 0xb7, - 0x37, 0x9d, 0xb7, 0x7f, 0xcd, 0x8d, 0x37, 0xfc, 0x80, 0x4d, 0x66, 0x27, 0x96, 0x47, 0xc2, 0xb2, - 0xfd, 0xf2, 0x4f, 0x9f, 0x8e, 0x3f, 0xb2, 0xd9, 0x3c, 0xc6, 0xd4, 0x3a, 0x8a, 0xd8, 0x4f, 0x4f, - 0xfb, 0xb0, 0x7c, 0x9d, 0xa3, 0x88, 0xb9, 0x8a, 0x8f, 0xe8, 0xfb, 0x3c, 0x93, 0xaa, 0xc3, 0x9a, - 0x8f, 0xa8, 0xa8, 0x59, 0x72, 0xda, 0x8b, 0xdc, 0x50, 0xde, 0x41, 0x74, 0x10, 0x84, 0x01, 0x73, - 0xb9, 0xa0, 0x6e, 0xc1, 0x2a, 0x23, 0x65, 0xc5, 0x55, 0x46, 0xd4, 0x27, 0xb0, 0x9e, 0xa2, 0xe9, - 0x0c, 0x6b, 0x75, 0x51, 0x82, 0xf3, 0xcf, 0x4b, 0x58, 0xe4, 0x46, 0x63, 0x3f, 0x24, 0xb3, 0x6b, - 0xc5, 0x14, 0x09, 0xf9, 0xeb, 0x08, 0x0f, 0x1a, 0x5d, 0xd0, 0x6b, 0x97, 0xaf, 0xdd, 0x86, 0x20, - 0xd5, 0x64, 0xb1, 0x01, 0x52, 0x1e, 0x25, 0x9a, 0x52, 0x44, 0x09, 0x8f, 0xa8, 0xd6, 0x2c, 0x22, - 0xba, 0xb7, 0xc5, 0xdf, 0xf1, 0x87, 0xa7, 0xfd, 0xc6, 0x30, 0x3b, 0x40, 0x0c, 0x99, 0x5f, 0x4b, - 0xb0, 0xbd, 0xef, 0x79, 0x98, 0xd2, 0x41, 0x40, 0xd9, 0x30, 0x53, 0x03, 0xa8, 0x78, 0x13, 0x14, - 0x44, 0xa3, 0x60, 0x2c, 0x1e, 0xb6, 0xe9, 0xbc, 0xfb, 0xaf, 0x6a, 0x97, 0x1f, 0xf2, 0xff, 0x3e, - 0x3a, 0x38, 0xcf, 0x0d, 0xd9, 0x2b, 0x96, 0x6b, 0x7d, 0x94, 0xdb, 0xe3, 0x4b, 0x03, 0xab, 0x1b, - 0x0d, 0xac, 0xdd, 0xb6, 0x81, 0xd2, 0xcd, 0x06, 0xd6, 0xaf, 0x1b, 0xd8, 0xb8, 0x2b, 0x03, 0xe5, - 0x2b, 0x06, 0x7e, 0x00, 0x15, 0x24, 0x5c, 0xc0, 0x54, 0x53, 0xba, 0xb5, 0x5e, 0x6b, 0xf7, 0x9e, - 0xb5, 0xfa, 0x45, 0xb0, 0x0a, 0x97, 0x86, 0xb3, 0x78, 0x8a, 0x9d, 0xee, 0xb3, 0xdc, 0xa8, 0x9c, - 0xe7, 0x06, 0x44, 0x17, 0xd6, 0x7d, 0xff, 0x9b, 0x01, 0x2f, 0x8d, 0x74, 0x2f, 0xd2, 0x15, 0x6c, - 0x34, 0x57, 0xd8, 0x80, 0x2b, 0x6c, 0xb4, 0x36, 0xb1, 0xf1, 0x97, 0x04, 0xdb, 0x07, 0xf3, 0x08, - 0x85, 0x81, 0xf7, 0x08, 0xe3, 0xff, 0x03, 0x1b, 0x4f, 0x60, 0x8b, 0xb3, 0xc1, 0x82, 0x78, 0xe4, - 0xa1, 0xf8, 0x3f, 0xd3, 0xc1, 0x41, 0x1b, 0x06, 0xf1, 0x43, 0x14, 0x2f, 0x33, 0x9f, 0x62, 0x2c, - 0x32, 0x4b, 0xb7, 0x90, 0xf9, 0x11, 0xc6, 0x3c, 0x73, 0x09, 0x5e, 0xfd, 0x66, 0xf0, 0x1a, 0xd7, - 0xc1, 0x93, 0xef, 0x0a, 0x3c, 0x65, 0x03, 0x78, 0xcd, 0x3b, 0x00, 0x0f, 0xae, 0x80, 0xd7, 0x5a, - 0x01, 0xaf, 0xbd, 0x09, 0x3c, 0x13, 0x76, 0x0e, 0x33, 0x86, 0x23, 0x1a, 0x90, 0xe8, 0xbd, 0x58, - 0x8c, 0xb8, 0xcb, 0x21, 0x54, 0x8e, 0x82, 0x6f, 0x01, 0x7c, 0x79, 0x65, 0x38, 0xb9, 0x98, 0xc6, - 0x24, 0xa2, 0xa2, 0x4d, 0x31, 0x5f, 0x40, 0x31, 0x3e, 0xc4, 0x48, 0x79, 0x13, 0x4a, 0x53, 0xe2, - 0x53, 0xad, 0x2a, 0x5a, 0x7c, 0x69, 0xbd, 0xc5, 0x01, 0xf1, 0x5d, 0x71, 0x40, 0x7d, 0x11, 0xd6, - 0x12, 0xcc, 0x04, 0x59, 0x6d, 0x97, 0x2f, 0xd5, 0x1d, 0xa8, 0xa4, 0xe1, 0x08, 0x27, 0x09, 0x49, - 0xca, 0xef, 0xbb, 0x9c, 0x86, 0x87, 0x3c, 0xe4, 0x12, 0x87, 0x66, 0x46, 0xf1, 0xb8, 0xf0, 0xd7, - 0x95, 0x7d, 0x44, 0x1f, 0x53, 0x3c, 0x2e, 0x8a, 0xdc, 0xfd, 0x14, 0xd6, 0x8e, 0xa9, 0xaf, 0x7e, - 0x0c, 0xe1, 0x95, 0x21, 0x7a, 0x7f, 0xfd, 0xf6, 0x95, 0x36, 0x3a, 0xaf, 0xdf, 0x28, 0x2f, 0xbb, - 0x34, 0x5f, 0xfb, 0xec, 0xe7, 0x3f, 0xbe, 0xaa, 0xde, 0x37, 0xef, 0xd9, 0xeb, 0xf3, 0xbb, 0x3c, - 0x3b, 0x62, 0x99, 0x73, 0xfc, 0xdd, 0x42, 0x07, 0xcf, 0x16, 0x3a, 0x78, 0xbe, 0xd0, 0xc1, 0xef, - 0x0b, 0x1d, 0x7c, 0x79, 0xa6, 0x57, 0x9e, 0x9f, 0xe9, 0x95, 0x5f, 0xce, 0xf4, 0xca, 0x87, 0xf6, - 0x15, 0xac, 0xca, 0x24, 0x11, 0x66, 0xcb, 0x65, 0x5f, 0xfc, 0x14, 0xed, 0x4c, 0xe4, 0x15, 0x8c, - 0x9d, 0x34, 0xc4, 0xa0, 0x7f, 0xeb, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x38, 0x7d, 0xff, 0x8b, - 0xc6, 0x08, 0x00, 0x00, + // 891 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0xcf, 0x8b, 0x23, 0x45, + 0x14, 0xc7, 0x53, 0x49, 0x27, 0xe9, 0x54, 0xe2, 0x20, 0xed, 0xc8, 0xf6, 0x64, 0xdd, 0x74, 0x88, + 0xa8, 0x41, 0x48, 0x37, 0x3b, 0x5e, 0x64, 0x6e, 0x93, 0x9d, 0x59, 0x19, 0x98, 0x51, 0x69, 0xb2, + 0xb0, 0x7a, 0x09, 0x35, 0x9d, 0x9a, 0x4a, 0x63, 0xba, 0xab, 0xe9, 0xaa, 0xb4, 0x89, 0x27, 0x11, + 0x04, 0x6f, 0x0a, 0x9e, 0xbc, 0x89, 0x27, 0xf1, 0xe4, 0x61, 0xff, 0x88, 0xc5, 0x8b, 0x8b, 0x5e, + 0xc4, 0x43, 0x94, 0x8c, 0x20, 0xcc, 0xd1, 0x83, 0x67, 0xa9, 0x1f, 0xd9, 0x99, 0x64, 0xc8, 0xa0, + 0x38, 0x03, 0x7b, 0x4a, 0xbd, 0xfe, 0x56, 0xbf, 0x7a, 0xaf, 0xbe, 0x9f, 0xf4, 0x83, 0xb7, 0x18, + 0x4f, 0x11, 0xa7, 0xcc, 0xc3, 0x59, 0xe4, 0x65, 0x77, 0x3d, 0x3e, 0x71, 0x93, 0x94, 0x72, 0x6a, + 0x6d, 0x68, 0xc1, 0xc5, 0x59, 0xe4, 0x66, 0x77, 0xeb, 0x9b, 0x84, 0x12, 0x2a, 0x25, 0x4f, 0xac, + 0xd4, 0xae, 0xfa, 0xad, 0x80, 0xb2, 0x88, 0x32, 0x2f, 0x62, 0x44, 0xbc, 0x1d, 0x31, 0xa2, 0x85, + 0x97, 0x08, 0xa5, 0x64, 0x84, 0x3d, 0x94, 0x84, 0x1e, 0x8a, 0x63, 0xca, 0x11, 0x0f, 0x69, 0xcc, + 0xb4, 0xba, 0xa5, 0x55, 0x19, 0x1d, 0x8f, 0x4f, 0x3c, 0x14, 0x4f, 0x17, 0x92, 0xca, 0xd8, 0x57, + 0x47, 0xa9, 0x40, 0x4b, 0xf6, 0x4a, 0xad, 0xa2, 0x32, 0xa9, 0xb4, 0x3e, 0x07, 0xf0, 0xb9, 0x23, + 0x46, 0xf6, 0xf9, 0x10, 0xa7, 0x78, 0x1c, 0xf5, 0x26, 0x56, 0x1b, 0x1a, 0x03, 0xc4, 0x91, 0x0d, + 0x9a, 0xa0, 0x5d, 0xdd, 0xde, 0x74, 0xd5, 0x81, 0xee, 0xe2, 0x40, 0x77, 0x37, 0x9e, 0xfa, 0x72, + 0x87, 0xb5, 0x05, 0x0d, 0x16, 0x7e, 0x84, 0xed, 0x7c, 0x13, 0xb4, 0x41, 0xb7, 0x78, 0x36, 0x73, + 0x40, 0xc7, 0x97, 0x8f, 0x2c, 0x07, 0x1a, 0x43, 0xc4, 0x86, 0x76, 0xa1, 0x09, 0xda, 0x95, 0x6e, + 0xf5, 0xaf, 0x99, 0x53, 0x4e, 0x47, 0xc9, 0x4e, 0xab, 0xd3, 0xf2, 0xa5, 0x60, 0x59, 0xd0, 0x38, + 0x49, 0x69, 0x64, 0x1b, 0x62, 0x83, 0x2f, 0xd7, 0x3b, 0xc6, 0x67, 0x5f, 0x3b, 0xb9, 0xd6, 0x8f, + 0x79, 0x68, 0x1e, 0x62, 0x82, 0x82, 0x69, 0x6f, 0x62, 0x6d, 0xc2, 0x62, 0x4c, 0xe3, 0x00, 0xcb, + 0x6a, 0x0c, 0x5f, 0x05, 0xd6, 0x03, 0x58, 0x21, 0x48, 0x34, 0x1a, 0x06, 0xea, 0xf4, 0x4a, 0xf7, + 0xcd, 0x5f, 0x67, 0xce, 0xab, 0x24, 0xe4, 0xc3, 0xf1, 0xb1, 0x1b, 0xd0, 0x48, 0xb7, 0xaf, 0x7f, + 0x3a, 0x6c, 0xf0, 0x81, 0xc7, 0xa7, 0x09, 0x66, 0xee, 0x41, 0xcc, 0x7f, 0x7a, 0xd4, 0x81, 0xfa, + 0x76, 0x0e, 0x62, 0xee, 0x9b, 0x04, 0xb1, 0x77, 0x45, 0x26, 0xab, 0x01, 0x0b, 0x04, 0x31, 0x59, + 0xb3, 0xd1, 0xad, 0xcd, 0x67, 0x8e, 0xf9, 0x16, 0x62, 0x87, 0x61, 0x14, 0x72, 0x5f, 0x08, 0xd6, + 0x06, 0xcc, 0x73, 0xaa, 0x2b, 0xce, 0x73, 0x6a, 0x3d, 0x84, 0xc5, 0x0c, 0x8d, 0xc6, 0xd8, 0x2e, + 0xca, 0x12, 0xba, 0xff, 0xbe, 0x84, 0xf9, 0xcc, 0x29, 0xed, 0x46, 0x74, 0x7c, 0xa9, 0x18, 0x95, + 0x50, 0xdc, 0x8e, 0xf4, 0xa0, 0xd4, 0x04, 0xed, 0x9a, 0xbe, 0xed, 0x1a, 0x04, 0x99, 0x5d, 0x96, + 0x0f, 0x40, 0x26, 0xa2, 0xd4, 0x36, 0x55, 0x94, 0x8a, 0x88, 0xd9, 0x15, 0x15, 0xb1, 0x9d, 0x0d, + 0x71, 0x8f, 0x3f, 0x3c, 0xea, 0x94, 0x7a, 0x93, 0x3d, 0xc4, 0x51, 0xeb, 0x2b, 0x03, 0xd6, 0x76, + 0x83, 0x00, 0x33, 0x76, 0x18, 0x32, 0xde, 0x9b, 0x58, 0x21, 0x34, 0x83, 0x21, 0x0a, 0xe3, 0x7e, + 0x38, 0x90, 0x17, 0x5b, 0xe9, 0xbe, 0xfd, 0x9f, 0x6a, 0x2f, 0xdf, 0x13, 0x6f, 0x1f, 0xec, 0x9d, + 0xcd, 0x9c, 0x72, 0xa0, 0x96, 0x2b, 0x7d, 0xe8, 0xc7, 0x83, 0x73, 0x03, 0xf3, 0x6b, 0x0d, 0x2c, + 0x5c, 0xb7, 0x81, 0xc6, 0xd5, 0x06, 0x16, 0x2f, 0x1b, 0x58, 0xba, 0x29, 0x03, 0xcb, 0x17, 0x0c, + 0x7c, 0x0f, 0x9a, 0x48, 0xba, 0x80, 0x99, 0x6d, 0x36, 0x0b, 0xed, 0xea, 0xf6, 0x6d, 0x77, 0xf9, + 0x53, 0xe1, 0x2a, 0x97, 0x7a, 0xe3, 0x64, 0x84, 0xbb, 0xcd, 0xc7, 0x33, 0x27, 0x77, 0x36, 0x73, + 0x20, 0x7a, 0x6a, 0xdd, 0x77, 0xbf, 0x39, 0xf0, 0xdc, 0x48, 0xff, 0x69, 0x3a, 0xc5, 0x46, 0x65, + 0x89, 0x0d, 0xb8, 0xc4, 0x46, 0x75, 0x1d, 0x1b, 0x7f, 0x1b, 0xb0, 0xb6, 0x37, 0x8d, 0x51, 0x14, + 0x06, 0xf7, 0x31, 0x7e, 0x16, 0xd8, 0x78, 0x08, 0xab, 0x82, 0x0d, 0x1e, 0x26, 0xfd, 0x00, 0x25, + 0xff, 0x9b, 0x0e, 0x01, 0x5a, 0x2f, 0x4c, 0xee, 0xa1, 0x64, 0x91, 0xf9, 0x04, 0x63, 0x99, 0xd9, + 0xb8, 0x86, 0xcc, 0xf7, 0x31, 0x16, 0x99, 0x35, 0x78, 0xc5, 0xab, 0xc1, 0x2b, 0x5d, 0x06, 0xaf, + 0x7c, 0x53, 0xe0, 0x99, 0x6b, 0xc0, 0xab, 0xdc, 0x00, 0x78, 0x70, 0x09, 0xbc, 0xea, 0x12, 0x78, + 0xb5, 0x75, 0xe0, 0xb5, 0x60, 0x7d, 0x7f, 0xc2, 0x71, 0xcc, 0x42, 0x1a, 0xbf, 0x93, 0xc8, 0x11, + 0x77, 0x3e, 0x84, 0xf4, 0x28, 0xf8, 0x06, 0xc0, 0x17, 0x97, 0x86, 0x93, 0x8f, 0x59, 0x42, 0x63, + 0x26, 0xdb, 0x94, 0xf3, 0x05, 0xa8, 0xf1, 0x21, 0x47, 0xca, 0x6b, 0xd0, 0x18, 0x51, 0xc2, 0xec, + 0xbc, 0x6c, 0xf1, 0x85, 0xd5, 0x16, 0x0f, 0x29, 0xf1, 0xe5, 0x06, 0xeb, 0x79, 0x58, 0x48, 0x31, + 0x97, 0x64, 0xd5, 0x7c, 0xb1, 0xb4, 0xb6, 0xa0, 0x99, 0x45, 0x7d, 0x9c, 0xa6, 0x34, 0xd5, 0xdf, + 0xf7, 0x72, 0x16, 0xed, 0x8b, 0x50, 0x48, 0x02, 0x9a, 0x31, 0xc3, 0x03, 0xe5, 0xaf, 0x5f, 0x26, + 0x88, 0x3d, 0x60, 0x78, 0xa0, 0x8a, 0xdc, 0xfe, 0x14, 0xc0, 0xc2, 0x11, 0x23, 0xd6, 0x87, 0x10, + 0x5e, 0x98, 0xa2, 0x77, 0x56, 0x8f, 0x5f, 0xea, 0xa3, 0xfe, 0xca, 0x95, 0xf2, 0xa2, 0xcd, 0xd6, + 0xcb, 0x9f, 0xfc, 0xfc, 0xc7, 0x97, 0xf9, 0x3b, 0xad, 0xdb, 0xde, 0xea, 0x00, 0xd7, 0x7b, 0xfb, + 0x7c, 0x52, 0x2f, 0x7e, 0xfc, 0xe7, 0xf7, 0xaf, 0x83, 0xee, 0xd1, 0xb7, 0xf3, 0x06, 0x78, 0x3c, + 0x6f, 0x80, 0x27, 0xf3, 0x06, 0xf8, 0x7d, 0xde, 0x00, 0x5f, 0x9c, 0x36, 0x72, 0x4f, 0x4e, 0x1b, + 0xb9, 0x5f, 0x4e, 0x1b, 0xb9, 0xf7, 0xbd, 0x0b, 0x78, 0xe9, 0x5c, 0x31, 0xe6, 0x8b, 0x65, 0x47, + 0xfe, 0x25, 0xbd, 0x89, 0x4c, 0x2f, 0x59, 0x3b, 0x2e, 0xc9, 0x81, 0xff, 0xc6, 0x3f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x25, 0x8f, 0x86, 0x32, 0xe7, 0x08, 0x00, 0x00, } func (this *MsgEthereumTx) Equal(that interface{}) bool { diff --git a/x/pot/client/cli/tx.go b/x/pot/client/cli/tx.go index cf3f35d6..11b55dde 100644 --- a/x/pot/client/cli/tx.go +++ b/x/pot/client/cli/tx.go @@ -36,7 +36,6 @@ func NewTxCmd() *cobra.Command { potTxCmd.AddCommand( VolumeReportCmd(), WithdrawCmd(), - LegacyWithdrawCmd(), FoundationDepositCmd(), SlashingResourceNodeCmd(), ) @@ -102,67 +101,6 @@ func buildWithdrawMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgWit return msg, nil } -func LegacyWithdrawCmd() *cobra.Command { - cmd := &cobra.Command{ - Use: "legacy-withdraw", - Short: "withdraw POT reward recorded by legacy wallet address", - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx, err := client.GetClientTxContext(cmd) - if err != nil { - return err - } - - msg, err := buildLegacyWithdrawMsg(clientCtx, cmd.Flags()) - if err != nil { - return err - } - - return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg) - }, - } - - cmd.Flags().AddFlagSet(flagSetAmount()) - cmd.Flags().AddFlagSet(flagSetTargetAddress()) - flags.AddTxFlagsToCmd(cmd) - - _ = cmd.MarkFlagRequired(FlagAmount) - _ = cmd.MarkFlagRequired(flags.FlagFrom) - - return cmd -} - -// makes a new LegacyWithdrawMsg. -func buildLegacyWithdrawMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.MsgLegacyWithdraw, error) { - amountStr, err := fs.GetString(FlagAmount) - if err != nil { - return nil, err - } - amount, err := sdk.ParseCoinsNormalized(amountStr) - if err != nil { - return nil, err - } - from := clientCtx.GetFromAddress() - - targetAddressStr, err := fs.GetString(FlagTargetAddress) - if err != nil { - return nil, err - } - - var targetAddress sdk.AccAddress - if targetAddressStr == "" { - targetAddress = from - } else { - targetAddress, err = sdk.AccAddressFromBech32(targetAddressStr) - if err != nil { - return nil, err - } - } - - msg := types.NewMsgLegacyWithdraw(amount, from, targetAddress) - - return msg, nil -} - // VolumeReportCmd will report wallets volume and sign it with the given key. func VolumeReportCmd() *cobra.Command { cmd := &cobra.Command{ diff --git a/x/pot/handler.go b/x/pot/handler.go index 275a7e66..2541a00f 100644 --- a/x/pot/handler.go +++ b/x/pot/handler.go @@ -23,9 +23,6 @@ func NewHandler(k keeper.Keeper) sdk.Handler { case *types.MsgWithdraw: res, err := msgServer.HandleMsgWithdraw(sdk.WrapSDKContext(ctx), msg) return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgLegacyWithdraw: - res, err := msgServer.HandleMsgLegacyWithdraw(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) case *types.MsgFoundationDeposit: res, err := msgServer.HandleMsgFoundationDeposit(sdk.WrapSDKContext(ctx), msg) return sdk.WrapServiceResult(ctx, res, err) diff --git a/x/pot/keeper/msg_server.go b/x/pot/keeper/msg_server.go index 0a0076bc..351d8ca4 100644 --- a/x/pot/keeper/msg_server.go +++ b/x/pot/keeper/msg_server.go @@ -3,17 +3,13 @@ package keeper import ( "bytes" "context" - "encoding/hex" "fmt" - "strconv" "github.com/cometbft/cometbft/crypto/tmhash" "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" - "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/bech32" "github.com/stratosnet/stratos-chain/crypto" "github.com/stratosnet/stratos-chain/crypto/bls" @@ -92,18 +88,13 @@ func (k msgServer) HandleMsgVolumeReport(goCtx context.Context, msg *types.MsgVo return nil, errors.Wrap(types.ErrVolumeReport, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeVolumeReport, - sdk.NewAttribute(types.AttributeKeyReportReference, hex.EncodeToString([]byte(msg.ReportReference))), - sdk.NewAttribute(types.AttributeKeyEpoch, msg.Epoch.String()), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.ReporterOwner), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventVolumeReport{ + ReportReference: msg.GetReportReference(), + Epoch: msg.Epoch, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } return &types.MsgVolumeReportResponse{}, nil } @@ -123,62 +114,16 @@ func (k msgServer) HandleMsgWithdraw(goCtx context.Context, msg *types.MsgWithdr return &types.MsgWithdrawResponse{}, errors.Wrap(types.ErrWithdrawFailure, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeWithdraw, - sdk.NewAttribute(types.AttributeKeyAmount, msg.Amount.String()), - sdk.NewAttribute(types.AttributeKeyWalletAddress, msg.WalletAddress), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.WalletAddress), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventWithdraw{ + Amount: msg.GetAmount(), + WalletAddress: msg.GetWalletAddress(), + TargetAddress: msg.GetTargetAddress(), }) - return &types.MsgWithdrawResponse{}, nil -} - -func (k msgServer) HandleMsgLegacyWithdraw(goCtx context.Context, msg *types.MsgLegacyWithdraw) (*types.MsgLegacyWithdrawResponse, error) { - ctx := sdk.UnwrapSDKContext(goCtx) - - targetAddress, err := sdk.AccAddressFromBech32(msg.TargetAddress) - if err != nil { - return &types.MsgLegacyWithdrawResponse{}, errors.Wrap(types.ErrInvalidAddress, err.Error()) - } - - fromAddress, err := sdk.AccAddressFromBech32(msg.From) if err != nil { - return &types.MsgLegacyWithdrawResponse{}, errors.Wrap(types.ErrInvalidAddress, err.Error()) + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } - fromAcc := k.accountKeeper.GetAccount(ctx, fromAddress) - pubKey := fromAcc.GetPubKey() - legacyPubKey := secp256k1.PubKey{Key: pubKey.Bytes()} - legacyWalletAddress := sdk.AccAddress(legacyPubKey.Address().Bytes()) - - legacyWalletAddrStr, err := bech32.ConvertAndEncode(stratos.AccountAddressPrefix, legacyWalletAddress.Bytes()) - if err != nil { - return &types.MsgLegacyWithdrawResponse{}, errors.Wrap(types.ErrLegacyWithdrawFailure, err.Error()) - } - - err = k.Withdraw(ctx, msg.Amount, legacyWalletAddress, targetAddress) - if err != nil { - return &types.MsgLegacyWithdrawResponse{}, errors.Wrap(types.ErrLegacyWithdrawFailure, err.Error()) - } - - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeLegacyWithdraw, - sdk.NewAttribute(types.AttributeKeyAmount, msg.Amount.String()), - sdk.NewAttribute(types.AttributeKeyLegacyWalletAddress, legacyWalletAddrStr), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.From), - ), - }) - return &types.MsgLegacyWithdrawResponse{}, nil + return &types.MsgWithdrawResponse{}, nil } func (k msgServer) HandleMsgFoundationDeposit(goCtx context.Context, msg *types.MsgFoundationDeposit) (*types.MsgFoundationDepositResponse, error) { @@ -192,17 +137,13 @@ func (k msgServer) HandleMsgFoundationDeposit(goCtx context.Context, msg *types. return &types.MsgFoundationDepositResponse{}, errors.Wrap(types.ErrFoundationDepositFailure, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeFoundationDeposit, - sdk.NewAttribute(types.AttributeKeyAmount, msg.Amount.String()), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.From), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventFoundationDeposit{ + Amount: msg.GetAmount(), }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + return &types.MsgFoundationDepositResponse{}, nil } @@ -244,15 +185,17 @@ func (k msgServer) HandleMsgSlashingResourceNode(goCtx context.Context, msg *typ if err != nil { return &types.MsgSlashingResourceNodeResponse{}, errors.Wrap(types.ErrSlashingResourceNodeFailure, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeSlashing, - sdk.NewAttribute(types.AttributeKeyWalletAddress, msg.WalletAddress), - sdk.NewAttribute(types.AttributeKeyNodeP2PAddress, msg.NetworkAddress), - sdk.NewAttribute(types.AttributeKeyAmount, tokenAmt.String()), - sdk.NewAttribute(types.AttributeKeySlashingNodeType, nodeType.String()), - sdk.NewAttribute(types.AttributeKeyNodeSuspended, strconv.FormatBool(msg.Suspend)), - ), + + err = ctx.EventManager().EmitTypedEvent(&types.EventSlashing{ + WalletAddress: msg.GetWalletAddress(), + NetworkAddress: msg.GetNetworkAddress(), + Amount: tokenAmt, + SlashingType: nodeType.String(), + Suspend: msg.GetSuspend(), }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + return &types.MsgSlashingResourceNodeResponse{}, nil } diff --git a/x/pot/types/errors.go b/x/pot/types/errors.go index a2ead55a..e5045e5a 100644 --- a/x/pot/types/errors.go +++ b/x/pot/types/errors.go @@ -6,7 +6,6 @@ import ( const ( codeErrInvalid = uint32(iota) + 2 // NOTE: code 1 is reserved for internal errors - codeErrUnknownAccountAddress codeErrOutOfIssuance codeErrWithdrawAmountInvalid codeErrMissingWalletAddress @@ -31,23 +30,20 @@ const ( codeErrBLSNotReachThreshold codeErrReporterAddress codeErrInvalidAmount - codeErrCannotFindReport - codeErrCannotFindReward codeErrInvalidAddress codeErrInvalidDenom codeErrWithdrawFailure codeErrFoundationDepositFailure codeErrSlashingResourceNodeFailure codeErrVolumeReport - codeErrLegacyWithdrawFailure codeErrReporterAddressOrOwner codeErrTotalSupplyCapHit codeErrInsufficientCommunityPool + codeErrEmitEvent ) var ( ErrInvalid = errors.Register(ModuleName, codeErrInvalid, "error invalid") - ErrUnknownAccountAddress = errors.Register(ModuleName, codeErrUnknownAccountAddress, "account address does not exist") ErrOutOfIssuance = errors.Register(ModuleName, codeErrOutOfIssuance, "mining reward reaches the issuance limit") ErrWithdrawAmountInvalid = errors.Register(ModuleName, codeErrWithdrawAmountInvalid, "withdraw amount is invalid") ErrMissingWalletAddress = errors.Register(ModuleName, codeErrMissingWalletAddress, "missing wallet address") @@ -72,16 +68,14 @@ var ( ErrBLSNotReachThreshold = errors.Register(ModuleName, codeErrBLSNotReachThreshold, "BLS signed meta-nodes does not reach the threshold") ErrReporterAddress = errors.Register(ModuleName, codeErrReporterAddress, "invalid reporter address") ErrInvalidAmount = errors.Register(ModuleName, codeErrInvalidAmount, "invalid amount") - ErrCannotFindReport = errors.Register(ModuleName, codeErrCannotFindReport, "Can not find report") - ErrCannotFindReward = errors.Register(ModuleName, codeErrCannotFindReward, "Can not find Pot rewards") ErrInvalidAddress = errors.Register(ModuleName, codeErrInvalidAddress, "invalid address") ErrInvalidDenom = errors.Register(ModuleName, codeErrInvalidDenom, "invalid denomination") ErrWithdrawFailure = errors.Register(ModuleName, codeErrWithdrawFailure, "failure during withdraw") ErrFoundationDepositFailure = errors.Register(ModuleName, codeErrFoundationDepositFailure, "failure during foundation deposit") ErrSlashingResourceNodeFailure = errors.Register(ModuleName, codeErrSlashingResourceNodeFailure, "failure during slashing resource node") ErrVolumeReport = errors.Register(ModuleName, codeErrVolumeReport, "volume report failed") - ErrLegacyWithdrawFailure = errors.Register(ModuleName, codeErrLegacyWithdrawFailure, "failure during legacyWithdraw") ErrReporterAddressOrOwner = errors.Register(ModuleName, codeErrReporterAddressOrOwner, "invalid reporter address or owner address") ErrTotalSupplyCapHit = errors.Register(ModuleName, codeErrTotalSupplyCapHit, "minting not completed because total supply cap is hit") ErrInsufficientCommunityPool = errors.Register(ModuleName, codeErrInsufficientCommunityPool, "burning not completed as a result of insufficient balance in community pool") + ErrEmitEvent = errors.Register(ModuleName, codeErrEmitEvent, "failed to emit event") ) diff --git a/x/pot/types/event.pb.go b/x/pot/types/event.pb.go new file mode 100644 index 00000000..0cc62222 --- /dev/null +++ b/x/pot/types/event.pb.go @@ -0,0 +1,1220 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: stratos/pot/v1/event.proto + +package types + +import ( + fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + _ "github.com/cosmos/cosmos-sdk/codec/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/x/staking/types" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + _ "google.golang.org/protobuf/types/known/timestamppb" + 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 + +// EventVolumeReport is emitted on Msg/MsgVolumeReport +type EventVolumeReport struct { + ReportReference string `protobuf:"bytes,1,opt,name=report_reference,json=reportReference,proto3" json:"report_reference,omitempty"` + Epoch github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=epoch,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"epoch"` +} + +func (m *EventVolumeReport) Reset() { *m = EventVolumeReport{} } +func (m *EventVolumeReport) String() string { return proto.CompactTextString(m) } +func (*EventVolumeReport) ProtoMessage() {} +func (*EventVolumeReport) Descriptor() ([]byte, []int) { + return fileDescriptor_4848852d1aafb62a, []int{0} +} +func (m *EventVolumeReport) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventVolumeReport) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventVolumeReport.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 *EventVolumeReport) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventVolumeReport.Merge(m, src) +} +func (m *EventVolumeReport) XXX_Size() int { + return m.Size() +} +func (m *EventVolumeReport) XXX_DiscardUnknown() { + xxx_messageInfo_EventVolumeReport.DiscardUnknown(m) +} + +var xxx_messageInfo_EventVolumeReport proto.InternalMessageInfo + +func (m *EventVolumeReport) GetReportReference() string { + if m != nil { + return m.ReportReference + } + return "" +} + +// EventWithdraw is emitted on Msg/MsgWithdraw +type EventWithdraw struct { + Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` + WalletAddress string `protobuf:"bytes,2,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` + TargetAddress string `protobuf:"bytes,3,opt,name=target_address,json=targetAddress,proto3" json:"target_address,omitempty"` +} + +func (m *EventWithdraw) Reset() { *m = EventWithdraw{} } +func (m *EventWithdraw) String() string { return proto.CompactTextString(m) } +func (*EventWithdraw) ProtoMessage() {} +func (*EventWithdraw) Descriptor() ([]byte, []int) { + return fileDescriptor_4848852d1aafb62a, []int{1} +} +func (m *EventWithdraw) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventWithdraw) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventWithdraw.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 *EventWithdraw) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventWithdraw.Merge(m, src) +} +func (m *EventWithdraw) XXX_Size() int { + return m.Size() +} +func (m *EventWithdraw) XXX_DiscardUnknown() { + xxx_messageInfo_EventWithdraw.DiscardUnknown(m) +} + +var xxx_messageInfo_EventWithdraw proto.InternalMessageInfo + +func (m *EventWithdraw) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { + if m != nil { + return m.Amount + } + return nil +} + +func (m *EventWithdraw) GetWalletAddress() string { + if m != nil { + return m.WalletAddress + } + return "" +} + +func (m *EventWithdraw) GetTargetAddress() string { + if m != nil { + return m.TargetAddress + } + return "" +} + +// EventFoundationDeposit is emitted on Msg/MsgFoundationDeposit +type EventFoundationDeposit struct { + Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` +} + +func (m *EventFoundationDeposit) Reset() { *m = EventFoundationDeposit{} } +func (m *EventFoundationDeposit) String() string { return proto.CompactTextString(m) } +func (*EventFoundationDeposit) ProtoMessage() {} +func (*EventFoundationDeposit) Descriptor() ([]byte, []int) { + return fileDescriptor_4848852d1aafb62a, []int{2} +} +func (m *EventFoundationDeposit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventFoundationDeposit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventFoundationDeposit.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 *EventFoundationDeposit) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventFoundationDeposit.Merge(m, src) +} +func (m *EventFoundationDeposit) XXX_Size() int { + return m.Size() +} +func (m *EventFoundationDeposit) XXX_DiscardUnknown() { + xxx_messageInfo_EventFoundationDeposit.DiscardUnknown(m) +} + +var xxx_messageInfo_EventFoundationDeposit proto.InternalMessageInfo + +func (m *EventFoundationDeposit) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { + if m != nil { + return m.Amount + } + return nil +} + +// EventSlashing is emitted on Msg/MsgSlashingResourceNode +type EventSlashing struct { + WalletAddress string `protobuf:"bytes,1,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + Amount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"amount"` + SlashingType string `protobuf:"bytes,4,opt,name=slashing_type,json=slashingType,proto3" json:"slashing_type,omitempty"` + Suspend bool `protobuf:"varint,5,opt,name=suspend,proto3" json:"suspend,omitempty"` +} + +func (m *EventSlashing) Reset() { *m = EventSlashing{} } +func (m *EventSlashing) String() string { return proto.CompactTextString(m) } +func (*EventSlashing) ProtoMessage() {} +func (*EventSlashing) Descriptor() ([]byte, []int) { + return fileDescriptor_4848852d1aafb62a, []int{3} +} +func (m *EventSlashing) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventSlashing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventSlashing.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 *EventSlashing) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventSlashing.Merge(m, src) +} +func (m *EventSlashing) XXX_Size() int { + return m.Size() +} +func (m *EventSlashing) XXX_DiscardUnknown() { + xxx_messageInfo_EventSlashing.DiscardUnknown(m) +} + +var xxx_messageInfo_EventSlashing proto.InternalMessageInfo + +func (m *EventSlashing) GetWalletAddress() string { + if m != nil { + return m.WalletAddress + } + return "" +} + +func (m *EventSlashing) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func (m *EventSlashing) GetSlashingType() string { + if m != nil { + return m.SlashingType + } + return "" +} + +func (m *EventSlashing) GetSuspend() bool { + if m != nil { + return m.Suspend + } + return false +} + +func init() { + proto.RegisterType((*EventVolumeReport)(nil), "stratos.pot.v1.EventVolumeReport") + proto.RegisterType((*EventWithdraw)(nil), "stratos.pot.v1.EventWithdraw") + proto.RegisterType((*EventFoundationDeposit)(nil), "stratos.pot.v1.EventFoundationDeposit") + proto.RegisterType((*EventSlashing)(nil), "stratos.pot.v1.EventSlashing") +} + +func init() { proto.RegisterFile("stratos/pot/v1/event.proto", fileDescriptor_4848852d1aafb62a) } + +var fileDescriptor_4848852d1aafb62a = []byte{ + // 534 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xcd, 0x6e, 0xd3, 0x40, + 0x10, 0x8e, 0x1b, 0x5a, 0x60, 0x21, 0x29, 0x58, 0x15, 0x72, 0x73, 0x70, 0xa2, 0x80, 0x50, 0x38, + 0xc4, 0x4b, 0xe0, 0x8a, 0x84, 0x1a, 0x7e, 0xa4, 0x5c, 0xdd, 0x0a, 0x24, 0x2e, 0xd1, 0xc6, 0xde, + 0x3a, 0xab, 0xd8, 0x3b, 0xd6, 0xee, 0x38, 0x21, 0x07, 0xde, 0x01, 0xf1, 0x14, 0x88, 0x73, 0x1f, + 0xa2, 0xc7, 0xaa, 0x27, 0xc4, 0xa1, 0xa0, 0xe4, 0x1d, 0x38, 0x23, 0xdb, 0xeb, 0xaa, 0x42, 0x48, + 0x14, 0x09, 0xf5, 0xe4, 0x99, 0xf9, 0x66, 0x3e, 0xcf, 0xf7, 0x79, 0xbd, 0xa4, 0xa5, 0x51, 0x31, + 0x04, 0x4d, 0x53, 0x40, 0x3a, 0x1f, 0x50, 0x3e, 0xe7, 0x12, 0xbd, 0x54, 0x01, 0x82, 0xdd, 0x34, + 0x98, 0x97, 0x02, 0x7a, 0xf3, 0x41, 0x6b, 0x27, 0x82, 0x08, 0x0a, 0x88, 0xe6, 0x51, 0xd9, 0xd5, + 0xda, 0x0d, 0x40, 0x27, 0xa0, 0xc7, 0x25, 0x50, 0x26, 0x06, 0x72, 0xcb, 0x8c, 0x4e, 0x98, 0xe6, + 0x74, 0x3e, 0x98, 0x70, 0x64, 0x03, 0x1a, 0x80, 0x90, 0xd5, 0x68, 0x04, 0x10, 0xc5, 0x9c, 0x16, + 0xd9, 0x24, 0x3b, 0xa4, 0x4c, 0x2e, 0x0d, 0xd4, 0xfe, 0x1d, 0x42, 0x91, 0x70, 0x8d, 0x2c, 0x49, + 0x4d, 0xc3, 0x03, 0xc3, 0xad, 0x91, 0xcd, 0x84, 0x8c, 0xce, 0xe9, 0x4d, 0x5e, 0x76, 0x75, 0x3f, + 0x59, 0xe4, 0xee, 0xab, 0x5c, 0xd2, 0x1b, 0x88, 0xb3, 0x84, 0xfb, 0x3c, 0x05, 0x85, 0xf6, 0x23, + 0x72, 0x47, 0x15, 0xd1, 0x58, 0xf1, 0x43, 0xae, 0xb8, 0x0c, 0xb8, 0x63, 0x75, 0xac, 0xde, 0x4d, + 0x7f, 0xbb, 0xac, 0xfb, 0x55, 0xd9, 0xf6, 0xc9, 0x26, 0x4f, 0x21, 0x98, 0x3a, 0x1b, 0x39, 0x3e, + 0x7c, 0x76, 0x7c, 0xd6, 0xae, 0x7d, 0x3b, 0x6b, 0x3f, 0x8c, 0x04, 0x4e, 0xb3, 0x89, 0x17, 0x40, + 0x62, 0x24, 0x9b, 0x47, 0x5f, 0x87, 0x33, 0x8a, 0xcb, 0x94, 0x6b, 0x6f, 0x24, 0xf1, 0xf4, 0xa8, + 0x4f, 0x8c, 0x23, 0x23, 0x89, 0x7e, 0x49, 0xd5, 0xfd, 0x69, 0x91, 0x46, 0xb1, 0xd4, 0x5b, 0x81, + 0xd3, 0x50, 0xb1, 0x85, 0x1d, 0x90, 0x2d, 0x96, 0x40, 0x26, 0xd1, 0xb1, 0x3a, 0xf5, 0xde, 0xad, + 0x27, 0xbb, 0x9e, 0x99, 0xca, 0x9d, 0xf3, 0x8c, 0x34, 0xef, 0x05, 0x08, 0x39, 0x7c, 0x9c, 0x6f, + 0xf0, 0xe5, 0x7b, 0xbb, 0x77, 0x89, 0x0d, 0xf2, 0x01, 0xed, 0x1b, 0x6a, 0xfb, 0x39, 0x69, 0x2e, + 0x58, 0x1c, 0x73, 0x1c, 0xb3, 0x30, 0x54, 0x5c, 0x6b, 0xa3, 0xc9, 0x39, 0x3d, 0xea, 0xef, 0x98, + 0xf7, 0xed, 0x95, 0xc8, 0x3e, 0x2a, 0x21, 0x23, 0xbf, 0x51, 0xf6, 0x9b, 0x62, 0x4e, 0x80, 0x4c, + 0x45, 0x17, 0x08, 0xea, 0x7f, 0x23, 0x28, 0xfb, 0x4d, 0xb1, 0xfb, 0x81, 0xdc, 0x2b, 0x74, 0xbf, + 0x86, 0x4c, 0x86, 0x0c, 0x05, 0xc8, 0x97, 0x3c, 0x05, 0x2d, 0xf0, 0x4a, 0x0c, 0xe8, 0x7e, 0xde, + 0x30, 0xbe, 0xef, 0xc7, 0x4c, 0x4f, 0x85, 0x8c, 0xfe, 0x60, 0x89, 0xf5, 0x6f, 0x96, 0xec, 0x91, + 0x6d, 0xc9, 0x71, 0x01, 0x6a, 0x76, 0x69, 0x53, 0x9b, 0x66, 0xa0, 0xa2, 0x38, 0x38, 0x97, 0x5e, + 0xff, 0x0f, 0x47, 0xac, 0xfa, 0xd8, 0xf7, 0x49, 0x43, 0x1b, 0x95, 0xe3, 0xbc, 0xd7, 0xb9, 0x56, + 0x9c, 0xef, 0xdb, 0x55, 0xf1, 0x60, 0x99, 0x72, 0xdb, 0x21, 0xd7, 0x75, 0xa6, 0x53, 0x2e, 0x43, + 0x67, 0xb3, 0x63, 0xf5, 0x6e, 0xf8, 0x55, 0x3a, 0x1c, 0x1d, 0xaf, 0x5c, 0xeb, 0x64, 0xe5, 0x5a, + 0x3f, 0x56, 0xae, 0xf5, 0x71, 0xed, 0xd6, 0x4e, 0xd6, 0x6e, 0xed, 0xeb, 0xda, 0xad, 0xbd, 0xa3, + 0x17, 0xd6, 0x32, 0xf7, 0x83, 0xe4, 0x58, 0x85, 0xfd, 0x60, 0xca, 0x84, 0xa4, 0xef, 0x8b, 0xeb, + 0xa4, 0xd8, 0x71, 0xb2, 0x55, 0xfc, 0x89, 0x4f, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xc1, 0xb2, + 0x6f, 0xff, 0x6a, 0x04, 0x00, 0x00, +} + +func (m *EventVolumeReport) 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 *EventVolumeReport) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventVolumeReport) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.Epoch.Size() + i -= size + if _, err := m.Epoch.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.ReportReference) > 0 { + i -= len(m.ReportReference) + copy(dAtA[i:], m.ReportReference) + i = encodeVarintEvent(dAtA, i, uint64(len(m.ReportReference))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventWithdraw) 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 *EventWithdraw) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.TargetAddress) > 0 { + i -= len(m.TargetAddress) + copy(dAtA[i:], m.TargetAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.TargetAddress))) + i-- + dAtA[i] = 0x1a + } + if len(m.WalletAddress) > 0 { + i -= len(m.WalletAddress) + copy(dAtA[i:], m.WalletAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.WalletAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Amount) > 0 { + for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EventFoundationDeposit) 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 *EventFoundationDeposit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventFoundationDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Amount) > 0 { + for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EventSlashing) 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 *EventSlashing) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventSlashing) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Suspend { + i-- + if m.Suspend { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if len(m.SlashingType) > 0 { + i -= len(m.SlashingType) + copy(dAtA[i:], m.SlashingType) + i = encodeVarintEvent(dAtA, i, uint64(len(m.SlashingType))) + i-- + dAtA[i] = 0x22 + } + { + size := m.Amount.Size() + i -= size + if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.WalletAddress) > 0 { + i -= len(m.WalletAddress) + copy(dAtA[i:], m.WalletAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.WalletAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintEvent(dAtA []byte, offset int, v uint64) int { + offset -= sovEvent(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *EventVolumeReport) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ReportReference) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = m.Epoch.Size() + n += 1 + l + sovEvent(uint64(l)) + return n +} + +func (m *EventWithdraw) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Amount) > 0 { + for _, e := range m.Amount { + l = e.Size() + n += 1 + l + sovEvent(uint64(l)) + } + } + l = len(m.WalletAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.TargetAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventFoundationDeposit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Amount) > 0 { + for _, e := range m.Amount { + l = e.Size() + n += 1 + l + sovEvent(uint64(l)) + } + } + return n +} + +func (m *EventSlashing) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.WalletAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = m.Amount.Size() + n += 1 + l + sovEvent(uint64(l)) + l = len(m.SlashingType) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + if m.Suspend { + n += 2 + } + return n +} + +func sovEvent(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozEvent(x uint64) (n int) { + return sovEvent(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *EventVolumeReport) 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 ErrIntOverflowEvent + } + 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: EventVolumeReport: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventVolumeReport: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReportReference", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ReportReference = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Epoch", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Epoch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventWithdraw) 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 ErrIntOverflowEvent + } + 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: EventWithdraw: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventWithdraw: 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) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = append(m.Amount, types.Coin{}) + if err := m.Amount[len(m.Amount)-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 WalletAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WalletAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TargetAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventFoundationDeposit) 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 ErrIntOverflowEvent + } + 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: EventFoundationDeposit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventFoundationDeposit: 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) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = append(m.Amount, types.Coin{}) + if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventSlashing) 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 ErrIntOverflowEvent + } + 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: EventSlashing: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventSlashing: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WalletAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WalletAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SlashingType", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SlashingType = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Suspend", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Suspend = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipEvent(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, ErrIntOverflowEvent + } + 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, ErrIntOverflowEvent + } + 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, ErrIntOverflowEvent + } + 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, ErrInvalidLengthEvent + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupEvent + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthEvent + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthEvent = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEvent = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupEvent = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/pot/types/msg.go b/x/pot/types/msg.go index 92ed9ae5..c840fd05 100644 --- a/x/pot/types/msg.go +++ b/x/pot/types/msg.go @@ -11,7 +11,6 @@ import ( var ( _ sdk.Msg = &MsgVolumeReport{} _ sdk.Msg = &MsgWithdraw{} - _ sdk.Msg = &MsgLegacyWithdraw{} _ sdk.Msg = &MsgFoundationDeposit{} _ sdk.Msg = &MsgSlashingResourceNode{} ) @@ -19,7 +18,6 @@ var ( const ( TypeMsgVolumeReport = "volume_report" TypeMsgWithdraw = "withdraw" - TypeMsgLegacyWithdraw = "legacy_withdraw" TypeMsgFoundationDeposit = "foundation_deposit" TypeMsgSlashingResourceNode = "slashing_resource_node" ) @@ -170,55 +168,6 @@ func (msg MsgWithdraw) ValidateBasic() error { return nil } -func NewMsgLegacyWithdraw(amount sdk.Coins, from sdk.AccAddress, targetAddress sdk.AccAddress) *MsgLegacyWithdraw { - return &MsgLegacyWithdraw{ - Amount: amount, - From: from.String(), - TargetAddress: targetAddress.String(), - } -} - -// Route Implement -func (msg MsgLegacyWithdraw) Route() string { return RouterKey } - -// GetSigners Implement -func (msg MsgLegacyWithdraw) GetSigners() []sdk.AccAddress { - var addrs []sdk.AccAddress - from, err := sdk.AccAddressFromBech32(msg.From) - if err != nil { - panic(err) - } - addrs = append(addrs, from) - return addrs -} - -// Type Implement -func (msg MsgLegacyWithdraw) Type() string { return TypeMsgLegacyWithdraw } - -// GetSignBytes gets the bytes for the message signer to sign on -func (msg MsgLegacyWithdraw) GetSignBytes() []byte { - bz := ModuleCdc.MustMarshalJSON(msg) - return sdk.MustSortJSON(bz) -} - -// ValidateBasic validity check for the AnteHandler -func (msg MsgLegacyWithdraw) ValidateBasic() error { - if !(msg.Amount.IsValid()) { - return ErrWithdrawAmountInvalid - } - if len(msg.From) == 0 { - return ErrEmptyFromAddr - } - if len(msg.TargetAddress) == 0 { - return ErrMissingTargetAddress - } - _, err := sdk.AccAddressFromBech32(msg.GetFrom()) - if err != nil { - return ErrInvalidAddress - } - return nil -} - func NewMsgFoundationDeposit(amount sdk.Coins, from sdk.AccAddress) *MsgFoundationDeposit { return &MsgFoundationDeposit{ Amount: amount, @@ -281,7 +230,7 @@ func NewMsgSlashingResourceNode(reporters []stratos.SdsAddress, reporterOwner [] ReporterOwner: reporterOwnerStrSlice, NetworkAddress: networkAddress.String(), WalletAddress: walletAddress.String(), - Slashing: &slashing, + Slashing: slashing, Suspend: suspend, } } diff --git a/x/pot/types/tx.pb.go b/x/pot/types/tx.pb.go index dfcb1281..133c09eb 100644 --- a/x/pot/types/tx.pb.go +++ b/x/pot/types/tx.pb.go @@ -10,6 +10,8 @@ import ( _ "github.com/cosmos/cosmos-proto" 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/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -246,104 +248,6 @@ func (m *MsgWithdrawResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgWithdrawResponse proto.InternalMessageInfo -// MsgLegacyWithdraw encapsulates an legacyWithdraw transaction as an SDK message. -type MsgLegacyWithdraw struct { - Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount" yaml:"amount"` - From string `protobuf:"bytes,2,opt,name=from,proto3" json:"from" yaml:"from"` - TargetAddress string `protobuf:"bytes,3,opt,name=target_address,json=targetAddress,proto3" json:"target_address" yaml:"target_address"` -} - -func (m *MsgLegacyWithdraw) Reset() { *m = MsgLegacyWithdraw{} } -func (m *MsgLegacyWithdraw) String() string { return proto.CompactTextString(m) } -func (*MsgLegacyWithdraw) ProtoMessage() {} -func (*MsgLegacyWithdraw) Descriptor() ([]byte, []int) { - return fileDescriptor_103c258cace119ca, []int{4} -} -func (m *MsgLegacyWithdraw) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgLegacyWithdraw) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgLegacyWithdraw.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 *MsgLegacyWithdraw) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgLegacyWithdraw.Merge(m, src) -} -func (m *MsgLegacyWithdraw) XXX_Size() int { - return m.Size() -} -func (m *MsgLegacyWithdraw) XXX_DiscardUnknown() { - xxx_messageInfo_MsgLegacyWithdraw.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgLegacyWithdraw proto.InternalMessageInfo - -func (m *MsgLegacyWithdraw) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { - if m != nil { - return m.Amount - } - return nil -} - -func (m *MsgLegacyWithdraw) GetFrom() string { - if m != nil { - return m.From - } - return "" -} - -func (m *MsgLegacyWithdraw) GetTargetAddress() string { - if m != nil { - return m.TargetAddress - } - return "" -} - -// MsgLegacyWithdrawResponse defines the Msg/MsgWithdraw response type. -type MsgLegacyWithdrawResponse struct { -} - -func (m *MsgLegacyWithdrawResponse) Reset() { *m = MsgLegacyWithdrawResponse{} } -func (m *MsgLegacyWithdrawResponse) String() string { return proto.CompactTextString(m) } -func (*MsgLegacyWithdrawResponse) ProtoMessage() {} -func (*MsgLegacyWithdrawResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_103c258cace119ca, []int{5} -} -func (m *MsgLegacyWithdrawResponse) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *MsgLegacyWithdrawResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_MsgLegacyWithdrawResponse.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 *MsgLegacyWithdrawResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgLegacyWithdrawResponse.Merge(m, src) -} -func (m *MsgLegacyWithdrawResponse) XXX_Size() int { - return m.Size() -} -func (m *MsgLegacyWithdrawResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgLegacyWithdrawResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgLegacyWithdrawResponse proto.InternalMessageInfo - // MsgFoundationDeposit - encapsulates an FoundationDeposit transaction as an SDK message type MsgFoundationDeposit struct { Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount" yaml:"amount"` @@ -354,7 +258,7 @@ func (m *MsgFoundationDeposit) Reset() { *m = MsgFoundationDeposit{} } func (m *MsgFoundationDeposit) String() string { return proto.CompactTextString(m) } func (*MsgFoundationDeposit) ProtoMessage() {} func (*MsgFoundationDeposit) Descriptor() ([]byte, []int) { - return fileDescriptor_103c258cace119ca, []int{6} + return fileDescriptor_103c258cace119ca, []int{4} } func (m *MsgFoundationDeposit) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -405,7 +309,7 @@ func (m *MsgFoundationDepositResponse) Reset() { *m = MsgFoundationDepos func (m *MsgFoundationDepositResponse) String() string { return proto.CompactTextString(m) } func (*MsgFoundationDepositResponse) ProtoMessage() {} func (*MsgFoundationDepositResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_103c258cace119ca, []int{7} + return fileDescriptor_103c258cace119ca, []int{5} } func (m *MsgFoundationDepositResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -436,19 +340,19 @@ var xxx_messageInfo_MsgFoundationDepositResponse proto.InternalMessageInfo // MsgRemoveMetaNode - encapsulates an MsgRemoveMetaNode transaction as an SDK message type MsgSlashingResourceNode struct { - Reporters []string `protobuf:"bytes,1,rep,name=reporters,proto3" json:"reporters" yaml:"reporters"` - ReporterOwner []string `protobuf:"bytes,2,rep,name=reporter_owner,json=reporterOwner,proto3" json:"reporter_owner" yaml:"reporter_owner"` - NetworkAddress string `protobuf:"bytes,3,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` - WalletAddress string `protobuf:"bytes,4,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address" yaml:"wallet_address"` - Slashing *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=slashing,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"slashing" yaml:"slashing"` - Suspend bool `protobuf:"varint,6,opt,name=suspend,proto3" json:"suspend" yaml:"suspend"` + Reporters []string `protobuf:"bytes,1,rep,name=reporters,proto3" json:"reporters" yaml:"reporters"` + ReporterOwner []string `protobuf:"bytes,2,rep,name=reporter_owner,json=reporterOwner,proto3" json:"reporter_owner" yaml:"reporter_owner"` + NetworkAddress string `protobuf:"bytes,3,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` + WalletAddress string `protobuf:"bytes,4,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address" yaml:"wallet_address"` + Slashing github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=slashing,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"slashing" yaml:"slashing"` + Suspend bool `protobuf:"varint,6,opt,name=suspend,proto3" json:"suspend" yaml:"suspend"` } func (m *MsgSlashingResourceNode) Reset() { *m = MsgSlashingResourceNode{} } func (m *MsgSlashingResourceNode) String() string { return proto.CompactTextString(m) } func (*MsgSlashingResourceNode) ProtoMessage() {} func (*MsgSlashingResourceNode) Descriptor() ([]byte, []int) { - return fileDescriptor_103c258cace119ca, []int{8} + return fileDescriptor_103c258cace119ca, []int{6} } func (m *MsgSlashingResourceNode) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -520,7 +424,7 @@ func (m *MsgSlashingResourceNodeResponse) Reset() { *m = MsgSlashingReso func (m *MsgSlashingResourceNodeResponse) String() string { return proto.CompactTextString(m) } func (*MsgSlashingResourceNodeResponse) ProtoMessage() {} func (*MsgSlashingResourceNodeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_103c258cace119ca, []int{9} + return fileDescriptor_103c258cace119ca, []int{7} } func (m *MsgSlashingResourceNodeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -559,7 +463,7 @@ func (m *BLSSignatureInfo) Reset() { *m = BLSSignatureInfo{} } func (m *BLSSignatureInfo) String() string { return proto.CompactTextString(m) } func (*BLSSignatureInfo) ProtoMessage() {} func (*BLSSignatureInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_103c258cace119ca, []int{10} + return fileDescriptor_103c258cace119ca, []int{8} } func (m *BLSSignatureInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -614,8 +518,6 @@ func init() { proto.RegisterType((*MsgVolumeReportResponse)(nil), "stratos.pot.v1.MsgVolumeReportResponse") proto.RegisterType((*MsgWithdraw)(nil), "stratos.pot.v1.MsgWithdraw") proto.RegisterType((*MsgWithdrawResponse)(nil), "stratos.pot.v1.MsgWithdrawResponse") - proto.RegisterType((*MsgLegacyWithdraw)(nil), "stratos.pot.v1.MsgLegacyWithdraw") - proto.RegisterType((*MsgLegacyWithdrawResponse)(nil), "stratos.pot.v1.MsgLegacyWithdrawResponse") proto.RegisterType((*MsgFoundationDeposit)(nil), "stratos.pot.v1.MsgFoundationDeposit") proto.RegisterType((*MsgFoundationDepositResponse)(nil), "stratos.pot.v1.MsgFoundationDepositResponse") proto.RegisterType((*MsgSlashingResourceNode)(nil), "stratos.pot.v1.MsgSlashingResourceNode") @@ -626,79 +528,83 @@ func init() { func init() { proto.RegisterFile("stratos/pot/v1/tx.proto", fileDescriptor_103c258cace119ca) } var fileDescriptor_103c258cace119ca = []byte{ - // 1148 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x57, 0xcf, 0x6f, 0xe3, 0x44, - 0x14, 0xae, 0xfb, 0x6b, 0xdb, 0x69, 0xd3, 0x76, 0x4d, 0x4b, 0xd3, 0xec, 0x36, 0xd3, 0x0e, 0xcb, - 0x6e, 0xa1, 0x34, 0x56, 0x8b, 0x10, 0xd2, 0x72, 0x40, 0x84, 0x15, 0xa2, 0xda, 0x06, 0x24, 0x57, - 0x6c, 0xa5, 0xbd, 0x58, 0x4e, 0x3c, 0x75, 0xad, 0x26, 0x33, 0x96, 0x67, 0xd2, 0xb4, 0x1c, 0x38, - 0x70, 0xda, 0xe3, 0x4a, 0x70, 0xe4, 0x0f, 0x00, 0xce, 0xf0, 0x17, 0x20, 0xa1, 0x3d, 0xae, 0xe0, - 0x82, 0x90, 0x30, 0xa8, 0x45, 0x42, 0xca, 0x31, 0x7f, 0x01, 0xf2, 0xcc, 0x78, 0x9c, 0xb8, 0x81, - 0x2d, 0x5a, 0x21, 0xc1, 0xa9, 0x99, 0xef, 0x7b, 0xf3, 0xde, 0x37, 0xcf, 0x9f, 0xdf, 0xb8, 0x60, - 0x99, 0xf1, 0xc8, 0xe5, 0x94, 0x59, 0x21, 0xe5, 0xd6, 0xc9, 0xb6, 0xc5, 0x4f, 0x2b, 0x61, 0x44, - 0x39, 0x35, 0xe7, 0x14, 0x51, 0x09, 0x29, 0xaf, 0x9c, 0x6c, 0x97, 0x16, 0x7d, 0xea, 0x53, 0x41, - 0x59, 0xc9, 0x2f, 0x19, 0x55, 0x5a, 0x69, 0x50, 0xd6, 0xa2, 0xcc, 0x91, 0x84, 0x5c, 0x28, 0xea, - 0xa6, 0x4f, 0xa9, 0xdf, 0xc4, 0x96, 0x1b, 0x06, 0x96, 0x4b, 0x08, 0xe5, 0x2e, 0x0f, 0x28, 0x49, - 0xd9, 0x62, 0xae, 0x6e, 0x52, 0x45, 0x32, 0x65, 0x99, 0xc5, 0xaa, 0xbb, 0x0c, 0x5b, 0x27, 0xdb, - 0x75, 0xcc, 0xdd, 0x6d, 0xab, 0x41, 0x03, 0x22, 0x79, 0xf4, 0xcb, 0x38, 0x98, 0xaf, 0x31, 0xff, - 0x01, 0x6d, 0xb6, 0x5b, 0xd8, 0xc6, 0x21, 0x8d, 0xb8, 0xf9, 0x31, 0x98, 0xeb, 0xb8, 0xcd, 0x26, - 0xe6, 0xce, 0x89, 0x80, 0x59, 0xd1, 0x58, 0x1b, 0xdb, 0x98, 0xd9, 0x41, 0x95, 0xc1, 0x53, 0x54, - 0xf6, 0x03, 0xe2, 0x37, 0xf1, 0x81, 0x88, 0x95, 0x19, 0xaa, 0xd6, 0x93, 0x18, 0x8e, 0x74, 0x63, - 0x98, 0xcb, 0xd0, 0x8b, 0xe1, 0xd2, 0x99, 0xdb, 0x6a, 0xde, 0x45, 0x83, 0x38, 0xb2, 0x0b, 0x9d, - 0xbe, 0xed, 0xcc, 0x7c, 0x0b, 0x4c, 0x45, 0x42, 0x05, 0x8e, 0x8a, 0xa3, 0x6b, 0xc6, 0xc6, 0x74, - 0x15, 0x76, 0x63, 0xa8, 0xb1, 0x5e, 0x0c, 0xe7, 0x65, 0x9e, 0x14, 0x41, 0xb6, 0x26, 0xcd, 0x63, - 0x30, 0x81, 0x43, 0xda, 0x38, 0x2a, 0x8e, 0x89, 0x9d, 0x1f, 0x25, 0x5a, 0x7e, 0x8e, 0xe1, 0x6d, - 0x3f, 0xe0, 0x47, 0xed, 0x7a, 0xa5, 0x41, 0x5b, 0xaa, 0xa9, 0xea, 0xcf, 0x16, 0xf3, 0x8e, 0x2d, - 0x7e, 0x16, 0x62, 0x56, 0xd9, 0x25, 0xbc, 0x1b, 0x43, 0xb9, 0xbd, 0x17, 0xc3, 0x59, 0x59, 0x44, - 0x2c, 0xd1, 0x0f, 0xdf, 0x6c, 0x01, 0xf5, 0x30, 0x76, 0x09, 0xb7, 0x65, 0x90, 0xf9, 0x10, 0x2c, - 0xc8, 0xc2, 0x4e, 0x84, 0x0f, 0x71, 0x84, 0x49, 0x03, 0x17, 0xc7, 0x45, 0x5d, 0xab, 0x1b, 0xc3, - 0x4b, 0x5c, 0x2f, 0x86, 0xcb, 0xfd, 0xca, 0x33, 0x06, 0xd9, 0xf3, 0x12, 0xb2, 0x53, 0xc4, 0xb4, - 0xc1, 0x5c, 0x7a, 0x28, 0x87, 0x76, 0x08, 0x8e, 0x8a, 0x13, 0x22, 0xf3, 0x66, 0xd2, 0xd9, 0x41, - 0x26, 0xeb, 0xec, 0x20, 0x8e, 0xec, 0x42, 0x0a, 0x7c, 0x98, 0xac, 0x4d, 0x0e, 0x0a, 0xd5, 0xbd, - 0x7d, 0x87, 0x05, 0x3e, 0x71, 0x79, 0x3b, 0xc2, 0xc5, 0xc9, 0x35, 0x63, 0x63, 0x66, 0x67, 0x2d, - 0xff, 0x50, 0xab, 0x7b, 0xfb, 0xfb, 0x69, 0xcc, 0x2e, 0x39, 0xa4, 0xd5, 0x2d, 0xf5, 0x48, 0x0b, - 0xf5, 0x26, 0xcb, 0xb6, 0xf7, 0x62, 0xb8, 0x28, 0xeb, 0x0e, 0xc0, 0xc8, 0x9e, 0xed, 0x4f, 0x80, - 0x56, 0xc0, 0x72, 0xce, 0x5e, 0x36, 0x66, 0x21, 0x25, 0x0c, 0xa3, 0x6f, 0x47, 0xc1, 0x4c, 0x8d, - 0xf9, 0x07, 0x01, 0x3f, 0xf2, 0x22, 0xb7, 0x63, 0x7e, 0x02, 0x26, 0xdd, 0x16, 0x6d, 0x13, 0xae, - 0xec, 0xb6, 0x52, 0x51, 0x4d, 0x4f, 0xbc, 0x5b, 0x51, 0xde, 0xad, 0xbc, 0x4b, 0x03, 0x52, 0xbd, - 0xaf, 0x24, 0xa9, 0x0d, 0xbd, 0x18, 0x16, 0xa4, 0x16, 0xb9, 0x46, 0x5f, 0xff, 0x0a, 0x37, 0xae, - 0xf0, 0xd0, 0x93, 0x5c, 0xcc, 0x56, 0x49, 0x92, 0xa6, 0x2b, 0x73, 0xba, 0x9e, 0x17, 0x61, 0xc6, - 0x94, 0x01, 0x37, 0xfb, 0xec, 0xac, 0x98, 0x4b, 0x76, 0x56, 0xb8, 0xb6, 0xf3, 0x3b, 0x72, 0x9d, - 0xe4, 0xe4, 0x6e, 0xe4, 0xf7, 0xe5, 0x1c, 0xcb, 0x72, 0x0e, 0x32, 0x59, 0xce, 0x41, 0x1c, 0xd9, - 0x05, 0x09, 0xa8, 0x9c, 0x68, 0x09, 0xbc, 0xd0, 0xd7, 0x36, 0xdd, 0xce, 0xcf, 0x47, 0xc1, 0xf5, - 0x1a, 0xf3, 0xf7, 0xb0, 0xef, 0x36, 0xce, 0xfe, 0x33, 0x4d, 0xdd, 0x04, 0xe3, 0x87, 0x11, 0x6d, - 0xa9, 0x56, 0x2e, 0x77, 0x63, 0x28, 0xd6, 0xbd, 0x18, 0xce, 0xc8, 0xe4, 0xc9, 0x0a, 0xd9, 0x02, - 0xfc, 0x57, 0xba, 0x75, 0x03, 0xac, 0x5c, 0xea, 0x8a, 0xee, 0xd9, 0x77, 0x06, 0x58, 0xac, 0x31, - 0xff, 0x3d, 0xda, 0x26, 0x9e, 0x18, 0xa8, 0xf7, 0x70, 0x48, 0x59, 0xc0, 0xff, 0x57, 0x6d, 0x43, - 0x65, 0x70, 0x73, 0xd8, 0x21, 0xf4, 0x29, 0x1f, 0x8d, 0x8b, 0x97, 0x70, 0xbf, 0xe9, 0xb2, 0xa3, - 0x80, 0xf8, 0x36, 0x66, 0xb4, 0x1d, 0x35, 0xf0, 0x07, 0xd4, 0xc3, 0xe6, 0xdb, 0x60, 0x3a, 0x1d, - 0x13, 0x72, 0xcc, 0x4f, 0x57, 0xd7, 0xbb, 0x31, 0xcc, 0xc0, 0x5e, 0x0c, 0x17, 0x06, 0xe7, 0x0b, - 0x43, 0x76, 0x46, 0x0f, 0x19, 0x55, 0xa3, 0x22, 0xcb, 0xf3, 0x8c, 0xaa, 0x07, 0x60, 0x9e, 0x60, - 0xde, 0xa1, 0xd1, 0x71, 0xce, 0x08, 0x5b, 0xdd, 0x18, 0xe6, 0xa9, 0x5e, 0x0c, 0x5f, 0x94, 0x59, - 0x73, 0x04, 0xb2, 0xe7, 0x14, 0xd2, 0xf7, 0x36, 0xe6, 0xde, 0xf0, 0xf1, 0xe7, 0x7e, 0xc3, 0x19, - 0x98, 0x62, 0xaa, 0xb1, 0x6a, 0x48, 0x1f, 0xfc, 0xa3, 0x2b, 0x47, 0xef, 0xce, 0xae, 0xb6, 0x14, - 0xc9, 0x5f, 0x3c, 0x3a, 0xd4, 0x7c, 0x13, 0x5c, 0x63, 0x6d, 0x16, 0x62, 0xe2, 0x89, 0x29, 0x3e, - 0x55, 0x5d, 0xed, 0xc6, 0x30, 0x85, 0x7a, 0x31, 0x9c, 0x53, 0x89, 0x24, 0x80, 0xec, 0x94, 0x42, - 0xeb, 0x00, 0xfe, 0x85, 0x13, 0xb4, 0x5b, 0xbe, 0x37, 0xc0, 0x42, 0xfe, 0x0e, 0x30, 0xef, 0x82, - 0xa9, 0xb0, 0x5d, 0x77, 0x8e, 0xf1, 0x99, 0x74, 0xc9, 0xac, 0xbc, 0x96, 0x53, 0x2c, 0xd3, 0x9e, - 0x22, 0xc8, 0xbe, 0x16, 0xb6, 0xeb, 0xf7, 0xf1, 0x19, 0x4b, 0x2c, 0x96, 0x5d, 0x3a, 0x89, 0xa1, - 0x67, 0xa5, 0xc5, 0xfa, 0xaf, 0x12, 0x65, 0xb1, 0xbe, 0x6b, 0x24, 0xa3, 0xcd, 0x37, 0xc0, 0x24, - 0x3f, 0xbd, 0xe7, 0x72, 0x57, 0xb8, 0x60, 0x56, 0x1e, 0x96, 0x9f, 0x3a, 0x9e, 0xcb, 0xdd, 0xec, - 0xb0, 0x0a, 0x40, 0xb6, 0x0a, 0xde, 0xf9, 0x63, 0x02, 0x8c, 0xd5, 0x98, 0x6f, 0x3e, 0x32, 0xc0, - 0xd2, 0xfb, 0x2e, 0xf1, 0x9a, 0x38, 0xff, 0xa1, 0x03, 0xf3, 0x77, 0x5f, 0x2e, 0xa0, 0x74, 0xe7, - 0x19, 0x01, 0xba, 0x69, 0x2f, 0x7f, 0xfa, 0xe3, 0xef, 0x9f, 0x8d, 0x42, 0xb4, 0x6a, 0xe5, 0xbe, - 0xc4, 0xe4, 0x77, 0x8e, 0x23, 0xfd, 0x6d, 0x76, 0xc0, 0x75, 0xad, 0x44, 0x8f, 0xe8, 0x1b, 0x43, - 0x8a, 0xa4, 0x64, 0xe9, 0xa5, 0xbf, 0x21, 0x75, 0xf5, 0x35, 0x51, 0xbd, 0x84, 0x8a, 0xf9, 0xea, - 0x9d, 0xb4, 0xc6, 0x63, 0x03, 0x2c, 0xeb, 0xca, 0xb9, 0x2b, 0x62, 0x7d, 0x48, 0x89, 0xc1, 0x90, - 0xd2, 0x2b, 0xcf, 0x0c, 0xd1, 0x5a, 0xee, 0x08, 0x2d, 0xeb, 0x08, 0xe6, 0xb5, 0x34, 0x45, 0xbc, - 0xa3, 0x25, 0x7d, 0x61, 0x80, 0x92, 0x96, 0x74, 0x79, 0x02, 0xdf, 0x1a, 0x52, 0xf2, 0x52, 0x54, - 0xe9, 0xb5, 0xab, 0x44, 0x69, 0x6d, 0xaf, 0x0a, 0x6d, 0xb7, 0x10, 0xca, 0x6b, 0x3b, 0xd4, 0x5b, - 0x1c, 0x4f, 0xd5, 0xff, 0xca, 0x00, 0xab, 0x5a, 0xde, 0xd0, 0xd1, 0x39, 0xcc, 0x1c, 0xc3, 0x02, - 0x4b, 0xd6, 0x15, 0x03, 0xb5, 0xce, 0x8a, 0xd0, 0xb9, 0x81, 0x6e, 0xe7, 0x75, 0xa6, 0x03, 0xc0, - 0x89, 0xd4, 0x36, 0x87, 0x50, 0x0f, 0x57, 0x6b, 0x5f, 0x9e, 0x97, 0x8d, 0x27, 0xe7, 0x65, 0xe3, - 0xe9, 0x79, 0xd9, 0xf8, 0xed, 0xbc, 0x6c, 0x3c, 0xbe, 0x28, 0x8f, 0x3c, 0xbd, 0x28, 0x8f, 0xfc, - 0x74, 0x51, 0x1e, 0x79, 0x68, 0xf5, 0xcd, 0x22, 0x95, 0x8f, 0x60, 0x9e, 0xfe, 0xdc, 0x6a, 0x1c, - 0xb9, 0x01, 0xb1, 0x4e, 0x45, 0x09, 0x31, 0x98, 0xea, 0x93, 0xe2, 0x5f, 0x83, 0xd7, 0xff, 0x0c, - 0x00, 0x00, 0xff, 0xff, 0x85, 0x51, 0xcb, 0x32, 0xce, 0x0c, 0x00, 0x00, + // 1203 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcb, 0x6b, 0x24, 0x45, + 0x18, 0x4f, 0xe7, 0xb5, 0x49, 0xe5, 0xb5, 0xdb, 0x9b, 0x35, 0xb3, 0x63, 0x32, 0x95, 0x6d, 0xd7, + 0x35, 0x44, 0x33, 0x4d, 0xa2, 0x12, 0x9c, 0x8b, 0xd8, 0x59, 0xc5, 0xe0, 0x46, 0x65, 0x06, 0x0c, + 0xe4, 0xd2, 0xf6, 0xcc, 0x54, 0x3a, 0x6d, 0x66, 0xaa, 0x9a, 0xae, 0x9a, 0x4c, 0x02, 0x82, 0xb2, + 0x5e, 0x44, 0x10, 0x04, 0x2f, 0x1e, 0xfc, 0x03, 0xd6, 0x3d, 0xe5, 0xe0, 0xdf, 0x20, 0x7b, 0x11, + 0x16, 0xbd, 0x88, 0x42, 0x2b, 0x89, 0x10, 0x98, 0xe3, 0xfc, 0x05, 0x52, 0x8f, 0x7e, 0x4c, 0x67, + 0x12, 0xe3, 0x61, 0xc1, 0xcb, 0xee, 0xd4, 0xef, 0xfb, 0xea, 0xfb, 0x7d, 0xef, 0xea, 0x80, 0x39, + 0xca, 0x02, 0x87, 0x11, 0x6a, 0xfa, 0x84, 0x99, 0x07, 0xab, 0x26, 0x3b, 0x2c, 0xfa, 0x01, 0x61, + 0x44, 0x9f, 0x56, 0x82, 0xa2, 0x4f, 0x58, 0xf1, 0x60, 0x35, 0x3f, 0xeb, 0x12, 0x97, 0x08, 0x91, + 0xc9, 0x7f, 0x49, 0xad, 0xfc, 0xed, 0x1a, 0xa1, 0x4d, 0x42, 0x6d, 0x29, 0x90, 0x07, 0x25, 0xba, + 0xe1, 0x34, 0x3d, 0x4c, 0x4c, 0xf1, 0xaf, 0x82, 0xe6, 0xa4, 0x82, 0xd9, 0xa4, 0x2e, 0xe7, 0x6a, + 0x52, 0x57, 0x09, 0xe6, 0x5d, 0x42, 0xdc, 0x06, 0x32, 0x1d, 0xdf, 0x33, 0x1d, 0x8c, 0x09, 0x73, + 0x98, 0x47, 0x70, 0x64, 0x29, 0x97, 0xf1, 0x91, 0x7b, 0x24, 0x25, 0x05, 0x65, 0xb0, 0xea, 0x50, + 0x64, 0x1e, 0xac, 0x56, 0x11, 0x73, 0x56, 0xcd, 0x1a, 0xf1, 0xb0, 0x94, 0x1b, 0x3f, 0x8f, 0x80, + 0x99, 0x2d, 0xea, 0x7e, 0x44, 0x1a, 0xad, 0x26, 0x2a, 0x23, 0x9f, 0x04, 0x4c, 0xff, 0x0c, 0x4c, + 0xb7, 0x9d, 0x46, 0x03, 0x31, 0xfb, 0x40, 0xc0, 0x34, 0xa7, 0x2d, 0x0e, 0x2d, 0x4d, 0xac, 0x19, + 0xc5, 0xde, 0x88, 0x8b, 0x15, 0x0f, 0xbb, 0x0d, 0xb4, 0x2d, 0x74, 0xa5, 0x05, 0xeb, 0xb5, 0x27, + 0x21, 0x1c, 0xe8, 0x84, 0x30, 0x63, 0xa1, 0x1b, 0xc2, 0x5b, 0x47, 0x4e, 0xb3, 0x51, 0x32, 0x7a, + 0x71, 0xe3, 0xd1, 0xd9, 0xf1, 0xb2, 0x56, 0x9e, 0x6a, 0xa7, 0x6c, 0x50, 0xbd, 0x02, 0xc6, 0x02, + 0xe1, 0x0a, 0x0a, 0x72, 0x83, 0x8b, 0xda, 0xd2, 0xb8, 0xb5, 0xde, 0x09, 0x61, 0x8c, 0x75, 0x43, + 0x38, 0x23, 0x8d, 0x45, 0x88, 0xf1, 0xcb, 0x8f, 0x2b, 0xb3, 0x2a, 0xb7, 0x6f, 0xd5, 0xeb, 0x01, + 0xa2, 0xb4, 0xc2, 0x02, 0x0f, 0xbb, 0xe5, 0xf8, 0x92, 0xee, 0x83, 0x11, 0xe4, 0x93, 0xda, 0x5e, + 0x6e, 0x48, 0x58, 0xdc, 0xe1, 0x8e, 0xfe, 0x1e, 0xc2, 0x7b, 0xae, 0xc7, 0xf6, 0x5a, 0xd5, 0x62, + 0x8d, 0x34, 0x55, 0x75, 0xd4, 0x7f, 0x2b, 0xb4, 0xbe, 0x6f, 0xb2, 0x23, 0x1f, 0xd1, 0xe2, 0x26, + 0x66, 0x9d, 0x10, 0xca, 0xeb, 0xdd, 0x10, 0x4e, 0x4a, 0x72, 0x71, 0xe4, 0xcc, 0x40, 0x31, 0x6f, + 0x62, 0x26, 0xc3, 0x91, 0x9a, 0xfa, 0x0e, 0xb8, 0x2e, 0xd9, 0xed, 0x00, 0xed, 0xa2, 0x00, 0xe1, + 0x1a, 0xca, 0x0d, 0x0b, 0x72, 0xb3, 0x13, 0xc2, 0x73, 0xb2, 0x6e, 0x08, 0xe7, 0xd2, 0x61, 0x25, + 0x12, 0xa3, 0x3c, 0x23, 0xa1, 0x72, 0x84, 0xe8, 0x9f, 0x80, 0xe9, 0x28, 0x32, 0x9b, 0xb4, 0x31, + 0x0a, 0x72, 0x23, 0xc2, 0xf2, 0x06, 0xcf, 0x7d, 0xaf, 0x24, 0xc9, 0x7d, 0x2f, 0x7e, 0x71, 0xd2, + 0xa6, 0x22, 0xc5, 0x0f, 0xb8, 0x9e, 0x7e, 0x04, 0xa6, 0xac, 0x07, 0x15, 0x9b, 0x7a, 0x2e, 0x76, + 0x58, 0x2b, 0x40, 0xb9, 0xd1, 0x45, 0x6d, 0x69, 0x62, 0x6d, 0x31, 0xdb, 0x0e, 0xd6, 0x83, 0x4a, + 0x25, 0xd2, 0xd9, 0xc4, 0xbb, 0xc4, 0x5a, 0x53, 0xcd, 0x30, 0x55, 0x6d, 0xd0, 0xe4, 0x7a, 0x37, + 0x84, 0xb3, 0xd2, 0x9f, 0x1e, 0x58, 0xb5, 0xc2, 0x64, 0xda, 0x4a, 0xc9, 0x7c, 0x78, 0x76, 0xbc, + 0x9c, 0x89, 0xe7, 0xab, 0xb3, 0xe3, 0xe5, 0x78, 0x28, 0x33, 0xbd, 0x6b, 0xdc, 0x06, 0x73, 0x19, + 0xa8, 0x8c, 0xa8, 0x4f, 0x30, 0x45, 0xc6, 0x77, 0x43, 0x60, 0x62, 0x8b, 0xba, 0xdb, 0x1e, 0xdb, + 0xab, 0x07, 0x4e, 0x5b, 0xff, 0x42, 0x03, 0xa3, 0x4e, 0x93, 0xb4, 0x30, 0x53, 0xfd, 0x7d, 0xbb, + 0xa8, 0xb2, 0xc1, 0x87, 0xa5, 0xa8, 0x86, 0xa5, 0xb8, 0x41, 0x3c, 0x6c, 0x7d, 0xa8, 0x22, 0x51, + 0x17, 0xba, 0x21, 0x9c, 0x92, 0x21, 0xc8, 0xb3, 0xf1, 0xf8, 0x4f, 0xb8, 0x74, 0x85, 0x46, 0xe2, + 0xb6, 0xa8, 0x8c, 0x53, 0x59, 0xe2, 0x85, 0x54, 0x23, 0xe1, 0xc8, 0x1a, 0xa8, 0x8e, 0xdf, 0x48, + 0x0d, 0x91, 0x92, 0x9c, 0x1b, 0x22, 0x85, 0x5f, 0x52, 0x48, 0xa9, 0xa8, 0x40, 0xce, 0xc5, 0x9c, + 0xc0, 0x4d, 0x71, 0x0d, 0x25, 0x5c, 0xbd, 0x92, 0x84, 0xab, 0x17, 0xbf, 0x84, 0x4b, 0x2a, 0x2a, + 0xb0, 0xf4, 0xb2, 0xa8, 0x5c, 0xaf, 0xa3, 0xbc, 0x72, 0x37, 0x53, 0x95, 0x8b, 0x4a, 0x61, 0xdc, + 0x02, 0x37, 0x53, 0xc7, 0xb8, 0x62, 0x5f, 0x0f, 0x82, 0xd9, 0x2d, 0xea, 0xbe, 0x43, 0x5a, 0xb8, + 0x2e, 0xf6, 0xdd, 0x7d, 0xe4, 0x13, 0xea, 0xb1, 0xff, 0x49, 0xe9, 0x36, 0xc0, 0xf0, 0x6e, 0x40, + 0x9a, 0xaa, 0x60, 0x7c, 0xa6, 0xc5, 0xb9, 0x1b, 0xc2, 0x09, 0xc9, 0xc0, 0x4f, 0x17, 0x27, 0x4c, + 0x28, 0x97, 0x96, 0x79, 0x9e, 0xc4, 0x4f, 0x9e, 0x9d, 0xf9, 0x54, 0x76, 0xce, 0x85, 0x6d, 0x14, + 0xc0, 0x7c, 0x3f, 0x3c, 0xce, 0xd7, 0xe3, 0x11, 0xd1, 0xfd, 0x95, 0x86, 0x43, 0xf7, 0x38, 0x03, + 0xa2, 0xa4, 0x15, 0xd4, 0xd0, 0xfb, 0xa4, 0x8e, 0xf4, 0x6d, 0x30, 0x1e, 0x8d, 0x91, 0xdc, 0xe7, + 0xe3, 0xd6, 0x1b, 0x9d, 0x10, 0x26, 0x60, 0x37, 0x84, 0xd7, 0x7b, 0xd7, 0xc4, 0x25, 0xc5, 0x4e, + 0xae, 0xf5, 0xd9, 0x44, 0x83, 0xc2, 0xfa, 0xb3, 0xd8, 0x44, 0x18, 0xcc, 0x60, 0xc4, 0xda, 0x24, + 0xd8, 0xcf, 0x74, 0xf0, 0xdb, 0x9d, 0x10, 0x66, 0x45, 0xdd, 0x10, 0x3e, 0x27, 0xd9, 0x32, 0x82, + 0x8b, 0xe9, 0xa6, 0x95, 0x66, 0x6a, 0x60, 0x32, 0xc3, 0x39, 0xfc, 0xcc, 0x86, 0xf3, 0x53, 0x30, + 0x46, 0x55, 0xe1, 0xd4, 0x2e, 0xff, 0xf8, 0x3f, 0x3f, 0x51, 0xb1, 0x85, 0xe4, 0x89, 0x8c, 0x90, + 0xbe, 0x0f, 0x55, 0xac, 0xaf, 0xaf, 0x83, 0x6b, 0xb4, 0x45, 0x7d, 0x84, 0xeb, 0x62, 0xbb, 0x8f, + 0x59, 0x0b, 0x9d, 0x10, 0x46, 0x50, 0x37, 0x84, 0xd3, 0xca, 0x9a, 0x04, 0x8c, 0x72, 0x24, 0x2a, + 0xad, 0x5f, 0xb0, 0xa1, 0x61, 0xaa, 0x93, 0xfb, 0x35, 0xa4, 0x71, 0x07, 0xc0, 0x0b, 0x44, 0x71, + 0x3f, 0xff, 0xa4, 0x81, 0xeb, 0xd9, 0x47, 0x45, 0x2f, 0x81, 0x31, 0xbf, 0x55, 0xb5, 0xf7, 0xd1, + 0x91, 0xec, 0xe3, 0x49, 0x0b, 0xf2, 0xc8, 0x23, 0x2c, 0x89, 0x3c, 0x42, 0x8c, 0xf2, 0x35, 0xbf, + 0x55, 0x7d, 0x0f, 0x1d, 0x51, 0xfd, 0x4d, 0x30, 0x9e, 0xbc, 0x62, 0x7c, 0x6c, 0x27, 0xad, 0x3b, + 0x7c, 0x08, 0xd2, 0x6f, 0x93, 0x1a, 0x82, 0xe4, 0x5d, 0x2a, 0x27, 0x62, 0xfd, 0x75, 0x30, 0xca, + 0x0e, 0xef, 0x3b, 0xcc, 0x11, 0x7d, 0x37, 0x29, 0xb3, 0xc4, 0x0e, 0xed, 0xba, 0xc3, 0x9c, 0x24, + 0x4b, 0x0a, 0x30, 0xca, 0x4a, 0x79, 0xed, 0x8f, 0x61, 0x30, 0xb4, 0x45, 0x5d, 0xfd, 0x4b, 0x0d, + 0xdc, 0x7a, 0xd7, 0xc1, 0xf5, 0x06, 0xca, 0x7e, 0x73, 0xc1, 0xec, 0x63, 0x9a, 0x51, 0xc8, 0xbf, + 0xf4, 0x2f, 0x0a, 0x71, 0xd2, 0x5e, 0x7c, 0xf8, 0xeb, 0xdf, 0xdf, 0x0e, 0x42, 0x63, 0xc1, 0xcc, + 0x7c, 0x14, 0xca, 0x4f, 0x2e, 0x5b, 0x96, 0x4a, 0x6f, 0x83, 0x1b, 0xb1, 0x27, 0xf1, 0x93, 0xf8, + 0x7c, 0x1f, 0x92, 0x48, 0x98, 0x7f, 0xe1, 0x12, 0x61, 0xcc, 0xbe, 0x28, 0xd8, 0xf3, 0x46, 0x2e, + 0xcb, 0xde, 0x8e, 0x38, 0xbe, 0xd7, 0x40, 0x3e, 0x66, 0x3e, 0xbf, 0xda, 0xef, 0xf6, 0x61, 0x39, + 0xa7, 0x95, 0x7f, 0xe5, 0x2a, 0x5a, 0xb1, 0x53, 0xcb, 0xc2, 0xa9, 0xbb, 0x86, 0x91, 0x75, 0x6a, + 0x37, 0xbe, 0x62, 0xd7, 0x15, 0xff, 0x0f, 0x1a, 0x58, 0x88, 0xdd, 0xeb, 0xbb, 0x49, 0xfb, 0x55, + 0xa2, 0x9f, 0x62, 0xde, 0xbc, 0xa2, 0x62, 0xec, 0x67, 0x51, 0xf8, 0xb9, 0x64, 0xdc, 0xcb, 0xfa, + 0x19, 0x8d, 0xa9, 0x1d, 0xa8, 0x6b, 0x36, 0xe6, 0x04, 0x23, 0x9f, 0xf3, 0x29, 0xb6, 0xb6, 0x1e, + 0x9d, 0x14, 0xb4, 0x27, 0x27, 0x05, 0xed, 0xe9, 0x49, 0x41, 0xfb, 0xeb, 0xa4, 0xa0, 0x7d, 0x73, + 0x5a, 0x18, 0x78, 0x7a, 0x5a, 0x18, 0xf8, 0xed, 0xb4, 0x30, 0xb0, 0x63, 0xa6, 0xb6, 0x87, 0x32, + 0x8b, 0x11, 0x8b, 0x7e, 0xae, 0xd4, 0xf6, 0x1c, 0x0f, 0x9b, 0x87, 0x82, 0x49, 0xac, 0x92, 0xea, + 0xa8, 0xf8, 0xcb, 0xe0, 0xd5, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x16, 0x02, 0x77, 0xf9, + 0x0c, 0x00, 0x00, } func (this *MsgVolumeReport) Equal(that interface{}) bool { @@ -822,62 +728,6 @@ func (this *MsgWithdrawResponse) Equal(that interface{}) bool { } return true } -func (this *MsgLegacyWithdraw) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*MsgLegacyWithdraw) - if !ok { - that2, ok := that.(MsgLegacyWithdraw) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - if len(this.Amount) != len(that1.Amount) { - return false - } - for i := range this.Amount { - if !this.Amount[i].Equal(&that1.Amount[i]) { - return false - } - } - if this.From != that1.From { - return false - } - if this.TargetAddress != that1.TargetAddress { - return false - } - return true -} -func (this *MsgLegacyWithdrawResponse) Equal(that interface{}) bool { - if that == nil { - return this == nil - } - - that1, ok := that.(*MsgLegacyWithdrawResponse) - if !ok { - that2, ok := that.(MsgLegacyWithdrawResponse) - if ok { - that1 = &that2 - } else { - return false - } - } - if that1 == nil { - return this == nil - } else if this == nil { - return false - } - return true -} func (this *MsgFoundationDeposit) Equal(that interface{}) bool { if that == nil { return this == nil @@ -972,11 +822,7 @@ func (this *MsgSlashingResourceNode) Equal(that interface{}) bool { if this.WalletAddress != that1.WalletAddress { return false } - if that1.Slashing == nil { - if this.Slashing != nil { - return false - } - } else if !this.Slashing.Equal(*that1.Slashing) { + if !this.Slashing.Equal(that1.Slashing) { return false } if this.Suspend != that1.Suspend { @@ -1055,7 +901,6 @@ const _ = grpc.SupportPackageIsVersion4 type MsgClient interface { HandleMsgVolumeReport(ctx context.Context, in *MsgVolumeReport, opts ...grpc.CallOption) (*MsgVolumeReportResponse, error) HandleMsgWithdraw(ctx context.Context, in *MsgWithdraw, opts ...grpc.CallOption) (*MsgWithdrawResponse, error) - HandleMsgLegacyWithdraw(ctx context.Context, in *MsgLegacyWithdraw, opts ...grpc.CallOption) (*MsgLegacyWithdrawResponse, error) HandleMsgFoundationDeposit(ctx context.Context, in *MsgFoundationDeposit, opts ...grpc.CallOption) (*MsgFoundationDepositResponse, error) HandleMsgSlashingResourceNode(ctx context.Context, in *MsgSlashingResourceNode, opts ...grpc.CallOption) (*MsgSlashingResourceNodeResponse, error) } @@ -1086,15 +931,6 @@ func (c *msgClient) HandleMsgWithdraw(ctx context.Context, in *MsgWithdraw, opts return out, nil } -func (c *msgClient) HandleMsgLegacyWithdraw(ctx context.Context, in *MsgLegacyWithdraw, opts ...grpc.CallOption) (*MsgLegacyWithdrawResponse, error) { - out := new(MsgLegacyWithdrawResponse) - err := c.cc.Invoke(ctx, "/stratos.pot.v1.Msg/HandleMsgLegacyWithdraw", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *msgClient) HandleMsgFoundationDeposit(ctx context.Context, in *MsgFoundationDeposit, opts ...grpc.CallOption) (*MsgFoundationDepositResponse, error) { out := new(MsgFoundationDepositResponse) err := c.cc.Invoke(ctx, "/stratos.pot.v1.Msg/HandleMsgFoundationDeposit", in, out, opts...) @@ -1117,7 +953,6 @@ func (c *msgClient) HandleMsgSlashingResourceNode(ctx context.Context, in *MsgSl type MsgServer interface { HandleMsgVolumeReport(context.Context, *MsgVolumeReport) (*MsgVolumeReportResponse, error) HandleMsgWithdraw(context.Context, *MsgWithdraw) (*MsgWithdrawResponse, error) - HandleMsgLegacyWithdraw(context.Context, *MsgLegacyWithdraw) (*MsgLegacyWithdrawResponse, error) HandleMsgFoundationDeposit(context.Context, *MsgFoundationDeposit) (*MsgFoundationDepositResponse, error) HandleMsgSlashingResourceNode(context.Context, *MsgSlashingResourceNode) (*MsgSlashingResourceNodeResponse, error) } @@ -1132,9 +967,6 @@ func (*UnimplementedMsgServer) HandleMsgVolumeReport(ctx context.Context, req *M func (*UnimplementedMsgServer) HandleMsgWithdraw(ctx context.Context, req *MsgWithdraw) (*MsgWithdrawResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method HandleMsgWithdraw not implemented") } -func (*UnimplementedMsgServer) HandleMsgLegacyWithdraw(ctx context.Context, req *MsgLegacyWithdraw) (*MsgLegacyWithdrawResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method HandleMsgLegacyWithdraw not implemented") -} func (*UnimplementedMsgServer) HandleMsgFoundationDeposit(ctx context.Context, req *MsgFoundationDeposit) (*MsgFoundationDepositResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method HandleMsgFoundationDeposit not implemented") } @@ -1182,24 +1014,6 @@ func _Msg_HandleMsgWithdraw_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } -func _Msg_HandleMsgLegacyWithdraw_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgLegacyWithdraw) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(MsgServer).HandleMsgLegacyWithdraw(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/stratos.pot.v1.Msg/HandleMsgLegacyWithdraw", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).HandleMsgLegacyWithdraw(ctx, req.(*MsgLegacyWithdraw)) - } - return interceptor(ctx, in, info, handler) -} - func _Msg_HandleMsgFoundationDeposit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MsgFoundationDeposit) if err := dec(in); err != nil { @@ -1248,10 +1062,6 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "HandleMsgWithdraw", Handler: _Msg_HandleMsgWithdraw_Handler, }, - { - MethodName: "HandleMsgLegacyWithdraw", - Handler: _Msg_HandleMsgLegacyWithdraw_Handler, - }, { MethodName: "HandleMsgFoundationDeposit", Handler: _Msg_HandleMsgFoundationDeposit_Handler, @@ -1440,80 +1250,6 @@ func (m *MsgWithdrawResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } -func (m *MsgLegacyWithdraw) 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 *MsgLegacyWithdraw) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgLegacyWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.TargetAddress) > 0 { - i -= len(m.TargetAddress) - copy(dAtA[i:], m.TargetAddress) - i = encodeVarintTx(dAtA, i, uint64(len(m.TargetAddress))) - i-- - dAtA[i] = 0x1a - } - if len(m.From) > 0 { - i -= len(m.From) - copy(dAtA[i:], m.From) - i = encodeVarintTx(dAtA, i, uint64(len(m.From))) - i-- - dAtA[i] = 0x12 - } - if len(m.Amount) > 0 { - for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTx(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *MsgLegacyWithdrawResponse) 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 *MsgLegacyWithdrawResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *MsgLegacyWithdrawResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - func (m *MsgFoundationDeposit) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1611,18 +1347,16 @@ func (m *MsgSlashingResourceNode) MarshalToSizedBuffer(dAtA []byte) (int, error) i-- dAtA[i] = 0x30 } - if m.Slashing != nil { - { - size := m.Slashing.Size() - i -= size - if _, err := m.Slashing.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintTx(dAtA, i, uint64(size)) + { + size := m.Slashing.Size() + i -= size + if _, err := m.Slashing.MarshalTo(dAtA[i:]); err != nil { + return 0, err } - i-- - dAtA[i] = 0x2a + i = encodeVarintTx(dAtA, i, uint64(size)) } + i-- + dAtA[i] = 0x2a if len(m.WalletAddress) > 0 { i -= len(m.WalletAddress) copy(dAtA[i:], m.WalletAddress) @@ -1810,38 +1544,6 @@ func (m *MsgWithdrawResponse) Size() (n int) { return n } -func (m *MsgLegacyWithdraw) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.Amount) > 0 { - for _, e := range m.Amount { - l = e.Size() - n += 1 + l + sovTx(uint64(l)) - } - } - l = len(m.From) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - l = len(m.TargetAddress) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) - } - return n -} - -func (m *MsgLegacyWithdrawResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - func (m *MsgFoundationDeposit) Size() (n int) { if m == nil { return 0 @@ -1896,10 +1598,8 @@ func (m *MsgSlashingResourceNode) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - if m.Slashing != nil { - l = m.Slashing.Size() - n += 1 + l + sovTx(uint64(l)) - } + l = m.Slashing.Size() + n += 1 + l + sovTx(uint64(l)) if m.Suspend { n += 2 } @@ -2439,204 +2139,6 @@ func (m *MsgWithdrawResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgLegacyWithdraw) 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: MsgLegacyWithdraw: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgLegacyWithdraw: 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) - } - 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.Amount = append(m.Amount, types.Coin{}) - if err := m.Amount[len(m.Amount)-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 From", 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.From = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetAddress", 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.TargetAddress = 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 *MsgLegacyWithdrawResponse) 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: MsgLegacyWithdrawResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: MsgLegacyWithdrawResponse: 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 *MsgFoundationDeposit) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -2990,8 +2492,6 @@ func (m *MsgSlashingResourceNode) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - var v github_com_cosmos_cosmos_sdk_types.Int - m.Slashing = &v if err := m.Slashing.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/x/pot/types/tx.pb.gw.go b/x/pot/types/tx.pb.gw.go index 99916841..d102a15a 100644 --- a/x/pot/types/tx.pb.gw.go +++ b/x/pot/types/tx.pb.gw.go @@ -105,42 +105,6 @@ func local_request_Msg_HandleMsgWithdraw_0(ctx context.Context, marshaler runtim } -var ( - filter_Msg_HandleMsgLegacyWithdraw_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_Msg_HandleMsgLegacyWithdraw_0(ctx context.Context, marshaler runtime.Marshaler, client MsgClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MsgLegacyWithdraw - var metadata runtime.ServerMetadata - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Msg_HandleMsgLegacyWithdraw_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.HandleMsgLegacyWithdraw(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_Msg_HandleMsgLegacyWithdraw_0(ctx context.Context, marshaler runtime.Marshaler, server MsgServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq MsgLegacyWithdraw - var metadata runtime.ServerMetadata - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Msg_HandleMsgLegacyWithdraw_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.HandleMsgLegacyWithdraw(ctx, &protoReq) - return msg, metadata, err - -} - var ( filter_Msg_HandleMsgFoundationDeposit_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -265,29 +229,6 @@ func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server }) - mux.Handle("POST", pattern_Msg_HandleMsgLegacyWithdraw_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_Msg_HandleMsgLegacyWithdraw_0(rctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Msg_HandleMsgLegacyWithdraw_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("POST", pattern_Msg_HandleMsgFoundationDeposit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -415,26 +356,6 @@ func RegisterMsgHandlerClient(ctx context.Context, mux *runtime.ServeMux, client }) - mux.Handle("POST", pattern_Msg_HandleMsgLegacyWithdraw_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_Msg_HandleMsgLegacyWithdraw_0(rctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_Msg_HandleMsgLegacyWithdraw_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - mux.Handle("POST", pattern_Msg_HandleMsgFoundationDeposit_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -483,8 +404,6 @@ var ( pattern_Msg_HandleMsgWithdraw_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "withdraw"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgLegacyWithdraw_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "legacy_withdraw"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Msg_HandleMsgFoundationDeposit_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "foundation_deposit"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Msg_HandleMsgSlashingResourceNode_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "slashing_resource_node"}, "", runtime.AssumeColonVerbOpt(false))) @@ -495,8 +414,6 @@ var ( forward_Msg_HandleMsgWithdraw_0 = runtime.ForwardResponseMessage - forward_Msg_HandleMsgLegacyWithdraw_0 = runtime.ForwardResponseMessage - forward_Msg_HandleMsgFoundationDeposit_0 = runtime.ForwardResponseMessage forward_Msg_HandleMsgSlashingResourceNode_0 = runtime.ForwardResponseMessage diff --git a/x/register/keeper/msg_server.go b/x/register/keeper/msg_server.go index 757efa13..0ba998c5 100644 --- a/x/register/keeper/msg_server.go +++ b/x/register/keeper/msg_server.go @@ -2,9 +2,6 @@ package keeper import ( "context" - "encoding/hex" - "strconv" - "time" "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" @@ -55,21 +52,17 @@ func (k msgServer) HandleMsgCreateResourceNode(goCtx context.Context, msg *types return nil, errors.Wrap(types.ErrRegisterResourceNode, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeCreateResourceNode, - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - sdk.NewAttribute(types.AttributeKeyNetworkAddress, msg.NetworkAddress), - sdk.NewAttribute(types.AttributeKeyPubKey, hex.EncodeToString(pk.Bytes())), - sdk.NewAttribute(types.AttributeKeyOZoneLimitChanges, ozoneLimitChange.String()), - sdk.NewAttribute(types.AttributeKeyInitialDeposit, msg.Value.String()), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventCreateResourceNode{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + Pubkey: msg.GetPubkey(), + OzoneLimitChanges: ozoneLimitChange, + InitialDeposit: msg.GetValue(), }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + return &types.MsgCreateResourceNodeResponse{}, nil } @@ -96,19 +89,15 @@ func (k msgServer) HandleMsgCreateMetaNode(goCtx context.Context, msg *types.Msg return nil, errors.Wrap(types.ErrRegisterMetaNode, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeCreateMetaNode, - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - sdk.NewAttribute(types.AttributeKeyNetworkAddress, pk.String()), - sdk.NewAttribute(types.AttributeKeyOZoneLimitChanges, ozoneLimitChange.String()), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventCreateMetaNode{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + OzoneLimitChanges: ozoneLimitChange, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + return &types.MsgCreateMetaNodeResponse{}, nil } @@ -131,20 +120,15 @@ func (k msgServer) HandleMsgRemoveResourceNode(goCtx context.Context, msg *types return &types.MsgRemoveResourceNodeResponse{}, errors.Wrap(types.ErrUnbondResourceNode, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeUnbondingResourceNode, - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - sdk.NewAttribute(types.AttributeKeyResourceNode, msg.ResourceNodeAddress), - sdk.NewAttribute(types.AttributeKeyDepositToRemove, sdk.NewCoin(k.BondDenom(ctx), depositToRemove).String()), - sdk.NewAttribute(types.AttributeKeyUnbondingMatureTime, completionTime.Format(time.RFC3339)), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventUnBondingResourceNode{ + Sender: msg.GetOwnerAddress(), + ResourceNode: msg.GetResourceNodeAddress(), + DepositToRemove: sdk.NewCoin(k.BondDenom(ctx), depositToRemove), + UnbondingMatureTime: completionTime, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } return &types.MsgRemoveResourceNodeResponse{}, nil } @@ -174,21 +158,16 @@ func (k msgServer) HandleMsgRemoveMetaNode(goCtx context.Context, msg *types.Msg return &types.MsgRemoveMetaNodeResponse{}, errors.Wrap(types.ErrUnbondMetaNode, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeUnbondingMetaNode, - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - sdk.NewAttribute(types.AttributeKeyMetaNode, msg.MetaNodeAddress), - sdk.NewAttribute(types.AttributeKeyOZoneLimitChanges, ozoneLimitChange.Neg().String()), - sdk.NewAttribute(types.AttributeKeyDepositToRemove, sdk.NewCoin(k.BondDenom(ctx), availableDeposit).String()), - sdk.NewAttribute(types.AttributeKeyUnbondingMatureTime, completionTime.Format(time.RFC3339)), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventUnBondingMetaNode{ + Sender: msg.GetOwnerAddress(), + MetaNode: msg.GetMetaNodeAddress(), + OzoneLimitChanges: ozoneLimitChange.Abs(), + DepositToRemove: sdk.NewCoin(k.BondDenom(ctx), availableDeposit), + UnbondingMatureTime: completionTime, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } return &types.MsgRemoveMetaNodeResponse{}, nil } @@ -219,20 +198,15 @@ func (k msgServer) HandleMsgMetaNodeRegistrationVote(goCtx context.Context, msg return &types.MsgMetaNodeRegistrationVoteResponse{}, errors.Wrap(types.ErrVoteMetaNode, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeMetaNodeRegistrationVote, - sdk.NewAttribute(sdk.AttributeKeySender, msg.VoterOwnerAddress), - sdk.NewAttribute(types.AttributeKeyVoterNetworkAddress, msg.VoterNetworkAddress), - sdk.NewAttribute(types.AttributeKeyCandidateNetworkAddress, msg.CandidateNetworkAddress), - sdk.NewAttribute(types.AttributeKeyCandidateStatus, nodeStatus.String()), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.VoterOwnerAddress), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventMetaNodeRegistrationVote{ + Sender: msg.GetVoterOwnerAddress(), + VoterNetworkAddress: msg.GetVoterNetworkAddress(), + CandidateNetworkAddress: msg.GetCandidateNetworkAddress(), + CandidateStatus: nodeStatus, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } return &types.MsgMetaNodeRegistrationVoteResponse{}, nil } @@ -256,19 +230,14 @@ func (k msgServer) HandleMsgWithdrawMetaNodeRegistrationDeposit(goCtx context.Co return &types.MsgWithdrawMetaNodeRegistrationDepositResponse{}, errors.Wrap(types.ErrUnbondMetaNode, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeWithdrawMetaNodeRegistrationDeposit, - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - sdk.NewAttribute(types.AttributeKeyNetworkAddress, msg.NetworkAddress), - sdk.NewAttribute(types.AttributeKeyUnbondingMatureTime, completionTime.Format(time.RFC3339)), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventWithdrawMetaNodeRegistrationDeposit{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + UnbondingMatureTime: completionTime, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } return &types.MsgWithdrawMetaNodeRegistrationDepositResponse{}, nil } @@ -289,18 +258,15 @@ func (k msgServer) HandleMsgUpdateResourceNode(goCtx context.Context, msg *types if err != nil { return nil, errors.Wrap(types.ErrUpdateResourceNode, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeUpdateResourceNode, - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - sdk.NewAttribute(types.AttributeKeyNetworkAddress, msg.NetworkAddress), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - ), + + err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateResourceNode{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + return &types.MsgUpdateResourceNodeResponse{}, nil } @@ -325,24 +291,20 @@ func (k msgServer) HandleMsgUpdateResourceNodeDeposit(goCtx context.Context, msg return nil, errors.Wrap(types.ErrUpdateResourceNodeDeposit, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeUpdateResourceNodeDeposit, - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - sdk.NewAttribute(types.AttributeKeyNetworkAddress, msg.NetworkAddress), - sdk.NewAttribute(types.AttributeKeyDepositDelta, msg.DepositDelta.String()), - sdk.NewAttribute(types.AttributeKeyCurrentDeposit, sdk.NewCoin(k.BondDenom(ctx), node.Tokens).String()), - sdk.NewAttribute(types.AttributeKeyAvailableTokenBefore, sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtBefore).String()), - sdk.NewAttribute(types.AttributeKeyAvailableTokenAfter, sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtAfter).String()), - sdk.NewAttribute(types.AttributeKeyOZoneLimitChanges, ozoneLimitChange.String()), - sdk.NewAttribute(types.AttributeKeyUnbondingMatureTime, completionTime.Format(time.RFC3339)), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateResourceNodeDeposit{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + DepositDelta: msg.GetDepositDelta(), + CurrentDeposit: sdk.NewCoin(k.BondDenom(ctx), node.Tokens), + AvailableTokenBefore: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtBefore), + AvailableTokenAfter: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtAfter), + OzoneLimitChanges: ozoneLimitChange, + UnbondingMatureTime: completionTime, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + return &types.MsgUpdateResourceNodeDepositResponse{}, nil } @@ -384,14 +346,15 @@ func (k msgServer) HandleMsgUpdateEffectiveDeposit(goCtx context.Context, msg *t return nil, errors.Wrap(types.ErrUpdateResourceNodeDeposit, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeUpdateEffectiveDeposit, - sdk.NewAttribute(types.AttributeKeyNetworkAddress, msg.NetworkAddress), - sdk.NewAttribute(types.AttributeKeyEffectiveDepositAfter, msg.EffectiveTokens.String()), - sdk.NewAttribute(types.AttributeKeyIsUnsuspended, strconv.FormatBool(isUnsuspendedDuringUpdate)), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateEffectiveDeposit{ + NetworkAddress: msg.GetNetworkAddress(), + EffectiveDepositAfter: msg.EffectiveTokens, + IsUnsuspended: isUnsuspendedDuringUpdate, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + return &types.MsgUpdateEffectiveDepositResponse{}, nil } @@ -412,18 +375,15 @@ func (k msgServer) HandleMsgUpdateMetaNode(goCtx context.Context, msg *types.Msg if err != nil { return nil, errors.Wrap(types.ErrUpdateMetaNode, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeUpdateMetaNode, - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - sdk.NewAttribute(types.AttributeKeyNetworkAddress, msg.NetworkAddress), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - ), + + err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateMetaNode{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + return &types.MsgUpdateMetaNodeResponse{}, nil } @@ -451,23 +411,19 @@ func (k msgServer) HandleMsgUpdateMetaNodeDeposit(goCtx context.Context, msg *ty return nil, errors.Wrap(types.ErrUpdateMetaNodeDeposit, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeUpdateMetaNodeDeposit, - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - sdk.NewAttribute(types.AttributeKeyNetworkAddress, msg.NetworkAddress), - sdk.NewAttribute(types.AttributeKeyDepositDelta, msg.DepositDelta.String()), - sdk.NewAttribute(types.AttributeKeyCurrentDeposit, sdk.NewCoin(k.BondDenom(ctx), node.Tokens).String()), - sdk.NewAttribute(types.AttributeKeyAvailableTokenBefore, sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtBefore).String()), - sdk.NewAttribute(types.AttributeKeyAvailableTokenAfter, sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtAfter).String()), - sdk.NewAttribute(types.AttributeKeyOZoneLimitChanges, ozoneLimitChange.String()), - sdk.NewAttribute(types.AttributeKeyUnbondingMatureTime, completionTime.Format(time.RFC3339)), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.OwnerAddress), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateMetaNodeDeposit{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + DepositDelta: msg.GetDepositDelta(), + CurrentDeposit: sdk.NewCoin(k.BondDenom(ctx), node.Tokens), + AvailableTokenBefore: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtBefore), + AvailableTokenAfter: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtAfter), + OzoneLimitChanges: ozoneLimitChange, + UnbondingMatureTime: completionTime, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + return &types.MsgUpdateMetaNodeDepositResponse{}, nil } diff --git a/x/register/keeper/node_state_change.go b/x/register/keeper/node_state_change.go index 0f2b42f4..53b7d67c 100644 --- a/x/register/keeper/node_state_change.go +++ b/x/register/keeper/node_state_change.go @@ -22,21 +22,15 @@ func (k Keeper) BlockRegisteredNodesUpdates(ctx sdk.Context) { continue } if isMetaNode { - ctx.EventManager().EmitEvent( - sdk.NewEvent( - types.EventTypeCompleteUnbondingMetaNode, - sdk.NewAttribute(sdk.AttributeKeyAmount, balances.String()), - sdk.NewAttribute(types.AttributeKeyNetworkAddress, networkAddr), - ), - ) + _ = ctx.EventManager().EmitTypedEvent(&types.EventCompleteUnBondingMetaNode{ + Amount: balances, + NetworkAddress: networkAddr, + }) } else { - ctx.EventManager().EmitEvent( - sdk.NewEvent( - types.EventTypeCompleteUnbondingResourceNode, - sdk.NewAttribute(sdk.AttributeKeyAmount, balances.String()), - sdk.NewAttribute(types.AttributeKeyNetworkAddress, networkAddr), - ), - ) + _ = ctx.EventManager().EmitTypedEvent(&types.EventCompleteUnBondingResourceNode{ + Amount: balances, + NetworkAddress: networkAddr, + }) } } diff --git a/x/register/types/errors.go b/x/register/types/errors.go index c3453699..52ba9fa4 100644 --- a/x/register/types/errors.go +++ b/x/register/types/errors.go @@ -66,6 +66,7 @@ const ( codeErrInvalidAmount codeErrReporterAddressOrOwner codeErrInvalidEffectiveToken + codeErrEmitEvent ) var ( @@ -130,4 +131,5 @@ var ( ErrInvalidAmount = errors.Register(ModuleName, codeErrInvalidAmount, "invalid amount") ErrReporterAddressOrOwner = errors.Register(ModuleName, codeErrReporterAddressOrOwner, "invalid reporter address or owner address") ErrInvalidEffectiveToken = errors.Register(ModuleName, codeErrInvalidEffectiveToken, "invalid effective token") + ErrEmitEvent = errors.Register(ModuleName, codeErrEmitEvent, "failed to emit event") ) diff --git a/x/register/types/event.pb.go b/x/register/types/event.pb.go new file mode 100644 index 00000000..59c9433a --- /dev/null +++ b/x/register/types/event.pb.go @@ -0,0 +1,4374 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: stratos/register/v1/event.proto + +package types + +import ( + fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + types "github.com/cosmos/cosmos-sdk/codec/types" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + types1 "github.com/cosmos/cosmos-sdk/types" + types2 "github.com/cosmos/cosmos-sdk/x/staking/types" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" + _ "google.golang.org/protobuf/types/known/timestamppb" + io "io" + math "math" + math_bits "math/bits" + time "time" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// 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 + +// EventCreateResourceNode is emitted on Msg/MsgCreateResourceNode +type EventCreateResourceNode struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + Pubkey *types.Any `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty"` + OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` + InitialDeposit types1.Coin `protobuf:"bytes,5,opt,name=initial_deposit,json=initialDeposit,proto3" json:"initial_deposit"` +} + +func (m *EventCreateResourceNode) Reset() { *m = EventCreateResourceNode{} } +func (m *EventCreateResourceNode) String() string { return proto.CompactTextString(m) } +func (*EventCreateResourceNode) ProtoMessage() {} +func (*EventCreateResourceNode) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{0} +} +func (m *EventCreateResourceNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventCreateResourceNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventCreateResourceNode.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 *EventCreateResourceNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventCreateResourceNode.Merge(m, src) +} +func (m *EventCreateResourceNode) XXX_Size() int { + return m.Size() +} +func (m *EventCreateResourceNode) XXX_DiscardUnknown() { + xxx_messageInfo_EventCreateResourceNode.DiscardUnknown(m) +} + +var xxx_messageInfo_EventCreateResourceNode proto.InternalMessageInfo + +func (m *EventCreateResourceNode) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventCreateResourceNode) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func (m *EventCreateResourceNode) GetPubkey() *types.Any { + if m != nil { + return m.Pubkey + } + return nil +} + +func (m *EventCreateResourceNode) GetInitialDeposit() types1.Coin { + if m != nil { + return m.InitialDeposit + } + return types1.Coin{} +} + +// EventCreateMetaNode is emitted on Msg/MsgCreateMetaNode +type EventCreateMetaNode struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` +} + +func (m *EventCreateMetaNode) Reset() { *m = EventCreateMetaNode{} } +func (m *EventCreateMetaNode) String() string { return proto.CompactTextString(m) } +func (*EventCreateMetaNode) ProtoMessage() {} +func (*EventCreateMetaNode) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{1} +} +func (m *EventCreateMetaNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventCreateMetaNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventCreateMetaNode.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 *EventCreateMetaNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventCreateMetaNode.Merge(m, src) +} +func (m *EventCreateMetaNode) XXX_Size() int { + return m.Size() +} +func (m *EventCreateMetaNode) XXX_DiscardUnknown() { + xxx_messageInfo_EventCreateMetaNode.DiscardUnknown(m) +} + +var xxx_messageInfo_EventCreateMetaNode proto.InternalMessageInfo + +func (m *EventCreateMetaNode) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventCreateMetaNode) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +// EventUnBondingResourceNode is emitted on Msg/MsgRemoveResourceNode +type EventUnBondingResourceNode struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + ResourceNode string `protobuf:"bytes,2,opt,name=resource_node,json=resourceNode,proto3" json:"resource_node,omitempty"` + DepositToRemove types1.Coin `protobuf:"bytes,3,opt,name=deposit_to_remove,json=depositToRemove,proto3" json:"deposit_to_remove"` + UnbondingMatureTime time.Time `protobuf:"bytes,4,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` +} + +func (m *EventUnBondingResourceNode) Reset() { *m = EventUnBondingResourceNode{} } +func (m *EventUnBondingResourceNode) String() string { return proto.CompactTextString(m) } +func (*EventUnBondingResourceNode) ProtoMessage() {} +func (*EventUnBondingResourceNode) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{2} +} +func (m *EventUnBondingResourceNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventUnBondingResourceNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventUnBondingResourceNode.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 *EventUnBondingResourceNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventUnBondingResourceNode.Merge(m, src) +} +func (m *EventUnBondingResourceNode) XXX_Size() int { + return m.Size() +} +func (m *EventUnBondingResourceNode) XXX_DiscardUnknown() { + xxx_messageInfo_EventUnBondingResourceNode.DiscardUnknown(m) +} + +var xxx_messageInfo_EventUnBondingResourceNode proto.InternalMessageInfo + +func (m *EventUnBondingResourceNode) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventUnBondingResourceNode) GetResourceNode() string { + if m != nil { + return m.ResourceNode + } + return "" +} + +func (m *EventUnBondingResourceNode) GetDepositToRemove() types1.Coin { + if m != nil { + return m.DepositToRemove + } + return types1.Coin{} +} + +func (m *EventUnBondingResourceNode) GetUnbondingMatureTime() time.Time { + if m != nil { + return m.UnbondingMatureTime + } + return time.Time{} +} + +// EventUnBondingResourceNode is emitted on Msg/MsgRemoveMetaNode +type EventUnBondingMetaNode struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + MetaNode string `protobuf:"bytes,2,opt,name=meta_node,json=metaNode,proto3" json:"meta_node,omitempty"` + OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` + DepositToRemove types1.Coin `protobuf:"bytes,4,opt,name=deposit_to_remove,json=depositToRemove,proto3" json:"deposit_to_remove"` + UnbondingMatureTime time.Time `protobuf:"bytes,5,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` +} + +func (m *EventUnBondingMetaNode) Reset() { *m = EventUnBondingMetaNode{} } +func (m *EventUnBondingMetaNode) String() string { return proto.CompactTextString(m) } +func (*EventUnBondingMetaNode) ProtoMessage() {} +func (*EventUnBondingMetaNode) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{3} +} +func (m *EventUnBondingMetaNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventUnBondingMetaNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventUnBondingMetaNode.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 *EventUnBondingMetaNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventUnBondingMetaNode.Merge(m, src) +} +func (m *EventUnBondingMetaNode) XXX_Size() int { + return m.Size() +} +func (m *EventUnBondingMetaNode) XXX_DiscardUnknown() { + xxx_messageInfo_EventUnBondingMetaNode.DiscardUnknown(m) +} + +var xxx_messageInfo_EventUnBondingMetaNode proto.InternalMessageInfo + +func (m *EventUnBondingMetaNode) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventUnBondingMetaNode) GetMetaNode() string { + if m != nil { + return m.MetaNode + } + return "" +} + +func (m *EventUnBondingMetaNode) GetDepositToRemove() types1.Coin { + if m != nil { + return m.DepositToRemove + } + return types1.Coin{} +} + +func (m *EventUnBondingMetaNode) GetUnbondingMatureTime() time.Time { + if m != nil { + return m.UnbondingMatureTime + } + return time.Time{} +} + +// EventMetaNodeRegistrationVote is emitted on Msg/MsgMetaNodeRegistrationVote +type EventMetaNodeRegistrationVote struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + VoterNetworkAddress string `protobuf:"bytes,2,opt,name=voter_network_address,json=voterNetworkAddress,proto3" json:"voter_network_address,omitempty"` + CandidateNetworkAddress string `protobuf:"bytes,3,opt,name=candidate_network_address,json=candidateNetworkAddress,proto3" json:"candidate_network_address,omitempty"` + CandidateStatus types2.BondStatus `protobuf:"varint,4,opt,name=candidate_status,json=candidateStatus,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"candidate_status,omitempty"` +} + +func (m *EventMetaNodeRegistrationVote) Reset() { *m = EventMetaNodeRegistrationVote{} } +func (m *EventMetaNodeRegistrationVote) String() string { return proto.CompactTextString(m) } +func (*EventMetaNodeRegistrationVote) ProtoMessage() {} +func (*EventMetaNodeRegistrationVote) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{4} +} +func (m *EventMetaNodeRegistrationVote) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventMetaNodeRegistrationVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventMetaNodeRegistrationVote.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 *EventMetaNodeRegistrationVote) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventMetaNodeRegistrationVote.Merge(m, src) +} +func (m *EventMetaNodeRegistrationVote) XXX_Size() int { + return m.Size() +} +func (m *EventMetaNodeRegistrationVote) XXX_DiscardUnknown() { + xxx_messageInfo_EventMetaNodeRegistrationVote.DiscardUnknown(m) +} + +var xxx_messageInfo_EventMetaNodeRegistrationVote proto.InternalMessageInfo + +func (m *EventMetaNodeRegistrationVote) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventMetaNodeRegistrationVote) GetVoterNetworkAddress() string { + if m != nil { + return m.VoterNetworkAddress + } + return "" +} + +func (m *EventMetaNodeRegistrationVote) GetCandidateNetworkAddress() string { + if m != nil { + return m.CandidateNetworkAddress + } + return "" +} + +func (m *EventMetaNodeRegistrationVote) GetCandidateStatus() types2.BondStatus { + if m != nil { + return m.CandidateStatus + } + return types2.Unspecified +} + +// EventWithdrawMetaNodeRegistrationDeposit is emitted on Msg/MsgWithdrawMetaNodeRegistrationDeposit +type EventWithdrawMetaNodeRegistrationDeposit struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + UnbondingMatureTime time.Time `protobuf:"bytes,3,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` +} + +func (m *EventWithdrawMetaNodeRegistrationDeposit) Reset() { + *m = EventWithdrawMetaNodeRegistrationDeposit{} +} +func (m *EventWithdrawMetaNodeRegistrationDeposit) String() string { return proto.CompactTextString(m) } +func (*EventWithdrawMetaNodeRegistrationDeposit) ProtoMessage() {} +func (*EventWithdrawMetaNodeRegistrationDeposit) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{5} +} +func (m *EventWithdrawMetaNodeRegistrationDeposit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventWithdrawMetaNodeRegistrationDeposit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventWithdrawMetaNodeRegistrationDeposit.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 *EventWithdrawMetaNodeRegistrationDeposit) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventWithdrawMetaNodeRegistrationDeposit.Merge(m, src) +} +func (m *EventWithdrawMetaNodeRegistrationDeposit) XXX_Size() int { + return m.Size() +} +func (m *EventWithdrawMetaNodeRegistrationDeposit) XXX_DiscardUnknown() { + xxx_messageInfo_EventWithdrawMetaNodeRegistrationDeposit.DiscardUnknown(m) +} + +var xxx_messageInfo_EventWithdrawMetaNodeRegistrationDeposit proto.InternalMessageInfo + +func (m *EventWithdrawMetaNodeRegistrationDeposit) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventWithdrawMetaNodeRegistrationDeposit) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func (m *EventWithdrawMetaNodeRegistrationDeposit) GetUnbondingMatureTime() time.Time { + if m != nil { + return m.UnbondingMatureTime + } + return time.Time{} +} + +// EventUpdateResourceNode is emitted on Msg/MsgUpdateResourceNode +type EventUpdateResourceNode struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` +} + +func (m *EventUpdateResourceNode) Reset() { *m = EventUpdateResourceNode{} } +func (m *EventUpdateResourceNode) String() string { return proto.CompactTextString(m) } +func (*EventUpdateResourceNode) ProtoMessage() {} +func (*EventUpdateResourceNode) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{6} +} +func (m *EventUpdateResourceNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventUpdateResourceNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventUpdateResourceNode.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 *EventUpdateResourceNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventUpdateResourceNode.Merge(m, src) +} +func (m *EventUpdateResourceNode) XXX_Size() int { + return m.Size() +} +func (m *EventUpdateResourceNode) XXX_DiscardUnknown() { + xxx_messageInfo_EventUpdateResourceNode.DiscardUnknown(m) +} + +var xxx_messageInfo_EventUpdateResourceNode proto.InternalMessageInfo + +func (m *EventUpdateResourceNode) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventUpdateResourceNode) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +// EventUpdateResourceNodeDeposit is emitted on Msg/MsgUpdateResourceNodeDeposit +type EventUpdateResourceNodeDeposit struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + DepositDelta types1.Coin `protobuf:"bytes,3,opt,name=deposit_delta,json=depositDelta,proto3" json:"deposit_delta"` + CurrentDeposit types1.Coin `protobuf:"bytes,4,opt,name=current_deposit,json=currentDeposit,proto3" json:"current_deposit"` + AvailableTokenBefore types1.Coin `protobuf:"bytes,5,opt,name=available_token_before,json=availableTokenBefore,proto3" json:"available_token_before"` + AvailableTokenAfter types1.Coin `protobuf:"bytes,6,opt,name=available_token_after,json=availableTokenAfter,proto3" json:"available_token_after"` + OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` + UnbondingMatureTime time.Time `protobuf:"bytes,8,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` +} + +func (m *EventUpdateResourceNodeDeposit) Reset() { *m = EventUpdateResourceNodeDeposit{} } +func (m *EventUpdateResourceNodeDeposit) String() string { return proto.CompactTextString(m) } +func (*EventUpdateResourceNodeDeposit) ProtoMessage() {} +func (*EventUpdateResourceNodeDeposit) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{7} +} +func (m *EventUpdateResourceNodeDeposit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventUpdateResourceNodeDeposit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventUpdateResourceNodeDeposit.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 *EventUpdateResourceNodeDeposit) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventUpdateResourceNodeDeposit.Merge(m, src) +} +func (m *EventUpdateResourceNodeDeposit) XXX_Size() int { + return m.Size() +} +func (m *EventUpdateResourceNodeDeposit) XXX_DiscardUnknown() { + xxx_messageInfo_EventUpdateResourceNodeDeposit.DiscardUnknown(m) +} + +var xxx_messageInfo_EventUpdateResourceNodeDeposit proto.InternalMessageInfo + +func (m *EventUpdateResourceNodeDeposit) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventUpdateResourceNodeDeposit) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func (m *EventUpdateResourceNodeDeposit) GetDepositDelta() types1.Coin { + if m != nil { + return m.DepositDelta + } + return types1.Coin{} +} + +func (m *EventUpdateResourceNodeDeposit) GetCurrentDeposit() types1.Coin { + if m != nil { + return m.CurrentDeposit + } + return types1.Coin{} +} + +func (m *EventUpdateResourceNodeDeposit) GetAvailableTokenBefore() types1.Coin { + if m != nil { + return m.AvailableTokenBefore + } + return types1.Coin{} +} + +func (m *EventUpdateResourceNodeDeposit) GetAvailableTokenAfter() types1.Coin { + if m != nil { + return m.AvailableTokenAfter + } + return types1.Coin{} +} + +func (m *EventUpdateResourceNodeDeposit) GetUnbondingMatureTime() time.Time { + if m != nil { + return m.UnbondingMatureTime + } + return time.Time{} +} + +// EventUpdateEffectiveDeposit is emitted on Msg/MsgUpdateEffectiveDeposit +type EventUpdateEffectiveDeposit struct { + NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + EffectiveDepositAfter github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=effective_deposit_after,json=effectiveDepositAfter,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"effective_deposit_after"` + IsUnsuspended bool `protobuf:"varint,3,opt,name=is_unsuspended,json=isUnsuspended,proto3" json:"is_unsuspended,omitempty"` +} + +func (m *EventUpdateEffectiveDeposit) Reset() { *m = EventUpdateEffectiveDeposit{} } +func (m *EventUpdateEffectiveDeposit) String() string { return proto.CompactTextString(m) } +func (*EventUpdateEffectiveDeposit) ProtoMessage() {} +func (*EventUpdateEffectiveDeposit) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{8} +} +func (m *EventUpdateEffectiveDeposit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventUpdateEffectiveDeposit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventUpdateEffectiveDeposit.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 *EventUpdateEffectiveDeposit) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventUpdateEffectiveDeposit.Merge(m, src) +} +func (m *EventUpdateEffectiveDeposit) XXX_Size() int { + return m.Size() +} +func (m *EventUpdateEffectiveDeposit) XXX_DiscardUnknown() { + xxx_messageInfo_EventUpdateEffectiveDeposit.DiscardUnknown(m) +} + +var xxx_messageInfo_EventUpdateEffectiveDeposit proto.InternalMessageInfo + +func (m *EventUpdateEffectiveDeposit) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func (m *EventUpdateEffectiveDeposit) GetIsUnsuspended() bool { + if m != nil { + return m.IsUnsuspended + } + return false +} + +// EventUpdateMetaNode is emitted on Msg/MsgUpdateMetaNode +type EventUpdateMetaNode struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` +} + +func (m *EventUpdateMetaNode) Reset() { *m = EventUpdateMetaNode{} } +func (m *EventUpdateMetaNode) String() string { return proto.CompactTextString(m) } +func (*EventUpdateMetaNode) ProtoMessage() {} +func (*EventUpdateMetaNode) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{9} +} +func (m *EventUpdateMetaNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventUpdateMetaNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventUpdateMetaNode.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 *EventUpdateMetaNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventUpdateMetaNode.Merge(m, src) +} +func (m *EventUpdateMetaNode) XXX_Size() int { + return m.Size() +} +func (m *EventUpdateMetaNode) XXX_DiscardUnknown() { + xxx_messageInfo_EventUpdateMetaNode.DiscardUnknown(m) +} + +var xxx_messageInfo_EventUpdateMetaNode proto.InternalMessageInfo + +func (m *EventUpdateMetaNode) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventUpdateMetaNode) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +// EventUpdateMetaNodeDeposit is emitted on Msg/MsgUpdateMetaNodeDeposit +type EventUpdateMetaNodeDeposit struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + DepositDelta types1.Coin `protobuf:"bytes,3,opt,name=deposit_delta,json=depositDelta,proto3" json:"deposit_delta"` + CurrentDeposit types1.Coin `protobuf:"bytes,4,opt,name=current_deposit,json=currentDeposit,proto3" json:"current_deposit"` + AvailableTokenBefore types1.Coin `protobuf:"bytes,5,opt,name=available_token_before,json=availableTokenBefore,proto3" json:"available_token_before"` + AvailableTokenAfter types1.Coin `protobuf:"bytes,6,opt,name=available_token_after,json=availableTokenAfter,proto3" json:"available_token_after"` + OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` + UnbondingMatureTime time.Time `protobuf:"bytes,8,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` +} + +func (m *EventUpdateMetaNodeDeposit) Reset() { *m = EventUpdateMetaNodeDeposit{} } +func (m *EventUpdateMetaNodeDeposit) String() string { return proto.CompactTextString(m) } +func (*EventUpdateMetaNodeDeposit) ProtoMessage() {} +func (*EventUpdateMetaNodeDeposit) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{10} +} +func (m *EventUpdateMetaNodeDeposit) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventUpdateMetaNodeDeposit) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventUpdateMetaNodeDeposit.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 *EventUpdateMetaNodeDeposit) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventUpdateMetaNodeDeposit.Merge(m, src) +} +func (m *EventUpdateMetaNodeDeposit) XXX_Size() int { + return m.Size() +} +func (m *EventUpdateMetaNodeDeposit) XXX_DiscardUnknown() { + xxx_messageInfo_EventUpdateMetaNodeDeposit.DiscardUnknown(m) +} + +var xxx_messageInfo_EventUpdateMetaNodeDeposit proto.InternalMessageInfo + +func (m *EventUpdateMetaNodeDeposit) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventUpdateMetaNodeDeposit) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func (m *EventUpdateMetaNodeDeposit) GetDepositDelta() types1.Coin { + if m != nil { + return m.DepositDelta + } + return types1.Coin{} +} + +func (m *EventUpdateMetaNodeDeposit) GetCurrentDeposit() types1.Coin { + if m != nil { + return m.CurrentDeposit + } + return types1.Coin{} +} + +func (m *EventUpdateMetaNodeDeposit) GetAvailableTokenBefore() types1.Coin { + if m != nil { + return m.AvailableTokenBefore + } + return types1.Coin{} +} + +func (m *EventUpdateMetaNodeDeposit) GetAvailableTokenAfter() types1.Coin { + if m != nil { + return m.AvailableTokenAfter + } + return types1.Coin{} +} + +func (m *EventUpdateMetaNodeDeposit) GetUnbondingMatureTime() time.Time { + if m != nil { + return m.UnbondingMatureTime + } + return time.Time{} +} + +// EventCompleteUnBondingResourceNode is emitted on EndBlocker +type EventCompleteUnBondingResourceNode struct { + Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` +} + +func (m *EventCompleteUnBondingResourceNode) Reset() { *m = EventCompleteUnBondingResourceNode{} } +func (m *EventCompleteUnBondingResourceNode) String() string { return proto.CompactTextString(m) } +func (*EventCompleteUnBondingResourceNode) ProtoMessage() {} +func (*EventCompleteUnBondingResourceNode) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{11} +} +func (m *EventCompleteUnBondingResourceNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventCompleteUnBondingResourceNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventCompleteUnBondingResourceNode.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 *EventCompleteUnBondingResourceNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventCompleteUnBondingResourceNode.Merge(m, src) +} +func (m *EventCompleteUnBondingResourceNode) XXX_Size() int { + return m.Size() +} +func (m *EventCompleteUnBondingResourceNode) XXX_DiscardUnknown() { + xxx_messageInfo_EventCompleteUnBondingResourceNode.DiscardUnknown(m) +} + +var xxx_messageInfo_EventCompleteUnBondingResourceNode proto.InternalMessageInfo + +func (m *EventCompleteUnBondingResourceNode) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { + if m != nil { + return m.Amount + } + return nil +} + +func (m *EventCompleteUnBondingResourceNode) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +// EventCompleteUnBondingMetaNode is emitted on EndBlocker +type EventCompleteUnBondingMetaNode struct { + Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` +} + +func (m *EventCompleteUnBondingMetaNode) Reset() { *m = EventCompleteUnBondingMetaNode{} } +func (m *EventCompleteUnBondingMetaNode) String() string { return proto.CompactTextString(m) } +func (*EventCompleteUnBondingMetaNode) ProtoMessage() {} +func (*EventCompleteUnBondingMetaNode) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{12} +} +func (m *EventCompleteUnBondingMetaNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventCompleteUnBondingMetaNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventCompleteUnBondingMetaNode.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 *EventCompleteUnBondingMetaNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventCompleteUnBondingMetaNode.Merge(m, src) +} +func (m *EventCompleteUnBondingMetaNode) XXX_Size() int { + return m.Size() +} +func (m *EventCompleteUnBondingMetaNode) XXX_DiscardUnknown() { + xxx_messageInfo_EventCompleteUnBondingMetaNode.DiscardUnknown(m) +} + +var xxx_messageInfo_EventCompleteUnBondingMetaNode proto.InternalMessageInfo + +func (m *EventCompleteUnBondingMetaNode) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { + if m != nil { + return m.Amount + } + return nil +} + +func (m *EventCompleteUnBondingMetaNode) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func init() { + proto.RegisterType((*EventCreateResourceNode)(nil), "stratos.register.v1.EventCreateResourceNode") + proto.RegisterType((*EventCreateMetaNode)(nil), "stratos.register.v1.EventCreateMetaNode") + proto.RegisterType((*EventUnBondingResourceNode)(nil), "stratos.register.v1.EventUnBondingResourceNode") + proto.RegisterType((*EventUnBondingMetaNode)(nil), "stratos.register.v1.EventUnBondingMetaNode") + proto.RegisterType((*EventMetaNodeRegistrationVote)(nil), "stratos.register.v1.EventMetaNodeRegistrationVote") + proto.RegisterType((*EventWithdrawMetaNodeRegistrationDeposit)(nil), "stratos.register.v1.EventWithdrawMetaNodeRegistrationDeposit") + proto.RegisterType((*EventUpdateResourceNode)(nil), "stratos.register.v1.EventUpdateResourceNode") + proto.RegisterType((*EventUpdateResourceNodeDeposit)(nil), "stratos.register.v1.EventUpdateResourceNodeDeposit") + proto.RegisterType((*EventUpdateEffectiveDeposit)(nil), "stratos.register.v1.EventUpdateEffectiveDeposit") + proto.RegisterType((*EventUpdateMetaNode)(nil), "stratos.register.v1.EventUpdateMetaNode") + proto.RegisterType((*EventUpdateMetaNodeDeposit)(nil), "stratos.register.v1.EventUpdateMetaNodeDeposit") + proto.RegisterType((*EventCompleteUnBondingResourceNode)(nil), "stratos.register.v1.EventCompleteUnBondingResourceNode") + proto.RegisterType((*EventCompleteUnBondingMetaNode)(nil), "stratos.register.v1.EventCompleteUnBondingMetaNode") +} + +func init() { proto.RegisterFile("stratos/register/v1/event.proto", fileDescriptor_9f4bedab5b811f13) } + +var fileDescriptor_9f4bedab5b811f13 = []byte{ + // 1022 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xcf, 0xc6, 0x89, 0xbf, 0xe9, 0xb4, 0x71, 0xbe, 0xb5, 0x93, 0xc6, 0x09, 0xc2, 0x8e, 0x56, + 0x80, 0x72, 0xc9, 0x6e, 0x13, 0xe0, 0x06, 0x87, 0x38, 0x29, 0xa2, 0x6a, 0x13, 0xa1, 0x4d, 0x02, + 0x88, 0xcb, 0x6a, 0x76, 0xf7, 0xd9, 0x19, 0xd9, 0x3b, 0x63, 0xcd, 0xbc, 0x75, 0x31, 0x7f, 0x02, + 0x87, 0xaa, 0x17, 0x90, 0xf8, 0x17, 0x38, 0xe7, 0x4f, 0xe0, 0x10, 0x21, 0x0e, 0x55, 0x4f, 0x88, + 0x43, 0x8b, 0x92, 0x7f, 0x02, 0x0e, 0x48, 0x68, 0x77, 0x67, 0x9d, 0x9f, 0x26, 0x2e, 0x4e, 0x31, + 0x48, 0x3d, 0xd9, 0xbb, 0xf3, 0x3e, 0x9f, 0x79, 0xef, 0x7d, 0xde, 0x7b, 0x33, 0x36, 0xa9, 0x2a, + 0x94, 0x14, 0x85, 0xb2, 0x25, 0x34, 0x98, 0x42, 0x90, 0x76, 0x67, 0xd5, 0x86, 0x0e, 0x70, 0xb4, + 0xda, 0x52, 0xa0, 0x28, 0x96, 0xb4, 0x81, 0x95, 0x19, 0x58, 0x9d, 0xd5, 0xc5, 0xd9, 0x86, 0x68, + 0x88, 0x64, 0xdd, 0x8e, 0xbf, 0xa5, 0xa6, 0x8b, 0x0b, 0xbe, 0x50, 0xa1, 0x50, 0x6e, 0xba, 0x90, + 0x3e, 0xe8, 0xa5, 0x4a, 0xfa, 0x64, 0x7b, 0x54, 0x81, 0xdd, 0x59, 0xf5, 0x00, 0xe9, 0xaa, 0xed, + 0x0b, 0xc6, 0x33, 0x68, 0x43, 0x88, 0x46, 0x0b, 0xec, 0xe4, 0xc9, 0x8b, 0xea, 0x36, 0xe5, 0x5d, + 0xbd, 0x54, 0x3d, 0xbf, 0x84, 0x2c, 0x04, 0x85, 0x34, 0x6c, 0x6b, 0x83, 0xb7, 0x34, 0xb7, 0x42, + 0xda, 0x64, 0xbc, 0xd1, 0xa3, 0xd7, 0xcf, 0xa9, 0x95, 0xf9, 0x38, 0x47, 0xe6, 0xef, 0xc5, 0x71, + 0x6d, 0x48, 0xa0, 0x08, 0x0e, 0x28, 0x11, 0x49, 0x1f, 0xb6, 0x45, 0x00, 0xc5, 0xbb, 0x24, 0xaf, + 0x80, 0x07, 0x20, 0xcb, 0xc6, 0x92, 0xb1, 0x7c, 0xa3, 0x56, 0x7e, 0x76, 0xb0, 0x32, 0xab, 0xfd, + 0x5f, 0x0f, 0x02, 0x09, 0x4a, 0xed, 0xa0, 0x64, 0xbc, 0xe1, 0x68, 0xbb, 0xe2, 0x3a, 0x99, 0xe1, + 0x80, 0x8f, 0x84, 0x6c, 0xba, 0x34, 0x35, 0x28, 0x8f, 0x5f, 0x01, 0x2d, 0x68, 0x80, 0x7e, 0x5b, + 0xfc, 0x88, 0xe4, 0xdb, 0x91, 0xd7, 0x84, 0x6e, 0x39, 0xb7, 0x64, 0x2c, 0xdf, 0x5c, 0x9b, 0xb5, + 0xd2, 0x40, 0xad, 0x2c, 0x50, 0x6b, 0x9d, 0x77, 0x6b, 0xe5, 0x1f, 0x4f, 0xf8, 0x7c, 0xd9, 0x6d, + 0xa3, 0xb0, 0x3e, 0x89, 0xbc, 0x07, 0xd0, 0x75, 0x34, 0xba, 0xd8, 0x22, 0x25, 0xf1, 0x95, 0xe0, + 0xe0, 0xb6, 0x58, 0xc8, 0xd0, 0xf5, 0xf7, 0x29, 0x6f, 0x80, 0x2a, 0x4f, 0x24, 0xee, 0x7c, 0x70, + 0xf8, 0xbc, 0x3a, 0xf6, 0xcb, 0xf3, 0xea, 0x3b, 0x0d, 0x86, 0xfb, 0x91, 0x67, 0xf9, 0x22, 0xd4, + 0xc2, 0xe8, 0x8f, 0x15, 0x15, 0x34, 0x6d, 0xec, 0xb6, 0x41, 0x59, 0xf7, 0x39, 0x3e, 0x3b, 0x58, + 0x21, 0x7a, 0xb3, 0xfb, 0x1c, 0x9d, 0xdb, 0x09, 0xf1, 0xc3, 0x98, 0x77, 0x23, 0xa5, 0x2d, 0x7e, + 0x4c, 0x66, 0x18, 0x67, 0xc8, 0x68, 0xcb, 0x0d, 0xa0, 0x2d, 0x14, 0xc3, 0xf2, 0x64, 0xe2, 0xfe, + 0x82, 0xa5, 0x81, 0xb1, 0xc4, 0x96, 0xd6, 0xc0, 0xda, 0x10, 0x8c, 0xd7, 0x26, 0x62, 0x27, 0x9c, + 0x82, 0xc6, 0x6d, 0xa6, 0x30, 0xf3, 0x37, 0x83, 0x94, 0x4e, 0x09, 0xb2, 0x05, 0x48, 0x47, 0x27, + 0x46, 0x9f, 0x24, 0xe6, 0x5e, 0x49, 0x12, 0xcd, 0x83, 0x71, 0xb2, 0x98, 0x84, 0xbe, 0xc7, 0x6b, + 0x82, 0x07, 0xb1, 0x43, 0xc3, 0x95, 0xe3, 0x87, 0x64, 0x5a, 0x6a, 0x06, 0x97, 0x8b, 0x00, 0xae, + 0x8c, 0xff, 0x96, 0x3c, 0xbd, 0xe1, 0x03, 0x72, 0x5b, 0x8b, 0xe9, 0xa2, 0x70, 0x25, 0x84, 0xa2, + 0x03, 0xba, 0x2a, 0xaf, 0x94, 0x75, 0x46, 0x23, 0x77, 0x85, 0x93, 0xe0, 0x8a, 0x9f, 0x93, 0xb9, + 0x88, 0x7b, 0x69, 0x58, 0x6e, 0x48, 0x31, 0x92, 0xe0, 0xc6, 0x2d, 0x9b, 0x54, 0xe4, 0xcd, 0xb5, + 0xc5, 0x0b, 0x65, 0xbe, 0x9b, 0xf5, 0x73, 0x6d, 0x2a, 0x66, 0x7c, 0xf2, 0xa2, 0x6a, 0x38, 0xa5, + 0x1e, 0xc5, 0x56, 0xc2, 0x10, 0xdb, 0x98, 0xdf, 0xe6, 0xc8, 0x9d, 0xb3, 0x69, 0x1b, 0xa2, 0x68, + 0xde, 0x27, 0x37, 0x42, 0x40, 0x3a, 0x58, 0xba, 0xa6, 0xc2, 0x6c, 0xa3, 0x7f, 0xb4, 0x50, 0x2e, + 0x17, 0x66, 0xe2, 0xba, 0x85, 0x99, 0x1c, 0x56, 0x98, 0x1f, 0xc6, 0xc9, 0x9b, 0x89, 0x30, 0x99, + 0x1e, 0x4e, 0x72, 0x56, 0x48, 0x8a, 0x4c, 0xf0, 0x4f, 0x05, 0xfe, 0x1d, 0x7d, 0x1e, 0x92, 0xb9, + 0x8e, 0x40, 0x90, 0xee, 0xcb, 0xb6, 0x76, 0x29, 0x81, 0x6d, 0x9f, 0xed, 0xef, 0x5d, 0xb2, 0xe0, + 0x53, 0x1e, 0xb0, 0x80, 0x22, 0x5c, 0x60, 0xcc, 0x5d, 0xc1, 0x38, 0xdf, 0x83, 0x9e, 0x63, 0xdd, + 0x22, 0xff, 0x3f, 0x61, 0x55, 0x48, 0x31, 0x4a, 0xe7, 0x6e, 0x61, 0xcd, 0xcc, 0xd4, 0xc9, 0x0e, + 0xa1, 0x4c, 0xa0, 0xb8, 0x70, 0x77, 0x12, 0x4b, 0x67, 0xa6, 0x87, 0x4d, 0x5f, 0x98, 0xbf, 0x1b, + 0x64, 0x39, 0x49, 0xe3, 0x67, 0x0c, 0xf7, 0x03, 0x49, 0x1f, 0x5d, 0x96, 0x4e, 0x3d, 0x3e, 0x47, + 0x33, 0x26, 0xfb, 0x96, 0x50, 0x6e, 0xd8, 0x12, 0x7a, 0x6c, 0xe8, 0xe3, 0x79, 0xaf, 0x1d, 0xfc, + 0x1b, 0x8e, 0x67, 0xf3, 0xbb, 0x49, 0x52, 0xe9, 0xe3, 0xd0, 0x48, 0x25, 0xd8, 0x24, 0xd3, 0xd9, + 0x48, 0x08, 0xa0, 0x85, 0x74, 0xd0, 0x39, 0x7d, 0x4b, 0xa3, 0x36, 0x63, 0x50, 0x7c, 0x8c, 0xfb, + 0x91, 0x94, 0xc0, 0xb1, 0x77, 0x8c, 0x0f, 0x38, 0x56, 0x0a, 0x1a, 0x97, 0x25, 0x61, 0x8f, 0xdc, + 0xa1, 0x1d, 0xca, 0x5a, 0xd4, 0x6b, 0x81, 0x8b, 0xa2, 0x09, 0xdc, 0xf5, 0xa0, 0x2e, 0x24, 0x0c, + 0x7a, 0x2f, 0x98, 0xed, 0xc1, 0x77, 0x63, 0x74, 0x2d, 0x01, 0x17, 0x77, 0xc8, 0xdc, 0x79, 0x5a, + 0x5a, 0x47, 0x90, 0xe5, 0xfc, 0x60, 0xac, 0xa5, 0xb3, 0xac, 0xeb, 0x31, 0xb6, 0xdf, 0xf0, 0xfe, + 0xdf, 0xab, 0x19, 0xde, 0x7d, 0x9b, 0x65, 0x6a, 0xd8, 0x66, 0xf9, 0xc3, 0x20, 0x6f, 0x9c, 0xaa, + 0xcd, 0x7b, 0xf5, 0x3a, 0xf8, 0xc8, 0x3a, 0xbd, 0xc2, 0xbc, 0xa4, 0xcc, 0x8c, 0x97, 0x2c, 0x33, + 0x24, 0xf3, 0x90, 0xd1, 0x66, 0x25, 0xa2, 0x15, 0x18, 0xbf, 0x86, 0x74, 0xcd, 0xc1, 0x39, 0x9f, + 0x53, 0x81, 0xde, 0x26, 0x05, 0xa6, 0xdc, 0x88, 0xab, 0x48, 0xb5, 0xe3, 0x8e, 0x09, 0x92, 0xea, + 0x9e, 0x72, 0xa6, 0x99, 0xda, 0x3b, 0x79, 0x69, 0x7e, 0x9d, 0x5d, 0x1d, 0xd3, 0xf8, 0x47, 0x7a, + 0x75, 0x34, 0xbf, 0x99, 0xcc, 0x2e, 0x73, 0x67, 0x9c, 0x79, 0x3d, 0x24, 0x5e, 0x0f, 0x89, 0x91, + 0x0e, 0x89, 0x9f, 0x0c, 0x62, 0xa6, 0xbf, 0xaf, 0x44, 0xd8, 0x6e, 0x01, 0xc2, 0xe5, 0x3f, 0x36, + 0x7c, 0x92, 0xa7, 0xa1, 0x88, 0x38, 0x96, 0x8d, 0xa5, 0xdc, 0x5f, 0x27, 0xed, 0x6e, 0xbc, 0xe1, + 0xf7, 0x2f, 0xaa, 0xcb, 0x03, 0x04, 0x1f, 0x03, 0x94, 0xa3, 0xa9, 0xaf, 0xa3, 0xcd, 0x0e, 0x0d, + 0x7d, 0x1e, 0x5f, 0x08, 0xa7, 0xd7, 0xfe, 0xff, 0x91, 0x50, 0x6a, 0xdb, 0x87, 0x47, 0x15, 0xe3, + 0xe9, 0x51, 0xc5, 0xf8, 0xf5, 0xa8, 0x62, 0x3c, 0x39, 0xae, 0x8c, 0x3d, 0x3d, 0xae, 0x8c, 0xfd, + 0x7c, 0x5c, 0x19, 0xfb, 0xe2, 0xbd, 0x53, 0xee, 0xe8, 0xff, 0x5d, 0x38, 0x60, 0xf6, 0x75, 0xc5, + 0xdf, 0xa7, 0x8c, 0xdb, 0x5f, 0x9e, 0xfc, 0x57, 0x93, 0x38, 0xe8, 0xe5, 0x93, 0xe2, 0x78, 0xf7, + 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd1, 0xf5, 0xa4, 0x1f, 0xcc, 0x11, 0x00, 0x00, +} + +func (m *EventCreateResourceNode) 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 *EventCreateResourceNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventCreateResourceNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.InitialDeposit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + { + size := m.OzoneLimitChanges.Size() + i -= size + if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if m.Pubkey != nil { + { + size, err := m.Pubkey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventCreateMetaNode) 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 *EventCreateMetaNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventCreateMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.OzoneLimitChanges.Size() + i -= size + if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventUnBondingResourceNode) 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 *EventUnBondingResourceNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventUnBondingResourceNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + n3, err3 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) + if err3 != nil { + return 0, err3 + } + i -= n3 + i = encodeVarintEvent(dAtA, i, uint64(n3)) + i-- + dAtA[i] = 0x22 + { + size, err := m.DepositToRemove.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.ResourceNode) > 0 { + i -= len(m.ResourceNode) + copy(dAtA[i:], m.ResourceNode) + i = encodeVarintEvent(dAtA, i, uint64(len(m.ResourceNode))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventUnBondingMetaNode) 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 *EventUnBondingMetaNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventUnBondingMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + n5, err5 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) + if err5 != nil { + return 0, err5 + } + i -= n5 + i = encodeVarintEvent(dAtA, i, uint64(n5)) + i-- + dAtA[i] = 0x2a + { + size, err := m.DepositToRemove.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size := m.OzoneLimitChanges.Size() + i -= size + if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.MetaNode) > 0 { + i -= len(m.MetaNode) + copy(dAtA[i:], m.MetaNode) + i = encodeVarintEvent(dAtA, i, uint64(len(m.MetaNode))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventMetaNodeRegistrationVote) 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 *EventMetaNodeRegistrationVote) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventMetaNodeRegistrationVote) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.CandidateStatus != 0 { + i = encodeVarintEvent(dAtA, i, uint64(m.CandidateStatus)) + i-- + dAtA[i] = 0x20 + } + if len(m.CandidateNetworkAddress) > 0 { + i -= len(m.CandidateNetworkAddress) + copy(dAtA[i:], m.CandidateNetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.CandidateNetworkAddress))) + i-- + dAtA[i] = 0x1a + } + if len(m.VoterNetworkAddress) > 0 { + i -= len(m.VoterNetworkAddress) + copy(dAtA[i:], m.VoterNetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.VoterNetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventWithdrawMetaNodeRegistrationDeposit) 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 *EventWithdrawMetaNodeRegistrationDeposit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventWithdrawMetaNodeRegistrationDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + n7, err7 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) + if err7 != nil { + return 0, err7 + } + i -= n7 + i = encodeVarintEvent(dAtA, i, uint64(n7)) + i-- + dAtA[i] = 0x1a + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventUpdateResourceNode) 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 *EventUpdateResourceNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventUpdateResourceNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventUpdateResourceNodeDeposit) 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 *EventUpdateResourceNodeDeposit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventUpdateResourceNodeDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + n8, err8 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) + if err8 != nil { + return 0, err8 + } + i -= n8 + i = encodeVarintEvent(dAtA, i, uint64(n8)) + i-- + dAtA[i] = 0x42 + { + size := m.OzoneLimitChanges.Size() + i -= size + if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + { + size, err := m.AvailableTokenAfter.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + { + size, err := m.AvailableTokenBefore.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + { + size, err := m.CurrentDeposit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.DepositDelta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventUpdateEffectiveDeposit) 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 *EventUpdateEffectiveDeposit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventUpdateEffectiveDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IsUnsuspended { + i-- + if m.IsUnsuspended { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + { + size := m.EffectiveDepositAfter.Size() + i -= size + if _, err := m.EffectiveDepositAfter.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventUpdateMetaNode) 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 *EventUpdateMetaNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventUpdateMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventUpdateMetaNodeDeposit) 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 *EventUpdateMetaNodeDeposit) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventUpdateMetaNodeDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + n13, err13 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) + if err13 != nil { + return 0, err13 + } + i -= n13 + i = encodeVarintEvent(dAtA, i, uint64(n13)) + i-- + dAtA[i] = 0x42 + { + size := m.OzoneLimitChanges.Size() + i -= size + if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + { + size, err := m.AvailableTokenAfter.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + { + size, err := m.AvailableTokenBefore.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + { + size, err := m.CurrentDeposit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.DepositDelta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventCompleteUnBondingResourceNode) 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 *EventCompleteUnBondingResourceNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventCompleteUnBondingResourceNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Amount) > 0 { + for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *EventCompleteUnBondingMetaNode) 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 *EventCompleteUnBondingMetaNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventCompleteUnBondingMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintEvent(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.Amount) > 0 { + for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func encodeVarintEvent(dAtA []byte, offset int, v uint64) int { + offset -= sovEvent(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *EventCreateResourceNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + if m.Pubkey != nil { + l = m.Pubkey.Size() + n += 1 + l + sovEvent(uint64(l)) + } + l = m.OzoneLimitChanges.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.InitialDeposit.Size() + n += 1 + l + sovEvent(uint64(l)) + return n +} + +func (m *EventCreateMetaNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = m.OzoneLimitChanges.Size() + n += 1 + l + sovEvent(uint64(l)) + return n +} + +func (m *EventUnBondingResourceNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.ResourceNode) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = m.DepositToRemove.Size() + n += 1 + l + sovEvent(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) + n += 1 + l + sovEvent(uint64(l)) + return n +} + +func (m *EventUnBondingMetaNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.MetaNode) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = m.OzoneLimitChanges.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.DepositToRemove.Size() + n += 1 + l + sovEvent(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) + n += 1 + l + sovEvent(uint64(l)) + return n +} + +func (m *EventMetaNodeRegistrationVote) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.VoterNetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.CandidateNetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + if m.CandidateStatus != 0 { + n += 1 + sovEvent(uint64(m.CandidateStatus)) + } + return n +} + +func (m *EventWithdrawMetaNodeRegistrationDeposit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) + n += 1 + l + sovEvent(uint64(l)) + return n +} + +func (m *EventUpdateResourceNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventUpdateResourceNodeDeposit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = m.DepositDelta.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.CurrentDeposit.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.AvailableTokenBefore.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.AvailableTokenAfter.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.OzoneLimitChanges.Size() + n += 1 + l + sovEvent(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) + n += 1 + l + sovEvent(uint64(l)) + return n +} + +func (m *EventUpdateEffectiveDeposit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = m.EffectiveDepositAfter.Size() + n += 1 + l + sovEvent(uint64(l)) + if m.IsUnsuspended { + n += 2 + } + return n +} + +func (m *EventUpdateMetaNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventUpdateMetaNodeDeposit) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = m.DepositDelta.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.CurrentDeposit.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.AvailableTokenBefore.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.AvailableTokenAfter.Size() + n += 1 + l + sovEvent(uint64(l)) + l = m.OzoneLimitChanges.Size() + n += 1 + l + sovEvent(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) + n += 1 + l + sovEvent(uint64(l)) + return n +} + +func (m *EventCompleteUnBondingResourceNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Amount) > 0 { + for _, e := range m.Amount { + l = e.Size() + n += 1 + l + sovEvent(uint64(l)) + } + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventCompleteUnBondingMetaNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Amount) > 0 { + for _, e := range m.Amount { + l = e.Size() + n += 1 + l + sovEvent(uint64(l)) + } + } + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func sovEvent(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozEvent(x uint64) (n int) { + return sovEvent(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *EventCreateResourceNode) 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 ErrIntOverflowEvent + } + 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: EventCreateResourceNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventCreateResourceNode: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pubkey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pubkey == nil { + m.Pubkey = &types.Any{} + } + if err := m.Pubkey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OzoneLimitChanges", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialDeposit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.InitialDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventCreateMetaNode) 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 ErrIntOverflowEvent + } + 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: EventCreateMetaNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventCreateMetaNode: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OzoneLimitChanges", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventUnBondingResourceNode) 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 ErrIntOverflowEvent + } + 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: EventUnBondingResourceNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventUnBondingResourceNode: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 ResourceNode", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResourceNode = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DepositToRemove", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DepositToRemove.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventUnBondingMetaNode) 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 ErrIntOverflowEvent + } + 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: EventUnBondingMetaNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventUnBondingMetaNode: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 MetaNode", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MetaNode = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OzoneLimitChanges", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DepositToRemove", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DepositToRemove.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventMetaNodeRegistrationVote) 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 ErrIntOverflowEvent + } + 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: EventMetaNodeRegistrationVote: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventMetaNodeRegistrationVote: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 VoterNetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VoterNetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CandidateNetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CandidateNetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CandidateStatus", wireType) + } + m.CandidateStatus = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CandidateStatus |= types2.BondStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventWithdrawMetaNodeRegistrationDeposit) 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 ErrIntOverflowEvent + } + 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: EventWithdrawMetaNodeRegistrationDeposit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventWithdrawMetaNodeRegistrationDeposit: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventUpdateResourceNode) 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 ErrIntOverflowEvent + } + 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: EventUpdateResourceNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventUpdateResourceNode: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventUpdateResourceNodeDeposit) 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 ErrIntOverflowEvent + } + 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: EventUpdateResourceNodeDeposit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventUpdateResourceNodeDeposit: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DepositDelta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DepositDelta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentDeposit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CurrentDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableTokenBefore", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.AvailableTokenBefore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableTokenAfter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.AvailableTokenAfter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OzoneLimitChanges", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventUpdateEffectiveDeposit) 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 ErrIntOverflowEvent + } + 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: EventUpdateEffectiveDeposit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventUpdateEffectiveDeposit: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EffectiveDepositAfter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.EffectiveDepositAfter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsUnsuspended", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsUnsuspended = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventUpdateMetaNode) 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 ErrIntOverflowEvent + } + 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: EventUpdateMetaNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventUpdateMetaNode: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventUpdateMetaNodeDeposit) 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 ErrIntOverflowEvent + } + 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: EventUpdateMetaNodeDeposit: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventUpdateMetaNodeDeposit: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DepositDelta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DepositDelta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentDeposit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CurrentDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableTokenBefore", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.AvailableTokenBefore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableTokenAfter", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.AvailableTokenAfter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OzoneLimitChanges", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventCompleteUnBondingResourceNode) 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 ErrIntOverflowEvent + } + 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: EventCompleteUnBondingResourceNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventCompleteUnBondingResourceNode: 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) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = append(m.Amount, types1.Coin{}) + if err := m.Amount[len(m.Amount)-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 NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventCompleteUnBondingMetaNode) 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 ErrIntOverflowEvent + } + 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: EventCompleteUnBondingMetaNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventCompleteUnBondingMetaNode: 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) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = append(m.Amount, types1.Coin{}) + if err := m.Amount[len(m.Amount)-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 NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipEvent(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, ErrIntOverflowEvent + } + 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, ErrIntOverflowEvent + } + 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, ErrIntOverflowEvent + } + 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, ErrInvalidLengthEvent + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupEvent + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthEvent + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthEvent = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEvent = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupEvent = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/register/types/tx.pb.go b/x/register/types/tx.pb.go index fa42e33f..892a7b90 100644 --- a/x/register/types/tx.pb.go +++ b/x/register/types/tx.pb.go @@ -10,6 +10,8 @@ import ( types "github.com/cosmos/cosmos-sdk/codec/types" github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" types1 "github.com/cosmos/cosmos-sdk/types" + _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -792,6 +794,27 @@ func (m *MsgUpdateEffectiveDeposit) XXX_DiscardUnknown() { var xxx_messageInfo_MsgUpdateEffectiveDeposit proto.InternalMessageInfo +func (m *MsgUpdateEffectiveDeposit) GetReporters() []string { + if m != nil { + return m.Reporters + } + return nil +} + +func (m *MsgUpdateEffectiveDeposit) GetReporterOwner() []string { + if m != nil { + return m.ReporterOwner + } + return nil +} + +func (m *MsgUpdateEffectiveDeposit) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + // MsgUpdateEffectiveDepositResponse defines the Msg/UpdateEffectiveDeposit response type. type MsgUpdateEffectiveDepositResponse struct { } @@ -1165,100 +1188,111 @@ func init() { func init() { proto.RegisterFile("stratos/register/v1/tx.proto", fileDescriptor_75d4b90d7a185a31) } var fileDescriptor_75d4b90d7a185a31 = []byte{ - // 1487 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0x4d, 0x6c, 0x1b, 0x45, - 0x14, 0xce, 0xda, 0x69, 0x69, 0xa6, 0x4d, 0x7f, 0xdc, 0x84, 0x3a, 0x6e, 0xea, 0x49, 0xa7, 0x34, - 0xa4, 0x14, 0xef, 0xd6, 0x29, 0x85, 0xb6, 0x40, 0x51, 0xdd, 0x20, 0x51, 0xa1, 0xa4, 0x68, 0x55, - 0x8a, 0x84, 0x84, 0xac, 0xb5, 0x3d, 0x75, 0xad, 0xc4, 0x3b, 0xd6, 0xee, 0xda, 0xa9, 0x0f, 0x5c, - 0x38, 0x71, 0x44, 0x42, 0xe2, 0x4a, 0xe1, 0x02, 0xe2, 0x04, 0x52, 0x39, 0x22, 0x21, 0x4e, 0x05, - 0x09, 0xa9, 0x02, 0x09, 0x21, 0x24, 0x46, 0x28, 0xe5, 0xe4, 0x03, 0x87, 0x3d, 0x70, 0x46, 0x3b, - 0x33, 0x3b, 0xeb, 0x5d, 0xef, 0x6e, 0x1d, 0xda, 0x1e, 0x40, 0x3d, 0xd9, 0xf3, 0x7e, 0x66, 0xbe, - 0xf7, 0xbd, 0xf7, 0xe6, 0x67, 0xc1, 0xbc, 0xed, 0x58, 0x86, 0x43, 0x6c, 0xcd, 0xc2, 0xcd, 0x96, - 0xed, 0x60, 0x4b, 0xeb, 0x95, 0x35, 0xe7, 0xa6, 0xda, 0xb1, 0x88, 0x43, 0x72, 0x07, 0x85, 0x56, - 0xf5, 0xb5, 0x6a, 0xaf, 0x5c, 0x98, 0x69, 0x92, 0x26, 0x61, 0x7a, 0xcd, 0xfb, 0xc7, 0x4d, 0x0b, - 0x73, 0x4d, 0x42, 0x9a, 0x1b, 0x58, 0x63, 0xa3, 0x5a, 0xf7, 0xba, 0x66, 0x98, 0x7d, 0xa1, 0x9a, - 0x17, 0x2a, 0xa3, 0xd3, 0xd2, 0x0c, 0xd3, 0x24, 0x8e, 0xe1, 0xb4, 0x88, 0x69, 0xfb, 0x8e, 0x75, - 0x62, 0xb7, 0x89, 0x5d, 0xe5, 0x33, 0xf2, 0x81, 0x50, 0xa1, 0x38, 0x70, 0x12, 0x0a, 0xb7, 0x29, - 0x72, 0x0f, 0xad, 0x66, 0xd8, 0x58, 0xeb, 0x95, 0x6b, 0xd8, 0x31, 0xca, 0x5a, 0x9d, 0xb4, 0x4c, - 0xae, 0x47, 0x9f, 0x4c, 0x82, 0xd9, 0x55, 0xbb, 0x79, 0xc9, 0xc2, 0x86, 0x83, 0x75, 0x6c, 0x93, - 0xae, 0x55, 0xc7, 0x6b, 0xa4, 0x81, 0x73, 0xd7, 0xc0, 0x3e, 0x13, 0x3b, 0x9b, 0xc4, 0x5a, 0xaf, - 0x1a, 0x8d, 0x86, 0x85, 0x6d, 0x3b, 0xaf, 0x2c, 0x28, 0x4b, 0x53, 0x95, 0xd2, 0x80, 0xc2, 0xa8, - 0xca, 0xa5, 0xf0, 0xc9, 0xbe, 0xd1, 0xde, 0x38, 0x8f, 0x22, 0x0a, 0xa4, 0xef, 0x15, 0x92, 0x8b, - 0x5c, 0x90, 0x33, 0xc0, 0xce, 0x4e, 0xb7, 0xb6, 0x8e, 0xfb, 0xf9, 0xcc, 0x82, 0xb2, 0xb4, 0x7b, - 0x79, 0x46, 0xe5, 0xf1, 0xab, 0x3e, 0x35, 0xea, 0x45, 0xb3, 0x5f, 0x39, 0x3d, 0xa0, 0x50, 0xd8, - 0xb9, 0x14, 0x4e, 0xf3, 0xb9, 0xf9, 0x18, 0xfd, 0x70, 0xbb, 0x34, 0x23, 0x88, 0xa8, 0x5b, 0xfd, - 0x8e, 0x43, 0xd4, 0x37, 0xba, 0xb5, 0xd7, 0x71, 0x5f, 0x17, 0x0e, 0xb9, 0x35, 0xb0, 0xa3, 0x67, - 0x6c, 0x74, 0x71, 0x3e, 0xcb, 0x56, 0x98, 0x53, 0x85, 0xb5, 0x47, 0x82, 0x2a, 0x48, 0x50, 0x2f, - 0x91, 0x96, 0x59, 0x39, 0x72, 0x87, 0xc2, 0x89, 0x01, 0x85, 0xdc, 0xde, 0xa5, 0x70, 0x0f, 0x5f, - 0x89, 0x0d, 0x91, 0xce, 0xc5, 0xb9, 0x35, 0x30, 0x4d, 0x36, 0x4d, 0x6c, 0x49, 0x22, 0x26, 0x19, - 0x11, 0x27, 0x06, 0x14, 0x86, 0x15, 0x2e, 0x85, 0x33, 0x7c, 0x82, 0x90, 0x18, 0xe9, 0x7b, 0xd8, - 0xd8, 0xa7, 0xa0, 0x0d, 0x76, 0x37, 0xb0, 0x5d, 0xb7, 0x5a, 0x1d, 0x2f, 0xd3, 0xf9, 0x1d, 0x0c, - 0xe5, 0x82, 0x1a, 0x53, 0x4d, 0xea, 0x4a, 0x60, 0x57, 0x39, 0x21, 0xc0, 0x0e, 0x3b, 0xbb, 0x14, - 0xe6, 0xf8, 0x8a, 0x43, 0x42, 0xa4, 0x0f, 0x9b, 0xe4, 0x2e, 0x80, 0x29, 0x93, 0x34, 0x70, 0xd5, - 0xe9, 0x77, 0x70, 0x7e, 0xe7, 0x82, 0xb2, 0x34, 0x5d, 0x39, 0x3a, 0xa0, 0x30, 0x10, 0xba, 0x14, - 0xee, 0x17, 0xd9, 0xf3, 0x45, 0x48, 0xdf, 0xe5, 0xfd, 0xbf, 0xea, 0xfd, 0x85, 0xe0, 0x48, 0x6c, - 0x89, 0xe8, 0xd8, 0xee, 0x10, 0xd3, 0xc6, 0xe8, 0xf7, 0x2c, 0x38, 0x20, 0x2d, 0x56, 0xb1, 0x63, - 0x3c, 0x2e, 0xa0, 0xff, 0x53, 0x01, 0xa1, 0xc3, 0x60, 0x6e, 0x24, 0xbd, 0x32, 0xf9, 0xbf, 0x28, - 0x6c, 0x07, 0xd1, 0x71, 0x9b, 0xf4, 0xc2, 0x3b, 0x48, 0x1b, 0xcc, 0x5a, 0x62, 0x5c, 0x65, 0x85, - 0x15, 0x2e, 0x83, 0x73, 0x03, 0x0a, 0xe3, 0x0d, 0x5c, 0x0a, 0xe7, 0x39, 0xa6, 0x58, 0x35, 0xd2, - 0x0f, 0x5a, 0x43, 0xeb, 0xf8, 0xa4, 0x8c, 0x90, 0x9c, 0x79, 0x20, 0x92, 0x45, 0xd9, 0x8f, 0xc6, - 0x25, 0x23, 0xff, 0x4e, 0x61, 0x65, 0xcf, 0x2d, 0x64, 0xd9, 0xbf, 0x03, 0x0e, 0xb4, 0xb1, 0x63, - 0xc4, 0x45, 0x5c, 0x1e, 0x50, 0x38, 0xaa, 0x74, 0x29, 0xcc, 0x73, 0x38, 0x23, 0x2a, 0xa4, 0xef, - 0x6b, 0x8b, 0x79, 0x1f, 0x55, 0x94, 0x3c, 0xb7, 0xe1, 0x18, 0x64, 0x84, 0x7f, 0x65, 0x58, 0x6e, - 0xdf, 0xec, 0x34, 0xa2, 0xa7, 0x43, 0xa4, 0x02, 0x95, 0x47, 0xbc, 0x85, 0xc5, 0xec, 0x25, 0x99, - 0x87, 0xb1, 0x97, 0x8c, 0xb0, 0x99, 0x7d, 0xb0, 0xc6, 0x0c, 0x6d, 0xb5, 0x93, 0xff, 0x76, 0xab, - 0x1d, 0xe5, 0x5b, 0x66, 0xe4, 0x8b, 0x0c, 0xab, 0x39, 0x6e, 0x21, 0x6b, 0xee, 0x71, 0x36, 0x52, - 0x6a, 0x3b, 0xcc, 0x95, 0x64, 0xf2, 0xeb, 0x0c, 0x98, 0x8f, 0xe5, 0x7a, 0x05, 0x77, 0x88, 0xdd, - 0x72, 0x1e, 0xd9, 0xf9, 0xf5, 0x90, 0x3b, 0x38, 0xd7, 0x06, 0xd3, 0x0d, 0x0e, 0xb9, 0xda, 0xc0, - 0x1b, 0x8e, 0x71, 0xff, 0x43, 0xab, 0x24, 0xf2, 0x1e, 0xf6, 0x0b, 0x96, 0x0b, 0x89, 0x91, 0xbe, - 0x47, 0x8c, 0x57, 0xd8, 0x70, 0x11, 0x3c, 0x95, 0x46, 0x9b, 0xe4, 0xf7, 0xb3, 0xec, 0x10, 0xfb, - 0xaf, 0x5e, 0xbf, 0x8e, 0xeb, 0x4e, 0xab, 0x27, 0xc9, 0x7d, 0x05, 0x4c, 0x59, 0xb8, 0x43, 0x2c, - 0x07, 0x5b, 0x1e, 0xad, 0xd9, 0xa5, 0x29, 0xde, 0x28, 0x52, 0x18, 0x34, 0x8a, 0x14, 0x21, 0x3d, - 0x50, 0xe7, 0x74, 0xb0, 0xd7, 0x1f, 0x54, 0x19, 0x1d, 0xf9, 0x0c, 0x9b, 0xe5, 0xe4, 0x80, 0xc2, - 0x88, 0xc6, 0xa5, 0x70, 0x36, 0x3c, 0x15, 0x97, 0x23, 0x7d, 0xda, 0x17, 0x5c, 0xf1, 0xc6, 0x71, - 0x19, 0xcf, 0x3e, 0x8c, 0x8c, 0x7f, 0xa4, 0x80, 0xfd, 0xd8, 0x67, 0xa0, 0xea, 0x90, 0x75, 0x6c, - 0xfa, 0x57, 0x80, 0x75, 0x2f, 0x15, 0xbf, 0x51, 0xb8, 0xd8, 0x6c, 0x39, 0x37, 0xba, 0x35, 0xb5, - 0x4e, 0xda, 0xe2, 0x92, 0x2f, 0x7e, 0x4a, 0x76, 0x63, 0x5d, 0xf3, 0xb6, 0x09, 0x5b, 0xbd, 0x6c, - 0x3a, 0x03, 0x0a, 0x47, 0x66, 0x72, 0x29, 0x3c, 0xc4, 0x81, 0x44, 0x35, 0xe8, 0xa7, 0xdb, 0x25, - 0x20, 0xaa, 0xe0, 0xb2, 0xe9, 0xe8, 0xfb, 0xa4, 0xc1, 0x55, 0xa6, 0x3f, 0x3f, 0xf9, 0xfe, 0x2d, - 0x38, 0x81, 0x8e, 0x81, 0xa3, 0x89, 0x89, 0x92, 0xe9, 0xfc, 0x2a, 0x03, 0xf2, 0x23, 0xcd, 0xf4, - 0xb8, 0x55, 0x52, 0x5b, 0x05, 0x81, 0x85, 0x24, 0xca, 0x24, 0xaf, 0x9f, 0x4e, 0x82, 0xc3, 0xab, - 0x76, 0x33, 0xd8, 0x9e, 0xbc, 0xad, 0xda, 0x62, 0x4f, 0xc0, 0x6b, 0xc4, 0xc1, 0xb9, 0x77, 0xc1, - 0x5c, 0xdd, 0x30, 0x1b, 0x2d, 0x6f, 0x8e, 0x6a, 0x3c, 0xc9, 0x17, 0x07, 0x14, 0x26, 0x1b, 0xb9, - 0x14, 0x2e, 0x70, 0xac, 0x89, 0x26, 0x48, 0x3f, 0x24, 0x75, 0x6b, 0xe1, 0x0c, 0x74, 0x41, 0xa0, - 0xaa, 0xc6, 0xe5, 0xe2, 0xe5, 0x01, 0x85, 0x49, 0x26, 0x2e, 0x85, 0xc5, 0xe8, 0xd2, 0x91, 0xfc, - 0xcc, 0x4a, 0xcd, 0x95, 0xe1, 0x44, 0xbd, 0x00, 0x9e, 0x20, 0x9d, 0x96, 0xe9, 0x1d, 0x66, 0x5e, - 0x8a, 0x76, 0x55, 0x8e, 0x0c, 0x28, 0xf4, 0x45, 0x2e, 0x85, 0x7b, 0x45, 0xb2, 0xb9, 0x00, 0xe9, - 0xbe, 0xca, 0xbb, 0x73, 0xf6, 0x88, 0xd7, 0xe1, 0x51, 0xaa, 0x26, 0x83, 0x3b, 0x67, 0xac, 0x41, - 0x70, 0xe7, 0x8c, 0x55, 0x23, 0xfd, 0x20, 0x93, 0x47, 0xe8, 0xc1, 0x80, 0x8b, 0x23, 0xd4, 0xec, - 0x60, 0x8b, 0x9d, 0x19, 0x50, 0x18, 0xa7, 0x76, 0x29, 0x2c, 0x0c, 0x2f, 0x15, 0xa1, 0xe4, 0x00, - 0x93, 0x0e, 0xd3, 0x81, 0x8e, 0x83, 0x63, 0x29, 0x35, 0x22, 0x6b, 0xe9, 0xae, 0x02, 0x16, 0x57, - 0xed, 0xe6, 0x5b, 0x2d, 0xe7, 0x46, 0xc3, 0x32, 0x36, 0xe3, 0xec, 0xff, 0x63, 0x1d, 0x8b, 0x4e, - 0x01, 0x75, 0xbc, 0x88, 0x7c, 0x12, 0x96, 0x3f, 0xde, 0x0f, 0xb2, 0xab, 0x76, 0x33, 0xf7, 0xa5, - 0x02, 0x0e, 0xbf, 0x66, 0x98, 0x8d, 0x0d, 0x1c, 0xff, 0x7d, 0xe3, 0x99, 0xd8, 0xeb, 0x51, 0xac, - 0x6d, 0x61, 0x79, 0x7c, 0x5b, 0x99, 0x8c, 0xf2, 0x7b, 0x3f, 0xff, 0xf9, 0x61, 0xe6, 0x24, 0x3a, - 0xa1, 0xc5, 0x7d, 0xa6, 0xa9, 0x33, 0xc7, 0x6a, 0xe8, 0x7d, 0x13, 0x86, 0x1c, 0xf3, 0xa0, 0x4a, - 0x84, 0x3c, 0x6a, 0x9b, 0x0c, 0x39, 0xe5, 0x41, 0x93, 0x0e, 0xd9, 0x62, 0x8e, 0x69, 0x90, 0x63, - 0xde, 0x09, 0x89, 0x90, 0x47, 0x6d, 0x93, 0x21, 0xa7, 0xdc, 0x87, 0xd3, 0x21, 0x77, 0x99, 0x63, - 0x04, 0xf2, 0x8f, 0x0a, 0x40, 0x29, 0x90, 0xfd, 0x0e, 0x29, 0x8f, 0x8f, 0x46, 0xb8, 0x14, 0xce, - 0x6d, 0xdb, 0x45, 0xc6, 0x71, 0x8e, 0xc5, 0x71, 0x1a, 0x95, 0xc7, 0x8e, 0xa3, 0x2a, 0x8e, 0x9a, - 0xdc, 0xb7, 0x0a, 0x80, 0x91, 0x78, 0x46, 0xae, 0x5b, 0x6a, 0x3a, 0xb2, 0xa8, 0x7d, 0xe1, 0xf9, - 0xed, 0xd9, 0xcb, 0x30, 0xce, 0xb0, 0x30, 0x34, 0x54, 0x4a, 0x0b, 0x23, 0xb8, 0xa6, 0xf8, 0x21, - 0xdc, 0x52, 0xc0, 0xa1, 0x48, 0xaf, 0xca, 0xb7, 0xcd, 0x62, 0x7a, 0xef, 0xf9, 0x76, 0x05, 0x75, - 0x3c, 0x3b, 0x09, 0xb5, 0xc4, 0xa0, 0x3e, 0x8d, 0x8e, 0xa7, 0xf5, 0xa7, 0x7c, 0x91, 0x87, 0x21, - 0x46, 0x9e, 0xfc, 0x8b, 0xe9, 0xbd, 0x76, 0x7f, 0x88, 0x09, 0xcf, 0xef, 0x74, 0x88, 0xa2, 0x1f, - 0x13, 0x20, 0x46, 0x5e, 0x88, 0x8b, 0xe9, 0x09, 0xbd, 0x3f, 0xc4, 0x84, 0x57, 0x54, 0x3a, 0x44, - 0x91, 0xf0, 0x00, 0xe2, 0x37, 0x0a, 0x28, 0x26, 0x40, 0xf4, 0x4b, 0xb5, 0x34, 0x1e, 0x02, 0xbf, - 0x52, 0xcf, 0x6c, 0xcb, 0x7c, 0x7b, 0x85, 0x1a, 0x7c, 0x8f, 0xf1, 0x0b, 0xf5, 0x7b, 0x05, 0x1c, - 0x95, 0xf8, 0x13, 0xef, 0x6c, 0xa7, 0x92, 0x30, 0x25, 0x79, 0x14, 0xce, 0x6e, 0xd7, 0x43, 0x06, - 0x72, 0x96, 0x05, 0xb2, 0x8c, 0x4e, 0xc5, 0x06, 0x12, 0x44, 0x60, 0x0d, 0x4d, 0x50, 0xf5, 0x6e, - 0x18, 0xb9, 0xbf, 0x15, 0xf0, 0xac, 0x8c, 0x65, 0x9c, 0x3b, 0xc3, 0x8b, 0x49, 0x20, 0xc7, 0x70, - 0x2e, 0x5c, 0x7a, 0x00, 0x67, 0x19, 0xec, 0x0a, 0x0b, 0xf6, 0x02, 0x7a, 0x29, 0x36, 0xd8, 0x4d, - 0x31, 0x53, 0x35, 0x21, 0x6a, 0x91, 0xc4, 0x8a, 0xfe, 0xf9, 0x56, 0x51, 0xb9, 0xb3, 0x55, 0x54, - 0xee, 0x6e, 0x15, 0x95, 0x3f, 0xb6, 0x8a, 0xca, 0x07, 0xf7, 0x8a, 0x13, 0x77, 0xef, 0x15, 0x27, - 0x7e, 0xbd, 0x57, 0x9c, 0x78, 0xfb, 0xb9, 0xa1, 0x97, 0x98, 0x58, 0xc5, 0xc4, 0x8e, 0xff, 0xb7, - 0x54, 0xbf, 0x61, 0xb4, 0x4c, 0xed, 0x66, 0xb0, 0x30, 0x7b, 0x9b, 0xd5, 0x76, 0xb2, 0x8f, 0xcf, - 0xa7, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x7b, 0x69, 0x65, 0x39, 0x31, 0x1a, 0x00, 0x00, + // 1656 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x41, 0x6c, 0x14, 0x47, + 0x16, 0x75, 0xcf, 0xd8, 0x2c, 0x2e, 0x30, 0xe0, 0xc1, 0x5e, 0x8f, 0x07, 0x33, 0x65, 0x37, 0xe0, + 0xf5, 0x7a, 0xd7, 0xdd, 0xb6, 0x81, 0x05, 0x9b, 0x15, 0x5a, 0xc6, 0x46, 0x5a, 0xb4, 0x32, 0xec, + 0x0e, 0xb0, 0x28, 0xb9, 0x8c, 0xda, 0x33, 0xe5, 0xa1, 0x63, 0x4f, 0xd7, 0xa8, 0xbb, 0xc7, 0x66, + 0x0e, 0x91, 0x22, 0xa4, 0x5c, 0x22, 0x45, 0x0a, 0x8a, 0x72, 0xca, 0x21, 0x39, 0x44, 0x09, 0xb9, + 0xf9, 0x90, 0x2b, 0x52, 0x6e, 0x81, 0x48, 0x91, 0x50, 0x72, 0x49, 0x72, 0x28, 0x45, 0x26, 0x12, + 0xd2, 0x1c, 0xe7, 0x90, 0x73, 0xd4, 0xd5, 0xd5, 0xd5, 0xd3, 0xdd, 0xd5, 0xcd, 0x58, 0x89, 0x7d, + 0x88, 0x7c, 0x81, 0xe9, 0xff, 0x5f, 0x75, 0xbd, 0xff, 0xff, 0xfb, 0xd5, 0x55, 0x65, 0x30, 0x66, + 0xd9, 0xa6, 0x66, 0x63, 0x4b, 0x35, 0x51, 0x55, 0xb7, 0x6c, 0x64, 0xaa, 0x9b, 0x73, 0xaa, 0xfd, + 0x40, 0xa9, 0x9b, 0xd8, 0xc6, 0x99, 0x93, 0xcc, 0xab, 0x78, 0x5e, 0x65, 0x73, 0x2e, 0x37, 0x54, + 0xc5, 0x55, 0x4c, 0xfd, 0xaa, 0xf3, 0xcb, 0x85, 0xe6, 0x46, 0xcb, 0xd8, 0xaa, 0x61, 0xab, 0xe4, + 0x3a, 0xdc, 0x07, 0xe6, 0x1a, 0xd4, 0x6a, 0xba, 0x81, 0x55, 0xfa, 0x2f, 0x33, 0x8d, 0xb8, 0x00, + 0xb5, 0x66, 0x55, 0x9d, 0x09, 0x6b, 0x56, 0xd5, 0x7b, 0x4d, 0x15, 0xe3, 0xea, 0x06, 0x52, 0xe9, + 0xd3, 0x6a, 0x63, 0x4d, 0xd5, 0x8c, 0x26, 0x73, 0x8d, 0x31, 0x97, 0x56, 0xd7, 0x55, 0xcd, 0x30, + 0xb0, 0xad, 0xd9, 0x3a, 0x36, 0xbc, 0x49, 0x64, 0x51, 0x20, 0x9c, 0xb6, 0x8b, 0xc9, 0xb3, 0x59, + 0x57, 0x35, 0x0b, 0xa9, 0x9b, 0x73, 0xab, 0xc8, 0xd6, 0xe6, 0xd4, 0x32, 0xd6, 0x0d, 0xd7, 0x2f, + 0x3f, 0xea, 0x03, 0xc3, 0x2b, 0x56, 0x75, 0xc9, 0x44, 0x9a, 0x8d, 0x8a, 0xc8, 0xc2, 0x0d, 0xb3, + 0x8c, 0x6e, 0xe2, 0x0a, 0xca, 0x18, 0xe0, 0xb8, 0x81, 0xec, 0x2d, 0x6c, 0xae, 0x97, 0xb4, 0x4a, + 0xc5, 0x44, 0x96, 0x95, 0x95, 0xc6, 0xa5, 0xa9, 0xfe, 0xc2, 0xf5, 0x16, 0x81, 0x61, 0x57, 0x9b, + 0xc0, 0x3f, 0x37, 0xb5, 0xda, 0xc6, 0xa2, 0x1c, 0x72, 0xc8, 0xdf, 0x7e, 0x31, 0x33, 0xc4, 0x52, + 0x73, 0xcd, 0x35, 0xdd, 0xb6, 0x4d, 0xdd, 0xa8, 0x16, 0x8f, 0x31, 0x24, 0xb3, 0x66, 0x34, 0x70, + 0xa8, 0xde, 0x58, 0x5d, 0x47, 0xcd, 0x6c, 0x6a, 0x5c, 0x9a, 0x3a, 0x32, 0x3f, 0xa4, 0xb8, 0xc1, + 0x2b, 0x5e, 0x5e, 0x94, 0x6b, 0x46, 0xb3, 0x70, 0xbe, 0x45, 0x20, 0xc3, 0xb5, 0x09, 0x1c, 0x70, + 0xe7, 0x74, 0x9f, 0xe5, 0xaf, 0xfd, 0xa9, 0xca, 0x66, 0xb3, 0x6e, 0x63, 0xe5, 0xbf, 0x8d, 0xd5, + 0xff, 0xa0, 0x66, 0x91, 0x0d, 0xc8, 0xdc, 0x06, 0x7d, 0x9b, 0xda, 0x46, 0x03, 0x65, 0xd3, 0x74, + 0x86, 0x51, 0x85, 0xa1, 0x9d, 0xe4, 0x28, 0x2c, 0x39, 0xca, 0x12, 0xd6, 0x8d, 0x82, 0xfc, 0x94, + 0xc0, 0x9e, 0x16, 0x81, 0x2e, 0xbe, 0x4d, 0xe0, 0x51, 0x77, 0x26, 0xfa, 0x28, 0x3f, 0x7e, 0xb9, + 0x3d, 0x2d, 0x15, 0x5d, 0x5f, 0x66, 0x0d, 0x0c, 0xe0, 0x2d, 0x03, 0x99, 0x3c, 0x4b, 0xbd, 0x34, + 0x4b, 0xd7, 0x5a, 0x04, 0x06, 0x1d, 0x6d, 0x02, 0x87, 0xdc, 0xb7, 0x04, 0xcc, 0xf1, 0x19, 0x3a, + 0x4a, 0x71, 0x5e, 0x7e, 0x4c, 0x70, 0xa4, 0x82, 0xac, 0xb2, 0xa9, 0xd7, 0x1d, 0x0d, 0x64, 0xfb, + 0x68, 0x08, 0xe3, 0x8a, 0x40, 0xae, 0xca, 0xb2, 0x8f, 0x2b, 0x28, 0x2c, 0x92, 0xce, 0xc1, 0x6d, + 0x02, 0x33, 0x2e, 0x93, 0x0e, 0x23, 0x8b, 0xaa, 0x13, 0x97, 0xb9, 0x0a, 0xfa, 0x0d, 0x5c, 0x41, + 0x25, 0xbb, 0x59, 0x47, 0xd9, 0x43, 0xe3, 0xd2, 0xd4, 0x40, 0x61, 0xa2, 0x45, 0xa0, 0x6f, 0x6c, + 0x13, 0x78, 0x82, 0xd5, 0xdd, 0x33, 0xc9, 0xc5, 0xc3, 0xce, 0xef, 0x3b, 0xcd, 0x3a, 0x5a, 0xbc, + 0xf0, 0xf0, 0xe5, 0xf6, 0x74, 0x30, 0x0b, 0xef, 0xbc, 0xdc, 0x9e, 0x3e, 0xed, 0x09, 0x57, 0xa8, + 0x3c, 0x19, 0x82, 0xd3, 0x42, 0x47, 0x11, 0x59, 0x75, 0x6c, 0x58, 0x48, 0x7e, 0xd6, 0x0b, 0x06, + 0x39, 0x62, 0x05, 0xd9, 0xda, 0x81, 0x60, 0x0f, 0x04, 0xeb, 0x98, 0x16, 0x67, 0xc5, 0x82, 0x1b, + 0x8d, 0x08, 0xce, 0x53, 0x8d, 0x7c, 0x0a, 0x8c, 0x46, 0x8c, 0x5c, 0x68, 0x4f, 0x52, 0x74, 0x75, + 0x2c, 0xa2, 0x1a, 0xde, 0x0c, 0xae, 0x8e, 0x6f, 0x4b, 0x60, 0xd8, 0x64, 0x86, 0x12, 0xd5, 0x7e, + 0x50, 0x73, 0xff, 0x6b, 0x11, 0x28, 0x06, 0xb4, 0x09, 0x1c, 0x73, 0x63, 0x11, 0xba, 0xe3, 0xb3, + 0x7b, 0xd2, 0xec, 0x20, 0xe0, 0x25, 0x39, 0x52, 0xcc, 0xd4, 0x9e, 0x14, 0xb3, 0x9b, 0x4e, 0x8e, + 0x66, 0x89, 0x75, 0x72, 0xd4, 0xc1, 0x13, 0xfc, 0x49, 0x8a, 0x76, 0xb2, 0x8b, 0xe0, 0x9d, 0xdc, + 0x00, 0x83, 0x35, 0x64, 0x6b, 0xa2, 0xbc, 0xde, 0x68, 0x11, 0x18, 0x75, 0xb6, 0x09, 0xcc, 0xba, + 0xc1, 0x45, 0x5c, 0xf1, 0x01, 0x1e, 0xaf, 0xb1, 0xf9, 0xf6, 0x3b, 0x97, 0x5d, 0x88, 0x34, 0x98, + 0x10, 0x26, 0xd2, 0xa0, 0x91, 0xe7, 0xf0, 0x87, 0x34, 0x15, 0xe9, 0xdd, 0x7a, 0x25, 0xfc, 0x09, + 0x0f, 0x75, 0xa0, 0xb4, 0x1f, 0x9f, 0x0c, 0xc1, 0x2a, 0x9c, 0xda, 0xcb, 0x55, 0x38, 0x52, 0xb4, + 0xf4, 0xde, 0xac, 0x66, 0x81, 0x4f, 0x61, 0xef, 0x9e, 0x7c, 0x0a, 0xa3, 0x15, 0x64, 0x0d, 0x14, + 0x75, 0xf0, 0xe2, 0x3f, 0x4a, 0xd3, 0x06, 0x72, 0x11, 0xbc, 0x81, 0x0e, 0x0a, 0xbf, 0xaf, 0xdd, + 0x1a, 0xcc, 0x3e, 0xeb, 0xd6, 0xa0, 0x91, 0x17, 0xec, 0xb3, 0x34, 0x18, 0x13, 0x96, 0x74, 0x19, + 0xd5, 0xb1, 0xa5, 0xdb, 0xfb, 0xbe, 0x8d, 0xd9, 0xa7, 0x55, 0x2f, 0x63, 0x82, 0x81, 0x8a, 0x1b, + 0x62, 0xa9, 0x82, 0x36, 0x6c, 0xed, 0xd5, 0x7b, 0x9a, 0x79, 0x26, 0xc7, 0xe0, 0x38, 0x9f, 0x46, + 0xc0, 0xcc, 0x24, 0x79, 0x94, 0x19, 0x97, 0x1d, 0xdb, 0xe2, 0x15, 0x71, 0xed, 0xce, 0x26, 0x36, + 0x1d, 0x2b, 0x84, 0x3c, 0x09, 0xce, 0x26, 0xf9, 0x79, 0x45, 0x3f, 0xef, 0xed, 0xa8, 0xf7, 0xf5, + 0xb5, 0x35, 0x54, 0xb6, 0xf5, 0x4d, 0x5e, 0xce, 0x7b, 0xa0, 0xdf, 0x44, 0x75, 0x6c, 0xda, 0xc8, + 0x74, 0x0a, 0x99, 0x9e, 0xea, 0x2f, 0x2c, 0x38, 0xeb, 0x06, 0x37, 0xfa, 0xeb, 0x06, 0x37, 0xc5, + 0xa7, 0xd4, 0x1f, 0x96, 0x79, 0x03, 0x1c, 0xf3, 0x1e, 0x4a, 0x34, 0xc2, 0x6c, 0x8a, 0xbe, 0x7d, + 0xa9, 0x45, 0x60, 0xc8, 0xd3, 0x26, 0x70, 0x38, 0x38, 0x85, 0x6b, 0x8f, 0x9f, 0x67, 0xc0, 0x03, + 0xde, 0x72, 0x70, 0x22, 0x4d, 0xa6, 0xf7, 0x52, 0x93, 0x1f, 0x4a, 0xe0, 0x04, 0xf2, 0x32, 0x59, + 0xb2, 0xf1, 0x3a, 0x32, 0xbc, 0x6d, 0x6a, 0xdd, 0x11, 0xc5, 0x8f, 0x04, 0x4e, 0x56, 0x75, 0xfb, + 0x7e, 0x63, 0x55, 0x29, 0xe3, 0x1a, 0x3b, 0x7a, 0xb3, 0xff, 0x66, 0xac, 0xca, 0xba, 0xea, 0xac, + 0xbe, 0x96, 0x72, 0xc3, 0xb0, 0x5b, 0x04, 0x46, 0xde, 0xd4, 0x26, 0x70, 0xc4, 0x25, 0x18, 0xf6, + 0x38, 0x0c, 0x01, 0x63, 0x78, 0xc3, 0xb0, 0x5d, 0x49, 0x1d, 0xe7, 0xa8, 0x3b, 0x14, 0xb4, 0xb8, + 0xe0, 0xa8, 0x2a, 0x94, 0x62, 0x47, 0x56, 0x13, 0x11, 0x59, 0x85, 0xd5, 0x20, 0x9f, 0x01, 0x13, + 0xb1, 0x4e, 0x2e, 0xa8, 0x8f, 0xd2, 0x20, 0x1b, 0x59, 0x40, 0x0e, 0x96, 0x87, 0xdf, 0x7f, 0x79, + 0xb8, 0x24, 0x5e, 0x1e, 0xc6, 0x63, 0x97, 0x76, 0xaf, 0x8c, 0x32, 0x18, 0x8f, 0xf3, 0xf1, 0x2a, + 0x7e, 0xd5, 0x07, 0x4e, 0xad, 0x58, 0x55, 0xff, 0x03, 0xe0, 0x7c, 0x73, 0x4d, 0x7a, 0x81, 0xf3, + 0x7f, 0x6c, 0xa3, 0xcc, 0x07, 0x12, 0x18, 0x2d, 0x6b, 0x46, 0x45, 0x77, 0x5e, 0x52, 0x12, 0xd7, + 0xf4, 0xb5, 0x16, 0x81, 0xf1, 0xa0, 0x36, 0x81, 0xe3, 0x6e, 0xa8, 0xb1, 0x90, 0xf8, 0xec, 0x8f, + 0xf0, 0x31, 0x37, 0x83, 0x05, 0x7f, 0x57, 0x02, 0xbe, 0xaf, 0x24, 0xaa, 0xfd, 0xdd, 0x16, 0x81, + 0x71, 0x90, 0x36, 0x81, 0xf9, 0x30, 0xa7, 0x2e, 0xf5, 0x30, 0xcc, 0x47, 0xdc, 0xea, 0x14, 0xc6, + 0x25, 0xf0, 0x27, 0x5c, 0xd7, 0x0d, 0x67, 0x1f, 0xe3, 0x48, 0xe2, 0x70, 0xe1, 0x74, 0x8b, 0x40, + 0xcf, 0xd4, 0x26, 0xf0, 0x18, 0x13, 0x9d, 0x6b, 0x90, 0x8b, 0x9e, 0x8b, 0x1e, 0xd1, 0x36, 0xb1, + 0xd3, 0xa1, 0xe1, 0xe4, 0xf6, 0xfa, 0x47, 0x34, 0x21, 0xc0, 0x3f, 0xa2, 0x09, 0xdd, 0x09, 0x47, + 0x34, 0x8a, 0x0f, 0x25, 0xf4, 0x4d, 0xe0, 0x9a, 0x43, 0xb9, 0xec, 0xa3, 0x24, 0x56, 0x5a, 0x04, + 0x8a, 0xdc, 0x6d, 0x02, 0x73, 0x9d, 0x14, 0xba, 0xcc, 0xe1, 0x20, 0x45, 0x77, 0xe6, 0x6f, 0xf1, + 0x5f, 0x8e, 0xc8, 0x45, 0x53, 0x38, 0x52, 0x3f, 0xd3, 0x21, 0xf5, 0x38, 0xa5, 0xca, 0xe7, 0xc0, + 0x99, 0x04, 0xb7, 0x2f, 0xf8, 0x14, 0x98, 0x5c, 0xb1, 0xaa, 0xf7, 0x74, 0xfb, 0x7e, 0xc5, 0xd4, + 0xb6, 0x44, 0xf8, 0x3f, 0xf8, 0x22, 0xb6, 0x78, 0x5d, 0xbc, 0xa0, 0x28, 0x1d, 0x59, 0xee, 0x22, + 0x3d, 0xf2, 0x2c, 0x50, 0xba, 0x43, 0x7a, 0xb9, 0x9f, 0xff, 0xf4, 0x04, 0x48, 0xaf, 0x58, 0xd5, + 0xcc, 0xb6, 0x04, 0x4e, 0xfd, 0x5b, 0x33, 0x2a, 0x1b, 0x48, 0x7c, 0xa9, 0x3b, 0x2d, 0x3c, 0x03, + 0x08, 0xb1, 0xb9, 0xf9, 0xee, 0xb1, 0x5c, 0x03, 0x73, 0x0f, 0xbf, 0xfb, 0xf9, 0xfd, 0xd4, 0xdf, + 0xe4, 0xbf, 0xaa, 0xa2, 0xbb, 0xe9, 0x32, 0x1d, 0x58, 0x0a, 0xdc, 0x7b, 0x04, 0x29, 0x0b, 0x6e, + 0x5a, 0x62, 0x29, 0x47, 0xb1, 0xf1, 0x94, 0x13, 0xae, 0x20, 0x92, 0x29, 0x9b, 0x74, 0x60, 0x12, + 0x65, 0xc1, 0xb9, 0x3b, 0x96, 0x72, 0x14, 0x1b, 0x4f, 0x39, 0xe1, 0xd0, 0x97, 0x4c, 0xb9, 0x41, + 0x07, 0x86, 0x28, 0x7f, 0x23, 0x01, 0x39, 0x81, 0xb2, 0xd7, 0x98, 0x73, 0xdd, 0xb3, 0x61, 0x43, + 0x72, 0x0b, 0xbb, 0x1e, 0xc2, 0xe3, 0x58, 0xa0, 0x71, 0x9c, 0x97, 0xe7, 0xba, 0x8e, 0xa3, 0xc4, + 0xbe, 0xdf, 0x99, 0x2f, 0x25, 0x00, 0x43, 0xf1, 0x44, 0xb6, 0xde, 0x4a, 0x32, 0xb3, 0x30, 0x3e, + 0xf7, 0x8f, 0xdd, 0xe1, 0x79, 0x18, 0x17, 0x69, 0x18, 0xaa, 0x3c, 0x93, 0x14, 0x86, 0xbf, 0xd5, + 0xf4, 0x42, 0xf8, 0x58, 0x02, 0x23, 0xa1, 0x5e, 0xe5, 0x07, 0xf8, 0xc9, 0xe4, 0xde, 0xf3, 0x70, + 0x39, 0xa5, 0x3b, 0x1c, 0xa7, 0x3a, 0x43, 0xa9, 0xfe, 0x45, 0x3e, 0x97, 0xd4, 0x9f, 0xfc, 0x0e, + 0x2d, 0x48, 0x31, 0x74, 0x49, 0x37, 0x99, 0xdc, 0x6b, 0xaf, 0xa6, 0x18, 0x73, 0x9d, 0x95, 0x4c, + 0x91, 0xf5, 0x63, 0x0c, 0xc5, 0xd0, 0x35, 0xc8, 0x64, 0x72, 0x41, 0x5f, 0x4d, 0x31, 0xe6, 0x0c, + 0x9f, 0x4c, 0x91, 0x15, 0xdc, 0xa7, 0xf8, 0x44, 0x02, 0xf9, 0x18, 0x8a, 0x9e, 0x54, 0x67, 0xba, + 0x63, 0xe0, 0x29, 0xf5, 0xe2, 0xae, 0xe0, 0xbb, 0x13, 0xaa, 0x7f, 0x83, 0xea, 0x09, 0xf5, 0x99, + 0x04, 0x26, 0x38, 0xff, 0xd8, 0xfd, 0xec, 0x6c, 0x1c, 0xa7, 0xb8, 0x11, 0xb9, 0xcb, 0xbb, 0x1d, + 0xc1, 0x03, 0xb9, 0x4c, 0x03, 0x99, 0x97, 0x67, 0x85, 0x81, 0xf8, 0x11, 0x98, 0x1d, 0x2f, 0x28, + 0x39, 0x5b, 0xa0, 0xcc, 0x2f, 0x12, 0xf8, 0x3b, 0x8f, 0xa5, 0x9b, 0xad, 0xca, 0x95, 0x38, 0x92, + 0x5d, 0x0c, 0xce, 0x2d, 0xfd, 0x86, 0xc1, 0x3c, 0xd8, 0x65, 0x1a, 0xec, 0x55, 0xf9, 0x9f, 0xc2, + 0x60, 0xb7, 0xd8, 0x9b, 0x4a, 0x31, 0x51, 0xb3, 0x22, 0xe6, 0xfa, 0xde, 0x72, 0x0e, 0x40, 0x85, + 0xe2, 0xe3, 0x9d, 0xbc, 0xf4, 0x74, 0x27, 0x2f, 0x3d, 0xdf, 0xc9, 0x4b, 0x3f, 0xed, 0xe4, 0xa5, + 0xf7, 0x5e, 0xe4, 0x7b, 0x9e, 0xbf, 0xc8, 0xf7, 0x7c, 0xff, 0x22, 0xdf, 0xf3, 0xfa, 0x85, 0x8e, + 0x43, 0x35, 0x9b, 0xcc, 0x40, 0xb6, 0xf7, 0x73, 0xa6, 0x7c, 0x5f, 0xd3, 0x0d, 0xf5, 0x81, 0x3f, + 0x3f, 0x3d, 0x66, 0xaf, 0x1e, 0xa2, 0x7f, 0xf0, 0x3a, 0xff, 0x6b, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xe8, 0x65, 0x39, 0xd2, 0x59, 0x1f, 0x00, 0x00, } func (this *MsgCreateResourceNode) Equal(that interface{}) bool { diff --git a/x/sds/keeper/msg_server.go b/x/sds/keeper/msg_server.go index 217dbf7d..90c148b5 100644 --- a/x/sds/keeper/msg_server.go +++ b/x/sds/keeper/msg_server.go @@ -6,7 +6,6 @@ import ( "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/sds/types" ) @@ -47,20 +46,15 @@ func (k msgServer) HandleMsgFileUpload(c context.Context, msg *types.MsgFileUplo return &types.MsgFileUploadResponse{}, err } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypeFileUpload, - sdk.NewAttribute(sdk.AttributeKeySender, msg.From), - sdk.NewAttribute(types.AttributeKeyReporter, msg.GetReporter()), - sdk.NewAttribute(types.AttributeKeyUploader, msg.GetUploader()), - sdk.NewAttribute(types.AttributeKeyFileHash, msg.GetFileHash()), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.GetFrom()), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventFileUpload{ + Sender: msg.GetFrom(), + Reporter: msg.GetReporter(), + Uploader: msg.GetUploader(), + FileHash: msg.GetFileHash(), }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } return &types.MsgFileUploadResponse{}, nil } @@ -84,20 +78,15 @@ func (k msgServer) HandleMsgPrepay(c context.Context, msg *types.MsgPrepay) (*ty return nil, errors.Wrap(types.ErrPrepayFailure, err.Error()) } - ctx.EventManager().EmitEvents(sdk.Events{ - sdk.NewEvent( - types.EventTypePrepay, - sdk.NewAttribute(sdk.AttributeKeySender, msg.GetSender()), - sdk.NewAttribute(types.AttributeKeyBeneficiary, msg.GetBeneficiary()), - sdk.NewAttribute(types.AttributeKeyAmount, msg.GetAmount().String()), - sdk.NewAttribute(types.AttributeKeyPurchasedNoz, purchased.String()), - ), - sdk.NewEvent( - sdk.EventTypeMessage, - sdk.NewAttribute(sdk.AttributeKeyModule, types.AttributeValueCategory), - sdk.NewAttribute(sdk.AttributeKeySender, msg.GetSender()), - ), + err = ctx.EventManager().EmitTypedEvent(&types.EventPrePay{ + Sender: msg.GetSender(), + Beneficiary: msg.GetBeneficiary(), + Amount: msg.GetAmount(), + PurchasedNoz: purchased, }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } return &types.MsgPrepayResponse{}, nil } diff --git a/x/sds/types/errors.go b/x/sds/types/errors.go index f3dd0ffc..116d1589 100644 --- a/x/sds/types/errors.go +++ b/x/sds/types/errors.go @@ -8,7 +8,6 @@ const ( codeErrInvalid = uint32(iota) + 2 // NOTE: code 1 is reserved for internal errors codeErrInvalidHeight codeErrEmptyUploaderAddr - codeErrEmptyReporterAddr codeErrEmptyReporters codeErrEmptyFileHash codeErrInvalidFileHash @@ -19,13 +18,13 @@ const ( codeErrInvalidSenderAddr codeErrInvalidBeneficiaryAddr codeErrOzoneLimitNotEnough + codeErrEmitEvent ) var ( ErrInvalid = errors.Register(ModuleName, codeErrInvalid, "error invalid") ErrInvalidHeight = errors.Register(ModuleName, codeErrInvalidHeight, "invalid height") ErrEmptyUploaderAddr = errors.Register(ModuleName, codeErrEmptyUploaderAddr, "missing uploader address") - ErrEmptyReporterAddr = errors.Register(ModuleName, codeErrEmptyReporterAddr, "missing reporter address") ErrEmptyReporters = errors.Register(ModuleName, codeErrEmptyReporters, "missing reporters") ErrEmptyFileHash = errors.Register(ModuleName, codeErrEmptyFileHash, "missing file hash") ErrInvalidFileHash = errors.Register(ModuleName, codeErrInvalidFileHash, "invalid file hash") @@ -36,4 +35,5 @@ var ( ErrInvalidSenderAddr = errors.Register(ModuleName, codeErrInvalidSenderAddr, "invalid sender address") ErrInvalidBeneficiaryAddr = errors.Register(ModuleName, codeErrInvalidBeneficiaryAddr, "invalid beneficiary address") ErrOzoneLimitNotEnough = errors.Register(ModuleName, codeErrOzoneLimitNotEnough, "not enough remaining ozone limit to complete prepay") + ErrEmitEvent = errors.Register(ModuleName, codeErrEmitEvent, "failed to emit event") ) diff --git a/x/sds/types/event.pb.go b/x/sds/types/event.pb.go new file mode 100644 index 00000000..05537951 --- /dev/null +++ b/x/sds/types/event.pb.go @@ -0,0 +1,820 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: stratos/sds/v1/event.proto + +package types + +import ( + fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + 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" + 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 + +// EventPrePay is emitted on Msg/MsgPrepay +type EventPrePay struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Beneficiary string `protobuf:"bytes,2,opt,name=beneficiary,proto3" json:"beneficiary,omitempty"` + Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,3,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` + PurchasedNoz github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=purchased_noz,json=purchasedNoz,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"purchased_noz"` +} + +func (m *EventPrePay) Reset() { *m = EventPrePay{} } +func (m *EventPrePay) String() string { return proto.CompactTextString(m) } +func (*EventPrePay) ProtoMessage() {} +func (*EventPrePay) Descriptor() ([]byte, []int) { + return fileDescriptor_2681e45d6d6589b1, []int{0} +} +func (m *EventPrePay) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventPrePay) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventPrePay.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 *EventPrePay) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventPrePay.Merge(m, src) +} +func (m *EventPrePay) XXX_Size() int { + return m.Size() +} +func (m *EventPrePay) XXX_DiscardUnknown() { + xxx_messageInfo_EventPrePay.DiscardUnknown(m) +} + +var xxx_messageInfo_EventPrePay proto.InternalMessageInfo + +func (m *EventPrePay) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventPrePay) GetBeneficiary() string { + if m != nil { + return m.Beneficiary + } + return "" +} + +func (m *EventPrePay) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { + if m != nil { + return m.Amount + } + return nil +} + +// EventFileUpload is emitted on Msg/MsgFileUpload +type EventFileUpload struct { + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Reporter string `protobuf:"bytes,2,opt,name=reporter,proto3" json:"reporter,omitempty"` + Uploader string `protobuf:"bytes,3,opt,name=uploader,proto3" json:"uploader,omitempty"` + FileHash string `protobuf:"bytes,4,opt,name=file_hash,json=fileHash,proto3" json:"file_hash,omitempty"` +} + +func (m *EventFileUpload) Reset() { *m = EventFileUpload{} } +func (m *EventFileUpload) String() string { return proto.CompactTextString(m) } +func (*EventFileUpload) ProtoMessage() {} +func (*EventFileUpload) Descriptor() ([]byte, []int) { + return fileDescriptor_2681e45d6d6589b1, []int{1} +} +func (m *EventFileUpload) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventFileUpload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventFileUpload.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 *EventFileUpload) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventFileUpload.Merge(m, src) +} +func (m *EventFileUpload) XXX_Size() int { + return m.Size() +} +func (m *EventFileUpload) XXX_DiscardUnknown() { + xxx_messageInfo_EventFileUpload.DiscardUnknown(m) +} + +var xxx_messageInfo_EventFileUpload proto.InternalMessageInfo + +func (m *EventFileUpload) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventFileUpload) GetReporter() string { + if m != nil { + return m.Reporter + } + return "" +} + +func (m *EventFileUpload) GetUploader() string { + if m != nil { + return m.Uploader + } + return "" +} + +func (m *EventFileUpload) GetFileHash() string { + if m != nil { + return m.FileHash + } + return "" +} + +func init() { + proto.RegisterType((*EventPrePay)(nil), "stratos.sds.v1.EventPrePay") + proto.RegisterType((*EventFileUpload)(nil), "stratos.sds.v1.EventFileUpload") +} + +func init() { proto.RegisterFile("stratos/sds/v1/event.proto", fileDescriptor_2681e45d6d6589b1) } + +var fileDescriptor_2681e45d6d6589b1 = []byte{ + // 426 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x3d, 0x6f, 0xd3, 0x40, + 0x18, 0x8e, 0x1b, 0x14, 0xb5, 0x17, 0x3e, 0x24, 0xab, 0x83, 0x1b, 0x24, 0xa7, 0xea, 0x80, 0xb2, + 0xd8, 0x57, 0x03, 0x13, 0x62, 0x21, 0x08, 0x44, 0x16, 0x54, 0x19, 0xb1, 0xb0, 0x44, 0x67, 0xdf, + 0x5b, 0xfb, 0x44, 0x72, 0x67, 0xdd, 0x7b, 0xb6, 0x48, 0x7f, 0x05, 0xbf, 0x83, 0xb9, 0xff, 0x80, + 0xa5, 0x03, 0x43, 0xd5, 0x09, 0x31, 0x14, 0x94, 0xfc, 0x11, 0xe4, 0xf3, 0xb5, 0xea, 0x16, 0xc4, + 0xe4, 0x3b, 0x3f, 0x1f, 0xef, 0x73, 0x8f, 0x5e, 0x32, 0x42, 0xa3, 0x99, 0x51, 0x48, 0x91, 0x23, + 0x6d, 0x12, 0x0a, 0x0d, 0x48, 0x13, 0x57, 0x5a, 0x19, 0xe5, 0x3f, 0x74, 0x58, 0x8c, 0x1c, 0xe3, + 0x26, 0x19, 0xed, 0x17, 0xaa, 0x50, 0x16, 0xa2, 0xed, 0xa9, 0x63, 0x8d, 0x0e, 0x72, 0x85, 0x4b, + 0x85, 0xf3, 0x0e, 0xe8, 0x2e, 0x0e, 0x0a, 0xbb, 0x1b, 0xcd, 0x18, 0x02, 0x6d, 0x92, 0x0c, 0x0c, + 0x4b, 0x68, 0xae, 0x84, 0xec, 0xf0, 0xa3, 0xef, 0x3b, 0x64, 0xf8, 0xa6, 0x1d, 0x78, 0xa2, 0xe1, + 0x84, 0xad, 0xfc, 0x63, 0x32, 0x40, 0x90, 0x1c, 0x74, 0xe0, 0x1d, 0x7a, 0x93, 0xbd, 0x69, 0x70, + 0x75, 0x1e, 0xed, 0x3b, 0xc7, 0x57, 0x9c, 0x6b, 0x40, 0xfc, 0x60, 0xb4, 0x90, 0x45, 0xea, 0x78, + 0xfe, 0x0b, 0x32, 0xcc, 0x40, 0xc2, 0xa9, 0xc8, 0x05, 0xd3, 0xab, 0x60, 0x67, 0x8b, 0xec, 0x2e, + 0xd9, 0xcf, 0xc9, 0x80, 0x2d, 0x55, 0x2d, 0x4d, 0xd0, 0x3f, 0xec, 0x4f, 0x86, 0x4f, 0x0f, 0x62, + 0xa7, 0x69, 0xe3, 0xc6, 0x2e, 0x6e, 0xfc, 0x5a, 0x09, 0x39, 0x3d, 0xbe, 0xb8, 0x1e, 0xf7, 0xbe, + 0xfd, 0x1e, 0x4f, 0x0a, 0x61, 0xca, 0x3a, 0x8b, 0x73, 0xb5, 0x74, 0x2f, 0x75, 0x9f, 0x08, 0xf9, + 0x67, 0x6a, 0x56, 0x15, 0xa0, 0x15, 0x60, 0xea, 0xac, 0x7d, 0x46, 0x1e, 0x54, 0xb5, 0xce, 0x4b, + 0x86, 0xc0, 0xe7, 0x52, 0x9d, 0x05, 0xf7, 0x6c, 0xc4, 0x97, 0xad, 0xe1, 0xaf, 0xeb, 0xf1, 0x93, + 0x7f, 0x30, 0x9c, 0x49, 0x73, 0x75, 0x1e, 0x11, 0x17, 0x6e, 0x26, 0x4d, 0x7a, 0xff, 0xd6, 0xf2, + 0xbd, 0x3a, 0x3b, 0xfa, 0xe1, 0x91, 0x47, 0xb6, 0xc5, 0xb7, 0x62, 0x01, 0x1f, 0xab, 0x85, 0x62, + 0xfc, 0x3f, 0x9a, 0x7c, 0x4e, 0x76, 0x35, 0x54, 0x4a, 0x1b, 0xd0, 0x5b, 0x6b, 0xbc, 0x65, 0xb6, + 0xaa, 0xda, 0x4e, 0x04, 0x1d, 0xf4, 0xb7, 0xa9, 0x6e, 0x98, 0xfe, 0x63, 0xb2, 0x77, 0x2a, 0x16, + 0x30, 0x2f, 0x19, 0x96, 0x5d, 0x21, 0xe9, 0x6e, 0xfb, 0xe3, 0x1d, 0xc3, 0x72, 0x3a, 0xbb, 0x58, + 0x87, 0xde, 0xe5, 0x3a, 0xf4, 0xfe, 0xac, 0x43, 0xef, 0xeb, 0x26, 0xec, 0x5d, 0x6e, 0xc2, 0xde, + 0xcf, 0x4d, 0xd8, 0xfb, 0x44, 0xef, 0x94, 0xe5, 0x56, 0x53, 0x82, 0xb9, 0x39, 0x46, 0x79, 0xc9, + 0x84, 0xa4, 0x5f, 0xec, 0x26, 0xdb, 0xe6, 0xb2, 0x81, 0x5d, 0xb3, 0x67, 0x7f, 0x03, 0x00, 0x00, + 0xff, 0xff, 0x87, 0x22, 0x9b, 0x22, 0xe5, 0x02, 0x00, 0x00, +} + +func (m *EventPrePay) 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 *EventPrePay) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventPrePay) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.PurchasedNoz.Size() + i -= size + if _, err := m.PurchasedNoz.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if len(m.Amount) > 0 { + for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintEvent(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.Beneficiary) > 0 { + i -= len(m.Beneficiary) + copy(dAtA[i:], m.Beneficiary) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Beneficiary))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventFileUpload) 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 *EventFileUpload) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventFileUpload) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.FileHash) > 0 { + i -= len(m.FileHash) + copy(dAtA[i:], m.FileHash) + i = encodeVarintEvent(dAtA, i, uint64(len(m.FileHash))) + i-- + dAtA[i] = 0x22 + } + if len(m.Uploader) > 0 { + i -= len(m.Uploader) + copy(dAtA[i:], m.Uploader) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Uploader))) + i-- + dAtA[i] = 0x1a + } + if len(m.Reporter) > 0 { + i -= len(m.Reporter) + copy(dAtA[i:], m.Reporter) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Reporter))) + i-- + dAtA[i] = 0x12 + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintEvent(dAtA []byte, offset int, v uint64) int { + offset -= sovEvent(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *EventPrePay) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Beneficiary) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + if len(m.Amount) > 0 { + for _, e := range m.Amount { + l = e.Size() + n += 1 + l + sovEvent(uint64(l)) + } + } + l = m.PurchasedNoz.Size() + n += 1 + l + sovEvent(uint64(l)) + return n +} + +func (m *EventFileUpload) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Reporter) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Uploader) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.FileHash) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func sovEvent(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozEvent(x uint64) (n int) { + return sovEvent(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *EventPrePay) 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 ErrIntOverflowEvent + } + 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: EventPrePay: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventPrePay: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 Beneficiary", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Beneficiary = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Amount = append(m.Amount, types.Coin{}) + if err := m.Amount[len(m.Amount)-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 PurchasedNoz", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.PurchasedNoz.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventFileUpload) 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 ErrIntOverflowEvent + } + 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: EventFileUpload: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventFileUpload: 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + 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 Reporter", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reporter = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Uploader", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Uploader = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FileHash", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.FileHash = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipEvent(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, ErrIntOverflowEvent + } + 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, ErrIntOverflowEvent + } + 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, ErrIntOverflowEvent + } + 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, ErrInvalidLengthEvent + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupEvent + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthEvent + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthEvent = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowEvent = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupEvent = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/sds/types/tx.pb.go b/x/sds/types/tx.pb.go index e811d037..368f2d56 100644 --- a/x/sds/types/tx.pb.go +++ b/x/sds/types/tx.pb.go @@ -6,8 +6,11 @@ package types import ( context "context" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" 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/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -241,43 +244,49 @@ func init() { func init() { proto.RegisterFile("stratos/sds/v1/tx.proto", fileDescriptor_a5a216e2f9435b27) } var fileDescriptor_a5a216e2f9435b27 = []byte{ - // 575 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x53, 0x41, 0x6b, 0x13, 0x41, - 0x14, 0xce, 0x36, 0xa5, 0xb4, 0x13, 0x6a, 0x75, 0xab, 0x66, 0x9b, 0xda, 0x9d, 0x76, 0xa4, 0x10, - 0x90, 0xee, 0x90, 0xf6, 0xa6, 0xe0, 0x21, 0x82, 0x16, 0x24, 0x20, 0x0b, 0x5e, 0xbc, 0xc8, 0x24, - 0x99, 0x6c, 0x16, 0x77, 0x67, 0x96, 0x9d, 0x49, 0x68, 0x2e, 0x22, 0xde, 0xbc, 0x09, 0xfe, 0x09, - 0xf1, 0x97, 0xf4, 0x58, 0xf0, 0xe2, 0x69, 0x95, 0xc4, 0x53, 0x8e, 0x39, 0x08, 0xde, 0x64, 0x67, - 0x26, 0x9b, 0xa4, 0xa8, 0xa7, 0x9d, 0xf9, 0xbe, 0xf7, 0xbd, 0xf7, 0xf6, 0x7d, 0x6f, 0x40, 0x55, - 0xc8, 0x94, 0x48, 0x2e, 0xb0, 0xe8, 0x0a, 0x3c, 0x6c, 0x60, 0x79, 0xe1, 0x25, 0x29, 0x97, 0xdc, - 0xbe, 0x61, 0x08, 0x4f, 0x74, 0x85, 0x37, 0x6c, 0xd4, 0x6e, 0x07, 0x3c, 0xe0, 0x8a, 0xc2, 0xf9, - 0x49, 0x47, 0xd5, 0xee, 0x05, 0x9c, 0x07, 0x11, 0xc5, 0x24, 0x09, 0x31, 0x61, 0x8c, 0x4b, 0x22, - 0x43, 0xce, 0x84, 0x61, 0xdd, 0x0e, 0x17, 0x31, 0x17, 0xb8, 0x4d, 0x04, 0xc5, 0xc3, 0x46, 0x9b, - 0x4a, 0xd2, 0xc0, 0x1d, 0x1e, 0x32, 0xcd, 0xa3, 0x5f, 0x16, 0xd8, 0x6e, 0x89, 0xe0, 0x69, 0x18, - 0xd1, 0x97, 0x49, 0xc4, 0x49, 0xd7, 0x7e, 0x0c, 0xb6, 0x7a, 0x61, 0x44, 0x5f, 0xf7, 0x89, 0xe8, - 0x3b, 0xd6, 0xa1, 0x55, 0xdf, 0x6a, 0x1e, 0x4d, 0x33, 0xb8, 0x00, 0x67, 0x19, 0xbc, 0x39, 0x22, - 0x71, 0xf4, 0x10, 0x15, 0x10, 0xf2, 0x37, 0xf3, 0xf3, 0x39, 0x11, 0x7d, 0xfb, 0x01, 0x58, 0xef, - 0xa5, 0x3c, 0x76, 0xd6, 0x94, 0xb4, 0x3a, 0xcd, 0xa0, 0xba, 0xcf, 0x32, 0x58, 0x31, 0xaa, 0x94, - 0xc7, 0xc8, 0x57, 0xa0, 0xfd, 0x08, 0x6c, 0xa6, 0x34, 0xe1, 0xa9, 0xa4, 0xa9, 0x53, 0x56, 0x02, - 0x38, 0xcd, 0x60, 0x81, 0xcd, 0x32, 0xb8, 0xa3, 0x45, 0x73, 0x04, 0xf9, 0x05, 0x99, 0x8b, 0x07, - 0xaa, 0x67, 0x9a, 0x3a, 0xeb, 0x0b, 0xf1, 0x1c, 0x5b, 0x88, 0xe7, 0x08, 0xf2, 0x0b, 0x12, 0x55, - 0xc1, 0x9d, 0x95, 0xff, 0xf6, 0xa9, 0x48, 0x38, 0x13, 0x14, 0x7d, 0x58, 0x03, 0x5b, 0x2d, 0x11, - 0xbc, 0x48, 0x69, 0x42, 0x46, 0xf6, 0x19, 0xd8, 0x10, 0x94, 0xe5, 0x15, 0xf4, 0x28, 0xf6, 0xa7, - 0x19, 0x34, 0xc8, 0x2c, 0x83, 0xdb, 0x3a, 0xbf, 0xbe, 0x23, 0xdf, 0x10, 0xf6, 0x33, 0x50, 0x69, - 0x53, 0x46, 0x7b, 0x61, 0x27, 0x24, 0xe9, 0xc8, 0x4c, 0xe2, 0x78, 0x9a, 0xc1, 0x65, 0x78, 0x96, - 0x41, 0x5b, 0xcb, 0x97, 0x40, 0xe4, 0x2f, 0x87, 0xd8, 0x6f, 0xc1, 0x06, 0x89, 0xf9, 0x80, 0x49, - 0xa7, 0x7c, 0x58, 0xae, 0x57, 0x4e, 0xf7, 0x3c, 0x6d, 0xa7, 0x97, 0xdb, 0xe9, 0x19, 0x3b, 0xbd, - 0x27, 0x3c, 0x64, 0xcd, 0xe7, 0x97, 0x19, 0x2c, 0xe5, 0xcd, 0x69, 0xc1, 0xa2, 0x39, 0x7d, 0x47, - 0x5f, 0xbe, 0xc3, 0x7a, 0x10, 0xca, 0xfe, 0xa0, 0xed, 0x75, 0x78, 0x8c, 0xcd, 0x5a, 0xe8, 0xcf, - 0x89, 0xe8, 0xbe, 0xc1, 0x72, 0x94, 0x50, 0xa1, 0x72, 0x09, 0xdf, 0x24, 0x41, 0xbb, 0xe0, 0x56, - 0x31, 0x8a, 0xf9, 0x80, 0x4e, 0x7f, 0x5b, 0xa0, 0xdc, 0x12, 0x81, 0xfd, 0xce, 0x02, 0xbb, 0xe7, - 0x84, 0x75, 0x23, 0xba, 0xba, 0x40, 0x07, 0xde, 0xea, 0xde, 0x7a, 0x2b, 0x74, 0xed, 0xf8, 0xbf, - 0x74, 0x61, 0xc3, 0xfd, 0xf7, 0x5f, 0x7f, 0x7e, 0x5a, 0x3b, 0x40, 0xfb, 0xf8, 0xda, 0xf3, 0x50, - 0x4b, 0xa7, 0x6d, 0xb4, 0x39, 0xd8, 0x29, 0x3a, 0x30, 0x86, 0xed, 0xfd, 0x25, 0xbd, 0xa6, 0x6a, - 0x47, 0xff, 0xa4, 0x8a, 0xaa, 0xae, 0xaa, 0xea, 0xa0, 0xbb, 0xd7, 0xab, 0x26, 0x2a, 0xae, 0xd9, - 0xfa, 0x3c, 0x76, 0xad, 0xcb, 0xb1, 0x6b, 0x5d, 0x8d, 0x5d, 0xeb, 0xc7, 0xd8, 0xb5, 0x3e, 0x4e, - 0xdc, 0xd2, 0xd5, 0xc4, 0x2d, 0x7d, 0x9b, 0xb8, 0xa5, 0x57, 0x78, 0x69, 0xc0, 0x46, 0xcf, 0xa8, - 0x9c, 0x1f, 0x4f, 0x3a, 0x7d, 0x12, 0x32, 0x7c, 0xa1, 0x52, 0xaa, 0x69, 0xb7, 0x37, 0xd4, 0x23, - 0x3c, 0xfb, 0x13, 0x00, 0x00, 0xff, 0xff, 0xa4, 0xe3, 0xcc, 0xde, 0x03, 0x04, 0x00, 0x00, + // 666 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0x4d, 0x4b, 0x1b, 0x41, + 0x18, 0xce, 0x26, 0x56, 0x74, 0xc4, 0x5a, 0x57, 0xad, 0x31, 0xad, 0xbb, 0xba, 0x52, 0x10, 0xc1, + 0x1d, 0xa2, 0x87, 0x82, 0xd0, 0x42, 0x15, 0x8a, 0x50, 0x02, 0x12, 0xe9, 0xa5, 0x17, 0x99, 0x64, + 0xc7, 0xcd, 0xd2, 0xec, 0xcc, 0x32, 0x33, 0x8a, 0xb9, 0x89, 0xbd, 0xf5, 0x54, 0xe8, 0x9f, 0x90, + 0x9e, 0x3c, 0xf4, 0x47, 0x78, 0x94, 0xf6, 0xd2, 0xd3, 0xb6, 0x24, 0x85, 0x40, 0x8e, 0xf9, 0x05, + 0x65, 0x67, 0x66, 0x37, 0x89, 0x34, 0x5e, 0x92, 0x79, 0x9f, 0x67, 0xde, 0x67, 0xde, 0xcf, 0x05, + 0xcb, 0x5c, 0x30, 0x24, 0x28, 0x87, 0xdc, 0xe3, 0xf0, 0xbc, 0x0c, 0xc5, 0x85, 0x1b, 0x31, 0x2a, + 0xa8, 0xf9, 0x58, 0x13, 0x2e, 0xf7, 0xb8, 0x7b, 0x5e, 0x2e, 0x2d, 0xfa, 0xd4, 0xa7, 0x92, 0x82, + 0xc9, 0x49, 0xdd, 0x2a, 0xad, 0xd4, 0x29, 0x0f, 0x29, 0x3f, 0x51, 0x84, 0x32, 0x34, 0x35, 0x8f, + 0xc2, 0x80, 0x50, 0x28, 0x7f, 0x35, 0xb4, 0xac, 0x2e, 0xc0, 0x90, 0xfb, 0xc9, 0x5b, 0x21, 0xf7, + 0x35, 0xf1, 0xdc, 0xa7, 0xd4, 0x6f, 0x62, 0x88, 0xa2, 0x00, 0x22, 0x42, 0xa8, 0x40, 0x22, 0xa0, + 0x24, 0x55, 0xb2, 0xb4, 0x5b, 0x0d, 0x71, 0x0c, 0xcf, 0xcb, 0x35, 0x2c, 0x50, 0x19, 0xd6, 0x69, + 0x40, 0x14, 0xef, 0x74, 0xf2, 0x60, 0xb6, 0xc2, 0xfd, 0xb7, 0x41, 0x13, 0xbf, 0x8f, 0x9a, 0x14, + 0x79, 0xe6, 0x6b, 0x30, 0x7d, 0x1a, 0x34, 0xf1, 0x49, 0x03, 0xf1, 0x46, 0xd1, 0x58, 0x33, 0x36, + 0xa7, 0xf7, 0xd7, 0x7b, 0xb1, 0x3d, 0x00, 0xfb, 0xb1, 0xfd, 0xa4, 0x85, 0xc2, 0xe6, 0x9e, 0x93, + 0x41, 0x4e, 0x75, 0x2a, 0x39, 0x1f, 0x22, 0xde, 0x30, 0x0f, 0xc0, 0xc4, 0x29, 0xa3, 0x61, 0x31, + 0x2f, 0x5d, 0x61, 0x2f, 0xb6, 0xa5, 0xdd, 0x8f, 0xed, 0x19, 0xed, 0xc5, 0x68, 0xe8, 0xfc, 0xf8, + 0xbe, 0xbd, 0xa8, 0x53, 0x7e, 0xe3, 0x79, 0x0c, 0x73, 0x7e, 0x2c, 0x58, 0x40, 0xfc, 0xaa, 0xbc, + 0x6c, 0x1e, 0x83, 0x29, 0x86, 0x23, 0xca, 0x04, 0x66, 0xc5, 0x82, 0x14, 0x7a, 0xd9, 0x8b, 0xed, + 0x0c, 0xeb, 0xc7, 0xf6, 0x9c, 0x12, 0x4b, 0x91, 0xf1, 0x82, 0x99, 0x53, 0x22, 0x7a, 0x26, 0x73, + 0xc4, 0xac, 0x38, 0x31, 0x10, 0x4d, 0xb1, 0x81, 0x68, 0x8a, 0x3c, 0x20, 0x9a, 0x5e, 0xd9, 0xdb, + 0xb8, 0xea, 0xde, 0x6c, 0xc9, 0xa0, 0x3f, 0x77, 0x6f, 0xb6, 0x96, 0xd2, 0x91, 0x18, 0xa9, 0xa9, + 0xb3, 0x0c, 0x96, 0x46, 0x80, 0x2a, 0xe6, 0x11, 0x25, 0x1c, 0x3b, 0xed, 0x3c, 0x98, 0xae, 0x70, + 0xff, 0x88, 0xe1, 0x08, 0xb5, 0xcc, 0x77, 0x60, 0x92, 0x63, 0x92, 0x84, 0xa7, 0xea, 0xbe, 0xdb, + 0x8b, 0x6d, 0x8d, 0xf4, 0x63, 0x7b, 0x56, 0x05, 0xa7, 0xec, 0xf1, 0xa1, 0x69, 0x07, 0xf3, 0x04, + 0xcc, 0xd4, 0x30, 0xc1, 0xa7, 0x41, 0x3d, 0x40, 0xac, 0xa5, 0xdb, 0xf1, 0xaa, 0x17, 0xdb, 0xc3, + 0x70, 0x3f, 0xb6, 0x4d, 0x25, 0x3b, 0x04, 0x8e, 0xd7, 0x1e, 0x76, 0x35, 0x3f, 0x19, 0x60, 0x12, + 0x85, 0xf4, 0x8c, 0x88, 0x62, 0x61, 0xad, 0xb0, 0x39, 0xb3, 0xb3, 0xe2, 0x6a, 0xa7, 0x64, 0xd8, + 0x5c, 0x3d, 0x6c, 0xee, 0x01, 0x0d, 0xc8, 0xfe, 0xd1, 0x6d, 0x6c, 0xe7, 0x92, 0x6c, 0x94, 0xc3, + 0x20, 0x1b, 0x65, 0x3b, 0xdf, 0x7e, 0xdb, 0x9b, 0x7e, 0x20, 0x1a, 0x67, 0x35, 0xb7, 0x4e, 0x43, + 0xbd, 0x0c, 0xfa, 0x6f, 0x9b, 0x7b, 0x1f, 0xa1, 0x68, 0x45, 0x98, 0x4b, 0x2d, 0x7e, 0xdd, 0xbd, + 0xd9, 0x32, 0xaa, 0x5a, 0x69, 0x6f, 0x3d, 0xa9, 0xbf, 0xce, 0x39, 0xe9, 0xc0, 0xfc, 0x50, 0x07, + 0x54, 0x59, 0x9d, 0x05, 0x30, 0x9f, 0x19, 0x69, 0xe5, 0x77, 0x2e, 0xf3, 0xa0, 0x50, 0xe1, 0xbe, + 0x79, 0x69, 0x80, 0x85, 0x43, 0x44, 0xbc, 0x26, 0x1e, 0x5d, 0x83, 0x55, 0x77, 0x74, 0x89, 0xdd, + 0x11, 0xba, 0xf4, 0xe2, 0x41, 0x3a, 0xeb, 0xef, 0xc6, 0xd5, 0xcf, 0xbf, 0x5f, 0xf3, 0xab, 0xce, + 0x33, 0x78, 0xef, 0x5b, 0x21, 0x57, 0x47, 0x0d, 0x91, 0x49, 0xc1, 0x5c, 0x16, 0x81, 0x9e, 0x84, + 0x95, 0xff, 0xc8, 0x2b, 0xaa, 0xb4, 0x3e, 0x96, 0xca, 0x5e, 0xb5, 0xe4, 0xab, 0x45, 0xe7, 0xe9, + 0xfd, 0x57, 0x23, 0x25, 0xf1, 0xe8, 0x32, 0x29, 0xe1, 0x7e, 0xe5, 0xba, 0x6d, 0x19, 0xb7, 0x6d, + 0xcb, 0xb8, 0x6b, 0x5b, 0xc6, 0x9f, 0xb6, 0x65, 0x7c, 0xe9, 0x58, 0xb9, 0xbb, 0x8e, 0x95, 0xfb, + 0xd5, 0xb1, 0x72, 0x1f, 0xe0, 0x50, 0x3f, 0xb4, 0x0c, 0xc1, 0x22, 0x3d, 0x6e, 0xd7, 0x1b, 0x28, + 0x20, 0xf0, 0x42, 0x2a, 0xcb, 0xe6, 0xd4, 0x26, 0xe5, 0x17, 0x65, 0xf7, 0x5f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x95, 0x43, 0x07, 0xbd, 0x17, 0x05, 0x00, 0x00, } func (this *MsgFileUpload) Equal(that interface{}) bool { @@ -403,8 +412,9 @@ 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 MsgClient interface { - // CreateResourceNode defines a method for creating a new resource node. + // HandleMsgFileUpload defines a method for file uploading HandleMsgFileUpload(ctx context.Context, in *MsgFileUpload, opts ...grpc.CallOption) (*MsgFileUploadResponse, error) + // HandleMsgPrepay defines a method for prepay HandleMsgPrepay(ctx context.Context, in *MsgPrepay, opts ...grpc.CallOption) (*MsgPrepayResponse, error) } @@ -436,8 +446,9 @@ func (c *msgClient) HandleMsgPrepay(ctx context.Context, in *MsgPrepay, opts ... // MsgServer is the server API for Msg service. type MsgServer interface { - // CreateResourceNode defines a method for creating a new resource node. + // HandleMsgFileUpload defines a method for file uploading HandleMsgFileUpload(context.Context, *MsgFileUpload) (*MsgFileUploadResponse, error) + // HandleMsgPrepay defines a method for prepay HandleMsgPrepay(context.Context, *MsgPrepay) (*MsgPrepayResponse, error) } From b2d6bfc59cb31893b030a73d5bd405a5ad891daa Mon Sep 17 00:00:00 2001 From: Xiong Date: Thu, 26 Oct 2023 17:00:01 -0400 Subject: [PATCH 04/15] Add UpdateParams() for each modules. Update events --- proto/stratos/evm/v1/event.proto | 7 - proto/stratos/evm/v1/tx.proto | 32 +- proto/stratos/pot/v1/event.proto | 57 +- proto/stratos/pot/v1/tx.proto | 45 +- proto/stratos/register/v1/event.proto | 238 +--- proto/stratos/register/v1/tx.proto | 77 +- proto/stratos/sds/v1/event.proto | 48 +- proto/stratos/sds/v1/tx.proto | 38 +- scripts/protocgen.sh | 2 +- x/evm/handler.go | 4 +- x/evm/keeper/msg_server.go | 25 + x/evm/keeper/params.go | 8 +- x/evm/types/codec.go | 1 + x/evm/types/event.pb.go | 67 +- x/evm/types/msg.go | 32 + x/evm/types/tx.pb.go | 556 ++++++++- x/pot/keeper/msg_server.go | 90 +- x/pot/keeper/params.go | 8 +- x/pot/types/codec.go | 2 + x/pot/types/event.pb.go | 558 ++++++--- x/pot/types/msg.go | 73 +- x/pot/types/tx.pb.go | 592 ++++++++-- x/register/keeper/msg_server.go | 228 ++-- x/register/keeper/node_state_change.go | 4 +- x/register/keeper/params.go | 8 +- x/register/types/codec.go | 3 + x/register/types/event.pb.go | 1500 ++++++++++++++---------- x/register/types/msg.go | 93 +- x/register/types/tx.pb.go | 644 ++++++++-- x/sds/keeper/msg_server.go | 61 +- x/sds/keeper/params.go | 8 +- x/sds/types/codec.go | 2 + x/sds/types/event.pb.go | 413 +++++-- x/sds/types/msg.go | 49 +- x/sds/types/tx.pb.go | 527 ++++++++- 35 files changed, 4467 insertions(+), 1633 deletions(-) diff --git a/proto/stratos/evm/v1/event.proto b/proto/stratos/evm/v1/event.proto index fbb487f8..ae2ccd90 100644 --- a/proto/stratos/evm/v1/event.proto +++ b/proto/stratos/evm/v1/event.proto @@ -1,13 +1,6 @@ syntax = "proto3"; package stratos.evm.v1; -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/timestamp.proto"; -import "cosmos/staking/v1beta1/staking.proto"; - option go_package = "github.com/stratosnet/stratos-chain/x/evm/types"; // EventEthereumTx defines the event for an Ethereum transaction diff --git a/proto/stratos/evm/v1/tx.proto b/proto/stratos/evm/v1/tx.proto index b5ff7776..6f3cef57 100644 --- a/proto/stratos/evm/v1/tx.proto +++ b/proto/stratos/evm/v1/tx.proto @@ -2,10 +2,9 @@ syntax = "proto3"; package stratos.evm.v1; import "gogoproto/gogo.proto"; +import "cosmos_proto/cosmos.proto"; import "cosmos/msg/v1/msg.proto"; -import "google/api/annotations.proto"; import "google/protobuf/any.proto"; -import "cosmos_proto/cosmos.proto"; import "stratos/evm/v1/evm.proto"; option (gogoproto.equal_all) = true; @@ -16,9 +15,11 @@ service Msg { option (cosmos.msg.v1.service) = true; // EthereumTx defines a method submitting Ethereum transactions. - rpc EthereumTx(MsgEthereumTx) returns (MsgEthereumTxResponse) { - option (google.api.http).post = "/stratos/evm/v1/ethereum_tx"; - }; + rpc EthereumTx(MsgEthereumTx) returns (MsgEthereumTxResponse); + + // UpdateParams defined a governance operation for updating the x/evm module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); } // MsgEthereumTx encapsulates an Ethereum transaction as an SDK message. @@ -187,3 +188,24 @@ message MsgEthereumTxResponse { // gas consumed by the transaction uint64 gas_used = 5; } + +// MsgUpdateParams defines a Msg for updating the x/evm module parameters. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + + // authority is the address of the governance account. + string authority = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + + // params defines the x/evm parameters to update. + // NOTE: All parameters must be supplied. + Params params = 2 [ + (gogoproto.nullable) = false + ]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +message MsgUpdateParamsResponse {} + diff --git a/proto/stratos/pot/v1/event.proto b/proto/stratos/pot/v1/event.proto index 5950a30c..721265f6 100644 --- a/proto/stratos/pot/v1/event.proto +++ b/proto/stratos/pot/v1/event.proto @@ -1,60 +1,41 @@ syntax = "proto3"; package stratos.pot.v1; -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/timestamp.proto"; -import "cosmos/staking/v1beta1/staking.proto"; - option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; // EventVolumeReport is emitted on Msg/MsgVolumeReport message EventVolumeReport { string report_reference = 1; - string epoch = 2 [ - (gogoproto.nullable) = false, - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" - ]; + string epoch = 2; } // EventWithdraw is emitted on Msg/MsgWithdraw message EventWithdraw { - repeated cosmos.base.v1beta1.Coin amount = 1 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; - string wallet_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string target_address = 3 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; + string amount = 1; + string wallet_address = 2; + string target_address = 3; } // EventFoundationDeposit is emitted on Msg/MsgFoundationDeposit message EventFoundationDeposit { - repeated cosmos.base.v1beta1.Coin amount = 1 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; + string amount = 1; } // EventSlashing is emitted on Msg/MsgSlashingResourceNode message EventSlashing { - string wallet_address = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string amount = 3 [ - (gogoproto.nullable) = false, - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" - ]; + string wallet_address = 1; + string network_address = 2; + string amount = 3; string slashing_type = 4; - bool suspend = 5; + string suspend = 5; +} + +// EventMessage +message EventMessage { + // module which emits the event + string module = 1; + // sender of the message + string sender = 2; + // tx_type is the type of the message + string action = 3; } diff --git a/proto/stratos/pot/v1/tx.proto b/proto/stratos/pot/v1/tx.proto index b7020f58..0cc70474 100644 --- a/proto/stratos/pot/v1/tx.proto +++ b/proto/stratos/pot/v1/tx.proto @@ -5,9 +5,8 @@ import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; import "amino/amino.proto"; import "cosmos/msg/v1/msg.proto"; -import "google/api/annotations.proto"; -import "stratos/pot/v1/pot.proto"; import "cosmos/base/v1beta1/coin.proto"; +import "stratos/pot/v1/pot.proto"; option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; @@ -16,18 +15,14 @@ option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; service Msg { option (cosmos.msg.v1.service) = true; - rpc HandleMsgVolumeReport(MsgVolumeReport) returns (MsgVolumeReportResponse) { - option (google.api.http).post = "/stratos/pot/v1/volume_report"; - }; - rpc HandleMsgWithdraw(MsgWithdraw) returns (MsgWithdrawResponse) { - option (google.api.http).post = "/stratos/pot/v1/withdraw"; - }; - rpc HandleMsgFoundationDeposit(MsgFoundationDeposit) returns (MsgFoundationDepositResponse) { - option (google.api.http).post = "/stratos/pot/v1/foundation_deposit"; - }; - rpc HandleMsgSlashingResourceNode(MsgSlashingResourceNode) returns (MsgSlashingResourceNodeResponse) { - option (google.api.http).post = "/stratos/pot/v1/slashing_resource_node"; - }; + rpc HandleMsgVolumeReport(MsgVolumeReport) returns (MsgVolumeReportResponse); + rpc HandleMsgWithdraw(MsgWithdraw) returns (MsgWithdrawResponse); + rpc HandleMsgFoundationDeposit(MsgFoundationDeposit) returns (MsgFoundationDepositResponse); + rpc HandleMsgSlashingResourceNode(MsgSlashingResourceNode) returns (MsgSlashingResourceNodeResponse); + + // UpdateParams defined a governance operation for updating the x/pot module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); } // MsgVolumeReport encapsulates an VolumeReport transaction as an SDK message. @@ -177,3 +172,25 @@ message BLSSignatureInfo { ]; } +// MsgUpdateParams defines a Msg for updating the x/pot module parameters. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "stratos/x/pot/MsgUpdateParams"; + + // authority is the address of the governance account. + string authority = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + + // params defines the x/pot parameters to update. + // NOTE: All parameters must be supplied. + Params params = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +message MsgUpdateParamsResponse {} + diff --git a/proto/stratos/register/v1/event.proto b/proto/stratos/register/v1/event.proto index 50190235..b79c2cbc 100644 --- a/proto/stratos/register/v1/event.proto +++ b/proto/stratos/register/v1/event.proto @@ -1,231 +1,117 @@ syntax = "proto3"; package stratos.register.v1; -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; -import "google/protobuf/any.proto"; -import "google/protobuf/timestamp.proto"; -import "cosmos/staking/v1beta1/staking.proto"; - option go_package = "github.com/stratosnet/stratos-chain/x/register/types"; // EventCreateResourceNode is emitted on Msg/MsgCreateResourceNode message EventCreateResourceNode { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - google.protobuf.Any pubkey = 3 [ - (cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey" - ]; - string ozone_limit_changes = 4 [ - (gogoproto.nullable) = false, - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" - ]; - cosmos.base.v1beta1.Coin initial_deposit = 5 [ - (gogoproto.nullable) = false - ]; + string sender = 1; + string network_address = 2; + string pubkey = 3; + string ozone_limit_changes = 4; + string initial_deposit = 5; } // EventCreateMetaNode is emitted on Msg/MsgCreateMetaNode message EventCreateMetaNode { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string ozone_limit_changes = 3 [ - (gogoproto.nullable) = false, - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" - ]; + string sender = 1; + string network_address = 2; + string ozone_limit_changes = 3; } // EventUnBondingResourceNode is emitted on Msg/MsgRemoveResourceNode message EventUnBondingResourceNode { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string resource_node = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - cosmos.base.v1beta1.Coin deposit_to_remove = 3 [ - (gogoproto.nullable) = false - ]; - google.protobuf.Timestamp unbonding_mature_time = 4 [ - (gogoproto.nullable) = false, - (gogoproto.stdtime) = true - ]; + string sender = 1; + string resource_node = 2; + string deposit_to_remove = 3; + string unbonding_mature_time = 4; } // EventUnBondingResourceNode is emitted on Msg/MsgRemoveMetaNode message EventUnBondingMetaNode { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string meta_node = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string ozone_limit_changes = 3 [ - (gogoproto.nullable) = false, - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" - ]; - cosmos.base.v1beta1.Coin deposit_to_remove = 4 [ - (gogoproto.nullable) = false - ]; - google.protobuf.Timestamp unbonding_mature_time = 5 [ - (gogoproto.nullable) = false, - (gogoproto.stdtime) = true - ]; + string sender = 1; + string meta_node = 2; + string ozone_limit_changes = 3; + string deposit_to_remove = 4; + string unbonding_mature_time = 5; } // EventMetaNodeRegistrationVote is emitted on Msg/MsgMetaNodeRegistrationVote message EventMetaNodeRegistrationVote { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string voter_network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string candidate_network_address = 3 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - cosmos.staking.v1beta1.BondStatus candidate_status = 4; + string sender = 1; + string voter_network_address = 2; + string candidate_network_address = 3; + string candidate_status = 4; } // EventWithdrawMetaNodeRegistrationDeposit is emitted on Msg/MsgWithdrawMetaNodeRegistrationDeposit message EventWithdrawMetaNodeRegistrationDeposit { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - google.protobuf.Timestamp unbonding_mature_time = 3 [ - (gogoproto.nullable) = false, - (gogoproto.stdtime) = true - ]; + string sender = 1; + string network_address = 2; + string unbonding_mature_time = 3; } // EventUpdateResourceNode is emitted on Msg/MsgUpdateResourceNode message EventUpdateResourceNode { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; + string sender = 1; + string network_address = 2; } // EventUpdateResourceNodeDeposit is emitted on Msg/MsgUpdateResourceNodeDeposit message EventUpdateResourceNodeDeposit { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - cosmos.base.v1beta1.Coin deposit_delta = 3 [ - (gogoproto.nullable) = false - ]; - cosmos.base.v1beta1.Coin current_deposit = 4 [ - (gogoproto.nullable) = false - ]; - cosmos.base.v1beta1.Coin available_token_before = 5 [ - (gogoproto.nullable) = false - ]; - cosmos.base.v1beta1.Coin available_token_after = 6 [ - (gogoproto.nullable) = false - ]; - string ozone_limit_changes = 7 [ - (gogoproto.nullable) = false, - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" - ]; - google.protobuf.Timestamp unbonding_mature_time = 8 [ - (gogoproto.nullable) = false, - (gogoproto.stdtime) = true - ]; + string sender = 1; + string network_address = 2; + string deposit_delta = 3; + string current_deposit = 4; + string available_token_before = 5; + string available_token_after = 6; + string ozone_limit_changes = 7; + string unbonding_mature_time = 8; } // EventUpdateEffectiveDeposit is emitted on Msg/MsgUpdateEffectiveDeposit message EventUpdateEffectiveDeposit { - string network_address = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string effective_deposit_after = 2 [ - (gogoproto.nullable) = false, - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" - ]; - bool is_unsuspended = 3; + string network_address = 1; + string effective_deposit_after = 2; + string is_unsuspended = 3; } // EventUpdateMetaNode is emitted on Msg/MsgUpdateMetaNode message EventUpdateMetaNode { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; + string sender = 1; + string network_address = 2; } // EventUpdateMetaNodeDeposit is emitted on Msg/MsgUpdateMetaNodeDeposit message EventUpdateMetaNodeDeposit { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - cosmos.base.v1beta1.Coin deposit_delta = 3 [ - (gogoproto.nullable) = false - ]; - cosmos.base.v1beta1.Coin current_deposit = 4 [ - (gogoproto.nullable) = false - ]; - cosmos.base.v1beta1.Coin available_token_before = 5 [ - (gogoproto.nullable) = false - ]; - cosmos.base.v1beta1.Coin available_token_after = 6 [ - (gogoproto.nullable) = false - ]; - string ozone_limit_changes = 7 [ - (gogoproto.nullable) = false, - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" - ]; - google.protobuf.Timestamp unbonding_mature_time = 8 [ - (gogoproto.nullable) = false, - (gogoproto.stdtime) = true - ]; + string sender = 1; + string network_address = 2; + string deposit_delta = 3; + string current_deposit = 4; + string available_token_before = 5; + string available_token_after = 6; + string ozone_limit_changes = 7; + string unbonding_mature_time = 8; } // EventCompleteUnBondingResourceNode is emitted on EndBlocker message EventCompleteUnBondingResourceNode{ - repeated cosmos.base.v1beta1.Coin amount = 1 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; + string amount = 1; + string network_address = 2; } // EventCompleteUnBondingMetaNode is emitted on EndBlocker message EventCompleteUnBondingMetaNode{ - repeated cosmos.base.v1beta1.Coin amount = 1 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; - string network_address = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; -} \ No newline at end of file + string amount = 1; + string network_address = 2; +} + +// EventMessage +message EventMessage { + // module which emits the event + string module = 1; + // sender of the message + string sender = 2; + // tx_type is the type of the message + string action = 3; +} diff --git a/proto/stratos/register/v1/tx.proto b/proto/stratos/register/v1/tx.proto index f9b5dc7f..568f7dfe 100644 --- a/proto/stratos/register/v1/tx.proto +++ b/proto/stratos/register/v1/tx.proto @@ -5,10 +5,9 @@ import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; import "amino/amino.proto"; import "cosmos/msg/v1/msg.proto"; +import "cosmos/base/v1beta1/coin.proto"; import "google/protobuf/any.proto"; -import "google/api/annotations.proto"; import "stratos/register/v1/register.proto"; -import "cosmos/base/v1beta1/coin.proto"; option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/register/types"; @@ -18,41 +17,22 @@ service Msg { option (cosmos.msg.v1.service) = true; // CreateResourceNode defines a method for creating a new resource node. - rpc HandleMsgCreateResourceNode(MsgCreateResourceNode) returns (MsgCreateResourceNodeResponse) { - option (google.api.http).post = "/stratos/register/v1/create_resource_node"; - }; - rpc HandleMsgRemoveResourceNode(MsgRemoveResourceNode) returns (MsgRemoveResourceNodeResponse) { - option (google.api.http).post = "/stratos/register/v1/remove_resource_node"; - }; - rpc HandleMsgUpdateResourceNode(MsgUpdateResourceNode) returns (MsgUpdateResourceNodeResponse) { - option (google.api.http).post = "/stratos/register/v1/update_resource_node"; - }; - rpc HandleMsgUpdateResourceNodeDeposit(MsgUpdateResourceNodeDeposit) returns (MsgUpdateResourceNodeDepositResponse) { - option (google.api.http).post = "/stratos/register/v1/update_resource_node_deposit"; - }; - rpc HandleMsgUpdateEffectiveDeposit(MsgUpdateEffectiveDeposit) returns (MsgUpdateEffectiveDepositResponse) { - option (google.api.http).post = "/stratos/register/v1/update_effective_deposit"; - }; - - rpc HandleMsgCreateMetaNode(MsgCreateMetaNode) returns (MsgCreateMetaNodeResponse) { - option (google.api.http).post = "/stratos/register/v1/create_meta_node"; - }; - rpc HandleMsgRemoveMetaNode(MsgRemoveMetaNode) returns (MsgRemoveMetaNodeResponse) { - option (google.api.http).post = "/stratos/register/v1/remove_meta_node"; - }; - rpc HandleMsgUpdateMetaNode(MsgUpdateMetaNode) returns (MsgUpdateMetaNodeResponse) { - option (google.api.http).post = "/stratos/register/v1/update_meta_node"; - }; - rpc HandleMsgUpdateMetaNodeDeposit(MsgUpdateMetaNodeDeposit) returns (MsgUpdateMetaNodeDepositResponse) { - option (google.api.http).post = "/stratos/register/v1/update_meta_node_deposit"; - }; - rpc HandleMsgMetaNodeRegistrationVote(MsgMetaNodeRegistrationVote) returns (MsgMetaNodeRegistrationVoteResponse) { - option (google.api.http).post = "/stratos/register/v1/meta_node_registration_vote"; - }; - rpc HandleMsgWithdrawMetaNodeRegistrationDeposit(MsgWithdrawMetaNodeRegistrationDeposit) returns (MsgWithdrawMetaNodeRegistrationDepositResponse) { - option (google.api.http).post = "/stratos/register/v1/withdraw_meta_node_registration_deposit"; - }; - + rpc HandleMsgCreateResourceNode(MsgCreateResourceNode) returns (MsgCreateResourceNodeResponse); + rpc HandleMsgRemoveResourceNode(MsgRemoveResourceNode) returns (MsgRemoveResourceNodeResponse); + rpc HandleMsgUpdateResourceNode(MsgUpdateResourceNode) returns (MsgUpdateResourceNodeResponse); + rpc HandleMsgUpdateResourceNodeDeposit(MsgUpdateResourceNodeDeposit) returns (MsgUpdateResourceNodeDepositResponse); + rpc HandleMsgUpdateEffectiveDeposit(MsgUpdateEffectiveDeposit) returns (MsgUpdateEffectiveDepositResponse); + + rpc HandleMsgCreateMetaNode(MsgCreateMetaNode) returns (MsgCreateMetaNodeResponse); + rpc HandleMsgRemoveMetaNode(MsgRemoveMetaNode) returns (MsgRemoveMetaNodeResponse); + rpc HandleMsgUpdateMetaNode(MsgUpdateMetaNode) returns (MsgUpdateMetaNodeResponse); + rpc HandleMsgUpdateMetaNodeDeposit(MsgUpdateMetaNodeDeposit) returns (MsgUpdateMetaNodeDepositResponse); + rpc HandleMsgMetaNodeRegistrationVote(MsgMetaNodeRegistrationVote) returns (MsgMetaNodeRegistrationVoteResponse); + rpc HandleMsgWithdrawMetaNodeRegistrationDeposit(MsgWithdrawMetaNodeRegistrationDeposit) returns (MsgWithdrawMetaNodeRegistrationDepositResponse); + + // UpdateParams defined a governance operation for updating the x/register module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); } // MsgCreateResourceNode encapsulates an MsgCreateResourceNodeTx transaction as an SDK message. @@ -372,3 +352,26 @@ message MsgWithdrawMetaNodeRegistrationDeposit { // MsgWithdrawMetaNodeRegistrationDepositResponse defines the Msg/WithdrawMetaNodeRegistrationDeposit response type. message MsgWithdrawMetaNodeRegistrationDepositResponse {} + +// MsgUpdateParams defines a Msg for updating the x/register module parameters. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "stratos/x/register/MsgUpdateParams"; + + // authority is the address of the governance account. + string authority = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + + // params defines the x/register parameters to update. + // NOTE: All parameters must be supplied. + Params params = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +message MsgUpdateParamsResponse {} + diff --git a/proto/stratos/sds/v1/event.proto b/proto/stratos/sds/v1/event.proto index e0bfe1d1..9b31777e 100644 --- a/proto/stratos/sds/v1/event.proto +++ b/proto/stratos/sds/v1/event.proto @@ -1,41 +1,31 @@ syntax = "proto3"; package stratos.sds.v1; -import "gogoproto/gogo.proto"; -import "cosmos_proto/cosmos.proto"; -import "cosmos/base/v1beta1/coin.proto"; - option go_package = "github.com/stratosnet/stratos-chain/x/sds/types"; // EventPrePay is emitted on Msg/MsgPrepay message EventPrePay { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string beneficiary = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - repeated cosmos.base.v1beta1.Coin amount = 3 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; - string purchased_noz = 4 [ - (gogoproto.nullable) = false, - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" - ]; + string sender = 1; + string beneficiary = 2; + string amount = 3; + string purchased_noz = 4; } // EventFileUpload is emitted on Msg/MsgFileUpload message EventFileUpload { - string sender = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string reporter = 2 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string uploader = 3 [ - (cosmos_proto.scalar) = "cosmos.AddressString" - ]; - string file_hash = 4 ; + string sender = 1; + string reporter = 2; + string uploader = 3; + string file_hash = 4; +} + +// EventMessage +message EventMessage { + // module which emits the event + string module = 1; + // sender of the message + string sender = 2; + // tx_type is the type of the message + string action = 3; } + diff --git a/proto/stratos/sds/v1/tx.proto b/proto/stratos/sds/v1/tx.proto index 43a46c0c..6eec2d6b 100644 --- a/proto/stratos/sds/v1/tx.proto +++ b/proto/stratos/sds/v1/tx.proto @@ -5,8 +5,8 @@ import "gogoproto/gogo.proto"; import "cosmos_proto/cosmos.proto"; import "amino/amino.proto"; import "cosmos/msg/v1/msg.proto"; -import "google/api/annotations.proto"; import "cosmos/base/v1beta1/coin.proto"; +import "stratos/sds/v1/sds.proto"; option (gogoproto.equal_all) = true; option go_package = "github.com/stratosnet/stratos-chain/x/sds/types"; @@ -16,13 +16,13 @@ service Msg { option (cosmos.msg.v1.service) = true; // HandleMsgFileUpload defines a method for file uploading - rpc HandleMsgFileUpload(MsgFileUpload) returns (MsgFileUploadResponse) { - option (google.api.http).post = "/stratos/sds/v1/file_upload"; - }; + rpc HandleMsgFileUpload(MsgFileUpload) returns (MsgFileUploadResponse); // HandleMsgPrepay defines a method for prepay - rpc HandleMsgPrepay(MsgPrepay) returns (MsgPrepayResponse) { - option (google.api.http).post = "/stratos/sds/v1/prepay"; - }; + rpc HandleMsgPrepay(MsgPrepay) returns (MsgPrepayResponse); + + // UpdateParams defined a governance operation for updating the x/sds module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse); } message MsgFileUpload { @@ -75,4 +75,26 @@ message MsgPrepay { ]; } -message MsgPrepayResponse {} \ No newline at end of file +message MsgPrepayResponse {} + +// MsgUpdateParams defines a Msg for updating the x/sds module parameters. +message MsgUpdateParams { + option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "stratos/x/sds/MsgUpdateParams"; + + // authority is the address of the governance account. + string authority = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString" + ]; + + // params defines the x/sds parameters to update. + // NOTE: All parameters must be supplied. + Params params = 2 [ + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true + ]; +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +message MsgUpdateParamsResponse {} diff --git a/scripts/protocgen.sh b/scripts/protocgen.sh index 31cb3b43..6b06ed54 100644 --- a/scripts/protocgen.sh +++ b/scripts/protocgen.sh @@ -25,4 +25,4 @@ cd .. cp -r github.com/stratosnet/stratos-chain/* ./ rm -rf github.com -#./scripts/protocgen-pulsar.sh \ No newline at end of file +./scripts/protocgen-pulsar.sh \ No newline at end of file diff --git a/x/evm/handler.go b/x/evm/handler.go index 2750febc..207a2c38 100644 --- a/x/evm/handler.go +++ b/x/evm/handler.go @@ -18,7 +18,9 @@ func NewHandler(server types.MsgServer) sdk.Handler { // execute state transition res, err := server.EthereumTx(sdk.WrapSDKContext(ctx), msg) return sdk.WrapServiceResult(ctx, res, err) - + case *types.MsgUpdateParams: + res, err := server.UpdateParams(sdk.WrapSDKContext(ctx), msg) + return sdk.WrapServiceResult(ctx, res, err) default: err := errors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) return nil, err diff --git a/x/evm/keeper/msg_server.go b/x/evm/keeper/msg_server.go index 957fa60e..f54f07a8 100644 --- a/x/evm/keeper/msg_server.go +++ b/x/evm/keeper/msg_server.go @@ -8,6 +8,7 @@ import ( tmbytes "github.com/cometbft/cometbft/libs/bytes" tmtypes "github.com/cometbft/cometbft/types" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" @@ -75,3 +76,27 @@ func (k *Keeper) EthereumTx(goCtx context.Context, msg *types.MsgEthereumTx) (*t return response, nil } + +// UpdateParams updates the module parameters +func (k *Keeper) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParams) (*types.MsgUpdateParamsResponse, error) { + if k.authority != msg.Authority { + return nil, errors.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", k.authority, msg.Authority) + } + + ctx := sdk.UnwrapSDKContext(goCtx) + err := k.SetParams(ctx, msg.Params) + if err != nil { + return nil, err + } + + err = ctx.EventManager().EmitTypedEvent(&types.EventMessage{ + Module: types.ModuleName, + Sender: msg.Authority, + TxType: sdk.MsgTypeURL(msg), + }) + if err != nil { + return nil, err + } + + return &types.MsgUpdateParamsResponse{}, nil +} diff --git a/x/evm/keeper/params.go b/x/evm/keeper/params.go index 29bcd4e7..7841c35f 100644 --- a/x/evm/keeper/params.go +++ b/x/evm/keeper/params.go @@ -10,10 +10,16 @@ import ( ) // SetParams sets the params on the store -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { + if err := params.Validate(); err != nil { + return err + } + store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshal(¶ms) store.Set(types.KeyPrefixParams, bz) + + return nil } // GetParams returns the params from the store diff --git a/x/evm/types/codec.go b/x/evm/types/codec.go index 9b75c66c..05df55f7 100644 --- a/x/evm/types/codec.go +++ b/x/evm/types/codec.go @@ -21,6 +21,7 @@ func RegisterInterfaces(registry codectypes.InterfaceRegistry) { registry.RegisterImplementations( (*sdk.Msg)(nil), &MsgEthereumTx{}, + &MsgUpdateParams{}, ) registry.RegisterInterface( "stratos.evm.v1.ExtensionOptionsEthereumTx", diff --git a/x/evm/types/event.pb.go b/x/evm/types/event.pb.go index 98ca21ce..1b44a090 100644 --- a/x/evm/types/event.pb.go +++ b/x/evm/types/event.pb.go @@ -5,13 +5,7 @@ package types import ( fmt "fmt" - _ "github.com/cosmos/cosmos-proto" - _ "github.com/cosmos/cosmos-sdk/codec/types" - _ "github.com/cosmos/cosmos-sdk/types" - _ "github.com/cosmos/cosmos-sdk/x/staking/types" - _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - _ "google.golang.org/protobuf/types/known/timestamppb" io "io" math "math" math_bits "math/bits" @@ -437,39 +431,34 @@ func init() { func init() { proto.RegisterFile("stratos/evm/v1/event.proto", fileDescriptor_bf04d7c55b62717e) } var fileDescriptor_bf04d7c55b62717e = []byte{ - // 502 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x53, 0xdf, 0x8a, 0xd3, 0x4e, - 0x14, 0x6e, 0xb6, 0xbb, 0xed, 0x6f, 0xe7, 0xe7, 0xae, 0x12, 0x16, 0xcd, 0x56, 0x89, 0x4b, 0x50, - 0x14, 0xc4, 0x0e, 0xc5, 0x07, 0x10, 0x0a, 0x5b, 0x15, 0xdc, 0x1b, 0xa9, 0x08, 0xde, 0x84, 0x49, - 0x72, 0x3a, 0x13, 0x9a, 0x64, 0x42, 0xe6, 0x24, 0xa4, 0x6f, 0xe1, 0x63, 0x09, 0xde, 0xec, 0xa5, - 0x97, 0xd2, 0xbe, 0x88, 0xcc, 0x9f, 0x6e, 0x17, 0xef, 0xce, 0xf7, 0x67, 0xbe, 0xf0, 0x9d, 0x99, - 0x90, 0x89, 0xc2, 0x86, 0xa1, 0x54, 0x14, 0xba, 0x92, 0x76, 0x33, 0x0a, 0x1d, 0x54, 0x38, 0xad, - 0x1b, 0x89, 0xd2, 0x3f, 0x77, 0xda, 0x14, 0xba, 0x72, 0xda, 0xcd, 0x26, 0x17, 0x5c, 0x72, 0x69, - 0x24, 0xaa, 0x27, 0xeb, 0x9a, 0x5c, 0xa6, 0x52, 0x95, 0x52, 0xc5, 0x56, 0xb0, 0xc0, 0x49, 0xa1, - 0x45, 0x34, 0x61, 0x0a, 0x68, 0x37, 0x4b, 0x00, 0xd9, 0x8c, 0xa6, 0x32, 0xaf, 0xf6, 0x47, 0xb9, - 0x94, 0xbc, 0x00, 0x6a, 0x50, 0xd2, 0xae, 0x28, 0xab, 0x36, 0x4e, 0x7a, 0xfe, 0xaf, 0x84, 0x79, - 0x09, 0x0a, 0x59, 0x59, 0x3b, 0xc3, 0x0b, 0x97, 0xad, 0x90, 0xad, 0xf3, 0x8a, 0xdf, 0xc5, 0x3b, - 0x6c, 0x5d, 0xd1, 0x2f, 0x8f, 0x3c, 0xbc, 0xd6, 0x95, 0xae, 0x51, 0x40, 0x03, 0x6d, 0xb9, 0xec, - 0xfd, 0xc7, 0x64, 0xc4, 0x4a, 0xd9, 0x56, 0x18, 0x78, 0x57, 0xde, 0xeb, 0xd3, 0x2f, 0x0e, 0xf9, - 0x97, 0xe4, 0x3f, 0x40, 0x11, 0x0b, 0xa6, 0x44, 0x70, 0x64, 0x94, 0x31, 0xa0, 0xf8, 0xc8, 0x94, - 0xf0, 0x2f, 0xc8, 0x49, 0x5e, 0x65, 0xd0, 0x07, 0x43, 0xc3, 0x5b, 0xa0, 0x0f, 0x70, 0xa6, 0xe2, - 0x56, 0x41, 0x16, 0x1c, 0xdb, 0x03, 0x9c, 0xa9, 0xaf, 0x0a, 0x32, 0xdf, 0x27, 0xc7, 0x26, 0xe7, - 0xc4, 0xd0, 0x66, 0xf6, 0x9f, 0x91, 0xd3, 0x06, 0xd2, 0xbc, 0xce, 0xa1, 0xc2, 0x60, 0x64, 0x84, - 0x03, 0xe1, 0x47, 0xe4, 0x4c, 0x7f, 0x1d, 0xfb, 0x78, 0xc5, 0xf2, 0x02, 0xb2, 0x60, 0x6c, 0x1c, - 0xff, 0x03, 0x8a, 0x65, 0xbf, 0x30, 0x54, 0xf4, 0x92, 0x10, 0x53, 0x66, 0xd9, 0x7f, 0x96, 0xdc, - 0x7f, 0x42, 0xc6, 0xd8, 0xc7, 0x85, 0xe4, 0x2a, 0xf0, 0xae, 0x86, 0xba, 0x08, 0x6a, 0x5e, 0x45, - 0xdf, 0xc8, 0x03, 0x63, 0xbb, 0x01, 0xa5, 0x18, 0x07, 0x5d, 0xb8, 0x94, 0x59, 0x5b, 0xc0, 0xbe, - 0xb0, 0x45, 0x9a, 0x57, 0x50, 0x65, 0xd0, 0xb8, 0xba, 0x0e, 0xb9, 0x60, 0xdc, 0xd4, 0xe0, 0xfa, - 0x8e, 0xb0, 0x5f, 0x6e, 0x6a, 0x88, 0x5e, 0xb9, 0x65, 0xce, 0x0b, 0x99, 0xae, 0xe7, 0x85, 0x94, - 0xa5, 0xde, 0x4c, 0xa2, 0x07, 0x17, 0x6d, 0x41, 0xf4, 0x9e, 0x9c, 0x1d, 0x8c, 0x1f, 0x98, 0xd2, - 0x9f, 0x12, 0x90, 0x73, 0x71, 0xb7, 0x73, 0x8b, 0xee, 0xdd, 0xc5, 0xd1, 0xfd, 0xbb, 0x88, 0xde, - 0x90, 0x73, 0x13, 0xb0, 0x00, 0xb8, 0x61, 0xcd, 0x1a, 0xcc, 0xed, 0xe8, 0x67, 0x14, 0xaf, 0x60, - 0x5f, 0x63, 0xac, 0xf1, 0x02, 0x20, 0x7a, 0x4a, 0xc6, 0x6e, 0x2d, 0xfe, 0x23, 0x32, 0x3c, 0x18, - 0xf4, 0x38, 0xff, 0xf4, 0x73, 0x1b, 0x7a, 0xb7, 0xdb, 0xd0, 0xfb, 0xb3, 0x0d, 0xbd, 0x1f, 0xbb, - 0x70, 0x70, 0xbb, 0x0b, 0x07, 0xbf, 0x77, 0xe1, 0xe0, 0x3b, 0xe5, 0x39, 0x8a, 0x36, 0x99, 0xa6, - 0xb2, 0xa4, 0xee, 0xa5, 0x57, 0x80, 0xfb, 0xf1, 0x6d, 0x2a, 0x58, 0x5e, 0xd1, 0xde, 0xfc, 0x18, - 0x7a, 0x17, 0x2a, 0x19, 0x99, 0x37, 0xf5, 0xee, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x27, - 0x08, 0x5a, 0x34, 0x03, 0x00, 0x00, + // 427 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x52, 0x5d, 0x6b, 0xd4, 0x40, + 0x14, 0xdd, 0x74, 0xdb, 0x8d, 0xbd, 0xda, 0x2a, 0x83, 0x68, 0xfc, 0x20, 0x94, 0x80, 0x28, 0x88, + 0x1b, 0x8a, 0x3f, 0x40, 0x58, 0xe8, 0xaa, 0x60, 0x5f, 0x64, 0x45, 0xf0, 0x25, 0xcc, 0x6e, 0x6e, + 0x33, 0xa1, 0x49, 0x66, 0xc9, 0xbd, 0x09, 0xd3, 0x7f, 0xe1, 0xcf, 0x12, 0x7c, 0xe9, 0xa3, 0x8f, + 0xb2, 0xfb, 0x47, 0x64, 0x26, 0xb3, 0x6e, 0xdf, 0xee, 0x39, 0xf7, 0xce, 0x19, 0xce, 0xb9, 0x17, + 0x9e, 0x13, 0xb7, 0x92, 0x35, 0xa5, 0xd8, 0xd7, 0x69, 0x7f, 0x9e, 0x62, 0x8f, 0x0d, 0x4f, 0xd7, + 0xad, 0x66, 0x2d, 0x4e, 0x7d, 0x6f, 0x8a, 0x7d, 0x3d, 0xed, 0xcf, 0x93, 0xdf, 0x01, 0x3c, 0xbc, + 0xb0, 0xfd, 0x0b, 0x56, 0xd8, 0x62, 0x57, 0x2f, 0x8c, 0x78, 0x02, 0x13, 0x59, 0xeb, 0xae, 0xe1, + 0x28, 0x38, 0x0b, 0xde, 0x1c, 0x7f, 0xf5, 0x48, 0x3c, 0x83, 0x7b, 0xc8, 0x2a, 0x53, 0x92, 0x54, + 0x74, 0xe0, 0x3a, 0x21, 0xb2, 0xfa, 0x24, 0x49, 0x89, 0xc7, 0x70, 0x54, 0x36, 0x39, 0x9a, 0x68, + 0xec, 0xf8, 0x01, 0xd8, 0x07, 0x85, 0xa4, 0xac, 0x23, 0xcc, 0xa3, 0xc3, 0xe1, 0x41, 0x21, 0xe9, + 0x1b, 0x61, 0x2e, 0x04, 0x1c, 0x3a, 0x9d, 0x23, 0x47, 0xbb, 0x5a, 0xbc, 0x84, 0xe3, 0x16, 0x57, + 0xe5, 0xba, 0xc4, 0x86, 0xa3, 0x89, 0x6b, 0xec, 0x09, 0x91, 0xc0, 0x89, 0xfd, 0x9d, 0x4d, 0x76, + 0x25, 0xcb, 0x0a, 0xf3, 0x28, 0x74, 0x13, 0xf7, 0x91, 0xd5, 0xc2, 0xcc, 0x1d, 0x95, 0xbc, 0x02, + 0x70, 0x66, 0x16, 0xe6, 0x8b, 0x2e, 0xc4, 0x53, 0x08, 0xd9, 0x64, 0x95, 0x2e, 0x28, 0x0a, 0xce, + 0xc6, 0xd6, 0x08, 0x5b, 0x9e, 0x92, 0xef, 0xf0, 0xc0, 0x8d, 0x5d, 0x22, 0x91, 0x2c, 0xd0, 0x1a, + 0xae, 0x75, 0xde, 0x55, 0xb8, 0x33, 0x3c, 0x20, 0xcb, 0x13, 0x36, 0x39, 0xb6, 0xde, 0xae, 0x47, + 0x5e, 0x98, 0x6f, 0xd6, 0xe8, 0xfd, 0x4e, 0xd8, 0x2c, 0x6e, 0xd6, 0x98, 0xbc, 0xf6, 0x61, 0xce, + 0x2a, 0xbd, 0xba, 0x9e, 0x55, 0x5a, 0xd7, 0x36, 0x99, 0xa5, 0x2d, 0xbc, 0xf4, 0x00, 0x92, 0x0f, + 0x70, 0xb2, 0x1f, 0xfc, 0x28, 0xc9, 0x7e, 0xa5, 0xb0, 0x2c, 0xd4, 0xff, 0xcc, 0x07, 0x74, 0x67, + 0x17, 0x07, 0x77, 0x77, 0x91, 0xbc, 0x85, 0x53, 0x27, 0x30, 0x47, 0xbc, 0x94, 0xed, 0x35, 0xba, + 0xed, 0x2c, 0x25, 0x61, 0x76, 0x85, 0x3b, 0x1b, 0xa1, 0xc5, 0x73, 0xc4, 0xe4, 0x05, 0x84, 0x3e, + 0x16, 0xf1, 0x08, 0xc6, 0xfb, 0x01, 0x5b, 0xce, 0x3e, 0xff, 0xda, 0xc4, 0xc1, 0xed, 0x26, 0x0e, + 0xfe, 0x6e, 0xe2, 0xe0, 0xe7, 0x36, 0x1e, 0xdd, 0x6e, 0xe3, 0xd1, 0x9f, 0x6d, 0x3c, 0xfa, 0x91, + 0x16, 0x25, 0xab, 0x6e, 0x39, 0x5d, 0xe9, 0x3a, 0xf5, 0x67, 0xd3, 0x20, 0xef, 0xca, 0x77, 0x2b, + 0x25, 0xcb, 0x26, 0x35, 0xee, 0xca, 0x6c, 0x16, 0xb4, 0x9c, 0xb8, 0x1b, 0x7b, 0xff, 0x2f, 0x00, + 0x00, 0xff, 0xff, 0x81, 0x93, 0x30, 0x1a, 0x81, 0x02, 0x00, 0x00, } func (m *EventEthereumTx) Marshal() (dAtA []byte, err error) { diff --git a/x/evm/types/msg.go b/x/evm/types/msg.go index b8c7dd7d..6c3038af 100644 --- a/x/evm/types/msg.go +++ b/x/evm/types/msg.go @@ -25,6 +25,7 @@ var ( _ sdk.Msg = &MsgEthereumTx{} _ sdk.Tx = &MsgEthereumTx{} _ ante.GasTx = &MsgEthereumTx{} + _ sdk.Msg = &MsgUpdateParams{} _ codectypes.UnpackInterfacesMessage = MsgEthereumTx{} ) @@ -346,3 +347,34 @@ func (msg *MsgEthereumTx) BuildTx(b client.TxBuilder, evmDenom string) (signing. tx := builder.GetTx() return tx, nil } + +// -------------------------------------------------------------------------------------------------------------------- + +func NewMsgUpdateParams(params Params, authority string) *MsgUpdateParams { + return &MsgUpdateParams{ + Params: params, + Authority: authority, + } +} + +// ValidateBasic implements sdk.Msg +func (msg *MsgUpdateParams) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Authority) + if err != nil { + return err + } + + return msg.Params.Validate() +} + +// GetSignBytes implements sdk.Msg +func (msg *MsgUpdateParams) GetSigners() []sdk.AccAddress { + authority := sdk.MustAccAddressFromBech32(msg.Authority) + return []sdk.AccAddress{authority} +} + +// GetSigners implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} diff --git a/x/evm/types/tx.pb.go b/x/evm/types/tx.pb.go index cb533b9d..520fd3b8 100644 --- a/x/evm/types/tx.pb.go +++ b/x/evm/types/tx.pb.go @@ -15,7 +15,6 @@ import ( _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" - _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -342,6 +341,100 @@ func (m *MsgEthereumTxResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgEthereumTxResponse proto.InternalMessageInfo +// MsgUpdateParams defines a Msg for updating the x/evm module parameters. +type MsgUpdateParams struct { + // authority is the address of the governance account. + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // params defines the x/evm parameters to update. + // NOTE: All parameters must be supplied. + Params Params `protobuf:"bytes,2,opt,name=params,proto3" json:"params"` +} + +func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} } +func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParams) ProtoMessage() {} +func (*MsgUpdateParams) Descriptor() ([]byte, []int) { + return fileDescriptor_8aaa626562d93f7b, []int{6} +} +func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParams.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 *MsgUpdateParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParams.Merge(m, src) +} +func (m *MsgUpdateParams) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParams) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParams.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParams proto.InternalMessageInfo + +func (m *MsgUpdateParams) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgUpdateParams) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +type MsgUpdateParamsResponse struct { +} + +func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse{} } +func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParamsResponse) ProtoMessage() {} +func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8aaa626562d93f7b, []int{7} +} +func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParamsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParamsResponse.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 *MsgUpdateParamsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParamsResponse.Merge(m, src) +} +func (m *MsgUpdateParamsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParamsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgEthereumTx)(nil), "stratos.evm.v1.MsgEthereumTx") proto.RegisterType((*LegacyTx)(nil), "stratos.evm.v1.LegacyTx") @@ -349,68 +442,75 @@ func init() { proto.RegisterType((*DynamicFeeTx)(nil), "stratos.evm.v1.DynamicFeeTx") proto.RegisterType((*ExtensionOptionsEthereumTx)(nil), "stratos.evm.v1.ExtensionOptionsEthereumTx") proto.RegisterType((*MsgEthereumTxResponse)(nil), "stratos.evm.v1.MsgEthereumTxResponse") + proto.RegisterType((*MsgUpdateParams)(nil), "stratos.evm.v1.MsgUpdateParams") + proto.RegisterType((*MsgUpdateParamsResponse)(nil), "stratos.evm.v1.MsgUpdateParamsResponse") } func init() { proto.RegisterFile("stratos/evm/v1/tx.proto", fileDescriptor_8aaa626562d93f7b) } var fileDescriptor_8aaa626562d93f7b = []byte{ - // 891 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0xcf, 0x8b, 0x23, 0x45, - 0x14, 0xc7, 0x53, 0x49, 0x27, 0xe9, 0x54, 0xe2, 0x20, 0xed, 0xc8, 0xf6, 0x64, 0xdd, 0x74, 0x88, - 0xa8, 0x41, 0x48, 0x37, 0x3b, 0x5e, 0x64, 0x6e, 0x93, 0x9d, 0x59, 0x19, 0x98, 0x51, 0x69, 0xb2, - 0xb0, 0x7a, 0x09, 0x35, 0x9d, 0x9a, 0x4a, 0x63, 0xba, 0xab, 0xe9, 0xaa, 0xb4, 0x89, 0x27, 0x11, - 0x04, 0x6f, 0x0a, 0x9e, 0xbc, 0x89, 0x27, 0xf1, 0xe4, 0x61, 0xff, 0x88, 0xc5, 0x8b, 0x8b, 0x5e, - 0xc4, 0x43, 0x94, 0x8c, 0x20, 0xcc, 0xd1, 0x83, 0x67, 0xa9, 0x1f, 0xd9, 0x99, 0x64, 0xc8, 0xa0, - 0x38, 0x03, 0x7b, 0x4a, 0xbd, 0xfe, 0x56, 0xbf, 0x7a, 0xaf, 0xbe, 0x9f, 0xf4, 0x83, 0xb7, 0x18, - 0x4f, 0x11, 0xa7, 0xcc, 0xc3, 0x59, 0xe4, 0x65, 0x77, 0x3d, 0x3e, 0x71, 0x93, 0x94, 0x72, 0x6a, - 0x6d, 0x68, 0xc1, 0xc5, 0x59, 0xe4, 0x66, 0x77, 0xeb, 0x9b, 0x84, 0x12, 0x2a, 0x25, 0x4f, 0xac, - 0xd4, 0xae, 0xfa, 0xad, 0x80, 0xb2, 0x88, 0x32, 0x2f, 0x62, 0x44, 0xbc, 0x1d, 0x31, 0xa2, 0x85, - 0x97, 0x08, 0xa5, 0x64, 0x84, 0x3d, 0x94, 0x84, 0x1e, 0x8a, 0x63, 0xca, 0x11, 0x0f, 0x69, 0xcc, - 0xb4, 0xba, 0xa5, 0x55, 0x19, 0x1d, 0x8f, 0x4f, 0x3c, 0x14, 0x4f, 0x17, 0x92, 0xca, 0xd8, 0x57, - 0x47, 0xa9, 0x40, 0x4b, 0xf6, 0x4a, 0xad, 0xa2, 0x32, 0xa9, 0xb4, 0x3e, 0x07, 0xf0, 0xb9, 0x23, - 0x46, 0xf6, 0xf9, 0x10, 0xa7, 0x78, 0x1c, 0xf5, 0x26, 0x56, 0x1b, 0x1a, 0x03, 0xc4, 0x91, 0x0d, - 0x9a, 0xa0, 0x5d, 0xdd, 0xde, 0x74, 0xd5, 0x81, 0xee, 0xe2, 0x40, 0x77, 0x37, 0x9e, 0xfa, 0x72, - 0x87, 0xb5, 0x05, 0x0d, 0x16, 0x7e, 0x84, 0xed, 0x7c, 0x13, 0xb4, 0x41, 0xb7, 0x78, 0x36, 0x73, - 0x40, 0xc7, 0x97, 0x8f, 0x2c, 0x07, 0x1a, 0x43, 0xc4, 0x86, 0x76, 0xa1, 0x09, 0xda, 0x95, 0x6e, - 0xf5, 0xaf, 0x99, 0x53, 0x4e, 0x47, 0xc9, 0x4e, 0xab, 0xd3, 0xf2, 0xa5, 0x60, 0x59, 0xd0, 0x38, - 0x49, 0x69, 0x64, 0x1b, 0x62, 0x83, 0x2f, 0xd7, 0x3b, 0xc6, 0x67, 0x5f, 0x3b, 0xb9, 0xd6, 0x8f, - 0x79, 0x68, 0x1e, 0x62, 0x82, 0x82, 0x69, 0x6f, 0x62, 0x6d, 0xc2, 0x62, 0x4c, 0xe3, 0x00, 0xcb, - 0x6a, 0x0c, 0x5f, 0x05, 0xd6, 0x03, 0x58, 0x21, 0x48, 0x34, 0x1a, 0x06, 0xea, 0xf4, 0x4a, 0xf7, - 0xcd, 0x5f, 0x67, 0xce, 0xab, 0x24, 0xe4, 0xc3, 0xf1, 0xb1, 0x1b, 0xd0, 0x48, 0xb7, 0xaf, 0x7f, - 0x3a, 0x6c, 0xf0, 0x81, 0xc7, 0xa7, 0x09, 0x66, 0xee, 0x41, 0xcc, 0x7f, 0x7a, 0xd4, 0x81, 0xfa, - 0x76, 0x0e, 0x62, 0xee, 0x9b, 0x04, 0xb1, 0x77, 0x45, 0x26, 0xab, 0x01, 0x0b, 0x04, 0x31, 0x59, - 0xb3, 0xd1, 0xad, 0xcd, 0x67, 0x8e, 0xf9, 0x16, 0x62, 0x87, 0x61, 0x14, 0x72, 0x5f, 0x08, 0xd6, - 0x06, 0xcc, 0x73, 0xaa, 0x2b, 0xce, 0x73, 0x6a, 0x3d, 0x84, 0xc5, 0x0c, 0x8d, 0xc6, 0xd8, 0x2e, - 0xca, 0x12, 0xba, 0xff, 0xbe, 0x84, 0xf9, 0xcc, 0x29, 0xed, 0x46, 0x74, 0x7c, 0xa9, 0x18, 0x95, - 0x50, 0xdc, 0x8e, 0xf4, 0xa0, 0xd4, 0x04, 0xed, 0x9a, 0xbe, 0xed, 0x1a, 0x04, 0x99, 0x5d, 0x96, - 0x0f, 0x40, 0x26, 0xa2, 0xd4, 0x36, 0x55, 0x94, 0x8a, 0x88, 0xd9, 0x15, 0x15, 0xb1, 0x9d, 0x0d, - 0x71, 0x8f, 0x3f, 0x3c, 0xea, 0x94, 0x7a, 0x93, 0x3d, 0xc4, 0x51, 0xeb, 0x2b, 0x03, 0xd6, 0x76, - 0x83, 0x00, 0x33, 0x76, 0x18, 0x32, 0xde, 0x9b, 0x58, 0x21, 0x34, 0x83, 0x21, 0x0a, 0xe3, 0x7e, - 0x38, 0x90, 0x17, 0x5b, 0xe9, 0xbe, 0xfd, 0x9f, 0x6a, 0x2f, 0xdf, 0x13, 0x6f, 0x1f, 0xec, 0x9d, - 0xcd, 0x9c, 0x72, 0xa0, 0x96, 0x2b, 0x7d, 0xe8, 0xc7, 0x83, 0x73, 0x03, 0xf3, 0x6b, 0x0d, 0x2c, - 0x5c, 0xb7, 0x81, 0xc6, 0xd5, 0x06, 0x16, 0x2f, 0x1b, 0x58, 0xba, 0x29, 0x03, 0xcb, 0x17, 0x0c, - 0x7c, 0x0f, 0x9a, 0x48, 0xba, 0x80, 0x99, 0x6d, 0x36, 0x0b, 0xed, 0xea, 0xf6, 0x6d, 0x77, 0xf9, - 0x53, 0xe1, 0x2a, 0x97, 0x7a, 0xe3, 0x64, 0x84, 0xbb, 0xcd, 0xc7, 0x33, 0x27, 0x77, 0x36, 0x73, - 0x20, 0x7a, 0x6a, 0xdd, 0x77, 0xbf, 0x39, 0xf0, 0xdc, 0x48, 0xff, 0x69, 0x3a, 0xc5, 0x46, 0x65, - 0x89, 0x0d, 0xb8, 0xc4, 0x46, 0x75, 0x1d, 0x1b, 0x7f, 0x1b, 0xb0, 0xb6, 0x37, 0x8d, 0x51, 0x14, - 0x06, 0xf7, 0x31, 0x7e, 0x16, 0xd8, 0x78, 0x08, 0xab, 0x82, 0x0d, 0x1e, 0x26, 0xfd, 0x00, 0x25, - 0xff, 0x9b, 0x0e, 0x01, 0x5a, 0x2f, 0x4c, 0xee, 0xa1, 0x64, 0x91, 0xf9, 0x04, 0x63, 0x99, 0xd9, - 0xb8, 0x86, 0xcc, 0xf7, 0x31, 0x16, 0x99, 0x35, 0x78, 0xc5, 0xab, 0xc1, 0x2b, 0x5d, 0x06, 0xaf, - 0x7c, 0x53, 0xe0, 0x99, 0x6b, 0xc0, 0xab, 0xdc, 0x00, 0x78, 0x70, 0x09, 0xbc, 0xea, 0x12, 0x78, - 0xb5, 0x75, 0xe0, 0xb5, 0x60, 0x7d, 0x7f, 0xc2, 0x71, 0xcc, 0x42, 0x1a, 0xbf, 0x93, 0xc8, 0x11, - 0x77, 0x3e, 0x84, 0xf4, 0x28, 0xf8, 0x06, 0xc0, 0x17, 0x97, 0x86, 0x93, 0x8f, 0x59, 0x42, 0x63, - 0x26, 0xdb, 0x94, 0xf3, 0x05, 0xa8, 0xf1, 0x21, 0x47, 0xca, 0x6b, 0xd0, 0x18, 0x51, 0xc2, 0xec, - 0xbc, 0x6c, 0xf1, 0x85, 0xd5, 0x16, 0x0f, 0x29, 0xf1, 0xe5, 0x06, 0xeb, 0x79, 0x58, 0x48, 0x31, - 0x97, 0x64, 0xd5, 0x7c, 0xb1, 0xb4, 0xb6, 0xa0, 0x99, 0x45, 0x7d, 0x9c, 0xa6, 0x34, 0xd5, 0xdf, - 0xf7, 0x72, 0x16, 0xed, 0x8b, 0x50, 0x48, 0x02, 0x9a, 0x31, 0xc3, 0x03, 0xe5, 0xaf, 0x5f, 0x26, - 0x88, 0x3d, 0x60, 0x78, 0xa0, 0x8a, 0xdc, 0xfe, 0x14, 0xc0, 0xc2, 0x11, 0x23, 0xd6, 0x87, 0x10, - 0x5e, 0x98, 0xa2, 0x77, 0x56, 0x8f, 0x5f, 0xea, 0xa3, 0xfe, 0xca, 0x95, 0xf2, 0xa2, 0xcd, 0xd6, - 0xcb, 0x9f, 0xfc, 0xfc, 0xc7, 0x97, 0xf9, 0x3b, 0xad, 0xdb, 0xde, 0xea, 0x00, 0xd7, 0x7b, 0xfb, - 0x7c, 0x52, 0x2f, 0x7e, 0xfc, 0xe7, 0xf7, 0xaf, 0x83, 0xee, 0xd1, 0xb7, 0xf3, 0x06, 0x78, 0x3c, - 0x6f, 0x80, 0x27, 0xf3, 0x06, 0xf8, 0x7d, 0xde, 0x00, 0x5f, 0x9c, 0x36, 0x72, 0x4f, 0x4e, 0x1b, - 0xb9, 0x5f, 0x4e, 0x1b, 0xb9, 0xf7, 0xbd, 0x0b, 0x78, 0xe9, 0x5c, 0x31, 0xe6, 0x8b, 0x65, 0x47, - 0xfe, 0x25, 0xbd, 0x89, 0x4c, 0x2f, 0x59, 0x3b, 0x2e, 0xc9, 0x81, 0xff, 0xc6, 0x3f, 0x01, 0x00, - 0x00, 0xff, 0xff, 0x25, 0x8f, 0x86, 0x32, 0xe7, 0x08, 0x00, 0x00, + // 963 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xbf, 0x6f, 0x23, 0xc5, + 0x17, 0xf7, 0xd8, 0xeb, 0x5f, 0xcf, 0xfe, 0xe6, 0x8b, 0x96, 0x40, 0x36, 0x46, 0x78, 0x2d, 0x4b, + 0x70, 0xd6, 0x49, 0xde, 0xd5, 0x05, 0x84, 0x50, 0xba, 0xf8, 0x92, 0x43, 0x91, 0x12, 0x38, 0x2d, + 0x8e, 0x14, 0x68, 0xa2, 0xc9, 0x7a, 0x32, 0x5e, 0xe1, 0xdd, 0x59, 0xed, 0x8c, 0x57, 0x36, 0x15, + 0xa2, 0xa2, 0x3b, 0x5a, 0x3a, 0x44, 0x85, 0xa8, 0xae, 0x48, 0xc5, 0x5f, 0x70, 0xa2, 0xe1, 0x74, + 0x15, 0xa2, 0x30, 0xc8, 0x29, 0x4e, 0x4a, 0x49, 0x41, 0x8d, 0x66, 0x76, 0x1d, 0xc7, 0x0e, 0x09, + 0x20, 0x2e, 0x12, 0xd5, 0xce, 0x9b, 0xf7, 0xe6, 0x33, 0x6f, 0xde, 0xe7, 0x33, 0xf3, 0x16, 0xd6, + 0xb8, 0x88, 0xb0, 0x60, 0xdc, 0x26, 0xb1, 0x6f, 0xc7, 0xf7, 0x6c, 0x31, 0xb2, 0xc2, 0x88, 0x09, + 0xa6, 0xaf, 0xa4, 0x0e, 0x8b, 0xc4, 0xbe, 0x15, 0xdf, 0xab, 0xad, 0x52, 0x46, 0x99, 0x72, 0xd9, + 0x72, 0x94, 0x44, 0xd5, 0xd6, 0x5d, 0xc6, 0x7d, 0xc6, 0x8f, 0x12, 0x47, 0x62, 0xa4, 0xae, 0xb5, + 0xc4, 0xb2, 0x7d, 0x4e, 0x25, 0xb0, 0xcf, 0xe9, 0x6c, 0x0d, 0x65, 0x8c, 0x0e, 0x88, 0xad, 0xac, + 0xe3, 0xe1, 0x89, 0x8d, 0x83, 0x71, 0xea, 0x32, 0x96, 0xb2, 0x91, 0x7b, 0x2b, 0x4f, 0xf3, 0x11, + 0x82, 0xff, 0xed, 0x73, 0xba, 0x23, 0xfa, 0x24, 0x22, 0x43, 0xbf, 0x3b, 0xd2, 0x5b, 0xa0, 0xf5, + 0xb0, 0xc0, 0x06, 0x6a, 0xa0, 0x56, 0x65, 0x63, 0xd5, 0x4a, 0x50, 0xad, 0x19, 0xaa, 0xb5, 0x15, + 0x8c, 0x1d, 0x15, 0xa1, 0xaf, 0x83, 0xc6, 0xbd, 0x4f, 0x89, 0x91, 0x6d, 0xa0, 0x16, 0xea, 0xe4, + 0xcf, 0x27, 0x26, 0x6a, 0x3b, 0x6a, 0x4a, 0x37, 0x41, 0xeb, 0x63, 0xde, 0x37, 0x72, 0x0d, 0xd4, + 0x2a, 0x77, 0x2a, 0xbf, 0x4d, 0xcc, 0x62, 0x34, 0x08, 0x37, 0x9b, 0xed, 0xa6, 0xa3, 0x1c, 0xba, + 0x0e, 0xda, 0x49, 0xc4, 0x7c, 0x43, 0x93, 0x01, 0x8e, 0x1a, 0x6f, 0x6a, 0x5f, 0x7c, 0x6d, 0x66, + 0x9a, 0x3f, 0x66, 0xa1, 0xb4, 0x47, 0x28, 0x76, 0xc7, 0xdd, 0x91, 0xbe, 0x0a, 0xf9, 0x80, 0x05, + 0x2e, 0x51, 0xd9, 0x68, 0x4e, 0x62, 0xe8, 0x07, 0x50, 0xa6, 0x58, 0x16, 0xc7, 0x73, 0x93, 0xdd, + 0xcb, 0x9d, 0x77, 0x7f, 0x9e, 0x98, 0x6f, 0x52, 0x4f, 0xf4, 0x87, 0xc7, 0x96, 0xcb, 0xfc, 0xb4, + 0x64, 0xe9, 0xa7, 0xcd, 0x7b, 0x9f, 0xd8, 0x62, 0x1c, 0x12, 0x6e, 0xed, 0x06, 0xe2, 0xd9, 0x69, + 0x1b, 0xd2, 0x8a, 0xee, 0x06, 0xc2, 0x29, 0x51, 0xcc, 0x1f, 0x4a, 0x24, 0xbd, 0x0e, 0x39, 0x8a, + 0xb9, 0xca, 0x59, 0xeb, 0x54, 0xa7, 0x13, 0xb3, 0xf4, 0x1e, 0xe6, 0x7b, 0x9e, 0xef, 0x09, 0x47, + 0x3a, 0xf4, 0x15, 0xc8, 0x0a, 0x96, 0x66, 0x9c, 0x15, 0x4c, 0x3f, 0x84, 0x7c, 0x8c, 0x07, 0x43, + 0x62, 0xe4, 0x55, 0x0a, 0x9d, 0xbf, 0x9f, 0xc2, 0x74, 0x62, 0x16, 0xb6, 0x7c, 0x36, 0xbc, 0x92, + 0x4c, 0x02, 0x28, 0xab, 0xa3, 0x38, 0x28, 0x34, 0x50, 0xab, 0x9a, 0x56, 0xbb, 0x0a, 0x28, 0x36, + 0x8a, 0x6a, 0x02, 0xc5, 0xd2, 0x8a, 0x8c, 0x52, 0x62, 0x45, 0xd2, 0xe2, 0x46, 0x39, 0xb1, 0xf8, + 0xe6, 0x8a, 0xac, 0xe3, 0x0f, 0xa7, 0xed, 0x42, 0x77, 0xb4, 0x8d, 0x05, 0x6e, 0x7e, 0xa5, 0x41, + 0x75, 0xcb, 0x75, 0x09, 0xe7, 0x7b, 0x1e, 0x17, 0xdd, 0x91, 0xee, 0x41, 0xc9, 0xed, 0x63, 0x2f, + 0x38, 0xf2, 0x7a, 0xaa, 0xb0, 0xe5, 0xce, 0xfb, 0xff, 0x28, 0xf7, 0xe2, 0x7d, 0xb9, 0x7a, 0x77, + 0xfb, 0x7c, 0x62, 0x16, 0xdd, 0x64, 0xb8, 0x74, 0x8e, 0x74, 0xba, 0x37, 0x27, 0x30, 0x7b, 0x2d, + 0x81, 0xb9, 0x17, 0x4d, 0xa0, 0x76, 0x33, 0x81, 0xf9, 0xab, 0x04, 0x16, 0x6e, 0x8b, 0xc0, 0xe2, + 0x25, 0x02, 0x3f, 0x82, 0x12, 0x56, 0x2c, 0x10, 0x6e, 0x94, 0x1a, 0xb9, 0x56, 0x65, 0xe3, 0x35, + 0x6b, 0xf1, 0x31, 0xb0, 0x12, 0x96, 0xba, 0xc3, 0x70, 0x40, 0x3a, 0x8d, 0x27, 0x13, 0x33, 0x73, + 0x3e, 0x31, 0x01, 0x5f, 0x50, 0xf7, 0xdd, 0x2f, 0x26, 0xcc, 0x89, 0x74, 0x2e, 0xe0, 0x12, 0x6d, + 0x94, 0x17, 0xb4, 0x01, 0x0b, 0xda, 0xa8, 0x5c, 0xa7, 0x8d, 0xdf, 0x35, 0xa8, 0x6e, 0x8f, 0x03, + 0xec, 0x7b, 0xee, 0x03, 0x42, 0xfe, 0x0b, 0xda, 0x38, 0x84, 0x8a, 0xd4, 0x86, 0xf0, 0xc2, 0x23, + 0x17, 0x87, 0xff, 0x5a, 0x1d, 0x52, 0x68, 0x5d, 0x2f, 0xbc, 0x8f, 0xc3, 0x19, 0xf2, 0x09, 0x21, + 0x0a, 0x59, 0x7b, 0x01, 0xc8, 0x0f, 0x08, 0x91, 0xc8, 0xa9, 0xf0, 0xf2, 0x37, 0x0b, 0xaf, 0x70, + 0x55, 0x78, 0xc5, 0xdb, 0x12, 0x5e, 0xe9, 0x1a, 0xe1, 0x95, 0x6f, 0x41, 0x78, 0xb0, 0x20, 0xbc, + 0xca, 0x82, 0xf0, 0xaa, 0xd7, 0x09, 0xaf, 0x09, 0xb5, 0x9d, 0x91, 0x20, 0x01, 0xf7, 0x58, 0xf0, + 0x41, 0x28, 0x3c, 0x16, 0xf0, 0x79, 0x13, 0x4a, 0x5b, 0xc1, 0x37, 0x08, 0x5e, 0x59, 0x68, 0x4e, + 0x0e, 0xe1, 0x21, 0x0b, 0xb8, 0x3a, 0xa6, 0xea, 0x2f, 0x28, 0x69, 0x1f, 0xaa, 0xa5, 0xdc, 0x01, + 0x6d, 0xc0, 0x28, 0x37, 0xb2, 0xea, 0x88, 0x2f, 0x2f, 0x1f, 0x71, 0x8f, 0x51, 0x47, 0x05, 0xe8, + 0x2f, 0x41, 0x2e, 0x22, 0x42, 0x29, 0xab, 0xea, 0xc8, 0xa1, 0xbe, 0x0e, 0xa5, 0xd8, 0x3f, 0x22, + 0x51, 0xc4, 0xa2, 0xf4, 0x7d, 0x2f, 0xc6, 0xfe, 0x8e, 0x34, 0xa5, 0x4b, 0x8a, 0x66, 0xc8, 0x49, + 0x2f, 0xe1, 0xd7, 0x29, 0x52, 0xcc, 0x0f, 0x38, 0xe9, 0xa5, 0x49, 0x3e, 0x42, 0xf0, 0xff, 0x7d, + 0x4e, 0x0f, 0xc2, 0x1e, 0x16, 0xe4, 0x21, 0x8e, 0xb0, 0xcf, 0xf5, 0x77, 0xa0, 0x8c, 0x87, 0xa2, + 0xcf, 0x22, 0x4f, 0x8c, 0xd3, 0x5b, 0x64, 0x3c, 0x3b, 0x6d, 0xaf, 0xa6, 0x7c, 0x6d, 0xf5, 0x7a, + 0x11, 0xe1, 0xfc, 0x43, 0x11, 0x79, 0x01, 0x75, 0xe6, 0xa1, 0xfa, 0xdb, 0x50, 0x08, 0x15, 0x82, + 0xba, 0x12, 0x95, 0x8d, 0x57, 0x97, 0x0f, 0x91, 0xe0, 0x77, 0x34, 0x49, 0x91, 0x93, 0xc6, 0x6e, + 0xae, 0x7c, 0xfe, 0xfc, 0xf1, 0xdd, 0x39, 0x4a, 0x73, 0x1d, 0xd6, 0x96, 0x12, 0x9a, 0xd5, 0x6d, + 0xe3, 0x7b, 0x04, 0xb9, 0x7d, 0x4e, 0x75, 0x07, 0xe0, 0x52, 0xcb, 0x7f, 0x7d, 0x79, 0x9b, 0x85, + 0xa2, 0xd7, 0xde, 0xb8, 0xd1, 0x7d, 0xc1, 0xc9, 0x21, 0x54, 0x17, 0x8a, 0x60, 0xfe, 0xc9, 0xb2, + 0xcb, 0x01, 0xb5, 0x3b, 0x7f, 0x11, 0x30, 0x43, 0xae, 0xe5, 0x3f, 0x7b, 0xfe, 0xf8, 0x2e, 0xea, + 0xec, 0x7f, 0x3b, 0xad, 0xa3, 0x27, 0xd3, 0x3a, 0x7a, 0x3a, 0xad, 0xa3, 0x5f, 0xa7, 0x75, 0xf4, + 0xe5, 0x59, 0x3d, 0xf3, 0xf4, 0xac, 0x9e, 0xf9, 0xe9, 0xac, 0x9e, 0xf9, 0xd8, 0xbe, 0x74, 0x81, + 0x52, 0xdc, 0x80, 0x88, 0xd9, 0xb0, 0xad, 0x1e, 0x1d, 0x7b, 0xa4, 0xfe, 0x80, 0xd4, 0x6d, 0x3a, + 0x2e, 0xa8, 0x5f, 0x9a, 0xb7, 0xfe, 0x08, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x31, 0xb7, 0xab, 0xab, + 0x09, 0x00, 0x00, } func (this *MsgEthereumTx) Equal(that interface{}) bool { @@ -713,6 +813,54 @@ func (this *MsgEthereumTxResponse) Equal(that interface{}) bool { } return true } +func (this *MsgUpdateParams) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateParams) + if !ok { + that2, ok := that.(MsgUpdateParams) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Authority != that1.Authority { + return false + } + if !this.Params.Equal(&that1.Params) { + return false + } + return true +} +func (this *MsgUpdateParamsResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateParamsResponse) + if !ok { + that2, ok := that.(MsgUpdateParamsResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} // Reference imports to suppress errors if they are not otherwise used. var _ context.Context @@ -728,6 +876,9 @@ const _ = grpc.SupportPackageIsVersion4 type MsgClient interface { // EthereumTx defines a method submitting Ethereum transactions. EthereumTx(ctx context.Context, in *MsgEthereumTx, opts ...grpc.CallOption) (*MsgEthereumTxResponse, error) + // UpdateParams defined a governance operation for updating the x/evm module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) } type msgClient struct { @@ -747,10 +898,22 @@ func (c *msgClient) EthereumTx(ctx context.Context, in *MsgEthereumTx, opts ...g return out, nil } +func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) { + out := new(MsgUpdateParamsResponse) + err := c.cc.Invoke(ctx, "/stratos.evm.v1.Msg/UpdateParams", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // EthereumTx defines a method submitting Ethereum transactions. EthereumTx(context.Context, *MsgEthereumTx) (*MsgEthereumTxResponse, error) + // UpdateParams defined a governance operation for updating the x/evm module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -760,6 +923,9 @@ type UnimplementedMsgServer struct { func (*UnimplementedMsgServer) EthereumTx(ctx context.Context, req *MsgEthereumTx) (*MsgEthereumTxResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method EthereumTx not implemented") } +func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -783,6 +949,24 @@ func _Msg_EthereumTx_Handler(srv interface{}, ctx context.Context, dec func(inte return interceptor(ctx, in, info, handler) } +func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateParams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/stratos.evm.v1.Msg/UpdateParams", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "stratos.evm.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -791,6 +975,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "EthereumTx", Handler: _Msg_EthereumTx_Handler, }, + { + MethodName: "UpdateParams", + Handler: _Msg_UpdateParams_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "stratos/evm/v1/tx.proto", @@ -1277,6 +1465,69 @@ func (m *MsgEthereumTxResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *MsgUpdateParams) 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 *MsgUpdateParams) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParams) 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 = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintTx(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateParamsResponse) 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 *MsgUpdateParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParamsResponse) 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 @@ -1504,6 +1755,30 @@ func (m *MsgEthereumTxResponse) Size() (n int) { return n } +func (m *MsgUpdateParams) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.Params.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgUpdateParamsResponse) 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 } @@ -3082,6 +3357,171 @@ func (m *MsgEthereumTxResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgUpdateParams) 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: MsgUpdateParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParams: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Authority", 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.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + 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 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.Params.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 *MsgUpdateParamsResponse) 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: MsgUpdateParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParamsResponse: 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/x/pot/keeper/msg_server.go b/x/pot/keeper/msg_server.go index 351d8ca4..17382baf 100644 --- a/x/pot/keeper/msg_server.go +++ b/x/pot/keeper/msg_server.go @@ -4,15 +4,17 @@ import ( "bytes" "context" "fmt" + "strconv" "github.com/cometbft/cometbft/crypto/tmhash" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/crypto" "github.com/stratosnet/stratos-chain/crypto/bls" - stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/pot/types" ) @@ -88,10 +90,16 @@ func (k msgServer) HandleMsgVolumeReport(goCtx context.Context, msg *types.MsgVo return nil, errors.Wrap(types.ErrVolumeReport, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventVolumeReport{ - ReportReference: msg.GetReportReference(), - Epoch: msg.Epoch, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventVolumeReport{ + ReportReference: msg.GetReportReference(), + Epoch: msg.Epoch.String(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetReporterOwner(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -114,11 +122,17 @@ func (k msgServer) HandleMsgWithdraw(goCtx context.Context, msg *types.MsgWithdr return &types.MsgWithdrawResponse{}, errors.Wrap(types.ErrWithdrawFailure, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventWithdraw{ - Amount: msg.GetAmount(), - WalletAddress: msg.GetWalletAddress(), - TargetAddress: msg.GetTargetAddress(), - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventWithdraw{ + Amount: msg.GetAmount().String(), + WalletAddress: msg.GetWalletAddress(), + TargetAddress: msg.GetTargetAddress(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetWalletAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -137,9 +151,15 @@ func (k msgServer) HandleMsgFoundationDeposit(goCtx context.Context, msg *types. return &types.MsgFoundationDepositResponse{}, errors.Wrap(types.ErrFoundationDepositFailure, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventFoundationDeposit{ - Amount: msg.GetAmount(), - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventFoundationDeposit{ + Amount: msg.GetAmount().String(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetFrom(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -186,16 +206,46 @@ func (k msgServer) HandleMsgSlashingResourceNode(goCtx context.Context, msg *typ return &types.MsgSlashingResourceNodeResponse{}, errors.Wrap(types.ErrSlashingResourceNodeFailure, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventSlashing{ - WalletAddress: msg.GetWalletAddress(), - NetworkAddress: msg.GetNetworkAddress(), - Amount: tokenAmt, - SlashingType: nodeType.String(), - Suspend: msg.GetSuspend(), - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventSlashing{ + WalletAddress: msg.GetWalletAddress(), + NetworkAddress: msg.GetNetworkAddress(), + Amount: tokenAmt.String(), + SlashingType: nodeType.String(), + Suspend: strconv.FormatBool(msg.GetSuspend()), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetWalletAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } return &types.MsgSlashingResourceNodeResponse{}, nil } + +// UpdateParams updates the module parameters +func (k msgServer) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParams) (*types.MsgUpdateParamsResponse, error) { + if k.authority != msg.Authority { + return nil, errors.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", k.authority, msg.Authority) + } + + ctx := sdk.UnwrapSDKContext(goCtx) + err := k.SetParams(ctx, msg.Params) + if err != nil { + return nil, err + } + + err = ctx.EventManager().EmitTypedEvent(&types.EventMessage{ + Module: types.ModuleName, + Sender: msg.Authority, + Action: sdk.MsgTypeURL(msg), + }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + + return &types.MsgUpdateParamsResponse{}, nil +} diff --git a/x/pot/keeper/params.go b/x/pot/keeper/params.go index 7a5ce4e6..1820880c 100644 --- a/x/pot/keeper/params.go +++ b/x/pot/keeper/params.go @@ -8,10 +8,16 @@ import ( ) // SetParams sets the params on the store -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { + if err := params.Validate(); err != nil { + return err + } + store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshal(¶ms) store.Set(types.ParamsKey, bz) + + return nil } // GetParams returns the params from the store diff --git a/x/pot/types/codec.go b/x/pot/types/codec.go index e68563b2..7c775bfa 100644 --- a/x/pot/types/codec.go +++ b/x/pot/types/codec.go @@ -19,6 +19,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(MsgWithdraw{}, "pot/WithdrawTx", nil) cdc.RegisterConcrete(MsgFoundationDeposit{}, "pot/FoundationDepositTx", nil) cdc.RegisterConcrete(MsgSlashingResourceNode{}, "pot/SlashingResourceNodeTx", nil) + cdc.RegisterConcrete(MsgUpdateParams{}, "pot/UpdateParamsTx", nil) } // RegisterInterfaces registers the x/register interfaces types with the interface registry @@ -28,6 +29,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgWithdraw{}, &MsgFoundationDeposit{}, &MsgSlashingResourceNode{}, + &MsgUpdateParams{}, ) registry.RegisterImplementations( (*authz.Authorization)(nil), diff --git a/x/pot/types/event.pb.go b/x/pot/types/event.pb.go index 0cc62222..e088aa6f 100644 --- a/x/pot/types/event.pb.go +++ b/x/pot/types/event.pb.go @@ -5,14 +5,7 @@ package types import ( fmt "fmt" - _ "github.com/cosmos/cosmos-proto" - _ "github.com/cosmos/cosmos-sdk/codec/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/x/staking/types" - _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - _ "google.golang.org/protobuf/types/known/timestamppb" io "io" math "math" math_bits "math/bits" @@ -31,8 +24,8 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // EventVolumeReport is emitted on Msg/MsgVolumeReport type EventVolumeReport struct { - ReportReference string `protobuf:"bytes,1,opt,name=report_reference,json=reportReference,proto3" json:"report_reference,omitempty"` - Epoch github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=epoch,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"epoch"` + ReportReference string `protobuf:"bytes,1,opt,name=report_reference,json=reportReference,proto3" json:"report_reference,omitempty"` + Epoch string `protobuf:"bytes,2,opt,name=epoch,proto3" json:"epoch,omitempty"` } func (m *EventVolumeReport) Reset() { *m = EventVolumeReport{} } @@ -75,11 +68,18 @@ func (m *EventVolumeReport) GetReportReference() string { return "" } +func (m *EventVolumeReport) GetEpoch() string { + if m != nil { + return m.Epoch + } + return "" +} + // EventWithdraw is emitted on Msg/MsgWithdraw type EventWithdraw struct { - Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` - WalletAddress string `protobuf:"bytes,2,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` - TargetAddress string `protobuf:"bytes,3,opt,name=target_address,json=targetAddress,proto3" json:"target_address,omitempty"` + Amount string `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + WalletAddress string `protobuf:"bytes,2,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` + TargetAddress string `protobuf:"bytes,3,opt,name=target_address,json=targetAddress,proto3" json:"target_address,omitempty"` } func (m *EventWithdraw) Reset() { *m = EventWithdraw{} } @@ -115,11 +115,11 @@ func (m *EventWithdraw) XXX_DiscardUnknown() { var xxx_messageInfo_EventWithdraw proto.InternalMessageInfo -func (m *EventWithdraw) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { +func (m *EventWithdraw) GetAmount() string { if m != nil { return m.Amount } - return nil + return "" } func (m *EventWithdraw) GetWalletAddress() string { @@ -138,7 +138,7 @@ func (m *EventWithdraw) GetTargetAddress() string { // EventFoundationDeposit is emitted on Msg/MsgFoundationDeposit type EventFoundationDeposit struct { - Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` + Amount string `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` } func (m *EventFoundationDeposit) Reset() { *m = EventFoundationDeposit{} } @@ -174,20 +174,20 @@ func (m *EventFoundationDeposit) XXX_DiscardUnknown() { var xxx_messageInfo_EventFoundationDeposit proto.InternalMessageInfo -func (m *EventFoundationDeposit) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { +func (m *EventFoundationDeposit) GetAmount() string { if m != nil { return m.Amount } - return nil + return "" } // EventSlashing is emitted on Msg/MsgSlashingResourceNode type EventSlashing struct { - WalletAddress string `protobuf:"bytes,1,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` - NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` - Amount github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=amount,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"amount"` - SlashingType string `protobuf:"bytes,4,opt,name=slashing_type,json=slashingType,proto3" json:"slashing_type,omitempty"` - Suspend bool `protobuf:"varint,5,opt,name=suspend,proto3" json:"suspend,omitempty"` + WalletAddress string `protobuf:"bytes,1,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + SlashingType string `protobuf:"bytes,4,opt,name=slashing_type,json=slashingType,proto3" json:"slashing_type,omitempty"` + Suspend string `protobuf:"bytes,5,opt,name=suspend,proto3" json:"suspend,omitempty"` } func (m *EventSlashing) Reset() { *m = EventSlashing{} } @@ -237,6 +237,13 @@ func (m *EventSlashing) GetNetworkAddress() string { return "" } +func (m *EventSlashing) GetAmount() string { + if m != nil { + return m.Amount + } + return "" +} + func (m *EventSlashing) GetSlashingType() string { if m != nil { return m.SlashingType @@ -244,11 +251,75 @@ func (m *EventSlashing) GetSlashingType() string { return "" } -func (m *EventSlashing) GetSuspend() bool { +func (m *EventSlashing) GetSuspend() string { if m != nil { return m.Suspend } - return false + return "" +} + +// EventMessage +type EventMessage struct { + // module which emits the event + Module string `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"` + // sender of the message + Sender string `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` + // tx_type is the type of the message + Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` +} + +func (m *EventMessage) Reset() { *m = EventMessage{} } +func (m *EventMessage) String() string { return proto.CompactTextString(m) } +func (*EventMessage) ProtoMessage() {} +func (*EventMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_4848852d1aafb62a, []int{4} +} +func (m *EventMessage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventMessage.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 *EventMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventMessage.Merge(m, src) +} +func (m *EventMessage) XXX_Size() int { + return m.Size() +} +func (m *EventMessage) XXX_DiscardUnknown() { + xxx_messageInfo_EventMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_EventMessage proto.InternalMessageInfo + +func (m *EventMessage) GetModule() string { + if m != nil { + return m.Module + } + return "" +} + +func (m *EventMessage) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventMessage) GetAction() string { + if m != nil { + return m.Action + } + return "" } func init() { @@ -256,46 +327,38 @@ func init() { proto.RegisterType((*EventWithdraw)(nil), "stratos.pot.v1.EventWithdraw") proto.RegisterType((*EventFoundationDeposit)(nil), "stratos.pot.v1.EventFoundationDeposit") proto.RegisterType((*EventSlashing)(nil), "stratos.pot.v1.EventSlashing") + proto.RegisterType((*EventMessage)(nil), "stratos.pot.v1.EventMessage") } func init() { proto.RegisterFile("stratos/pot/v1/event.proto", fileDescriptor_4848852d1aafb62a) } var fileDescriptor_4848852d1aafb62a = []byte{ - // 534 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0x8e, 0x1b, 0x5a, 0x60, 0x21, 0x29, 0x58, 0x15, 0x72, 0x73, 0x70, 0xa2, 0x80, 0x50, 0x38, - 0xc4, 0x4b, 0xe0, 0x8a, 0x84, 0x1a, 0x7e, 0xa4, 0x5c, 0xdd, 0x0a, 0x24, 0x2e, 0xd1, 0xc6, 0xde, - 0x3a, 0xab, 0xd8, 0x3b, 0xd6, 0xee, 0x38, 0x21, 0x07, 0xde, 0x01, 0xf1, 0x14, 0x88, 0x73, 0x1f, - 0xa2, 0xc7, 0xaa, 0x27, 0xc4, 0xa1, 0xa0, 0xe4, 0x1d, 0x38, 0x23, 0xdb, 0xeb, 0xaa, 0x42, 0x48, - 0x14, 0x09, 0xf5, 0xe4, 0x99, 0xf9, 0x66, 0x3e, 0xcf, 0xf7, 0x79, 0xbd, 0xa4, 0xa5, 0x51, 0x31, - 0x04, 0x4d, 0x53, 0x40, 0x3a, 0x1f, 0x50, 0x3e, 0xe7, 0x12, 0xbd, 0x54, 0x01, 0x82, 0xdd, 0x34, - 0x98, 0x97, 0x02, 0x7a, 0xf3, 0x41, 0x6b, 0x27, 0x82, 0x08, 0x0a, 0x88, 0xe6, 0x51, 0xd9, 0xd5, - 0xda, 0x0d, 0x40, 0x27, 0xa0, 0xc7, 0x25, 0x50, 0x26, 0x06, 0x72, 0xcb, 0x8c, 0x4e, 0x98, 0xe6, - 0x74, 0x3e, 0x98, 0x70, 0x64, 0x03, 0x1a, 0x80, 0x90, 0xd5, 0x68, 0x04, 0x10, 0xc5, 0x9c, 0x16, - 0xd9, 0x24, 0x3b, 0xa4, 0x4c, 0x2e, 0x0d, 0xd4, 0xfe, 0x1d, 0x42, 0x91, 0x70, 0x8d, 0x2c, 0x49, - 0x4d, 0xc3, 0x03, 0xc3, 0xad, 0x91, 0xcd, 0x84, 0x8c, 0xce, 0xe9, 0x4d, 0x5e, 0x76, 0x75, 0x3f, - 0x59, 0xe4, 0xee, 0xab, 0x5c, 0xd2, 0x1b, 0x88, 0xb3, 0x84, 0xfb, 0x3c, 0x05, 0x85, 0xf6, 0x23, - 0x72, 0x47, 0x15, 0xd1, 0x58, 0xf1, 0x43, 0xae, 0xb8, 0x0c, 0xb8, 0x63, 0x75, 0xac, 0xde, 0x4d, - 0x7f, 0xbb, 0xac, 0xfb, 0x55, 0xd9, 0xf6, 0xc9, 0x26, 0x4f, 0x21, 0x98, 0x3a, 0x1b, 0x39, 0x3e, - 0x7c, 0x76, 0x7c, 0xd6, 0xae, 0x7d, 0x3b, 0x6b, 0x3f, 0x8c, 0x04, 0x4e, 0xb3, 0x89, 0x17, 0x40, - 0x62, 0x24, 0x9b, 0x47, 0x5f, 0x87, 0x33, 0x8a, 0xcb, 0x94, 0x6b, 0x6f, 0x24, 0xf1, 0xf4, 0xa8, - 0x4f, 0x8c, 0x23, 0x23, 0x89, 0x7e, 0x49, 0xd5, 0xfd, 0x69, 0x91, 0x46, 0xb1, 0xd4, 0x5b, 0x81, - 0xd3, 0x50, 0xb1, 0x85, 0x1d, 0x90, 0x2d, 0x96, 0x40, 0x26, 0xd1, 0xb1, 0x3a, 0xf5, 0xde, 0xad, - 0x27, 0xbb, 0x9e, 0x99, 0xca, 0x9d, 0xf3, 0x8c, 0x34, 0xef, 0x05, 0x08, 0x39, 0x7c, 0x9c, 0x6f, - 0xf0, 0xe5, 0x7b, 0xbb, 0x77, 0x89, 0x0d, 0xf2, 0x01, 0xed, 0x1b, 0x6a, 0xfb, 0x39, 0x69, 0x2e, - 0x58, 0x1c, 0x73, 0x1c, 0xb3, 0x30, 0x54, 0x5c, 0x6b, 0xa3, 0xc9, 0x39, 0x3d, 0xea, 0xef, 0x98, - 0xf7, 0xed, 0x95, 0xc8, 0x3e, 0x2a, 0x21, 0x23, 0xbf, 0x51, 0xf6, 0x9b, 0x62, 0x4e, 0x80, 0x4c, - 0x45, 0x17, 0x08, 0xea, 0x7f, 0x23, 0x28, 0xfb, 0x4d, 0xb1, 0xfb, 0x81, 0xdc, 0x2b, 0x74, 0xbf, - 0x86, 0x4c, 0x86, 0x0c, 0x05, 0xc8, 0x97, 0x3c, 0x05, 0x2d, 0xf0, 0x4a, 0x0c, 0xe8, 0x7e, 0xde, - 0x30, 0xbe, 0xef, 0xc7, 0x4c, 0x4f, 0x85, 0x8c, 0xfe, 0x60, 0x89, 0xf5, 0x6f, 0x96, 0xec, 0x91, - 0x6d, 0xc9, 0x71, 0x01, 0x6a, 0x76, 0x69, 0x53, 0x9b, 0x66, 0xa0, 0xa2, 0x38, 0x38, 0x97, 0x5e, - 0xff, 0x0f, 0x47, 0xac, 0xfa, 0xd8, 0xf7, 0x49, 0x43, 0x1b, 0x95, 0xe3, 0xbc, 0xd7, 0xb9, 0x56, - 0x9c, 0xef, 0xdb, 0x55, 0xf1, 0x60, 0x99, 0x72, 0xdb, 0x21, 0xd7, 0x75, 0xa6, 0x53, 0x2e, 0x43, - 0x67, 0xb3, 0x63, 0xf5, 0x6e, 0xf8, 0x55, 0x3a, 0x1c, 0x1d, 0xaf, 0x5c, 0xeb, 0x64, 0xe5, 0x5a, - 0x3f, 0x56, 0xae, 0xf5, 0x71, 0xed, 0xd6, 0x4e, 0xd6, 0x6e, 0xed, 0xeb, 0xda, 0xad, 0xbd, 0xa3, - 0x17, 0xd6, 0x32, 0xf7, 0x83, 0xe4, 0x58, 0x85, 0xfd, 0x60, 0xca, 0x84, 0xa4, 0xef, 0x8b, 0xeb, - 0xa4, 0xd8, 0x71, 0xb2, 0x55, 0xfc, 0x89, 0x4f, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0xc1, 0xb2, - 0x6f, 0xff, 0x6a, 0x04, 0x00, 0x00, + // 390 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x52, 0xcb, 0x4e, 0xdb, 0x40, + 0x14, 0x8d, 0x9b, 0x26, 0x55, 0x47, 0x79, 0xb4, 0x56, 0x15, 0x59, 0x5d, 0x58, 0x95, 0xab, 0xaa, + 0xb0, 0xc0, 0x26, 0xe2, 0x0b, 0x40, 0x80, 0xc4, 0x82, 0x4d, 0x88, 0x82, 0xc4, 0x26, 0x9a, 0xd8, + 0x17, 0xdb, 0xc2, 0x9e, 0x19, 0xcd, 0x5c, 0x27, 0xe4, 0x2f, 0xf8, 0x1a, 0xbe, 0x81, 0x65, 0x96, + 0x2c, 0x51, 0xf2, 0x23, 0xc8, 0xe3, 0x31, 0x2f, 0x85, 0xdd, 0x9c, 0x87, 0xee, 0x39, 0xd7, 0xbe, + 0xe4, 0xb7, 0x42, 0x49, 0x91, 0xab, 0x40, 0x70, 0x0c, 0xe6, 0xc3, 0x00, 0xe6, 0xc0, 0xd0, 0x17, + 0x92, 0x23, 0xb7, 0x7b, 0x46, 0xf3, 0x05, 0x47, 0x7f, 0x3e, 0xf4, 0xc6, 0xe4, 0xe7, 0x49, 0x29, + 0x4f, 0x78, 0x56, 0xe4, 0x30, 0x02, 0xc1, 0x25, 0xda, 0xbb, 0xe4, 0x87, 0xd4, 0xaf, 0xa9, 0x84, + 0x6b, 0x90, 0xc0, 0x42, 0x70, 0xac, 0x3f, 0xd6, 0xce, 0xf7, 0x51, 0xbf, 0xe2, 0x47, 0x35, 0x6d, + 0xff, 0x22, 0x2d, 0x10, 0x3c, 0x4c, 0x9c, 0x2f, 0x5a, 0xaf, 0x80, 0x57, 0x90, 0xae, 0x9e, 0x7a, + 0x99, 0x62, 0x12, 0x49, 0xba, 0xb0, 0x07, 0xa4, 0x4d, 0x73, 0x5e, 0x30, 0x34, 0x73, 0x0c, 0xb2, + 0xff, 0x91, 0xde, 0x82, 0x66, 0x19, 0xe0, 0x94, 0x46, 0x91, 0x04, 0xa5, 0xcc, 0x9c, 0x6e, 0xc5, + 0x1e, 0x56, 0x64, 0x69, 0x43, 0x2a, 0xe3, 0x37, 0xb6, 0x66, 0x65, 0xab, 0x58, 0x63, 0xf3, 0xf6, + 0xc9, 0x40, 0xc7, 0x9e, 0xf2, 0x82, 0x45, 0x14, 0x53, 0xce, 0x8e, 0x41, 0x70, 0x95, 0xe2, 0x67, + 0xf9, 0xde, 0xbd, 0x65, 0x9a, 0x5e, 0x64, 0x54, 0x25, 0x29, 0x8b, 0xb7, 0x34, 0xb2, 0xb6, 0x35, + 0xfa, 0x4f, 0xfa, 0x0c, 0x70, 0xc1, 0xe5, 0xcd, 0x87, 0xe6, 0x3d, 0x43, 0xd7, 0xc6, 0xd7, 0xe4, + 0xe6, 0xbb, 0xcd, 0xff, 0x92, 0xae, 0x32, 0x99, 0x53, 0x5c, 0x0a, 0x70, 0xbe, 0x6a, 0xb9, 0x53, + 0x93, 0xe3, 0xa5, 0x00, 0xdb, 0x21, 0xdf, 0x54, 0xa1, 0x04, 0xb0, 0xc8, 0x69, 0x69, 0xb9, 0x86, + 0xde, 0x84, 0x74, 0x74, 0xef, 0x73, 0x50, 0x8a, 0xc6, 0x50, 0xc6, 0xe4, 0x3c, 0x2a, 0xb2, 0xfa, + 0x47, 0x19, 0x54, 0xf2, 0x0a, 0x58, 0x04, 0xd2, 0xd4, 0x33, 0x48, 0xd7, 0x0a, 0xcb, 0x2f, 0xf4, + 0x52, 0x4b, 0xa3, 0xa3, 0xb3, 0x87, 0xb5, 0x6b, 0xad, 0xd6, 0xae, 0xf5, 0xb4, 0x76, 0xad, 0xbb, + 0x8d, 0xdb, 0x58, 0x6d, 0xdc, 0xc6, 0xe3, 0xc6, 0x6d, 0x5c, 0x05, 0x71, 0x8a, 0x49, 0x31, 0xf3, + 0x43, 0x9e, 0x07, 0xe6, 0x88, 0x18, 0x60, 0xfd, 0xdc, 0x0b, 0x13, 0x9a, 0xb2, 0xe0, 0x56, 0xdf, + 0x5c, 0xb9, 0x8f, 0x9a, 0xb5, 0xf5, 0xc5, 0x1d, 0x3c, 0x07, 0x00, 0x00, 0xff, 0xff, 0x64, 0xe5, + 0x88, 0x04, 0x8f, 0x02, 0x00, 0x00, } func (m *EventVolumeReport) Marshal() (dAtA []byte, err error) { @@ -318,16 +381,13 @@ func (m *EventVolumeReport) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size := m.Epoch.Size() - i -= size - if _, err := m.Epoch.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.Epoch) > 0 { + i -= len(m.Epoch) + copy(dAtA[i:], m.Epoch) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Epoch))) + i-- + dAtA[i] = 0x12 } - i-- - dAtA[i] = 0x12 if len(m.ReportReference) > 0 { i -= len(m.ReportReference) copy(dAtA[i:], m.ReportReference) @@ -373,18 +433,11 @@ func (m *EventWithdraw) MarshalToSizedBuffer(dAtA []byte) (int, error) { dAtA[i] = 0x12 } if len(m.Amount) > 0 { - for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -410,18 +463,11 @@ func (m *EventFoundationDeposit) MarshalToSizedBuffer(dAtA []byte) (int, error) var l int _ = l if len(m.Amount) > 0 { - for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -446,15 +492,12 @@ func (m *EventSlashing) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.Suspend { - i-- - if m.Suspend { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } + if len(m.Suspend) > 0 { + i -= len(m.Suspend) + copy(dAtA[i:], m.Suspend) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Suspend))) i-- - dAtA[i] = 0x28 + dAtA[i] = 0x2a } if len(m.SlashingType) > 0 { i -= len(m.SlashingType) @@ -463,16 +506,13 @@ func (m *EventSlashing) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - { - size := m.Amount.Size() - i -= size - if _, err := m.Amount.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.Amount) > 0 { + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x1a if len(m.NetworkAddress) > 0 { i -= len(m.NetworkAddress) copy(dAtA[i:], m.NetworkAddress) @@ -490,6 +530,50 @@ func (m *EventSlashing) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EventMessage) 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 *EventMessage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Action) > 0 { + i -= len(m.Action) + copy(dAtA[i:], m.Action) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Action))) + i-- + dAtA[i] = 0x1a + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0x12 + } + if len(m.Module) > 0 { + i -= len(m.Module) + copy(dAtA[i:], m.Module) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Module))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintEvent(dAtA []byte, offset int, v uint64) int { offset -= sovEvent(v) base := offset @@ -511,8 +595,10 @@ func (m *EventVolumeReport) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.Epoch.Size() - n += 1 + l + sovEvent(uint64(l)) + l = len(m.Epoch) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } return n } @@ -522,11 +608,9 @@ func (m *EventWithdraw) Size() (n int) { } var l int _ = l - if len(m.Amount) > 0 { - for _, e := range m.Amount { - l = e.Size() - n += 1 + l + sovEvent(uint64(l)) - } + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) } l = len(m.WalletAddress) if l > 0 { @@ -545,11 +629,9 @@ func (m *EventFoundationDeposit) Size() (n int) { } var l int _ = l - if len(m.Amount) > 0 { - for _, e := range m.Amount { - l = e.Size() - n += 1 + l + sovEvent(uint64(l)) - } + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) } return n } @@ -568,14 +650,38 @@ func (m *EventSlashing) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.Amount.Size() - n += 1 + l + sovEvent(uint64(l)) + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } l = len(m.SlashingType) if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - if m.Suspend { - n += 2 + l = len(m.Suspend) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + +func (m *EventMessage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Module) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Action) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) } return n } @@ -677,9 +783,7 @@ func (m *EventVolumeReport) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Epoch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Epoch = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -735,7 +839,7 @@ func (m *EventWithdraw) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -745,25 +849,23 @@ func (m *EventWithdraw) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - m.Amount = append(m.Amount, types.Coin{}) - if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Amount = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -883,7 +985,7 @@ func (m *EventFoundationDeposit) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -893,25 +995,23 @@ func (m *EventFoundationDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - m.Amount = append(m.Amount, types.Coin{}) - if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Amount = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -1057,9 +1157,7 @@ func (m *EventSlashing) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.Amount.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Amount = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { @@ -1094,10 +1192,10 @@ func (m *EventSlashing) Unmarshal(dAtA []byte) error { m.SlashingType = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Suspend", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -1107,12 +1205,170 @@ func (m *EventSlashing) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.Suspend = bool(v != 0) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Suspend = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *EventMessage) 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 ErrIntOverflowEvent + } + 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: EventMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Module", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Module = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Action = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvent(dAtA[iNdEx:]) diff --git a/x/pot/types/msg.go b/x/pot/types/msg.go index c840fd05..9c8a706e 100644 --- a/x/pot/types/msg.go +++ b/x/pot/types/msg.go @@ -13,6 +13,7 @@ var ( _ sdk.Msg = &MsgWithdraw{} _ sdk.Msg = &MsgFoundationDeposit{} _ sdk.Msg = &MsgSlashingResourceNode{} + _ sdk.Msg = &MsgUpdateParams{} ) const ( @@ -20,6 +21,7 @@ const ( TypeMsgWithdraw = "withdraw" TypeMsgFoundationDeposit = "foundation_deposit" TypeMsgSlashingResourceNode = "slashing_resource_node" + TypeMsgUpdateParams = "update_params" ) // NewMsgVolumeReport creates a new MsgVolumeReport instance @@ -119,6 +121,8 @@ func (msg MsgVolumeReport) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgWithdraw(amount sdk.Coins, walletAddress sdk.AccAddress, targetAddress sdk.AccAddress) *MsgWithdraw { return &MsgWithdraw{ Amount: amount, @@ -168,6 +172,8 @@ func (msg MsgWithdraw) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgFoundationDeposit(amount sdk.Coins, from sdk.AccAddress) *MsgFoundationDeposit { return &MsgFoundationDeposit{ Amount: amount, @@ -213,6 +219,8 @@ func (msg MsgFoundationDeposit) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgSlashingResourceNode(reporters []stratos.SdsAddress, reporterOwner []sdk.AccAddress, networkAddress stratos.SdsAddress, walletAddress sdk.AccAddress, slashing sdkmath.Int, suspend bool) *MsgSlashingResourceNode { @@ -235,48 +243,48 @@ func NewMsgSlashingResourceNode(reporters []stratos.SdsAddress, reporterOwner [] } } -func (m MsgSlashingResourceNode) Route() string { +func (msg MsgSlashingResourceNode) Route() string { return RouterKey } -func (m MsgSlashingResourceNode) Type() string { +func (msg MsgSlashingResourceNode) Type() string { return TypeMsgSlashingResourceNode } -func (m MsgSlashingResourceNode) ValidateBasic() error { - if len(m.NetworkAddress) == 0 { +func (msg MsgSlashingResourceNode) ValidateBasic() error { + if len(msg.NetworkAddress) == 0 { return ErrMissingTargetAddress } - if len(m.WalletAddress) == 0 { + if len(msg.WalletAddress) == 0 { return ErrMissingWalletAddress } - for _, r := range m.Reporters { + for _, r := range msg.Reporters { if len(r) == 0 { return ErrReporterAddress } } - for _, owner := range m.ReporterOwner { + for _, owner := range msg.ReporterOwner { _, err := sdk.AccAddressFromBech32(owner) if err != nil { return ErrInvalidAddress } } - if m.Slashing.LT(sdkmath.ZeroInt()) { + if msg.Slashing.LT(sdkmath.ZeroInt()) { return ErrInvalidAmount } return nil } -func (m MsgSlashingResourceNode) GetSignBytes() []byte { - bz := ModuleCdc.MustMarshalJSON(m) +func (msg MsgSlashingResourceNode) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) return sdk.MustSortJSON(bz) } -func (m MsgSlashingResourceNode) GetSigners() []sdk.AccAddress { +func (msg MsgSlashingResourceNode) GetSigners() []sdk.AccAddress { var addrs []sdk.AccAddress - for _, owner := range m.ReporterOwner { + for _, owner := range msg.ReporterOwner { reporterOwner, err := sdk.AccAddressFromBech32(owner) if err != nil { panic(err) @@ -285,3 +293,44 @@ func (m MsgSlashingResourceNode) GetSigners() []sdk.AccAddress { } return addrs } + +// -------------------------------------------------------------------------------------------------------------------- + +func NewMsgUpdateParams(params Params, authority string) *MsgUpdateParams { + return &MsgUpdateParams{ + Params: params, + Authority: authority, + } +} + +// Route implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) Route() string { + return RouterKey +} + +// Type implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) Type() string { + return TypeMsgUpdateParams +} + +// ValidateBasic implements sdk.Msg +func (msg *MsgUpdateParams) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Authority) + if err != nil { + return err + } + + return msg.Params.Validate() +} + +// GetSignBytes implements sdk.Msg +func (msg *MsgUpdateParams) GetSigners() []sdk.AccAddress { + authority := sdk.MustAccAddressFromBech32(msg.Authority) + return []sdk.AccAddress{authority} +} + +// GetSigners implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} diff --git a/x/pot/types/tx.pb.go b/x/pot/types/tx.pb.go index 133c09eb..0ae4b998 100644 --- a/x/pot/types/tx.pb.go +++ b/x/pot/types/tx.pb.go @@ -15,7 +15,6 @@ import ( _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" - _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -513,6 +512,100 @@ func (m *BLSSignatureInfo) GetTxData() []byte { return nil } +// MsgUpdateParams defines a Msg for updating the x/pot module parameters. +type MsgUpdateParams struct { + // authority is the address of the governance account. + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // params defines the x/pot parameters to update. + // NOTE: All parameters must be supplied. + Params Params `protobuf:"bytes,2,opt,name=params,proto3" json:"params"` +} + +func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} } +func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParams) ProtoMessage() {} +func (*MsgUpdateParams) Descriptor() ([]byte, []int) { + return fileDescriptor_103c258cace119ca, []int{9} +} +func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParams.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 *MsgUpdateParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParams.Merge(m, src) +} +func (m *MsgUpdateParams) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParams) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParams.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParams proto.InternalMessageInfo + +func (m *MsgUpdateParams) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgUpdateParams) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +type MsgUpdateParamsResponse struct { +} + +func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse{} } +func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParamsResponse) ProtoMessage() {} +func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_103c258cace119ca, []int{10} +} +func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParamsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParamsResponse.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 *MsgUpdateParamsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParamsResponse.Merge(m, src) +} +func (m *MsgUpdateParamsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParamsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgVolumeReport)(nil), "stratos.pot.v1.MsgVolumeReport") proto.RegisterType((*MsgVolumeReportResponse)(nil), "stratos.pot.v1.MsgVolumeReportResponse") @@ -523,88 +616,91 @@ func init() { proto.RegisterType((*MsgSlashingResourceNode)(nil), "stratos.pot.v1.MsgSlashingResourceNode") proto.RegisterType((*MsgSlashingResourceNodeResponse)(nil), "stratos.pot.v1.MsgSlashingResourceNodeResponse") proto.RegisterType((*BLSSignatureInfo)(nil), "stratos.pot.v1.BLSSignatureInfo") + proto.RegisterType((*MsgUpdateParams)(nil), "stratos.pot.v1.MsgUpdateParams") + proto.RegisterType((*MsgUpdateParamsResponse)(nil), "stratos.pot.v1.MsgUpdateParamsResponse") } func init() { proto.RegisterFile("stratos/pot/v1/tx.proto", fileDescriptor_103c258cace119ca) } var fileDescriptor_103c258cace119ca = []byte{ - // 1203 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcb, 0x6b, 0x24, 0x45, - 0x18, 0x4f, 0xe7, 0xb5, 0x49, 0xe5, 0xb5, 0xdb, 0x9b, 0x35, 0xb3, 0x63, 0x32, 0x95, 0x6d, 0xd7, - 0x35, 0x44, 0x33, 0x4d, 0xa2, 0x12, 0x9c, 0x8b, 0xd8, 0x59, 0xc5, 0xe0, 0x46, 0x65, 0x06, 0x0c, - 0xe4, 0xd2, 0xf6, 0xcc, 0x54, 0x3a, 0x6d, 0x66, 0xaa, 0x9a, 0xae, 0x9a, 0x4c, 0x02, 0x82, 0xb2, - 0x5e, 0x44, 0x10, 0x04, 0x2f, 0x1e, 0xfc, 0x03, 0xd6, 0x3d, 0xe5, 0xe0, 0xdf, 0x20, 0x7b, 0x11, - 0x16, 0xbd, 0x88, 0x42, 0x2b, 0x89, 0x10, 0x98, 0xe3, 0xfc, 0x05, 0x52, 0x8f, 0x7e, 0x4c, 0x67, - 0x12, 0xe3, 0x61, 0xc1, 0xcb, 0xee, 0xd4, 0xef, 0xfb, 0xea, 0xfb, 0x7d, 0xef, 0xea, 0x80, 0x39, - 0xca, 0x02, 0x87, 0x11, 0x6a, 0xfa, 0x84, 0x99, 0x07, 0xab, 0x26, 0x3b, 0x2c, 0xfa, 0x01, 0x61, - 0x44, 0x9f, 0x56, 0x82, 0xa2, 0x4f, 0x58, 0xf1, 0x60, 0x35, 0x3f, 0xeb, 0x12, 0x97, 0x08, 0x91, - 0xc9, 0x7f, 0x49, 0xad, 0xfc, 0xed, 0x1a, 0xa1, 0x4d, 0x42, 0x6d, 0x29, 0x90, 0x07, 0x25, 0xba, - 0xe1, 0x34, 0x3d, 0x4c, 0x4c, 0xf1, 0xaf, 0x82, 0xe6, 0xa4, 0x82, 0xd9, 0xa4, 0x2e, 0xe7, 0x6a, - 0x52, 0x57, 0x09, 0xe6, 0x5d, 0x42, 0xdc, 0x06, 0x32, 0x1d, 0xdf, 0x33, 0x1d, 0x8c, 0x09, 0x73, - 0x98, 0x47, 0x70, 0x64, 0x29, 0x97, 0xf1, 0x91, 0x7b, 0x24, 0x25, 0x05, 0x65, 0xb0, 0xea, 0x50, - 0x64, 0x1e, 0xac, 0x56, 0x11, 0x73, 0x56, 0xcd, 0x1a, 0xf1, 0xb0, 0x94, 0x1b, 0x3f, 0x8f, 0x80, - 0x99, 0x2d, 0xea, 0x7e, 0x44, 0x1a, 0xad, 0x26, 0x2a, 0x23, 0x9f, 0x04, 0x4c, 0xff, 0x0c, 0x4c, - 0xb7, 0x9d, 0x46, 0x03, 0x31, 0xfb, 0x40, 0xc0, 0x34, 0xa7, 0x2d, 0x0e, 0x2d, 0x4d, 0xac, 0x19, - 0xc5, 0xde, 0x88, 0x8b, 0x15, 0x0f, 0xbb, 0x0d, 0xb4, 0x2d, 0x74, 0xa5, 0x05, 0xeb, 0xb5, 0x27, - 0x21, 0x1c, 0xe8, 0x84, 0x30, 0x63, 0xa1, 0x1b, 0xc2, 0x5b, 0x47, 0x4e, 0xb3, 0x51, 0x32, 0x7a, - 0x71, 0xe3, 0xd1, 0xd9, 0xf1, 0xb2, 0x56, 0x9e, 0x6a, 0xa7, 0x6c, 0x50, 0xbd, 0x02, 0xc6, 0x02, - 0xe1, 0x0a, 0x0a, 0x72, 0x83, 0x8b, 0xda, 0xd2, 0xb8, 0xb5, 0xde, 0x09, 0x61, 0x8c, 0x75, 0x43, - 0x38, 0x23, 0x8d, 0x45, 0x88, 0xf1, 0xcb, 0x8f, 0x2b, 0xb3, 0x2a, 0xb7, 0x6f, 0xd5, 0xeb, 0x01, - 0xa2, 0xb4, 0xc2, 0x02, 0x0f, 0xbb, 0xe5, 0xf8, 0x92, 0xee, 0x83, 0x11, 0xe4, 0x93, 0xda, 0x5e, - 0x6e, 0x48, 0x58, 0xdc, 0xe1, 0x8e, 0xfe, 0x1e, 0xc2, 0x7b, 0xae, 0xc7, 0xf6, 0x5a, 0xd5, 0x62, - 0x8d, 0x34, 0x55, 0x75, 0xd4, 0x7f, 0x2b, 0xb4, 0xbe, 0x6f, 0xb2, 0x23, 0x1f, 0xd1, 0xe2, 0x26, - 0x66, 0x9d, 0x10, 0xca, 0xeb, 0xdd, 0x10, 0x4e, 0x4a, 0x72, 0x71, 0xe4, 0xcc, 0x40, 0x31, 0x6f, - 0x62, 0x26, 0xc3, 0x91, 0x9a, 0xfa, 0x0e, 0xb8, 0x2e, 0xd9, 0xed, 0x00, 0xed, 0xa2, 0x00, 0xe1, - 0x1a, 0xca, 0x0d, 0x0b, 0x72, 0xb3, 0x13, 0xc2, 0x73, 0xb2, 0x6e, 0x08, 0xe7, 0xd2, 0x61, 0x25, - 0x12, 0xa3, 0x3c, 0x23, 0xa1, 0x72, 0x84, 0xe8, 0x9f, 0x80, 0xe9, 0x28, 0x32, 0x9b, 0xb4, 0x31, - 0x0a, 0x72, 0x23, 0xc2, 0xf2, 0x06, 0xcf, 0x7d, 0xaf, 0x24, 0xc9, 0x7d, 0x2f, 0x7e, 0x71, 0xd2, - 0xa6, 0x22, 0xc5, 0x0f, 0xb8, 0x9e, 0x7e, 0x04, 0xa6, 0xac, 0x07, 0x15, 0x9b, 0x7a, 0x2e, 0x76, - 0x58, 0x2b, 0x40, 0xb9, 0xd1, 0x45, 0x6d, 0x69, 0x62, 0x6d, 0x31, 0xdb, 0x0e, 0xd6, 0x83, 0x4a, - 0x25, 0xd2, 0xd9, 0xc4, 0xbb, 0xc4, 0x5a, 0x53, 0xcd, 0x30, 0x55, 0x6d, 0xd0, 0xe4, 0x7a, 0x37, - 0x84, 0xb3, 0xd2, 0x9f, 0x1e, 0x58, 0xb5, 0xc2, 0x64, 0xda, 0x4a, 0xc9, 0x7c, 0x78, 0x76, 0xbc, - 0x9c, 0x89, 0xe7, 0xab, 0xb3, 0xe3, 0xe5, 0x78, 0x28, 0x33, 0xbd, 0x6b, 0xdc, 0x06, 0x73, 0x19, - 0xa8, 0x8c, 0xa8, 0x4f, 0x30, 0x45, 0xc6, 0x77, 0x43, 0x60, 0x62, 0x8b, 0xba, 0xdb, 0x1e, 0xdb, - 0xab, 0x07, 0x4e, 0x5b, 0xff, 0x42, 0x03, 0xa3, 0x4e, 0x93, 0xb4, 0x30, 0x53, 0xfd, 0x7d, 0xbb, - 0xa8, 0xb2, 0xc1, 0x87, 0xa5, 0xa8, 0x86, 0xa5, 0xb8, 0x41, 0x3c, 0x6c, 0x7d, 0xa8, 0x22, 0x51, - 0x17, 0xba, 0x21, 0x9c, 0x92, 0x21, 0xc8, 0xb3, 0xf1, 0xf8, 0x4f, 0xb8, 0x74, 0x85, 0x46, 0xe2, - 0xb6, 0xa8, 0x8c, 0x53, 0x59, 0xe2, 0x85, 0x54, 0x23, 0xe1, 0xc8, 0x1a, 0xa8, 0x8e, 0xdf, 0x48, - 0x0d, 0x91, 0x92, 0x9c, 0x1b, 0x22, 0x85, 0x5f, 0x52, 0x48, 0xa9, 0xa8, 0x40, 0xce, 0xc5, 0x9c, - 0xc0, 0x4d, 0x71, 0x0d, 0x25, 0x5c, 0xbd, 0x92, 0x84, 0xab, 0x17, 0xbf, 0x84, 0x4b, 0x2a, 0x2a, - 0xb0, 0xf4, 0xb2, 0xa8, 0x5c, 0xaf, 0xa3, 0xbc, 0x72, 0x37, 0x53, 0x95, 0x8b, 0x4a, 0x61, 0xdc, - 0x02, 0x37, 0x53, 0xc7, 0xb8, 0x62, 0x5f, 0x0f, 0x82, 0xd9, 0x2d, 0xea, 0xbe, 0x43, 0x5a, 0xb8, - 0x2e, 0xf6, 0xdd, 0x7d, 0xe4, 0x13, 0xea, 0xb1, 0xff, 0x49, 0xe9, 0x36, 0xc0, 0xf0, 0x6e, 0x40, - 0x9a, 0xaa, 0x60, 0x7c, 0xa6, 0xc5, 0xb9, 0x1b, 0xc2, 0x09, 0xc9, 0xc0, 0x4f, 0x17, 0x27, 0x4c, - 0x28, 0x97, 0x96, 0x79, 0x9e, 0xc4, 0x4f, 0x9e, 0x9d, 0xf9, 0x54, 0x76, 0xce, 0x85, 0x6d, 0x14, - 0xc0, 0x7c, 0x3f, 0x3c, 0xce, 0xd7, 0xe3, 0x11, 0xd1, 0xfd, 0x95, 0x86, 0x43, 0xf7, 0x38, 0x03, - 0xa2, 0xa4, 0x15, 0xd4, 0xd0, 0xfb, 0xa4, 0x8e, 0xf4, 0x6d, 0x30, 0x1e, 0x8d, 0x91, 0xdc, 0xe7, - 0xe3, 0xd6, 0x1b, 0x9d, 0x10, 0x26, 0x60, 0x37, 0x84, 0xd7, 0x7b, 0xd7, 0xc4, 0x25, 0xc5, 0x4e, - 0xae, 0xf5, 0xd9, 0x44, 0x83, 0xc2, 0xfa, 0xb3, 0xd8, 0x44, 0x18, 0xcc, 0x60, 0xc4, 0xda, 0x24, - 0xd8, 0xcf, 0x74, 0xf0, 0xdb, 0x9d, 0x10, 0x66, 0x45, 0xdd, 0x10, 0x3e, 0x27, 0xd9, 0x32, 0x82, - 0x8b, 0xe9, 0xa6, 0x95, 0x66, 0x6a, 0x60, 0x32, 0xc3, 0x39, 0xfc, 0xcc, 0x86, 0xf3, 0x53, 0x30, - 0x46, 0x55, 0xe1, 0xd4, 0x2e, 0xff, 0xf8, 0x3f, 0x3f, 0x51, 0xb1, 0x85, 0xe4, 0x89, 0x8c, 0x90, - 0xbe, 0x0f, 0x55, 0xac, 0xaf, 0xaf, 0x83, 0x6b, 0xb4, 0x45, 0x7d, 0x84, 0xeb, 0x62, 0xbb, 0x8f, - 0x59, 0x0b, 0x9d, 0x10, 0x46, 0x50, 0x37, 0x84, 0xd3, 0xca, 0x9a, 0x04, 0x8c, 0x72, 0x24, 0x2a, - 0xad, 0x5f, 0xb0, 0xa1, 0x61, 0xaa, 0x93, 0xfb, 0x35, 0xa4, 0x71, 0x07, 0xc0, 0x0b, 0x44, 0x71, - 0x3f, 0xff, 0xa4, 0x81, 0xeb, 0xd9, 0x47, 0x45, 0x2f, 0x81, 0x31, 0xbf, 0x55, 0xb5, 0xf7, 0xd1, - 0x91, 0xec, 0xe3, 0x49, 0x0b, 0xf2, 0xc8, 0x23, 0x2c, 0x89, 0x3c, 0x42, 0x8c, 0xf2, 0x35, 0xbf, - 0x55, 0x7d, 0x0f, 0x1d, 0x51, 0xfd, 0x4d, 0x30, 0x9e, 0xbc, 0x62, 0x7c, 0x6c, 0x27, 0xad, 0x3b, - 0x7c, 0x08, 0xd2, 0x6f, 0x93, 0x1a, 0x82, 0xe4, 0x5d, 0x2a, 0x27, 0x62, 0xfd, 0x75, 0x30, 0xca, - 0x0e, 0xef, 0x3b, 0xcc, 0x11, 0x7d, 0x37, 0x29, 0xb3, 0xc4, 0x0e, 0xed, 0xba, 0xc3, 0x9c, 0x24, - 0x4b, 0x0a, 0x30, 0xca, 0x4a, 0x79, 0xed, 0x8f, 0x61, 0x30, 0xb4, 0x45, 0x5d, 0xfd, 0x4b, 0x0d, - 0xdc, 0x7a, 0xd7, 0xc1, 0xf5, 0x06, 0xca, 0x7e, 0x73, 0xc1, 0xec, 0x63, 0x9a, 0x51, 0xc8, 0xbf, - 0xf4, 0x2f, 0x0a, 0x71, 0xd2, 0x5e, 0x7c, 0xf8, 0xeb, 0xdf, 0xdf, 0x0e, 0x42, 0x63, 0xc1, 0xcc, - 0x7c, 0x14, 0xca, 0x4f, 0x2e, 0x5b, 0x96, 0x4a, 0x6f, 0x83, 0x1b, 0xb1, 0x27, 0xf1, 0x93, 0xf8, - 0x7c, 0x1f, 0x92, 0x48, 0x98, 0x7f, 0xe1, 0x12, 0x61, 0xcc, 0xbe, 0x28, 0xd8, 0xf3, 0x46, 0x2e, - 0xcb, 0xde, 0x8e, 0x38, 0xbe, 0xd7, 0x40, 0x3e, 0x66, 0x3e, 0xbf, 0xda, 0xef, 0xf6, 0x61, 0x39, - 0xa7, 0x95, 0x7f, 0xe5, 0x2a, 0x5a, 0xb1, 0x53, 0xcb, 0xc2, 0xa9, 0xbb, 0x86, 0x91, 0x75, 0x6a, - 0x37, 0xbe, 0x62, 0xd7, 0x15, 0xff, 0x0f, 0x1a, 0x58, 0x88, 0xdd, 0xeb, 0xbb, 0x49, 0xfb, 0x55, - 0xa2, 0x9f, 0x62, 0xde, 0xbc, 0xa2, 0x62, 0xec, 0x67, 0x51, 0xf8, 0xb9, 0x64, 0xdc, 0xcb, 0xfa, - 0x19, 0x8d, 0xa9, 0x1d, 0xa8, 0x6b, 0x36, 0xe6, 0x04, 0x23, 0x9f, 0xf3, 0x29, 0xb6, 0xb6, 0x1e, - 0x9d, 0x14, 0xb4, 0x27, 0x27, 0x05, 0xed, 0xe9, 0x49, 0x41, 0xfb, 0xeb, 0xa4, 0xa0, 0x7d, 0x73, - 0x5a, 0x18, 0x78, 0x7a, 0x5a, 0x18, 0xf8, 0xed, 0xb4, 0x30, 0xb0, 0x63, 0xa6, 0xb6, 0x87, 0x32, - 0x8b, 0x11, 0x8b, 0x7e, 0xae, 0xd4, 0xf6, 0x1c, 0x0f, 0x9b, 0x87, 0x82, 0x49, 0xac, 0x92, 0xea, - 0xa8, 0xf8, 0xcb, 0xe0, 0xd5, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x16, 0x02, 0x77, 0xf9, - 0x0c, 0x00, 0x00, + // 1217 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x4d, 0x6f, 0x1b, 0xc5, + 0x1b, 0xcf, 0x36, 0x2f, 0x8d, 0x27, 0x4e, 0xd2, 0x6e, 0xd3, 0xc6, 0xf5, 0xbf, 0xf5, 0xa4, 0xfb, + 0x47, 0x10, 0x05, 0xea, 0x25, 0xe1, 0xa5, 0xaa, 0x2f, 0x88, 0x4d, 0x41, 0x54, 0x34, 0x50, 0xd9, + 0x2a, 0x45, 0xb9, 0x98, 0xb1, 0x3d, 0x59, 0x2f, 0xb1, 0x77, 0x56, 0x3b, 0xe3, 0x24, 0x96, 0x90, + 0x40, 0x70, 0x43, 0xaa, 0xc4, 0x91, 0x8f, 0x50, 0xf5, 0x94, 0x03, 0xe2, 0x23, 0xa0, 0x5e, 0x90, + 0x2a, 0x4e, 0x88, 0xc3, 0x82, 0x92, 0x43, 0x24, 0x1f, 0xfd, 0x09, 0xd0, 0xbc, 0xec, 0x8b, 0x37, + 0xeb, 0x10, 0x0e, 0x95, 0xb8, 0xb4, 0x9e, 0xdf, 0xf3, 0x9b, 0xe7, 0x99, 0xe7, 0x7d, 0x03, 0x96, + 0x29, 0xf3, 0x11, 0x23, 0xd4, 0xf4, 0x08, 0x33, 0xf7, 0xd6, 0x4d, 0x76, 0x50, 0xf6, 0x7c, 0xc2, + 0x88, 0xbe, 0xa0, 0x04, 0x65, 0x8f, 0xb0, 0xf2, 0xde, 0x7a, 0x71, 0xc9, 0x26, 0x36, 0x11, 0x22, + 0x93, 0xff, 0x92, 0xac, 0xe2, 0xf5, 0x26, 0xa1, 0x5d, 0x42, 0xeb, 0x52, 0x20, 0x0f, 0x4a, 0x74, + 0x19, 0x75, 0x1d, 0x97, 0x98, 0xe2, 0x5f, 0x05, 0x2d, 0x4b, 0x82, 0xd9, 0xa5, 0x36, 0xb7, 0xd5, + 0xa5, 0xb6, 0x12, 0x94, 0x94, 0xa0, 0x81, 0x28, 0x36, 0xf7, 0xd6, 0x1b, 0x98, 0xa1, 0x75, 0xb3, + 0x49, 0x1c, 0x57, 0xc9, 0x0b, 0xa9, 0x57, 0xf2, 0x37, 0x09, 0x89, 0xf1, 0xeb, 0x34, 0x58, 0xdc, + 0xa2, 0xf6, 0x67, 0xa4, 0xd3, 0xeb, 0xe2, 0x2a, 0xf6, 0x88, 0xcf, 0xf4, 0xaf, 0xc1, 0xc2, 0x3e, + 0xea, 0x74, 0x30, 0xab, 0xef, 0x09, 0x98, 0x16, 0xb4, 0x95, 0xc9, 0xd5, 0xb9, 0x0d, 0xa3, 0x3c, + 0xea, 0x53, 0xb9, 0xe6, 0xb8, 0x76, 0x07, 0x3f, 0x16, 0x5c, 0xa9, 0xc1, 0x7a, 0xfb, 0x79, 0x00, + 0x27, 0x06, 0x01, 0x4c, 0x69, 0x18, 0x06, 0xf0, 0x6a, 0x1f, 0x75, 0x3b, 0x15, 0x63, 0x14, 0x37, + 0x9e, 0x9e, 0x1c, 0xae, 0x69, 0xd5, 0xf9, 0xfd, 0x84, 0x0e, 0xaa, 0xd7, 0xc0, 0xac, 0x2f, 0x9e, + 0x82, 0xfd, 0xc2, 0x85, 0x15, 0x6d, 0x35, 0x67, 0xdd, 0x19, 0x04, 0x30, 0xc2, 0x86, 0x01, 0x5c, + 0x94, 0xca, 0x42, 0xc4, 0xf8, 0xed, 0xa7, 0xdb, 0x4b, 0x2a, 0x7a, 0xef, 0xb7, 0x5a, 0x3e, 0xa6, + 0xb4, 0xc6, 0x7c, 0xc7, 0xb5, 0xab, 0xd1, 0x25, 0xdd, 0x03, 0xd3, 0xd8, 0x23, 0xcd, 0x76, 0x61, + 0x52, 0x68, 0xdc, 0xe6, 0x0f, 0xfd, 0x23, 0x80, 0xaf, 0xda, 0x0e, 0x6b, 0xf7, 0x1a, 0xe5, 0x26, + 0xe9, 0xaa, 0xf8, 0xab, 0xff, 0x6e, 0xd3, 0xd6, 0xae, 0xc9, 0xfa, 0x1e, 0xa6, 0xe5, 0xfb, 0x2e, + 0x1b, 0x04, 0x50, 0x5e, 0x1f, 0x06, 0x30, 0x2f, 0x8d, 0x8b, 0x23, 0xb7, 0x0c, 0x94, 0xe5, 0xfb, + 0x2e, 0x93, 0xee, 0x48, 0xa6, 0xbe, 0x0d, 0x2e, 0x49, 0xeb, 0x75, 0x1f, 0xef, 0x60, 0x1f, 0xbb, + 0x4d, 0x5c, 0x98, 0x12, 0xc6, 0xcd, 0x41, 0x00, 0x4f, 0xc9, 0x86, 0x01, 0x5c, 0x4e, 0xba, 0x15, + 0x4b, 0x8c, 0xea, 0xa2, 0x84, 0xaa, 0x21, 0xa2, 0x7f, 0x09, 0x16, 0x42, 0xcf, 0xea, 0x64, 0xdf, + 0xc5, 0x7e, 0x61, 0x5a, 0x68, 0xde, 0xe4, 0xb1, 0x1f, 0x95, 0xc4, 0xb1, 0x1f, 0xc5, 0xc7, 0x07, + 0x6d, 0x3e, 0x24, 0x7e, 0xca, 0x79, 0x7a, 0x1f, 0xcc, 0x5b, 0x0f, 0x6a, 0x75, 0xea, 0xd8, 0x2e, + 0x62, 0x3d, 0x1f, 0x17, 0x66, 0x56, 0xb4, 0xd5, 0xb9, 0x8d, 0x95, 0x74, 0x39, 0x58, 0x0f, 0x6a, + 0xb5, 0x90, 0x73, 0xdf, 0xdd, 0x21, 0xd6, 0x86, 0x2a, 0x86, 0xf9, 0x46, 0x87, 0xc6, 0xd7, 0x87, + 0x01, 0x5c, 0x92, 0xef, 0x19, 0x81, 0x55, 0x29, 0xe4, 0x93, 0x5a, 0x2a, 0xe6, 0xb7, 0x27, 0x87, + 0x6b, 0x29, 0x7f, 0xbe, 0x3f, 0x39, 0x5c, 0x8b, 0xda, 0x2e, 0x55, 0xbb, 0xc6, 0x75, 0xb0, 0x9c, + 0x82, 0xaa, 0x98, 0x7a, 0xc4, 0xa5, 0xd8, 0xf8, 0x71, 0x12, 0xcc, 0x6d, 0x51, 0xfb, 0xb1, 0xc3, + 0xda, 0x2d, 0x1f, 0xed, 0xeb, 0xdf, 0x69, 0x60, 0x06, 0x75, 0x49, 0xcf, 0x65, 0xaa, 0xbe, 0xaf, + 0x97, 0x55, 0x34, 0x78, 0x1b, 0x95, 0x55, 0x1b, 0x95, 0x37, 0x89, 0xe3, 0x5a, 0x0f, 0x95, 0x27, + 0xea, 0xc2, 0x30, 0x80, 0xf3, 0xd2, 0x05, 0x79, 0x36, 0x9e, 0xfd, 0x09, 0x57, 0xcf, 0x51, 0x48, + 0x5c, 0x17, 0x95, 0x7e, 0x2a, 0x4d, 0x3c, 0x91, 0xaa, 0x25, 0x90, 0xcc, 0x81, 0xaa, 0xf8, 0xcd, + 0x44, 0x13, 0x29, 0xc9, 0xa9, 0x26, 0x52, 0xf8, 0x19, 0x89, 0x94, 0x44, 0x05, 0x72, 0x5b, 0x0c, + 0xf9, 0x76, 0xc2, 0xd6, 0x64, 0x6c, 0x6b, 0x54, 0x12, 0xdb, 0x1a, 0xc5, 0xcf, 0xb0, 0x25, 0x89, + 0x0a, 0xac, 0xbc, 0x2e, 0x32, 0x37, 0xfa, 0x50, 0x9e, 0xb9, 0x2b, 0x89, 0xcc, 0x85, 0xa9, 0x30, + 0xae, 0x82, 0x2b, 0x89, 0x63, 0x94, 0xb1, 0x27, 0x17, 0xc0, 0xd2, 0x16, 0xb5, 0x3f, 0x24, 0x3d, + 0xb7, 0x85, 0x98, 0x43, 0xdc, 0x7b, 0xd8, 0x23, 0xd4, 0x61, 0xff, 0x91, 0xd4, 0x6d, 0x82, 0xa9, + 0x1d, 0x9f, 0x74, 0x55, 0xc2, 0x78, 0x4f, 0x8b, 0xf3, 0x30, 0x80, 0x73, 0xd2, 0x02, 0x3f, 0x8d, + 0x0f, 0x98, 0x20, 0x57, 0xd6, 0x78, 0x9c, 0xc4, 0x4f, 0x1e, 0x9d, 0x1b, 0x89, 0xe8, 0x9c, 0x72, + 0xdb, 0x28, 0x81, 0x1b, 0x59, 0x78, 0x14, 0xaf, 0x67, 0xd3, 0xa2, 0xfa, 0x6b, 0x1d, 0x44, 0xdb, + 0xdc, 0x02, 0xa6, 0xa4, 0xe7, 0x37, 0xf1, 0x27, 0xa4, 0x85, 0xf5, 0xc7, 0x20, 0x17, 0xb6, 0x91, + 0x9c, 0xe7, 0x39, 0xeb, 0xee, 0x20, 0x80, 0x31, 0x38, 0x0c, 0xe0, 0xa5, 0xd1, 0x31, 0x71, 0x46, + 0xb2, 0xe3, 0x6b, 0x19, 0x93, 0xe8, 0x82, 0xd0, 0xfe, 0x32, 0x26, 0x91, 0x0b, 0x16, 0x5d, 0xcc, + 0xf6, 0x89, 0xbf, 0x9b, 0xaa, 0xe0, 0x0f, 0x06, 0x01, 0x4c, 0x8b, 0x86, 0x01, 0xbc, 0x26, 0xad, + 0xa5, 0x04, 0xe3, 0xcd, 0x2d, 0x28, 0x66, 0xa2, 0x61, 0x52, 0xcd, 0x39, 0xf5, 0xd2, 0x9a, 0xf3, + 0x2b, 0x30, 0x4b, 0x55, 0xe2, 0xd4, 0x2c, 0xff, 0xe2, 0x5f, 0xaf, 0xa8, 0x48, 0x43, 0xbc, 0x22, + 0x43, 0x24, 0x73, 0x51, 0x45, 0x7c, 0xfd, 0x0e, 0xb8, 0x48, 0x7b, 0xd4, 0xc3, 0x6e, 0x4b, 0x4c, + 0xf7, 0x59, 0xeb, 0xe6, 0x20, 0x80, 0x21, 0x34, 0x0c, 0xe0, 0x82, 0xd2, 0x26, 0x01, 0xa3, 0x1a, + 0x8a, 0x2a, 0x77, 0xc6, 0x4c, 0x68, 0x98, 0xa8, 0xe4, 0xac, 0x82, 0x34, 0x6e, 0x01, 0x38, 0x46, + 0x14, 0xd5, 0xf3, 0x2f, 0x1a, 0xb8, 0x94, 0x5e, 0x2a, 0x7a, 0x05, 0xcc, 0x7a, 0xbd, 0x46, 0x7d, + 0x17, 0xf7, 0x65, 0x1d, 0xe7, 0x2d, 0xc8, 0x3d, 0x0f, 0xb1, 0xd8, 0xf3, 0x10, 0x31, 0xaa, 0x17, + 0xbd, 0x5e, 0xe3, 0x63, 0xdc, 0xa7, 0xfa, 0x7b, 0x20, 0x17, 0x6f, 0x31, 0xde, 0xb6, 0x79, 0xeb, + 0x16, 0x6f, 0x82, 0xe4, 0x6e, 0x52, 0x4d, 0x10, 0xef, 0xa5, 0x6a, 0x2c, 0xd6, 0xdf, 0x01, 0x33, + 0xec, 0xe0, 0x1e, 0x62, 0x48, 0xd4, 0x5d, 0x5e, 0x46, 0x89, 0x1d, 0xd4, 0x5b, 0x88, 0xa1, 0x38, + 0x4a, 0x0a, 0x30, 0xaa, 0x8a, 0x6c, 0xfc, 0xac, 0x89, 0xaf, 0xac, 0x47, 0x5e, 0x0b, 0x31, 0xfc, + 0x10, 0xf9, 0xa8, 0x4b, 0xf5, 0x77, 0x41, 0x0e, 0xf5, 0x58, 0x9b, 0xf8, 0x0e, 0xeb, 0x17, 0x34, + 0x91, 0xf0, 0xc2, 0xf8, 0x7e, 0x8b, 0xa8, 0xfa, 0x5d, 0x30, 0xe3, 0x09, 0x0d, 0xc2, 0x81, 0xb9, + 0x8d, 0x6b, 0xe9, 0x35, 0x2c, 0xf5, 0x5b, 0x39, 0x5e, 0x3d, 0x6a, 0x60, 0xc9, 0x0b, 0x95, 0x37, + 0x79, 0xae, 0x62, 0x55, 0x3c, 0x4d, 0x37, 0xc3, 0x34, 0x1d, 0x88, 0x6f, 0xc3, 0xd4, 0x23, 0xd5, + 0x3a, 0x4d, 0x42, 0x61, 0x72, 0x36, 0x9e, 0x4c, 0x81, 0xc9, 0x2d, 0x6a, 0xeb, 0x08, 0x5c, 0xfd, + 0x08, 0xb9, 0xad, 0x0e, 0x4e, 0x7f, 0x46, 0xc2, 0xf4, 0xc3, 0x52, 0x84, 0xe2, 0x6b, 0xff, 0x40, + 0x08, 0x4d, 0xe9, 0x8f, 0xc0, 0xe5, 0xc8, 0x44, 0xb4, 0xbe, 0xff, 0x97, 0x71, 0x3b, 0x14, 0x16, + 0xff, 0x7f, 0x86, 0x30, 0x52, 0xeb, 0x81, 0x62, 0xa4, 0xf6, 0xf4, 0x8e, 0x79, 0x25, 0x43, 0xc5, + 0x29, 0x56, 0xf1, 0x8d, 0xf3, 0xb0, 0x22, 0x8b, 0x7d, 0x70, 0x33, 0xb2, 0x98, 0x39, 0xa5, 0xb3, + 0x42, 0x92, 0x45, 0x2c, 0x9a, 0xe7, 0x24, 0x46, 0xa6, 0x3f, 0x07, 0xf9, 0x91, 0xf2, 0xcb, 0xca, + 0x4e, 0x92, 0x90, 0x99, 0x9d, 0xac, 0x42, 0x28, 0x4e, 0x7f, 0xc3, 0x8b, 0xcc, 0xda, 0x7a, 0x7a, + 0x54, 0xd2, 0x9e, 0x1f, 0x95, 0xb4, 0x17, 0x47, 0x25, 0xed, 0xaf, 0xa3, 0x92, 0xf6, 0xc3, 0x71, + 0x69, 0xe2, 0xc5, 0x71, 0x69, 0xe2, 0xf7, 0xe3, 0xd2, 0xc4, 0xb6, 0x99, 0x98, 0x61, 0x4a, 0xaf, + 0x8b, 0x59, 0xf8, 0xf3, 0x76, 0xb3, 0x8d, 0x1c, 0x57, 0xd5, 0xa0, 0x18, 0x68, 0x8d, 0x19, 0xf1, + 0xf7, 0xc9, 0x5b, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xe0, 0xbb, 0x3b, 0x48, 0x61, 0x0d, 0x00, + 0x00, } func (this *MsgVolumeReport) Equal(that interface{}) bool { @@ -886,6 +982,54 @@ func (this *BLSSignatureInfo) Equal(that interface{}) bool { } return true } +func (this *MsgUpdateParams) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateParams) + if !ok { + that2, ok := that.(MsgUpdateParams) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Authority != that1.Authority { + return false + } + if !this.Params.Equal(&that1.Params) { + return false + } + return true +} +func (this *MsgUpdateParamsResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateParamsResponse) + if !ok { + that2, ok := that.(MsgUpdateParamsResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} // Reference imports to suppress errors if they are not otherwise used. var _ context.Context @@ -903,6 +1047,9 @@ type MsgClient interface { HandleMsgWithdraw(ctx context.Context, in *MsgWithdraw, opts ...grpc.CallOption) (*MsgWithdrawResponse, error) HandleMsgFoundationDeposit(ctx context.Context, in *MsgFoundationDeposit, opts ...grpc.CallOption) (*MsgFoundationDepositResponse, error) HandleMsgSlashingResourceNode(ctx context.Context, in *MsgSlashingResourceNode, opts ...grpc.CallOption) (*MsgSlashingResourceNodeResponse, error) + // UpdateParams defined a governance operation for updating the x/pot module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) } type msgClient struct { @@ -949,12 +1096,24 @@ func (c *msgClient) HandleMsgSlashingResourceNode(ctx context.Context, in *MsgSl return out, nil } +func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) { + out := new(MsgUpdateParamsResponse) + err := c.cc.Invoke(ctx, "/stratos.pot.v1.Msg/UpdateParams", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { HandleMsgVolumeReport(context.Context, *MsgVolumeReport) (*MsgVolumeReportResponse, error) HandleMsgWithdraw(context.Context, *MsgWithdraw) (*MsgWithdrawResponse, error) HandleMsgFoundationDeposit(context.Context, *MsgFoundationDeposit) (*MsgFoundationDepositResponse, error) HandleMsgSlashingResourceNode(context.Context, *MsgSlashingResourceNode) (*MsgSlashingResourceNodeResponse, error) + // UpdateParams defined a governance operation for updating the x/pot module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -973,6 +1132,9 @@ func (*UnimplementedMsgServer) HandleMsgFoundationDeposit(ctx context.Context, r func (*UnimplementedMsgServer) HandleMsgSlashingResourceNode(ctx context.Context, req *MsgSlashingResourceNode) (*MsgSlashingResourceNodeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method HandleMsgSlashingResourceNode not implemented") } +func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -1050,6 +1212,24 @@ func _Msg_HandleMsgSlashingResourceNode_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateParams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/stratos.pot.v1.Msg/UpdateParams", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "stratos.pot.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -1070,6 +1250,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "HandleMsgSlashingResourceNode", Handler: _Msg_HandleMsgSlashingResourceNode_Handler, }, + { + MethodName: "UpdateParams", + Handler: _Msg_UpdateParams_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "stratos/pot/v1/tx.proto", @@ -1461,6 +1645,69 @@ func (m *BLSSignatureInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *MsgUpdateParams) 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 *MsgUpdateParams) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParams) 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 = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintTx(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateParamsResponse) 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 *MsgUpdateParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParamsResponse) 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 @@ -1638,6 +1885,30 @@ func (m *BLSSignatureInfo) Size() (n int) { return n } +func (m *MsgUpdateParams) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.Params.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgUpdateParamsResponse) 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 } @@ -2737,6 +3008,171 @@ func (m *BLSSignatureInfo) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgUpdateParams) 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: MsgUpdateParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParams: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Authority", 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.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + 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 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.Params.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 *MsgUpdateParamsResponse) 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: MsgUpdateParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParamsResponse: 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/x/register/keeper/msg_server.go b/x/register/keeper/msg_server.go index 0ba998c5..3b28fac4 100644 --- a/x/register/keeper/msg_server.go +++ b/x/register/keeper/msg_server.go @@ -2,11 +2,15 @@ package keeper import ( "context" + "encoding/hex" + "strconv" + "time" "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/register/types" ) @@ -52,13 +56,19 @@ func (k msgServer) HandleMsgCreateResourceNode(goCtx context.Context, msg *types return nil, errors.Wrap(types.ErrRegisterResourceNode, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventCreateResourceNode{ - Sender: msg.GetOwnerAddress(), - NetworkAddress: msg.GetNetworkAddress(), - Pubkey: msg.GetPubkey(), - OzoneLimitChanges: ozoneLimitChange, - InitialDeposit: msg.GetValue(), - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventCreateResourceNode{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + Pubkey: hex.EncodeToString(pk.Bytes()), + OzoneLimitChanges: ozoneLimitChange.String(), + InitialDeposit: msg.GetValue().String(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -89,11 +99,17 @@ func (k msgServer) HandleMsgCreateMetaNode(goCtx context.Context, msg *types.Msg return nil, errors.Wrap(types.ErrRegisterMetaNode, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventCreateMetaNode{ - Sender: msg.GetOwnerAddress(), - NetworkAddress: msg.GetNetworkAddress(), - OzoneLimitChanges: ozoneLimitChange, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventCreateMetaNode{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + OzoneLimitChanges: ozoneLimitChange.String(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -120,12 +136,18 @@ func (k msgServer) HandleMsgRemoveResourceNode(goCtx context.Context, msg *types return &types.MsgRemoveResourceNodeResponse{}, errors.Wrap(types.ErrUnbondResourceNode, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventUnBondingResourceNode{ - Sender: msg.GetOwnerAddress(), - ResourceNode: msg.GetResourceNodeAddress(), - DepositToRemove: sdk.NewCoin(k.BondDenom(ctx), depositToRemove), - UnbondingMatureTime: completionTime, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventUnBondingResourceNode{ + Sender: msg.GetOwnerAddress(), + ResourceNode: msg.GetResourceNodeAddress(), + DepositToRemove: sdk.NewCoin(k.BondDenom(ctx), depositToRemove).String(), + UnbondingMatureTime: completionTime.Format(time.RFC3339), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -158,13 +180,19 @@ func (k msgServer) HandleMsgRemoveMetaNode(goCtx context.Context, msg *types.Msg return &types.MsgRemoveMetaNodeResponse{}, errors.Wrap(types.ErrUnbondMetaNode, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventUnBondingMetaNode{ - Sender: msg.GetOwnerAddress(), - MetaNode: msg.GetMetaNodeAddress(), - OzoneLimitChanges: ozoneLimitChange.Abs(), - DepositToRemove: sdk.NewCoin(k.BondDenom(ctx), availableDeposit), - UnbondingMatureTime: completionTime, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventUnBondingMetaNode{ + Sender: msg.GetOwnerAddress(), + MetaNode: msg.GetMetaNodeAddress(), + OzoneLimitChanges: ozoneLimitChange.Neg().String(), + DepositToRemove: sdk.NewCoin(k.BondDenom(ctx), availableDeposit).String(), + UnbondingMatureTime: completionTime.Format(time.RFC3339), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -198,12 +226,18 @@ func (k msgServer) HandleMsgMetaNodeRegistrationVote(goCtx context.Context, msg return &types.MsgMetaNodeRegistrationVoteResponse{}, errors.Wrap(types.ErrVoteMetaNode, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventMetaNodeRegistrationVote{ - Sender: msg.GetVoterOwnerAddress(), - VoterNetworkAddress: msg.GetVoterNetworkAddress(), - CandidateNetworkAddress: msg.GetCandidateNetworkAddress(), - CandidateStatus: nodeStatus, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventMetaNodeRegistrationVote{ + Sender: msg.GetVoterOwnerAddress(), + VoterNetworkAddress: msg.GetVoterNetworkAddress(), + CandidateNetworkAddress: msg.GetCandidateNetworkAddress(), + CandidateStatus: nodeStatus.String(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetVoterOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -230,11 +264,17 @@ func (k msgServer) HandleMsgWithdrawMetaNodeRegistrationDeposit(goCtx context.Co return &types.MsgWithdrawMetaNodeRegistrationDepositResponse{}, errors.Wrap(types.ErrUnbondMetaNode, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventWithdrawMetaNodeRegistrationDeposit{ - Sender: msg.GetOwnerAddress(), - NetworkAddress: msg.GetNetworkAddress(), - UnbondingMatureTime: completionTime, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventWithdrawMetaNodeRegistrationDeposit{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + UnbondingMatureTime: completionTime.Format(time.RFC3339), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -259,10 +299,16 @@ func (k msgServer) HandleMsgUpdateResourceNode(goCtx context.Context, msg *types return nil, errors.Wrap(types.ErrUpdateResourceNode, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateResourceNode{ - Sender: msg.GetOwnerAddress(), - NetworkAddress: msg.GetNetworkAddress(), - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventUpdateResourceNode{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -291,16 +337,22 @@ func (k msgServer) HandleMsgUpdateResourceNodeDeposit(goCtx context.Context, msg return nil, errors.Wrap(types.ErrUpdateResourceNodeDeposit, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateResourceNodeDeposit{ - Sender: msg.GetOwnerAddress(), - NetworkAddress: msg.GetNetworkAddress(), - DepositDelta: msg.GetDepositDelta(), - CurrentDeposit: sdk.NewCoin(k.BondDenom(ctx), node.Tokens), - AvailableTokenBefore: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtBefore), - AvailableTokenAfter: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtAfter), - OzoneLimitChanges: ozoneLimitChange, - UnbondingMatureTime: completionTime, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventUpdateResourceNodeDeposit{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + DepositDelta: msg.GetDepositDelta().String(), + CurrentDeposit: sdk.NewCoin(k.BondDenom(ctx), node.Tokens).String(), + AvailableTokenBefore: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtBefore).String(), + AvailableTokenAfter: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtAfter).String(), + OzoneLimitChanges: ozoneLimitChange.String(), + UnbondingMatureTime: completionTime.Format(time.RFC3339), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -346,11 +398,13 @@ func (k msgServer) HandleMsgUpdateEffectiveDeposit(goCtx context.Context, msg *t return nil, errors.Wrap(types.ErrUpdateResourceNodeDeposit, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateEffectiveDeposit{ - NetworkAddress: msg.GetNetworkAddress(), - EffectiveDepositAfter: msg.EffectiveTokens, - IsUnsuspended: isUnsuspendedDuringUpdate, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventUpdateEffectiveDeposit{ + NetworkAddress: msg.GetNetworkAddress(), + EffectiveDepositAfter: msg.EffectiveTokens.String(), + IsUnsuspended: strconv.FormatBool(isUnsuspendedDuringUpdate), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -376,10 +430,16 @@ func (k msgServer) HandleMsgUpdateMetaNode(goCtx context.Context, msg *types.Msg return nil, errors.Wrap(types.ErrUpdateMetaNode, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateMetaNode{ - Sender: msg.GetOwnerAddress(), - NetworkAddress: msg.GetNetworkAddress(), - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventUpdateMetaNode{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -411,19 +471,49 @@ func (k msgServer) HandleMsgUpdateMetaNodeDeposit(goCtx context.Context, msg *ty return nil, errors.Wrap(types.ErrUpdateMetaNodeDeposit, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventUpdateMetaNodeDeposit{ - Sender: msg.GetOwnerAddress(), - NetworkAddress: msg.GetNetworkAddress(), - DepositDelta: msg.GetDepositDelta(), - CurrentDeposit: sdk.NewCoin(k.BondDenom(ctx), node.Tokens), - AvailableTokenBefore: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtBefore), - AvailableTokenAfter: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtAfter), - OzoneLimitChanges: ozoneLimitChange, - UnbondingMatureTime: completionTime, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventUpdateMetaNodeDeposit{ + Sender: msg.GetOwnerAddress(), + NetworkAddress: msg.GetNetworkAddress(), + DepositDelta: msg.GetDepositDelta().String(), + CurrentDeposit: sdk.NewCoin(k.BondDenom(ctx), node.Tokens).String(), + AvailableTokenBefore: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtBefore).String(), + AvailableTokenAfter: sdk.NewCoin(k.BondDenom(ctx), availableTokenAmtAfter).String(), + OzoneLimitChanges: ozoneLimitChange.String(), + UnbondingMatureTime: completionTime.Format(time.RFC3339), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetOwnerAddress(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } return &types.MsgUpdateMetaNodeDepositResponse{}, nil } + +// UpdateParams updates the module parameters +func (k msgServer) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParams) (*types.MsgUpdateParamsResponse, error) { + if k.authority != msg.Authority { + return nil, errors.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", k.authority, msg.Authority) + } + + ctx := sdk.UnwrapSDKContext(goCtx) + err := k.SetParams(ctx, msg.Params) + if err != nil { + return nil, err + } + + err = ctx.EventManager().EmitTypedEvent(&types.EventMessage{ + Module: types.ModuleName, + Sender: msg.Authority, + Action: sdk.MsgTypeURL(msg), + }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + + return &types.MsgUpdateParamsResponse{}, nil +} diff --git a/x/register/keeper/node_state_change.go b/x/register/keeper/node_state_change.go index 53b7d67c..d4365f05 100644 --- a/x/register/keeper/node_state_change.go +++ b/x/register/keeper/node_state_change.go @@ -23,12 +23,12 @@ func (k Keeper) BlockRegisteredNodesUpdates(ctx sdk.Context) { } if isMetaNode { _ = ctx.EventManager().EmitTypedEvent(&types.EventCompleteUnBondingMetaNode{ - Amount: balances, + Amount: balances.String(), NetworkAddress: networkAddr, }) } else { _ = ctx.EventManager().EmitTypedEvent(&types.EventCompleteUnBondingResourceNode{ - Amount: balances, + Amount: balances.String(), NetworkAddress: networkAddr, }) } diff --git a/x/register/keeper/params.go b/x/register/keeper/params.go index 80c86308..827d1fbf 100644 --- a/x/register/keeper/params.go +++ b/x/register/keeper/params.go @@ -8,10 +8,16 @@ import ( ) // SetParams sets the params on the store -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { + if err := params.Validate(); err != nil { + return err + } + store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshal(¶ms) store.Set(types.ParamsKey, bz) + + return nil } // GetParams returns the params from the store diff --git a/x/register/types/codec.go b/x/register/types/codec.go index 5d40eb63..6af59123 100644 --- a/x/register/types/codec.go +++ b/x/register/types/codec.go @@ -24,6 +24,8 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { cdc.RegisterConcrete(MsgUpdateMetaNode{}, "register/UpdateMetaNodeTx", nil) cdc.RegisterConcrete(MsgUpdateMetaNodeDeposit{}, "register/UpdateMetaNodeDepositTx", nil) cdc.RegisterConcrete(MsgMetaNodeRegistrationVote{}, "register/MsgMetaNodeRegistrationVote", nil) + + cdc.RegisterConcrete(MsgUpdateParams{}, "register/UpdateParamsTx", nil) } // RegisterInterfaces registers the x/register interfaces types with the interface registry @@ -38,6 +40,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { &MsgUpdateMetaNode{}, &MsgUpdateMetaNodeDeposit{}, &MsgMetaNodeRegistrationVote{}, + &MsgUpdateParams{}, ) registry.RegisterImplementations( (*authz.Authorization)(nil), diff --git a/x/register/types/event.pb.go b/x/register/types/event.pb.go index 59c9433a..3678413f 100644 --- a/x/register/types/event.pb.go +++ b/x/register/types/event.pb.go @@ -5,26 +5,16 @@ package types import ( fmt "fmt" - _ "github.com/cosmos/cosmos-proto" - types "github.com/cosmos/cosmos-sdk/codec/types" - github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" - types1 "github.com/cosmos/cosmos-sdk/types" - types2 "github.com/cosmos/cosmos-sdk/x/staking/types" - _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" - github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" - _ "google.golang.org/protobuf/types/known/timestamppb" io "io" math "math" math_bits "math/bits" - time "time" ) // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal var _ = fmt.Errorf var _ = math.Inf -var _ = time.Kitchen // This is a compile-time assertion to ensure that this generated file // is compatible with the proto package it is being compiled against. @@ -34,11 +24,11 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // EventCreateResourceNode is emitted on Msg/MsgCreateResourceNode type EventCreateResourceNode struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` - Pubkey *types.Any `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty"` - OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` - InitialDeposit types1.Coin `protobuf:"bytes,5,opt,name=initial_deposit,json=initialDeposit,proto3" json:"initial_deposit"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + Pubkey string `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty"` + OzoneLimitChanges string `protobuf:"bytes,4,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3" json:"ozone_limit_changes,omitempty"` + InitialDeposit string `protobuf:"bytes,5,opt,name=initial_deposit,json=initialDeposit,proto3" json:"initial_deposit,omitempty"` } func (m *EventCreateResourceNode) Reset() { *m = EventCreateResourceNode{} } @@ -88,25 +78,32 @@ func (m *EventCreateResourceNode) GetNetworkAddress() string { return "" } -func (m *EventCreateResourceNode) GetPubkey() *types.Any { +func (m *EventCreateResourceNode) GetPubkey() string { if m != nil { return m.Pubkey } - return nil + return "" +} + +func (m *EventCreateResourceNode) GetOzoneLimitChanges() string { + if m != nil { + return m.OzoneLimitChanges + } + return "" } -func (m *EventCreateResourceNode) GetInitialDeposit() types1.Coin { +func (m *EventCreateResourceNode) GetInitialDeposit() string { if m != nil { return m.InitialDeposit } - return types1.Coin{} + return "" } // EventCreateMetaNode is emitted on Msg/MsgCreateMetaNode type EventCreateMetaNode struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` - OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + OzoneLimitChanges string `protobuf:"bytes,3,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3" json:"ozone_limit_changes,omitempty"` } func (m *EventCreateMetaNode) Reset() { *m = EventCreateMetaNode{} } @@ -156,12 +153,19 @@ func (m *EventCreateMetaNode) GetNetworkAddress() string { return "" } +func (m *EventCreateMetaNode) GetOzoneLimitChanges() string { + if m != nil { + return m.OzoneLimitChanges + } + return "" +} + // EventUnBondingResourceNode is emitted on Msg/MsgRemoveResourceNode type EventUnBondingResourceNode struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - ResourceNode string `protobuf:"bytes,2,opt,name=resource_node,json=resourceNode,proto3" json:"resource_node,omitempty"` - DepositToRemove types1.Coin `protobuf:"bytes,3,opt,name=deposit_to_remove,json=depositToRemove,proto3" json:"deposit_to_remove"` - UnbondingMatureTime time.Time `protobuf:"bytes,4,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + ResourceNode string `protobuf:"bytes,2,opt,name=resource_node,json=resourceNode,proto3" json:"resource_node,omitempty"` + DepositToRemove string `protobuf:"bytes,3,opt,name=deposit_to_remove,json=depositToRemove,proto3" json:"deposit_to_remove,omitempty"` + UnbondingMatureTime string `protobuf:"bytes,4,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3" json:"unbonding_mature_time,omitempty"` } func (m *EventUnBondingResourceNode) Reset() { *m = EventUnBondingResourceNode{} } @@ -211,27 +215,27 @@ func (m *EventUnBondingResourceNode) GetResourceNode() string { return "" } -func (m *EventUnBondingResourceNode) GetDepositToRemove() types1.Coin { +func (m *EventUnBondingResourceNode) GetDepositToRemove() string { if m != nil { return m.DepositToRemove } - return types1.Coin{} + return "" } -func (m *EventUnBondingResourceNode) GetUnbondingMatureTime() time.Time { +func (m *EventUnBondingResourceNode) GetUnbondingMatureTime() string { if m != nil { return m.UnbondingMatureTime } - return time.Time{} + return "" } // EventUnBondingResourceNode is emitted on Msg/MsgRemoveMetaNode type EventUnBondingMetaNode struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - MetaNode string `protobuf:"bytes,2,opt,name=meta_node,json=metaNode,proto3" json:"meta_node,omitempty"` - OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` - DepositToRemove types1.Coin `protobuf:"bytes,4,opt,name=deposit_to_remove,json=depositToRemove,proto3" json:"deposit_to_remove"` - UnbondingMatureTime time.Time `protobuf:"bytes,5,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + MetaNode string `protobuf:"bytes,2,opt,name=meta_node,json=metaNode,proto3" json:"meta_node,omitempty"` + OzoneLimitChanges string `protobuf:"bytes,3,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3" json:"ozone_limit_changes,omitempty"` + DepositToRemove string `protobuf:"bytes,4,opt,name=deposit_to_remove,json=depositToRemove,proto3" json:"deposit_to_remove,omitempty"` + UnbondingMatureTime string `protobuf:"bytes,5,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3" json:"unbonding_mature_time,omitempty"` } func (m *EventUnBondingMetaNode) Reset() { *m = EventUnBondingMetaNode{} } @@ -281,26 +285,33 @@ func (m *EventUnBondingMetaNode) GetMetaNode() string { return "" } -func (m *EventUnBondingMetaNode) GetDepositToRemove() types1.Coin { +func (m *EventUnBondingMetaNode) GetOzoneLimitChanges() string { + if m != nil { + return m.OzoneLimitChanges + } + return "" +} + +func (m *EventUnBondingMetaNode) GetDepositToRemove() string { if m != nil { return m.DepositToRemove } - return types1.Coin{} + return "" } -func (m *EventUnBondingMetaNode) GetUnbondingMatureTime() time.Time { +func (m *EventUnBondingMetaNode) GetUnbondingMatureTime() string { if m != nil { return m.UnbondingMatureTime } - return time.Time{} + return "" } // EventMetaNodeRegistrationVote is emitted on Msg/MsgMetaNodeRegistrationVote type EventMetaNodeRegistrationVote struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - VoterNetworkAddress string `protobuf:"bytes,2,opt,name=voter_network_address,json=voterNetworkAddress,proto3" json:"voter_network_address,omitempty"` - CandidateNetworkAddress string `protobuf:"bytes,3,opt,name=candidate_network_address,json=candidateNetworkAddress,proto3" json:"candidate_network_address,omitempty"` - CandidateStatus types2.BondStatus `protobuf:"varint,4,opt,name=candidate_status,json=candidateStatus,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"candidate_status,omitempty"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + VoterNetworkAddress string `protobuf:"bytes,2,opt,name=voter_network_address,json=voterNetworkAddress,proto3" json:"voter_network_address,omitempty"` + CandidateNetworkAddress string `protobuf:"bytes,3,opt,name=candidate_network_address,json=candidateNetworkAddress,proto3" json:"candidate_network_address,omitempty"` + CandidateStatus string `protobuf:"bytes,4,opt,name=candidate_status,json=candidateStatus,proto3" json:"candidate_status,omitempty"` } func (m *EventMetaNodeRegistrationVote) Reset() { *m = EventMetaNodeRegistrationVote{} } @@ -357,18 +368,18 @@ func (m *EventMetaNodeRegistrationVote) GetCandidateNetworkAddress() string { return "" } -func (m *EventMetaNodeRegistrationVote) GetCandidateStatus() types2.BondStatus { +func (m *EventMetaNodeRegistrationVote) GetCandidateStatus() string { if m != nil { return m.CandidateStatus } - return types2.Unspecified + return "" } // EventWithdrawMetaNodeRegistrationDeposit is emitted on Msg/MsgWithdrawMetaNodeRegistrationDeposit type EventWithdrawMetaNodeRegistrationDeposit struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` - UnbondingMatureTime time.Time `protobuf:"bytes,3,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + UnbondingMatureTime string `protobuf:"bytes,3,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3" json:"unbonding_mature_time,omitempty"` } func (m *EventWithdrawMetaNodeRegistrationDeposit) Reset() { @@ -420,11 +431,11 @@ func (m *EventWithdrawMetaNodeRegistrationDeposit) GetNetworkAddress() string { return "" } -func (m *EventWithdrawMetaNodeRegistrationDeposit) GetUnbondingMatureTime() time.Time { +func (m *EventWithdrawMetaNodeRegistrationDeposit) GetUnbondingMatureTime() string { if m != nil { return m.UnbondingMatureTime } - return time.Time{} + return "" } // EventUpdateResourceNode is emitted on Msg/MsgUpdateResourceNode @@ -482,14 +493,14 @@ func (m *EventUpdateResourceNode) GetNetworkAddress() string { // EventUpdateResourceNodeDeposit is emitted on Msg/MsgUpdateResourceNodeDeposit type EventUpdateResourceNodeDeposit struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` - DepositDelta types1.Coin `protobuf:"bytes,3,opt,name=deposit_delta,json=depositDelta,proto3" json:"deposit_delta"` - CurrentDeposit types1.Coin `protobuf:"bytes,4,opt,name=current_deposit,json=currentDeposit,proto3" json:"current_deposit"` - AvailableTokenBefore types1.Coin `protobuf:"bytes,5,opt,name=available_token_before,json=availableTokenBefore,proto3" json:"available_token_before"` - AvailableTokenAfter types1.Coin `protobuf:"bytes,6,opt,name=available_token_after,json=availableTokenAfter,proto3" json:"available_token_after"` - OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` - UnbondingMatureTime time.Time `protobuf:"bytes,8,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + DepositDelta string `protobuf:"bytes,3,opt,name=deposit_delta,json=depositDelta,proto3" json:"deposit_delta,omitempty"` + CurrentDeposit string `protobuf:"bytes,4,opt,name=current_deposit,json=currentDeposit,proto3" json:"current_deposit,omitempty"` + AvailableTokenBefore string `protobuf:"bytes,5,opt,name=available_token_before,json=availableTokenBefore,proto3" json:"available_token_before,omitempty"` + AvailableTokenAfter string `protobuf:"bytes,6,opt,name=available_token_after,json=availableTokenAfter,proto3" json:"available_token_after,omitempty"` + OzoneLimitChanges string `protobuf:"bytes,7,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3" json:"ozone_limit_changes,omitempty"` + UnbondingMatureTime string `protobuf:"bytes,8,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3" json:"unbonding_mature_time,omitempty"` } func (m *EventUpdateResourceNodeDeposit) Reset() { *m = EventUpdateResourceNodeDeposit{} } @@ -539,46 +550,53 @@ func (m *EventUpdateResourceNodeDeposit) GetNetworkAddress() string { return "" } -func (m *EventUpdateResourceNodeDeposit) GetDepositDelta() types1.Coin { +func (m *EventUpdateResourceNodeDeposit) GetDepositDelta() string { if m != nil { return m.DepositDelta } - return types1.Coin{} + return "" } -func (m *EventUpdateResourceNodeDeposit) GetCurrentDeposit() types1.Coin { +func (m *EventUpdateResourceNodeDeposit) GetCurrentDeposit() string { if m != nil { return m.CurrentDeposit } - return types1.Coin{} + return "" } -func (m *EventUpdateResourceNodeDeposit) GetAvailableTokenBefore() types1.Coin { +func (m *EventUpdateResourceNodeDeposit) GetAvailableTokenBefore() string { if m != nil { return m.AvailableTokenBefore } - return types1.Coin{} + return "" } -func (m *EventUpdateResourceNodeDeposit) GetAvailableTokenAfter() types1.Coin { +func (m *EventUpdateResourceNodeDeposit) GetAvailableTokenAfter() string { if m != nil { return m.AvailableTokenAfter } - return types1.Coin{} + return "" +} + +func (m *EventUpdateResourceNodeDeposit) GetOzoneLimitChanges() string { + if m != nil { + return m.OzoneLimitChanges + } + return "" } -func (m *EventUpdateResourceNodeDeposit) GetUnbondingMatureTime() time.Time { +func (m *EventUpdateResourceNodeDeposit) GetUnbondingMatureTime() string { if m != nil { return m.UnbondingMatureTime } - return time.Time{} + return "" } // EventUpdateEffectiveDeposit is emitted on Msg/MsgUpdateEffectiveDeposit type EventUpdateEffectiveDeposit struct { - NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` - EffectiveDepositAfter github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=effective_deposit_after,json=effectiveDepositAfter,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"effective_deposit_after"` - IsUnsuspended bool `protobuf:"varint,3,opt,name=is_unsuspended,json=isUnsuspended,proto3" json:"is_unsuspended,omitempty"` + NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + EffectiveDepositAfter string `protobuf:"bytes,2,opt,name=effective_deposit_after,json=effectiveDepositAfter,proto3" json:"effective_deposit_after,omitempty"` + IsUnsuspended string `protobuf:"bytes,3,opt,name=is_unsuspended,json=isUnsuspended,proto3" json:"is_unsuspended,omitempty"` } func (m *EventUpdateEffectiveDeposit) Reset() { *m = EventUpdateEffectiveDeposit{} } @@ -621,11 +639,18 @@ func (m *EventUpdateEffectiveDeposit) GetNetworkAddress() string { return "" } -func (m *EventUpdateEffectiveDeposit) GetIsUnsuspended() bool { +func (m *EventUpdateEffectiveDeposit) GetEffectiveDepositAfter() string { + if m != nil { + return m.EffectiveDepositAfter + } + return "" +} + +func (m *EventUpdateEffectiveDeposit) GetIsUnsuspended() string { if m != nil { return m.IsUnsuspended } - return false + return "" } // EventUpdateMetaNode is emitted on Msg/MsgUpdateMetaNode @@ -683,14 +708,14 @@ func (m *EventUpdateMetaNode) GetNetworkAddress() string { // EventUpdateMetaNodeDeposit is emitted on Msg/MsgUpdateMetaNodeDeposit type EventUpdateMetaNodeDeposit struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` - DepositDelta types1.Coin `protobuf:"bytes,3,opt,name=deposit_delta,json=depositDelta,proto3" json:"deposit_delta"` - CurrentDeposit types1.Coin `protobuf:"bytes,4,opt,name=current_deposit,json=currentDeposit,proto3" json:"current_deposit"` - AvailableTokenBefore types1.Coin `protobuf:"bytes,5,opt,name=available_token_before,json=availableTokenBefore,proto3" json:"available_token_before"` - AvailableTokenAfter types1.Coin `protobuf:"bytes,6,opt,name=available_token_after,json=availableTokenAfter,proto3" json:"available_token_after"` - OzoneLimitChanges github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"ozone_limit_changes"` - UnbondingMatureTime time.Time `protobuf:"bytes,8,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3,stdtime" json:"unbonding_mature_time"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + DepositDelta string `protobuf:"bytes,3,opt,name=deposit_delta,json=depositDelta,proto3" json:"deposit_delta,omitempty"` + CurrentDeposit string `protobuf:"bytes,4,opt,name=current_deposit,json=currentDeposit,proto3" json:"current_deposit,omitempty"` + AvailableTokenBefore string `protobuf:"bytes,5,opt,name=available_token_before,json=availableTokenBefore,proto3" json:"available_token_before,omitempty"` + AvailableTokenAfter string `protobuf:"bytes,6,opt,name=available_token_after,json=availableTokenAfter,proto3" json:"available_token_after,omitempty"` + OzoneLimitChanges string `protobuf:"bytes,7,opt,name=ozone_limit_changes,json=ozoneLimitChanges,proto3" json:"ozone_limit_changes,omitempty"` + UnbondingMatureTime string `protobuf:"bytes,8,opt,name=unbonding_mature_time,json=unbondingMatureTime,proto3" json:"unbonding_mature_time,omitempty"` } func (m *EventUpdateMetaNodeDeposit) Reset() { *m = EventUpdateMetaNodeDeposit{} } @@ -740,45 +765,52 @@ func (m *EventUpdateMetaNodeDeposit) GetNetworkAddress() string { return "" } -func (m *EventUpdateMetaNodeDeposit) GetDepositDelta() types1.Coin { +func (m *EventUpdateMetaNodeDeposit) GetDepositDelta() string { if m != nil { return m.DepositDelta } - return types1.Coin{} + return "" } -func (m *EventUpdateMetaNodeDeposit) GetCurrentDeposit() types1.Coin { +func (m *EventUpdateMetaNodeDeposit) GetCurrentDeposit() string { if m != nil { return m.CurrentDeposit } - return types1.Coin{} + return "" } -func (m *EventUpdateMetaNodeDeposit) GetAvailableTokenBefore() types1.Coin { +func (m *EventUpdateMetaNodeDeposit) GetAvailableTokenBefore() string { if m != nil { return m.AvailableTokenBefore } - return types1.Coin{} + return "" } -func (m *EventUpdateMetaNodeDeposit) GetAvailableTokenAfter() types1.Coin { +func (m *EventUpdateMetaNodeDeposit) GetAvailableTokenAfter() string { if m != nil { return m.AvailableTokenAfter } - return types1.Coin{} + return "" +} + +func (m *EventUpdateMetaNodeDeposit) GetOzoneLimitChanges() string { + if m != nil { + return m.OzoneLimitChanges + } + return "" } -func (m *EventUpdateMetaNodeDeposit) GetUnbondingMatureTime() time.Time { +func (m *EventUpdateMetaNodeDeposit) GetUnbondingMatureTime() string { if m != nil { return m.UnbondingMatureTime } - return time.Time{} + return "" } // EventCompleteUnBondingResourceNode is emitted on EndBlocker type EventCompleteUnBondingResourceNode struct { - Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` - NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + Amount string `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` } func (m *EventCompleteUnBondingResourceNode) Reset() { *m = EventCompleteUnBondingResourceNode{} } @@ -814,11 +846,11 @@ func (m *EventCompleteUnBondingResourceNode) XXX_DiscardUnknown() { var xxx_messageInfo_EventCompleteUnBondingResourceNode proto.InternalMessageInfo -func (m *EventCompleteUnBondingResourceNode) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { +func (m *EventCompleteUnBondingResourceNode) GetAmount() string { if m != nil { return m.Amount } - return nil + return "" } func (m *EventCompleteUnBondingResourceNode) GetNetworkAddress() string { @@ -830,8 +862,8 @@ func (m *EventCompleteUnBondingResourceNode) GetNetworkAddress() string { // EventCompleteUnBondingMetaNode is emitted on EndBlocker type EventCompleteUnBondingMetaNode struct { - Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,1,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` - NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` + Amount string `protobuf:"bytes,1,opt,name=amount,proto3" json:"amount,omitempty"` + NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address,omitempty"` } func (m *EventCompleteUnBondingMetaNode) Reset() { *m = EventCompleteUnBondingMetaNode{} } @@ -867,11 +899,11 @@ func (m *EventCompleteUnBondingMetaNode) XXX_DiscardUnknown() { var xxx_messageInfo_EventCompleteUnBondingMetaNode proto.InternalMessageInfo -func (m *EventCompleteUnBondingMetaNode) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { +func (m *EventCompleteUnBondingMetaNode) GetAmount() string { if m != nil { return m.Amount } - return nil + return "" } func (m *EventCompleteUnBondingMetaNode) GetNetworkAddress() string { @@ -881,6 +913,70 @@ func (m *EventCompleteUnBondingMetaNode) GetNetworkAddress() string { return "" } +// EventMessage +type EventMessage struct { + // module which emits the event + Module string `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"` + // sender of the message + Sender string `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` + // tx_type is the type of the message + Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` +} + +func (m *EventMessage) Reset() { *m = EventMessage{} } +func (m *EventMessage) String() string { return proto.CompactTextString(m) } +func (*EventMessage) ProtoMessage() {} +func (*EventMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_9f4bedab5b811f13, []int{13} +} +func (m *EventMessage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventMessage.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 *EventMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventMessage.Merge(m, src) +} +func (m *EventMessage) XXX_Size() int { + return m.Size() +} +func (m *EventMessage) XXX_DiscardUnknown() { + xxx_messageInfo_EventMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_EventMessage proto.InternalMessageInfo + +func (m *EventMessage) GetModule() string { + if m != nil { + return m.Module + } + return "" +} + +func (m *EventMessage) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventMessage) GetAction() string { + if m != nil { + return m.Action + } + return "" +} + func init() { proto.RegisterType((*EventCreateResourceNode)(nil), "stratos.register.v1.EventCreateResourceNode") proto.RegisterType((*EventCreateMetaNode)(nil), "stratos.register.v1.EventCreateMetaNode") @@ -895,76 +991,62 @@ func init() { proto.RegisterType((*EventUpdateMetaNodeDeposit)(nil), "stratos.register.v1.EventUpdateMetaNodeDeposit") proto.RegisterType((*EventCompleteUnBondingResourceNode)(nil), "stratos.register.v1.EventCompleteUnBondingResourceNode") proto.RegisterType((*EventCompleteUnBondingMetaNode)(nil), "stratos.register.v1.EventCompleteUnBondingMetaNode") + proto.RegisterType((*EventMessage)(nil), "stratos.register.v1.EventMessage") } func init() { proto.RegisterFile("stratos/register/v1/event.proto", fileDescriptor_9f4bedab5b811f13) } var fileDescriptor_9f4bedab5b811f13 = []byte{ - // 1022 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x58, 0xcf, 0x6f, 0x1b, 0xc5, - 0x17, 0xcf, 0xc6, 0x89, 0xbf, 0xe9, 0xb4, 0x71, 0xbe, 0xb5, 0x93, 0xc6, 0x09, 0xc2, 0x8e, 0x56, - 0x80, 0x72, 0xc9, 0x6e, 0x13, 0xe0, 0x06, 0x87, 0x38, 0x29, 0xa2, 0x6a, 0x13, 0xa1, 0x4d, 0x02, - 0x88, 0xcb, 0x6a, 0x76, 0xf7, 0xd9, 0x19, 0xd9, 0x3b, 0x63, 0xcd, 0xbc, 0x75, 0x31, 0x7f, 0x02, - 0x87, 0xaa, 0x17, 0x90, 0xf8, 0x17, 0x38, 0xe7, 0x4f, 0xe0, 0x10, 0x21, 0x0e, 0x55, 0x4f, 0x88, - 0x43, 0x8b, 0x92, 0x7f, 0x02, 0x0e, 0x48, 0x68, 0x77, 0x67, 0x9d, 0x9f, 0x26, 0x2e, 0x4e, 0x31, - 0x48, 0x3d, 0xd9, 0xbb, 0xf3, 0x3e, 0x9f, 0x79, 0xef, 0x7d, 0xde, 0x7b, 0x33, 0x36, 0xa9, 0x2a, - 0x94, 0x14, 0x85, 0xb2, 0x25, 0x34, 0x98, 0x42, 0x90, 0x76, 0x67, 0xd5, 0x86, 0x0e, 0x70, 0xb4, - 0xda, 0x52, 0xa0, 0x28, 0x96, 0xb4, 0x81, 0x95, 0x19, 0x58, 0x9d, 0xd5, 0xc5, 0xd9, 0x86, 0x68, - 0x88, 0x64, 0xdd, 0x8e, 0xbf, 0xa5, 0xa6, 0x8b, 0x0b, 0xbe, 0x50, 0xa1, 0x50, 0x6e, 0xba, 0x90, - 0x3e, 0xe8, 0xa5, 0x4a, 0xfa, 0x64, 0x7b, 0x54, 0x81, 0xdd, 0x59, 0xf5, 0x00, 0xe9, 0xaa, 0xed, - 0x0b, 0xc6, 0x33, 0x68, 0x43, 0x88, 0x46, 0x0b, 0xec, 0xe4, 0xc9, 0x8b, 0xea, 0x36, 0xe5, 0x5d, - 0xbd, 0x54, 0x3d, 0xbf, 0x84, 0x2c, 0x04, 0x85, 0x34, 0x6c, 0x6b, 0x83, 0xb7, 0x34, 0xb7, 0x42, - 0xda, 0x64, 0xbc, 0xd1, 0xa3, 0xd7, 0xcf, 0xa9, 0x95, 0xf9, 0x38, 0x47, 0xe6, 0xef, 0xc5, 0x71, - 0x6d, 0x48, 0xa0, 0x08, 0x0e, 0x28, 0x11, 0x49, 0x1f, 0xb6, 0x45, 0x00, 0xc5, 0xbb, 0x24, 0xaf, - 0x80, 0x07, 0x20, 0xcb, 0xc6, 0x92, 0xb1, 0x7c, 0xa3, 0x56, 0x7e, 0x76, 0xb0, 0x32, 0xab, 0xfd, - 0x5f, 0x0f, 0x02, 0x09, 0x4a, 0xed, 0xa0, 0x64, 0xbc, 0xe1, 0x68, 0xbb, 0xe2, 0x3a, 0x99, 0xe1, - 0x80, 0x8f, 0x84, 0x6c, 0xba, 0x34, 0x35, 0x28, 0x8f, 0x5f, 0x01, 0x2d, 0x68, 0x80, 0x7e, 0x5b, - 0xfc, 0x88, 0xe4, 0xdb, 0x91, 0xd7, 0x84, 0x6e, 0x39, 0xb7, 0x64, 0x2c, 0xdf, 0x5c, 0x9b, 0xb5, - 0xd2, 0x40, 0xad, 0x2c, 0x50, 0x6b, 0x9d, 0x77, 0x6b, 0xe5, 0x1f, 0x4f, 0xf8, 0x7c, 0xd9, 0x6d, - 0xa3, 0xb0, 0x3e, 0x89, 0xbc, 0x07, 0xd0, 0x75, 0x34, 0xba, 0xd8, 0x22, 0x25, 0xf1, 0x95, 0xe0, - 0xe0, 0xb6, 0x58, 0xc8, 0xd0, 0xf5, 0xf7, 0x29, 0x6f, 0x80, 0x2a, 0x4f, 0x24, 0xee, 0x7c, 0x70, - 0xf8, 0xbc, 0x3a, 0xf6, 0xcb, 0xf3, 0xea, 0x3b, 0x0d, 0x86, 0xfb, 0x91, 0x67, 0xf9, 0x22, 0xd4, - 0xc2, 0xe8, 0x8f, 0x15, 0x15, 0x34, 0x6d, 0xec, 0xb6, 0x41, 0x59, 0xf7, 0x39, 0x3e, 0x3b, 0x58, - 0x21, 0x7a, 0xb3, 0xfb, 0x1c, 0x9d, 0xdb, 0x09, 0xf1, 0xc3, 0x98, 0x77, 0x23, 0xa5, 0x2d, 0x7e, - 0x4c, 0x66, 0x18, 0x67, 0xc8, 0x68, 0xcb, 0x0d, 0xa0, 0x2d, 0x14, 0xc3, 0xf2, 0x64, 0xe2, 0xfe, - 0x82, 0xa5, 0x81, 0xb1, 0xc4, 0x96, 0xd6, 0xc0, 0xda, 0x10, 0x8c, 0xd7, 0x26, 0x62, 0x27, 0x9c, - 0x82, 0xc6, 0x6d, 0xa6, 0x30, 0xf3, 0x37, 0x83, 0x94, 0x4e, 0x09, 0xb2, 0x05, 0x48, 0x47, 0x27, - 0x46, 0x9f, 0x24, 0xe6, 0x5e, 0x49, 0x12, 0xcd, 0x83, 0x71, 0xb2, 0x98, 0x84, 0xbe, 0xc7, 0x6b, - 0x82, 0x07, 0xb1, 0x43, 0xc3, 0x95, 0xe3, 0x87, 0x64, 0x5a, 0x6a, 0x06, 0x97, 0x8b, 0x00, 0xae, - 0x8c, 0xff, 0x96, 0x3c, 0xbd, 0xe1, 0x03, 0x72, 0x5b, 0x8b, 0xe9, 0xa2, 0x70, 0x25, 0x84, 0xa2, - 0x03, 0xba, 0x2a, 0xaf, 0x94, 0x75, 0x46, 0x23, 0x77, 0x85, 0x93, 0xe0, 0x8a, 0x9f, 0x93, 0xb9, - 0x88, 0x7b, 0x69, 0x58, 0x6e, 0x48, 0x31, 0x92, 0xe0, 0xc6, 0x2d, 0x9b, 0x54, 0xe4, 0xcd, 0xb5, - 0xc5, 0x0b, 0x65, 0xbe, 0x9b, 0xf5, 0x73, 0x6d, 0x2a, 0x66, 0x7c, 0xf2, 0xa2, 0x6a, 0x38, 0xa5, - 0x1e, 0xc5, 0x56, 0xc2, 0x10, 0xdb, 0x98, 0xdf, 0xe6, 0xc8, 0x9d, 0xb3, 0x69, 0x1b, 0xa2, 0x68, - 0xde, 0x27, 0x37, 0x42, 0x40, 0x3a, 0x58, 0xba, 0xa6, 0xc2, 0x6c, 0xa3, 0x7f, 0xb4, 0x50, 0x2e, - 0x17, 0x66, 0xe2, 0xba, 0x85, 0x99, 0x1c, 0x56, 0x98, 0x1f, 0xc6, 0xc9, 0x9b, 0x89, 0x30, 0x99, - 0x1e, 0x4e, 0x72, 0x56, 0x48, 0x8a, 0x4c, 0xf0, 0x4f, 0x05, 0xfe, 0x1d, 0x7d, 0x1e, 0x92, 0xb9, - 0x8e, 0x40, 0x90, 0xee, 0xcb, 0xb6, 0x76, 0x29, 0x81, 0x6d, 0x9f, 0xed, 0xef, 0x5d, 0xb2, 0xe0, - 0x53, 0x1e, 0xb0, 0x80, 0x22, 0x5c, 0x60, 0xcc, 0x5d, 0xc1, 0x38, 0xdf, 0x83, 0x9e, 0x63, 0xdd, - 0x22, 0xff, 0x3f, 0x61, 0x55, 0x48, 0x31, 0x4a, 0xe7, 0x6e, 0x61, 0xcd, 0xcc, 0xd4, 0xc9, 0x0e, - 0xa1, 0x4c, 0xa0, 0xb8, 0x70, 0x77, 0x12, 0x4b, 0x67, 0xa6, 0x87, 0x4d, 0x5f, 0x98, 0xbf, 0x1b, - 0x64, 0x39, 0x49, 0xe3, 0x67, 0x0c, 0xf7, 0x03, 0x49, 0x1f, 0x5d, 0x96, 0x4e, 0x3d, 0x3e, 0x47, - 0x33, 0x26, 0xfb, 0x96, 0x50, 0x6e, 0xd8, 0x12, 0x7a, 0x6c, 0xe8, 0xe3, 0x79, 0xaf, 0x1d, 0xfc, - 0x1b, 0x8e, 0x67, 0xf3, 0xbb, 0x49, 0x52, 0xe9, 0xe3, 0xd0, 0x48, 0x25, 0xd8, 0x24, 0xd3, 0xd9, - 0x48, 0x08, 0xa0, 0x85, 0x74, 0xd0, 0x39, 0x7d, 0x4b, 0xa3, 0x36, 0x63, 0x50, 0x7c, 0x8c, 0xfb, - 0x91, 0x94, 0xc0, 0xb1, 0x77, 0x8c, 0x0f, 0x38, 0x56, 0x0a, 0x1a, 0x97, 0x25, 0x61, 0x8f, 0xdc, - 0xa1, 0x1d, 0xca, 0x5a, 0xd4, 0x6b, 0x81, 0x8b, 0xa2, 0x09, 0xdc, 0xf5, 0xa0, 0x2e, 0x24, 0x0c, - 0x7a, 0x2f, 0x98, 0xed, 0xc1, 0x77, 0x63, 0x74, 0x2d, 0x01, 0x17, 0x77, 0xc8, 0xdc, 0x79, 0x5a, - 0x5a, 0x47, 0x90, 0xe5, 0xfc, 0x60, 0xac, 0xa5, 0xb3, 0xac, 0xeb, 0x31, 0xb6, 0xdf, 0xf0, 0xfe, - 0xdf, 0xab, 0x19, 0xde, 0x7d, 0x9b, 0x65, 0x6a, 0xd8, 0x66, 0xf9, 0xc3, 0x20, 0x6f, 0x9c, 0xaa, - 0xcd, 0x7b, 0xf5, 0x3a, 0xf8, 0xc8, 0x3a, 0xbd, 0xc2, 0xbc, 0xa4, 0xcc, 0x8c, 0x97, 0x2c, 0x33, - 0x24, 0xf3, 0x90, 0xd1, 0x66, 0x25, 0xa2, 0x15, 0x18, 0xbf, 0x86, 0x74, 0xcd, 0xc1, 0x39, 0x9f, - 0x53, 0x81, 0xde, 0x26, 0x05, 0xa6, 0xdc, 0x88, 0xab, 0x48, 0xb5, 0xe3, 0x8e, 0x09, 0x92, 0xea, - 0x9e, 0x72, 0xa6, 0x99, 0xda, 0x3b, 0x79, 0x69, 0x7e, 0x9d, 0x5d, 0x1d, 0xd3, 0xf8, 0x47, 0x7a, - 0x75, 0x34, 0xbf, 0x99, 0xcc, 0x2e, 0x73, 0x67, 0x9c, 0x79, 0x3d, 0x24, 0x5e, 0x0f, 0x89, 0x91, - 0x0e, 0x89, 0x9f, 0x0c, 0x62, 0xa6, 0xbf, 0xaf, 0x44, 0xd8, 0x6e, 0x01, 0xc2, 0xe5, 0x3f, 0x36, - 0x7c, 0x92, 0xa7, 0xa1, 0x88, 0x38, 0x96, 0x8d, 0xa5, 0xdc, 0x5f, 0x27, 0xed, 0x6e, 0xbc, 0xe1, - 0xf7, 0x2f, 0xaa, 0xcb, 0x03, 0x04, 0x1f, 0x03, 0x94, 0xa3, 0xa9, 0xaf, 0xa3, 0xcd, 0x0e, 0x0d, - 0x7d, 0x1e, 0x5f, 0x08, 0xa7, 0xd7, 0xfe, 0xff, 0x91, 0x50, 0x6a, 0xdb, 0x87, 0x47, 0x15, 0xe3, - 0xe9, 0x51, 0xc5, 0xf8, 0xf5, 0xa8, 0x62, 0x3c, 0x39, 0xae, 0x8c, 0x3d, 0x3d, 0xae, 0x8c, 0xfd, - 0x7c, 0x5c, 0x19, 0xfb, 0xe2, 0xbd, 0x53, 0xee, 0xe8, 0xff, 0x5d, 0x38, 0x60, 0xf6, 0x75, 0xc5, - 0xdf, 0xa7, 0x8c, 0xdb, 0x5f, 0x9e, 0xfc, 0x57, 0x93, 0x38, 0xe8, 0xe5, 0x93, 0xe2, 0x78, 0xf7, - 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd1, 0xf5, 0xa4, 0x1f, 0xcc, 0x11, 0x00, 0x00, + // 775 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x56, 0xcb, 0x4e, 0x14, 0x4d, + 0x14, 0xa6, 0x87, 0xcb, 0x0f, 0x15, 0x2e, 0x3f, 0x33, 0x3f, 0x30, 0xbf, 0xc4, 0xd1, 0x34, 0x31, + 0xa2, 0x89, 0x33, 0x01, 0x89, 0x0b, 0x77, 0xdc, 0x76, 0xc2, 0x62, 0x04, 0x4c, 0xd8, 0x74, 0x6a, + 0xba, 0xcf, 0xcc, 0x54, 0x98, 0xae, 0x9a, 0x54, 0x9d, 0x6e, 0xc4, 0x07, 0x70, 0xed, 0x1b, 0xb8, + 0xf2, 0x21, 0x7c, 0x03, 0x13, 0x37, 0xc4, 0x95, 0x1b, 0x13, 0x03, 0x4f, 0xe1, 0xc2, 0xc4, 0x74, + 0x57, 0xd5, 0x30, 0x03, 0xd3, 0x11, 0xc2, 0xc4, 0x95, 0xbb, 0xae, 0x73, 0xeb, 0xf3, 0x7d, 0xe7, + 0x52, 0x45, 0xee, 0x29, 0x94, 0x14, 0x85, 0xaa, 0x48, 0x68, 0x30, 0x85, 0x20, 0x2b, 0xf1, 0x4a, + 0x05, 0x62, 0xe0, 0x58, 0x6e, 0x4b, 0x81, 0x22, 0x5f, 0x30, 0x06, 0x65, 0x6b, 0x50, 0x8e, 0x57, + 0xdc, 0xcf, 0x0e, 0x59, 0xd8, 0x4e, 0x8c, 0x36, 0x25, 0x50, 0x84, 0x2a, 0x28, 0x11, 0x49, 0x1f, + 0x76, 0x45, 0x00, 0xf9, 0x79, 0x32, 0xa6, 0x80, 0x07, 0x20, 0x8b, 0xce, 0x7d, 0x67, 0x79, 0xa2, + 0x6a, 0x4e, 0xf9, 0x87, 0x64, 0x86, 0x03, 0x1e, 0x0b, 0x79, 0xe4, 0xd1, 0x20, 0x90, 0xa0, 0x54, + 0x31, 0x97, 0x1a, 0x4c, 0x1b, 0xf1, 0xba, 0x96, 0x26, 0x01, 0xda, 0x51, 0xed, 0x08, 0x4e, 0x8a, + 0xc3, 0x3a, 0x80, 0x3e, 0xe5, 0xcb, 0xa4, 0x20, 0xde, 0x08, 0x0e, 0x5e, 0x8b, 0x85, 0x0c, 0x3d, + 0xbf, 0x49, 0x79, 0x03, 0x54, 0x71, 0x24, 0x35, 0x9a, 0x4d, 0x55, 0x2f, 0x12, 0xcd, 0xa6, 0x56, + 0x24, 0x3f, 0x64, 0x9c, 0x21, 0xa3, 0x2d, 0x2f, 0x80, 0xb6, 0x50, 0x0c, 0x8b, 0xa3, 0xfa, 0x87, + 0x46, 0xbc, 0xa5, 0xa5, 0xee, 0x5b, 0x87, 0x14, 0xba, 0xd0, 0xec, 0x00, 0xd2, 0xc1, 0x20, 0xc9, + 0xc8, 0x78, 0x38, 0x23, 0x63, 0xf7, 0xa3, 0x43, 0xee, 0xa4, 0x89, 0xec, 0xf3, 0x0d, 0xc1, 0x03, + 0xc6, 0x1b, 0xd7, 0x62, 0x76, 0x89, 0x4c, 0x49, 0x63, 0xe7, 0x71, 0x11, 0x80, 0xc9, 0x66, 0x52, + 0x76, 0x3b, 0x3f, 0x26, 0xb3, 0x86, 0x05, 0x0f, 0x85, 0x27, 0x21, 0x14, 0x31, 0x98, 0x4c, 0x66, + 0x8c, 0x62, 0x4f, 0x54, 0x53, 0x71, 0x7e, 0x95, 0xcc, 0x45, 0xbc, 0xa6, 0x33, 0xf0, 0x42, 0x8a, + 0x91, 0x04, 0x0f, 0x59, 0x08, 0x86, 0xeb, 0x42, 0x47, 0xb9, 0x93, 0xea, 0xf6, 0x58, 0x08, 0xee, + 0x37, 0x87, 0xcc, 0xf7, 0xe6, 0xfe, 0x5b, 0x1e, 0x17, 0xc9, 0x44, 0x08, 0x48, 0xbb, 0x73, 0x1e, + 0x0f, 0xad, 0xd3, 0x0d, 0xb9, 0xeb, 0x8f, 0x6f, 0xe4, 0x86, 0xf8, 0x46, 0xb3, 0xf1, 0x7d, 0x71, + 0xc8, 0xdd, 0x14, 0x9f, 0x85, 0x55, 0x4d, 0xe7, 0x41, 0x52, 0x64, 0x82, 0x1f, 0x08, 0xcc, 0x86, + 0xb9, 0x4a, 0xe6, 0x62, 0x81, 0x20, 0xbd, 0xfe, 0x4d, 0x53, 0x48, 0x95, 0xbb, 0xbd, 0x9d, 0xf3, + 0x9c, 0xfc, 0xef, 0x53, 0x1e, 0xb0, 0x80, 0x22, 0x5c, 0xf1, 0xd3, 0x1c, 0x2c, 0x74, 0x0c, 0x2e, + 0xf9, 0x3e, 0x22, 0xff, 0x5e, 0xf8, 0x2a, 0xa4, 0x18, 0xd9, 0x21, 0x99, 0xe9, 0xc8, 0x5f, 0xa6, + 0x62, 0xf7, 0xbd, 0x43, 0x96, 0x53, 0x50, 0xaf, 0x18, 0x36, 0x03, 0x49, 0x8f, 0xfb, 0x81, 0x33, + 0x63, 0x72, 0xfb, 0x71, 0xc8, 0xa4, 0x7d, 0x38, 0x9b, 0xf6, 0x43, 0xb3, 0x68, 0xf6, 0xdb, 0xc1, + 0xa0, 0x17, 0x8d, 0xfb, 0x33, 0x47, 0x4a, 0x19, 0xc1, 0x07, 0x86, 0x79, 0x89, 0x4c, 0xd9, 0xb6, + 0x0c, 0xa0, 0x85, 0xd4, 0x60, 0x9d, 0x34, 0xc2, 0xad, 0x44, 0x96, 0x44, 0xf3, 0x23, 0x29, 0x81, + 0x63, 0x67, 0x53, 0xe9, 0x82, 0x4d, 0x1b, 0xb1, 0x4d, 0x67, 0x8d, 0xcc, 0xd3, 0x98, 0xb2, 0x16, + 0xad, 0xb5, 0xc0, 0x43, 0x71, 0x04, 0xdc, 0xab, 0x41, 0x5d, 0x48, 0xdb, 0xb9, 0xff, 0x75, 0xb4, + 0x7b, 0x89, 0x72, 0x23, 0xd5, 0x25, 0xbc, 0x5f, 0xf6, 0xa2, 0x75, 0x04, 0x59, 0x1c, 0xd3, 0xbc, + 0xf7, 0x3a, 0xad, 0x27, 0xaa, 0xac, 0xf1, 0xfb, 0x27, 0x6b, 0xfc, 0x32, 0x6b, 0x3b, 0x9e, 0x5d, + 0xdb, 0x0f, 0x0e, 0x59, 0xec, 0xe2, 0x7f, 0xbb, 0x5e, 0x07, 0x1f, 0x59, 0xdc, 0x21, 0xbf, 0x0f, + 0xc9, 0x4e, 0x5f, 0x92, 0x9f, 0x91, 0x05, 0xb0, 0xce, 0x96, 0x41, 0x03, 0x51, 0x57, 0x65, 0x0e, + 0x2e, 0xc5, 0xd6, 0x20, 0x1f, 0x90, 0x69, 0xa6, 0xbc, 0x88, 0xab, 0x48, 0xb5, 0x93, 0xba, 0x06, + 0xa6, 0x3a, 0x53, 0x4c, 0xed, 0x5f, 0x08, 0xdd, 0x03, 0x73, 0x3d, 0xe8, 0x34, 0x07, 0x76, 0x3d, + 0xb8, 0x3f, 0x72, 0x76, 0xdd, 0xf7, 0x04, 0xfe, 0xdb, 0x7b, 0x7f, 0xa0, 0xf7, 0x80, 0xb8, 0xfa, + 0xca, 0x17, 0x61, 0xbb, 0x05, 0x08, 0x99, 0x37, 0x2e, 0x0d, 0x45, 0xc4, 0xd1, 0x96, 0x40, 0x9f, + 0xae, 0x5f, 0x62, 0x6a, 0x36, 0xcc, 0x95, 0xdf, 0x74, 0x77, 0xd1, 0xed, 0x7e, 0x71, 0x40, 0x26, + 0xcd, 0xbd, 0xa4, 0x14, 0x6d, 0xa4, 0x01, 0x43, 0x11, 0x44, 0x2d, 0xb0, 0x01, 0xf5, 0xa9, 0xab, + 0x9d, 0x72, 0x3d, 0xed, 0x94, 0x24, 0xe0, 0x27, 0x7b, 0xde, 0x3e, 0xb7, 0xf4, 0x69, 0x63, 0xf7, + 0xd3, 0x59, 0xc9, 0x39, 0x3d, 0x2b, 0x39, 0xdf, 0xcf, 0x4a, 0xce, 0xbb, 0xf3, 0xd2, 0xd0, 0xe9, + 0x79, 0x69, 0xe8, 0xeb, 0x79, 0x69, 0xe8, 0x70, 0xad, 0xc1, 0xb0, 0x19, 0xd5, 0xca, 0xbe, 0x08, + 0x2b, 0xe6, 0x75, 0xc8, 0x01, 0xed, 0xe7, 0x13, 0xbf, 0x49, 0x19, 0xaf, 0xbc, 0xbe, 0x78, 0x51, + 0xe2, 0x49, 0x1b, 0x54, 0x6d, 0x2c, 0x7d, 0x4f, 0x3e, 0xfd, 0x15, 0x00, 0x00, 0xff, 0xff, 0x1b, + 0xa7, 0x84, 0x36, 0x72, 0x0a, 0x00, 0x00, } func (m *EventCreateResourceNode) Marshal() (dAtA []byte, err error) { @@ -987,35 +1069,24 @@ func (m *EventCreateResourceNode) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - { - size, err := m.InitialDeposit.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - { - size := m.OzoneLimitChanges.Size() - i -= size - if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.InitialDeposit) > 0 { + i -= len(m.InitialDeposit) + copy(dAtA[i:], m.InitialDeposit) + i = encodeVarintEvent(dAtA, i, uint64(len(m.InitialDeposit))) + i-- + dAtA[i] = 0x2a } - i-- - dAtA[i] = 0x22 - if m.Pubkey != nil { - { - size, err := m.Pubkey.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) - } + if len(m.OzoneLimitChanges) > 0 { + i -= len(m.OzoneLimitChanges) + copy(dAtA[i:], m.OzoneLimitChanges) + i = encodeVarintEvent(dAtA, i, uint64(len(m.OzoneLimitChanges))) + i-- + dAtA[i] = 0x22 + } + if len(m.Pubkey) > 0 { + i -= len(m.Pubkey) + copy(dAtA[i:], m.Pubkey) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Pubkey))) i-- dAtA[i] = 0x1a } @@ -1056,16 +1127,13 @@ func (m *EventCreateMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size := m.OzoneLimitChanges.Size() - i -= size - if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.OzoneLimitChanges) > 0 { + i -= len(m.OzoneLimitChanges) + copy(dAtA[i:], m.OzoneLimitChanges) + i = encodeVarintEvent(dAtA, i, uint64(len(m.OzoneLimitChanges))) + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x1a if len(m.NetworkAddress) > 0 { i -= len(m.NetworkAddress) copy(dAtA[i:], m.NetworkAddress) @@ -1103,24 +1171,20 @@ func (m *EventUnBondingResourceNode) MarshalToSizedBuffer(dAtA []byte) (int, err _ = i var l int _ = l - n3, err3 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) - if err3 != nil { - return 0, err3 - } - i -= n3 - i = encodeVarintEvent(dAtA, i, uint64(n3)) - i-- - dAtA[i] = 0x22 - { - size, err := m.DepositToRemove.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.UnbondingMatureTime) > 0 { + i -= len(m.UnbondingMatureTime) + copy(dAtA[i:], m.UnbondingMatureTime) + i = encodeVarintEvent(dAtA, i, uint64(len(m.UnbondingMatureTime))) + i-- + dAtA[i] = 0x22 + } + if len(m.DepositToRemove) > 0 { + i -= len(m.DepositToRemove) + copy(dAtA[i:], m.DepositToRemove) + i = encodeVarintEvent(dAtA, i, uint64(len(m.DepositToRemove))) + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x1a if len(m.ResourceNode) > 0 { i -= len(m.ResourceNode) copy(dAtA[i:], m.ResourceNode) @@ -1158,34 +1222,27 @@ func (m *EventUnBondingMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) _ = i var l int _ = l - n5, err5 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) - if err5 != nil { - return 0, err5 - } - i -= n5 - i = encodeVarintEvent(dAtA, i, uint64(n5)) - i-- - dAtA[i] = 0x2a - { - size, err := m.DepositToRemove.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - { - size := m.OzoneLimitChanges.Size() - i -= size - if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.UnbondingMatureTime) > 0 { + i -= len(m.UnbondingMatureTime) + copy(dAtA[i:], m.UnbondingMatureTime) + i = encodeVarintEvent(dAtA, i, uint64(len(m.UnbondingMatureTime))) + i-- + dAtA[i] = 0x2a + } + if len(m.DepositToRemove) > 0 { + i -= len(m.DepositToRemove) + copy(dAtA[i:], m.DepositToRemove) + i = encodeVarintEvent(dAtA, i, uint64(len(m.DepositToRemove))) + i-- + dAtA[i] = 0x22 + } + if len(m.OzoneLimitChanges) > 0 { + i -= len(m.OzoneLimitChanges) + copy(dAtA[i:], m.OzoneLimitChanges) + i = encodeVarintEvent(dAtA, i, uint64(len(m.OzoneLimitChanges))) + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x1a if len(m.MetaNode) > 0 { i -= len(m.MetaNode) copy(dAtA[i:], m.MetaNode) @@ -1223,10 +1280,12 @@ func (m *EventMetaNodeRegistrationVote) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l - if m.CandidateStatus != 0 { - i = encodeVarintEvent(dAtA, i, uint64(m.CandidateStatus)) + if len(m.CandidateStatus) > 0 { + i -= len(m.CandidateStatus) + copy(dAtA[i:], m.CandidateStatus) + i = encodeVarintEvent(dAtA, i, uint64(len(m.CandidateStatus))) i-- - dAtA[i] = 0x20 + dAtA[i] = 0x22 } if len(m.CandidateNetworkAddress) > 0 { i -= len(m.CandidateNetworkAddress) @@ -1272,14 +1331,13 @@ func (m *EventWithdrawMetaNodeRegistrationDeposit) MarshalToSizedBuffer(dAtA []b _ = i var l int _ = l - n7, err7 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) - if err7 != nil { - return 0, err7 - } - i -= n7 - i = encodeVarintEvent(dAtA, i, uint64(n7)) - i-- - dAtA[i] = 0x1a + if len(m.UnbondingMatureTime) > 0 { + i -= len(m.UnbondingMatureTime) + copy(dAtA[i:], m.UnbondingMatureTime) + i = encodeVarintEvent(dAtA, i, uint64(len(m.UnbondingMatureTime))) + i-- + dAtA[i] = 0x1a + } if len(m.NetworkAddress) > 0 { i -= len(m.NetworkAddress) copy(dAtA[i:], m.NetworkAddress) @@ -1354,64 +1412,48 @@ func (m *EventUpdateResourceNodeDeposit) MarshalToSizedBuffer(dAtA []byte) (int, _ = i var l int _ = l - n8, err8 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) - if err8 != nil { - return 0, err8 - } - i -= n8 - i = encodeVarintEvent(dAtA, i, uint64(n8)) - i-- - dAtA[i] = 0x42 - { - size := m.OzoneLimitChanges.Size() - i -= size - if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.UnbondingMatureTime) > 0 { + i -= len(m.UnbondingMatureTime) + copy(dAtA[i:], m.UnbondingMatureTime) + i = encodeVarintEvent(dAtA, i, uint64(len(m.UnbondingMatureTime))) + i-- + dAtA[i] = 0x42 } - i-- - dAtA[i] = 0x3a - { - size, err := m.AvailableTokenAfter.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.OzoneLimitChanges) > 0 { + i -= len(m.OzoneLimitChanges) + copy(dAtA[i:], m.OzoneLimitChanges) + i = encodeVarintEvent(dAtA, i, uint64(len(m.OzoneLimitChanges))) + i-- + dAtA[i] = 0x3a } - i-- - dAtA[i] = 0x32 - { - size, err := m.AvailableTokenBefore.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.AvailableTokenAfter) > 0 { + i -= len(m.AvailableTokenAfter) + copy(dAtA[i:], m.AvailableTokenAfter) + i = encodeVarintEvent(dAtA, i, uint64(len(m.AvailableTokenAfter))) + i-- + dAtA[i] = 0x32 } - i-- - dAtA[i] = 0x2a - { - size, err := m.CurrentDeposit.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.AvailableTokenBefore) > 0 { + i -= len(m.AvailableTokenBefore) + copy(dAtA[i:], m.AvailableTokenBefore) + i = encodeVarintEvent(dAtA, i, uint64(len(m.AvailableTokenBefore))) + i-- + dAtA[i] = 0x2a } - i-- - dAtA[i] = 0x22 - { - size, err := m.DepositDelta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.CurrentDeposit) > 0 { + i -= len(m.CurrentDeposit) + copy(dAtA[i:], m.CurrentDeposit) + i = encodeVarintEvent(dAtA, i, uint64(len(m.CurrentDeposit))) + i-- + dAtA[i] = 0x22 + } + if len(m.DepositDelta) > 0 { + i -= len(m.DepositDelta) + copy(dAtA[i:], m.DepositDelta) + i = encodeVarintEvent(dAtA, i, uint64(len(m.DepositDelta))) + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x1a if len(m.NetworkAddress) > 0 { i -= len(m.NetworkAddress) copy(dAtA[i:], m.NetworkAddress) @@ -1449,26 +1491,20 @@ func (m *EventUpdateEffectiveDeposit) MarshalToSizedBuffer(dAtA []byte) (int, er _ = i var l int _ = l - if m.IsUnsuspended { + if len(m.IsUnsuspended) > 0 { + i -= len(m.IsUnsuspended) + copy(dAtA[i:], m.IsUnsuspended) + i = encodeVarintEvent(dAtA, i, uint64(len(m.IsUnsuspended))) i-- - if m.IsUnsuspended { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } - { - size := m.EffectiveDepositAfter.Size() - i -= size - if _, err := m.EffectiveDepositAfter.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.EffectiveDepositAfter) > 0 { + i -= len(m.EffectiveDepositAfter) + copy(dAtA[i:], m.EffectiveDepositAfter) + i = encodeVarintEvent(dAtA, i, uint64(len(m.EffectiveDepositAfter))) + i-- + dAtA[i] = 0x12 } - i-- - dAtA[i] = 0x12 if len(m.NetworkAddress) > 0 { i -= len(m.NetworkAddress) copy(dAtA[i:], m.NetworkAddress) @@ -1536,64 +1572,48 @@ func (m *EventUpdateMetaNodeDeposit) MarshalToSizedBuffer(dAtA []byte) (int, err _ = i var l int _ = l - n13, err13 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.UnbondingMatureTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime):]) - if err13 != nil { - return 0, err13 - } - i -= n13 - i = encodeVarintEvent(dAtA, i, uint64(n13)) - i-- - dAtA[i] = 0x42 - { - size := m.OzoneLimitChanges.Size() - i -= size - if _, err := m.OzoneLimitChanges.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.UnbondingMatureTime) > 0 { + i -= len(m.UnbondingMatureTime) + copy(dAtA[i:], m.UnbondingMatureTime) + i = encodeVarintEvent(dAtA, i, uint64(len(m.UnbondingMatureTime))) + i-- + dAtA[i] = 0x42 } - i-- - dAtA[i] = 0x3a - { - size, err := m.AvailableTokenAfter.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.OzoneLimitChanges) > 0 { + i -= len(m.OzoneLimitChanges) + copy(dAtA[i:], m.OzoneLimitChanges) + i = encodeVarintEvent(dAtA, i, uint64(len(m.OzoneLimitChanges))) + i-- + dAtA[i] = 0x3a } - i-- - dAtA[i] = 0x32 - { - size, err := m.AvailableTokenBefore.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.AvailableTokenAfter) > 0 { + i -= len(m.AvailableTokenAfter) + copy(dAtA[i:], m.AvailableTokenAfter) + i = encodeVarintEvent(dAtA, i, uint64(len(m.AvailableTokenAfter))) + i-- + dAtA[i] = 0x32 } - i-- - dAtA[i] = 0x2a - { - size, err := m.CurrentDeposit.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.AvailableTokenBefore) > 0 { + i -= len(m.AvailableTokenBefore) + copy(dAtA[i:], m.AvailableTokenBefore) + i = encodeVarintEvent(dAtA, i, uint64(len(m.AvailableTokenBefore))) + i-- + dAtA[i] = 0x2a } - i-- - dAtA[i] = 0x22 - { - size, err := m.DepositDelta.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.CurrentDeposit) > 0 { + i -= len(m.CurrentDeposit) + copy(dAtA[i:], m.CurrentDeposit) + i = encodeVarintEvent(dAtA, i, uint64(len(m.CurrentDeposit))) + i-- + dAtA[i] = 0x22 + } + if len(m.DepositDelta) > 0 { + i -= len(m.DepositDelta) + copy(dAtA[i:], m.DepositDelta) + i = encodeVarintEvent(dAtA, i, uint64(len(m.DepositDelta))) + i-- + dAtA[i] = 0x1a } - i-- - dAtA[i] = 0x1a if len(m.NetworkAddress) > 0 { i -= len(m.NetworkAddress) copy(dAtA[i:], m.NetworkAddress) @@ -1639,18 +1659,11 @@ func (m *EventCompleteUnBondingResourceNode) MarshalToSizedBuffer(dAtA []byte) ( dAtA[i] = 0x12 } if len(m.Amount) > 0 { - for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -1683,18 +1696,55 @@ func (m *EventCompleteUnBondingMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, dAtA[i] = 0x12 } if len(m.Amount) > 0 { - for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *EventMessage) 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 *EventMessage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Action) > 0 { + i -= len(m.Action) + copy(dAtA[i:], m.Action) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Action))) + i-- + dAtA[i] = 0x1a + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0x12 + } + if len(m.Module) > 0 { + i -= len(m.Module) + copy(dAtA[i:], m.Module) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Module))) + i-- + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -1724,14 +1774,18 @@ func (m *EventCreateResourceNode) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - if m.Pubkey != nil { - l = m.Pubkey.Size() + l = len(m.Pubkey) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.OzoneLimitChanges) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.InitialDeposit) + if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.OzoneLimitChanges.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.InitialDeposit.Size() - n += 1 + l + sovEvent(uint64(l)) return n } @@ -1749,8 +1803,10 @@ func (m *EventCreateMetaNode) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.OzoneLimitChanges.Size() - n += 1 + l + sovEvent(uint64(l)) + l = len(m.OzoneLimitChanges) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } return n } @@ -1768,10 +1824,14 @@ func (m *EventUnBondingResourceNode) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.DepositToRemove.Size() - n += 1 + l + sovEvent(uint64(l)) - l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) - n += 1 + l + sovEvent(uint64(l)) + l = len(m.DepositToRemove) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.UnbondingMatureTime) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } return n } @@ -1789,12 +1849,18 @@ func (m *EventUnBondingMetaNode) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.OzoneLimitChanges.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.DepositToRemove.Size() - n += 1 + l + sovEvent(uint64(l)) - l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) - n += 1 + l + sovEvent(uint64(l)) + l = len(m.OzoneLimitChanges) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.DepositToRemove) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.UnbondingMatureTime) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } return n } @@ -1816,8 +1882,9 @@ func (m *EventMetaNodeRegistrationVote) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - if m.CandidateStatus != 0 { - n += 1 + sovEvent(uint64(m.CandidateStatus)) + l = len(m.CandidateStatus) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) } return n } @@ -1836,8 +1903,10 @@ func (m *EventWithdrawMetaNodeRegistrationDeposit) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) - n += 1 + l + sovEvent(uint64(l)) + l = len(m.UnbondingMatureTime) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } return n } @@ -1872,18 +1941,30 @@ func (m *EventUpdateResourceNodeDeposit) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.DepositDelta.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.CurrentDeposit.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.AvailableTokenBefore.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.AvailableTokenAfter.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.OzoneLimitChanges.Size() - n += 1 + l + sovEvent(uint64(l)) - l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) - n += 1 + l + sovEvent(uint64(l)) + l = len(m.DepositDelta) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.CurrentDeposit) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.AvailableTokenBefore) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.AvailableTokenAfter) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.OzoneLimitChanges) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.UnbondingMatureTime) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } return n } @@ -1897,10 +1978,13 @@ func (m *EventUpdateEffectiveDeposit) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.EffectiveDepositAfter.Size() - n += 1 + l + sovEvent(uint64(l)) - if m.IsUnsuspended { - n += 2 + l = len(m.EffectiveDepositAfter) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.IsUnsuspended) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) } return n } @@ -1936,18 +2020,30 @@ func (m *EventUpdateMetaNodeDeposit) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - l = m.DepositDelta.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.CurrentDeposit.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.AvailableTokenBefore.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.AvailableTokenAfter.Size() - n += 1 + l + sovEvent(uint64(l)) - l = m.OzoneLimitChanges.Size() - n += 1 + l + sovEvent(uint64(l)) - l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.UnbondingMatureTime) - n += 1 + l + sovEvent(uint64(l)) + l = len(m.DepositDelta) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.CurrentDeposit) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.AvailableTokenBefore) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.AvailableTokenAfter) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.OzoneLimitChanges) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.UnbondingMatureTime) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } return n } @@ -1957,11 +2053,9 @@ func (m *EventCompleteUnBondingResourceNode) Size() (n int) { } var l int _ = l - if len(m.Amount) > 0 { - for _, e := range m.Amount { - l = e.Size() - n += 1 + l + sovEvent(uint64(l)) - } + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) } l = len(m.NetworkAddress) if l > 0 { @@ -1976,11 +2070,9 @@ func (m *EventCompleteUnBondingMetaNode) Size() (n int) { } var l int _ = l - if len(m.Amount) > 0 { - for _, e := range m.Amount { - l = e.Size() - n += 1 + l + sovEvent(uint64(l)) - } + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) } l = len(m.NetworkAddress) if l > 0 { @@ -1989,6 +2081,27 @@ func (m *EventCompleteUnBondingMetaNode) Size() (n int) { return n } +func (m *EventMessage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Module) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Action) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + func sovEvent(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -2092,7 +2205,7 @@ func (m *EventCreateResourceNode) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Pubkey", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -2102,27 +2215,23 @@ func (m *EventCreateResourceNode) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if m.Pubkey == nil { - m.Pubkey = &types.Any{} - } - if err := m.Pubkey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Pubkey = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { @@ -2154,15 +2263,13 @@ func (m *EventCreateResourceNode) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OzoneLimitChanges = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field InitialDeposit", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -2172,24 +2279,23 @@ func (m *EventCreateResourceNode) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.InitialDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.InitialDeposit = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -2335,9 +2441,7 @@ func (m *EventCreateMetaNode) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OzoneLimitChanges = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -2457,7 +2561,7 @@ func (m *EventUnBondingResourceNode) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DepositToRemove", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -2467,30 +2571,29 @@ func (m *EventUnBondingResourceNode) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.DepositToRemove.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.DepositToRemove = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -2500,24 +2603,23 @@ func (m *EventUnBondingResourceNode) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.UnbondingMatureTime = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -2663,15 +2765,13 @@ func (m *EventUnBondingMetaNode) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OzoneLimitChanges = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DepositToRemove", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -2681,30 +2781,29 @@ func (m *EventUnBondingMetaNode) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.DepositToRemove.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.DepositToRemove = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -2714,24 +2813,23 @@ func (m *EventUnBondingMetaNode) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.UnbondingMatureTime = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -2880,10 +2978,10 @@ func (m *EventMetaNodeRegistrationVote) Unmarshal(dAtA []byte) error { m.CandidateNetworkAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field CandidateStatus", wireType) } - m.CandidateStatus = 0 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -2893,11 +2991,24 @@ func (m *EventMetaNodeRegistrationVote) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.CandidateStatus |= types2.BondStatus(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CandidateStatus = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvent(dAtA[iNdEx:]) @@ -3016,7 +3127,7 @@ func (m *EventWithdrawMetaNodeRegistrationDeposit) Unmarshal(dAtA []byte) error if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3026,24 +3137,23 @@ func (m *EventWithdrawMetaNodeRegistrationDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.UnbondingMatureTime = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3277,7 +3387,7 @@ func (m *EventUpdateResourceNodeDeposit) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DepositDelta", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3287,30 +3397,29 @@ func (m *EventUpdateResourceNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.DepositDelta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.DepositDelta = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field CurrentDeposit", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3320,30 +3429,29 @@ func (m *EventUpdateResourceNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.CurrentDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.CurrentDeposit = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field AvailableTokenBefore", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3353,30 +3461,29 @@ func (m *EventUpdateResourceNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.AvailableTokenBefore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AvailableTokenBefore = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field AvailableTokenAfter", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3386,24 +3493,23 @@ func (m *EventUpdateResourceNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.AvailableTokenAfter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AvailableTokenAfter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 7: if wireType != 2 { @@ -3435,15 +3541,13 @@ func (m *EventUpdateResourceNodeDeposit) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OzoneLimitChanges = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3453,24 +3557,23 @@ func (m *EventUpdateResourceNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.UnbondingMatureTime = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -3584,15 +3687,13 @@ func (m *EventUpdateEffectiveDeposit) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.EffectiveDepositAfter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.EffectiveDepositAfter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 3: - if wireType != 0 { + if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field IsUnsuspended", wireType) } - var v int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3602,12 +3703,24 @@ func (m *EventUpdateEffectiveDeposit) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - v |= int(b&0x7F) << shift + stringLen |= uint64(b&0x7F) << shift if b < 0x80 { break } } - m.IsUnsuspended = bool(v != 0) + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IsUnsuspended = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipEvent(dAtA[iNdEx:]) @@ -3840,7 +3953,7 @@ func (m *EventUpdateMetaNodeDeposit) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field DepositDelta", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3850,30 +3963,29 @@ func (m *EventUpdateMetaNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.DepositDelta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.DepositDelta = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field CurrentDeposit", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3883,30 +3995,29 @@ func (m *EventUpdateMetaNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.CurrentDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.CurrentDeposit = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field AvailableTokenBefore", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3916,30 +4027,29 @@ func (m *EventUpdateMetaNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.AvailableTokenBefore.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AvailableTokenBefore = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field AvailableTokenAfter", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -3949,24 +4059,23 @@ func (m *EventUpdateMetaNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.AvailableTokenAfter.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.AvailableTokenAfter = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 7: if wireType != 2 { @@ -3998,15 +4107,13 @@ func (m *EventUpdateMetaNodeDeposit) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.OzoneLimitChanges.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.OzoneLimitChanges = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field UnbondingMatureTime", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -4016,24 +4123,23 @@ func (m *EventUpdateMetaNodeDeposit) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.UnbondingMatureTime, dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.UnbondingMatureTime = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -4089,7 +4195,7 @@ func (m *EventCompleteUnBondingResourceNode) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -4099,25 +4205,23 @@ func (m *EventCompleteUnBondingResourceNode) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - m.Amount = append(m.Amount, types1.Coin{}) - if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Amount = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -4205,7 +4309,7 @@ func (m *EventCompleteUnBondingMetaNode) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -4215,25 +4319,23 @@ func (m *EventCompleteUnBondingMetaNode) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - m.Amount = append(m.Amount, types1.Coin{}) - if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Amount = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 2: if wireType != 2 { @@ -4288,6 +4390,152 @@ func (m *EventCompleteUnBondingMetaNode) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventMessage) 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 ErrIntOverflowEvent + } + 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: EventMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Module", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Module = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Action = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipEvent(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/register/types/msg.go b/x/register/types/msg.go index 87ddc27e..85ddca79 100644 --- a/x/register/types/msg.go +++ b/x/register/types/msg.go @@ -21,6 +21,7 @@ var ( _ sdk.Msg = &MsgUpdateMetaNode{} _ sdk.Msg = &MsgUpdateMetaNodeDeposit{} _ sdk.Msg = &MsgMetaNodeRegistrationVote{} + _ sdk.Msg = &MsgUpdateParams{} ) // message type and route constants @@ -36,6 +37,7 @@ const ( TypeMsgUpdateMetaNodeDeposit = "update_meta_node_deposit" TypeMsgMetaNodeRegistrationVote = "meta_node_registration_vote" TypeMsgWithdrawMetaNodeRegistrationDeposit = "withdraw_meta_node_registration_deposit" + TypeMsgUpdateParams = "update_params" ) // NewMsgCreateResourceNode NewMsg creates a new Msg instance @@ -128,6 +130,8 @@ func (msg MsgCreateResourceNode) UnpackInterfaces(unpacker codectypes.AnyUnpacke return unpacker.UnpackAny(msg.Pubkey, &pk) } +// -------------------------------------------------------------------------------------------------------------------- + // NewMsgCreateMetaNode creates a new Msg instance func NewMsgCreateMetaNode(networkAddr stratos.SdsAddress, pubKey cryptotypes.PubKey, //nolint:interfacer value sdk.Coin, ownerAddr sdk.AccAddress, description Description, @@ -213,6 +217,8 @@ func (msg MsgCreateMetaNode) UnpackInterfaces(unpacker codectypes.AnyUnpacker) e return unpacker.UnpackAny(msg.Pubkey, &pk) } +// -------------------------------------------------------------------------------------------------------------------- + // NewMsgRemoveResourceNode creates a new MsgRemoveResourceNode instance. func NewMsgRemoveResourceNode(resourceNodeAddr stratos.SdsAddress, ownerAddr sdk.AccAddress) *MsgRemoveResourceNode { return &MsgRemoveResourceNode{ @@ -262,6 +268,8 @@ func (msg MsgRemoveResourceNode) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + // NewMsgRemoveMetaNode creates a new MsgRemoveMetaNode instance. func NewMsgRemoveMetaNode(metaNodeAddr stratos.SdsAddress, ownerAddr sdk.AccAddress) *MsgRemoveMetaNode { return &MsgRemoveMetaNode{ @@ -311,6 +319,8 @@ func (msg MsgRemoveMetaNode) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgUpdateResourceNode(description Description, nodeType uint32, networkAddress stratos.SdsAddress, ownerAddress sdk.AccAddress) *MsgUpdateResourceNode { @@ -361,10 +371,6 @@ func (msg MsgUpdateResourceNode) ValidateBasic() error { return ErrEmptyOwnerAddr } - //if msg.Description.Moniker == "" { - // return ErrEmptyMoniker - //} - nodeType := NodeType(msg.NodeType) if nodeType.Type() == "UNKNOWN" { return ErrInvalidNodeType @@ -372,6 +378,8 @@ func (msg MsgUpdateResourceNode) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgUpdateResourceNodeDeposit(networkAddress stratos.SdsAddress, ownerAddress sdk.AccAddress, depositDelta sdk.Coin) *MsgUpdateResourceNodeDeposit { return &MsgUpdateResourceNodeDeposit{ @@ -426,6 +434,8 @@ func (msg MsgUpdateResourceNodeDeposit) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgUpdateMetaNode(description Description, networkAddress stratos.SdsAddress, ownerAddress sdk.AccAddress, ) *MsgUpdateMetaNode { @@ -482,6 +492,8 @@ func (msg MsgUpdateMetaNode) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgUpdateMetaNodeDeposit(networkAddress stratos.SdsAddress, ownerAddress sdk.AccAddress, depositDelta sdk.Coin) *MsgUpdateMetaNodeDeposit { return &MsgUpdateMetaNodeDeposit{ @@ -536,6 +548,8 @@ func (msg MsgUpdateMetaNodeDeposit) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgMetaNodeRegistrationVote(candidateNetworkAddress stratos.SdsAddress, candidateOwnerAddress sdk.AccAddress, opinion bool, voterNetworkAddress stratos.SdsAddress, voterOwnerAddress sdk.AccAddress) *MsgMetaNodeRegistrationVote { @@ -604,6 +618,8 @@ func (msg MsgMetaNodeRegistrationVote) GetSigners() []sdk.AccAddress { return []sdk.AccAddress{addr.Bytes()} } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgUpdateEffectiveDeposit(reporters []stratos.SdsAddress, reporterOwner []sdk.AccAddress, networkAddress stratos.SdsAddress, newEffectiveDeposit sdkmath.Int) *MsgUpdateEffectiveDeposit { @@ -624,51 +640,51 @@ func NewMsgUpdateEffectiveDeposit(reporters []stratos.SdsAddress, reporterOwner } } -func (m MsgUpdateEffectiveDeposit) Route() string { +func (msg MsgUpdateEffectiveDeposit) Route() string { return RouterKey } -func (m MsgUpdateEffectiveDeposit) Type() string { +func (msg MsgUpdateEffectiveDeposit) Type() string { return TypeMsgUpdateEffectiveDeposit } -func (m MsgUpdateEffectiveDeposit) ValidateBasic() error { - if len(m.NetworkAddress) == 0 { +func (msg MsgUpdateEffectiveDeposit) ValidateBasic() error { + if len(msg.NetworkAddress) == 0 { return ErrInvalidNetworkAddr } - if len(m.Reporters) == 0 { + if len(msg.Reporters) == 0 { return ErrReporterAddress } - if len(m.ReporterOwner) == 0 || len(m.Reporters) != len(m.ReporterOwner) { + if len(msg.ReporterOwner) == 0 || len(msg.Reporters) != len(msg.ReporterOwner) { return ErrInvalidOwnerAddr } - for _, r := range m.Reporters { + for _, r := range msg.Reporters { if len(r) == 0 { return ErrReporterAddress } } - for _, owner := range m.ReporterOwner { + for _, owner := range msg.ReporterOwner { _, err := sdk.AccAddressFromBech32(owner) if err != nil { return ErrInvalidOwnerAddr } } - if m.EffectiveTokens.LT(sdkmath.ZeroInt()) { + if msg.EffectiveTokens.LT(sdkmath.ZeroInt()) { return ErrInvalidAmount } return nil } -func (m MsgUpdateEffectiveDeposit) GetSignBytes() []byte { - bz := ModuleCdc.MustMarshalJSON(m) +func (msg MsgUpdateEffectiveDeposit) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) return sdk.MustSortJSON(bz) } -func (m MsgUpdateEffectiveDeposit) GetSigners() []sdk.AccAddress { +func (msg MsgUpdateEffectiveDeposit) GetSigners() []sdk.AccAddress { var addrs []sdk.AccAddress - for _, owner := range m.ReporterOwner { + for _, owner := range msg.ReporterOwner { reporterOwner, err := sdk.AccAddressFromBech32(owner) if err != nil { panic(err) @@ -681,6 +697,8 @@ func (m MsgUpdateEffectiveDeposit) GetSigners() []sdk.AccAddress { return addrs } +// -------------------------------------------------------------------------------------------------------------------- + func NewMsgWithdrawMetaNodeRegistrationDeposit(networkAddress stratos.SdsAddress, ownerAddress sdk.AccAddress) *MsgWithdrawMetaNodeRegistrationDeposit { return &MsgWithdrawMetaNodeRegistrationDeposit{ NetworkAddress: networkAddress.String(), @@ -717,3 +735,44 @@ func (msg MsgWithdrawMetaNodeRegistrationDeposit) GetSigners() []sdk.AccAddress } return []sdk.AccAddress{addr.Bytes()} } + +// -------------------------------------------------------------------------------------------------------------------- + +func NewMsgUpdateParams(params Params, authority string) *MsgUpdateParams { + return &MsgUpdateParams{ + Params: params, + Authority: authority, + } +} + +// Route implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) Route() string { + return RouterKey +} + +// Type implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) Type() string { + return TypeMsgUpdateParams +} + +// ValidateBasic implements sdk.Msg +func (msg *MsgUpdateParams) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Authority) + if err != nil { + return err + } + + return msg.Params.Validate() +} + +// GetSignBytes implements sdk.Msg +func (msg *MsgUpdateParams) GetSigners() []sdk.AccAddress { + authority := sdk.MustAccAddressFromBech32(msg.Authority) + return []sdk.AccAddress{authority} +} + +// GetSigners implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} diff --git a/x/register/types/tx.pb.go b/x/register/types/tx.pb.go index 892a7b90..ba9a5e6c 100644 --- a/x/register/types/tx.pb.go +++ b/x/register/types/tx.pb.go @@ -15,7 +15,6 @@ import ( _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" - _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -1160,6 +1159,100 @@ func (m *MsgWithdrawMetaNodeRegistrationDepositResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgWithdrawMetaNodeRegistrationDepositResponse proto.InternalMessageInfo +// MsgUpdateParams defines a Msg for updating the x/register module parameters. +type MsgUpdateParams struct { + // authority is the address of the governance account. + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // params defines the x/register parameters to update. + // NOTE: All parameters must be supplied. + Params Params `protobuf:"bytes,2,opt,name=params,proto3" json:"params"` +} + +func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} } +func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParams) ProtoMessage() {} +func (*MsgUpdateParams) Descriptor() ([]byte, []int) { + return fileDescriptor_75d4b90d7a185a31, []int{22} +} +func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParams.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 *MsgUpdateParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParams.Merge(m, src) +} +func (m *MsgUpdateParams) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParams) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParams.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParams proto.InternalMessageInfo + +func (m *MsgUpdateParams) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgUpdateParams) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +type MsgUpdateParamsResponse struct { +} + +func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse{} } +func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParamsResponse) ProtoMessage() {} +func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_75d4b90d7a185a31, []int{23} +} +func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParamsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParamsResponse.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 *MsgUpdateParamsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParamsResponse.Merge(m, src) +} +func (m *MsgUpdateParamsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParamsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgCreateResourceNode)(nil), "stratos.register.v1.MsgCreateResourceNode") proto.RegisterType((*MsgCreateResourceNodeResponse)(nil), "stratos.register.v1.MsgCreateResourceNodeResponse") @@ -1183,116 +1276,115 @@ func init() { proto.RegisterType((*MsgMetaNodeRegistrationVoteResponse)(nil), "stratos.register.v1.MsgMetaNodeRegistrationVoteResponse") proto.RegisterType((*MsgWithdrawMetaNodeRegistrationDeposit)(nil), "stratos.register.v1.MsgWithdrawMetaNodeRegistrationDeposit") proto.RegisterType((*MsgWithdrawMetaNodeRegistrationDepositResponse)(nil), "stratos.register.v1.MsgWithdrawMetaNodeRegistrationDepositResponse") + proto.RegisterType((*MsgUpdateParams)(nil), "stratos.register.v1.MsgUpdateParams") + proto.RegisterType((*MsgUpdateParamsResponse)(nil), "stratos.register.v1.MsgUpdateParamsResponse") } func init() { proto.RegisterFile("stratos/register/v1/tx.proto", fileDescriptor_75d4b90d7a185a31) } var fileDescriptor_75d4b90d7a185a31 = []byte{ - // 1656 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x41, 0x6c, 0x14, 0x47, - 0x16, 0x75, 0xcf, 0xd8, 0x2c, 0x2e, 0x30, 0xe0, 0xc1, 0x5e, 0x8f, 0x07, 0x33, 0x65, 0x37, 0xe0, - 0xf5, 0x7a, 0xd7, 0xdd, 0xb6, 0x81, 0x05, 0x9b, 0x15, 0x5a, 0xc6, 0x46, 0x5a, 0xb4, 0x32, 0xec, - 0x0e, 0xb0, 0x28, 0xb9, 0x8c, 0xda, 0x33, 0xe5, 0xa1, 0x63, 0x4f, 0xd7, 0xa8, 0xbb, 0xc7, 0x66, - 0x0e, 0x91, 0x22, 0xa4, 0x5c, 0x22, 0x45, 0x0a, 0x8a, 0x72, 0xca, 0x21, 0x39, 0x44, 0x09, 0xb9, - 0xf9, 0x90, 0x2b, 0x52, 0x6e, 0x81, 0x48, 0x91, 0x50, 0x72, 0x49, 0x72, 0x28, 0x45, 0x26, 0x12, - 0xd2, 0x1c, 0xe7, 0x90, 0x73, 0xd4, 0xd5, 0xd5, 0xd5, 0xd3, 0xdd, 0xd5, 0xcd, 0x58, 0x89, 0x7d, - 0x88, 0x7c, 0x81, 0xe9, 0xff, 0x5f, 0x75, 0xbd, 0xff, 0xff, 0xfb, 0xd5, 0x55, 0x65, 0x30, 0x66, - 0xd9, 0xa6, 0x66, 0x63, 0x4b, 0x35, 0x51, 0x55, 0xb7, 0x6c, 0x64, 0xaa, 0x9b, 0x73, 0xaa, 0xfd, - 0x40, 0xa9, 0x9b, 0xd8, 0xc6, 0x99, 0x93, 0xcc, 0xab, 0x78, 0x5e, 0x65, 0x73, 0x2e, 0x37, 0x54, - 0xc5, 0x55, 0x4c, 0xfd, 0xaa, 0xf3, 0xcb, 0x85, 0xe6, 0x46, 0xcb, 0xd8, 0xaa, 0x61, 0xab, 0xe4, - 0x3a, 0xdc, 0x07, 0xe6, 0x1a, 0xd4, 0x6a, 0xba, 0x81, 0x55, 0xfa, 0x2f, 0x33, 0x8d, 0xb8, 0x00, - 0xb5, 0x66, 0x55, 0x9d, 0x09, 0x6b, 0x56, 0xd5, 0x7b, 0x4d, 0x15, 0xe3, 0xea, 0x06, 0x52, 0xe9, - 0xd3, 0x6a, 0x63, 0x4d, 0xd5, 0x8c, 0x26, 0x73, 0x8d, 0x31, 0x97, 0x56, 0xd7, 0x55, 0xcd, 0x30, - 0xb0, 0xad, 0xd9, 0x3a, 0x36, 0xbc, 0x49, 0x64, 0x51, 0x20, 0x9c, 0xb6, 0x8b, 0xc9, 0xb3, 0x59, - 0x57, 0x35, 0x0b, 0xa9, 0x9b, 0x73, 0xab, 0xc8, 0xd6, 0xe6, 0xd4, 0x32, 0xd6, 0x0d, 0xd7, 0x2f, - 0x3f, 0xea, 0x03, 0xc3, 0x2b, 0x56, 0x75, 0xc9, 0x44, 0x9a, 0x8d, 0x8a, 0xc8, 0xc2, 0x0d, 0xb3, - 0x8c, 0x6e, 0xe2, 0x0a, 0xca, 0x18, 0xe0, 0xb8, 0x81, 0xec, 0x2d, 0x6c, 0xae, 0x97, 0xb4, 0x4a, - 0xc5, 0x44, 0x96, 0x95, 0x95, 0xc6, 0xa5, 0xa9, 0xfe, 0xc2, 0xf5, 0x16, 0x81, 0x61, 0x57, 0x9b, - 0xc0, 0x3f, 0x37, 0xb5, 0xda, 0xc6, 0xa2, 0x1c, 0x72, 0xc8, 0xdf, 0x7e, 0x31, 0x33, 0xc4, 0x52, - 0x73, 0xcd, 0x35, 0xdd, 0xb6, 0x4d, 0xdd, 0xa8, 0x16, 0x8f, 0x31, 0x24, 0xb3, 0x66, 0x34, 0x70, - 0xa8, 0xde, 0x58, 0x5d, 0x47, 0xcd, 0x6c, 0x6a, 0x5c, 0x9a, 0x3a, 0x32, 0x3f, 0xa4, 0xb8, 0xc1, - 0x2b, 0x5e, 0x5e, 0x94, 0x6b, 0x46, 0xb3, 0x70, 0xbe, 0x45, 0x20, 0xc3, 0xb5, 0x09, 0x1c, 0x70, - 0xe7, 0x74, 0x9f, 0xe5, 0xaf, 0xfd, 0xa9, 0xca, 0x66, 0xb3, 0x6e, 0x63, 0xe5, 0xbf, 0x8d, 0xd5, - 0xff, 0xa0, 0x66, 0x91, 0x0d, 0xc8, 0xdc, 0x06, 0x7d, 0x9b, 0xda, 0x46, 0x03, 0x65, 0xd3, 0x74, - 0x86, 0x51, 0x85, 0xa1, 0x9d, 0xe4, 0x28, 0x2c, 0x39, 0xca, 0x12, 0xd6, 0x8d, 0x82, 0xfc, 0x94, - 0xc0, 0x9e, 0x16, 0x81, 0x2e, 0xbe, 0x4d, 0xe0, 0x51, 0x77, 0x26, 0xfa, 0x28, 0x3f, 0x7e, 0xb9, - 0x3d, 0x2d, 0x15, 0x5d, 0x5f, 0x66, 0x0d, 0x0c, 0xe0, 0x2d, 0x03, 0x99, 0x3c, 0x4b, 0xbd, 0x34, - 0x4b, 0xd7, 0x5a, 0x04, 0x06, 0x1d, 0x6d, 0x02, 0x87, 0xdc, 0xb7, 0x04, 0xcc, 0xf1, 0x19, 0x3a, - 0x4a, 0x71, 0x5e, 0x7e, 0x4c, 0x70, 0xa4, 0x82, 0xac, 0xb2, 0xa9, 0xd7, 0x1d, 0x0d, 0x64, 0xfb, - 0x68, 0x08, 0xe3, 0x8a, 0x40, 0xae, 0xca, 0xb2, 0x8f, 0x2b, 0x28, 0x2c, 0x92, 0xce, 0xc1, 0x6d, - 0x02, 0x33, 0x2e, 0x93, 0x0e, 0x23, 0x8b, 0xaa, 0x13, 0x97, 0xb9, 0x0a, 0xfa, 0x0d, 0x5c, 0x41, - 0x25, 0xbb, 0x59, 0x47, 0xd9, 0x43, 0xe3, 0xd2, 0xd4, 0x40, 0x61, 0xa2, 0x45, 0xa0, 0x6f, 0x6c, - 0x13, 0x78, 0x82, 0xd5, 0xdd, 0x33, 0xc9, 0xc5, 0xc3, 0xce, 0xef, 0x3b, 0xcd, 0x3a, 0x5a, 0xbc, - 0xf0, 0xf0, 0xe5, 0xf6, 0x74, 0x30, 0x0b, 0xef, 0xbc, 0xdc, 0x9e, 0x3e, 0xed, 0x09, 0x57, 0xa8, - 0x3c, 0x19, 0x82, 0xd3, 0x42, 0x47, 0x11, 0x59, 0x75, 0x6c, 0x58, 0x48, 0x7e, 0xd6, 0x0b, 0x06, - 0x39, 0x62, 0x05, 0xd9, 0xda, 0x81, 0x60, 0x0f, 0x04, 0xeb, 0x98, 0x16, 0x67, 0xc5, 0x82, 0x1b, - 0x8d, 0x08, 0xce, 0x53, 0x8d, 0x7c, 0x0a, 0x8c, 0x46, 0x8c, 0x5c, 0x68, 0x4f, 0x52, 0x74, 0x75, - 0x2c, 0xa2, 0x1a, 0xde, 0x0c, 0xae, 0x8e, 0x6f, 0x4b, 0x60, 0xd8, 0x64, 0x86, 0x12, 0xd5, 0x7e, - 0x50, 0x73, 0xff, 0x6b, 0x11, 0x28, 0x06, 0xb4, 0x09, 0x1c, 0x73, 0x63, 0x11, 0xba, 0xe3, 0xb3, - 0x7b, 0xd2, 0xec, 0x20, 0xe0, 0x25, 0x39, 0x52, 0xcc, 0xd4, 0x9e, 0x14, 0xb3, 0x9b, 0x4e, 0x8e, - 0x66, 0x89, 0x75, 0x72, 0xd4, 0xc1, 0x13, 0xfc, 0x49, 0x8a, 0x76, 0xb2, 0x8b, 0xe0, 0x9d, 0xdc, - 0x00, 0x83, 0x35, 0x64, 0x6b, 0xa2, 0xbc, 0xde, 0x68, 0x11, 0x18, 0x75, 0xb6, 0x09, 0xcc, 0xba, - 0xc1, 0x45, 0x5c, 0xf1, 0x01, 0x1e, 0xaf, 0xb1, 0xf9, 0xf6, 0x3b, 0x97, 0x5d, 0x88, 0x34, 0x98, - 0x10, 0x26, 0xd2, 0xa0, 0x91, 0xe7, 0xf0, 0x87, 0x34, 0x15, 0xe9, 0xdd, 0x7a, 0x25, 0xfc, 0x09, - 0x0f, 0x75, 0xa0, 0xb4, 0x1f, 0x9f, 0x0c, 0xc1, 0x2a, 0x9c, 0xda, 0xcb, 0x55, 0x38, 0x52, 0xb4, - 0xf4, 0xde, 0xac, 0x66, 0x81, 0x4f, 0x61, 0xef, 0x9e, 0x7c, 0x0a, 0xa3, 0x15, 0x64, 0x0d, 0x14, - 0x75, 0xf0, 0xe2, 0x3f, 0x4a, 0xd3, 0x06, 0x72, 0x11, 0xbc, 0x81, 0x0e, 0x0a, 0xbf, 0xaf, 0xdd, - 0x1a, 0xcc, 0x3e, 0xeb, 0xd6, 0xa0, 0x91, 0x17, 0xec, 0xb3, 0x34, 0x18, 0x13, 0x96, 0x74, 0x19, - 0xd5, 0xb1, 0xa5, 0xdb, 0xfb, 0xbe, 0x8d, 0xd9, 0xa7, 0x55, 0x2f, 0x63, 0x82, 0x81, 0x8a, 0x1b, - 0x62, 0xa9, 0x82, 0x36, 0x6c, 0xed, 0xd5, 0x7b, 0x9a, 0x79, 0x26, 0xc7, 0xe0, 0x38, 0x9f, 0x46, - 0xc0, 0xcc, 0x24, 0x79, 0x94, 0x19, 0x97, 0x1d, 0xdb, 0xe2, 0x15, 0x71, 0xed, 0xce, 0x26, 0x36, - 0x1d, 0x2b, 0x84, 0x3c, 0x09, 0xce, 0x26, 0xf9, 0x79, 0x45, 0x3f, 0xef, 0xed, 0xa8, 0xf7, 0xf5, - 0xb5, 0x35, 0x54, 0xb6, 0xf5, 0x4d, 0x5e, 0xce, 0x7b, 0xa0, 0xdf, 0x44, 0x75, 0x6c, 0xda, 0xc8, - 0x74, 0x0a, 0x99, 0x9e, 0xea, 0x2f, 0x2c, 0x38, 0xeb, 0x06, 0x37, 0xfa, 0xeb, 0x06, 0x37, 0xc5, - 0xa7, 0xd4, 0x1f, 0x96, 0x79, 0x03, 0x1c, 0xf3, 0x1e, 0x4a, 0x34, 0xc2, 0x6c, 0x8a, 0xbe, 0x7d, - 0xa9, 0x45, 0x60, 0xc8, 0xd3, 0x26, 0x70, 0x38, 0x38, 0x85, 0x6b, 0x8f, 0x9f, 0x67, 0xc0, 0x03, - 0xde, 0x72, 0x70, 0x22, 0x4d, 0xa6, 0xf7, 0x52, 0x93, 0x1f, 0x4a, 0xe0, 0x04, 0xf2, 0x32, 0x59, - 0xb2, 0xf1, 0x3a, 0x32, 0xbc, 0x6d, 0x6a, 0xdd, 0x11, 0xc5, 0x8f, 0x04, 0x4e, 0x56, 0x75, 0xfb, - 0x7e, 0x63, 0x55, 0x29, 0xe3, 0x1a, 0x3b, 0x7a, 0xb3, 0xff, 0x66, 0xac, 0xca, 0xba, 0xea, 0xac, - 0xbe, 0x96, 0x72, 0xc3, 0xb0, 0x5b, 0x04, 0x46, 0xde, 0xd4, 0x26, 0x70, 0xc4, 0x25, 0x18, 0xf6, - 0x38, 0x0c, 0x01, 0x63, 0x78, 0xc3, 0xb0, 0x5d, 0x49, 0x1d, 0xe7, 0xa8, 0x3b, 0x14, 0xb4, 0xb8, - 0xe0, 0xa8, 0x2a, 0x94, 0x62, 0x47, 0x56, 0x13, 0x11, 0x59, 0x85, 0xd5, 0x20, 0x9f, 0x01, 0x13, - 0xb1, 0x4e, 0x2e, 0xa8, 0x8f, 0xd2, 0x20, 0x1b, 0x59, 0x40, 0x0e, 0x96, 0x87, 0xdf, 0x7f, 0x79, - 0xb8, 0x24, 0x5e, 0x1e, 0xc6, 0x63, 0x97, 0x76, 0xaf, 0x8c, 0x32, 0x18, 0x8f, 0xf3, 0xf1, 0x2a, - 0x7e, 0xd5, 0x07, 0x4e, 0xad, 0x58, 0x55, 0xff, 0x03, 0xe0, 0x7c, 0x73, 0x4d, 0x7a, 0x81, 0xf3, - 0x7f, 0x6c, 0xa3, 0xcc, 0x07, 0x12, 0x18, 0x2d, 0x6b, 0x46, 0x45, 0x77, 0x5e, 0x52, 0x12, 0xd7, - 0xf4, 0xb5, 0x16, 0x81, 0xf1, 0xa0, 0x36, 0x81, 0xe3, 0x6e, 0xa8, 0xb1, 0x90, 0xf8, 0xec, 0x8f, - 0xf0, 0x31, 0x37, 0x83, 0x05, 0x7f, 0x57, 0x02, 0xbe, 0xaf, 0x24, 0xaa, 0xfd, 0xdd, 0x16, 0x81, - 0x71, 0x90, 0x36, 0x81, 0xf9, 0x30, 0xa7, 0x2e, 0xf5, 0x30, 0xcc, 0x47, 0xdc, 0xea, 0x14, 0xc6, - 0x25, 0xf0, 0x27, 0x5c, 0xd7, 0x0d, 0x67, 0x1f, 0xe3, 0x48, 0xe2, 0x70, 0xe1, 0x74, 0x8b, 0x40, - 0xcf, 0xd4, 0x26, 0xf0, 0x18, 0x13, 0x9d, 0x6b, 0x90, 0x8b, 0x9e, 0x8b, 0x1e, 0xd1, 0x36, 0xb1, - 0xd3, 0xa1, 0xe1, 0xe4, 0xf6, 0xfa, 0x47, 0x34, 0x21, 0xc0, 0x3f, 0xa2, 0x09, 0xdd, 0x09, 0x47, - 0x34, 0x8a, 0x0f, 0x25, 0xf4, 0x4d, 0xe0, 0x9a, 0x43, 0xb9, 0xec, 0xa3, 0x24, 0x56, 0x5a, 0x04, - 0x8a, 0xdc, 0x6d, 0x02, 0x73, 0x9d, 0x14, 0xba, 0xcc, 0xe1, 0x20, 0x45, 0x77, 0xe6, 0x6f, 0xf1, - 0x5f, 0x8e, 0xc8, 0x45, 0x53, 0x38, 0x52, 0x3f, 0xd3, 0x21, 0xf5, 0x38, 0xa5, 0xca, 0xe7, 0xc0, - 0x99, 0x04, 0xb7, 0x2f, 0xf8, 0x14, 0x98, 0x5c, 0xb1, 0xaa, 0xf7, 0x74, 0xfb, 0x7e, 0xc5, 0xd4, - 0xb6, 0x44, 0xf8, 0x3f, 0xf8, 0x22, 0xb6, 0x78, 0x5d, 0xbc, 0xa0, 0x28, 0x1d, 0x59, 0xee, 0x22, - 0x3d, 0xf2, 0x2c, 0x50, 0xba, 0x43, 0x7a, 0xb9, 0x9f, 0xff, 0xf4, 0x04, 0x48, 0xaf, 0x58, 0xd5, - 0xcc, 0xb6, 0x04, 0x4e, 0xfd, 0x5b, 0x33, 0x2a, 0x1b, 0x48, 0x7c, 0xa9, 0x3b, 0x2d, 0x3c, 0x03, - 0x08, 0xb1, 0xb9, 0xf9, 0xee, 0xb1, 0x5c, 0x03, 0x73, 0x0f, 0xbf, 0xfb, 0xf9, 0xfd, 0xd4, 0xdf, - 0xe4, 0xbf, 0xaa, 0xa2, 0xbb, 0xe9, 0x32, 0x1d, 0x58, 0x0a, 0xdc, 0x7b, 0x04, 0x29, 0x0b, 0x6e, - 0x5a, 0x62, 0x29, 0x47, 0xb1, 0xf1, 0x94, 0x13, 0xae, 0x20, 0x92, 0x29, 0x9b, 0x74, 0x60, 0x12, - 0x65, 0xc1, 0xb9, 0x3b, 0x96, 0x72, 0x14, 0x1b, 0x4f, 0x39, 0xe1, 0xd0, 0x97, 0x4c, 0xb9, 0x41, - 0x07, 0x86, 0x28, 0x7f, 0x23, 0x01, 0x39, 0x81, 0xb2, 0xd7, 0x98, 0x73, 0xdd, 0xb3, 0x61, 0x43, - 0x72, 0x0b, 0xbb, 0x1e, 0xc2, 0xe3, 0x58, 0xa0, 0x71, 0x9c, 0x97, 0xe7, 0xba, 0x8e, 0xa3, 0xc4, - 0xbe, 0xdf, 0x99, 0x2f, 0x25, 0x00, 0x43, 0xf1, 0x44, 0xb6, 0xde, 0x4a, 0x32, 0xb3, 0x30, 0x3e, - 0xf7, 0x8f, 0xdd, 0xe1, 0x79, 0x18, 0x17, 0x69, 0x18, 0xaa, 0x3c, 0x93, 0x14, 0x86, 0xbf, 0xd5, - 0xf4, 0x42, 0xf8, 0x58, 0x02, 0x23, 0xa1, 0x5e, 0xe5, 0x07, 0xf8, 0xc9, 0xe4, 0xde, 0xf3, 0x70, - 0x39, 0xa5, 0x3b, 0x1c, 0xa7, 0x3a, 0x43, 0xa9, 0xfe, 0x45, 0x3e, 0x97, 0xd4, 0x9f, 0xfc, 0x0e, - 0x2d, 0x48, 0x31, 0x74, 0x49, 0x37, 0x99, 0xdc, 0x6b, 0xaf, 0xa6, 0x18, 0x73, 0x9d, 0x95, 0x4c, - 0x91, 0xf5, 0x63, 0x0c, 0xc5, 0xd0, 0x35, 0xc8, 0x64, 0x72, 0x41, 0x5f, 0x4d, 0x31, 0xe6, 0x0c, - 0x9f, 0x4c, 0x91, 0x15, 0xdc, 0xa7, 0xf8, 0x44, 0x02, 0xf9, 0x18, 0x8a, 0x9e, 0x54, 0x67, 0xba, - 0x63, 0xe0, 0x29, 0xf5, 0xe2, 0xae, 0xe0, 0xbb, 0x13, 0xaa, 0x7f, 0x83, 0xea, 0x09, 0xf5, 0x99, - 0x04, 0x26, 0x38, 0xff, 0xd8, 0xfd, 0xec, 0x6c, 0x1c, 0xa7, 0xb8, 0x11, 0xb9, 0xcb, 0xbb, 0x1d, - 0xc1, 0x03, 0xb9, 0x4c, 0x03, 0x99, 0x97, 0x67, 0x85, 0x81, 0xf8, 0x11, 0x98, 0x1d, 0x2f, 0x28, - 0x39, 0x5b, 0xa0, 0xcc, 0x2f, 0x12, 0xf8, 0x3b, 0x8f, 0xa5, 0x9b, 0xad, 0xca, 0x95, 0x38, 0x92, - 0x5d, 0x0c, 0xce, 0x2d, 0xfd, 0x86, 0xc1, 0x3c, 0xd8, 0x65, 0x1a, 0xec, 0x55, 0xf9, 0x9f, 0xc2, - 0x60, 0xb7, 0xd8, 0x9b, 0x4a, 0x31, 0x51, 0xb3, 0x22, 0xe6, 0xfa, 0xde, 0x72, 0x0e, 0x40, 0x85, - 0xe2, 0xe3, 0x9d, 0xbc, 0xf4, 0x74, 0x27, 0x2f, 0x3d, 0xdf, 0xc9, 0x4b, 0x3f, 0xed, 0xe4, 0xa5, - 0xf7, 0x5e, 0xe4, 0x7b, 0x9e, 0xbf, 0xc8, 0xf7, 0x7c, 0xff, 0x22, 0xdf, 0xf3, 0xfa, 0x85, 0x8e, - 0x43, 0x35, 0x9b, 0xcc, 0x40, 0xb6, 0xf7, 0x73, 0xa6, 0x7c, 0x5f, 0xd3, 0x0d, 0xf5, 0x81, 0x3f, - 0x3f, 0x3d, 0x66, 0xaf, 0x1e, 0xa2, 0x7f, 0xf0, 0x3a, 0xff, 0x6b, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xe8, 0x65, 0x39, 0xd2, 0x59, 0x1f, 0x00, 0x00, + // 1603 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcf, 0x6f, 0x1b, 0xc5, + 0x17, 0xcf, 0xc6, 0x49, 0xbe, 0xcd, 0x34, 0x69, 0x9a, 0x6d, 0xf2, 0x8d, 0xe3, 0xb4, 0x9e, 0x64, + 0x5b, 0xa2, 0x28, 0x6a, 0xd6, 0x4d, 0xfa, 0x8b, 0xba, 0x52, 0x45, 0x9d, 0x56, 0xa2, 0x42, 0x69, + 0x8b, 0xdb, 0x52, 0xc1, 0xc5, 0x5a, 0xdb, 0x13, 0x67, 0x49, 0xbc, 0x63, 0x76, 0xd7, 0x6e, 0x7d, + 0xa8, 0x84, 0x90, 0x40, 0x02, 0x09, 0x41, 0x91, 0x38, 0x71, 0xe0, 0x82, 0x44, 0xb9, 0xe5, 0x00, + 0x47, 0x24, 0x6e, 0x14, 0x4e, 0x15, 0x27, 0xe0, 0x30, 0x42, 0xe9, 0xa1, 0x92, 0x8f, 0xfb, 0x17, + 0xa0, 0xdd, 0x99, 0x1d, 0x7b, 0x77, 0x67, 0x5d, 0x47, 0x90, 0x1c, 0x50, 0x2e, 0xad, 0xf7, 0xbd, + 0xcf, 0xcc, 0x7b, 0xf3, 0x79, 0x9f, 0x79, 0xb3, 0xb3, 0x01, 0xc7, 0x2d, 0xdb, 0xd4, 0x6c, 0x6c, + 0x65, 0x4c, 0x54, 0xd1, 0x2d, 0x1b, 0x99, 0x99, 0xc6, 0x72, 0xc6, 0x7e, 0xa8, 0xd6, 0x4c, 0x6c, + 0x63, 0xf9, 0x18, 0xf3, 0xaa, 0xbe, 0x57, 0x6d, 0x2c, 0xa7, 0x26, 0x2a, 0xb8, 0x82, 0x3d, 0x7f, + 0xc6, 0xfd, 0x45, 0xa1, 0xa9, 0xe9, 0x12, 0xb6, 0xaa, 0xd8, 0x2a, 0x50, 0x07, 0x7d, 0x60, 0xae, + 0x71, 0xad, 0xaa, 0x1b, 0x38, 0xe3, 0xfd, 0xcb, 0x4c, 0x53, 0x14, 0x90, 0xa9, 0x5a, 0x15, 0x37, + 0x60, 0xd5, 0xaa, 0x30, 0x47, 0x9a, 0x39, 0x8a, 0x9a, 0x85, 0x32, 0x8d, 0xe5, 0x22, 0xb2, 0xb5, + 0xe5, 0x4c, 0x09, 0xeb, 0x86, 0x1f, 0xa6, 0x82, 0x71, 0x65, 0x0b, 0x65, 0xbc, 0xa7, 0x62, 0x7d, + 0x3d, 0xa3, 0x19, 0x4d, 0xe6, 0x52, 0x44, 0x4b, 0xe1, 0x89, 0x7b, 0x18, 0xe5, 0xf1, 0x20, 0x98, + 0x5c, 0xb3, 0x2a, 0xab, 0x26, 0xd2, 0x6c, 0x94, 0x47, 0x16, 0xae, 0x9b, 0x25, 0x74, 0x13, 0x97, + 0x91, 0x6c, 0x80, 0x31, 0x03, 0xd9, 0x0f, 0xb0, 0xb9, 0x59, 0xd0, 0xca, 0x65, 0x13, 0x59, 0x56, + 0x52, 0x9a, 0x95, 0x16, 0x86, 0x73, 0xd7, 0x5b, 0x04, 0x86, 0x5d, 0x0e, 0x81, 0xff, 0x6f, 0x6a, + 0xd5, 0xad, 0xac, 0x12, 0x72, 0x28, 0xbf, 0x7d, 0xbf, 0x34, 0xc1, 0x16, 0x7f, 0x95, 0x9a, 0xee, + 0xd8, 0xa6, 0x6e, 0x54, 0xf2, 0x47, 0x18, 0x92, 0x59, 0x65, 0x0d, 0x0c, 0xd5, 0xea, 0xc5, 0x4d, + 0xd4, 0x4c, 0xf6, 0xcf, 0x4a, 0x0b, 0x87, 0x57, 0x26, 0x54, 0xba, 0x32, 0xd5, 0x5f, 0x99, 0x7a, + 0xd5, 0x68, 0xe6, 0xce, 0xb6, 0x08, 0x64, 0x38, 0x87, 0xc0, 0x51, 0x1a, 0x93, 0x3e, 0x2b, 0xbf, + 0xb6, 0x43, 0x95, 0xcc, 0x66, 0xcd, 0xc6, 0xea, 0xed, 0x7a, 0xf1, 0x0d, 0xd4, 0xcc, 0xb3, 0x01, + 0xf2, 0x1d, 0x30, 0xd8, 0xd0, 0xb6, 0xea, 0x28, 0x99, 0xf0, 0x22, 0x4c, 0xab, 0x0c, 0xed, 0x72, + 0xab, 0x32, 0x6e, 0xd5, 0x55, 0xac, 0x1b, 0x39, 0xe5, 0x29, 0x81, 0x7d, 0x2d, 0x02, 0x29, 0xde, + 0x21, 0x70, 0x84, 0x46, 0xf2, 0x1e, 0x95, 0x27, 0x2f, 0xb6, 0x17, 0xa5, 0x3c, 0xf5, 0xc9, 0xeb, + 0x60, 0x14, 0x3f, 0x30, 0x90, 0xc9, 0x59, 0x1a, 0xf0, 0x58, 0xba, 0xda, 0x22, 0x30, 0xe8, 0x70, + 0x08, 0x9c, 0xa0, 0xb3, 0x04, 0xcc, 0xf1, 0x0c, 0x8d, 0x78, 0x38, 0x9f, 0x1f, 0x13, 0x1c, 0x2e, + 0x23, 0xab, 0x64, 0xea, 0x35, 0x5b, 0xc7, 0x46, 0x72, 0xd0, 0x5b, 0xc2, 0xac, 0x2a, 0x10, 0xa4, + 0x7a, 0xad, 0x8d, 0xcb, 0xa9, 0x6c, 0x25, 0x9d, 0x83, 0x1d, 0x02, 0x65, 0x9a, 0x49, 0x87, 0x91, + 0xad, 0xaa, 0x13, 0x27, 0x5f, 0x01, 0xc3, 0x06, 0x2e, 0xa3, 0x82, 0xdd, 0xac, 0xa1, 0xe4, 0xd0, + 0xac, 0xb4, 0x30, 0x9a, 0x9b, 0x6b, 0x11, 0xd8, 0x36, 0x3a, 0x04, 0x1e, 0x65, 0x75, 0xf7, 0x4d, + 0x4a, 0xfe, 0x90, 0xfb, 0xfb, 0x6e, 0xb3, 0x86, 0xb2, 0xe7, 0x3e, 0x78, 0xb1, 0xbd, 0x18, 0x64, + 0xe1, 0x93, 0x17, 0xdb, 0x8b, 0x27, 0x7c, 0x61, 0x0a, 0x95, 0xa7, 0x40, 0x70, 0x42, 0xe8, 0xc8, + 0x23, 0xab, 0x86, 0x0d, 0x0b, 0x29, 0xbf, 0x0c, 0x80, 0x71, 0x8e, 0x58, 0x43, 0xb6, 0x76, 0x20, + 0xd8, 0x03, 0xc1, 0xba, 0xa6, 0xec, 0x19, 0xb1, 0xe0, 0xa6, 0x23, 0x82, 0xf3, 0x55, 0xa3, 0xcc, + 0x80, 0xe9, 0x88, 0x91, 0x0b, 0xed, 0xc7, 0x7e, 0xaf, 0x3b, 0xe6, 0x51, 0x15, 0x37, 0x82, 0xdd, + 0xf1, 0x43, 0x09, 0x4c, 0x9a, 0xcc, 0x50, 0xf0, 0xb4, 0x1f, 0xd4, 0xdc, 0x9b, 0x2d, 0x02, 0xc5, + 0x00, 0x87, 0xc0, 0xe3, 0x74, 0x2d, 0x42, 0x77, 0x3c, 0xbb, 0xc7, 0xcc, 0x8e, 0x04, 0x7c, 0x92, + 0x23, 0xc5, 0xec, 0xdf, 0x93, 0x62, 0xf6, 0xb2, 0x93, 0xa3, 0x2c, 0xb1, 0x9d, 0x1c, 0x75, 0x70, + 0x82, 0xbf, 0xe9, 0xf7, 0x76, 0x32, 0x45, 0xf0, 0x9d, 0x5c, 0x07, 0xe3, 0x55, 0x64, 0x6b, 0x22, + 0x5e, 0x6f, 0xb4, 0x08, 0x8c, 0x3a, 0x1d, 0x02, 0x93, 0x74, 0x71, 0x11, 0x57, 0xfc, 0x02, 0xc7, + 0xaa, 0x2c, 0xde, 0x7e, 0x73, 0xd9, 0x83, 0x48, 0x83, 0x84, 0x30, 0x91, 0x06, 0x8d, 0x9c, 0xc3, + 0x3f, 0x12, 0x9e, 0x48, 0xef, 0xd5, 0xca, 0xe1, 0x23, 0x3c, 0xb4, 0x03, 0xa5, 0xfd, 0x38, 0x32, + 0x04, 0x5d, 0xb8, 0x7f, 0x2f, 0xbb, 0x70, 0xa4, 0x68, 0x89, 0xbd, 0xe9, 0x66, 0x81, 0xa3, 0x70, + 0x60, 0x4f, 0x8e, 0xc2, 0x68, 0x05, 0xd9, 0x06, 0x8a, 0x3a, 0x78, 0xf1, 0x1f, 0x27, 0xbc, 0x0d, + 0x44, 0x11, 0x7c, 0x03, 0x1d, 0x14, 0x7e, 0x5f, 0x77, 0x6b, 0x90, 0x7d, 0xb6, 0x5b, 0x83, 0x46, + 0x5e, 0xb0, 0x6f, 0x13, 0xe0, 0xb8, 0xb0, 0xa4, 0xd7, 0x50, 0x0d, 0x5b, 0xba, 0xbd, 0xef, 0xaf, + 0x31, 0xfb, 0xd4, 0xf5, 0x64, 0x13, 0x8c, 0x96, 0xe9, 0x12, 0x0b, 0x65, 0xb4, 0x65, 0x6b, 0x2f, + 0x7f, 0xa7, 0x59, 0x61, 0x72, 0x0c, 0x8e, 0x6b, 0xa7, 0x11, 0x30, 0x33, 0x49, 0x8e, 0x30, 0xe3, + 0x35, 0xd7, 0x96, 0xbd, 0x2c, 0xae, 0xdd, 0xa9, 0xae, 0x9b, 0x8e, 0x15, 0x42, 0x99, 0x07, 0xa7, + 0xba, 0xf9, 0x79, 0x45, 0xbf, 0x1b, 0xe8, 0xa8, 0xf7, 0xf5, 0xf5, 0x75, 0x54, 0xb2, 0xf5, 0x06, + 0x2f, 0xe7, 0x7d, 0x30, 0x6c, 0xa2, 0x1a, 0x36, 0x6d, 0x64, 0xba, 0x85, 0x4c, 0x2c, 0x0c, 0xe7, + 0x2e, 0xb9, 0x7d, 0x83, 0x1b, 0xdb, 0x7d, 0x83, 0x9b, 0xe2, 0x29, 0x6d, 0x0f, 0x93, 0xdf, 0x05, + 0x47, 0xfc, 0x87, 0x82, 0xb7, 0xc2, 0x64, 0xbf, 0x37, 0xfb, 0x6a, 0x8b, 0xc0, 0x90, 0xc7, 0x21, + 0x70, 0x32, 0x18, 0x82, 0xda, 0xe3, 0xe3, 0x8c, 0xfa, 0xc0, 0x5b, 0x2e, 0x4e, 0xa4, 0xc9, 0xc4, + 0x5e, 0x6a, 0xf2, 0x2b, 0x09, 0x1c, 0x45, 0x3e, 0x93, 0x05, 0x1b, 0x6f, 0x22, 0xc3, 0x7f, 0x4d, + 0xad, 0xb9, 0xa2, 0xf8, 0x93, 0xc0, 0xf9, 0x8a, 0x6e, 0x6f, 0xd4, 0x8b, 0x6a, 0x09, 0x57, 0xd9, + 0xe5, 0x9a, 0xfd, 0xb7, 0x64, 0x95, 0x37, 0x33, 0x6e, 0xf7, 0xb5, 0xd4, 0x1b, 0x86, 0xdd, 0x22, + 0x30, 0x32, 0x93, 0x43, 0xe0, 0x14, 0x4d, 0x30, 0xec, 0x71, 0x33, 0x04, 0x2c, 0xc3, 0x1b, 0x86, + 0x4d, 0x25, 0x35, 0xc6, 0x51, 0x77, 0x3d, 0x50, 0xf6, 0x92, 0xab, 0xaa, 0x10, 0xc5, 0xae, 0xac, + 0xe6, 0x22, 0xb2, 0x0a, 0xab, 0x41, 0x39, 0x09, 0xe6, 0x62, 0x9d, 0x5c, 0x50, 0x5f, 0x27, 0x40, + 0x32, 0xd2, 0x40, 0x0e, 0xda, 0xc3, 0xbf, 0xdf, 0x1e, 0x2e, 0x8a, 0xdb, 0xc3, 0x6c, 0x6c, 0x6b, + 0xf7, 0xcb, 0xa8, 0x80, 0xd9, 0x38, 0x1f, 0xaf, 0xe2, 0xcf, 0x83, 0x60, 0x66, 0xcd, 0xaa, 0xb4, + 0x0f, 0x00, 0xf7, 0xcc, 0x35, 0x35, 0xf7, 0xac, 0x7c, 0x0b, 0xdb, 0x48, 0xfe, 0x52, 0x02, 0xd3, + 0x25, 0xcd, 0x28, 0xeb, 0xee, 0x24, 0x05, 0x71, 0x4d, 0xdf, 0x6e, 0x11, 0x18, 0x0f, 0x72, 0x08, + 0x9c, 0xa5, 0x4b, 0x8d, 0x85, 0xc4, 0xb3, 0x3f, 0xc5, 0xc7, 0xdc, 0x0c, 0x16, 0xfc, 0x53, 0x09, + 0xb4, 0x7d, 0x05, 0x51, 0xed, 0xef, 0xb5, 0x08, 0x8c, 0x83, 0x38, 0x04, 0xa6, 0xc3, 0x39, 0xf5, + 0xa8, 0x87, 0x49, 0x3e, 0xe2, 0x56, 0xa7, 0x30, 0x2e, 0x82, 0xff, 0xe1, 0x9a, 0x6e, 0xb8, 0xef, + 0x31, 0xae, 0x24, 0x0e, 0xe5, 0x4e, 0xb4, 0x08, 0xf4, 0x4d, 0x0e, 0x81, 0x47, 0x98, 0xe8, 0xa8, + 0x41, 0xc9, 0xfb, 0x2e, 0xef, 0x8a, 0xd6, 0xc0, 0xee, 0x0e, 0x0d, 0x93, 0x3b, 0xd0, 0xbe, 0xa2, + 0x09, 0x01, 0xed, 0x2b, 0x9a, 0xd0, 0xdd, 0xe5, 0x8a, 0xe6, 0xe1, 0x43, 0x84, 0x3e, 0x02, 0xd4, + 0x1c, 0xe2, 0x72, 0xd0, 0x4b, 0x62, 0xad, 0x45, 0xa0, 0xc8, 0xed, 0x10, 0x98, 0xea, 0x4c, 0xa1, + 0x47, 0x0e, 0xc7, 0x3d, 0x74, 0x27, 0x7f, 0xd9, 0xd7, 0x5c, 0x91, 0x8b, 0x42, 0xb8, 0x52, 0x3f, + 0xd9, 0x21, 0xf5, 0x38, 0xa5, 0x2a, 0xaf, 0x80, 0x93, 0x5d, 0xdc, 0x6d, 0xc1, 0xf7, 0x83, 0xf9, + 0x35, 0xab, 0x72, 0x5f, 0xb7, 0x37, 0xca, 0xa6, 0xf6, 0x40, 0x84, 0xff, 0x8f, 0x37, 0xb1, 0xec, + 0x75, 0x71, 0x43, 0x51, 0x3b, 0x58, 0xee, 0x81, 0x1e, 0xe5, 0x0c, 0x50, 0x7b, 0x43, 0x72, 0xee, + 0x7f, 0x92, 0xc0, 0x18, 0xef, 0x48, 0xb7, 0x35, 0x53, 0xab, 0x5a, 0xf2, 0x05, 0x30, 0xac, 0xd5, + 0xed, 0x0d, 0x6c, 0xea, 0x76, 0x93, 0xd1, 0x9b, 0x8c, 0x7f, 0xb1, 0xe0, 0x50, 0xf9, 0x0a, 0x18, + 0xaa, 0x79, 0x33, 0xb0, 0xef, 0x5a, 0x33, 0xc2, 0x7b, 0x03, 0x0d, 0x92, 0x1b, 0x76, 0x9b, 0x30, + 0xed, 0xad, 0x6c, 0x54, 0xf6, 0xbc, 0x4b, 0x42, 0x7b, 0x3e, 0x97, 0x00, 0xfe, 0x25, 0xfa, 0x61, + 0xfb, 0x5b, 0x74, 0x28, 0x5d, 0x65, 0x1a, 0x4c, 0x85, 0x4c, 0xfe, 0xea, 0x56, 0x7e, 0x18, 0x01, + 0x89, 0x35, 0xab, 0x22, 0x3f, 0x02, 0x33, 0xaf, 0x6b, 0x46, 0x79, 0x0b, 0x89, 0xbf, 0x58, 0x2f, + 0x0a, 0x13, 0x15, 0x62, 0x53, 0x2b, 0xbd, 0x63, 0xfd, 0x34, 0x02, 0xe1, 0x05, 0x9f, 0x84, 0x62, + 0xc3, 0x47, 0xb1, 0xf1, 0xe1, 0xe3, 0xbf, 0x95, 0x04, 0xc2, 0x0b, 0x2e, 0xfb, 0xb1, 0xe1, 0xa3, + 0xd8, 0xf8, 0xf0, 0xf1, 0x37, 0x4d, 0xf9, 0x0b, 0x09, 0x28, 0x5d, 0xe2, 0xfb, 0x5b, 0x7b, 0xb9, + 0xf7, 0xa9, 0xd9, 0x90, 0xd4, 0xa5, 0x5d, 0x0f, 0xe1, 0x49, 0x7d, 0x2c, 0x01, 0x18, 0x4a, 0x2a, + 0xf2, 0x06, 0xae, 0x76, 0x9f, 0x3e, 0x8c, 0x4f, 0x5d, 0xd8, 0x1d, 0x9e, 0xe7, 0xf2, 0x1e, 0x98, + 0x0a, 0xa9, 0x93, 0xdf, 0xc7, 0xe7, 0xbb, 0xab, 0xcd, 0xc7, 0xa5, 0xd4, 0xde, 0x70, 0xc2, 0x90, + 0xa1, 0x6f, 0x68, 0xf3, 0xdd, 0x15, 0xf6, 0xf2, 0x90, 0xe2, 0xaf, 0x4d, 0x81, 0x90, 0xa1, 0xaf, + 0x0e, 0xf3, 0xdd, 0x89, 0x7b, 0x79, 0x48, 0xf1, 0x95, 0x59, 0xfe, 0x48, 0x02, 0xe9, 0x98, 0x98, + 0x7e, 0x8d, 0x97, 0x7a, 0x9b, 0xd2, 0x2f, 0xf1, 0xf9, 0x5d, 0xc1, 0x79, 0x22, 0x9f, 0x49, 0x60, + 0x8e, 0x27, 0x12, 0xfb, 0x62, 0x77, 0x26, 0x6e, 0xf2, 0xb8, 0x11, 0xa9, 0x57, 0x77, 0x3b, 0x82, + 0x67, 0xb4, 0x2d, 0x81, 0xd3, 0x3c, 0xa3, 0x5e, 0x4e, 0xde, 0xcb, 0x71, 0xa1, 0x7a, 0x18, 0x9c, + 0x5a, 0xfd, 0x07, 0x83, 0x79, 0xca, 0x45, 0x30, 0x12, 0x38, 0xa6, 0x4e, 0x75, 0xaf, 0x05, 0x45, + 0xa5, 0x4e, 0xf7, 0x82, 0xf2, 0x63, 0xa4, 0x06, 0xdf, 0x77, 0x4f, 0xa4, 0x5c, 0xfe, 0xc9, 0x4e, + 0x5a, 0x7a, 0xba, 0x93, 0x96, 0x9e, 0xed, 0xa4, 0xa5, 0xbf, 0x76, 0xd2, 0xd2, 0xe7, 0xcf, 0xd3, + 0x7d, 0xcf, 0x9e, 0xa7, 0xfb, 0x7e, 0x7f, 0x9e, 0xee, 0x7b, 0xe7, 0x5c, 0xc7, 0x0d, 0x92, 0x4d, + 0x6e, 0x20, 0xdb, 0xff, 0xb9, 0x54, 0xda, 0xd0, 0x74, 0xa3, 0xf3, 0xc0, 0xf2, 0xee, 0x94, 0xc5, + 0x21, 0xef, 0xaf, 0x3b, 0x67, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xa4, 0xb6, 0xa2, 0x06, 0x28, + 0x1e, 0x00, 0x00, } func (this *MsgCreateResourceNode) Equal(that interface{}) bool { @@ -1884,6 +1976,54 @@ func (this *MsgWithdrawMetaNodeRegistrationDepositResponse) Equal(that interface } return true } +func (this *MsgUpdateParams) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateParams) + if !ok { + that2, ok := that.(MsgUpdateParams) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Authority != that1.Authority { + return false + } + if !this.Params.Equal(&that1.Params) { + return false + } + return true +} +func (this *MsgUpdateParamsResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateParamsResponse) + if !ok { + that2, ok := that.(MsgUpdateParamsResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} // Reference imports to suppress errors if they are not otherwise used. var _ context.Context @@ -1909,6 +2049,9 @@ type MsgClient interface { HandleMsgUpdateMetaNodeDeposit(ctx context.Context, in *MsgUpdateMetaNodeDeposit, opts ...grpc.CallOption) (*MsgUpdateMetaNodeDepositResponse, error) HandleMsgMetaNodeRegistrationVote(ctx context.Context, in *MsgMetaNodeRegistrationVote, opts ...grpc.CallOption) (*MsgMetaNodeRegistrationVoteResponse, error) HandleMsgWithdrawMetaNodeRegistrationDeposit(ctx context.Context, in *MsgWithdrawMetaNodeRegistrationDeposit, opts ...grpc.CallOption) (*MsgWithdrawMetaNodeRegistrationDepositResponse, error) + // UpdateParams defined a governance operation for updating the x/register module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) } type msgClient struct { @@ -2018,6 +2161,15 @@ func (c *msgClient) HandleMsgWithdrawMetaNodeRegistrationDeposit(ctx context.Con return out, nil } +func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) { + out := new(MsgUpdateParamsResponse) + err := c.cc.Invoke(ctx, "/stratos.register.v1.Msg/UpdateParams", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // CreateResourceNode defines a method for creating a new resource node. @@ -2032,6 +2184,9 @@ type MsgServer interface { HandleMsgUpdateMetaNodeDeposit(context.Context, *MsgUpdateMetaNodeDeposit) (*MsgUpdateMetaNodeDepositResponse, error) HandleMsgMetaNodeRegistrationVote(context.Context, *MsgMetaNodeRegistrationVote) (*MsgMetaNodeRegistrationVoteResponse, error) HandleMsgWithdrawMetaNodeRegistrationDeposit(context.Context, *MsgWithdrawMetaNodeRegistrationDeposit) (*MsgWithdrawMetaNodeRegistrationDepositResponse, error) + // UpdateParams defined a governance operation for updating the x/register module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -2071,6 +2226,9 @@ func (*UnimplementedMsgServer) HandleMsgMetaNodeRegistrationVote(ctx context.Con func (*UnimplementedMsgServer) HandleMsgWithdrawMetaNodeRegistrationDeposit(ctx context.Context, req *MsgWithdrawMetaNodeRegistrationDeposit) (*MsgWithdrawMetaNodeRegistrationDepositResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method HandleMsgWithdrawMetaNodeRegistrationDeposit not implemented") } +func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -2274,6 +2432,24 @@ func _Msg_HandleMsgWithdrawMetaNodeRegistrationDeposit_Handler(srv interface{}, return interceptor(ctx, in, info, handler) } +func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateParams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/stratos.register.v1.Msg/UpdateParams", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "stratos.register.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -2322,6 +2498,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "HandleMsgWithdrawMetaNodeRegistrationDeposit", Handler: _Msg_HandleMsgWithdrawMetaNodeRegistrationDeposit_Handler, }, + { + MethodName: "UpdateParams", + Handler: _Msg_UpdateParams_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "stratos/register/v1/tx.proto", @@ -3146,6 +3326,69 @@ func (m *MsgWithdrawMetaNodeRegistrationDepositResponse) MarshalToSizedBuffer(dA return len(dAtA) - i, nil } +func (m *MsgUpdateParams) 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 *MsgUpdateParams) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParams) 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 = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintTx(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateParamsResponse) 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 *MsgUpdateParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParamsResponse) 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 @@ -3494,6 +3737,30 @@ func (m *MsgWithdrawMetaNodeRegistrationDepositResponse) Size() (n int) { return n } +func (m *MsgUpdateParams) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.Params.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgUpdateParamsResponse) 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 } @@ -5828,6 +6095,171 @@ func (m *MsgWithdrawMetaNodeRegistrationDepositResponse) Unmarshal(dAtA []byte) } return nil } +func (m *MsgUpdateParams) 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: MsgUpdateParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParams: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Authority", 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.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + 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 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.Params.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 *MsgUpdateParamsResponse) 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: MsgUpdateParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParamsResponse: 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/x/sds/keeper/msg_server.go b/x/sds/keeper/msg_server.go index 90c148b5..68cf2610 100644 --- a/x/sds/keeper/msg_server.go +++ b/x/sds/keeper/msg_server.go @@ -6,6 +6,7 @@ import ( "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/sds/types" ) @@ -46,12 +47,18 @@ func (k msgServer) HandleMsgFileUpload(c context.Context, msg *types.MsgFileUplo return &types.MsgFileUploadResponse{}, err } - err = ctx.EventManager().EmitTypedEvent(&types.EventFileUpload{ - Sender: msg.GetFrom(), - Reporter: msg.GetReporter(), - Uploader: msg.GetUploader(), - FileHash: msg.GetFileHash(), - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventFileUpload{ + Sender: msg.GetFrom(), + Reporter: msg.GetReporter(), + Uploader: msg.GetUploader(), + FileHash: msg.GetFileHash(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetFrom(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } @@ -78,15 +85,45 @@ func (k msgServer) HandleMsgPrepay(c context.Context, msg *types.MsgPrepay) (*ty return nil, errors.Wrap(types.ErrPrepayFailure, err.Error()) } - err = ctx.EventManager().EmitTypedEvent(&types.EventPrePay{ - Sender: msg.GetSender(), - Beneficiary: msg.GetBeneficiary(), - Amount: msg.GetAmount(), - PurchasedNoz: purchased, - }) + err = ctx.EventManager().EmitTypedEvents( + &types.EventPrePay{ + Sender: msg.GetSender(), + Beneficiary: msg.GetBeneficiary(), + Amount: msg.GetAmount().String(), + PurchasedNoz: purchased.String(), + }, + &types.EventMessage{ + Module: types.ModuleName, + Sender: msg.GetSender(), + }, + ) if err != nil { return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) } return &types.MsgPrepayResponse{}, nil } + +// UpdateParams updates the module parameters +func (k msgServer) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParams) (*types.MsgUpdateParamsResponse, error) { + if k.authority != msg.Authority { + return nil, errors.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", k.authority, msg.Authority) + } + + ctx := sdk.UnwrapSDKContext(goCtx) + err := k.SetParams(ctx, msg.Params) + if err != nil { + return nil, err + } + + err = ctx.EventManager().EmitTypedEvent(&types.EventMessage{ + Module: types.ModuleName, + Sender: msg.Authority, + Action: sdk.MsgTypeURL(msg), + }) + if err != nil { + return nil, errors.Wrap(types.ErrEmitEvent, err.Error()) + } + + return &types.MsgUpdateParamsResponse{}, nil +} diff --git a/x/sds/keeper/params.go b/x/sds/keeper/params.go index 81a7d6af..98fcfbed 100644 --- a/x/sds/keeper/params.go +++ b/x/sds/keeper/params.go @@ -6,10 +6,16 @@ import ( ) // SetParams sets the params on the store -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { +func (k Keeper) SetParams(ctx sdk.Context, params types.Params) error { + if err := params.Validate(); err != nil { + return err + } + store := ctx.KVStore(k.storeKey) bz := k.cdc.MustMarshal(¶ms) store.Set(types.ParamsKey, bz) + + return nil } // GetParams returns the params from the store diff --git a/x/sds/types/codec.go b/x/sds/types/codec.go index 557db84c..2dad3700 100644 --- a/x/sds/types/codec.go +++ b/x/sds/types/codec.go @@ -17,6 +17,7 @@ func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { // this line is used by starport scaffolding # 1 cdc.RegisterConcrete(MsgFileUpload{}, "sds/FileUploadTx", nil) cdc.RegisterConcrete(MsgPrepay{}, "sds/PrepayTx", nil) + cdc.RegisterConcrete(MsgUpdateParams{}, "sds/UpdateParamsTx", nil) } // RegisterInterfaces registers the x/register interfaces types with the interface registry @@ -24,6 +25,7 @@ func RegisterInterfaces(registry types.InterfaceRegistry) { registry.RegisterImplementations((*sdk.Msg)(nil), &MsgFileUpload{}, &MsgPrepay{}, + &MsgUpdateParams{}, ) registry.RegisterImplementations( (*authz.Authorization)(nil), diff --git a/x/sds/types/event.pb.go b/x/sds/types/event.pb.go index 05537951..81cd4a42 100644 --- a/x/sds/types/event.pb.go +++ b/x/sds/types/event.pb.go @@ -5,10 +5,6 @@ package types import ( fmt "fmt" - _ "github.com/cosmos/cosmos-proto" - 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" math "math" @@ -28,10 +24,10 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // EventPrePay is emitted on Msg/MsgPrepay type EventPrePay struct { - Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` - Beneficiary string `protobuf:"bytes,2,opt,name=beneficiary,proto3" json:"beneficiary,omitempty"` - Amount github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,3,rep,name=amount,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"amount"` - PurchasedNoz github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=purchased_noz,json=purchasedNoz,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"purchased_noz"` + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + Beneficiary string `protobuf:"bytes,2,opt,name=beneficiary,proto3" json:"beneficiary,omitempty"` + Amount string `protobuf:"bytes,3,opt,name=amount,proto3" json:"amount,omitempty"` + PurchasedNoz string `protobuf:"bytes,4,opt,name=purchased_noz,json=purchasedNoz,proto3" json:"purchased_noz,omitempty"` } func (m *EventPrePay) Reset() { *m = EventPrePay{} } @@ -81,11 +77,18 @@ func (m *EventPrePay) GetBeneficiary() string { return "" } -func (m *EventPrePay) GetAmount() github_com_cosmos_cosmos_sdk_types.Coins { +func (m *EventPrePay) GetAmount() string { if m != nil { return m.Amount } - return nil + return "" +} + +func (m *EventPrePay) GetPurchasedNoz() string { + if m != nil { + return m.PurchasedNoz + } + return "" } // EventFileUpload is emitted on Msg/MsgFileUpload @@ -157,42 +160,101 @@ func (m *EventFileUpload) GetFileHash() string { return "" } +// EventMessage +type EventMessage struct { + // module which emits the event + Module string `protobuf:"bytes,1,opt,name=module,proto3" json:"module,omitempty"` + // sender of the message + Sender string `protobuf:"bytes,2,opt,name=sender,proto3" json:"sender,omitempty"` + // tx_type is the type of the message + Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` +} + +func (m *EventMessage) Reset() { *m = EventMessage{} } +func (m *EventMessage) String() string { return proto.CompactTextString(m) } +func (*EventMessage) ProtoMessage() {} +func (*EventMessage) Descriptor() ([]byte, []int) { + return fileDescriptor_2681e45d6d6589b1, []int{2} +} +func (m *EventMessage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *EventMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_EventMessage.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 *EventMessage) XXX_Merge(src proto.Message) { + xxx_messageInfo_EventMessage.Merge(m, src) +} +func (m *EventMessage) XXX_Size() int { + return m.Size() +} +func (m *EventMessage) XXX_DiscardUnknown() { + xxx_messageInfo_EventMessage.DiscardUnknown(m) +} + +var xxx_messageInfo_EventMessage proto.InternalMessageInfo + +func (m *EventMessage) GetModule() string { + if m != nil { + return m.Module + } + return "" +} + +func (m *EventMessage) GetSender() string { + if m != nil { + return m.Sender + } + return "" +} + +func (m *EventMessage) GetAction() string { + if m != nil { + return m.Action + } + return "" +} + func init() { proto.RegisterType((*EventPrePay)(nil), "stratos.sds.v1.EventPrePay") proto.RegisterType((*EventFileUpload)(nil), "stratos.sds.v1.EventFileUpload") + proto.RegisterType((*EventMessage)(nil), "stratos.sds.v1.EventMessage") } func init() { proto.RegisterFile("stratos/sds/v1/event.proto", fileDescriptor_2681e45d6d6589b1) } var fileDescriptor_2681e45d6d6589b1 = []byte{ - // 426 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x3d, 0x6f, 0xd3, 0x40, - 0x18, 0x8e, 0x1b, 0x14, 0xb5, 0x17, 0x3e, 0x24, 0xab, 0x83, 0x1b, 0x24, 0xa7, 0xea, 0x80, 0xb2, - 0xd8, 0x57, 0x03, 0x13, 0x62, 0x21, 0x08, 0x44, 0x16, 0x54, 0x19, 0xb1, 0xb0, 0x44, 0x67, 0xdf, - 0x5b, 0xfb, 0x44, 0x72, 0x67, 0xdd, 0x7b, 0xb6, 0x48, 0x7f, 0x05, 0xbf, 0x83, 0xb9, 0xff, 0x80, - 0xa5, 0x03, 0x43, 0xd5, 0x09, 0x31, 0x14, 0x94, 0xfc, 0x11, 0xe4, 0xf3, 0xb5, 0xea, 0x16, 0xc4, - 0xe4, 0x3b, 0x3f, 0x1f, 0xef, 0x73, 0x8f, 0x5e, 0x32, 0x42, 0xa3, 0x99, 0x51, 0x48, 0x91, 0x23, - 0x6d, 0x12, 0x0a, 0x0d, 0x48, 0x13, 0x57, 0x5a, 0x19, 0xe5, 0x3f, 0x74, 0x58, 0x8c, 0x1c, 0xe3, - 0x26, 0x19, 0xed, 0x17, 0xaa, 0x50, 0x16, 0xa2, 0xed, 0xa9, 0x63, 0x8d, 0x0e, 0x72, 0x85, 0x4b, - 0x85, 0xf3, 0x0e, 0xe8, 0x2e, 0x0e, 0x0a, 0xbb, 0x1b, 0xcd, 0x18, 0x02, 0x6d, 0x92, 0x0c, 0x0c, - 0x4b, 0x68, 0xae, 0x84, 0xec, 0xf0, 0xa3, 0xef, 0x3b, 0x64, 0xf8, 0xa6, 0x1d, 0x78, 0xa2, 0xe1, - 0x84, 0xad, 0xfc, 0x63, 0x32, 0x40, 0x90, 0x1c, 0x74, 0xe0, 0x1d, 0x7a, 0x93, 0xbd, 0x69, 0x70, - 0x75, 0x1e, 0xed, 0x3b, 0xc7, 0x57, 0x9c, 0x6b, 0x40, 0xfc, 0x60, 0xb4, 0x90, 0x45, 0xea, 0x78, - 0xfe, 0x0b, 0x32, 0xcc, 0x40, 0xc2, 0xa9, 0xc8, 0x05, 0xd3, 0xab, 0x60, 0x67, 0x8b, 0xec, 0x2e, - 0xd9, 0xcf, 0xc9, 0x80, 0x2d, 0x55, 0x2d, 0x4d, 0xd0, 0x3f, 0xec, 0x4f, 0x86, 0x4f, 0x0f, 0x62, - 0xa7, 0x69, 0xe3, 0xc6, 0x2e, 0x6e, 0xfc, 0x5a, 0x09, 0x39, 0x3d, 0xbe, 0xb8, 0x1e, 0xf7, 0xbe, - 0xfd, 0x1e, 0x4f, 0x0a, 0x61, 0xca, 0x3a, 0x8b, 0x73, 0xb5, 0x74, 0x2f, 0x75, 0x9f, 0x08, 0xf9, - 0x67, 0x6a, 0x56, 0x15, 0xa0, 0x15, 0x60, 0xea, 0xac, 0x7d, 0x46, 0x1e, 0x54, 0xb5, 0xce, 0x4b, - 0x86, 0xc0, 0xe7, 0x52, 0x9d, 0x05, 0xf7, 0x6c, 0xc4, 0x97, 0xad, 0xe1, 0xaf, 0xeb, 0xf1, 0x93, - 0x7f, 0x30, 0x9c, 0x49, 0x73, 0x75, 0x1e, 0x11, 0x17, 0x6e, 0x26, 0x4d, 0x7a, 0xff, 0xd6, 0xf2, - 0xbd, 0x3a, 0x3b, 0xfa, 0xe1, 0x91, 0x47, 0xb6, 0xc5, 0xb7, 0x62, 0x01, 0x1f, 0xab, 0x85, 0x62, - 0xfc, 0x3f, 0x9a, 0x7c, 0x4e, 0x76, 0x35, 0x54, 0x4a, 0x1b, 0xd0, 0x5b, 0x6b, 0xbc, 0x65, 0xb6, - 0xaa, 0xda, 0x4e, 0x04, 0x1d, 0xf4, 0xb7, 0xa9, 0x6e, 0x98, 0xfe, 0x63, 0xb2, 0x77, 0x2a, 0x16, - 0x30, 0x2f, 0x19, 0x96, 0x5d, 0x21, 0xe9, 0x6e, 0xfb, 0xe3, 0x1d, 0xc3, 0x72, 0x3a, 0xbb, 0x58, - 0x87, 0xde, 0xe5, 0x3a, 0xf4, 0xfe, 0xac, 0x43, 0xef, 0xeb, 0x26, 0xec, 0x5d, 0x6e, 0xc2, 0xde, - 0xcf, 0x4d, 0xd8, 0xfb, 0x44, 0xef, 0x94, 0xe5, 0x56, 0x53, 0x82, 0xb9, 0x39, 0x46, 0x79, 0xc9, - 0x84, 0xa4, 0x5f, 0xec, 0x26, 0xdb, 0xe6, 0xb2, 0x81, 0x5d, 0xb3, 0x67, 0x7f, 0x03, 0x00, 0x00, - 0xff, 0xff, 0x87, 0x22, 0x9b, 0x22, 0xe5, 0x02, 0x00, 0x00, + // 323 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0x31, 0x4b, 0x03, 0x31, + 0x14, 0xc7, 0x7b, 0x55, 0x4a, 0x9b, 0x56, 0x85, 0x1b, 0xe4, 0xa8, 0x70, 0x94, 0xba, 0xb8, 0x78, + 0x47, 0xf1, 0x1b, 0x08, 0x8a, 0x0e, 0x4a, 0x11, 0x74, 0x70, 0x29, 0xe9, 0xe5, 0xb5, 0x09, 0x5c, + 0x93, 0x23, 0x2f, 0x57, 0x6c, 0x07, 0x27, 0x3f, 0x80, 0x1f, 0xcb, 0xb1, 0xa3, 0xa3, 0xb4, 0x5f, + 0x44, 0x92, 0xa6, 0x47, 0x1d, 0xdc, 0xf2, 0x7b, 0x7f, 0x1e, 0xef, 0x17, 0xfe, 0xa4, 0x8b, 0x46, + 0x53, 0xa3, 0x30, 0x45, 0x86, 0xe9, 0x7c, 0x90, 0xc2, 0x1c, 0xa4, 0x49, 0x0a, 0xad, 0x8c, 0x0a, + 0x8f, 0x7d, 0x96, 0x20, 0xc3, 0x64, 0x3e, 0xe8, 0x7f, 0x04, 0xa4, 0x7d, 0x63, 0xf3, 0xa1, 0x86, + 0x21, 0x5d, 0x84, 0xa7, 0xa4, 0x81, 0x20, 0x19, 0xe8, 0x28, 0xe8, 0x05, 0x17, 0xad, 0x27, 0x4f, + 0x61, 0x8f, 0xb4, 0xc7, 0x20, 0x61, 0x22, 0x32, 0x41, 0xf5, 0x22, 0xaa, 0xbb, 0x70, 0x7f, 0x64, + 0x37, 0xe9, 0x4c, 0x95, 0xd2, 0x44, 0x07, 0xdb, 0xcd, 0x2d, 0x85, 0xe7, 0xe4, 0xa8, 0x28, 0x75, + 0xc6, 0x29, 0x02, 0x1b, 0x49, 0xb5, 0x8c, 0x0e, 0x5d, 0xdc, 0xa9, 0x86, 0x8f, 0x6a, 0xd9, 0x7f, + 0x27, 0x27, 0xce, 0xe2, 0x56, 0xe4, 0xf0, 0x5c, 0xe4, 0x8a, 0xb2, 0x7f, 0x4d, 0xba, 0xa4, 0xa9, + 0xa1, 0x50, 0xda, 0x80, 0xf6, 0x1a, 0x15, 0xdb, 0xac, 0x74, 0xdb, 0xa0, 0xbd, 0x45, 0xc5, 0xe1, + 0x19, 0x69, 0x4d, 0x44, 0x0e, 0x23, 0x4e, 0x91, 0x7b, 0x87, 0xa6, 0x1d, 0xdc, 0x51, 0xe4, 0xfd, + 0x17, 0xd2, 0x71, 0xf7, 0x1f, 0x00, 0x91, 0x4e, 0xc1, 0x1e, 0x9f, 0x29, 0x56, 0xe6, 0xb0, 0x3b, + 0xbe, 0xa5, 0x3d, 0xa9, 0xfa, 0x1f, 0x29, 0xfb, 0xf9, 0xcc, 0x08, 0x25, 0xab, 0xcf, 0x3b, 0xba, + 0xbe, 0xff, 0x5a, 0xc7, 0xc1, 0x6a, 0x1d, 0x07, 0x3f, 0xeb, 0x38, 0xf8, 0xdc, 0xc4, 0xb5, 0xd5, + 0x26, 0xae, 0x7d, 0x6f, 0xe2, 0xda, 0x6b, 0x3a, 0x15, 0x86, 0x97, 0xe3, 0x24, 0x53, 0xb3, 0xd4, + 0x77, 0x22, 0xc1, 0xec, 0x9e, 0x97, 0x19, 0xa7, 0x42, 0xa6, 0x6f, 0xae, 0x42, 0xb3, 0x28, 0x00, + 0xc7, 0x0d, 0x57, 0xe0, 0xd5, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa5, 0x2d, 0xab, 0x3a, 0xde, + 0x01, 0x00, 0x00, } func (m *EventPrePay) Marshal() (dAtA []byte, err error) { @@ -215,29 +277,19 @@ func (m *EventPrePay) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size := m.PurchasedNoz.Size() - i -= size - if _, err := m.PurchasedNoz.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintEvent(dAtA, i, uint64(size)) + if len(m.PurchasedNoz) > 0 { + i -= len(m.PurchasedNoz) + copy(dAtA[i:], m.PurchasedNoz) + i = encodeVarintEvent(dAtA, i, uint64(len(m.PurchasedNoz))) + i-- + dAtA[i] = 0x22 } - i-- - dAtA[i] = 0x22 if len(m.Amount) > 0 { - for iNdEx := len(m.Amount) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.Amount[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintEvent(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - } + i -= len(m.Amount) + copy(dAtA[i:], m.Amount) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Amount))) + i-- + dAtA[i] = 0x1a } if len(m.Beneficiary) > 0 { i -= len(m.Beneficiary) @@ -307,6 +359,50 @@ func (m *EventFileUpload) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *EventMessage) 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 *EventMessage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *EventMessage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Action) > 0 { + i -= len(m.Action) + copy(dAtA[i:], m.Action) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Action))) + i-- + dAtA[i] = 0x1a + } + if len(m.Sender) > 0 { + i -= len(m.Sender) + copy(dAtA[i:], m.Sender) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Sender))) + i-- + dAtA[i] = 0x12 + } + if len(m.Module) > 0 { + i -= len(m.Module) + copy(dAtA[i:], m.Module) + i = encodeVarintEvent(dAtA, i, uint64(len(m.Module))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintEvent(dAtA []byte, offset int, v uint64) int { offset -= sovEvent(v) base := offset @@ -332,14 +428,14 @@ func (m *EventPrePay) Size() (n int) { if l > 0 { n += 1 + l + sovEvent(uint64(l)) } - if len(m.Amount) > 0 { - for _, e := range m.Amount { - l = e.Size() - n += 1 + l + sovEvent(uint64(l)) - } + l = len(m.Amount) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.PurchasedNoz) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) } - l = m.PurchasedNoz.Size() - n += 1 + l + sovEvent(uint64(l)) return n } @@ -368,6 +464,27 @@ func (m *EventFileUpload) Size() (n int) { return n } +func (m *EventMessage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Module) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Sender) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + l = len(m.Action) + if l > 0 { + n += 1 + l + sovEvent(uint64(l)) + } + return n +} + func sovEvent(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -471,7 +588,7 @@ func (m *EventPrePay) Unmarshal(dAtA []byte) error { if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Amount", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowEvent @@ -481,25 +598,23 @@ func (m *EventPrePay) 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 ErrInvalidLengthEvent } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex < 0 { return ErrInvalidLengthEvent } if postIndex > l { return io.ErrUnexpectedEOF } - m.Amount = append(m.Amount, types.Coin{}) - if err := m.Amount[len(m.Amount)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Amount = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 4: if wireType != 2 { @@ -531,9 +646,7 @@ func (m *EventPrePay) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if err := m.PurchasedNoz.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.PurchasedNoz = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex default: iNdEx = preIndex @@ -734,6 +847,152 @@ func (m *EventFileUpload) Unmarshal(dAtA []byte) error { } return nil } +func (m *EventMessage) 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 ErrIntOverflowEvent + } + 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: EventMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: EventMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Module", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Module = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + 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 ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Sender = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowEvent + } + 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 ErrInvalidLengthEvent + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthEvent + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Action = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipEvent(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthEvent + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipEvent(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/sds/types/msg.go b/x/sds/types/msg.go index a09e3c5e..3b0767b8 100644 --- a/x/sds/types/msg.go +++ b/x/sds/types/msg.go @@ -14,11 +14,13 @@ import ( var ( _ sdk.Msg = &MsgFileUpload{} _ sdk.Msg = &MsgPrepay{} + _ sdk.Msg = &MsgUpdateParams{} ) const ( - TypeMsgFileUpload = "FileUploadTx" - TypeMsgPrepay = "SdsPrepayTx" + TypeMsgFileUpload = "FileUploadTx" + TypeMsgPrepay = "SdsPrepayTx" + TypeMsgUpdateParams = "update_params" ) // NewMsgUpload creates a new Msg instance @@ -91,6 +93,8 @@ func (msg MsgFileUpload) ValidateBasic() error { return nil } +// -------------------------------------------------------------------------------------------------------------------- + // NewMsgPrepay NewMsg creates a new Msg instance func NewMsgPrepay(sender string, beneficiary string, amount sdk.Coins) *MsgPrepay { return &MsgPrepay{ @@ -141,3 +145,44 @@ func (msg MsgPrepay) ValidateBasic() error { return nil } + +// -------------------------------------------------------------------------------------------------------------------- + +func NewMsgUpdateParams(params Params, authority string) *MsgUpdateParams { + return &MsgUpdateParams{ + Params: params, + Authority: authority, + } +} + +// Route implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) Route() string { + return RouterKey +} + +// Type implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) Type() string { + return TypeMsgUpdateParams +} + +// ValidateBasic implements sdk.Msg +func (msg *MsgUpdateParams) ValidateBasic() error { + _, err := sdk.AccAddressFromBech32(msg.Authority) + if err != nil { + return err + } + + return msg.Params.Validate() +} + +// GetSignBytes implements sdk.Msg +func (msg *MsgUpdateParams) GetSigners() []sdk.AccAddress { + authority := sdk.MustAccAddressFromBech32(msg.Authority) + return []sdk.AccAddress{authority} +} + +// GetSigners implements legacytx.LegacyMsg +func (msg *MsgUpdateParams) GetSignBytes() []byte { + bz := ModuleCdc.MustMarshalJSON(msg) + return sdk.MustSortJSON(bz) +} diff --git a/x/sds/types/tx.pb.go b/x/sds/types/tx.pb.go index 368f2d56..7f97019e 100644 --- a/x/sds/types/tx.pb.go +++ b/x/sds/types/tx.pb.go @@ -14,7 +14,6 @@ import ( _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" - _ "google.golang.org/genproto/googleapis/api/annotations" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -234,59 +233,159 @@ func (m *MsgPrepayResponse) XXX_DiscardUnknown() { var xxx_messageInfo_MsgPrepayResponse proto.InternalMessageInfo +// MsgUpdateParams defines a Msg for updating the x/sds module parameters. +type MsgUpdateParams struct { + // authority is the address of the governance account. + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty"` + // params defines the x/sds parameters to update. + // NOTE: All parameters must be supplied. + Params Params `protobuf:"bytes,2,opt,name=params,proto3" json:"params"` +} + +func (m *MsgUpdateParams) Reset() { *m = MsgUpdateParams{} } +func (m *MsgUpdateParams) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParams) ProtoMessage() {} +func (*MsgUpdateParams) Descriptor() ([]byte, []int) { + return fileDescriptor_a5a216e2f9435b27, []int{4} +} +func (m *MsgUpdateParams) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParams.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 *MsgUpdateParams) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParams.Merge(m, src) +} +func (m *MsgUpdateParams) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParams) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParams.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParams proto.InternalMessageInfo + +func (m *MsgUpdateParams) GetAuthority() string { + if m != nil { + return m.Authority + } + return "" +} + +func (m *MsgUpdateParams) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + +// MsgUpdateParamsResponse defines the response structure for executing a +// MsgUpdateParams message. +type MsgUpdateParamsResponse struct { +} + +func (m *MsgUpdateParamsResponse) Reset() { *m = MsgUpdateParamsResponse{} } +func (m *MsgUpdateParamsResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateParamsResponse) ProtoMessage() {} +func (*MsgUpdateParamsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_a5a216e2f9435b27, []int{5} +} +func (m *MsgUpdateParamsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateParamsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateParamsResponse.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 *MsgUpdateParamsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateParamsResponse.Merge(m, src) +} +func (m *MsgUpdateParamsResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateParamsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateParamsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateParamsResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*MsgFileUpload)(nil), "stratos.sds.v1.MsgFileUpload") proto.RegisterType((*MsgFileUploadResponse)(nil), "stratos.sds.v1.MsgFileUploadResponse") proto.RegisterType((*MsgPrepay)(nil), "stratos.sds.v1.MsgPrepay") proto.RegisterType((*MsgPrepayResponse)(nil), "stratos.sds.v1.MsgPrepayResponse") + proto.RegisterType((*MsgUpdateParams)(nil), "stratos.sds.v1.MsgUpdateParams") + proto.RegisterType((*MsgUpdateParamsResponse)(nil), "stratos.sds.v1.MsgUpdateParamsResponse") } func init() { proto.RegisterFile("stratos/sds/v1/tx.proto", fileDescriptor_a5a216e2f9435b27) } var fileDescriptor_a5a216e2f9435b27 = []byte{ - // 666 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0x4d, 0x4b, 0x1b, 0x41, - 0x18, 0xce, 0x26, 0x56, 0x74, 0xc4, 0x5a, 0x57, 0xad, 0x31, 0xad, 0xbb, 0xba, 0x52, 0x10, 0xc1, - 0x1d, 0xa2, 0x87, 0x82, 0xd0, 0x42, 0x15, 0x8a, 0x50, 0x02, 0x12, 0xe9, 0xa5, 0x17, 0x99, 0x64, - 0xc7, 0xcd, 0xd2, 0xec, 0xcc, 0x32, 0x33, 0x8a, 0xb9, 0x89, 0xbd, 0xf5, 0x54, 0xe8, 0x9f, 0x90, - 0x9e, 0x3c, 0xf4, 0x47, 0x78, 0x94, 0xf6, 0xd2, 0xd3, 0xb6, 0x24, 0x85, 0x40, 0x8e, 0xf9, 0x05, - 0x65, 0x67, 0x66, 0x37, 0x89, 0x34, 0x5e, 0x92, 0x79, 0x9f, 0x67, 0xde, 0x67, 0xde, 0xcf, 0x05, - 0xcb, 0x5c, 0x30, 0x24, 0x28, 0x87, 0xdc, 0xe3, 0xf0, 0xbc, 0x0c, 0xc5, 0x85, 0x1b, 0x31, 0x2a, - 0xa8, 0xf9, 0x58, 0x13, 0x2e, 0xf7, 0xb8, 0x7b, 0x5e, 0x2e, 0x2d, 0xfa, 0xd4, 0xa7, 0x92, 0x82, - 0xc9, 0x49, 0xdd, 0x2a, 0xad, 0xd4, 0x29, 0x0f, 0x29, 0x3f, 0x51, 0x84, 0x32, 0x34, 0x35, 0x8f, - 0xc2, 0x80, 0x50, 0x28, 0x7f, 0x35, 0xb4, 0xac, 0x2e, 0xc0, 0x90, 0xfb, 0xc9, 0x5b, 0x21, 0xf7, - 0x35, 0xf1, 0xdc, 0xa7, 0xd4, 0x6f, 0x62, 0x88, 0xa2, 0x00, 0x22, 0x42, 0xa8, 0x40, 0x22, 0xa0, - 0x24, 0x55, 0xb2, 0xb4, 0x5b, 0x0d, 0x71, 0x0c, 0xcf, 0xcb, 0x35, 0x2c, 0x50, 0x19, 0xd6, 0x69, - 0x40, 0x14, 0xef, 0x74, 0xf2, 0x60, 0xb6, 0xc2, 0xfd, 0xb7, 0x41, 0x13, 0xbf, 0x8f, 0x9a, 0x14, - 0x79, 0xe6, 0x6b, 0x30, 0x7d, 0x1a, 0x34, 0xf1, 0x49, 0x03, 0xf1, 0x46, 0xd1, 0x58, 0x33, 0x36, - 0xa7, 0xf7, 0xd7, 0x7b, 0xb1, 0x3d, 0x00, 0xfb, 0xb1, 0xfd, 0xa4, 0x85, 0xc2, 0xe6, 0x9e, 0x93, - 0x41, 0x4e, 0x75, 0x2a, 0x39, 0x1f, 0x22, 0xde, 0x30, 0x0f, 0xc0, 0xc4, 0x29, 0xa3, 0x61, 0x31, - 0x2f, 0x5d, 0x61, 0x2f, 0xb6, 0xa5, 0xdd, 0x8f, 0xed, 0x19, 0xed, 0xc5, 0x68, 0xe8, 0xfc, 0xf8, - 0xbe, 0xbd, 0xa8, 0x53, 0x7e, 0xe3, 0x79, 0x0c, 0x73, 0x7e, 0x2c, 0x58, 0x40, 0xfc, 0xaa, 0xbc, - 0x6c, 0x1e, 0x83, 0x29, 0x86, 0x23, 0xca, 0x04, 0x66, 0xc5, 0x82, 0x14, 0x7a, 0xd9, 0x8b, 0xed, - 0x0c, 0xeb, 0xc7, 0xf6, 0x9c, 0x12, 0x4b, 0x91, 0xf1, 0x82, 0x99, 0x53, 0x22, 0x7a, 0x26, 0x73, - 0xc4, 0xac, 0x38, 0x31, 0x10, 0x4d, 0xb1, 0x81, 0x68, 0x8a, 0x3c, 0x20, 0x9a, 0x5e, 0xd9, 0xdb, - 0xb8, 0xea, 0xde, 0x6c, 0xc9, 0xa0, 0x3f, 0x77, 0x6f, 0xb6, 0x96, 0xd2, 0x91, 0x18, 0xa9, 0xa9, - 0xb3, 0x0c, 0x96, 0x46, 0x80, 0x2a, 0xe6, 0x11, 0x25, 0x1c, 0x3b, 0xed, 0x3c, 0x98, 0xae, 0x70, - 0xff, 0x88, 0xe1, 0x08, 0xb5, 0xcc, 0x77, 0x60, 0x92, 0x63, 0x92, 0x84, 0xa7, 0xea, 0xbe, 0xdb, - 0x8b, 0x6d, 0x8d, 0xf4, 0x63, 0x7b, 0x56, 0x05, 0xa7, 0xec, 0xf1, 0xa1, 0x69, 0x07, 0xf3, 0x04, - 0xcc, 0xd4, 0x30, 0xc1, 0xa7, 0x41, 0x3d, 0x40, 0xac, 0xa5, 0xdb, 0xf1, 0xaa, 0x17, 0xdb, 0xc3, - 0x70, 0x3f, 0xb6, 0x4d, 0x25, 0x3b, 0x04, 0x8e, 0xd7, 0x1e, 0x76, 0x35, 0x3f, 0x19, 0x60, 0x12, - 0x85, 0xf4, 0x8c, 0x88, 0x62, 0x61, 0xad, 0xb0, 0x39, 0xb3, 0xb3, 0xe2, 0x6a, 0xa7, 0x64, 0xd8, - 0x5c, 0x3d, 0x6c, 0xee, 0x01, 0x0d, 0xc8, 0xfe, 0xd1, 0x6d, 0x6c, 0xe7, 0x92, 0x6c, 0x94, 0xc3, - 0x20, 0x1b, 0x65, 0x3b, 0xdf, 0x7e, 0xdb, 0x9b, 0x7e, 0x20, 0x1a, 0x67, 0x35, 0xb7, 0x4e, 0x43, - 0xbd, 0x0c, 0xfa, 0x6f, 0x9b, 0x7b, 0x1f, 0xa1, 0x68, 0x45, 0x98, 0x4b, 0x2d, 0x7e, 0xdd, 0xbd, - 0xd9, 0x32, 0xaa, 0x5a, 0x69, 0x6f, 0x3d, 0xa9, 0xbf, 0xce, 0x39, 0xe9, 0xc0, 0xfc, 0x50, 0x07, - 0x54, 0x59, 0x9d, 0x05, 0x30, 0x9f, 0x19, 0x69, 0xe5, 0x77, 0x2e, 0xf3, 0xa0, 0x50, 0xe1, 0xbe, - 0x79, 0x69, 0x80, 0x85, 0x43, 0x44, 0xbc, 0x26, 0x1e, 0x5d, 0x83, 0x55, 0x77, 0x74, 0x89, 0xdd, - 0x11, 0xba, 0xf4, 0xe2, 0x41, 0x3a, 0xeb, 0xef, 0xc6, 0xd5, 0xcf, 0xbf, 0x5f, 0xf3, 0xab, 0xce, - 0x33, 0x78, 0xef, 0x5b, 0x21, 0x57, 0x47, 0x0d, 0x91, 0x49, 0xc1, 0x5c, 0x16, 0x81, 0x9e, 0x84, - 0x95, 0xff, 0xc8, 0x2b, 0xaa, 0xb4, 0x3e, 0x96, 0xca, 0x5e, 0xb5, 0xe4, 0xab, 0x45, 0xe7, 0xe9, - 0xfd, 0x57, 0x23, 0x25, 0xf1, 0xe8, 0x32, 0x29, 0xe1, 0x7e, 0xe5, 0xba, 0x6d, 0x19, 0xb7, 0x6d, - 0xcb, 0xb8, 0x6b, 0x5b, 0xc6, 0x9f, 0xb6, 0x65, 0x7c, 0xe9, 0x58, 0xb9, 0xbb, 0x8e, 0x95, 0xfb, - 0xd5, 0xb1, 0x72, 0x1f, 0xe0, 0x50, 0x3f, 0xb4, 0x0c, 0xc1, 0x22, 0x3d, 0x6e, 0xd7, 0x1b, 0x28, - 0x20, 0xf0, 0x42, 0x2a, 0xcb, 0xe6, 0xd4, 0x26, 0xe5, 0x17, 0x65, 0xf7, 0x5f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x95, 0x43, 0x07, 0xbd, 0x17, 0x05, 0x00, 0x00, + // 726 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x54, 0x4d, 0x6b, 0x13, 0x5d, + 0x14, 0xce, 0x24, 0x7d, 0x43, 0x73, 0xf3, 0xd6, 0xda, 0x69, 0x6b, 0x3e, 0xa0, 0x33, 0xed, 0x88, + 0x58, 0x0a, 0x9d, 0x31, 0x2d, 0x28, 0x06, 0x14, 0x4c, 0x41, 0x0a, 0x12, 0x2c, 0x29, 0x05, 0xd1, + 0x45, 0xb9, 0xc9, 0xdc, 0x4e, 0x06, 0x33, 0x73, 0x87, 0xb9, 0x37, 0xa5, 0xd9, 0x89, 0xee, 0x5c, + 0xb9, 0xf0, 0x47, 0x14, 0x57, 0x5d, 0x88, 0xbf, 0xa1, 0xcb, 0xe2, 0xca, 0xd5, 0x28, 0xc9, 0xa2, + 0x90, 0x65, 0x7e, 0x81, 0xdc, 0x8f, 0xc9, 0x17, 0x4d, 0xdd, 0xb4, 0xf7, 0x3e, 0xcf, 0x39, 0xcf, + 0x9c, 0xf3, 0x9c, 0x73, 0x03, 0x72, 0x84, 0x86, 0x90, 0x62, 0x62, 0x11, 0x9b, 0x58, 0xa7, 0x25, + 0x8b, 0x9e, 0x99, 0x41, 0x88, 0x29, 0x56, 0xef, 0x48, 0xc2, 0x24, 0x36, 0x31, 0x4f, 0x4b, 0xc5, + 0x15, 0x07, 0x3b, 0x98, 0x53, 0x16, 0x3b, 0x89, 0xa8, 0x62, 0xa1, 0x81, 0x89, 0x87, 0xc9, 0xb1, + 0x20, 0xc4, 0x45, 0x52, 0x4b, 0xd0, 0x73, 0x7d, 0x6c, 0xf1, 0xbf, 0x12, 0xca, 0x89, 0x00, 0xcb, + 0x23, 0x0e, 0xfb, 0x96, 0x47, 0x1c, 0x49, 0x68, 0x92, 0xa8, 0x43, 0x82, 0xac, 0xd3, 0x52, 0x1d, + 0x51, 0x58, 0xb2, 0x1a, 0xd8, 0xf5, 0x25, 0x9f, 0x9f, 0xaa, 0x92, 0xd5, 0xc4, 0x19, 0xa3, 0x97, + 0x04, 0x0b, 0x55, 0xe2, 0xbc, 0x74, 0x5b, 0xe8, 0x28, 0x68, 0x61, 0x68, 0xab, 0xcf, 0x41, 0xe6, + 0xc4, 0x6d, 0xa1, 0xe3, 0x26, 0x24, 0xcd, 0xbc, 0xb2, 0xae, 0x6c, 0x66, 0x2a, 0x1b, 0xfd, 0x48, + 0x1f, 0x81, 0x83, 0x48, 0xbf, 0xdb, 0x81, 0x5e, 0xab, 0x6c, 0x0c, 0x21, 0xa3, 0x36, 0xcf, 0xce, + 0xfb, 0x90, 0x34, 0xd5, 0x3d, 0x30, 0x77, 0x12, 0x62, 0x2f, 0x9f, 0xe4, 0xa9, 0x56, 0x3f, 0xd2, + 0xf9, 0x7d, 0x10, 0xe9, 0x59, 0x99, 0x15, 0x62, 0xcf, 0xf8, 0xf9, 0x7d, 0x7b, 0x45, 0xb6, 0xfb, + 0xc2, 0xb6, 0x43, 0x44, 0xc8, 0x21, 0x0d, 0x5d, 0xdf, 0xa9, 0xf1, 0x60, 0xf5, 0x10, 0xcc, 0x87, + 0x28, 0xc0, 0x21, 0x45, 0x61, 0x3e, 0xc5, 0x85, 0x9e, 0xf4, 0x23, 0x7d, 0x88, 0x0d, 0x22, 0x7d, + 0x51, 0x88, 0xc5, 0xc8, 0x6c, 0xc1, 0x61, 0x12, 0x13, 0x6d, 0xf3, 0x1e, 0x51, 0x98, 0x9f, 0x1b, + 0x89, 0xc6, 0xd8, 0x48, 0x34, 0x46, 0x6e, 0x11, 0x8d, 0x43, 0xca, 0xf7, 0x3f, 0x5e, 0x5f, 0x6c, + 0xf1, 0xa2, 0x3f, 0x5f, 0x5f, 0x6c, 0xad, 0xc6, 0x46, 0x4f, 0x78, 0x6a, 0xe4, 0xc0, 0xea, 0x04, + 0x50, 0x43, 0x24, 0xc0, 0x3e, 0x41, 0x46, 0x37, 0x09, 0x32, 0x55, 0xe2, 0x1c, 0x84, 0x28, 0x80, + 0x1d, 0xf5, 0x15, 0x48, 0x13, 0xe4, 0xb3, 0xf2, 0x84, 0xef, 0xbb, 0xfd, 0x48, 0x97, 0xc8, 0x20, + 0xd2, 0x17, 0x44, 0x71, 0xe2, 0x3e, 0xbb, 0x34, 0x99, 0xa0, 0x1e, 0x83, 0x6c, 0x1d, 0xf9, 0xe8, + 0xc4, 0x6d, 0xb8, 0x30, 0xec, 0xc8, 0x71, 0x3c, 0xeb, 0x47, 0xfa, 0x38, 0x3c, 0x88, 0x74, 0x55, + 0xc8, 0x8e, 0x81, 0xb3, 0xb5, 0xc7, 0x53, 0xd5, 0x4f, 0x0a, 0x48, 0x43, 0x0f, 0xb7, 0x7d, 0x9a, + 0x4f, 0xad, 0xa7, 0x36, 0xb3, 0x3b, 0x05, 0x53, 0x26, 0xb1, 0x35, 0x34, 0xe5, 0x1a, 0x9a, 0x7b, + 0xd8, 0xf5, 0x2b, 0x07, 0x97, 0x91, 0x9e, 0x60, 0xdd, 0x88, 0x84, 0x51, 0x37, 0xe2, 0x6e, 0x7c, + 0xfb, 0xad, 0x6f, 0x3a, 0x2e, 0x6d, 0xb6, 0xeb, 0x66, 0x03, 0x7b, 0xf2, 0x21, 0xc8, 0x7f, 0xdb, + 0xc4, 0x7e, 0x6f, 0xd1, 0x4e, 0x80, 0x08, 0xd7, 0x22, 0xe7, 0xd7, 0x17, 0x5b, 0x4a, 0x4d, 0x2a, + 0x95, 0x37, 0x98, 0xff, 0xb2, 0x67, 0x36, 0x81, 0xa5, 0xb1, 0x09, 0x08, 0x5b, 0x8d, 0x65, 0xb0, + 0x34, 0xbc, 0x0c, 0x9d, 0xff, 0xa1, 0x80, 0xc5, 0x2a, 0x71, 0x8e, 0x02, 0x1b, 0x52, 0x74, 0x00, + 0x43, 0xe8, 0x11, 0xf5, 0x31, 0xc8, 0xc0, 0x36, 0x6d, 0xe2, 0xd0, 0xa5, 0x1d, 0x39, 0x82, 0xfc, + 0x4c, 0x2f, 0x46, 0xa1, 0xea, 0x53, 0x90, 0x0e, 0xb8, 0x02, 0x77, 0x39, 0xbb, 0x73, 0xcf, 0x9c, + 0x7c, 0xfc, 0xa6, 0xd0, 0xaf, 0x64, 0x98, 0x0b, 0xb2, 0x7c, 0x91, 0x50, 0x7e, 0xc4, 0xca, 0x1f, + 0x49, 0xb1, 0x0e, 0xd6, 0xe2, 0x0e, 0xce, 0xf8, 0x73, 0x9d, 0x2a, 0xd2, 0x28, 0x80, 0xdc, 0x14, + 0x14, 0xf7, 0xb4, 0xf3, 0x35, 0x09, 0x52, 0x55, 0xe2, 0xa8, 0xef, 0xc0, 0xf2, 0x3e, 0xf4, 0xed, + 0x16, 0x9a, 0x7c, 0xd9, 0x6b, 0xd3, 0x65, 0x4d, 0xd0, 0xc5, 0x07, 0xb7, 0xd2, 0xf1, 0x47, 0xd4, + 0xd7, 0x60, 0x71, 0x28, 0x2e, 0xf7, 0xb6, 0x70, 0x43, 0xa6, 0xa0, 0x8a, 0x1b, 0x33, 0xa9, 0xa1, + 0xe0, 0x1b, 0xf0, 0xff, 0xc4, 0x14, 0xf4, 0x1b, 0x52, 0xc6, 0x03, 0x8a, 0x0f, 0xff, 0x11, 0x10, + 0x2b, 0x17, 0xff, 0xfb, 0xc0, 0xbc, 0xae, 0x54, 0xcf, 0xbb, 0x9a, 0x72, 0xd9, 0xd5, 0x94, 0xab, + 0xae, 0xa6, 0xfc, 0xe9, 0x6a, 0xca, 0x97, 0x9e, 0x96, 0xb8, 0xea, 0x69, 0x89, 0x5f, 0x3d, 0x2d, + 0xf1, 0xd6, 0x1a, 0xdb, 0x3b, 0xa9, 0xeb, 0x23, 0x1a, 0x1f, 0xb7, 0x1b, 0x4d, 0xe8, 0xfa, 0x72, + 0x14, 0x7c, 0x09, 0xeb, 0x69, 0xfe, 0xcb, 0xb9, 0xfb, 0x37, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x17, + 0x46, 0x4e, 0xfb, 0x05, 0x00, 0x00, } func (this *MsgFileUpload) Equal(that interface{}) bool { @@ -399,6 +498,54 @@ func (this *MsgPrepayResponse) Equal(that interface{}) bool { } return true } +func (this *MsgUpdateParams) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateParams) + if !ok { + that2, ok := that.(MsgUpdateParams) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Authority != that1.Authority { + return false + } + if !this.Params.Equal(&that1.Params) { + return false + } + return true +} +func (this *MsgUpdateParamsResponse) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MsgUpdateParamsResponse) + if !ok { + that2, ok := that.(MsgUpdateParamsResponse) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + return true +} // Reference imports to suppress errors if they are not otherwise used. var _ context.Context @@ -416,6 +563,9 @@ type MsgClient interface { HandleMsgFileUpload(ctx context.Context, in *MsgFileUpload, opts ...grpc.CallOption) (*MsgFileUploadResponse, error) // HandleMsgPrepay defines a method for prepay HandleMsgPrepay(ctx context.Context, in *MsgPrepay, opts ...grpc.CallOption) (*MsgPrepayResponse, error) + // UpdateParams defined a governance operation for updating the x/sds module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) } type msgClient struct { @@ -444,12 +594,24 @@ func (c *msgClient) HandleMsgPrepay(ctx context.Context, in *MsgPrepay, opts ... return out, nil } +func (c *msgClient) UpdateParams(ctx context.Context, in *MsgUpdateParams, opts ...grpc.CallOption) (*MsgUpdateParamsResponse, error) { + out := new(MsgUpdateParamsResponse) + err := c.cc.Invoke(ctx, "/stratos.sds.v1.Msg/UpdateParams", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MsgServer is the server API for Msg service. type MsgServer interface { // HandleMsgFileUpload defines a method for file uploading HandleMsgFileUpload(context.Context, *MsgFileUpload) (*MsgFileUploadResponse, error) // HandleMsgPrepay defines a method for prepay HandleMsgPrepay(context.Context, *MsgPrepay) (*MsgPrepayResponse, error) + // UpdateParams defined a governance operation for updating the x/sds module parameters. + // The authority is hard-coded to the Cosmos SDK x/gov module account + UpdateParams(context.Context, *MsgUpdateParams) (*MsgUpdateParamsResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. @@ -462,6 +624,9 @@ func (*UnimplementedMsgServer) HandleMsgFileUpload(ctx context.Context, req *Msg func (*UnimplementedMsgServer) HandleMsgPrepay(ctx context.Context, req *MsgPrepay) (*MsgPrepayResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method HandleMsgPrepay not implemented") } +func (*UnimplementedMsgServer) UpdateParams(ctx context.Context, req *MsgUpdateParams) (*MsgUpdateParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateParams not implemented") +} func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) @@ -503,6 +668,24 @@ func _Msg_HandleMsgPrepay_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _Msg_UpdateParams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateParams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/stratos.sds.v1.Msg/UpdateParams", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateParams(ctx, req.(*MsgUpdateParams)) + } + return interceptor(ctx, in, info, handler) +} + var _Msg_serviceDesc = grpc.ServiceDesc{ ServiceName: "stratos.sds.v1.Msg", HandlerType: (*MsgServer)(nil), @@ -515,6 +698,10 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ MethodName: "HandleMsgPrepay", Handler: _Msg_HandleMsgPrepay_Handler, }, + { + MethodName: "UpdateParams", + Handler: _Msg_UpdateParams_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "stratos/sds/v1/tx.proto", @@ -668,6 +855,69 @@ func (m *MsgPrepayResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *MsgUpdateParams) 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 *MsgUpdateParams) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParams) 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 = encodeVarintTx(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Authority) > 0 { + i -= len(m.Authority) + copy(dAtA[i:], m.Authority) + i = encodeVarintTx(dAtA, i, uint64(len(m.Authority))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateParamsResponse) 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 *MsgUpdateParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateParamsResponse) 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 @@ -745,6 +995,30 @@ func (m *MsgPrepayResponse) Size() (n int) { return n } +func (m *MsgUpdateParams) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Authority) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = m.Params.Size() + n += 1 + l + sovTx(uint64(l)) + return n +} + +func (m *MsgUpdateParamsResponse) 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 } @@ -1177,6 +1451,171 @@ func (m *MsgPrepayResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *MsgUpdateParams) 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: MsgUpdateParams: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParams: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Authority", 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.Authority = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + 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 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.Params.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 *MsgUpdateParamsResponse) 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: MsgUpdateParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateParamsResponse: 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 From 925b795f7cff474acad65ba0c074ad134f7963f5 Mon Sep 17 00:00:00 2001 From: Xiong Date: Fri, 27 Oct 2023 14:31:19 -0400 Subject: [PATCH 05/15] params store migration --- x/evm/keeper/migrations.go | 20 ++++++++++++++----- x/evm/legacy/v011/store.go | 33 ++++++++++++++++++++++++++++++++ x/evm/module.go | 7 +++++-- x/pot/keeper/migrations.go | 11 +++++++---- x/pot/legacy/v011/store.go | 33 ++++++++++++++++++++++++++++++++ x/pot/module.go | 8 +++++--- x/register/keeper/migrations.go | 11 +++++++---- x/register/legacy/v011/store.go | 34 +++++++++++++++++++++++++++++++++ x/register/module.go | 8 +++++--- x/sds/keeper/migrations.go | 11 +++++++---- x/sds/legacy/v011/store.go | 33 ++++++++++++++++++++++++++++++++ x/sds/module.go | 8 +++++--- x/sds/types/params.go | 1 + 13 files changed, 190 insertions(+), 28 deletions(-) create mode 100644 x/evm/legacy/v011/store.go create mode 100644 x/pot/legacy/v011/store.go create mode 100644 x/register/legacy/v011/store.go create mode 100644 x/sds/legacy/v011/store.go diff --git a/x/evm/keeper/migrations.go b/x/evm/keeper/migrations.go index 3be1ada6..be208f3a 100644 --- a/x/evm/keeper/migrations.go +++ b/x/evm/keeper/migrations.go @@ -1,13 +1,23 @@ package keeper +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + v011 "github.com/stratosnet/stratos-chain/x/evm/legacy/v011" + "github.com/stratosnet/stratos-chain/x/evm/types" +) + // Migrator is a struct for handling in-place store migrations. type Migrator struct { - keeper Keeper + keeper Keeper + legacySubspace types.ParamsSubspace } // NewMigrator returns a new Migrator. -func NewMigrator(keeper Keeper) Migrator { - return Migrator{ - keeper: keeper, - } +func NewMigrator(keeper Keeper, legacySubspace types.ParamsSubspace) Migrator { + return Migrator{keeper: keeper, legacySubspace: legacySubspace} +} + +// Migrate1to2 migrates from version 1 to 2. +func (m Migrator) Migrate1to2(ctx sdk.Context) error { + return v011.MigrateStore(ctx, m.keeper.storeKey, m.legacySubspace, m.keeper.cdc) } diff --git a/x/evm/legacy/v011/store.go b/x/evm/legacy/v011/store.go new file mode 100644 index 00000000..a80632dd --- /dev/null +++ b/x/evm/legacy/v011/store.go @@ -0,0 +1,33 @@ +package v011 + +import ( + "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/x/evm/types" +) + +func MigrateStore(ctx sdk.Context, storeKey storetypes.StoreKey, legacySubspace types.ParamsSubspace, cdc codec.BinaryCodec) error { + store := ctx.KVStore(storeKey) + + // migrate params + if err := migrateParams(ctx, store, cdc, legacySubspace); err != nil { + return err + } + + return nil +} + +// migrateParams will set the params to store from legacySubspace +func migrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCodec, legacySubspace types.ParamsSubspace) error { + var legacyParams types.Params + legacySubspace.GetParamSet(ctx, &legacyParams) + + if err := legacyParams.Validate(); err != nil { + return err + } + + bz := cdc.MustMarshal(&legacyParams) + store.Set(types.KeyPrefixParams, bz) + return nil +} diff --git a/x/evm/module.go b/x/evm/module.go index f14e415b..b58afb4a 100644 --- a/x/evm/module.go +++ b/x/evm/module.go @@ -33,7 +33,7 @@ import ( ) const ( - consensusVersion = 1 + consensusVersion = 2 ) var ( @@ -129,7 +129,10 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { types.RegisterMsgServer(cfg.MsgServer(), am.keeper) types.RegisterQueryServer(cfg.QueryServer(), am.keeper) - _ = keeper.NewMigrator(*am.keeper) + m := keeper.NewMigrator(*am.keeper, am.legacySubspace) + if err := cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2); err != nil { + panic(fmt.Sprintf("failed to migrate x/%s from version 1 to 2: %v", types.ModuleName, err)) + } } // RegisterInvariants interface for registering invariants. Performs a no-op diff --git a/x/pot/keeper/migrations.go b/x/pot/keeper/migrations.go index c0558cb4..a0aea5e5 100644 --- a/x/pot/keeper/migrations.go +++ b/x/pot/keeper/migrations.go @@ -2,19 +2,22 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" + v011 "github.com/stratosnet/stratos-chain/x/pot/legacy/v011" + "github.com/stratosnet/stratos-chain/x/pot/types" ) // Migrator is a struct for handling in-place store migrations. type Migrator struct { - keeper Keeper + keeper Keeper + legacySubspace types.ParamsSubspace } // NewMigrator returns a new Migrator. -func NewMigrator(keeper Keeper) Migrator { - return Migrator{keeper: keeper} +func NewMigrator(keeper Keeper, legacySubspace types.ParamsSubspace) Migrator { + return Migrator{keeper: keeper, legacySubspace: legacySubspace} } // Migrate1to2 migrates from version 1 to 2. func (m Migrator) Migrate1to2(ctx sdk.Context) error { - return nil + return v011.MigrateStore(ctx, m.keeper.storeKey, m.legacySubspace, m.keeper.cdc) } diff --git a/x/pot/legacy/v011/store.go b/x/pot/legacy/v011/store.go new file mode 100644 index 00000000..8655b6d0 --- /dev/null +++ b/x/pot/legacy/v011/store.go @@ -0,0 +1,33 @@ +package v011 + +import ( + "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/x/pot/types" +) + +func MigrateStore(ctx sdk.Context, storeKey storetypes.StoreKey, legacySubspace types.ParamsSubspace, cdc codec.BinaryCodec) error { + store := ctx.KVStore(storeKey) + + // migrate params + if err := migrateParams(ctx, store, cdc, legacySubspace); err != nil { + return err + } + + return nil +} + +// migrateParams will set the params to store from legacySubspace +func migrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCodec, legacySubspace types.ParamsSubspace) error { + var legacyParams types.Params + legacySubspace.GetParamSet(ctx, &legacyParams) + + if err := legacyParams.Validate(); err != nil { + return err + } + + bz := cdc.MustMarshal(&legacyParams) + store.Set(types.ParamsKey, bz) + return nil +} diff --git a/x/pot/module.go b/x/pot/module.go index 69c0f376..5f78ce33 100644 --- a/x/pot/module.go +++ b/x/pot/module.go @@ -34,7 +34,7 @@ import ( ) const ( - consensusVersion = 1 + consensusVersion = 2 ) // Type check to ensure the interface is properly implemented @@ -137,8 +137,10 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { querier := keeper.Querier{Keeper: am.keeper} types.RegisterQueryServer(cfg.QueryServer(), querier) - //m := keeper.NewMigrator(am.keeper) - //_ = cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2) + m := keeper.NewMigrator(am.keeper, am.legacySubspace) + if err := cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2); err != nil { + panic(fmt.Sprintf("failed to migrate x/%s from version 1 to 2: %v", types.ModuleName, err)) + } } // RegisterInvariants registers the pot module invariants. diff --git a/x/register/keeper/migrations.go b/x/register/keeper/migrations.go index c0558cb4..7ebad47a 100644 --- a/x/register/keeper/migrations.go +++ b/x/register/keeper/migrations.go @@ -2,19 +2,22 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" + v011 "github.com/stratosnet/stratos-chain/x/register/legacy/v011" + "github.com/stratosnet/stratos-chain/x/register/types" ) // Migrator is a struct for handling in-place store migrations. type Migrator struct { - keeper Keeper + keeper Keeper + legacySubspace types.ParamsSubspace } // NewMigrator returns a new Migrator. -func NewMigrator(keeper Keeper) Migrator { - return Migrator{keeper: keeper} +func NewMigrator(keeper Keeper, legacySubspace types.ParamsSubspace) Migrator { + return Migrator{keeper: keeper, legacySubspace: legacySubspace} } // Migrate1to2 migrates from version 1 to 2. func (m Migrator) Migrate1to2(ctx sdk.Context) error { - return nil + return v011.MigrateStore(ctx, m.keeper.storeKey, m.legacySubspace, m.keeper.cdc) } diff --git a/x/register/legacy/v011/store.go b/x/register/legacy/v011/store.go new file mode 100644 index 00000000..295f7c87 --- /dev/null +++ b/x/register/legacy/v011/store.go @@ -0,0 +1,34 @@ +package v011 + +import ( + "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/stratosnet/stratos-chain/x/register/types" +) + +func MigrateStore(ctx sdk.Context, storeKey storetypes.StoreKey, legacySubspace types.ParamsSubspace, cdc codec.BinaryCodec) error { + store := ctx.KVStore(storeKey) + + // migrate params + if err := migrateParams(ctx, store, cdc, legacySubspace); err != nil { + return err + } + + return nil +} + +// migrateParams will set the params to store from legacySubspace +func migrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCodec, legacySubspace types.ParamsSubspace) error { + var legacyParams types.Params + legacySubspace.GetParamSet(ctx, &legacyParams) + + if err := legacyParams.Validate(); err != nil { + return err + } + + bz := cdc.MustMarshal(&legacyParams) + store.Set(types.ParamsKey, bz) + return nil +} diff --git a/x/register/module.go b/x/register/module.go index 049359f6..5f6efe8e 100644 --- a/x/register/module.go +++ b/x/register/module.go @@ -32,7 +32,7 @@ import ( ) const ( - consensusVersion = 1 + consensusVersion = 2 ) // Type check to ensure the interface is properly implemented @@ -130,8 +130,10 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { querier := keeper.Querier{Keeper: am.keeper} types.RegisterQueryServer(cfg.QueryServer(), querier) - //m := keeper.NewMigrator(am.keeper) - //_ = cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2) + m := keeper.NewMigrator(am.keeper, am.legacySubspace) + if err := cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2); err != nil { + panic(fmt.Sprintf("failed to migrate x/%s from version 1 to 2: %v", types.ModuleName, err)) + } } // RegisterInvariants registers the register module invariants. diff --git a/x/sds/keeper/migrations.go b/x/sds/keeper/migrations.go index c0558cb4..fb457aad 100644 --- a/x/sds/keeper/migrations.go +++ b/x/sds/keeper/migrations.go @@ -2,19 +2,22 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" + v011 "github.com/stratosnet/stratos-chain/x/sds/legacy/v011" + "github.com/stratosnet/stratos-chain/x/sds/types" ) // Migrator is a struct for handling in-place store migrations. type Migrator struct { - keeper Keeper + keeper Keeper + legacySubspace types.ParamsSubspace } // NewMigrator returns a new Migrator. -func NewMigrator(keeper Keeper) Migrator { - return Migrator{keeper: keeper} +func NewMigrator(keeper Keeper, legacySubspace types.ParamsSubspace) Migrator { + return Migrator{keeper: keeper, legacySubspace: legacySubspace} } // Migrate1to2 migrates from version 1 to 2. func (m Migrator) Migrate1to2(ctx sdk.Context) error { - return nil + return v011.MigrateStore(ctx, m.keeper.storeKey, m.legacySubspace, m.keeper.cdc) } diff --git a/x/sds/legacy/v011/store.go b/x/sds/legacy/v011/store.go new file mode 100644 index 00000000..862c1170 --- /dev/null +++ b/x/sds/legacy/v011/store.go @@ -0,0 +1,33 @@ +package v011 + +import ( + "github.com/cosmos/cosmos-sdk/codec" + storetypes "github.com/cosmos/cosmos-sdk/store/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/x/sds/types" +) + +func MigrateStore(ctx sdk.Context, storeKey storetypes.StoreKey, legacySubspace types.ParamsSubspace, cdc codec.BinaryCodec) error { + store := ctx.KVStore(storeKey) + + // migrate params + if err := migrateParams(ctx, store, cdc, legacySubspace); err != nil { + return err + } + + return nil +} + +// migrateParams will set the params to store from legacySubspace +func migrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCodec, legacySubspace types.ParamsSubspace) error { + var legacyParams types.Params + legacySubspace.GetParamSet(ctx, &legacyParams) + + if err := legacyParams.Validate(); err != nil { + return err + } + + bz := cdc.MustMarshal(&legacyParams) + store.Set(types.ParamsKey, bz) + return nil +} diff --git a/x/sds/module.go b/x/sds/module.go index 49d337ce..5e115795 100644 --- a/x/sds/module.go +++ b/x/sds/module.go @@ -32,7 +32,7 @@ import ( ) const ( - consensusVersion = 1 + consensusVersion = 2 ) // Type check to ensure the interface is properly implemented @@ -131,8 +131,10 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { querier := keeper.Querier{Keeper: am.keeper} types.RegisterQueryServer(cfg.QueryServer(), querier) - //m := keeper.NewMigrator(am.keeper) - //_ = cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2) + m := keeper.NewMigrator(am.keeper, am.legacySubspace) + if err := cfg.RegisterMigration(types.ModuleName, 1, m.Migrate1to2); err != nil { + panic(fmt.Sprintf("failed to migrate x/%s from version 1 to 2: %v", types.ModuleName, err)) + } } // RegisterInvariants registers the sds module invariants. diff --git a/x/sds/types/params.go b/x/sds/types/params.go index 897cb26b..5279d2e5 100644 --- a/x/sds/types/params.go +++ b/x/sds/types/params.go @@ -6,6 +6,7 @@ import ( "cosmossdk.io/errors" sdk "github.com/cosmos/cosmos-sdk/types" + stratos "github.com/stratosnet/stratos-chain/types" ) From 6a2086b1b3bc3cabbe0498313c71d23bb283a7fb Mon Sep 17 00:00:00 2001 From: Xiong Date: Fri, 27 Oct 2023 15:04:30 -0400 Subject: [PATCH 06/15] update go.mod --- go.mod | 10 +++++----- go.sum | 60 +++++++++++++++++++++++++++++++++------------------------- 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/go.mod b/go.mod index 795b4894..1202218d 100644 --- a/go.mod +++ b/go.mod @@ -6,6 +6,7 @@ require ( cosmossdk.io/api v0.3.1 cosmossdk.io/core v0.5.1 cosmossdk.io/depinject v1.0.0-alpha.4 + cosmossdk.io/errors v1.0.0 cosmossdk.io/math v1.1.2 cosmossdk.io/simapp v0.0.0-20230828070859-c9144f02dda8 cosmossdk.io/tools/rosetta v0.2.1 @@ -24,7 +25,6 @@ require ( github.com/ethereum/go-ethereum v1.10.26 github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.5.3 - github.com/gorilla/mux v1.8.0 github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/ipfs/go-cid v0.1.0 github.com/kelindar/bitmap v1.4.1 @@ -35,6 +35,7 @@ require ( github.com/spf13/viper v1.16.0 github.com/stretchr/testify v1.8.4 github.com/tyler-smith/go-bip39 v1.1.0 + golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 google.golang.org/grpc v1.58.2 google.golang.org/protobuf v1.31.0 @@ -47,7 +48,6 @@ require ( cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.2 // indirect cloud.google.com/go/storage v1.30.1 // indirect - cosmossdk.io/errors v1.0.0 // indirect cosmossdk.io/log v1.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect @@ -118,6 +118,7 @@ require ( github.com/googleapis/enterprise-certificate-proxy v0.2.4 // indirect github.com/googleapis/gax-go/v2 v2.12.0 // indirect github.com/gorilla/handlers v1.5.1 // indirect + github.com/gorilla/mux v1.8.0 // indirect github.com/gorilla/websocket v1.5.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect @@ -143,7 +144,7 @@ require ( github.com/jmhodges/levigo v1.0.0 // indirect github.com/kelindar/simd v1.1.2 // indirect github.com/klauspost/compress v1.16.3 // indirect - github.com/klauspost/cpuid/v2 v2.0.12 // indirect + github.com/klauspost/cpuid/v2 v2.2.4 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect @@ -207,7 +208,6 @@ require ( go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect golang.org/x/crypto v0.12.0 // indirect - golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect golang.org/x/net v0.14.0 // indirect golang.org/x/oauth2 v0.10.0 // indirect golang.org/x/sync v0.3.0 // indirect @@ -240,7 +240,7 @@ replace ( // Fix upstream GHSA-h395-qcrw-5vmq and GHSA-3vp4-m3rf-835h vulnerabilities. // TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409 - github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.9.0 + github.com/gin-gonic/gin => github.com/gin-gonic/gin v1.9.1 // replace broken goleveldb github.com/syndtr/goleveldb => github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 diff --git a/go.sum b/go.sum index 5d8be668..6085c872 100644 --- a/go.sum +++ b/go.sum @@ -292,8 +292,8 @@ github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtE github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA= -github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= +github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -462,6 +462,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff h1:tY80oXqGNY4FhTFhk+o9oFHGINQ/+vhlm8HFzi6znCI= github.com/gballet/go-libpcsclite v0.0.0-20190607065134-2772fd86a8ff/go.mod h1:x7DCsMOv1taUwEWCzT4cmDeAkigA5/QCwUodaVOe8Ww= github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= @@ -469,8 +471,8 @@ github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= -github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= +github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -494,8 +496,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU= -github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s= +github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= +github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU= github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= @@ -508,8 +510,8 @@ github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= -github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -775,23 +777,22 @@ github.com/klauspost/compress v1.16.3 h1:XuJt9zzcnaz6a16/OU53ZjWp/v7/42WcR5t2a0P github.com/klauspost/compress v1.16.3/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.0.12 h1:p9dKCg8i4gmOxtv35DvrYoWqYzQrvEVdjQ762Y0OqZE= -github.com/klauspost/cpuid/v2 v2.0.12/go.mod h1:g2LTdtYhdyuGPqyWyv7qRAmj1WBqxuObKfj5c0PQa7c= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= -github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6cdF0Y8= @@ -814,7 +815,6 @@ github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNx github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -923,7 +923,6 @@ 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.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= @@ -988,8 +987,6 @@ github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRr github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= @@ -1063,6 +1060,7 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= @@ -1085,8 +1083,8 @@ github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2 github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8= github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ugorji/go/codec v1.2.9 h1:rmenucSohSTiyL09Y+l2OCk+FrMxGMzho2+tjr5ticU= -github.com/ugorji/go/codec v1.2.9/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= @@ -1132,8 +1130,9 @@ go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+ go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= -golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= +golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1152,7 +1151,8 @@ golang.org/x/crypto v0.0.0-20210506145944-38f3c27a63bf/go.mod h1:P+XmwS30IXTQdn5 golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1194,6 +1194,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc= golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1257,8 +1258,9 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -1302,6 +1304,7 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1398,6 +1401,7 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220610221304-9f5ed59c137d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220615213510-4f61da869c0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220624220833-87e55d714810/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1406,17 +1410,18 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= 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.4.0/go.mod h1:9P2UbLfCdcvo3p/nzKvsmas4TnlujnuoV9hGgYzW1lQ= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1430,8 +1435,9 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -1501,6 +1507,7 @@ golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss= golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1745,6 +1752,7 @@ 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.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= From 708ce2683c271be02fc5deaafc472e108fad9d0d Mon Sep 17 00:00:00 2001 From: Xiong Date: Fri, 27 Oct 2023 16:03:33 -0400 Subject: [PATCH 07/15] merge latest changes from dev --- proto/stratos/pot/v1/pot.proto | 24 + proto/stratos/pot/v1/query.proto | 73 +-- x/pot/keeper/grpc_query.go | 13 +- x/pot/keeper/keeper.go | 16 +- x/pot/types/pot.pb.go | 917 ++++++++++++++++++++++++++++--- x/pot/types/query.pb.go | 716 +++--------------------- x/pot/types/query.pb.gw.go | 65 +++ 7 files changed, 1032 insertions(+), 792 deletions(-) diff --git a/proto/stratos/pot/v1/pot.proto b/proto/stratos/pot/v1/pot.proto index 79d8b12a..0a4cd7ca 100644 --- a/proto/stratos/pot/v1/pot.proto +++ b/proto/stratos/pot/v1/pot.proto @@ -176,72 +176,96 @@ message TotalReward { message Metrics { string total_supply = 1 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "total_supply", (gogoproto.moretags) = "yaml:\"total_supply\"" ]; string total_mining_supply = 2 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "total_mining_supply", (gogoproto.moretags) = "yaml:\"total_mining_supply\"" ]; string total_mined_tokens = 3 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "total_mined_tokens", (gogoproto.moretags) = "yaml:\"total_mined_tokens\"" ]; string total_resource_nodes_deposit = 4 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "total_resource_nodes_deposit", (gogoproto.moretags) = "yaml:\"total_resource_nodes_deposit\"" ]; string total_bonded_delegation = 5 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "total_bonded_delegation", (gogoproto.moretags) = "yaml:\"total_bonded_delegation\"" ]; string total_unbonded_delegation = 6 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "total_unbonded_delegation", (gogoproto.moretags) = "yaml:\"total_unbonded_delegation\"" ]; string total_unbonding_delegation = 7 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "total_unbonding_delegation", (gogoproto.moretags) = "yaml:\"total_unbonding_delegation\"" ]; string circulation_supply = 8 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "circulation_supply", (gogoproto.moretags) = "yaml:\"circulation_supply\"" ]; string total_mining_reward = 9 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "total_mining_reward", (gogoproto.moretags) = "yaml:\"total_mining_reward\"" ]; string chain_mining_reward = 10 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "chain_mining_reward", (gogoproto.moretags) = "yaml:\"chain_mining_reward\"" ]; string resource_mining_reward = 11 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "resource_mining_reward", (gogoproto.moretags) = "yaml:\"resource_mining_reward\"" ]; string meta_mining_reward = 12 [ (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", (gogoproto.jsontag) = "meta_mining_reward", (gogoproto.moretags) = "yaml:\"meta_mining_reward\"" diff --git a/proto/stratos/pot/v1/query.proto b/proto/stratos/pot/v1/query.proto index d392a104..af3f5a2f 100644 --- a/proto/stratos/pot/v1/query.proto +++ b/proto/stratos/pot/v1/query.proto @@ -165,76 +165,7 @@ message QueryTotalRewardByEpochResponse { message QueryMetricsRequest {} message QueryMetricsResponse { - string total_supply = 1 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "total_supply", - (gogoproto.moretags) = "yaml:\"total_supply\"" - ]; - string total_mining_supply = 2 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "total_mining_supply", - (gogoproto.moretags) = "yaml:\"total_mining_supply\"" - ]; - string total_mined_tokens = 3 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "total_mined_tokens", - (gogoproto.moretags) = "yaml:\"total_mined_tokens\"" - ]; - string total_resource_nodes_deposit = 4 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "total_resource_nodes_deposit", - (gogoproto.moretags) = "yaml:\"total_resource_nodes_deposit\"" - ]; - string total_bonded_delegation = 5 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "total_bonded_delegation", - (gogoproto.moretags) = "yaml:\"total_bonded_delegation\"" - ]; - string total_unbonded_delegation = 6 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "total_unbonded_delegation", - (gogoproto.moretags) = "yaml:\"total_unbonded_delegation\"" - ]; - string total_unbonding_delegation = 7 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "total_unbonding_delegation", - (gogoproto.moretags) = "yaml:\"total_unbonding_delegation\"" - ]; - string circulation_supply = 8 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "circulation_supply", - (gogoproto.moretags) = "yaml:\"circulation_supply\"" - ]; - string total_mining_reward = 9 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "total_mining_reward", - (gogoproto.moretags) = "yaml:\"total_mining_reward\"" - ]; - string chain_mining_reward = 10 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "chain_mining_reward", - (gogoproto.moretags) = "yaml:\"chain_mining_reward\"" - ]; - string resource_mining_reward = 11 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "resource_mining_reward", - (gogoproto.moretags) = "yaml:\"resource_mining_reward\"" - ]; - string meta_mining_reward = 12 [ - (gogoproto.nullable) = false, - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.jsontag) = "meta_mining_reward", - (gogoproto.moretags) = "yaml:\"meta_mining_reward\"" + Metrics metrics = 1 [ + (gogoproto.nullable) = false ]; } diff --git a/x/pot/keeper/grpc_query.go b/x/pot/keeper/grpc_query.go index bae66412..bd387e22 100644 --- a/x/pot/keeper/grpc_query.go +++ b/x/pot/keeper/grpc_query.go @@ -410,17 +410,6 @@ func (q Querier) Metrics(c context.Context, req *types.QueryMetricsRequest) ( metrics := q.GetMetrics(ctx) return &types.QueryMetricsResponse{ - TotalSupply: metrics.TotalSupply, - TotalMiningSupply: metrics.TotalMiningSupply, - TotalMinedTokens: metrics.TotalMinedTokens, - TotalResourceNodesDeposit: metrics.TotalResourceNodesDeposit, - TotalBondedDelegation: metrics.TotalBondedDelegation, - TotalUnbondedDelegation: metrics.TotalUnbondedDelegation, - TotalUnbondingDelegation: metrics.TotalUnbondingDelegation, - CirculationSupply: metrics.CirculationSupply, - TotalMiningReward: metrics.TotalMiningReward, - ChainMiningReward: metrics.ChainMiningReward, - ResourceMiningReward: metrics.ResourceMiningReward, - MetaMiningReward: metrics.MetaMiningReward, + Metrics: *metrics, }, nil } diff --git a/x/pot/keeper/keeper.go b/x/pot/keeper/keeper.go index 142e6aed..306991a1 100644 --- a/x/pot/keeper/keeper.go +++ b/x/pot/keeper/keeper.go @@ -269,7 +269,7 @@ func (k Keeper) GetMetrics(ctx sdk.Context) *types.Metrics { validatorUnbondedPoolAcc := k.accountKeeper.GetModuleAddress(stakingtypes.NotBondedPoolName) unbondedDelegation := k.bankKeeper.GetBalance(ctx, validatorUnbondedPoolAcc, denom) - unbondingDelegation := sdk.NewCoin(denom, sdk.NewInt(0)) + unbondingDelegation := sdk.NewCoin(denom, sdkmath.ZeroInt()) // NOTE: Uncomment to get all unboundings, not tested on performance // k.stakingKeeper.IterateUnbondingDelegations(ctx, func(_ int64, ubd stakingtypes.UnbondingDelegation) (stop bool) { // for _, entry := range ubd.Entries { @@ -280,15 +280,15 @@ func (k Keeper) GetMetrics(ctx sdk.Context) *types.Metrics { circulationSupply := k.GetCirculationSupply(ctx) - totalMiningReward := sdk.NewInt(0) - chainMiningReward := sdk.NewInt(0) - resourceMiningReward := sdk.NewInt(0) - metaMiningReward := sdk.NewInt(0) + totalMiningReward := sdkmath.ZeroInt() + chainMiningReward := sdkmath.ZeroInt() + resourceMiningReward := sdkmath.ZeroInt() + metaMiningReward := sdkmath.ZeroInt() if miningParam, err := k.GetMiningRewardParamByMinedToken(ctx, totalMinedTokens); err == nil { totalMiningReward = miningParam.MiningReward.Amount - chainMiningReward = totalMiningReward.Mul(miningParam.BlockChainPercentageInBp).Quo(sdk.NewInt(10000)) - resourceMiningReward = totalMiningReward.Mul(miningParam.ResourceNodePercentageInBp).Quo(sdk.NewInt(10000)) - metaMiningReward = totalMiningReward.Mul(miningParam.MetaNodePercentageInBp).Quo(sdk.NewInt(10000)) + chainMiningReward = totalMiningReward.Mul(miningParam.BlockChainPercentageInBp).Quo(sdkmath.NewInt(10000)) + resourceMiningReward = totalMiningReward.Mul(miningParam.ResourceNodePercentageInBp).Quo(sdkmath.NewInt(10000)) + metaMiningReward = totalMiningReward.Mul(miningParam.MetaNodePercentageInBp).Quo(sdkmath.NewInt(10000)) } return &types.Metrics{ diff --git a/x/pot/types/pot.pb.go b/x/pot/types/pot.pb.go index 1c277a1f..0cd977f3 100644 --- a/x/pot/types/pot.pb.go +++ b/x/pot/types/pot.pb.go @@ -429,6 +429,54 @@ func (m *TotalReward) GetTrafficReward() github_com_cosmos_cosmos_sdk_types.Coin return nil } +type Metrics struct { + TotalSupply github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=total_supply,json=totalSupply,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_supply" yaml:"total_supply"` + TotalMiningSupply github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=total_mining_supply,json=totalMiningSupply,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_mining_supply" yaml:"total_mining_supply"` + TotalMinedTokens github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=total_mined_tokens,json=totalMinedTokens,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_mined_tokens" yaml:"total_mined_tokens"` + TotalResourceNodesDeposit github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=total_resource_nodes_deposit,json=totalResourceNodesDeposit,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_resource_nodes_deposit" yaml:"total_resource_nodes_deposit"` + TotalBondedDelegation github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=total_bonded_delegation,json=totalBondedDelegation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_bonded_delegation" yaml:"total_bonded_delegation"` + TotalUnbondedDelegation github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=total_unbonded_delegation,json=totalUnbondedDelegation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_unbonded_delegation" yaml:"total_unbonded_delegation"` + TotalUnbondingDelegation github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=total_unbonding_delegation,json=totalUnbondingDelegation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_unbonding_delegation" yaml:"total_unbonding_delegation"` + CirculationSupply github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,8,opt,name=circulation_supply,json=circulationSupply,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"circulation_supply" yaml:"circulation_supply"` + TotalMiningReward github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,9,opt,name=total_mining_reward,json=totalMiningReward,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_mining_reward" yaml:"total_mining_reward"` + ChainMiningReward github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,10,opt,name=chain_mining_reward,json=chainMiningReward,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"chain_mining_reward" yaml:"chain_mining_reward"` + ResourceMiningReward github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,11,opt,name=resource_mining_reward,json=resourceMiningReward,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"resource_mining_reward" yaml:"resource_mining_reward"` + MetaMiningReward github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,12,opt,name=meta_mining_reward,json=metaMiningReward,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"meta_mining_reward" yaml:"meta_mining_reward"` +} + +func (m *Metrics) Reset() { *m = Metrics{} } +func (m *Metrics) String() string { return proto.CompactTextString(m) } +func (*Metrics) ProtoMessage() {} +func (*Metrics) Descriptor() ([]byte, []int) { + return fileDescriptor_a05930b44d981057, []int{7} +} +func (m *Metrics) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Metrics) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Metrics.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 *Metrics) XXX_Merge(src proto.Message) { + xxx_messageInfo_Metrics.Merge(m, src) +} +func (m *Metrics) XXX_Size() int { + return m.Size() +} +func (m *Metrics) XXX_DiscardUnknown() { + xxx_messageInfo_Metrics.DiscardUnknown(m) +} + +var xxx_messageInfo_Metrics proto.InternalMessageInfo + func init() { proto.RegisterType((*Params)(nil), "stratos.pot.v1.Params") proto.RegisterType((*MiningRewardParam)(nil), "stratos.pot.v1.MiningRewardParam") @@ -437,87 +485,113 @@ func init() { proto.RegisterType((*WalletVolumes)(nil), "stratos.pot.v1.WalletVolumes") proto.RegisterType((*VolumeReportRecord)(nil), "stratos.pot.v1.VolumeReportRecord") proto.RegisterType((*TotalReward)(nil), "stratos.pot.v1.TotalReward") + proto.RegisterType((*Metrics)(nil), "stratos.pot.v1.Metrics") } func init() { proto.RegisterFile("stratos/pot/v1/pot.proto", fileDescriptor_a05930b44d981057) } var fileDescriptor_a05930b44d981057 = []byte{ - // 1195 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x3d, 0x6c, 0x1c, 0x45, - 0x14, 0xf6, 0xc4, 0xc9, 0x25, 0x19, 0xe7, 0x1c, 0xbc, 0x9c, 0xf1, 0xc5, 0x24, 0x37, 0xce, 0x46, - 0x04, 0x2b, 0x92, 0xef, 0x64, 0x23, 0x81, 0x94, 0x0a, 0xce, 0x4e, 0x84, 0x91, 0x8c, 0xac, 0xb3, - 0x15, 0xa4, 0x08, 0xb1, 0xec, 0xed, 0x8e, 0xcf, 0x9b, 0xec, 0xce, 0xac, 0x66, 0xe7, 0x2e, 0x76, - 0x8f, 0x10, 0x42, 0x20, 0xd2, 0x20, 0x85, 0x06, 0x21, 0xaa, 0x88, 0x2a, 0x05, 0x2d, 0x05, 0x12, - 0x85, 0xe9, 0x02, 0x34, 0x88, 0x62, 0x40, 0x76, 0x11, 0xe9, 0xca, 0x2d, 0xe8, 0x90, 0xd0, 0xce, - 0xcc, 0xfa, 0xf6, 0x7e, 0xcd, 0xa5, 0xa0, 0xf1, 0xed, 0xbc, 0x9f, 0xef, 0xbd, 0xef, 0xcd, 0x7b, - 0x33, 0x63, 0x58, 0x8c, 0x38, 0xb3, 0x39, 0x8d, 0x2a, 0x21, 0xe5, 0x95, 0xd6, 0x72, 0xf2, 0x53, - 0x0e, 0x19, 0xe5, 0xd4, 0x98, 0xd6, 0x9a, 0x72, 0x22, 0x6a, 0x2d, 0xcf, 0x17, 0x1a, 0xb4, 0x41, - 0xa5, 0xaa, 0x92, 0x7c, 0x29, 0xab, 0xf9, 0x4b, 0x0e, 0x8d, 0x02, 0x1a, 0x59, 0x4a, 0xa1, 0x16, - 0x5a, 0x35, 0x63, 0x07, 0x1e, 0xa1, 0x15, 0xf9, 0x57, 0x8b, 0x4a, 0xca, 0xa0, 0x52, 0xb7, 0x23, - 0x5c, 0x69, 0x2d, 0xd7, 0x31, 0xb7, 0x97, 0x2b, 0x0e, 0xf5, 0x88, 0xd2, 0x9b, 0x3f, 0x9c, 0x81, - 0xb9, 0x4d, 0x9b, 0xd9, 0x41, 0x64, 0x54, 0x21, 0xac, 0x53, 0xe2, 0x5a, 0x2e, 0x26, 0x34, 0x28, - 0x82, 0x05, 0xb0, 0x78, 0xbe, 0x7a, 0xad, 0x2d, 0x50, 0x46, 0x1a, 0x0b, 0x34, 0xb3, 0x6f, 0x07, - 0xfe, 0x4d, 0xb3, 0x23, 0x33, 0x6b, 0xe7, 0x93, 0xc5, 0x5a, 0xf2, 0x6d, 0xbc, 0x03, 0x2f, 0x30, - 0xfc, 0xc0, 0x66, 0x29, 0xca, 0x29, 0x89, 0xf2, 0x6a, 0x5b, 0xa0, 0x2e, 0x79, 0x2c, 0xd0, 0x8b, - 0x0a, 0x27, 0x2b, 0x35, 0x6b, 0x53, 0x6a, 0x79, 0x8c, 0x15, 0xd8, 0xbc, 0xc9, 0xb0, 0x85, 0x43, - 0xea, 0xec, 0x16, 0x27, 0x17, 0xc0, 0xe2, 0xa4, 0xc2, 0xca, 0xca, 0x3b, 0x58, 0x59, 0xa9, 0x59, - 0x9b, 0x52, 0xcb, 0x5b, 0xc9, 0xca, 0xf8, 0x12, 0xc0, 0x42, 0xe0, 0x11, 0x8f, 0x34, 0x2c, 0x1d, - 0x31, 0x94, 0xa4, 0x8b, 0xa7, 0x17, 0x26, 0x17, 0xa7, 0x56, 0xae, 0x96, 0xbb, 0x4b, 0x5f, 0xde, - 0x90, 0xb6, 0x35, 0x69, 0x2a, 0xcb, 0x53, 0x7d, 0xf3, 0x40, 0xa0, 0x89, 0xb6, 0x40, 0x03, 0x61, - 0x62, 0x81, 0x5e, 0xd6, 0x39, 0x0c, 0xd0, 0x9a, 0x8f, 0x9f, 0x3d, 0xb9, 0x01, 0x6a, 0x46, 0xd0, - 0x0b, 0x1a, 0x19, 0x5f, 0x00, 0x98, 0x77, 0x68, 0x10, 0x34, 0x89, 0xc7, 0xf7, 0x2d, 0x6e, 0xef, - 0x15, 0xcf, 0xc8, 0x8a, 0xdd, 0x4b, 0xa2, 0xfd, 0x21, 0xd0, 0xf5, 0x86, 0xc7, 0x77, 0x9b, 0xf5, - 0xb2, 0x43, 0x03, 0xbd, 0xd5, 0xfa, 0x67, 0x29, 0x72, 0xef, 0x57, 0xf8, 0x7e, 0x88, 0xa3, 0xf2, - 0x1a, 0x76, 0xda, 0x02, 0x75, 0xc3, 0xc4, 0x02, 0x15, 0x54, 0x42, 0x5d, 0x62, 0xf3, 0xd7, 0xef, - 0x97, 0xa0, 0x6e, 0x99, 0x35, 0xec, 0xa8, 0xbc, 0x2e, 0x1c, 0x9b, 0x6c, 0xdb, 0x7b, 0xc6, 0xe7, - 0x00, 0x16, 0x3c, 0xe2, 0x71, 0xcf, 0xf6, 0x2d, 0x4e, 0xb9, 0xed, 0x5b, 0x51, 0x33, 0x0c, 0xfd, - 0xfd, 0x62, 0x6e, 0x01, 0x2c, 0x4e, 0xad, 0x5c, 0x2a, 0x6b, 0xf7, 0xa4, 0xa1, 0xca, 0xba, 0xa1, - 0xca, 0xab, 0xd4, 0x23, 0x9d, 0x0a, 0x0d, 0x72, 0xef, 0x54, 0x68, 0x90, 0x36, 0xad, 0x90, 0xd6, - 0x6d, 0x27, 0xaa, 0x2d, 0xa9, 0xb9, 0x79, 0xe5, 0xd1, 0x37, 0x08, 0x7c, 0xfa, 0xec, 0xc9, 0x8d, - 0x42, 0x3a, 0x37, 0x7b, 0x72, 0x72, 0x54, 0x01, 0xcd, 0xaf, 0xce, 0xc1, 0x99, 0xbe, 0xcd, 0x32, - 0x1e, 0x01, 0x38, 0xa7, 0xf0, 0x03, 0x8f, 0x60, 0xd7, 0x6a, 0xd9, 0x7e, 0x0b, 0x5b, 0x11, 0xb7, - 0x19, 0x97, 0x8d, 0x3d, 0x92, 0xc7, 0x6d, 0xcd, 0x63, 0x18, 0x42, 0x2c, 0x50, 0x49, 0x51, 0x19, - 0x62, 0xa0, 0xd9, 0x14, 0xa4, 0x7a, 0x23, 0xd1, 0xde, 0x49, 0x94, 0x5b, 0x89, 0xce, 0x78, 0x08, - 0xe0, 0x6c, 0xbf, 0x1f, 0x26, 0xae, 0x9c, 0x95, 0x91, 0x89, 0x55, 0x75, 0x62, 0x83, 0xfd, 0x63, - 0x81, 0x2e, 0x0f, 0x4b, 0x0b, 0x13, 0x37, 0x2d, 0x71, 0x4f, 0x52, 0xb7, 0x88, 0x6b, 0x30, 0x98, - 0xef, 0x6a, 0x5b, 0x39, 0x69, 0x23, 0x33, 0x59, 0xd1, 0x99, 0x74, 0xfb, 0x75, 0x9a, 0xae, 0x4b, - 0xac, 0x23, 0x5f, 0xc8, 0xb6, 0xbf, 0xf1, 0x33, 0x80, 0x97, 0xeb, 0x3e, 0x75, 0xee, 0x5b, 0xce, - 0xae, 0xed, 0x11, 0x2b, 0xc4, 0xcc, 0xc1, 0x84, 0xdb, 0x0d, 0x6c, 0x79, 0xc4, 0xaa, 0x87, 0xc5, - 0xd3, 0x72, 0x0e, 0x3e, 0x01, 0x63, 0x0c, 0xc2, 0x3a, 0xe1, 0x6d, 0x81, 0x46, 0xc2, 0xc6, 0x02, - 0x5d, 0xd3, 0x07, 0xd8, 0x08, 0xab, 0xec, 0x98, 0xac, 0x13, 0xae, 0xf2, 0x2f, 0x4a, 0x8f, 0xd5, - 0xc4, 0x61, 0xf3, 0xd8, 0x7e, 0x9d, 0x54, 0x43, 0xe3, 0x17, 0x00, 0x4b, 0x0c, 0x47, 0xb4, 0xc9, - 0x1c, 0x6c, 0x11, 0xea, 0xe2, 0x7e, 0x36, 0x6a, 0xaa, 0x3f, 0x1b, 0x9f, 0xcd, 0x09, 0xc0, 0xb1, - 0x40, 0xaf, 0xa4, 0x07, 0xe9, 0x28, 0xbb, 0x81, 0x8c, 0xe6, 0x53, 0x9f, 0x77, 0xa9, 0x8b, 0x7b, - 0x38, 0xfd, 0x08, 0xe0, 0x7c, 0x80, 0xb9, 0x3d, 0x84, 0x4f, 0x4e, 0xf2, 0xf9, 0x68, 0x7c, 0x3e, - 0x23, 0x40, 0x63, 0x81, 0xae, 0xea, 0xf6, 0x19, 0x6a, 0x33, 0x90, 0xc7, 0x4b, 0x89, 0x7d, 0x3f, - 0x07, 0xf3, 0xe3, 0xd3, 0x30, 0xa7, 0xdb, 0xed, 0x1e, 0x9c, 0x7e, 0x60, 0xfb, 0x3e, 0xe6, 0x96, - 0xed, 0xba, 0x0c, 0x47, 0x91, 0xbe, 0xdf, 0x56, 0xdb, 0x02, 0xf5, 0x68, 0x62, 0x81, 0x66, 0x55, - 0x1a, 0xdd, 0xf2, 0x24, 0x74, 0x41, 0x87, 0x7e, 0x4b, 0x89, 0xb6, 0x38, 0x4b, 0x3a, 0x3a, 0xaf, - 0x0c, 0xb5, 0xd0, 0xf8, 0x09, 0xc0, 0x39, 0x7d, 0xfe, 0xef, 0x30, 0x1a, 0x58, 0x7a, 0x18, 0x42, - 0x4a, 0xfd, 0xe2, 0x29, 0x79, 0xdd, 0x8c, 0x98, 0x2c, 0x96, 0x1e, 0x3e, 0x43, 0x10, 0x3a, 0x87, - 0xcf, 0x10, 0x03, 0xf3, 0xbb, 0x3f, 0xd1, 0xe2, 0x7f, 0xd8, 0x8e, 0x24, 0x5a, 0xa4, 0x0f, 0x2a, - 0x05, 0x75, 0x9b, 0xd1, 0x40, 0x1d, 0xa5, 0x9b, 0x94, 0xfa, 0xc6, 0x01, 0x80, 0xc5, 0x6c, 0x0c, - 0xce, 0xec, 0x9d, 0x1d, 0xcf, 0x51, 0x3c, 0x26, 0x4f, 0xe2, 0xc1, 0x35, 0x8f, 0xa1, 0x10, 0xb1, - 0x40, 0xa8, 0x9f, 0x48, 0xd6, 0xe2, 0x39, 0x98, 0xcc, 0x76, 0x98, 0x6c, 0x2b, 0xa4, 0x84, 0x8a, - 0xf9, 0x37, 0x80, 0xc6, 0x96, 0x47, 0x1a, 0x3e, 0x7e, 0x4f, 0xee, 0xd4, 0x1d, 0xea, 0x37, 0x03, - 0xfc, 0xbf, 0x36, 0x05, 0x87, 0xb9, 0x96, 0x8c, 0xaa, 0x9f, 0x44, 0xef, 0x8f, 0x3d, 0x39, 0xda, - 0x3f, 0x16, 0x28, 0xaf, 0x32, 0x51, 0xeb, 0x81, 0x13, 0xa1, 0x6d, 0xcd, 0x26, 0xcc, 0x67, 0x19, - 0x47, 0x86, 0x0b, 0xcf, 0x2a, 0x55, 0xc2, 0x35, 0xd9, 0x42, 0xb3, 0xf7, 0xe5, 0xd3, 0x5f, 0xa7, - 0xea, 0x75, 0xbd, 0x97, 0xa9, 0x6b, 0x2c, 0xd0, 0x74, 0x36, 0x85, 0xf4, 0x81, 0x93, 0xea, 0xcd, - 0x7f, 0x00, 0x34, 0x94, 0x6f, 0x0d, 0x87, 0x94, 0xf1, 0x1a, 0x76, 0x28, 0x73, 0x8d, 0x2d, 0x78, - 0x8e, 0xc9, 0x35, 0x66, 0xba, 0xd2, 0x6f, 0xb4, 0x05, 0x3a, 0x96, 0xc5, 0x02, 0x5d, 0x4c, 0x3b, - 0x42, 0x49, 0x86, 0x57, 0xf7, 0xd8, 0xc9, 0xb8, 0x0b, 0x5f, 0x50, 0xdf, 0x16, 0xc3, 0x3b, 0x98, - 0x61, 0xe2, 0xa4, 0x25, 0xae, 0xb4, 0x05, 0xea, 0xd3, 0xc5, 0x02, 0xcd, 0x65, 0x83, 0x74, 0x34, - 0x66, 0xed, 0x22, 0xd3, 0xd9, 0x6a, 0x89, 0xf1, 0x3a, 0x3c, 0xcb, 0xf7, 0xac, 0x5d, 0x3b, 0x52, - 0x8f, 0xcf, 0xf3, 0xd5, 0x2b, 0x49, 0x15, 0xb4, 0xa8, 0x53, 0x05, 0x2d, 0x30, 0x6b, 0x39, 0xbe, - 0xf7, 0x76, 0xf2, 0xf1, 0xdb, 0x29, 0x38, 0x25, 0xdf, 0x30, 0xfa, 0xf4, 0xf9, 0x1a, 0xf4, 0xde, - 0xb0, 0xe0, 0xa4, 0xf9, 0xf9, 0x60, 0xac, 0x1b, 0x76, 0xfc, 0x49, 0xe9, 0xbe, 0x8d, 0xbf, 0x05, - 0x70, 0x3a, 0x1d, 0x3d, 0x9d, 0xe1, 0x89, 0x27, 0xd5, 0x87, 0x3a, 0xc3, 0x1e, 0xc7, 0xce, 0xa4, - 0x74, 0xcb, 0x9f, 0x23, 0xc7, 0xbc, 0x46, 0x50, 0x49, 0x56, 0x37, 0x1e, 0x1f, 0x96, 0xc0, 0xc1, - 0x61, 0x09, 0x3c, 0x3d, 0x2c, 0x81, 0xbf, 0x0e, 0x4b, 0xe0, 0xe1, 0x51, 0x69, 0xe2, 0xe9, 0x51, - 0x69, 0xe2, 0xf7, 0xa3, 0xd2, 0xc4, 0xdd, 0x4a, 0x06, 0x5b, 0xb7, 0x34, 0xc1, 0x3c, 0xfd, 0x5c, - 0x92, 0x17, 0xbd, 0x7e, 0x3a, 0xca, 0x40, 0xf5, 0x9c, 0xfc, 0x07, 0xe8, 0xb5, 0x7f, 0x03, 0x00, - 0x00, 0xff, 0xff, 0xa9, 0x84, 0xf4, 0xcc, 0x90, 0x0d, 0x00, 0x00, + // 1585 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4f, 0x88, 0x1c, 0x45, + 0x17, 0xdf, 0xca, 0x26, 0xbb, 0xd9, 0xda, 0x3f, 0xc9, 0x76, 0x26, 0xc9, 0xec, 0x7e, 0xc9, 0xd4, + 0xa6, 0xc3, 0x97, 0x6f, 0x09, 0x64, 0x86, 0xcd, 0x07, 0xdf, 0x07, 0x39, 0xe9, 0x64, 0x13, 0x8c, + 0xb0, 0x12, 0x66, 0xd7, 0x08, 0x41, 0x6c, 0x7b, 0x7b, 0x6a, 0x67, 0x3b, 0x99, 0xee, 0x1a, 0xba, + 0x6b, 0x26, 0xbb, 0x20, 0x1e, 0x44, 0x44, 0xfc, 0x83, 0xb9, 0x08, 0xf1, 0x22, 0x12, 0x41, 0x82, + 0xa7, 0x20, 0xe2, 0x4d, 0x44, 0x54, 0x88, 0x9e, 0xa2, 0x5e, 0xc4, 0x43, 0x29, 0x9b, 0x43, 0x60, + 0x8e, 0x7d, 0xf0, 0x26, 0x48, 0xfd, 0xe9, 0xe9, 0xee, 0xe9, 0xee, 0x59, 0x67, 0x15, 0x2f, 0xbb, + 0x5d, 0xef, 0xbd, 0x7a, 0xf5, 0xfb, 0x55, 0xbd, 0xf7, 0xea, 0xd5, 0xc0, 0xa2, 0x4f, 0x3d, 0x93, + 0x12, 0xbf, 0xd2, 0x22, 0xb4, 0xd2, 0x59, 0xe2, 0xff, 0xca, 0x2d, 0x8f, 0x50, 0xa2, 0xcd, 0x28, + 0x4d, 0x99, 0x8b, 0x3a, 0x4b, 0xf3, 0x85, 0x06, 0x69, 0x10, 0xa1, 0xaa, 0xf0, 0x2f, 0x69, 0x35, + 0x3f, 0x67, 0x11, 0xdf, 0x21, 0xbe, 0x21, 0x15, 0x72, 0xa0, 0x54, 0xb3, 0xa6, 0x63, 0xbb, 0xa4, + 0x22, 0xfe, 0x2a, 0x51, 0x49, 0x1a, 0x54, 0xd6, 0x4d, 0x1f, 0x57, 0x3a, 0x4b, 0xeb, 0x98, 0x9a, + 0x4b, 0x15, 0x8b, 0xd8, 0xae, 0xd4, 0xeb, 0x9f, 0x1f, 0x80, 0x63, 0x57, 0x4d, 0xcf, 0x74, 0x7c, + 0xad, 0x0a, 0xe1, 0x3a, 0x71, 0xeb, 0x46, 0x1d, 0xbb, 0xc4, 0x29, 0x82, 0x05, 0xb0, 0x38, 0x51, + 0x3d, 0xdd, 0x65, 0x28, 0x26, 0x0d, 0x18, 0x9a, 0xdd, 0x36, 0x9d, 0xe6, 0x05, 0x3d, 0x92, 0xe9, + 0xb5, 0x09, 0x3e, 0x58, 0xe6, 0xdf, 0xda, 0xd3, 0x70, 0xca, 0xc3, 0xb7, 0x4c, 0x2f, 0xf4, 0xb2, + 0x4f, 0x78, 0xf9, 0x4f, 0x97, 0xa1, 0x84, 0x3c, 0x60, 0xe8, 0x88, 0xf4, 0x13, 0x97, 0xea, 0xb5, + 0x49, 0x39, 0xec, 0xf9, 0x72, 0x4c, 0xda, 0xf6, 0xb0, 0x81, 0x5b, 0xc4, 0xda, 0x2c, 0x8e, 0x2e, + 0x80, 0xc5, 0x51, 0xe9, 0x2b, 0x2e, 0x8f, 0x7c, 0xc5, 0xa5, 0x7a, 0x6d, 0x52, 0x0e, 0x2f, 0xf1, + 0x91, 0xf6, 0x2e, 0x80, 0x05, 0xc7, 0x76, 0x6d, 0xb7, 0x61, 0xa8, 0x15, 0x5b, 0x82, 0x74, 0x71, + 0xff, 0xc2, 0xe8, 0xe2, 0xe4, 0xf9, 0x53, 0xe5, 0xe4, 0xd6, 0x97, 0x57, 0x84, 0x6d, 0x4d, 0x98, + 0x8a, 0xed, 0xa9, 0x3e, 0xf1, 0x80, 0xa1, 0x91, 0x2e, 0x43, 0x99, 0x6e, 0x02, 0x86, 0xfe, 0xa5, + 0x30, 0x64, 0x68, 0xf5, 0x7b, 0x8f, 0xef, 0x9f, 0x05, 0x35, 0xcd, 0xe9, 0x77, 0xea, 0x6b, 0xef, + 0x00, 0x38, 0x6d, 0x11, 0xc7, 0x69, 0xbb, 0x36, 0xdd, 0x36, 0xa8, 0xb9, 0x55, 0x3c, 0x20, 0x76, + 0xec, 0x06, 0x5f, 0xed, 0x67, 0x86, 0xce, 0x34, 0x6c, 0xba, 0xd9, 0x5e, 0x2f, 0x5b, 0xc4, 0x51, + 0x47, 0xad, 0xfe, 0x9d, 0xf3, 0xeb, 0x37, 0x2b, 0x74, 0xbb, 0x85, 0xfd, 0xf2, 0x32, 0xb6, 0xba, + 0x0c, 0x25, 0xdd, 0x04, 0x0c, 0x15, 0x24, 0xa0, 0x84, 0x58, 0xff, 0xe1, 0xd3, 0x73, 0x50, 0x85, + 0xcc, 0x32, 0xb6, 0x24, 0xae, 0xa9, 0x9e, 0xc9, 0x9a, 0xb9, 0xa5, 0xbd, 0x0d, 0x60, 0xc1, 0x76, + 0x6d, 0x6a, 0x9b, 0x4d, 0x83, 0x12, 0x6a, 0x36, 0x0d, 0xbf, 0xdd, 0x6a, 0x35, 0xb7, 0x8b, 0x63, + 0x0b, 0x60, 0x71, 0xf2, 0xfc, 0x5c, 0x59, 0x4d, 0xe7, 0x01, 0x55, 0x56, 0x01, 0x55, 0xbe, 0x48, + 0x6c, 0x37, 0xda, 0xa1, 0xac, 0xe9, 0xd1, 0x0e, 0x65, 0x69, 0xc3, 0x1d, 0x52, 0xba, 0x35, 0xae, + 0x5a, 0x15, 0x9a, 0x0b, 0x27, 0xef, 0x7c, 0x80, 0xc0, 0x1b, 0x8f, 0xef, 0x9f, 0x2d, 0x84, 0x79, + 0xb3, 0x25, 0x32, 0x47, 0x6e, 0xa0, 0xfe, 0xde, 0x41, 0x38, 0x9b, 0x3a, 0x2c, 0xed, 0x0e, 0x80, + 0xc7, 0xa5, 0x7f, 0xc7, 0x76, 0x71, 0xdd, 0xe8, 0x98, 0xcd, 0x0e, 0x36, 0x7c, 0x6a, 0x7a, 0x54, + 0x04, 0xf6, 0x40, 0x1e, 0x97, 0x15, 0x8f, 0x3c, 0x0f, 0x01, 0x43, 0x25, 0x49, 0x25, 0xc7, 0x40, + 0xb1, 0x29, 0x08, 0xf5, 0x0a, 0xd7, 0x5e, 0xe3, 0xca, 0x55, 0xae, 0xd3, 0x6e, 0x03, 0x78, 0x34, + 0x3d, 0x0f, 0xbb, 0x75, 0x91, 0x2b, 0x03, 0x81, 0x55, 0x15, 0xb0, 0xec, 0xf9, 0x01, 0x43, 0x27, + 0xf2, 0x60, 0x61, 0xb7, 0x1e, 0x6e, 0x71, 0x1f, 0xa8, 0x4b, 0x6e, 0x5d, 0xf3, 0xe0, 0x74, 0x22, + 0x6c, 0x45, 0xa6, 0x0d, 0x44, 0x72, 0x5e, 0x21, 0x49, 0xce, 0x8b, 0x82, 0x2e, 0x21, 0x56, 0x2b, + 0x4f, 0xc5, 0xc3, 0x5f, 0xfb, 0x16, 0xc0, 0x13, 0xeb, 0x4d, 0x62, 0xdd, 0x34, 0xac, 0x4d, 0xd3, + 0x76, 0x8d, 0x16, 0xf6, 0x2c, 0xec, 0x52, 0xb3, 0x81, 0x0d, 0xdb, 0x35, 0xd6, 0x5b, 0xc5, 0xfd, + 0x22, 0x0f, 0x5e, 0x07, 0x43, 0x24, 0xc2, 0x15, 0x97, 0x76, 0x19, 0x1a, 0xe8, 0x36, 0x60, 0xe8, + 0xb4, 0x2a, 0x60, 0x03, 0xac, 0xe2, 0x69, 0x72, 0xc5, 0xa5, 0x12, 0x7f, 0x51, 0xcc, 0xb8, 0xc8, + 0x27, 0x5c, 0xed, 0xd9, 0x5f, 0x71, 0xab, 0x2d, 0xed, 0x7b, 0x00, 0x4b, 0x1e, 0xf6, 0x49, 0xdb, + 0xb3, 0xb0, 0xe1, 0x92, 0x3a, 0x4e, 0xb3, 0x91, 0x59, 0xfd, 0xd6, 0xf0, 0x6c, 0x76, 0x71, 0x1c, + 0x30, 0xf4, 0xef, 0xb0, 0x90, 0x0e, 0xb2, 0xcb, 0x64, 0x34, 0x1f, 0xce, 0x79, 0x86, 0xd4, 0x71, + 0x1f, 0xa7, 0x2f, 0x01, 0x9c, 0x77, 0x30, 0x35, 0x73, 0xf8, 0x8c, 0x09, 0x3e, 0xaf, 0x0e, 0xcf, + 0x67, 0x80, 0xd3, 0x80, 0xa1, 0x53, 0x2a, 0x7c, 0x72, 0x6d, 0x32, 0x79, 0x1c, 0xe3, 0xf6, 0x69, + 0x0e, 0xfa, 0x6b, 0xfb, 0xe1, 0x98, 0x0a, 0xb7, 0x1b, 0x70, 0xe6, 0x96, 0xd9, 0x6c, 0x62, 0x6a, + 0x98, 0xf5, 0xba, 0x87, 0x7d, 0x5f, 0xdd, 0x6f, 0x17, 0xbb, 0x0c, 0xf5, 0x69, 0x02, 0x86, 0x8e, + 0x4a, 0x18, 0x49, 0x39, 0x5f, 0xba, 0xa0, 0x96, 0x7e, 0x52, 0x8a, 0x56, 0xa9, 0xc7, 0x23, 0x7a, + 0x5a, 0x1a, 0x2a, 0xa1, 0xf6, 0x35, 0x80, 0xc7, 0x55, 0xfd, 0xdf, 0xf0, 0x88, 0x63, 0xa8, 0x64, + 0x68, 0x11, 0xd2, 0x2c, 0xee, 0x13, 0xd7, 0xcd, 0x80, 0xcc, 0xf2, 0xc2, 0xe2, 0x93, 0xe3, 0x21, + 0x2a, 0x3e, 0x39, 0x06, 0xfa, 0xc7, 0xbf, 0xa0, 0xc5, 0x3f, 0x71, 0x1c, 0x7c, 0x35, 0x5f, 0x15, + 0x2a, 0xe9, 0xea, 0xb2, 0x47, 0x1c, 0x59, 0x4a, 0xaf, 0x12, 0xd2, 0xd4, 0x1e, 0x00, 0x58, 0x8c, + 0xaf, 0x41, 0x3d, 0x73, 0x63, 0xc3, 0xb6, 0x24, 0x8f, 0xd1, 0xdd, 0x78, 0x50, 0xc5, 0x23, 0xd7, + 0x45, 0xc0, 0x10, 0x4a, 0x13, 0x89, 0x5b, 0xec, 0x81, 0xc9, 0xd1, 0x88, 0xc9, 0x9a, 0xf4, 0xc4, + 0xa9, 0xe8, 0xbf, 0x01, 0xa8, 0xad, 0xda, 0x6e, 0xa3, 0x89, 0x9f, 0x13, 0x27, 0x75, 0x8d, 0x34, + 0xdb, 0x0e, 0xfe, 0x47, 0x83, 0x82, 0xc2, 0xb1, 0x8e, 0x58, 0x55, 0xb5, 0x44, 0xcf, 0x0f, 0x9d, + 0x39, 0x6a, 0x7e, 0xc0, 0xd0, 0xb4, 0x44, 0x22, 0xc7, 0x99, 0x19, 0xa1, 0x6c, 0xf5, 0x36, 0x9c, + 0x8e, 0x33, 0xf6, 0xb5, 0x3a, 0x1c, 0x97, 0x2a, 0xce, 0x95, 0x1f, 0xa1, 0xde, 0xdf, 0xf9, 0xa4, + 0xf7, 0xa9, 0x7a, 0x46, 0x9d, 0x65, 0x38, 0x35, 0x60, 0x68, 0x26, 0x0e, 0x21, 0x6c, 0x70, 0x42, + 0xbd, 0xfe, 0x3b, 0x80, 0x9a, 0x9c, 0x5b, 0xc3, 0x2d, 0xe2, 0xd1, 0x1a, 0xb6, 0x88, 0x57, 0xd7, + 0x56, 0xe1, 0x41, 0x4f, 0x8c, 0xb1, 0xa7, 0x76, 0xfa, 0xff, 0x5d, 0x86, 0x7a, 0xb2, 0x80, 0xa1, + 0x43, 0x61, 0x44, 0x48, 0x49, 0xfe, 0xee, 0xf6, 0x26, 0x69, 0xd7, 0xe1, 0x61, 0xf9, 0x6d, 0x78, + 0x78, 0x03, 0x7b, 0xd8, 0xb5, 0xc2, 0x2d, 0xae, 0x74, 0x19, 0x4a, 0xe9, 0x02, 0x86, 0x8e, 0xc7, + 0x17, 0x89, 0x34, 0x7a, 0xed, 0x90, 0xa7, 0xd0, 0x2a, 0x89, 0xf6, 0x3f, 0x38, 0x4e, 0xb7, 0x8c, + 0x4d, 0xd3, 0x97, 0xcd, 0xe7, 0x44, 0xf5, 0x24, 0xdf, 0x05, 0x25, 0x8a, 0x76, 0x41, 0x09, 0xf4, + 0xda, 0x18, 0xdd, 0x7a, 0x8a, 0x7f, 0xfc, 0xb8, 0x0f, 0x4e, 0x8a, 0x1e, 0x46, 0x55, 0x9f, 0xf7, + 0x41, 0xff, 0x0d, 0x0b, 0x76, 0xcb, 0x9f, 0x17, 0x86, 0xba, 0x61, 0x87, 0xcf, 0x94, 0xe4, 0x6d, + 0x7c, 0x17, 0xc0, 0x99, 0x30, 0xf5, 0x14, 0xc2, 0x5d, 0x2b, 0xd5, 0x8b, 0x0a, 0x61, 0xdf, 0xc4, + 0x28, 0x53, 0x92, 0xf2, 0x3d, 0x60, 0x9c, 0x56, 0x1e, 0x24, 0x48, 0xfd, 0x9b, 0xc3, 0x70, 0x7c, + 0x05, 0x53, 0xcf, 0xb6, 0x7c, 0xed, 0x4d, 0x00, 0xa7, 0x12, 0xdd, 0xa9, 0x8c, 0xa7, 0xcd, 0xa1, + 0xb3, 0x6a, 0xaa, 0xaf, 0x49, 0x3d, 0x12, 0x6f, 0xa1, 0x54, 0x73, 0x9a, 0x95, 0x61, 0x93, 0x34, + 0xea, 0x51, 0xb5, 0x8f, 0x00, 0x3c, 0xd2, 0x6b, 0xba, 0xf8, 0xb1, 0x28, 0x50, 0x32, 0x0e, 0x3b, + 0x43, 0x83, 0xca, 0x72, 0x16, 0x30, 0x34, 0xdf, 0xd7, 0xde, 0x45, 0xca, 0x4c, 0x88, 0xb3, 0x61, + 0xab, 0x67, 0xbb, 0x0d, 0x05, 0xf4, 0x2e, 0x80, 0x5a, 0xbc, 0x3b, 0xa4, 0xe4, 0x26, 0x76, 0x7d, + 0x15, 0xdc, 0x74, 0x68, 0x9c, 0x19, 0xbe, 0x02, 0x86, 0xe6, 0xd2, 0x5d, 0xa8, 0xd4, 0x65, 0xa2, + 0x3c, 0x1c, 0x35, 0xa4, 0x6b, 0xc2, 0x4a, 0xfb, 0x0e, 0xc0, 0x13, 0x72, 0x72, 0xa2, 0xa7, 0xf1, + 0x8d, 0x3a, 0x6e, 0x11, 0xdf, 0xa6, 0x7f, 0xa1, 0x35, 0x1c, 0xe4, 0x36, 0x6a, 0x0d, 0x07, 0x59, + 0x65, 0x72, 0x98, 0xa3, 0x32, 0xd9, 0xa3, 0x6e, 0xca, 0x5f, 0x96, 0xe6, 0xda, 0x67, 0xbd, 0x97, + 0x08, 0x7f, 0x24, 0x63, 0xfe, 0xd2, 0x6d, 0xe2, 0x86, 0x49, 0x6d, 0xe2, 0xaa, 0xa6, 0xf0, 0xe5, + 0xa1, 0x69, 0xe4, 0x39, 0xec, 0x7f, 0x98, 0xa4, 0x0c, 0x32, 0xc1, 0xcb, 0xd7, 0x44, 0x55, 0xd8, + 0x2e, 0xf7, 0x4c, 0xb5, 0x2f, 0x00, 0x94, 0xb4, 0x8c, 0xb6, 0x9b, 0x86, 0x2e, 0xfb, 0xbf, 0x57, + 0x86, 0x3f, 0x82, 0x7c, 0x9f, 0x01, 0x43, 0x0b, 0x71, 0xf4, 0x19, 0x26, 0x99, 0xf8, 0xe5, 0x6e, + 0x3c, 0xab, 0xac, 0x63, 0x0c, 0xbe, 0x02, 0x70, 0x3e, 0xee, 0x8a, 0xa7, 0x4b, 0x8c, 0xc2, 0xf8, + 0x9e, 0x5b, 0xd8, 0x7c, 0xa7, 0x51, 0x0b, 0x9b, 0x6f, 0x93, 0xfd, 0xb8, 0x88, 0x91, 0xb0, 0xdd, + 0x46, 0x8c, 0xc5, 0x87, 0x00, 0x6a, 0x96, 0xed, 0x59, 0xed, 0xa6, 0x18, 0x87, 0xa5, 0xe5, 0xe0, + 0x5e, 0x53, 0x36, 0xed, 0x2b, 0x4a, 0xd9, 0xb4, 0x2e, 0xbb, 0xb0, 0xc4, 0xec, 0xf2, 0x2a, 0xa0, + 0xba, 0x45, 0x26, 0xfe, 0x96, 0x0a, 0xd8, 0xbb, 0x59, 0xb2, 0x2a, 0xa0, 0xba, 0x5e, 0x76, 0xab, + 0x80, 0xea, 0xa6, 0xe3, 0x40, 0xe5, 0xa3, 0x2f, 0x09, 0x14, 0xee, 0x15, 0x68, 0x86, 0xb3, 0x08, + 0x68, 0x86, 0x32, 0x67, 0x47, 0xb9, 0x61, 0x02, 0xe8, 0x27, 0x00, 0x1e, 0xeb, 0x95, 0xa0, 0x24, + 0xd6, 0x49, 0x81, 0xf5, 0xa5, 0xa1, 0xb1, 0xe6, 0xf8, 0x0b, 0x18, 0x3a, 0xd9, 0xf7, 0x86, 0xdc, + 0x1d, 0x71, 0x21, 0xb4, 0x5d, 0xe9, 0xeb, 0x23, 0x34, 0xf1, 0x78, 0x4b, 0x02, 0x9e, 0xda, 0x6b, + 0xb0, 0xa6, 0x7d, 0x45, 0xc1, 0x9a, 0xd6, 0x65, 0xdf, 0x2f, 0xdc, 0x2e, 0x0e, 0xb2, 0xba, 0x72, + 0x6f, 0xa7, 0x04, 0x1e, 0xec, 0x94, 0xc0, 0xc3, 0x9d, 0x12, 0xf8, 0x75, 0xa7, 0x04, 0x6e, 0x3f, + 0x2a, 0x8d, 0x3c, 0x7c, 0x54, 0x1a, 0xf9, 0xe9, 0x51, 0x69, 0xe4, 0x7a, 0x25, 0x86, 0x4e, 0xb5, + 0xc6, 0x2e, 0xa6, 0xe1, 0xe7, 0x39, 0x71, 0x50, 0xea, 0x27, 0x28, 0x01, 0x75, 0x7d, 0x4c, 0xfc, + 0x90, 0xfa, 0xdf, 0x3f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x24, 0x8d, 0x66, 0xca, 0xd8, 0x15, 0x00, + 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -766,6 +840,63 @@ func (this *TotalReward) Equal(that interface{}) bool { } return true } +func (this *Metrics) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Metrics) + if !ok { + that2, ok := that.(Metrics) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.TotalSupply.Equal(that1.TotalSupply) { + return false + } + if !this.TotalMiningSupply.Equal(that1.TotalMiningSupply) { + return false + } + if !this.TotalMinedTokens.Equal(that1.TotalMinedTokens) { + return false + } + if !this.TotalResourceNodesDeposit.Equal(that1.TotalResourceNodesDeposit) { + return false + } + if !this.TotalBondedDelegation.Equal(that1.TotalBondedDelegation) { + return false + } + if !this.TotalUnbondedDelegation.Equal(that1.TotalUnbondedDelegation) { + return false + } + if !this.TotalUnbondingDelegation.Equal(that1.TotalUnbondingDelegation) { + return false + } + if !this.CirculationSupply.Equal(that1.CirculationSupply) { + return false + } + if !this.TotalMiningReward.Equal(that1.TotalMiningReward) { + return false + } + if !this.ChainMiningReward.Equal(that1.ChainMiningReward) { + return false + } + if !this.ResourceMiningReward.Equal(that1.ResourceMiningReward) { + return false + } + if !this.MetaMiningReward.Equal(that1.MetaMiningReward) { + return false + } + return true +} func (m *Params) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1155,6 +1286,149 @@ func (m *TotalReward) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *Metrics) 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 *Metrics) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Metrics) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.MetaMiningReward.Size() + i -= size + if _, err := m.MetaMiningReward.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + { + size := m.ResourceMiningReward.Size() + i -= size + if _, err := m.ResourceMiningReward.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + { + size := m.ChainMiningReward.Size() + i -= size + if _, err := m.ChainMiningReward.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + { + size := m.TotalMiningReward.Size() + i -= size + if _, err := m.TotalMiningReward.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + { + size := m.CirculationSupply.Size() + i -= size + if _, err := m.CirculationSupply.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + { + size := m.TotalUnbondingDelegation.Size() + i -= size + if _, err := m.TotalUnbondingDelegation.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + { + size := m.TotalUnbondedDelegation.Size() + i -= size + if _, err := m.TotalUnbondedDelegation.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + { + size := m.TotalBondedDelegation.Size() + i -= size + if _, err := m.TotalBondedDelegation.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + { + size := m.TotalResourceNodesDeposit.Size() + i -= size + if _, err := m.TotalResourceNodesDeposit.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size := m.TotalMinedTokens.Size() + i -= size + if _, err := m.TotalMinedTokens.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size := m.TotalMiningSupply.Size() + i -= size + if _, err := m.TotalMiningSupply.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size := m.TotalSupply.Size() + i -= size + if _, err := m.TotalSupply.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintPot(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func encodeVarintPot(dAtA []byte, offset int, v uint64) int { offset -= sovPot(v) base := offset @@ -1314,6 +1588,39 @@ func (m *TotalReward) Size() (n int) { return n } +func (m *Metrics) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.TotalSupply.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.TotalMiningSupply.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.TotalMinedTokens.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.TotalResourceNodesDeposit.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.TotalBondedDelegation.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.TotalUnbondedDelegation.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.TotalUnbondingDelegation.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.CirculationSupply.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.TotalMiningReward.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.ChainMiningReward.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.ResourceMiningReward.Size() + n += 1 + l + sovPot(uint64(l)) + l = m.MetaMiningReward.Size() + n += 1 + l + sovPot(uint64(l)) + return n +} + func sovPot(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -2419,6 +2726,464 @@ func (m *TotalReward) Unmarshal(dAtA []byte) error { } return nil } +func (m *Metrics) 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 ErrIntOverflowPot + } + 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: Metrics: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Metrics: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalSupply", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalSupply.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalMiningSupply", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalMiningSupply.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalMinedTokens", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalMinedTokens.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalResourceNodesDeposit", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalResourceNodesDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalBondedDelegation", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalBondedDelegation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalUnbondedDelegation", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalUnbondedDelegation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalUnbondingDelegation", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalUnbondingDelegation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CirculationSupply", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CirculationSupply.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalMiningReward", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.TotalMiningReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChainMiningReward", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ChainMiningReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceMiningReward", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ResourceMiningReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MetaMiningReward", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPot + } + 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 ErrInvalidLengthPot + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPot + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.MetaMiningReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPot(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPot + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipPot(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/pot/types/query.pb.go b/x/pot/types/query.pb.go index 934743cd..abfa8a72 100644 --- a/x/pot/types/query.pb.go +++ b/x/pot/types/query.pb.go @@ -946,18 +946,7 @@ func (m *QueryMetricsRequest) XXX_DiscardUnknown() { var xxx_messageInfo_QueryMetricsRequest proto.InternalMessageInfo type QueryMetricsResponse struct { - TotalSupply github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=total_supply,json=totalSupply,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_supply" yaml:"total_supply"` - TotalMiningSupply github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=total_mining_supply,json=totalMiningSupply,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_mining_supply" yaml:"total_mining_supply"` - TotalMinedTokens github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=total_mined_tokens,json=totalMinedTokens,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_mined_tokens" yaml:"total_mined_tokens"` - TotalResourceNodesDeposit github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=total_resource_nodes_deposit,json=totalResourceNodesDeposit,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_resource_nodes_deposit" yaml:"total_resource_nodes_deposit"` - TotalBondedDelegation github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=total_bonded_delegation,json=totalBondedDelegation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_bonded_delegation" yaml:"total_bonded_delegation"` - TotalUnbondedDelegation github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,6,opt,name=total_unbonded_delegation,json=totalUnbondedDelegation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_unbonded_delegation" yaml:"total_unbonded_delegation"` - TotalUnbondingDelegation github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=total_unbonding_delegation,json=totalUnbondingDelegation,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_unbonding_delegation" yaml:"total_unbonding_delegation"` - CirculationSupply github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,8,opt,name=circulation_supply,json=circulationSupply,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"circulation_supply" yaml:"circulation_supply"` - TotalMiningReward github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,9,opt,name=total_mining_reward,json=totalMiningReward,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"total_mining_reward" yaml:"total_mining_reward"` - ChainMiningReward github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,10,opt,name=chain_mining_reward,json=chainMiningReward,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"chain_mining_reward" yaml:"chain_mining_reward"` - ResourceMiningReward github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,11,opt,name=resource_mining_reward,json=resourceMiningReward,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"resource_mining_reward" yaml:"resource_mining_reward"` - MetaMiningReward github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,12,opt,name=meta_mining_reward,json=metaMiningReward,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"meta_mining_reward" yaml:"meta_mining_reward"` + Metrics Metrics `protobuf:"bytes,1,opt,name=metrics,proto3" json:"metrics"` } func (m *QueryMetricsResponse) Reset() { *m = QueryMetricsResponse{} } @@ -993,6 +982,13 @@ func (m *QueryMetricsResponse) XXX_DiscardUnknown() { var xxx_messageInfo_QueryMetricsResponse proto.InternalMessageInfo +func (m *QueryMetricsResponse) GetMetrics() Metrics { + if m != nil { + return m.Metrics + } + return Metrics{} +} + func init() { proto.RegisterType((*QueryVolumeReportRequest)(nil), "stratos.pot.v1.QueryVolumeReportRequest") proto.RegisterType((*QueryVolumeReportResponse)(nil), "stratos.pot.v1.QueryVolumeReportResponse") @@ -1019,103 +1015,80 @@ func init() { func init() { proto.RegisterFile("stratos/pot/v1/query.proto", fileDescriptor_c09bd09df76a68e0) } var fileDescriptor_c09bd09df76a68e0 = []byte{ - // 1533 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x98, 0xcf, 0x73, 0x14, 0xc5, - 0x17, 0xc0, 0x33, 0xc9, 0x97, 0x04, 0x3a, 0x10, 0x48, 0x27, 0x84, 0xcd, 0x90, 0xec, 0x40, 0xf3, - 0xfb, 0xc7, 0xce, 0x10, 0xbe, 0xa5, 0x54, 0xe9, 0xc9, 0x05, 0x54, 0x0e, 0x28, 0x0e, 0xe0, 0xc1, - 0xcb, 0xd6, 0x64, 0xb7, 0x99, 0x9d, 0xca, 0xee, 0xf4, 0x64, 0xba, 0x37, 0x24, 0x22, 0x65, 0x95, - 0x7f, 0x80, 0x52, 0x72, 0xd0, 0x83, 0xa5, 0xa5, 0xde, 0xf4, 0xa0, 0x07, 0xcb, 0xbf, 0x01, 0x6f, - 0x54, 0x79, 0xb1, 0x3c, 0xac, 0x16, 0x78, 0xe2, 0xb8, 0x7f, 0x81, 0x35, 0xdd, 0x3d, 0xbb, 0xf3, - 0xa3, 0x27, 0xd9, 0x4d, 0xe1, 0x29, 0xd9, 0x7e, 0xaf, 0x5f, 0x7f, 0xde, 0xeb, 0xd7, 0xaf, 0xfb, - 0x0d, 0xd0, 0x29, 0x0b, 0x1d, 0x46, 0xa8, 0x15, 0x10, 0x66, 0x6d, 0xac, 0x58, 0xeb, 0x1d, 0x1c, - 0x6e, 0x99, 0x41, 0x48, 0x18, 0x81, 0x33, 0x52, 0x66, 0x06, 0x84, 0x99, 0x1b, 0x2b, 0xfa, 0xbc, - 0x4b, 0x5c, 0xc2, 0x45, 0x56, 0xf4, 0x9f, 0xd0, 0xd2, 0x97, 0x5c, 0x42, 0xdc, 0x16, 0xb6, 0x9c, - 0xc0, 0xb3, 0x1c, 0xdf, 0x27, 0xcc, 0x61, 0x1e, 0xf1, 0xa9, 0x94, 0x96, 0xeb, 0x84, 0xb6, 0x09, - 0xb5, 0x56, 0x1d, 0x8a, 0xad, 0x8d, 0x95, 0x55, 0xcc, 0x9c, 0x15, 0xab, 0x4e, 0x3c, 0x5f, 0xca, - 0xcf, 0x27, 0xe5, 0x7c, 0xf1, 0xbe, 0x56, 0xe0, 0xb8, 0x9e, 0xcf, 0x8d, 0x49, 0xdd, 0x52, 0x86, - 0x35, 0xc2, 0xe2, 0x12, 0x74, 0x09, 0x94, 0xde, 0x8b, 0xe6, 0xbe, 0x4f, 0x5a, 0x9d, 0x36, 0xb6, - 0x71, 0x40, 0x42, 0x66, 0xe3, 0xf5, 0x0e, 0xa6, 0x0c, 0xce, 0x83, 0x3d, 0x38, 0x20, 0xf5, 0x66, - 0x49, 0x3b, 0xa6, 0x9d, 0x9d, 0xb0, 0xc5, 0x0f, 0x14, 0x80, 0x45, 0xc5, 0x0c, 0x1a, 0x10, 0x9f, - 0x62, 0xf8, 0x3a, 0x98, 0x0e, 0xf9, 0x48, 0xcd, 0xf3, 0xef, 0x11, 0x3e, 0x71, 0xfa, 0xb2, 0x6e, - 0xa6, 0xc3, 0x61, 0x8a, 0x49, 0x37, 0xfc, 0x7b, 0xc4, 0x06, 0x61, 0xff, 0x7f, 0xb8, 0x00, 0x26, - 0x9b, 0xd8, 0x73, 0x9b, 0xac, 0x34, 0xce, 0x17, 0x94, 0xbf, 0x50, 0x07, 0x80, 0xc1, 0x0c, 0x35, - 0x15, 0x5c, 0x02, 0xfb, 0x42, 0x7c, 0x0f, 0x87, 0xd8, 0xaf, 0x63, 0x3e, 0x7d, 0x9f, 0x3d, 0x18, - 0x80, 0x47, 0xc0, 0x14, 0xdb, 0xac, 0x35, 0x1d, 0xda, 0x2c, 0x4d, 0x70, 0xd9, 0x24, 0xdb, 0x7c, - 0xdb, 0xa1, 0x4d, 0xa8, 0x83, 0xbd, 0x02, 0x00, 0x87, 0xa5, 0xff, 0x71, 0x49, 0xff, 0x37, 0x9a, - 0x07, 0x90, 0x3b, 0x7a, 0xcb, 0x09, 0x9d, 0x36, 0x95, 0x41, 0x41, 0xd7, 0xc1, 0x5c, 0x6a, 0x54, - 0x3a, 0x6e, 0x82, 0xc9, 0x80, 0x8f, 0x48, 0x9f, 0x17, 0xb2, 0x3e, 0x4b, 0x7d, 0xa9, 0x85, 0xbe, - 0xd5, 0x80, 0xce, 0xed, 0xd8, 0xf8, 0xbe, 0x13, 0x36, 0x68, 0x75, 0xeb, 0x7a, 0xe4, 0xc7, 0xb6, - 0xa1, 0x87, 0xa7, 0xc0, 0xcc, 0x7d, 0xa7, 0xd5, 0xc2, 0xac, 0xe6, 0x34, 0x1a, 0x21, 0xa6, 0x54, - 0x7a, 0x7a, 0x40, 0x8c, 0xbe, 0x21, 0x06, 0xe1, 0x9b, 0x00, 0x0c, 0x32, 0x80, 0x3b, 0x3c, 0x7d, - 0xf9, 0xb4, 0x29, 0xd2, 0xc5, 0x8c, 0xd2, 0xc5, 0x14, 0xb9, 0x2a, 0xd3, 0xc5, 0xbc, 0xe5, 0xb8, - 0x58, 0x2e, 0x6c, 0x27, 0x66, 0xa2, 0x9f, 0x35, 0x70, 0x54, 0xc9, 0x28, 0x7d, 0xbe, 0x04, 0xa6, - 0x42, 0x21, 0x29, 0x69, 0xc7, 0x26, 0x54, 0x4e, 0x8b, 0x89, 0x76, 0xac, 0x56, 0xb4, 0xc3, 0xf0, - 0x2d, 0x05, 0xf1, 0x99, 0x1d, 0x89, 0x05, 0x46, 0x0a, 0xf9, 0x6a, 0x36, 0xaa, 0xef, 0xde, 0xf7, - 0x71, 0x18, 0x47, 0x35, 0x1f, 0x3f, 0x4d, 0x11, 0x3f, 0xe4, 0x67, 0xdd, 0x96, 0x46, 0xa4, 0xdb, - 0x57, 0x92, 0x6e, 0x47, 0xa4, 0xcb, 0x6a, 0xb7, 0xe3, 0x79, 0x3b, 0x79, 0x8f, 0x7e, 0x19, 0x07, - 0x07, 0x52, 0x53, 0x86, 0x04, 0x85, 0x0f, 0xc0, 0x5c, 0xdb, 0x61, 0x9d, 0x10, 0xd7, 0x18, 0x61, - 0x4e, 0xab, 0x26, 0x16, 0x2a, 0x8d, 0xf3, 0xcd, 0x58, 0x4c, 0xc5, 0x2f, 0x8e, 0xdc, 0x55, 0xe2, - 0xf9, 0xd5, 0x4b, 0x4f, 0xba, 0xc6, 0xd8, 0x0f, 0x7f, 0x19, 0x67, 0x5d, 0x8f, 0x35, 0x3b, 0xab, - 0x66, 0x9d, 0xb4, 0x2d, 0x59, 0x4d, 0xc4, 0x9f, 0x0a, 0x6d, 0xac, 0x59, 0x6c, 0x2b, 0xc0, 0x94, - 0x4f, 0xa0, 0xf6, 0xac, 0x58, 0xe7, 0x4e, 0xb4, 0x8c, 0x40, 0x85, 0x1f, 0x83, 0xc3, 0x5e, 0x5b, - 0xb5, 0xfc, 0xc4, 0xcb, 0x5f, 0x7e, 0x2e, 0x5e, 0x29, 0x01, 0x80, 0xae, 0xc9, 0x6d, 0xba, 0xdd, - 0x72, 0x68, 0xd3, 0xf3, 0xdd, 0xdd, 0x6d, 0xb6, 0x0d, 0x96, 0xd4, 0x56, 0xe4, 0x6e, 0xeb, 0x60, - 0x2f, 0x95, 0x22, 0x69, 0xa0, 0xff, 0xbb, 0x70, 0x43, 0x97, 0x25, 0x19, 0xa7, 0xbd, 0xe9, 0xf9, - 0xb8, 0x71, 0x87, 0xac, 0x61, 0x3f, 0x2e, 0x21, 0x5f, 0x69, 0x72, 0xcd, 0x9c, 0x5c, 0xae, 0xf9, - 0x11, 0x98, 0x15, 0x11, 0x6d, 0x47, 0xb2, 0x1a, 0x8b, 0x84, 0x32, 0xd7, 0xb6, 0x09, 0xeb, 0x2b, - 0x51, 0x58, 0x5f, 0x74, 0x8d, 0xfc, 0xdc, 0x5e, 0xd7, 0x28, 0x6d, 0x39, 0xed, 0xd6, 0x6b, 0x28, - 0x27, 0x42, 0xf6, 0x41, 0x96, 0xa6, 0x40, 0x06, 0x58, 0xe6, 0x74, 0x57, 0xbd, 0xb0, 0xde, 0x69, - 0xf1, 0x73, 0x75, 0xbb, 0x13, 0x04, 0xad, 0xad, 0x04, 0x7f, 0xb9, 0x48, 0x43, 0x7a, 0xf0, 0x21, - 0x80, 0xf5, 0x81, 0xb0, 0x46, 0xb9, 0xf4, 0xbf, 0xc8, 0x8c, 0xd9, 0x7a, 0x96, 0x01, 0xbd, 0x2a, - 0xe9, 0x12, 0xb9, 0x32, 0x4c, 0x75, 0x45, 0x9f, 0x6a, 0xc0, 0x28, 0x9c, 0x28, 0xfd, 0x5a, 0x03, - 0xfb, 0x53, 0xb9, 0x2e, 0x36, 0xe5, 0x68, 0xb6, 0x00, 0x24, 0x2d, 0x5c, 0x90, 0xdb, 0x92, 0x9a, - 0xd8, 0xeb, 0x1a, 0x73, 0xc9, 0x1d, 0x11, 0xa3, 0xc8, 0x9e, 0x66, 0x89, 0x04, 0x3f, 0x2c, 0xaf, - 0x9a, 0x9b, 0x98, 0x85, 0x5e, 0xbd, 0x7f, 0x03, 0xbd, 0x98, 0x01, 0xf3, 0xe9, 0x71, 0x09, 0xb7, - 0x19, 0xc3, 0xc9, 0x70, 0xf3, 0x74, 0xad, 0xde, 0x8d, 0xd6, 0xff, 0xb3, 0x6b, 0x9c, 0x1e, 0x22, - 0xa6, 0x37, 0x7c, 0x36, 0x20, 0x15, 0x56, 0xb2, 0xa4, 0x62, 0x34, 0x26, 0x15, 0x21, 0x87, 0x8f, - 0x35, 0x30, 0xd7, 0x4f, 0x2d, 0xcf, 0x77, 0x63, 0x02, 0x7e, 0x3d, 0x55, 0xeb, 0x23, 0x13, 0xa8, - 0x8c, 0xf5, 0xba, 0x86, 0x9e, 0x49, 0xe2, 0x81, 0x10, 0xd9, 0xb3, 0x71, 0x1a, 0x7b, 0xbe, 0x2b, - 0xa9, 0x3e, 0xd3, 0x00, 0xcc, 0x25, 0x3c, 0x15, 0x2f, 0x80, 0xaa, 0x33, 0x32, 0x94, 0xc2, 0x56, - 0xaf, 0x6b, 0x2c, 0x16, 0x1c, 0x2c, 0x8a, 0xec, 0x43, 0x99, 0x93, 0x45, 0xe1, 0xaf, 0x1a, 0x58, - 0x8a, 0x37, 0x9c, 0x92, 0x4e, 0x58, 0xc7, 0x35, 0x9f, 0x34, 0x30, 0xad, 0x35, 0x70, 0x40, 0xa8, - 0xc7, 0xc4, 0x1b, 0xa4, 0xda, 0x19, 0x99, 0x6d, 0x5b, 0xab, 0xbd, 0xae, 0x71, 0x22, 0x9d, 0x6c, - 0x2a, 0x2d, 0x64, 0x2f, 0xca, 0xe4, 0x13, 0xd2, 0x77, 0x22, 0xe1, 0x35, 0x21, 0x83, 0xdf, 0x6b, - 0xe0, 0x88, 0x98, 0xbc, 0x4a, 0xfc, 0x06, 0x6e, 0xd4, 0x1a, 0xb8, 0x85, 0x5d, 0x71, 0x5d, 0xef, - 0xe1, 0xcc, 0x6b, 0x23, 0x33, 0x17, 0x19, 0xec, 0x75, 0x8d, 0x72, 0x12, 0x37, 0xa7, 0x80, 0xec, - 0xc3, 0x5c, 0x52, 0xe5, 0x82, 0x6b, 0xfd, 0x71, 0xf8, 0xa3, 0x06, 0x84, 0x0f, 0xb5, 0x8e, 0x9f, - 0xe7, 0x9c, 0xe4, 0x9c, 0x64, 0x64, 0xce, 0x62, 0x93, 0xbd, 0xae, 0x71, 0x2c, 0x49, 0xaa, 0x50, - 0x41, 0xb6, 0x70, 0xf3, 0xae, 0x14, 0x25, 0x68, 0x7f, 0xd2, 0x80, 0x9e, 0x9c, 0x17, 0x65, 0x73, - 0x02, 0x77, 0x8a, 0xe3, 0xae, 0x8f, 0x8c, 0xbb, 0x8d, 0xcd, 0x5e, 0xd7, 0x38, 0x9e, 0xe7, 0x4d, - 0xeb, 0x20, 0xbb, 0x94, 0x00, 0xf6, 0x7c, 0x37, 0x41, 0xfc, 0x48, 0x53, 0x96, 0xf5, 0xbd, 0xbb, - 0x3d, 0x50, 0x79, 0x5b, 0x83, 0x03, 0x95, 0x97, 0x21, 0x45, 0xb1, 0xcf, 0x57, 0x1e, 0x59, 0x98, - 0xf7, 0xbd, 0x94, 0xca, 0xd3, 0x2f, 0xd6, 0xaa, 0xca, 0x13, 0xd7, 0xec, 0x64, 0xe5, 0x91, 0x6f, - 0xa3, 0x88, 0xaa, 0xde, 0x74, 0x3c, 0x3f, 0x43, 0x05, 0x76, 0x4b, 0xa5, 0x30, 0x36, 0xa0, 0x52, - 0x08, 0xa3, 0x58, 0x45, 0xa3, 0x29, 0xaa, 0x6f, 0x34, 0xb0, 0xd0, 0x3f, 0xfb, 0x69, 0xb0, 0x69, - 0x0e, 0xe6, 0x8d, 0x0c, 0x56, 0x60, 0xaf, 0xd7, 0x35, 0x96, 0x05, 0x9b, 0x5a, 0x8e, 0xec, 0xf9, - 0x58, 0x90, 0x22, 0x8c, 0x2a, 0x76, 0x1b, 0x33, 0x27, 0x43, 0xb7, 0x7f, 0xb7, 0x09, 0x96, 0xb7, - 0x35, 0x48, 0xb0, 0xbc, 0x0c, 0xd9, 0x87, 0xa2, 0xc1, 0x24, 0xd1, 0xe5, 0xdf, 0x00, 0xd8, 0xc3, - 0x2f, 0x5b, 0xf8, 0xb9, 0x06, 0xf6, 0x27, 0x7b, 0x5e, 0x78, 0x36, 0x7b, 0xeb, 0x17, 0x35, 0xd2, - 0xfa, 0xb9, 0x21, 0x34, 0xc5, 0x1d, 0x8e, 0x2a, 0x9f, 0xfc, 0xfe, 0xcf, 0xe3, 0xf1, 0x33, 0xf0, - 0x94, 0x95, 0x69, 0xd9, 0x37, 0xb8, 0x76, 0x45, 0x74, 0xa7, 0xd6, 0x03, 0xfe, 0x64, 0x79, 0x08, - 0xbf, 0xd4, 0xc0, 0x4c, 0xba, 0x3b, 0x83, 0xe7, 0x95, 0x8b, 0x29, 0xdb, 0x4c, 0xfd, 0xc2, 0x50, - 0xba, 0x3b, 0xa1, 0xc9, 0xfe, 0xc6, 0xe2, 0x4c, 0x7d, 0xb4, 0xef, 0x92, 0x68, 0xa2, 0xad, 0xd9, - 0x01, 0x2d, 0xf9, 0x7c, 0xdf, 0x09, 0x2d, 0xf5, 0x48, 0x47, 0x57, 0x38, 0xda, 0x0a, 0xb4, 0x8a, - 0xd0, 0xc4, 0x9b, 0xdf, 0x7a, 0x90, 0xee, 0x08, 0x1e, 0x46, 0x47, 0xe2, 0x60, 0xe6, 0xe5, 0x0f, - 0xd5, 0x2b, 0xab, 0xbb, 0x0c, 0xfd, 0xe2, 0x70, 0xca, 0x92, 0x73, 0x85, 0x73, 0x5e, 0x80, 0xe7, - 0xb2, 0x9c, 0x71, 0x4b, 0x91, 0x27, 0x5c, 0x07, 0x93, 0xe2, 0xd3, 0x01, 0x44, 0xca, 0xa5, 0x52, - 0x5f, 0x27, 0xf4, 0x13, 0xdb, 0xea, 0x48, 0x8a, 0x32, 0xa7, 0x28, 0xc1, 0x85, 0x2c, 0x85, 0xf8, - 0x36, 0x01, 0xbf, 0xd0, 0xc0, 0xc1, 0x4c, 0x6b, 0x52, 0x10, 0x14, 0x75, 0x83, 0x53, 0x10, 0x94, - 0x82, 0x6e, 0x07, 0x9d, 0xe3, 0x38, 0x27, 0xe0, 0xf1, 0x2c, 0x0e, 0xaf, 0xab, 0x15, 0xfe, 0xa6, - 0xaa, 0xf0, 0x37, 0x15, 0xfc, 0x5a, 0x03, 0xb3, 0xb9, 0xa6, 0x03, 0x56, 0x94, 0xcb, 0x15, 0xb5, - 0x2f, 0xba, 0x39, 0xac, 0xba, 0xe4, 0x3b, 0xcf, 0xf9, 0x4e, 0x42, 0x94, 0xe5, 0x4b, 0xdc, 0x46, - 0x15, 0x71, 0x45, 0x45, 0xef, 0x24, 0x98, 0x6f, 0x1f, 0xa0, 0x59, 0x1c, 0x10, 0x55, 0x83, 0xa2, - 0x5b, 0x43, 0xeb, 0x4b, 0xc6, 0x8b, 0x9c, 0xf1, 0x34, 0x3c, 0xa9, 0x8e, 0xa1, 0x38, 0x06, 0xfd, - 0xa3, 0xd9, 0x01, 0x53, 0xb2, 0x77, 0x80, 0xea, 0x84, 0x49, 0x77, 0x1c, 0xfa, 0xc9, 0xed, 0x95, - 0x24, 0x83, 0xc1, 0x19, 0x16, 0xe1, 0x91, 0x2c, 0x43, 0x5b, 0x28, 0x56, 0x6f, 0x3c, 0x79, 0x56, - 0xd6, 0x9e, 0x3e, 0x2b, 0x6b, 0x7f, 0x3f, 0x2b, 0x6b, 0x8f, 0x9e, 0x97, 0xc7, 0x9e, 0x3e, 0x2f, - 0x8f, 0xfd, 0xf1, 0xbc, 0x3c, 0xf6, 0x81, 0x95, 0x28, 0xe9, 0x72, 0xb2, 0x8f, 0x59, 0xfc, 0x6f, - 0x85, 0x5f, 0x65, 0xd6, 0x26, 0xb7, 0xc7, 0xeb, 0xfb, 0xea, 0x24, 0xff, 0x7a, 0xf9, 0xff, 0x7f, - 0x03, 0x00, 0x00, 0xff, 0xff, 0x37, 0x1b, 0xc6, 0x7c, 0x85, 0x15, 0x00, 0x00, + // 1167 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x97, 0xcf, 0x6f, 0xdc, 0x44, + 0x14, 0xc7, 0xe3, 0xa4, 0x4d, 0xdb, 0x97, 0xb6, 0x51, 0x26, 0x69, 0xb2, 0x71, 0x93, 0xdd, 0x32, + 0x4d, 0xdb, 0xfc, 0xe8, 0xda, 0xd9, 0x20, 0xa8, 0x04, 0x27, 0x12, 0x0a, 0xf4, 0x50, 0xb5, 0xb8, + 0x15, 0x07, 0x2e, 0x2b, 0x67, 0x33, 0xd9, 0xb5, 0xb2, 0xeb, 0x71, 0x3c, 0xb3, 0xf9, 0x41, 0xa8, + 0x90, 0xf8, 0x03, 0x10, 0x82, 0x03, 0x1c, 0x10, 0x08, 0xb8, 0x71, 0xe2, 0xc0, 0x1f, 0x51, 0x6e, + 0x95, 0xb8, 0x70, 0x0a, 0x28, 0xe1, 0xc4, 0xb1, 0x7f, 0x01, 0xf2, 0xcc, 0xdb, 0x8d, 0xed, 0xb5, + 0x93, 0x15, 0x82, 0x53, 0xd6, 0xf3, 0xde, 0x9b, 0xf7, 0x79, 0x6f, 0x9e, 0xbf, 0xe3, 0x80, 0x29, + 0x64, 0xe8, 0x4a, 0x2e, 0xec, 0x80, 0x4b, 0x7b, 0xa7, 0x62, 0x6f, 0xb7, 0x59, 0xb8, 0x6f, 0x05, + 0x21, 0x97, 0x9c, 0x5c, 0x45, 0x9b, 0x15, 0x70, 0x69, 0xed, 0x54, 0xcc, 0x89, 0x3a, 0xaf, 0x73, + 0x65, 0xb2, 0xa3, 0x5f, 0xda, 0xcb, 0x9c, 0xa9, 0x73, 0x5e, 0x6f, 0x32, 0xdb, 0x0d, 0x3c, 0xdb, + 0xf5, 0x7d, 0x2e, 0x5d, 0xe9, 0x71, 0x5f, 0xa0, 0xb5, 0x58, 0xe3, 0xa2, 0xc5, 0x85, 0xbd, 0xee, + 0x0a, 0x66, 0xef, 0x54, 0xd6, 0x99, 0x74, 0x2b, 0x76, 0x8d, 0x7b, 0x3e, 0xda, 0x17, 0xe3, 0x76, + 0x95, 0xbc, 0xeb, 0x15, 0xb8, 0x75, 0xcf, 0x57, 0x9b, 0xa1, 0x6f, 0x21, 0xc5, 0x1a, 0x61, 0x29, + 0x0b, 0x5d, 0x86, 0xc2, 0xfb, 0x51, 0xec, 0x07, 0xbc, 0xd9, 0x6e, 0x31, 0x87, 0x05, 0x3c, 0x94, + 0x0e, 0xdb, 0x6e, 0x33, 0x21, 0xc9, 0x04, 0x9c, 0x67, 0x01, 0xaf, 0x35, 0x0a, 0xc6, 0x0d, 0x63, + 0x7e, 0xc8, 0xd1, 0x0f, 0x34, 0x80, 0xe9, 0x8c, 0x08, 0x11, 0x70, 0x5f, 0x30, 0xf2, 0x26, 0x8c, + 0x84, 0x6a, 0xa5, 0xea, 0xf9, 0x9b, 0x5c, 0x05, 0x8e, 0xac, 0x98, 0x56, 0xb2, 0x1d, 0x96, 0x0e, + 0x7a, 0xe0, 0x6f, 0x72, 0x07, 0xc2, 0xee, 0x6f, 0x32, 0x09, 0xc3, 0x0d, 0xe6, 0xd5, 0x1b, 0xb2, + 0x30, 0xa8, 0x12, 0xe2, 0x13, 0x6d, 0x03, 0x9c, 0x44, 0x64, 0x53, 0x91, 0x19, 0xb8, 0x14, 0xb2, + 0x4d, 0x16, 0x32, 0xbf, 0xc6, 0x54, 0xf8, 0x25, 0xe7, 0x64, 0x81, 0x4c, 0xc1, 0x05, 0xb9, 0x57, + 0x6d, 0xb8, 0xa2, 0x51, 0x18, 0x52, 0xb6, 0x61, 0xb9, 0xf7, 0x9e, 0x2b, 0x1a, 0xc4, 0x84, 0x8b, + 0x1a, 0x80, 0x85, 0x85, 0x73, 0xca, 0xd2, 0x7d, 0xa6, 0x13, 0x40, 0x54, 0xa1, 0x8f, 0xdd, 0xd0, + 0x6d, 0x09, 0x6c, 0x0a, 0xbd, 0x0f, 0xe3, 0x89, 0x55, 0x2c, 0xdc, 0x82, 0xe1, 0x40, 0xad, 0x60, + 0xcd, 0x93, 0xe9, 0x9a, 0xd1, 0x1f, 0xbd, 0xe8, 0xf7, 0x06, 0x98, 0x6a, 0x1f, 0x87, 0xed, 0xba, + 0xe1, 0x86, 0x58, 0xdd, 0xbf, 0x1f, 0xd5, 0x71, 0x6a, 0xeb, 0xc9, 0x2d, 0xb8, 0xba, 0xeb, 0x36, + 0x9b, 0x4c, 0x56, 0xdd, 0x8d, 0x8d, 0x90, 0x09, 0x81, 0x95, 0x5e, 0xd1, 0xab, 0x6f, 0xe9, 0x45, + 0xf2, 0x0e, 0xc0, 0xc9, 0x04, 0xa8, 0x82, 0x47, 0x56, 0x6e, 0x5b, 0x7a, 0x5c, 0xac, 0x68, 0x5c, + 0x2c, 0x3d, 0xab, 0x38, 0x2e, 0xd6, 0x63, 0xb7, 0xce, 0x30, 0xb1, 0x13, 0x8b, 0xa4, 0x3f, 0x1b, + 0x70, 0x3d, 0x93, 0x11, 0x6b, 0x5e, 0x86, 0x0b, 0xa1, 0xb6, 0x14, 0x8c, 0x1b, 0x43, 0x59, 0x45, + 0xeb, 0x40, 0xa7, 0xe3, 0x96, 0x77, 0xc2, 0xe4, 0xdd, 0x0c, 0xe2, 0x3b, 0x67, 0x12, 0x6b, 0x8c, + 0x04, 0xf2, 0x5a, 0xba, 0xab, 0x8f, 0x76, 0x7d, 0x16, 0x76, 0xba, 0xda, 0xdb, 0x3f, 0x23, 0xa3, + 0x7f, 0xd4, 0x4f, 0x97, 0x8d, 0x9b, 0x60, 0xd9, 0xf7, 0xe2, 0x65, 0x47, 0xa4, 0xb3, 0xd9, 0x65, + 0x77, 0xe2, 0xce, 0xaa, 0x9e, 0xfe, 0x32, 0x08, 0x57, 0x12, 0x21, 0x7d, 0x82, 0x92, 0x03, 0x18, + 0x6f, 0xb9, 0xb2, 0x1d, 0xb2, 0xaa, 0xe4, 0xd2, 0x6d, 0x56, 0x75, 0xa2, 0xc2, 0xa0, 0x3a, 0x8c, + 0xe9, 0x44, 0xff, 0x3a, 0x9d, 0x5b, 0xe3, 0x9e, 0xbf, 0xba, 0xfc, 0xfc, 0xb0, 0x34, 0xf0, 0xd3, + 0x1f, 0xa5, 0xf9, 0xba, 0x27, 0x1b, 0xed, 0x75, 0xab, 0xc6, 0x5b, 0x36, 0xaa, 0x89, 0xfe, 0x53, + 0x16, 0x1b, 0x5b, 0xb6, 0xdc, 0x0f, 0x98, 0x50, 0x01, 0xc2, 0x19, 0xd3, 0x79, 0x9e, 0x46, 0x69, + 0x34, 0x2a, 0xf9, 0x04, 0xae, 0x79, 0xad, 0xac, 0xf4, 0x43, 0xff, 0x7d, 0xfa, 0xf1, 0x4e, 0xa6, + 0x18, 0x00, 0x7d, 0x1b, 0x8f, 0xe9, 0x49, 0xd3, 0x15, 0x0d, 0xcf, 0xaf, 0xff, 0xbb, 0xc3, 0x76, + 0x60, 0x26, 0x7b, 0x17, 0x3c, 0x6d, 0x13, 0x2e, 0x0a, 0x34, 0xe1, 0x06, 0xdd, 0xe7, 0xdc, 0x03, + 0x9d, 0x45, 0x32, 0x45, 0xfb, 0xd0, 0xf3, 0xd9, 0xc6, 0x53, 0xbe, 0xc5, 0xfc, 0x8e, 0x84, 0x7c, + 0x63, 0x60, 0xce, 0x1e, 0x3b, 0xe6, 0xfc, 0x18, 0xc6, 0x74, 0x47, 0x5b, 0x91, 0xad, 0x2a, 0x23, + 0x23, 0xce, 0xda, 0x29, 0x6d, 0x7d, 0x2d, 0x6a, 0xeb, 0xdf, 0x87, 0xa5, 0xde, 0xd8, 0x97, 0x87, + 0xa5, 0xc2, 0xbe, 0xdb, 0x6a, 0xbe, 0x41, 0x7b, 0x4c, 0xd4, 0x19, 0x95, 0x49, 0x0a, 0x5a, 0x82, + 0x59, 0x45, 0xb7, 0xe6, 0x85, 0xb5, 0x76, 0x53, 0xbd, 0x57, 0x4f, 0xda, 0x41, 0xd0, 0xdc, 0x8f, + 0xf1, 0x17, 0xf3, 0x3c, 0xb0, 0x82, 0x8f, 0x80, 0xd4, 0x4e, 0x8c, 0x55, 0xa1, 0xac, 0xff, 0xc7, + 0x64, 0x8c, 0xd5, 0xd2, 0x0c, 0xf4, 0x75, 0xa4, 0x8b, 0xcd, 0x4a, 0x3f, 0xea, 0x4a, 0x3f, 0x33, + 0xa0, 0x94, 0x1b, 0x88, 0x75, 0x6d, 0xc1, 0xe5, 0xc4, 0xac, 0xeb, 0x43, 0xb9, 0x9e, 0x16, 0x80, + 0xf8, 0x0e, 0x4b, 0x78, 0x2c, 0x89, 0xc0, 0x97, 0x87, 0xa5, 0xf1, 0xf8, 0x89, 0xe8, 0x55, 0xea, + 0x8c, 0xc8, 0xd8, 0x80, 0x5f, 0xc3, 0xab, 0xe6, 0x21, 0x93, 0xa1, 0x57, 0xeb, 0xde, 0x40, 0x8f, + 0x60, 0x22, 0xb9, 0x7c, 0xa2, 0x4b, 0x2d, 0xbd, 0x84, 0x58, 0x53, 0x69, 0x2c, 0x8c, 0x58, 0x3d, + 0x17, 0x21, 0x39, 0x1d, 0xef, 0x95, 0x5f, 0x01, 0xce, 0xab, 0x1d, 0xc9, 0x17, 0x06, 0x5c, 0x8e, + 0xdf, 0xeb, 0x64, 0x3e, 0xbd, 0x45, 0xde, 0xc7, 0x82, 0xb9, 0xd0, 0x87, 0xa7, 0x06, 0xa5, 0xe5, + 0x4f, 0x7f, 0xfb, 0xeb, 0xcb, 0xc1, 0x3b, 0xe4, 0x96, 0x9d, 0xfa, 0x2c, 0xd9, 0x51, 0xde, 0x65, + 0x7d, 0x03, 0xdb, 0x07, 0xea, 0x58, 0x9e, 0x91, 0xaf, 0x0d, 0xb8, 0x9a, 0xbc, 0x81, 0xc8, 0x62, + 0x66, 0xb2, 0xcc, 0xab, 0xd4, 0x5c, 0xea, 0xcb, 0xf7, 0x2c, 0x34, 0xd4, 0x70, 0x5b, 0x31, 0x75, + 0xd1, 0x7e, 0x88, 0xa3, 0x69, 0xe9, 0x3e, 0x03, 0x2d, 0x2e, 0x51, 0x67, 0xa1, 0x25, 0x84, 0x88, + 0xde, 0x53, 0x68, 0x15, 0x62, 0xe7, 0xa1, 0x69, 0x5d, 0xb3, 0x0f, 0x92, 0xaa, 0xf7, 0x8c, 0x7c, + 0x67, 0xc0, 0x68, 0x4a, 0xdd, 0x48, 0x76, 0xe6, 0x6c, 0x25, 0x35, 0xef, 0xf6, 0xe7, 0x8c, 0x9c, + 0x15, 0xc5, 0xb9, 0x44, 0x16, 0xd2, 0x9c, 0x1d, 0xd9, 0xec, 0x25, 0xdc, 0x86, 0x61, 0xfd, 0x79, + 0x44, 0x68, 0x66, 0xaa, 0xc4, 0x17, 0x98, 0x79, 0xf3, 0x54, 0x1f, 0xa4, 0x28, 0x2a, 0x8a, 0x02, + 0x99, 0x4c, 0x53, 0xe8, 0xef, 0x2f, 0xf2, 0x95, 0x01, 0xa3, 0x29, 0xf9, 0xcd, 0x69, 0x4a, 0xb6, + 0x88, 0xe7, 0x34, 0x25, 0x47, 0xd1, 0xe9, 0x82, 0xc2, 0xb9, 0x49, 0x5e, 0x49, 0xe3, 0xa8, 0xf7, + 0xbd, 0xac, 0x04, 0xb9, 0xac, 0x04, 0x99, 0x7c, 0x6b, 0xc0, 0x58, 0x8f, 0xb0, 0x92, 0x72, 0x66, + 0xba, 0x3c, 0x89, 0x36, 0xad, 0x7e, 0xdd, 0x91, 0x6f, 0x51, 0xf1, 0xcd, 0x11, 0x9a, 0xe6, 0x8b, + 0xc9, 0x6b, 0x59, 0xab, 0x38, 0xf9, 0xd1, 0x00, 0xd2, 0x2b, 0x91, 0xc4, 0xca, 0x6f, 0x48, 0x96, + 0x08, 0x9b, 0x76, 0xdf, 0xfe, 0xc8, 0x78, 0x57, 0x31, 0xde, 0x26, 0x73, 0xd9, 0x3d, 0xd4, 0xaf, + 0x41, 0xf7, 0xd5, 0x6c, 0xc3, 0x05, 0x94, 0x3b, 0x92, 0x3d, 0x30, 0x49, 0x55, 0x35, 0xe7, 0x4e, + 0x77, 0x42, 0x86, 0x92, 0x62, 0x98, 0x26, 0x53, 0x69, 0x06, 0xd4, 0xd2, 0xd5, 0x07, 0xcf, 0x8f, + 0x8a, 0xc6, 0x8b, 0xa3, 0xa2, 0xf1, 0xe7, 0x51, 0xd1, 0xf8, 0xfc, 0xb8, 0x38, 0xf0, 0xe2, 0xb8, + 0x38, 0xf0, 0xfb, 0x71, 0x71, 0xe0, 0x43, 0x3b, 0x76, 0xa7, 0x61, 0xb0, 0xcf, 0x64, 0xe7, 0x67, + 0xb9, 0xd6, 0x70, 0x3d, 0xdf, 0xde, 0x53, 0xfb, 0xa9, 0x0b, 0x6e, 0x7d, 0x58, 0xfd, 0x87, 0xf6, + 0xea, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1c, 0x96, 0xa9, 0xd1, 0x69, 0x0e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2186,121 +2159,11 @@ func (m *QueryMetricsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l { - size := m.MetaMiningReward.Size() - i -= size - if _, err := m.MetaMiningReward.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x62 - { - size := m.ResourceMiningReward.Size() - i -= size - if _, err := m.ResourceMiningReward.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x5a - { - size := m.ChainMiningReward.Size() - i -= size - if _, err := m.ChainMiningReward.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x52 - { - size := m.TotalMiningReward.Size() - i -= size - if _, err := m.TotalMiningReward.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x4a - { - size := m.CirculationSupply.Size() - i -= size - if _, err := m.CirculationSupply.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x42 - { - size := m.TotalUnbondingDelegation.Size() - i -= size - if _, err := m.TotalUnbondingDelegation.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x3a - { - size := m.TotalUnbondedDelegation.Size() - i -= size - if _, err := m.TotalUnbondedDelegation.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x32 - { - size := m.TotalBondedDelegation.Size() - i -= size - if _, err := m.TotalBondedDelegation.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x2a - { - size := m.TotalResourceNodesDeposit.Size() - i -= size - if _, err := m.TotalResourceNodesDeposit.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x22 - { - size := m.TotalMinedTokens.Size() - i -= size - if _, err := m.TotalMinedTokens.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x1a - { - size := m.TotalMiningSupply.Size() - i -= size - if _, err := m.TotalMiningSupply.MarshalTo(dAtA[i:]); err != nil { + size, err := m.Metrics.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { return 0, err } - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0x12 - { - size := m.TotalSupply.Size() i -= size - if _, err := m.TotalSupply.MarshalTo(dAtA[i:]); err != nil { - return 0, err - } i = encodeVarintQuery(dAtA, i, uint64(size)) } i-- @@ -2600,29 +2463,7 @@ func (m *QueryMetricsResponse) Size() (n int) { } var l int _ = l - l = m.TotalSupply.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.TotalMiningSupply.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.TotalMinedTokens.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.TotalResourceNodesDeposit.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.TotalBondedDelegation.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.TotalUnbondedDelegation.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.TotalUnbondingDelegation.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.CirculationSupply.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.TotalMiningReward.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.ChainMiningReward.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.ResourceMiningReward.Size() - n += 1 + l + sovQuery(uint64(l)) - l = m.MetaMiningReward.Size() + l = m.Metrics.Size() n += 1 + l + sovQuery(uint64(l)) return n } @@ -4404,383 +4245,9 @@ func (m *QueryMetricsResponse) Unmarshal(dAtA []byte) error { switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalSupply", 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.TotalSupply.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalMiningSupply", 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.TotalMiningSupply.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalMinedTokens", 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.TotalMinedTokens.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalResourceNodesDeposit", 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.TotalResourceNodesDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalBondedDelegation", 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.TotalBondedDelegation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalUnbondedDelegation", 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.TotalUnbondedDelegation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalUnbondingDelegation", 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.TotalUnbondingDelegation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CirculationSupply", 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.CirculationSupply.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TotalMiningReward", 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.TotalMiningReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 10: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ChainMiningReward", 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.ChainMiningReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 11: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ResourceMiningReward", 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.ResourceMiningReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 12: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MetaMiningReward", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) } - var stringLen uint64 + var msglen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowQuery @@ -4790,23 +4257,22 @@ func (m *QueryMetricsResponse) 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.MetaMiningReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.Metrics.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex diff --git a/x/pot/types/query.pb.gw.go b/x/pot/types/query.pb.gw.go index 7bbf494f..e1a2bae4 100644 --- a/x/pot/types/query.pb.gw.go +++ b/x/pot/types/query.pb.gw.go @@ -375,6 +375,24 @@ func local_request_Query_TotalRewardByEpoch_0(ctx context.Context, marshaler run } +func request_Query_Metrics_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryMetricsRequest + var metadata runtime.ServerMetadata + + msg, err := client.Metrics(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_Metrics_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryMetricsRequest + var metadata runtime.ServerMetadata + + msg, err := server.Metrics(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterQueryHandlerServer registers the http handlers for service Query to "mux". // UnaryRPC :call QueryServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -565,6 +583,29 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_Metrics_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Query_Metrics_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_Metrics_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -766,6 +807,26 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_Metrics_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Query_Metrics_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Query_Metrics_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -785,6 +846,8 @@ var ( pattern_Query_CirculationSupply_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "circulation-supply"}, "", runtime.AssumeColonVerbOpt(false))) pattern_Query_TotalRewardByEpoch_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"stratos", "pot", "v1", "total-reward", "epoch"}, "", runtime.AssumeColonVerbOpt(false))) + + pattern_Query_Metrics_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"stratos", "pot", "v1", "metrics"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( @@ -803,4 +866,6 @@ var ( forward_Query_CirculationSupply_0 = runtime.ForwardResponseMessage forward_Query_TotalRewardByEpoch_0 = runtime.ForwardResponseMessage + + forward_Query_Metrics_0 = runtime.ForwardResponseMessage ) From da6ce69d2a228eb2fcab6a933c14a12f179dfd44 Mon Sep 17 00:00:00 2001 From: Xiong Date: Mon, 30 Oct 2023 14:32:31 -0400 Subject: [PATCH 08/15] migrate update --- Makefile | 2 +- app/ante/fee.go | 140 -------------------- app/ante/handler_options.go | 32 ++--- app/ante/validator_tx_fee.go | 12 +- app/app.go | 37 ++++-- app/upgrades.go | 6 +- app/upgrades/upgrade.go | 13 ++ app/upgrades/v012/upgrade.go | 151 ++++++++++++++++++++++ x/evm/handler.go | 29 ----- x/pot/handler.go | 37 ------ x/pot/types/events.go | 21 --- x/pot/types/querier.go | 71 ---------- x/pot/types/query.go | 22 ++++ x/register/handler.go | 56 -------- x/register/types/events.go | 41 ------ x/register/types/{querier.go => query.go} | 45 ------- x/sds/handler.go | 32 ----- x/sds/types/events.go | 17 --- 18 files changed, 246 insertions(+), 518 deletions(-) delete mode 100644 app/ante/fee.go create mode 100644 app/upgrades/upgrade.go create mode 100644 app/upgrades/v012/upgrade.go delete mode 100644 x/evm/handler.go delete mode 100644 x/pot/handler.go delete mode 100644 x/pot/types/events.go delete mode 100644 x/pot/types/querier.go create mode 100644 x/pot/types/query.go delete mode 100644 x/register/handler.go delete mode 100644 x/register/types/events.go rename x/register/types/{querier.go => query.go} (72%) delete mode 100644 x/sds/handler.go delete mode 100644 x/sds/types/events.go diff --git a/Makefile b/Makefile index 77f1a270..ec48d1c4 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ BUILDDIR ?= $(CURDIR)/build LEDGER_ENABLED ?= false -APP_VER := v0.11.2 +APP_VER := v0.12.0 COMMIT := $(GIT_COMMIT_HASH) TEST_DOCKER_REPO=stratos-chain-e2e diff --git a/app/ante/fee.go b/app/ante/fee.go deleted file mode 100644 index d1226dfc..00000000 --- a/app/ante/fee.go +++ /dev/null @@ -1,140 +0,0 @@ -package ante - -import ( - "fmt" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/cosmos/cosmos-sdk/x/auth/types" -) - -// TxFeeChecker check if the provided fee is enough and returns the effective fee and tx priority, -// the effective fee should be deducted later, and the priority should be returned in abci response. -type TxFeeChecker func(ctx sdk.Context, tx sdk.Tx) (sdk.Coins, int64, error) - -// DeductFeeDecorator deducts fees from the fee payer. The fee payer is the fee granter (if specified) or first signer of the tx. -// If the fee payer does not have the funds to pay for the fees, return an InsufficientFunds error. -// Call next AnteHandler if fees successfully deducted. -// CONTRACT: Tx must implement FeeTx interface to use DeductFeeDecorator -type DeductFeeDecorator struct { - accountKeeper AccountKeeper - bankKeeper types.BankKeeper - feegrantKeeper FeegrantKeeper - txFeeChecker TxFeeChecker -} - -func NewDeductFeeDecorator(ak AccountKeeper, bk types.BankKeeper, fk FeegrantKeeper, tfc TxFeeChecker) DeductFeeDecorator { - if tfc == nil { - tfc = checkTxFeeWithValidatorMinGasPrices - } - - return DeductFeeDecorator{ - accountKeeper: ak, - bankKeeper: bk, - feegrantKeeper: fk, - txFeeChecker: tfc, - } -} - -func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) { - feeTx, ok := tx.(sdk.FeeTx) - if !ok { - return ctx, errors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") - } - - if !simulate && ctx.BlockHeight() > 0 && feeTx.GetGas() == 0 { - return ctx, errors.Wrap(sdkerrors.ErrInvalidGasLimit, "must provide positive gas") - } - - var ( - priority int64 - err error - ) - - fee, err := sdk.ParseCoinsNormalized(feeTx.GetFee().String()) - if err != nil { - return ctx, errors.Wrapf(sdkerrors.ErrInsufficientFee, "fee parsing error: %s", fee) - } - if !simulate { - fee, priority, err = dfd.txFeeChecker(ctx, tx) - if err != nil { - return ctx, err - } - } - if err := dfd.checkDeductFee(ctx, tx, fee); err != nil { - return ctx, err - } - - newCtx := ctx.WithPriority(priority) - - return next(newCtx, tx, simulate) -} - -func (dfd DeductFeeDecorator) checkDeductFee(ctx sdk.Context, sdkTx sdk.Tx, fee sdk.Coins) error { - feeTx, ok := sdkTx.(sdk.FeeTx) - if !ok { - return errors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") - } - - if addr := dfd.accountKeeper.GetModuleAddress(types.FeeCollectorName); addr == nil { - return fmt.Errorf("fee collector module account (%s) has not been set", types.FeeCollectorName) - } - - feePayer := feeTx.FeePayer() - feeGranter := feeTx.FeeGranter() - deductFeesFrom := feePayer - - // if feegranter set deduct fee from feegranter account. - // this works with only when feegrant enabled. - if feeGranter != nil { - if dfd.feegrantKeeper == nil { - return sdkerrors.ErrInvalidRequest.Wrap("fee grants are not enabled") - } else if !feeGranter.Equals(feePayer) { - err := dfd.feegrantKeeper.UseGrantedFees(ctx, feeGranter, feePayer, fee, sdkTx.GetMsgs()) - if err != nil { - return errors.Wrapf(err, "%s does not allow to pay fees for %s", feeGranter, feePayer) - } - } - - deductFeesFrom = feeGranter - } - - deductFeesFromAcc := dfd.accountKeeper.GetAccount(ctx, deductFeesFrom) - if deductFeesFromAcc == nil { - return sdkerrors.ErrUnknownAddress.Wrapf("fee payer address: %s does not exist", deductFeesFrom) - } - - // deduct the fees - if !fee.IsZero() { - err := DeductFees(dfd.bankKeeper, ctx, deductFeesFromAcc, fee) - if err != nil { - return err - } - } - - events := sdk.Events{ - sdk.NewEvent( - sdk.EventTypeTx, - sdk.NewAttribute(sdk.AttributeKeyFee, fee.String()), - sdk.NewAttribute(sdk.AttributeKeyFeePayer, deductFeesFrom.String()), - ), - } - ctx.EventManager().EmitEvents(events) - - return nil -} - -// DeductFees deducts fees from the given account. -func DeductFees(bankKeeper types.BankKeeper, ctx sdk.Context, acc types.AccountI, fees sdk.Coins) error { - if !fees.IsValid() { - return errors.Wrapf(sdkerrors.ErrInsufficientFee, "invalid fee amount: %s", fees) - } - - err := bankKeeper.SendCoinsFromAccountToModule(ctx, acc.GetAddress(), types.FeeCollectorName, fees) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInsufficientFunds, err.Error()) - } - - return nil -} diff --git a/app/ante/handler_options.go b/app/ante/handler_options.go index 0318adce..ae859cd6 100644 --- a/app/ante/handler_options.go +++ b/app/ante/handler_options.go @@ -5,7 +5,7 @@ import ( sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" "github.com/cosmos/cosmos-sdk/types/tx/signing" - "github.com/cosmos/cosmos-sdk/x/auth/ante" + authante "github.com/cosmos/cosmos-sdk/x/auth/ante" authsigning "github.com/cosmos/cosmos-sdk/x/auth/signing" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -20,14 +20,14 @@ import ( type HandlerOptions struct { AccountKeeper evmtypes.AccountKeeper BankKeeper evmtypes.BankKeeper - ExtensionOptionChecker ante.ExtensionOptionChecker + ExtensionOptionChecker authante.ExtensionOptionChecker IBCKeeper *ibckeeper.Keeper EvmKeeper EVMKeeper - FeegrantKeeper ante.FeegrantKeeper + FeegrantKeeper authante.FeegrantKeeper SignModeHandler authsigning.SignModeHandler SigGasConsumer func(meter sdk.GasMeter, sig signing.SignatureV2, params authtypes.Params) error MaxEthTxGasWanted uint64 - TxFeeChecker TxFeeChecker + TxFeeChecker authante.TxFeeChecker } func (options HandlerOptions) Validate() error { @@ -63,19 +63,19 @@ func newEthAnteHandler(options HandlerOptions) sdk.AnteHandler { func newCosmosAnteHandler(options HandlerOptions) sdk.AnteHandler { return sdk.ChainAnteDecorators( RejectMessagesDecorator{}, // reject MsgEthereumTxs - ante.NewSetUpContextDecorator(), - ante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker), - ante.NewValidateBasicDecorator(), - ante.NewTxTimeoutHeightDecorator(), - ante.NewValidateMemoDecorator(options.AccountKeeper), - ante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper), - NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, options.TxFeeChecker), + authante.NewSetUpContextDecorator(), + authante.NewExtensionOptionsDecorator(options.ExtensionOptionChecker), + authante.NewValidateBasicDecorator(), + authante.NewTxTimeoutHeightDecorator(), + authante.NewValidateMemoDecorator(options.AccountKeeper), + authante.NewConsumeGasForTxSizeDecorator(options.AccountKeeper), + authante.NewDeductFeeDecorator(options.AccountKeeper, options.BankKeeper, options.FeegrantKeeper, options.TxFeeChecker), // SetPubKeyDecorator must be called before all signature verification decorators - ante.NewSetPubKeyDecorator(options.AccountKeeper), - ante.NewValidateSigCountDecorator(options.AccountKeeper), - ante.NewSigGasConsumeDecorator(options.AccountKeeper, options.SigGasConsumer), - ante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler), - ante.NewIncrementSequenceDecorator(options.AccountKeeper), + authante.NewSetPubKeyDecorator(options.AccountKeeper), + authante.NewValidateSigCountDecorator(options.AccountKeeper), + authante.NewSigGasConsumeDecorator(options.AccountKeeper, options.SigGasConsumer), + authante.NewSigVerificationDecorator(options.AccountKeeper, options.SignModeHandler), + authante.NewIncrementSequenceDecorator(options.AccountKeeper), ibcante.NewRedundantRelayDecorator(options.IBCKeeper), ) } diff --git a/app/ante/validator_tx_fee.go b/app/ante/validator_tx_fee.go index 74f295cf..b7ad73b9 100644 --- a/app/ante/validator_tx_fee.go +++ b/app/ante/validator_tx_fee.go @@ -7,17 +7,25 @@ import ( sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + authante "github.com/cosmos/cosmos-sdk/x/auth/ante" ) +var _ authante.TxFeeChecker = CheckTxFeeWithValidatorMinGasPrices + // checkTxFeeWithValidatorMinGasPrices implements the default fee logic, where the minimum price per // unit of gas is fixed and set by each validator, can the tx priority is computed from the gas price. -func checkTxFeeWithValidatorMinGasPrices(ctx sdk.Context, tx sdk.Tx) (sdk.Coins, int64, error) { +func CheckTxFeeWithValidatorMinGasPrices(ctx sdk.Context, tx sdk.Tx) (sdk.Coins, int64, error) { feeTx, ok := tx.(sdk.FeeTx) if !ok { return nil, 0, errors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx") } - feeCoins := feeTx.GetFee() + parsedFee, err := sdk.ParseCoinsNormalized(feeTx.GetFee().String()) + if err != nil { + return nil, 0, errors.Wrapf(sdkerrors.ErrInsufficientFee, "fee parsing error: %s", parsedFee) + } + + feeCoins := parsedFee gas := feeTx.GetGas() // Ensure that the provided fees meet a minimum threshold for the validator, diff --git a/app/app.go b/app/app.go index 91797861..2a973350 100644 --- a/app/app.go +++ b/app/app.go @@ -4,12 +4,11 @@ import ( "io" "os" + "github.com/spf13/cast" + dbm "github.com/cometbft/cometbft-db" abci "github.com/cometbft/cometbft/abci/types" "github.com/cometbft/cometbft/libs/log" - "github.com/spf13/cast" - "github.com/stratosnet/stratos-chain/runtime" - evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" "cosmossdk.io/depinject" "github.com/cosmos/cosmos-sdk/baseapp" @@ -74,8 +73,11 @@ import ( ibctm "github.com/cosmos/ibc-go/v7/modules/light-clients/07-tendermint" "github.com/stratosnet/stratos-chain/app/ante" + "github.com/stratosnet/stratos-chain/app/upgrades" + "github.com/stratosnet/stratos-chain/runtime" srvflags "github.com/stratosnet/stratos-chain/server/flags" evmkeeper "github.com/stratosnet/stratos-chain/x/evm/keeper" + evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" potkeeper "github.com/stratosnet/stratos-chain/x/pot/keeper" registerkeeper "github.com/stratosnet/stratos-chain/x/register/keeper" sdskeeper "github.com/stratosnet/stratos-chain/x/sds/keeper" @@ -408,6 +410,7 @@ func NewStratosApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLates SignModeHandler: app.txConfig.SignModeHandler(), SigGasConsumer: ante.DefaultSigVerificationGasConsumer, MaxEthTxGasWanted: maxEthTxGasWanted, + TxFeeChecker: ante.CheckTxFeeWithValidatorMinGasPrices, } if err := options.Validate(); err != nil { panic(err) @@ -458,6 +461,14 @@ func NewStratosApp(logger log.Logger, db dbm.DB, traceStore io.Writer, loadLates // Name returns the name of the App func (app *StratosApp) Name() string { return app.BaseApp.Name() } +// LegacyAmino returns StratosApp's amino codec. +// +// NOTE: This is solely to be used for testing purposes as it may be desirable +// for modules to register their own custom testing types. +func (app *StratosApp) LegacyAmino() *codec.LegacyAmino { + return app.legacyAmino +} + // SimulationManager implements the SimulationApp interface func (app *StratosApp) SimulationManager() *module.SimulationManager { return app.sm @@ -473,12 +484,19 @@ func (app *StratosApp) RegisterAPIRoutes(apiSvr *api.Server, apiConfig config.AP } } -// LegacyAmino returns StratosApp's amino codec. -// -// NOTE: This is solely to be used for testing purposes as it may be desirable -// for modules to register their own custom testing types. -func (app *StratosApp) LegacyAmino() *codec.LegacyAmino { - return app.legacyAmino +// registerUpgrade registers the given upgrade to be supported by the app +func (app *StratosApp) registerUpgrade(upgrade upgrades.Upgrade) { + app.upgradeKeeper.SetUpgradeHandler(upgrade.Name(), upgrade.Handler()) + + upgradeInfo, err := app.upgradeKeeper.ReadUpgradeInfoFromDisk() + if err != nil { + panic(err) + } + + if upgradeInfo.Name == upgrade.Name() && !app.upgradeKeeper.IsSkipHeight(upgradeInfo.Height) { + // Configure store loader that checks if version == upgradeHeight and applies store upgrades + app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, upgrade.StoreUpgrades())) + } } // AppCodec returns StratosApp's app codec. @@ -544,6 +562,7 @@ func (app *StratosApp) GetPotKeeper() potkeeper.Keeper { func (app *StratosApp) GetDistrKeeper() distrkeeper.Keeper { return app.distrKeeper } + func (app *StratosApp) GetEVMKeeper() *evmkeeper.Keeper { return app.evmKeeper } diff --git a/app/upgrades.go b/app/upgrades.go index 03fdea94..f4fa503c 100644 --- a/app/upgrades.go +++ b/app/upgrades.go @@ -1,6 +1,10 @@ package app +import ( + v012 "github.com/stratosnet/stratos-chain/app/upgrades/v012" +) + // registerUpgradeHandlers registers all the upgrade handlers that are supported by the app func (app *StratosApp) registerUpgradeHandlers() { - + app.registerUpgrade(v012.NewUpgrade(app.ModuleManager, app.Configurator(), app.paramsKeeper, app.consensusKeeper)) } diff --git a/app/upgrades/upgrade.go b/app/upgrades/upgrade.go new file mode 100644 index 00000000..0e2df775 --- /dev/null +++ b/app/upgrades/upgrade.go @@ -0,0 +1,13 @@ +package upgrades + +import ( + storetypes "github.com/cosmos/cosmos-sdk/store/types" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" +) + +// Upgrade represents a generic on-chain upgrade +type Upgrade interface { + Name() string + Handler() upgradetypes.UpgradeHandler + StoreUpgrades() *storetypes.StoreUpgrades +} diff --git a/app/upgrades/v012/upgrade.go b/app/upgrades/v012/upgrade.go new file mode 100644 index 00000000..f15f7804 --- /dev/null +++ b/app/upgrades/v012/upgrade.go @@ -0,0 +1,151 @@ +package v012 + +import ( + "github.com/cosmos/cosmos-sdk/baseapp" + storetypes "github.com/cosmos/cosmos-sdk/store/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + consensuskeeper "github.com/cosmos/cosmos-sdk/x/consensus/keeper" + consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" + crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" + distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" + govtypesv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper" + paramstypes "github.com/cosmos/cosmos-sdk/x/params/types" + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" + + icacontrollertypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/controller/types" + icahosttypes "github.com/cosmos/ibc-go/v7/modules/apps/27-interchain-accounts/host/types" + ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types" + ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types" + + "github.com/stratosnet/stratos-chain/app/upgrades" + evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" + pottypes "github.com/stratosnet/stratos-chain/x/pot/types" + registertypes "github.com/stratosnet/stratos-chain/x/register/types" + sdstypes "github.com/stratosnet/stratos-chain/x/sds/types" +) + +var ( + _ upgrades.Upgrade = &Upgrade{} +) + +// Upgrade represents the v0.12.0 upgrade +type Upgrade struct { + mm *module.Manager + configurator module.Configurator + paramsKeeper paramskeeper.Keeper + consensusKeeper consensuskeeper.Keeper +} + +// NewUpgrade returns a new Upgrade instance +func NewUpgrade( + mm *module.Manager, + configurator module.Configurator, + pk paramskeeper.Keeper, + consensusKeeper consensuskeeper.Keeper, +) *Upgrade { + return &Upgrade{ + mm: mm, + configurator: configurator, + paramsKeeper: pk, + consensusKeeper: consensusKeeper, + } +} + +// Name implements upgrades.Upgrade +func (u *Upgrade) Name() string { + return "v0.12.0" +} + +// Handler implements upgrades.Upgrade +func (u *Upgrade) Handler() upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + + // Set param key table for params module migration + for _, subspace := range u.paramsKeeper.GetSubspaces() { + subspace := subspace + + var keyTable paramstypes.KeyTable + switch subspace.Name() { + case authtypes.ModuleName: + //nolint:staticcheck + keyTable = authtypes.ParamKeyTable() + case banktypes.ModuleName: + //nolint:staticcheck + keyTable = banktypes.ParamKeyTable() + case stakingtypes.ModuleName: + keyTable = stakingtypes.ParamKeyTable() + case minttypes.ModuleName: + //nolint:staticcheck + keyTable = minttypes.ParamKeyTable() + case distrtypes.ModuleName: + //nolint:staticcheck + keyTable = distrtypes.ParamKeyTable() + case slashingtypes.ModuleName: + //nolint:staticcheck + keyTable = slashingtypes.ParamKeyTable() + case govtypes.ModuleName: + //nolint:staticcheck + keyTable = govtypesv1.ParamKeyTable() + case crisistypes.ModuleName: + //nolint:staticcheck + keyTable = crisistypes.ParamKeyTable() + + // ibc + case ibctransfertypes.ModuleName: + keyTable = ibctransfertypes.ParamKeyTable() + case icahosttypes.SubModuleName: + keyTable = icahosttypes.ParamKeyTable() + case icacontrollertypes.SubModuleName: + keyTable = icacontrollertypes.ParamKeyTable() + + // stratos + case registertypes.ModuleName: + keyTable = registertypes.ParamKeyTable() + case pottypes.ModuleName: + keyTable = pottypes.ParamKeyTable() + case sdstypes.ModuleName: + keyTable = sdstypes.ParamKeyTable() + case evmtypes.ModuleName: + keyTable = evmtypes.ParamKeyTable() + + // Skip if module is not migration target + default: + continue + } + + if !subspace.HasKeyTable() { + subspace.WithKeyTable(keyTable) + } + } + + // Migrate Tendermint consensus parameters from x/params module to a dedicated x/consensus module. + baseAppLegacySS := u.paramsKeeper.Subspace(baseapp.Paramspace).WithKeyTable(paramstypes.ConsensusParamsKeyTable()) + baseapp.MigrateParams(ctx, baseAppLegacySS, &u.consensusKeeper) + + return u.mm.RunMigrations(ctx, u.configurator, fromVM) + } +} + +// StoreUpgrades implements upgrades.Upgrade +func (u *Upgrade) StoreUpgrades() *storetypes.StoreUpgrades { + return &storetypes.StoreUpgrades{ + Added: []string{ + // New IBC features integration upgrades + ibcfeetypes.StoreKey, + icacontrollertypes.StoreKey, + icahosttypes.StoreKey, + + // Cosmos SDK v0.47.x upgrades + consensustypes.ModuleName, + }, + Deleted: []string{}, + } +} diff --git a/x/evm/handler.go b/x/evm/handler.go deleted file mode 100644 index 207a2c38..00000000 --- a/x/evm/handler.go +++ /dev/null @@ -1,29 +0,0 @@ -package evm - -import ( - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - - "github.com/stratosnet/stratos-chain/x/evm/types" -) - -// NewHandler returns a handler for stratos type messages. -func NewHandler(server types.MsgServer) sdk.Handler { - return func(ctx sdk.Context, msg sdk.Msg) (result *sdk.Result, err error) { - ctx = ctx.WithEventManager(sdk.NewEventManager()) - - switch msg := msg.(type) { - case *types.MsgEthereumTx: - // execute state transition - res, err := server.EthereumTx(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgUpdateParams: - res, err := server.UpdateParams(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - default: - err := errors.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized %s message type: %T", types.ModuleName, msg) - return nil, err - } - } -} diff --git a/x/pot/handler.go b/x/pot/handler.go deleted file mode 100644 index 2541a00f..00000000 --- a/x/pot/handler.go +++ /dev/null @@ -1,37 +0,0 @@ -package pot - -import ( - "fmt" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/stratosnet/stratos-chain/x/pot/keeper" - "github.com/stratosnet/stratos-chain/x/pot/types" -) - -// NewHandler ... -func NewHandler(k keeper.Keeper) sdk.Handler { - msgServer := keeper.NewMsgServerImpl(k) - - return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) { - ctx = ctx.WithEventManager(sdk.NewEventManager()) - switch msg := msg.(type) { - case *types.MsgVolumeReport: - res, err := msgServer.HandleMsgVolumeReport(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgWithdraw: - res, err := msgServer.HandleMsgWithdraw(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgFoundationDeposit: - res, err := msgServer.HandleMsgFoundationDeposit(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgSlashingResourceNode: - res, err := msgServer.HandleMsgSlashingResourceNode(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - default: - errMsg := fmt.Sprintf("unrecognized %s message type: %T", types.ModuleName, msg) - return nil, errors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) - } - } -} diff --git a/x/pot/types/events.go b/x/pot/types/events.go deleted file mode 100644 index db7d245e..00000000 --- a/x/pot/types/events.go +++ /dev/null @@ -1,21 +0,0 @@ -package types - -// pot module event types -const ( - EventTypeVolumeReport = "volume_report" - EventTypeWithdraw = "withdraw" - EventTypeLegacyWithdraw = "legacy_withdraw" - EventTypeFoundationDeposit = "foundation_deposit" - EventTypeSlashing = "slashing" - - AttributeKeyEpoch = "epoch" - AttributeKeyReportReference = "report_reference" - AttributeKeyAmount = "amount" - AttributeKeyWalletAddress = "wallet_address" - AttributeKeyLegacyWalletAddress = "legacy_wallet_address" - AttributeKeyNodeP2PAddress = "p2p_address" - AttributeKeySlashingNodeType = "slashing_type" - AttributeKeyNodeSuspended = "suspend" - - AttributeValueCategory = ModuleName -) diff --git a/x/pot/types/querier.go b/x/pot/types/querier.go deleted file mode 100644 index 6558112e..00000000 --- a/x/pot/types/querier.go +++ /dev/null @@ -1,71 +0,0 @@ -package types - -import ( - sdkmath "cosmossdk.io/math" - sdk "github.com/cosmos/cosmos-sdk/types" -) - -const ( - QueryVolumeReport = "query_volume_report" - QueryIndividualRewardsByReportEpoch = "query_pot_individual_rewards_by_report_epoch" - QueryRewardsByWalletAddr = "query_pot_rewards_by_wallet_address" - QuerySlashingByWalletAddr = "query_pot_slashing_by_wallet_address" - QueryPotParams = "query_pot_params" - QueryTotalMinedToken = "query_total_mined_token" - QueryCirculationSupply = "query_circulation_supply" - QueryTotalRewardByEpoch = "total-reward" - QueryMetrics = "metrics" - QueryDefaultLimit = 100 -) - -// NewRewardInfo creates a new instance of PotRewardInfo -func NewRewardInfo( - walletAddress sdk.AccAddress, - matureTotal sdk.Coins, - immatureTotal sdk.Coins, -) RewardByOwner { - return RewardByOwner{ - WalletAddress: walletAddress.String(), - MatureTotalReward: matureTotal, - ImmatureTotalReward: immatureTotal, - } -} - -type QueryIndividualRewardsByReportEpochParams struct { - Page int - Limit int - Epoch sdkmath.Int -} - -// NewQueryIndividualRewardsByEpochParams creates a new instance of QueryIndividualRewardsByReportEpochParams -func NewQueryIndividualRewardsByEpochParams(page, limit int, epoch sdkmath.Int) QueryIndividualRewardsByReportEpochParams { - return QueryIndividualRewardsByReportEpochParams{ - Page: page, - Limit: limit, - Epoch: epoch, - } -} - -type QueryRewardsByWalletAddrParams struct { - WalletAddr sdk.AccAddress - Height int64 - Epoch sdkmath.Int -} - -func NewQueryRewardsByWalletAddrParams(walletAddr sdk.AccAddress, height int64, epoch sdkmath.Int) QueryRewardsByWalletAddrParams { - return QueryRewardsByWalletAddrParams{ - WalletAddr: walletAddr, - Height: height, - Epoch: epoch, - } -} - -type QueryTotalRewardByEpochParams struct { - Epoch sdkmath.Int -} - -func NewQueryTotalRewardByEpochParams(epoch sdkmath.Int) QueryTotalRewardByEpochParams { - return QueryTotalRewardByEpochParams{ - Epoch: epoch, - } -} diff --git a/x/pot/types/query.go b/x/pot/types/query.go new file mode 100644 index 00000000..d5048b8b --- /dev/null +++ b/x/pot/types/query.go @@ -0,0 +1,22 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" +) + +const ( + QueryDefaultLimit = 100 +) + +// NewRewardInfo creates a new instance of PotRewardInfo +func NewRewardInfo( + walletAddress sdk.AccAddress, + matureTotal sdk.Coins, + immatureTotal sdk.Coins, +) RewardByOwner { + return RewardByOwner{ + WalletAddress: walletAddress.String(), + MatureTotalReward: matureTotal, + ImmatureTotalReward: immatureTotal, + } +} diff --git a/x/register/handler.go b/x/register/handler.go deleted file mode 100644 index da0d03f6..00000000 --- a/x/register/handler.go +++ /dev/null @@ -1,56 +0,0 @@ -package register - -import ( - "fmt" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/stratosnet/stratos-chain/x/register/keeper" - "github.com/stratosnet/stratos-chain/x/register/types" -) - -// NewHandler ... -func NewHandler(k keeper.Keeper) sdk.Handler { - msgServer := keeper.NewMsgServerImpl(k) - - return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) { - ctx = ctx.WithEventManager(sdk.NewEventManager()) - switch msg := msg.(type) { - case *types.MsgCreateResourceNode: - res, err := msgServer.HandleMsgCreateResourceNode(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgRemoveResourceNode: - res, err := msgServer.HandleMsgRemoveResourceNode(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgUpdateResourceNode: - res, err := msgServer.HandleMsgUpdateResourceNode(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgUpdateResourceNodeDeposit: - res, err := msgServer.HandleMsgUpdateResourceNodeDeposit(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgUpdateEffectiveDeposit: - res, err := msgServer.HandleMsgUpdateEffectiveDeposit(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - - case *types.MsgCreateMetaNode: - res, err := msgServer.HandleMsgCreateMetaNode(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgRemoveMetaNode: - res, err := msgServer.HandleMsgRemoveMetaNode(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgUpdateMetaNode: - res, err := msgServer.HandleMsgUpdateMetaNode(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgUpdateMetaNodeDeposit: - res, err := msgServer.HandleMsgUpdateMetaNodeDeposit(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgMetaNodeRegistrationVote: - res, err := msgServer.HandleMsgMetaNodeRegistrationVote(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - default: - errMsg := fmt.Sprintf("unrecognized %s message type: %T", types.ModuleName, msg) - return nil, errors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) - } - } -} diff --git a/x/register/types/events.go b/x/register/types/events.go deleted file mode 100644 index 82c3a6f3..00000000 --- a/x/register/types/events.go +++ /dev/null @@ -1,41 +0,0 @@ -package types - -const ( - EventTypeCompleteUnbondingResourceNode = "complete_unbonding_resource_node" - EventTypeCompleteUnbondingMetaNode = "complete_unbonding_meta_node" - - EventTypeCreateResourceNode = "create_resource_node" - EventTypeUnbondingResourceNode = "unbonding_resource_node" - EventTypeUpdateResourceNode = "update_resource_node" - EventTypeUpdateResourceNodeDeposit = "update_resource_node_deposit" - EventTypeUpdateEffectiveDeposit = "update_effective_deposit" - EventTypeCreateMetaNode = "create_meta_node" - EventTypeUnbondingMetaNode = "unbonding_Meta_node" - EventTypeUpdateMetaNode = "update_meta_node" - EventTypeUpdateMetaNodeDeposit = "update_meta_node_deposit" - EventTypeMetaNodeRegistrationVote = "meta_node_reg_vote" - EventTypeWithdrawMetaNodeRegistrationDeposit = "withdraw_meta_node_reg_deposit" - - AttributeKeyResourceNode = "resource_node" - AttributeKeyMetaNode = "meta_node" - AttributeKeyNetworkAddress = "network_address" - AttributeKeyPubKey = "pub_key" - AttributeKeyCandidateNetworkAddress = "candidate_network_address" - AttributeKeyVoterNetworkAddress = "voter_network_address" - AttributeKeyCandidateStatus = "candidate_status" - - AttributeKeyUnbondingMatureTime = "unbonding_mature_time" - - AttributeKeyOZoneLimitChanges = "ozone_limit_changes" - AttributeKeyInitialDeposit = "initial_deposit" - AttributeKeyCurrentDeposit = "current_deposit" - AttributeKeyAvailableTokenBefore = "available_token_before" - AttributeKeyAvailableTokenAfter = "available_token_after" - AttributeKeyDepositDelta = "deposit_delta" - AttributeKeyDepositToRemove = "deposit_to_remove" - AttributeKeyIncrDeposit = "incr_deposit" - AttributeKeyEffectiveDepositAfter = "effective_deposit_after" - AttributeKeyIsUnsuspended = "is_unsuspended" - - AttributeValueCategory = ModuleName -) diff --git a/x/register/types/querier.go b/x/register/types/query.go similarity index 72% rename from x/register/types/querier.go rename to x/register/types/query.go index a4ee109b..3385bf64 100644 --- a/x/register/types/querier.go +++ b/x/register/types/query.go @@ -5,9 +5,6 @@ import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" sdk "github.com/cosmos/cosmos-sdk/types" - pagiquery "github.com/cosmos/cosmos-sdk/types/query" - - stratos "github.com/stratosnet/stratos-chain/types" ) const ( @@ -17,37 +14,6 @@ const ( QueryDefaultLimit = 100 ) -// QueryNodesParams Params for query 'custom/register/resource-nodes' -type QueryNodesParams struct { - PageQuery pagiquery.PageRequest - NetworkAddr stratos.SdsAddress - Moniker string - OwnerAddr sdk.AccAddress -} - -// NewQueryNodesParams creates a new instance of QueryNodesParams -func NewQueryNodesParams(networkAddr stratos.SdsAddress, moniker string, ownerAddr sdk.AccAddress, pageQuery pagiquery.PageRequest) QueryNodesParams { - return QueryNodesParams{ - PageQuery: pageQuery, - NetworkAddr: networkAddr, - Moniker: moniker, - OwnerAddr: ownerAddr, - } -} - -type QueryNodeDepositParams struct { - AccAddr stratos.SdsAddress - QueryType int64 //0:All(Default) 1: MetaNode; 2: ResourceNode -} - -// NewQueryNodeDepositParams creates a new instance of QueryNodesParams -func NewQueryNodeDepositParams(nodeAddr stratos.SdsAddress, queryType int64) QueryNodeDepositParams { - return QueryNodeDepositParams{ - AccAddr: nodeAddr, - QueryType: queryType, - } -} - // NewQueryDepositTotalInfo creates a new instance of QueryDepositTotalResponse func NewQueryDepositTotalInfo(bondDenom string, ResourceNodeTotalDeposit, MetaNodeTotalDeposit, totalBondedDeposit, totalUnbondedDeposit, totalUnbondingDeposit sdkmath.Int) *QueryDepositTotalResponse { @@ -123,19 +89,8 @@ func NewDepositInfoByMetaNodeAddr( } } -type DepositInfos []DepositInfo - // UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces func (v DepositInfo) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error { var pk cryptotypes.PubKey return unpacker.UnpackAny(v.Pubkey, &pk) } - -func (v DepositInfos) UnpackInterfaces(c codectypes.AnyUnpacker) error { - for i := range v { - if err := v[i].UnpackInterfaces(c); err != nil { - return err - } - } - return nil -} diff --git a/x/sds/handler.go b/x/sds/handler.go deleted file mode 100644 index 1a04872a..00000000 --- a/x/sds/handler.go +++ /dev/null @@ -1,32 +0,0 @@ -package sds - -import ( - "fmt" - - "cosmossdk.io/errors" - sdk "github.com/cosmos/cosmos-sdk/types" - sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" - "github.com/stratosnet/stratos-chain/x/sds/keeper" - "github.com/stratosnet/stratos-chain/x/sds/types" -) - -// NewHandler ... -func NewHandler(k keeper.Keeper) sdk.Handler { - msgServer := keeper.NewMsgServerImpl(k) - - return func(ctx sdk.Context, msg sdk.Msg) (*sdk.Result, error) { - ctx = ctx.WithEventManager(sdk.NewEventManager()) - switch msg := msg.(type) { - case *types.MsgFileUpload: - res, err := msgServer.HandleMsgFileUpload(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - case *types.MsgPrepay: - res, err := msgServer.HandleMsgPrepay(sdk.WrapSDKContext(ctx), msg) - return sdk.WrapServiceResult(ctx, res, err) - - default: - errMsg := fmt.Sprintf("unrecognized %s message type: %T", types.ModuleName, msg) - return nil, errors.Wrap(sdkerrors.ErrUnknownRequest, errMsg) - } - } -} diff --git a/x/sds/types/events.go b/x/sds/types/events.go deleted file mode 100644 index 60ced2c9..00000000 --- a/x/sds/types/events.go +++ /dev/null @@ -1,17 +0,0 @@ -package types - -// sds module event types -const ( - EventTypeFileUpload = "FileUpload" - EventTypePrepay = "Prepay" - - AttributeKeyReporter = "reporter" - AttributeKeyFileHash = "file_hash" - AttributeKeyUploader = "uploader" - - AttributeKeyAmount = "amount" - AttributeKeyPurchasedNoz = "purchased_noz" - AttributeKeyBeneficiary = "beneficiary" - - AttributeValueCategory = ModuleName -) From 19d1774c3abd53af2a1ec06a19fe85592c2e71e0 Mon Sep 17 00:00:00 2001 From: Xixiong Chen <60588630+Xiong-stratos@users.noreply.github.com> Date: Wed, 1 Nov 2023 10:24:51 -0400 Subject: [PATCH 09/15] Feat/Qb-2063: Add sp beneficiary address (#311) * Add beneficiary address to meta node * update cli & rest api * update version to v0.12.0 * solve conflicts --------- Co-authored-by: alexstratos <58865166+alexstratos@users.noreply.github.com> --- proto/stratos/register/v1/genesis.proto | 6 +- proto/stratos/register/v1/register.proto | 8 +- proto/stratos/register/v1/tx.proto | 16 +- x/pot/app_benchmark_test.go | 3 +- x/pot/app_test.go | 70 +- x/pot/keeper/distribute.go | 10 +- x/register/client/cli/flags.go | 14 +- x/register/client/cli/tx.go | 26 +- x/register/keeper/genesis.go | 5 + x/register/keeper/meta_node.go | 10 +- x/register/keeper/msg_server.go | 26 +- x/register/legacy/v011/keys.go | 5 + x/register/legacy/v011/meta_node.go | 28 + x/register/legacy/v011/register.pb.go | 3428 ++++++++++++++++++++++ x/register/legacy/v011/store.go | 45 +- x/register/types/errors.go | 2 + x/register/types/genesis.go | 24 +- x/register/types/genesis.pb.go | 190 +- x/register/types/meta_node.go | 30 +- x/register/types/msg.go | 22 +- x/register/types/register.pb.go | 274 +- x/register/types/tx.pb.go | 337 ++- x/sds/oz_price_test.go | 8 +- 23 files changed, 4216 insertions(+), 371 deletions(-) create mode 100644 x/register/legacy/v011/keys.go create mode 100644 x/register/legacy/v011/meta_node.go create mode 100644 x/register/legacy/v011/register.pb.go diff --git a/proto/stratos/register/v1/genesis.proto b/proto/stratos/register/v1/genesis.proto index b4d8945f..2d1fd46d 100644 --- a/proto/stratos/register/v1/genesis.proto +++ b/proto/stratos/register/v1/genesis.proto @@ -88,7 +88,11 @@ message GenesisMetaNode { (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; // owner address of the meta node - Description description = 7 [ + string beneficiary_address = 7 [ + (gogoproto.jsontag) = "beneficiary_address", + (gogoproto.moretags) = "yaml:\"beneficiary_address\"" + ]; // reward beneficiary address of the meta node + Description description = 8 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.jsontag) = "description", diff --git a/proto/stratos/register/v1/register.proto b/proto/stratos/register/v1/register.proto index e25fcf55..915b038e 100644 --- a/proto/stratos/register/v1/register.proto +++ b/proto/stratos/register/v1/register.proto @@ -151,12 +151,16 @@ message MetaNode { (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; - Description description = 7 [ + string beneficiary_address = 7 [ + (gogoproto.jsontag) = "beneficiary_address", + (gogoproto.moretags) = "yaml:\"beneficiary_address\"" + ]; + Description description = 8 [ (gogoproto.nullable) = false, (gogoproto.jsontag) = "description", (gogoproto.moretags) = "yaml:\"description\"" ]; - google.protobuf.Timestamp creation_time = 8 [ + google.protobuf.Timestamp creation_time = 9 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true, diff --git a/proto/stratos/register/v1/tx.proto b/proto/stratos/register/v1/tx.proto index 568f7dfe..af722f53 100644 --- a/proto/stratos/register/v1/tx.proto +++ b/proto/stratos/register/v1/tx.proto @@ -102,7 +102,12 @@ message MsgCreateMetaNode { (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" ]; - Description description = 5 [ + string beneficiary_address = 5 [ + (cosmos_proto.scalar) = "cosmos.AddressString", + (gogoproto.jsontag) = "beneficiary_address", + (gogoproto.moretags) = "yaml:\"beneficiary_address\"" + ]; + Description description = 6 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.jsontag) = "description", @@ -197,12 +202,17 @@ message MsgUpdateMetaNode { (gogoproto.jsontag) = "description", (gogoproto.moretags) = "yaml:\"description\"" ]; - string network_address = 2 [ + string beneficiary_address = 2 [ + (cosmos_proto.scalar) = "cosmos.AddressString", + (gogoproto.jsontag) = "beneficiary_address", + (gogoproto.moretags) = "yaml:\"beneficiary_address\"" + ]; + string network_address = 3 [ (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "network_address", (gogoproto.moretags) = "yaml:\"network_address\"" ]; - string owner_address = 3 [ + string owner_address = 4 [ (cosmos_proto.scalar) = "cosmos.AddressString", (gogoproto.jsontag) = "owner_address", (gogoproto.moretags) = "yaml:\"owner_address\"" diff --git a/x/pot/app_benchmark_test.go b/x/pot/app_benchmark_test.go index 735cf1e9..c3d5a515 100644 --- a/x/pot/app_benchmark_test.go +++ b/x/pot/app_benchmark_test.go @@ -78,7 +78,7 @@ var ( balances = make([]banktypes.Balance, 0) accInitBalance = sdkmath.NewInt(100).Mul(sdkmath.NewInt(stratos.StosToWei)) - initFoundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Utros, sdkmath.NewInt(40000000000000000))) + initFoundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Wei, sdkmath.NewInt(40000000000000000).MulRaw(stratos.GweiToWei))) nodeInitDeposit = sdkmath.NewInt(1 * stratos.StosToWei) prepayAmt = sdk.NewCoins(stratos.NewCoin(sdkmath.NewInt(20).Mul(sdkmath.NewInt(stratos.StosToWei)))) @@ -227,6 +227,7 @@ func setupNodesBenchmark() (createValidatorMsg *stakingtypes.MsgCreateValidator, keyInfo.P2PAddress(), keyInfo.P2PPubKey(), keyInfo.OwnerAddress(), + keyInfo.OwnerAddress(), registertypes.NewDescription(keyInfo.P2PAddressBech32(), "", "", "", ""), time, ) diff --git a/x/pot/app_test.go b/x/pot/app_test.go index a6e7c479..1c8f8f87 100644 --- a/x/pot/app_test.go +++ b/x/pot/app_test.go @@ -35,8 +35,7 @@ import ( ) const ( - chainID = "testchain_1-1" - rewardDenom = stratos.Utros + chainID = "testchain_1-1" stopFlagOutOfTotalMiningReward = true stopFlagSpecificMinedReward = false @@ -58,29 +57,35 @@ var ( foundationDepositorPrivKey = secp256k1.GenPrivKey() foundationDepositorAccAddr = sdk.AccAddress(foundationDepositorPrivKey.PubKey().Address()) - foundationDeposit = sdk.NewCoins(sdk.NewCoin(rewardDenom, sdkmath.NewInt(40000000000000000))) + foundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Wei, sdkmath.NewInt(40000000000000000).MulRaw(stratos.GweiToWei))) nodeInitialDeposit = sdkmath.NewInt(1 * stratos.StosToWei) initBalance = sdkmath.NewInt(100).Mul(sdkmath.NewInt(stratos.StosToWei)) // wallet private keys - resOwnerPrivKey1 = secp256k1.GenPrivKey() - resOwnerPrivKey2 = secp256k1.GenPrivKey() - resOwnerPrivKey3 = secp256k1.GenPrivKey() - resOwnerPrivKey4 = secp256k1.GenPrivKey() - resOwnerPrivKey5 = secp256k1.GenPrivKey() - metaOwnerPrivKey1 = secp256k1.GenPrivKey() - metaOwnerPrivKey2 = secp256k1.GenPrivKey() - metaOwnerPrivKey3 = secp256k1.GenPrivKey() + resOwnerPrivKey1 = secp256k1.GenPrivKey() + resOwnerPrivKey2 = secp256k1.GenPrivKey() + resOwnerPrivKey3 = secp256k1.GenPrivKey() + resOwnerPrivKey4 = secp256k1.GenPrivKey() + resOwnerPrivKey5 = secp256k1.GenPrivKey() + metaOwnerPrivKey1 = secp256k1.GenPrivKey() + metaOwnerPrivKey2 = secp256k1.GenPrivKey() + metaOwnerPrivKey3 = secp256k1.GenPrivKey() + metaBeneficiaryPrivKey1 = metaOwnerPrivKey1 + metaBeneficiaryPrivKey2 = secp256k1.GenPrivKey() + metaBeneficiaryPrivKey3 = secp256k1.GenPrivKey() // wallet addresses - resOwner1 = sdk.AccAddress(resOwnerPrivKey1.PubKey().Address()) - resOwner2 = sdk.AccAddress(resOwnerPrivKey2.PubKey().Address()) - resOwner3 = sdk.AccAddress(resOwnerPrivKey3.PubKey().Address()) - resOwner4 = sdk.AccAddress(resOwnerPrivKey4.PubKey().Address()) - resOwner5 = sdk.AccAddress(resOwnerPrivKey5.PubKey().Address()) - metaOwner1 = sdk.AccAddress(metaOwnerPrivKey1.PubKey().Address()) - metaOwner2 = sdk.AccAddress(metaOwnerPrivKey2.PubKey().Address()) - metaOwner3 = sdk.AccAddress(metaOwnerPrivKey3.PubKey().Address()) + resOwner1 = sdk.AccAddress(resOwnerPrivKey1.PubKey().Address()) + resOwner2 = sdk.AccAddress(resOwnerPrivKey2.PubKey().Address()) + resOwner3 = sdk.AccAddress(resOwnerPrivKey3.PubKey().Address()) + resOwner4 = sdk.AccAddress(resOwnerPrivKey4.PubKey().Address()) + resOwner5 = sdk.AccAddress(resOwnerPrivKey5.PubKey().Address()) + metaOwner1 = sdk.AccAddress(metaOwnerPrivKey1.PubKey().Address()) + metaOwner2 = sdk.AccAddress(metaOwnerPrivKey2.PubKey().Address()) + metaOwner3 = sdk.AccAddress(metaOwnerPrivKey3.PubKey().Address()) + metaBeneficiary1 = sdk.AccAddress(metaBeneficiaryPrivKey1.PubKey().Address()) + metaBeneficiary2 = sdk.AccAddress(metaBeneficiaryPrivKey2.PubKey().Address()) + metaBeneficiary3 = sdk.AccAddress(metaBeneficiaryPrivKey3.PubKey().Address()) // P2P public key of resource nodes resNodeP2PPubKey1 = ed25519.GenPrivKey().PubKey() @@ -361,17 +366,20 @@ func TestPotVolumeReportMsgs(t *testing.T) { t.Log(" miningReward = " + rewardDetailMap[resOwner5.String()].RewardFromMiningPool.String()) t.Log(" trafficReward = " + rewardDetailMap[resOwner5.String()].RewardFromTrafficPool.String()) - t.Log("indexing_wallet1: address = " + metaOwner1.String()) - t.Log(" miningReward = " + rewardDetailMap[metaOwner1.String()].RewardFromMiningPool.String()) - t.Log(" trafficReward = " + rewardDetailMap[metaOwner1.String()].RewardFromTrafficPool.String()) + t.Log("meta_owner_wallet1: address = " + metaOwner1.String()) + t.Log("meta_beneficiary_wallet1: address = " + metaBeneficiary1.String()) + t.Log(" miningReward = " + rewardDetailMap[metaBeneficiary1.String()].RewardFromMiningPool.String()) + t.Log(" trafficReward = " + rewardDetailMap[metaBeneficiary1.String()].RewardFromTrafficPool.String()) - t.Log("indexing_wallet2: address = " + metaOwner2.String()) - t.Log(" miningReward = " + rewardDetailMap[metaOwner2.String()].RewardFromMiningPool.String()) - t.Log(" trafficReward = " + rewardDetailMap[metaOwner2.String()].RewardFromTrafficPool.String()) + t.Log("meta_owner_wallet2: address = " + metaOwner2.String()) + t.Log("meta_beneficiary_wallet2: address = " + metaBeneficiary2.String()) + t.Log(" miningReward = " + rewardDetailMap[metaBeneficiary2.String()].RewardFromMiningPool.String()) + t.Log(" trafficReward = " + rewardDetailMap[metaBeneficiary2.String()].RewardFromTrafficPool.String()) - t.Log("indexing_wallet3: address = " + metaOwner3.String()) - t.Log(" miningReward = " + rewardDetailMap[metaOwner3.String()].RewardFromMiningPool.String()) - t.Log(" trafficReward = " + rewardDetailMap[metaOwner3.String()].RewardFromTrafficPool.String()) + t.Log("meta_owner_wallet3: address = " + metaOwner3.String()) + t.Log("meta_beneficiary_wallet3: address = " + metaBeneficiary3.String()) + t.Log(" miningReward = " + rewardDetailMap[metaBeneficiary3.String()].RewardFromMiningPool.String()) + t.Log(" trafficReward = " + rewardDetailMap[metaBeneficiary3.String()].RewardFromTrafficPool.String()) t.Log("---------------------------") /********************* record data before delivering tx *********************/ @@ -679,9 +687,9 @@ func setupAllMetaNodes() []registertypes.MetaNode { var indexingNodes []registertypes.MetaNode time, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") - indexingNode1, _ := registertypes.NewMetaNode(metaNodeP2PAddr1, metaNodeP2PPubKey1, metaOwner1, registertypes.NewDescription("indexingNode1", "", "", "", ""), time) - indexingNode2, _ := registertypes.NewMetaNode(metaNodeP2PAddr2, metaNodeP2PPubKey2, metaOwner2, registertypes.NewDescription("indexingNode2", "", "", "", ""), time) - indexingNode3, _ := registertypes.NewMetaNode(metaNodeP2PAddr3, metaNodeP2PPubKey3, metaOwner3, registertypes.NewDescription("indexingNode3", "", "", "", ""), time) + indexingNode1, _ := registertypes.NewMetaNode(metaNodeP2PAddr1, metaNodeP2PPubKey1, metaOwner1, metaBeneficiary1, registertypes.NewDescription("indexingNode1", "", "", "", ""), time) + indexingNode2, _ := registertypes.NewMetaNode(metaNodeP2PAddr2, metaNodeP2PPubKey2, metaOwner2, metaBeneficiary2, registertypes.NewDescription("indexingNode2", "", "", "", ""), time) + indexingNode3, _ := registertypes.NewMetaNode(metaNodeP2PAddr3, metaNodeP2PPubKey3, metaOwner3, metaBeneficiary3, registertypes.NewDescription("indexingNode3", "", "", "", ""), time) indexingNode1 = indexingNode1.AddToken(nodeInitialDeposit) indexingNode2 = indexingNode2.AddToken(nodeInitialDeposit) diff --git a/x/pot/keeper/distribute.go b/x/pot/keeper/distribute.go index 380ee8a5..0c3e7c7a 100644 --- a/x/pot/keeper/distribute.go +++ b/x/pot/keeper/distribute.go @@ -3,6 +3,7 @@ package keeper import ( "errors" "sort" + "strings" sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" @@ -229,7 +230,14 @@ func (k Keeper) CalcRewardForMetaNode(ctx sdk.Context, distributeGoalBalance typ continue } - walletAddr, err := sdk.AccAddressFromBech32(node.OwnerAddress) + var walletAddrStr string + if len(strings.TrimSpace(node.BeneficiaryAddress)) == 0 { + walletAddrStr = node.OwnerAddress + } else { + walletAddrStr = node.BeneficiaryAddress + } + + walletAddr, err := sdk.AccAddressFromBech32(walletAddrStr) if err != nil { continue } diff --git a/x/register/client/cli/flags.go b/x/register/client/cli/flags.go index 76b0d47e..cb2d88d0 100644 --- a/x/register/client/cli/flags.go +++ b/x/register/client/cli/flags.go @@ -22,6 +22,7 @@ const ( FlagCandidateNetworkAddress = "candidate-network-address" FlagOpinion = "opinion" FlagVoterNetworkAddress = "voter-network-address" + FlagBeneficiaryAddress = "beneficiary-address" ) func flagSetDescriptionCreate() *flag.FlagSet { @@ -76,9 +77,16 @@ func flagSetDepositUpdate() *flag.FlagSet { func flagSetVoting() *flag.FlagSet { fs := flag.NewFlagSet("", flag.ContinueOnError) - fs.String(FlagCandidateNetworkAddress, "The network address of the candidate PP node", "") - fs.String(FlagCandidateOwnerAddress, "The owner address of the candidate PP node", "") + fs.String(FlagCandidateNetworkAddress, "", "The network address of the candidate PP node") + fs.String(FlagCandidateOwnerAddress, "", "The owner address of the candidate PP node") fs.Bool(FlagOpinion, false, "Opinion of the vote for the registration of Meta node.") - fs.String(FlagVoterNetworkAddress, "The address of the PP node that made the vote.", "") + fs.String(FlagVoterNetworkAddress, "", "The address of the PP node that made the vote.") + return fs +} + +func flagSetBeneficiaryAddress() *flag.FlagSet { + fs := flag.NewFlagSet("", flag.ContinueOnError) + + fs.String(FlagBeneficiaryAddress, "", "The beneficiary address of the meta node") return fs } diff --git a/x/register/client/cli/tx.go b/x/register/client/cli/tx.go index 06e70eaf..77b3c6cd 100644 --- a/x/register/client/cli/tx.go +++ b/x/register/client/cli/tx.go @@ -1,6 +1,8 @@ package cli import ( + "strings" + "github.com/spf13/cobra" flag "github.com/spf13/pflag" @@ -99,6 +101,7 @@ func CreateMetaNodeCmd() *cobra.Command { cmd.Flags().AddFlagSet(flagSetAmount()) cmd.Flags().AddFlagSet(flagSetNetworkAddress()) cmd.Flags().AddFlagSet(flagSetDescriptionCreate()) + cmd.Flags().AddFlagSet(flagSetBeneficiaryAddress()) flags.AddTxFlagsToCmd(cmd) @@ -217,6 +220,7 @@ func UpdateMetaNodeCmd() *cobra.Command { cmd.Flags().AddFlagSet(flagSetNetworkAddress()) cmd.Flags().AddFlagSet(flagSetDescriptionCreate()) + cmd.Flags().AddFlagSet(flagSetBeneficiaryAddress()) flags.AddTxFlagsToCmd(cmd) @@ -406,6 +410,15 @@ func newBuildCreateMetaNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*typ ownerAddr := clientCtx.GetFromAddress() + beneficiaryAddr := ownerAddr + flagBeneficiaryAddrStr, _ := fs.GetString(FlagBeneficiaryAddress) + if len(strings.TrimSpace(flagBeneficiaryAddrStr)) > 0 { + beneficiaryAddr, err = sdk.AccAddressFromBech32(flagBeneficiaryAddrStr) + if err != nil { + return nil, err + } + } + pkStr, err := fs.GetString(FlagPubKey) if err != nil { return nil, err @@ -427,7 +440,7 @@ func newBuildCreateMetaNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*typ security, details, ) - msg, er := types.NewMsgCreateMetaNode(networkAddr, pubKey, amount, ownerAddr, description) + msg, er := types.NewMsgCreateMetaNode(networkAddr, pubKey, amount, ownerAddr, beneficiaryAddr, description) if er != nil { return nil, err } @@ -487,6 +500,15 @@ func newBuildUpdateMetaNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*typ ownerAddr := clientCtx.GetFromAddress() + beneficiaryAddress := sdk.AccAddress{} + flagBeneficiaryAddressStr, _ := fs.GetString(FlagBeneficiaryAddress) + if len(strings.TrimSpace(flagBeneficiaryAddressStr)) > 0 { + beneficiaryAddress, err = sdk.AccAddressFromBech32(flagBeneficiaryAddressStr) + if err != nil { + return nil, err + } + } + moniker, _ := fs.GetString(FlagMoniker) identity, _ := fs.GetString(FlagIdentity) website, _ := fs.GetString(FlagWebsite) @@ -500,7 +522,7 @@ func newBuildUpdateMetaNodeMsg(clientCtx client.Context, fs *flag.FlagSet) (*typ details, ) - msg := types.NewMsgUpdateMetaNode(description, networkAddr, ownerAddr) + msg := types.NewMsgUpdateMetaNode(description, networkAddr, ownerAddr, beneficiaryAddress) return msg, nil } diff --git a/x/register/keeper/genesis.go b/x/register/keeper/genesis.go index b4ae064e..3a7f8d12 100644 --- a/x/register/keeper/genesis.go +++ b/x/register/keeper/genesis.go @@ -1,6 +1,8 @@ package keeper import ( + "strings" + sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" @@ -85,6 +87,9 @@ func (k Keeper) InitGenesis(ctx sdk.Context, data *types.GenesisState) { default: panic(types.ErrInvalidNodeStat) } + if len(strings.TrimSpace(metaNode.BeneficiaryAddress)) == 0 { + metaNode.BeneficiaryAddress = metaNode.OwnerAddress + } k.SetMetaNode(ctx, metaNode) } // set initial genesis number of meta nodes diff --git a/x/register/keeper/meta_node.go b/x/register/keeper/meta_node.go index b1601685..b70a2628 100644 --- a/x/register/keeper/meta_node.go +++ b/x/register/keeper/meta_node.go @@ -72,7 +72,7 @@ func (k Keeper) GetAllValidMetaNodes(ctx sdk.Context) (metaNodes []types.MetaNod } func (k Keeper) RegisterMetaNode(ctx sdk.Context, networkAddr stratos.SdsAddress, pubKey cryptotypes.PubKey, ownerAddr sdk.AccAddress, - description types.Description, deposit sdk.Coin) (ozoneLimitChange sdkmath.Int, err error) { + beneficiaryAddress sdk.AccAddress, description types.Description, deposit sdk.Coin) (ozoneLimitChange sdkmath.Int, err error) { if _, found := k.GetMetaNode(ctx, networkAddr); found { ctx.Logger().Error("Meta node already exist") @@ -87,7 +87,7 @@ func (k Keeper) RegisterMetaNode(ctx sdk.Context, networkAddr stratos.SdsAddress return ozoneLimitChange, types.ErrBadDenom } - metaNode, err := types.NewMetaNode(networkAddr, pubKey, ownerAddr, description, ctx.BlockHeader().Time) + metaNode, err := types.NewMetaNode(networkAddr, pubKey, ownerAddr, beneficiaryAddress, description, ctx.BlockHeader().Time) if err != nil { return ozoneLimitChange, err } @@ -435,7 +435,7 @@ func (k Keeper) HandleVoteForMetaNodeRegistration(ctx sdk.Context, candidateNetw } func (k Keeper) UpdateMetaNode(ctx sdk.Context, description types.Description, - networkAddr stratos.SdsAddress, ownerAddr sdk.AccAddress) error { + networkAddr stratos.SdsAddress, ownerAddr sdk.AccAddress, beneficiaryAddr sdk.AccAddress) error { node, found := k.GetMetaNode(ctx, networkAddr) if !found { @@ -447,6 +447,10 @@ func (k Keeper) UpdateMetaNode(ctx sdk.Context, description types.Description, return types.ErrInvalidOwnerAddr } + if len(beneficiaryAddr) > 0 { + node.BeneficiaryAddress = beneficiaryAddr.String() + } + node.Description = description k.SetMetaNode(ctx, node) diff --git a/x/register/keeper/msg_server.go b/x/register/keeper/msg_server.go index 3b28fac4..d9dbd598 100644 --- a/x/register/keeper/msg_server.go +++ b/x/register/keeper/msg_server.go @@ -4,6 +4,7 @@ import ( "context" "encoding/hex" "strconv" + "strings" "time" "cosmossdk.io/errors" @@ -94,7 +95,20 @@ func (k msgServer) HandleMsgCreateMetaNode(goCtx context.Context, msg *types.Msg return &types.MsgCreateMetaNodeResponse{}, errors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) } - ozoneLimitChange, err := k.RegisterMetaNode(ctx, networkAddr, pk, ownerAddress, msg.Description, msg.GetValue()) + var beneficiaryAddress sdk.AccAddress + if len(strings.TrimSpace(msg.BeneficiaryAddress)) == 0 { + beneficiaryAddress = ownerAddress + } else { + beneficiaryAddress, err = sdk.AccAddressFromBech32(msg.BeneficiaryAddress) + if err != nil { + return &types.MsgCreateMetaNodeResponse{}, errors.Wrap(types.ErrInvalidBeneficiaryAddr, err.Error()) + } + if beneficiaryAddress.Empty() { + beneficiaryAddress = ownerAddress + } + } + + ozoneLimitChange, err := k.RegisterMetaNode(ctx, networkAddr, pk, ownerAddress, beneficiaryAddress, msg.Description, msg.GetValue()) if err != nil { return nil, errors.Wrap(types.ErrRegisterMetaNode, err.Error()) } @@ -425,7 +439,15 @@ func (k msgServer) HandleMsgUpdateMetaNode(goCtx context.Context, msg *types.Msg return &types.MsgUpdateMetaNodeResponse{}, errors.Wrap(types.ErrInvalidOwnerAddr, err.Error()) } - err = k.UpdateMetaNode(ctx, msg.Description, networkAddr, ownerAddress) + beneficiaryAddress := sdk.AccAddress{} + if len(strings.TrimSpace(msg.BeneficiaryAddress)) > 0 { + beneficiaryAddress, err = sdk.AccAddressFromBech32(msg.BeneficiaryAddress) + if err != nil { + return &types.MsgUpdateMetaNodeResponse{}, errors.Wrap(types.ErrInvalidBeneficiaryAddr, err.Error()) + } + } + + err = k.UpdateMetaNode(ctx, msg.Description, networkAddr, ownerAddress, beneficiaryAddress) if err != nil { return nil, errors.Wrap(types.ErrUpdateMetaNode, err.Error()) } diff --git a/x/register/legacy/v011/keys.go b/x/register/legacy/v011/keys.go new file mode 100644 index 00000000..85d32f42 --- /dev/null +++ b/x/register/legacy/v011/keys.go @@ -0,0 +1,5 @@ +package v011 + +var ( + MetaNodeKey = []byte{0x02} +) diff --git a/x/register/legacy/v011/meta_node.go b/x/register/legacy/v011/meta_node.go new file mode 100644 index 00000000..1971e19a --- /dev/null +++ b/x/register/legacy/v011/meta_node.go @@ -0,0 +1,28 @@ +package v011 + +import ( + "github.com/cosmos/cosmos-sdk/codec" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" +) + +// MustUnmarshalMetaNode unmarshal an meta node from a store value. Panics if fails +func MustUnmarshalMetaNode(cdc codec.Codec, value []byte) MetaNode { + metaNode, err := UnmarshalMetaNode(cdc, value) + if err != nil { + panic(err) + } + return metaNode +} + +// UnmarshalMetaNode unmarshal an meta node from a store value +func UnmarshalMetaNode(cdc codec.Codec, value []byte) (metaNode MetaNode, err error) { + err = cdc.Unmarshal(value, &metaNode) + return metaNode, err +} + +// UnpackInterfaces implements UnpackInterfacesMessage.UnpackInterfaces +func (v MetaNode) UnpackInterfaces(unpacker codectypes.AnyUnpacker) error { + var pk cryptotypes.PubKey + return unpacker.UnpackAny(v.Pubkey, &pk) +} diff --git a/x/register/legacy/v011/register.pb.go b/x/register/legacy/v011/register.pb.go new file mode 100644 index 00000000..9942af97 --- /dev/null +++ b/x/register/legacy/v011/register.pb.go @@ -0,0 +1,3428 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: stratos/register/v1/register.proto + +package v011 + +import ( + fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + types1 "github.com/cosmos/cosmos-sdk/codec/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/tx/amino" + types2 "github.com/cosmos/cosmos-sdk/x/staking/types" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + github_com_cosmos_gogoproto_types "github.com/cosmos/gogoproto/types" + _ "google.golang.org/protobuf/types/known/durationpb" + _ "google.golang.org/protobuf/types/known/timestamppb" + io "io" + math "math" + math_bits "math/bits" + time "time" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf +var _ = time.Kitchen + +// 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 + +// Params defines the Register module parameters +type Params struct { + BondDenom string `protobuf:"bytes,1,opt,name=bond_denom,json=bondDenom,proto3" json:"bond_denom" yaml:"bond_denom"` + UnbondingThreasholdTime time.Duration `protobuf:"bytes,2,opt,name=unbonding_threashold_time,json=unbondingThreasholdTime,proto3,stdduration" json:"unbonding_threashold_time" yaml:"unbonding_threashold_time"` + UnbondingCompletionTime time.Duration `protobuf:"bytes,3,opt,name=unbonding_completion_time,json=unbondingCompletionTime,proto3,stdduration" json:"unbonding_completion_time" yaml:"unbonding_completion_time"` + MaxEntries uint32 `protobuf:"varint,4,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries" yaml:"max_entries",omitempty` + ResourceNodeRegEnabled bool `protobuf:"varint,5,opt,name=resource_node_reg_enabled,json=resourceNodeRegEnabled,proto3" json:"resource_node_reg_enabled" yaml:"resource_node_reg_enabled"` + ResourceNodeMinDeposit types.Coin `protobuf:"bytes,6,opt,name=resource_node_min_deposit,json=resourceNodeMinDeposit,proto3" json:"resource_node_min_deposit" yaml:"resource_node_min_deposit"` + VotingPeriod time.Duration `protobuf:"bytes,7,opt,name=voting_period,json=votingPeriod,proto3,stdduration" json:"voting_period" yaml:"voting_period"` +} + +func (m *Params) Reset() { *m = Params{} } +func (m *Params) String() string { return proto.CompactTextString(m) } +func (*Params) ProtoMessage() {} +func (*Params) Descriptor() ([]byte, []int) { + return fileDescriptor_fef1e3aeec8499d6, []int{0} +} +func (m *Params) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Params.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 *Params) XXX_Merge(src proto.Message) { + xxx_messageInfo_Params.Merge(m, src) +} +func (m *Params) XXX_Size() int { + return m.Size() +} +func (m *Params) XXX_DiscardUnknown() { + xxx_messageInfo_Params.DiscardUnknown(m) +} + +var xxx_messageInfo_Params proto.InternalMessageInfo + +func (m *Params) GetBondDenom() string { + if m != nil { + return m.BondDenom + } + return "" +} + +func (m *Params) GetUnbondingThreasholdTime() time.Duration { + if m != nil { + return m.UnbondingThreasholdTime + } + return 0 +} + +func (m *Params) GetUnbondingCompletionTime() time.Duration { + if m != nil { + return m.UnbondingCompletionTime + } + return 0 +} + +func (m *Params) GetMaxEntries() uint32 { + if m != nil { + return m.MaxEntries + } + return 0 +} + +func (m *Params) GetResourceNodeRegEnabled() bool { + if m != nil { + return m.ResourceNodeRegEnabled + } + return false +} + +func (m *Params) GetResourceNodeMinDeposit() types.Coin { + if m != nil { + return m.ResourceNodeMinDeposit + } + return types.Coin{} +} + +func (m *Params) GetVotingPeriod() time.Duration { + if m != nil { + return m.VotingPeriod + } + return 0 +} + +type ResourceNode struct { + NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` + Pubkey *types1.Any `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey" yaml:"pubkey"` + Suspend bool `protobuf:"varint,3,opt,name=suspend,proto3" json:"suspend" yaml:"suspend"` + Status types2.BondStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status" yaml:"status"` + Tokens github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=tokens,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"tokens" yaml:"tokens"` + OwnerAddress string `protobuf:"bytes,6,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` + Description Description `protobuf:"bytes,7,opt,name=description,proto3" json:"description" yaml:"description"` + CreationTime time.Time `protobuf:"bytes,8,opt,name=creation_time,json=creationTime,proto3,stdtime" json:"creation_time" yaml:"creation_time"` + NodeType uint32 `protobuf:"varint,9,opt,name=node_type,json=nodeType,proto3" json:"node_type" yaml:"node_type"` + EffectiveTokens github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,10,opt,name=effective_tokens,json=effectiveTokens,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"effective_tokens" yaml:"effective_tokens"` +} + +func (m *ResourceNode) Reset() { *m = ResourceNode{} } +func (m *ResourceNode) String() string { return proto.CompactTextString(m) } +func (*ResourceNode) ProtoMessage() {} +func (*ResourceNode) Descriptor() ([]byte, []int) { + return fileDescriptor_fef1e3aeec8499d6, []int{1} +} +func (m *ResourceNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ResourceNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ResourceNode.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 *ResourceNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResourceNode.Merge(m, src) +} +func (m *ResourceNode) XXX_Size() int { + return m.Size() +} +func (m *ResourceNode) XXX_DiscardUnknown() { + xxx_messageInfo_ResourceNode.DiscardUnknown(m) +} + +var xxx_messageInfo_ResourceNode proto.InternalMessageInfo + +func (m *ResourceNode) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func (m *ResourceNode) GetPubkey() *types1.Any { + if m != nil { + return m.Pubkey + } + return nil +} + +func (m *ResourceNode) GetSuspend() bool { + if m != nil { + return m.Suspend + } + return false +} + +func (m *ResourceNode) GetStatus() types2.BondStatus { + if m != nil { + return m.Status + } + return types2.Unspecified +} + +func (m *ResourceNode) GetOwnerAddress() string { + if m != nil { + return m.OwnerAddress + } + return "" +} + +func (m *ResourceNode) GetDescription() Description { + if m != nil { + return m.Description + } + return Description{} +} + +func (m *ResourceNode) GetCreationTime() time.Time { + if m != nil { + return m.CreationTime + } + return time.Time{} +} + +func (m *ResourceNode) GetNodeType() uint32 { + if m != nil { + return m.NodeType + } + return 0 +} + +type MetaNode struct { + NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` + Pubkey *types1.Any `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey" yaml:"pubkey"` + Suspend bool `protobuf:"varint,3,opt,name=suspend,proto3" json:"suspend" yaml:"suspend"` + Status types2.BondStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status" yaml:"status"` + Tokens github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=tokens,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"tokens" yaml:"tokens"` + OwnerAddress string `protobuf:"bytes,6,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` + // string beneficiary_address = 7 [ + // (gogoproto.jsontag) = "beneficiary_address", + // (gogoproto.moretags) = "yaml:\"beneficiary_address\"" + // ]; + Description Description `protobuf:"bytes,7,opt,name=description,proto3" json:"description" yaml:"description"` + CreationTime time.Time `protobuf:"bytes,8,opt,name=creation_time,json=creationTime,proto3,stdtime" json:"creation_time" yaml:"creation_time"` +} + +func (m *MetaNode) Reset() { *m = MetaNode{} } +func (m *MetaNode) String() string { return proto.CompactTextString(m) } +func (*MetaNode) ProtoMessage() {} +func (*MetaNode) Descriptor() ([]byte, []int) { + return fileDescriptor_fef1e3aeec8499d6, []int{2} +} +func (m *MetaNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MetaNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MetaNode.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 *MetaNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetaNode.Merge(m, src) +} +func (m *MetaNode) XXX_Size() int { + return m.Size() +} +func (m *MetaNode) XXX_DiscardUnknown() { + xxx_messageInfo_MetaNode.DiscardUnknown(m) +} + +var xxx_messageInfo_MetaNode proto.InternalMessageInfo + +func (m *MetaNode) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func (m *MetaNode) GetPubkey() *types1.Any { + if m != nil { + return m.Pubkey + } + return nil +} + +func (m *MetaNode) GetSuspend() bool { + if m != nil { + return m.Suspend + } + return false +} + +func (m *MetaNode) GetStatus() types2.BondStatus { + if m != nil { + return m.Status + } + return types2.Unspecified +} + +func (m *MetaNode) GetOwnerAddress() string { + if m != nil { + return m.OwnerAddress + } + return "" +} + +func (m *MetaNode) GetDescription() Description { + if m != nil { + return m.Description + } + return Description{} +} + +func (m *MetaNode) GetCreationTime() time.Time { + if m != nil { + return m.CreationTime + } + return time.Time{} +} + +type MetaNodeRegistrationVotePool struct { + NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` + ApproveList []string `protobuf:"bytes,2,rep,name=approve_list,json=approveList,proto3" json:"approve_list" yaml:"approve_list"` + RejectList []string `protobuf:"bytes,3,rep,name=reject_list,json=rejectList,proto3" json:"reject_list" yaml:"reject_list"` + ExpireTime time.Time `protobuf:"bytes,4,opt,name=expire_time,json=expireTime,proto3,stdtime" json:"expire_time" yaml:"expire_time"` + IsVotePassed bool `protobuf:"varint,5,opt,name=is_vote_passed,json=isVotePassed,proto3" json:"is_vote_passed" yaml:"is_vote_passed"` +} + +func (m *MetaNodeRegistrationVotePool) Reset() { *m = MetaNodeRegistrationVotePool{} } +func (m *MetaNodeRegistrationVotePool) String() string { return proto.CompactTextString(m) } +func (*MetaNodeRegistrationVotePool) ProtoMessage() {} +func (*MetaNodeRegistrationVotePool) Descriptor() ([]byte, []int) { + return fileDescriptor_fef1e3aeec8499d6, []int{3} +} +func (m *MetaNodeRegistrationVotePool) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MetaNodeRegistrationVotePool) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MetaNodeRegistrationVotePool.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 *MetaNodeRegistrationVotePool) XXX_Merge(src proto.Message) { + xxx_messageInfo_MetaNodeRegistrationVotePool.Merge(m, src) +} +func (m *MetaNodeRegistrationVotePool) XXX_Size() int { + return m.Size() +} +func (m *MetaNodeRegistrationVotePool) XXX_DiscardUnknown() { + xxx_messageInfo_MetaNodeRegistrationVotePool.DiscardUnknown(m) +} + +var xxx_messageInfo_MetaNodeRegistrationVotePool proto.InternalMessageInfo + +func (m *MetaNodeRegistrationVotePool) GetNetworkAddress() string { + if m != nil { + return m.NetworkAddress + } + return "" +} + +func (m *MetaNodeRegistrationVotePool) GetApproveList() []string { + if m != nil { + return m.ApproveList + } + return nil +} + +func (m *MetaNodeRegistrationVotePool) GetRejectList() []string { + if m != nil { + return m.RejectList + } + return nil +} + +func (m *MetaNodeRegistrationVotePool) GetExpireTime() time.Time { + if m != nil { + return m.ExpireTime + } + return time.Time{} +} + +func (m *MetaNodeRegistrationVotePool) GetIsVotePassed() bool { + if m != nil { + return m.IsVotePassed + } + return false +} + +type Description struct { + Moniker string `protobuf:"bytes,1,opt,name=moniker,proto3" json:"moniker" yaml:"moniker"` + Identity string `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity" yaml:"identity",omitempty` + Website string `protobuf:"bytes,3,opt,name=website,proto3" json:"website" yaml:"website",omitempty` + SecurityContact string `protobuf:"bytes,4,opt,name=security_contact,json=securityContact,proto3" json:"security_contact" yaml:"security_contact",omitempty` + Details string `protobuf:"bytes,5,opt,name=details,proto3" json:"details" yaml:"details",omitempty` +} + +func (m *Description) Reset() { *m = Description{} } +func (m *Description) String() string { return proto.CompactTextString(m) } +func (*Description) ProtoMessage() {} +func (*Description) Descriptor() ([]byte, []int) { + return fileDescriptor_fef1e3aeec8499d6, []int{4} +} +func (m *Description) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Description) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Description.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 *Description) XXX_Merge(src proto.Message) { + xxx_messageInfo_Description.Merge(m, src) +} +func (m *Description) XXX_Size() int { + return m.Size() +} +func (m *Description) XXX_DiscardUnknown() { + xxx_messageInfo_Description.DiscardUnknown(m) +} + +var xxx_messageInfo_Description proto.InternalMessageInfo + +func (m *Description) GetMoniker() string { + if m != nil { + return m.Moniker + } + return "" +} + +func (m *Description) GetIdentity() string { + if m != nil { + return m.Identity + } + return "" +} + +func (m *Description) GetWebsite() string { + if m != nil { + return m.Website + } + return "" +} + +func (m *Description) GetSecurityContact() string { + if m != nil { + return m.SecurityContact + } + return "" +} + +func (m *Description) GetDetails() string { + if m != nil { + return m.Details + } + return "" +} + +// UnbondingNode stores all of a single delegator's unbonding bonds +// for a single unbonding node in a time-ordered list +type UnbondingNode struct { + NetworkAddr string `protobuf:"bytes,1,opt,name=network_addr,json=networkAddr,proto3" json:"network_addr" yaml:"network_addr"` + IsMetaNode bool `protobuf:"varint,2,opt,name=is_meta_node,json=isMetaNode,proto3" json:"is_meta_node" yaml:"is_meta_node"` + Entries []*UnbondingNodeEntry `protobuf:"bytes,3,rep,name=entries,proto3" json:"entries" yaml:"entries"` +} + +func (m *UnbondingNode) Reset() { *m = UnbondingNode{} } +func (m *UnbondingNode) String() string { return proto.CompactTextString(m) } +func (*UnbondingNode) ProtoMessage() {} +func (*UnbondingNode) Descriptor() ([]byte, []int) { + return fileDescriptor_fef1e3aeec8499d6, []int{5} +} +func (m *UnbondingNode) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UnbondingNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UnbondingNode.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 *UnbondingNode) XXX_Merge(src proto.Message) { + xxx_messageInfo_UnbondingNode.Merge(m, src) +} +func (m *UnbondingNode) XXX_Size() int { + return m.Size() +} +func (m *UnbondingNode) XXX_DiscardUnknown() { + xxx_messageInfo_UnbondingNode.DiscardUnknown(m) +} + +var xxx_messageInfo_UnbondingNode proto.InternalMessageInfo + +func (m *UnbondingNode) GetNetworkAddr() string { + if m != nil { + return m.NetworkAddr + } + return "" +} + +func (m *UnbondingNode) GetIsMetaNode() bool { + if m != nil { + return m.IsMetaNode + } + return false +} + +func (m *UnbondingNode) GetEntries() []*UnbondingNodeEntry { + if m != nil { + return m.Entries + } + return nil +} + +type UnbondingNodeEntry struct { + CreationHeight int64 `protobuf:"varint,1,opt,name=creation_height,json=creationHeight,proto3" json:"creation_height" yaml:"creation_height"` + CompletionTime time.Time `protobuf:"bytes,2,opt,name=completion_time,json=completionTime,proto3,stdtime" json:"creation_time" yaml:"creation_time"` + InitialBalance *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,3,opt,name=initial_balance,json=initialBalance,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"initial_balance" yaml:"initial_balance"` + Balance *github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,4,opt,name=balance,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"balance" yaml:"balance"` +} + +func (m *UnbondingNodeEntry) Reset() { *m = UnbondingNodeEntry{} } +func (m *UnbondingNodeEntry) String() string { return proto.CompactTextString(m) } +func (*UnbondingNodeEntry) ProtoMessage() {} +func (*UnbondingNodeEntry) Descriptor() ([]byte, []int) { + return fileDescriptor_fef1e3aeec8499d6, []int{6} +} +func (m *UnbondingNodeEntry) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *UnbondingNodeEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_UnbondingNodeEntry.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 *UnbondingNodeEntry) XXX_Merge(src proto.Message) { + xxx_messageInfo_UnbondingNodeEntry.Merge(m, src) +} +func (m *UnbondingNodeEntry) XXX_Size() int { + return m.Size() +} +func (m *UnbondingNodeEntry) XXX_DiscardUnknown() { + xxx_messageInfo_UnbondingNodeEntry.DiscardUnknown(m) +} + +var xxx_messageInfo_UnbondingNodeEntry proto.InternalMessageInfo + +func (m *UnbondingNodeEntry) GetCreationHeight() int64 { + if m != nil { + return m.CreationHeight + } + return 0 +} + +func (m *UnbondingNodeEntry) GetCompletionTime() time.Time { + if m != nil { + return m.CompletionTime + } + return time.Time{} +} + +func init() { + //proto.RegisterType((*Params)(nil), "stratos.register.v1.Params") + //proto.RegisterType((*ResourceNode)(nil), "stratos.register.v1.ResourceNode") + //proto.RegisterType((*MetaNode)(nil), "stratos.register.v1.MetaNode") + //proto.RegisterType((*MetaNodeRegistrationVotePool)(nil), "stratos.register.v1.MetaNodeRegistrationVotePool") + //proto.RegisterType((*Description)(nil), "stratos.register.v1.Description") + //proto.RegisterType((*UnbondingNode)(nil), "stratos.register.v1.UnbondingNode") + //proto.RegisterType((*UnbondingNodeEntry)(nil), "stratos.register.v1.UnbondingNodeEntry") +} + +func init() { + proto.RegisterFile("stratos/register/v1/register.proto", fileDescriptor_fef1e3aeec8499d6) +} + +var fileDescriptor_fef1e3aeec8499d6 = []byte{ + // 1543 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0x4d, 0x6f, 0xdb, 0x46, + 0x1a, 0x36, 0xed, 0xac, 0x2c, 0x8d, 0xfc, 0x91, 0x30, 0xde, 0x44, 0xce, 0x66, 0x45, 0x87, 0xfb, + 0x11, 0x27, 0xbb, 0x96, 0x60, 0x67, 0xb1, 0x45, 0x73, 0x68, 0x61, 0xc6, 0x2e, 0x9a, 0xb4, 0x09, + 0x5c, 0xc6, 0x49, 0x81, 0xa2, 0x00, 0x4b, 0x91, 0x63, 0x79, 0x6a, 0x71, 0x86, 0xe0, 0x8c, 0x64, + 0x0b, 0xed, 0x2f, 0xe8, 0xa1, 0xc8, 0x31, 0x40, 0x51, 0x20, 0x97, 0x02, 0x01, 0x7a, 0xc9, 0xa1, + 0xb7, 0xfe, 0x81, 0xa0, 0xa7, 0xa0, 0xa7, 0xa2, 0x07, 0xb6, 0x70, 0x80, 0x06, 0x50, 0x6f, 0xfc, + 0x03, 0x2d, 0x38, 0x1f, 0x22, 0x45, 0x5b, 0x48, 0x53, 0xa0, 0x3d, 0xe5, 0x62, 0x73, 0x9e, 0xe7, + 0xe1, 0xfb, 0xbe, 0x9c, 0xf7, 0x63, 0x34, 0xc0, 0xa4, 0x2c, 0x72, 0x19, 0xa1, 0xcd, 0x08, 0xb6, + 0x11, 0x65, 0x30, 0x6a, 0xf6, 0x56, 0x87, 0xcf, 0x8d, 0x30, 0x22, 0x8c, 0xe8, 0xa7, 0xa5, 0xa6, + 0x31, 0xc4, 0x7b, 0xab, 0xe7, 0x16, 0xda, 0xa4, 0x4d, 0x38, 0xdf, 0x4c, 0x9f, 0x84, 0xf4, 0xdc, + 0x62, 0x9b, 0x90, 0x76, 0x07, 0x36, 0xf9, 0xaa, 0xd5, 0xdd, 0x69, 0xba, 0xb8, 0x2f, 0x29, 0xa3, + 0x48, 0x31, 0x14, 0x40, 0xca, 0xdc, 0x20, 0x94, 0x82, 0x7a, 0x51, 0xe0, 0x77, 0x23, 0x97, 0x21, + 0x82, 0x95, 0x6d, 0x8f, 0xd0, 0x80, 0x50, 0x47, 0x38, 0x15, 0x0b, 0x49, 0x9d, 0x72, 0x03, 0x84, + 0x49, 0x93, 0xff, 0x55, 0xd6, 0x84, 0xa0, 0xd9, 0x72, 0x29, 0x6c, 0xf6, 0x56, 0x5b, 0x90, 0xb9, + 0xab, 0x4d, 0x8f, 0x20, 0x65, 0xed, 0x9f, 0x92, 0xa7, 0xcc, 0xdd, 0x43, 0xb8, 0x3d, 0x94, 0xc8, + 0xb5, 0x50, 0x99, 0x5f, 0x4e, 0x83, 0xd2, 0x96, 0x1b, 0xb9, 0x01, 0xd5, 0x2d, 0x00, 0x5a, 0x04, + 0xfb, 0x8e, 0x0f, 0x31, 0x09, 0x6a, 0xda, 0x92, 0xb6, 0x5c, 0xb1, 0xfe, 0x31, 0x88, 0x8d, 0x1c, + 0x9a, 0xc4, 0xc6, 0xa9, 0xbe, 0x1b, 0x74, 0xae, 0x9a, 0x19, 0x66, 0xda, 0x95, 0x74, 0xb1, 0x91, + 0x3e, 0xeb, 0x5f, 0x68, 0x60, 0xb1, 0x8b, 0xd3, 0x35, 0xc2, 0x6d, 0x87, 0xed, 0x46, 0xd0, 0xa5, + 0xbb, 0xa4, 0xe3, 0x3b, 0xe9, 0x5e, 0xd4, 0x26, 0x97, 0xb4, 0xe5, 0xea, 0xda, 0x62, 0x43, 0xec, + 0x43, 0x43, 0xed, 0x43, 0x63, 0x43, 0xee, 0x83, 0x75, 0xeb, 0x71, 0x6c, 0x4c, 0x0c, 0x62, 0x63, + 0xbc, 0x8d, 0x24, 0x36, 0x96, 0x44, 0x04, 0x63, 0x25, 0xe6, 0xfd, 0x1f, 0x0c, 0xed, 0xe1, 0xb3, + 0x47, 0x97, 0x35, 0xfb, 0xec, 0x50, 0xb4, 0x3d, 0xd4, 0x6c, 0xa3, 0x00, 0x16, 0xe2, 0xf4, 0x48, + 0x10, 0x76, 0x60, 0x1a, 0x81, 0x88, 0x73, 0xea, 0x77, 0xc4, 0x59, 0xb0, 0x71, 0x5c, 0x9c, 0x05, + 0xc9, 0xb1, 0x71, 0x5e, 0x1b, 0x6a, 0x78, 0x9c, 0x5b, 0xa0, 0x1a, 0xb8, 0x07, 0x0e, 0xc4, 0x2c, + 0x42, 0x90, 0xd6, 0x4e, 0x2c, 0x69, 0xcb, 0xb3, 0x56, 0x73, 0x10, 0x1b, 0x79, 0x38, 0x89, 0x8d, + 0xf3, 0xc2, 0x57, 0x0e, 0x34, 0xff, 0x4b, 0x02, 0xc4, 0x60, 0x10, 0xb2, 0xbe, 0x0d, 0x02, 0xf7, + 0x60, 0x53, 0xc0, 0xfa, 0xc7, 0x60, 0x31, 0x82, 0x94, 0x74, 0x23, 0x0f, 0x3a, 0x98, 0xf8, 0xd0, + 0x89, 0x60, 0xdb, 0x81, 0xd8, 0x6d, 0x75, 0xa0, 0x5f, 0xfb, 0xcb, 0x92, 0xb6, 0x5c, 0xb6, 0xd6, + 0xd3, 0x2f, 0x1b, 0x2b, 0xca, 0xbe, 0x6c, 0xac, 0xc4, 0xb4, 0xcf, 0x28, 0xee, 0x16, 0xf1, 0xa1, + 0x0d, 0xdb, 0x9b, 0x82, 0xd0, 0x1f, 0x68, 0x45, 0xf7, 0x01, 0xc2, 0x8e, 0x0f, 0x43, 0x42, 0x11, + 0xab, 0x95, 0xe4, 0xbe, 0xcb, 0xd2, 0x4f, 0x2b, 0xbb, 0x21, 0xcb, 0xb6, 0x71, 0x8d, 0x20, 0x6c, + 0xdd, 0x50, 0xfb, 0x3e, 0xd6, 0xc6, 0xb8, 0xe8, 0x72, 0x12, 0x53, 0xec, 0xf9, 0x48, 0x88, 0x37, + 0x11, 0xde, 0x10, 0xac, 0xde, 0x03, 0xb3, 0x3d, 0xc2, 0xd2, 0x7c, 0x85, 0x30, 0x42, 0xc4, 0xaf, + 0x4d, 0x3f, 0xaf, 0x1a, 0xfe, 0x2f, 0xa3, 0x1a, 0x7d, 0x2f, 0x89, 0x8d, 0x05, 0x11, 0xc9, 0x08, + 0x9c, 0xcb, 0xfa, 0x8c, 0x20, 0xb6, 0x38, 0x7e, 0xd5, 0xbc, 0xff, 0xc0, 0xd0, 0x3e, 0x79, 0xf6, + 0xe8, 0xf2, 0xa2, 0x9a, 0x58, 0x07, 0xd9, 0xcc, 0x12, 0x2d, 0x6a, 0x7e, 0x5e, 0x06, 0x33, 0x76, + 0x2e, 0x6c, 0x1d, 0x83, 0x79, 0x0c, 0xd9, 0x3e, 0x89, 0xf6, 0x1c, 0xd7, 0xf7, 0x23, 0x48, 0xa9, + 0x6c, 0xdc, 0xcd, 0x41, 0x6c, 0x14, 0xa9, 0x24, 0x36, 0xce, 0x88, 0x88, 0x0a, 0x84, 0xf9, 0xed, + 0x57, 0x2b, 0x0b, 0x72, 0xd3, 0xd7, 0x05, 0x74, 0x9b, 0x45, 0x08, 0xb7, 0xed, 0x39, 0xa9, 0x94, + 0xa8, 0xee, 0x82, 0x52, 0xd8, 0x6d, 0xed, 0xc1, 0xbe, 0xec, 0xe5, 0x85, 0x23, 0xbb, 0xb2, 0x8e, + 0xfb, 0xd6, 0x95, 0x41, 0x6c, 0x48, 0x5d, 0x12, 0x1b, 0xb3, 0xc2, 0xa7, 0x58, 0x9b, 0xdf, 0x64, + 0xae, 0xbc, 0xa8, 0x1f, 0x32, 0xd2, 0xd8, 0xea, 0xb6, 0xde, 0x82, 0x7d, 0x5b, 0xbe, 0xa0, 0xbf, + 0x02, 0xa6, 0x69, 0x97, 0x86, 0x10, 0xfb, 0xbc, 0x0f, 0xcb, 0xd6, 0xdf, 0x07, 0xb1, 0xa1, 0xa0, + 0x24, 0x36, 0xe6, 0x84, 0x39, 0x09, 0x98, 0xb6, 0xa2, 0xf4, 0x77, 0x41, 0x89, 0x32, 0x97, 0x75, + 0x45, 0x9b, 0xcc, 0xad, 0x99, 0xaa, 0x8e, 0xd4, 0xc4, 0x53, 0xa5, 0x64, 0x11, 0xec, 0xdf, 0xe6, + 0x4a, 0xeb, 0x6f, 0x69, 0xa4, 0xe2, 0xad, 0x2c, 0x52, 0xb1, 0x36, 0x6d, 0x49, 0xe8, 0x0c, 0x94, + 0x18, 0xd9, 0x83, 0x98, 0xf2, 0xfe, 0xa8, 0x58, 0xef, 0xa7, 0xf9, 0xfe, 0x3e, 0x36, 0xfe, 0xdd, + 0x46, 0x6c, 0xb7, 0xdb, 0x6a, 0x78, 0x24, 0x90, 0xd3, 0x5a, 0xfe, 0x5b, 0xa1, 0xfe, 0x5e, 0x93, + 0xf5, 0x43, 0x48, 0x1b, 0xd7, 0x31, 0x4b, 0x5d, 0x88, 0xf7, 0x33, 0x17, 0x62, 0x9d, 0xee, 0x3b, + 0x90, 0x41, 0x5e, 0xc7, 0x4c, 0x54, 0x85, 0xd4, 0xea, 0x3b, 0x60, 0x96, 0xec, 0x63, 0x18, 0x0d, + 0x13, 0x5b, 0xe2, 0xce, 0xd3, 0xe6, 0x1c, 0x25, 0xb2, 0x42, 0x1b, 0x81, 0xc7, 0x27, 0x75, 0x86, + 0xeb, 0x54, 0x4a, 0x03, 0x50, 0xf5, 0x21, 0xf5, 0x22, 0x14, 0xa6, 0xc5, 0x2c, 0xab, 0x7d, 0xa9, + 0x71, 0xcc, 0x91, 0xd8, 0xd8, 0xc8, 0x74, 0xd6, 0x25, 0x59, 0xf4, 0xf9, 0x97, 0x93, 0xd8, 0xd0, + 0x45, 0x24, 0x39, 0xd0, 0xb4, 0xf3, 0x12, 0x7d, 0x1f, 0xcc, 0x7a, 0x11, 0x74, 0xb3, 0x61, 0x5b, + 0xe6, 0x0e, 0xcf, 0x1d, 0x29, 0xa4, 0x6d, 0x75, 0x7a, 0x66, 0xfd, 0x35, 0xf2, 0x62, 0xf6, 0xd9, + 0x23, 0xb0, 0x79, 0x2f, 0xeb, 0x2f, 0x45, 0xf0, 0x51, 0xfa, 0x1a, 0xa8, 0xf0, 0x49, 0x90, 0xe6, + 0xa5, 0x56, 0xe1, 0x83, 0xf4, 0xc2, 0x20, 0x36, 0x32, 0x30, 0x89, 0x8d, 0x93, 0xb2, 0x3d, 0x14, + 0x64, 0xda, 0xe5, 0xf4, 0x79, 0xbb, 0x1f, 0x42, 0xfd, 0x33, 0x0d, 0x9c, 0x84, 0x3b, 0x3b, 0xd0, + 0x63, 0xa8, 0x07, 0x1d, 0x59, 0x10, 0x80, 0xe7, 0x24, 0x7c, 0xe1, 0x82, 0x38, 0x62, 0x29, 0x89, + 0x8d, 0xb3, 0xc2, 0x79, 0x91, 0x39, 0xb6, 0x48, 0xe6, 0x87, 0xaa, 0x6d, 0x2e, 0xba, 0x7a, 0x22, + 0x9d, 0x1e, 0xe6, 0xd7, 0x25, 0x50, 0xbe, 0x09, 0x99, 0xfb, 0x72, 0x36, 0xbc, 0x9c, 0x0d, 0x2f, + 0x67, 0xc3, 0x6f, 0x9e, 0x0d, 0xb2, 0x7b, 0x7e, 0x9a, 0x02, 0xe7, 0x55, 0xf7, 0xd8, 0xfc, 0xd3, + 0xc4, 0x01, 0x7f, 0x97, 0x30, 0xb8, 0x45, 0x48, 0xe7, 0x4f, 0xef, 0xa8, 0x1b, 0x60, 0xc6, 0x0d, + 0xc3, 0x88, 0xf4, 0xa0, 0xd3, 0x41, 0x94, 0xd5, 0x26, 0x97, 0xa6, 0x96, 0x2b, 0xd6, 0xc5, 0x41, + 0x6c, 0x8c, 0xe0, 0x49, 0x6c, 0x9c, 0x16, 0x9e, 0xf2, 0xa8, 0x69, 0x57, 0xe5, 0xf2, 0x6d, 0x44, + 0x99, 0xfe, 0x06, 0xa8, 0x46, 0xf0, 0x43, 0xe8, 0x31, 0x61, 0x6a, 0x8a, 0x9b, 0xfa, 0x57, 0x9a, + 0xa4, 0x1c, 0x9c, 0x25, 0x29, 0x07, 0x9a, 0x36, 0x10, 0x2b, 0x6e, 0x87, 0x80, 0x2a, 0x3c, 0x08, + 0x51, 0x04, 0x45, 0x86, 0x4e, 0x3c, 0x37, 0x43, 0x6b, 0xaa, 0x18, 0x72, 0xaf, 0x65, 0x7e, 0x72, + 0x60, 0x2e, 0x3b, 0x40, 0xc0, 0x7c, 0x6e, 0xbf, 0x03, 0xe6, 0x10, 0x75, 0x7a, 0x84, 0x41, 0x27, + 0x74, 0x29, 0x1d, 0xfe, 0x4a, 0xfd, 0xcf, 0x20, 0x36, 0x0a, 0x4c, 0x12, 0x1b, 0x7f, 0x15, 0x66, + 0x47, 0x71, 0xd3, 0x9e, 0x41, 0x94, 0x67, 0x51, 0x2c, 0x7f, 0x99, 0x04, 0xd5, 0x5c, 0xbd, 0xa6, + 0x63, 0x25, 0x20, 0x18, 0xed, 0xc1, 0x48, 0xe6, 0x93, 0x8f, 0x15, 0x09, 0x65, 0x63, 0x45, 0x02, + 0xa6, 0xad, 0x28, 0x7d, 0x13, 0x94, 0x91, 0x0f, 0x31, 0x43, 0x4c, 0x0c, 0xbd, 0x8a, 0x75, 0x69, + 0x10, 0x1b, 0x43, 0x2c, 0x89, 0x8d, 0x45, 0x19, 0x8f, 0x44, 0xf2, 0xbf, 0xca, 0x87, 0x32, 0x7d, + 0x1d, 0x4c, 0xef, 0xc3, 0x16, 0x45, 0x4c, 0x5c, 0x3d, 0x44, 0x8a, 0x15, 0x94, 0xc4, 0x46, 0x4d, + 0x18, 0x91, 0x40, 0xde, 0x86, 0x12, 0xe9, 0x3e, 0x38, 0x49, 0xa1, 0xd7, 0x8d, 0x10, 0xeb, 0x3b, + 0x1e, 0xc1, 0xcc, 0xf5, 0x18, 0xcf, 0x4d, 0xc5, 0x7a, 0x35, 0x3d, 0x6e, 0x8a, 0x5c, 0x12, 0x1b, + 0x17, 0xe4, 0x40, 0x2b, 0x30, 0x79, 0xeb, 0xf3, 0x8a, 0xbc, 0x26, 0xb8, 0x34, 0x50, 0x1f, 0x32, + 0x17, 0x75, 0xd4, 0xb8, 0xe3, 0x81, 0x4a, 0x28, 0x0b, 0x54, 0x02, 0x23, 0x81, 0x4a, 0x4c, 0xb6, + 0xda, 0x83, 0x49, 0x30, 0x7b, 0x47, 0xdd, 0x79, 0xf8, 0x69, 0xd5, 0x02, 0x33, 0xf9, 0x3e, 0x91, + 0x89, 0x78, 0x3d, 0xad, 0xf5, 0x3c, 0x9e, 0xd5, 0x7a, 0x1e, 0x1d, 0xdf, 0x52, 0xd5, 0x5c, 0x4b, + 0xe9, 0xd7, 0xc1, 0x0c, 0xa2, 0x4e, 0x00, 0x99, 0xcb, 0x2f, 0x05, 0x3c, 0x65, 0x65, 0xd1, 0x4f, + 0x79, 0x3c, 0xf3, 0x91, 0x47, 0x4d, 0x1b, 0x20, 0x3a, 0x3c, 0x5c, 0x3f, 0x00, 0xd3, 0xea, 0x52, + 0x96, 0xb6, 0x52, 0x75, 0xed, 0xe2, 0xb1, 0x53, 0x71, 0xe4, 0x1b, 0xd3, 0x2b, 0x58, 0x5f, 0xd4, + 0x56, 0x76, 0x73, 0x93, 0xb5, 0xa5, 0x6e, 0x6d, 0xb6, 0xa2, 0xcc, 0x9f, 0xa7, 0x80, 0x7e, 0xf4, + 0x75, 0xfd, 0x2e, 0x98, 0x1f, 0xce, 0xb4, 0x5d, 0x88, 0xda, 0xbb, 0x8c, 0x6f, 0xd5, 0x94, 0xb5, + 0x92, 0xce, 0xa0, 0x02, 0x95, 0xcd, 0xa0, 0x02, 0x61, 0xda, 0x73, 0x0a, 0x79, 0x93, 0x03, 0xfa, + 0x47, 0x60, 0xbe, 0x78, 0x0d, 0x9e, 0xfc, 0xc3, 0xa6, 0xef, 0x9c, 0x37, 0x7a, 0xcd, 0xfd, 0x54, + 0x03, 0xf3, 0x08, 0x23, 0x86, 0xdc, 0x8e, 0xd3, 0x72, 0x3b, 0x2e, 0xf6, 0x54, 0x27, 0xc0, 0x17, + 0x3a, 0x4b, 0x8b, 0x46, 0xb2, 0xef, 0x2f, 0x10, 0x85, 0xd3, 0xd5, 0x9e, 0x93, 0xbc, 0x25, 0x68, + 0x9d, 0x80, 0x69, 0x15, 0x87, 0xe8, 0xa2, 0x3b, 0x2f, 0x14, 0xc7, 0x74, 0xe6, 0x5f, 0xe6, 0x77, + 0x8c, 0x5f, 0x25, 0xb4, 0xec, 0x87, 0x87, 0x75, 0xed, 0xf1, 0x61, 0x5d, 0x7b, 0x72, 0x58, 0xd7, + 0x7e, 0x3c, 0xac, 0x6b, 0xf7, 0x9e, 0xd6, 0x27, 0x9e, 0x3c, 0xad, 0x4f, 0x7c, 0xf7, 0xb4, 0x3e, + 0xf1, 0xde, 0xff, 0x72, 0x9e, 0x65, 0x99, 0x61, 0xc8, 0xd4, 0xe3, 0x8a, 0xb7, 0xeb, 0x22, 0x9c, + 0xbf, 0x2e, 0xf2, 0x58, 0x5a, 0x25, 0x9e, 0xb1, 0x2b, 0xbf, 0x06, 0x00, 0x00, 0xff, 0xff, 0x80, + 0x76, 0x04, 0x8a, 0x03, 0x13, 0x00, 0x00, +} + +func (this *Params) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Params) + if !ok { + that2, ok := that.(Params) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.BondDenom != that1.BondDenom { + return false + } + if this.UnbondingThreasholdTime != that1.UnbondingThreasholdTime { + return false + } + if this.UnbondingCompletionTime != that1.UnbondingCompletionTime { + return false + } + if this.MaxEntries != that1.MaxEntries { + return false + } + if this.ResourceNodeRegEnabled != that1.ResourceNodeRegEnabled { + return false + } + if !this.ResourceNodeMinDeposit.Equal(&that1.ResourceNodeMinDeposit) { + return false + } + if this.VotingPeriod != that1.VotingPeriod { + return false + } + return true +} +func (this *ResourceNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*ResourceNode) + if !ok { + that2, ok := that.(ResourceNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if !this.Pubkey.Equal(that1.Pubkey) { + return false + } + if this.Suspend != that1.Suspend { + return false + } + if this.Status != that1.Status { + return false + } + if !this.Tokens.Equal(that1.Tokens) { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + if !this.Description.Equal(&that1.Description) { + return false + } + if !this.CreationTime.Equal(that1.CreationTime) { + return false + } + if this.NodeType != that1.NodeType { + return false + } + if !this.EffectiveTokens.Equal(that1.EffectiveTokens) { + return false + } + return true +} +func (this *MetaNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MetaNode) + if !ok { + that2, ok := that.(MetaNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if !this.Pubkey.Equal(that1.Pubkey) { + return false + } + if this.Suspend != that1.Suspend { + return false + } + if this.Status != that1.Status { + return false + } + if !this.Tokens.Equal(that1.Tokens) { + return false + } + if this.OwnerAddress != that1.OwnerAddress { + return false + } + if !this.Description.Equal(&that1.Description) { + return false + } + if !this.CreationTime.Equal(that1.CreationTime) { + return false + } + return true +} +func (this *MetaNodeRegistrationVotePool) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*MetaNodeRegistrationVotePool) + if !ok { + that2, ok := that.(MetaNodeRegistrationVotePool) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddress != that1.NetworkAddress { + return false + } + if len(this.ApproveList) != len(that1.ApproveList) { + return false + } + for i := range this.ApproveList { + if this.ApproveList[i] != that1.ApproveList[i] { + return false + } + } + if len(this.RejectList) != len(that1.RejectList) { + return false + } + for i := range this.RejectList { + if this.RejectList[i] != that1.RejectList[i] { + return false + } + } + if !this.ExpireTime.Equal(that1.ExpireTime) { + return false + } + if this.IsVotePassed != that1.IsVotePassed { + return false + } + return true +} +func (this *Description) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*Description) + if !ok { + that2, ok := that.(Description) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Moniker != that1.Moniker { + return false + } + if this.Identity != that1.Identity { + return false + } + if this.Website != that1.Website { + return false + } + if this.SecurityContact != that1.SecurityContact { + return false + } + if this.Details != that1.Details { + return false + } + return true +} +func (this *UnbondingNode) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*UnbondingNode) + if !ok { + that2, ok := that.(UnbondingNode) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.NetworkAddr != that1.NetworkAddr { + return false + } + if this.IsMetaNode != that1.IsMetaNode { + return false + } + if len(this.Entries) != len(that1.Entries) { + return false + } + for i := range this.Entries { + if !this.Entries[i].Equal(that1.Entries[i]) { + return false + } + } + return true +} +func (this *UnbondingNodeEntry) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*UnbondingNodeEntry) + if !ok { + that2, ok := that.(UnbondingNodeEntry) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.CreationHeight != that1.CreationHeight { + return false + } + if !this.CompletionTime.Equal(that1.CompletionTime) { + return false + } + if that1.InitialBalance == nil { + if this.InitialBalance != nil { + return false + } + } else if !this.InitialBalance.Equal(*that1.InitialBalance) { + return false + } + if that1.Balance == nil { + if this.Balance != nil { + return false + } + } else if !this.Balance.Equal(*that1.Balance) { + return false + } + return true +} +func (m *Params) 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 *Params) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + n1, err1 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.VotingPeriod, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.VotingPeriod):]) + if err1 != nil { + return 0, err1 + } + i -= n1 + i = encodeVarintRegister(dAtA, i, uint64(n1)) + i-- + dAtA[i] = 0x3a + { + size, err := m.ResourceNodeMinDeposit.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + if m.ResourceNodeRegEnabled { + i-- + if m.ResourceNodeRegEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if m.MaxEntries != 0 { + i = encodeVarintRegister(dAtA, i, uint64(m.MaxEntries)) + i-- + dAtA[i] = 0x20 + } + n3, err3 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingCompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingCompletionTime):]) + if err3 != nil { + return 0, err3 + } + i -= n3 + i = encodeVarintRegister(dAtA, i, uint64(n3)) + i-- + dAtA[i] = 0x1a + n4, err4 := github_com_cosmos_gogoproto_types.StdDurationMarshalTo(m.UnbondingThreasholdTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingThreasholdTime):]) + if err4 != nil { + return 0, err4 + } + i -= n4 + i = encodeVarintRegister(dAtA, i, uint64(n4)) + i-- + dAtA[i] = 0x12 + if len(m.BondDenom) > 0 { + i -= len(m.BondDenom) + copy(dAtA[i:], m.BondDenom) + i = encodeVarintRegister(dAtA, i, uint64(len(m.BondDenom))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ResourceNode) 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 *ResourceNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ResourceNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.EffectiveTokens.Size() + i -= size + if _, err := m.EffectiveTokens.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + if m.NodeType != 0 { + i = encodeVarintRegister(dAtA, i, uint64(m.NodeType)) + i-- + dAtA[i] = 0x48 + } + n5, err5 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CreationTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime):]) + if err5 != nil { + return 0, err5 + } + i -= n5 + i = encodeVarintRegister(dAtA, i, uint64(n5)) + i-- + dAtA[i] = 0x42 + { + size, err := m.Description.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + if len(m.OwnerAddress) > 0 { + i -= len(m.OwnerAddress) + copy(dAtA[i:], m.OwnerAddress) + i = encodeVarintRegister(dAtA, i, uint64(len(m.OwnerAddress))) + i-- + dAtA[i] = 0x32 + } + { + size := m.Tokens.Size() + i -= size + if _, err := m.Tokens.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + if m.Status != 0 { + i = encodeVarintRegister(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x20 + } + if m.Suspend { + i-- + if m.Suspend { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.Pubkey != nil { + { + size, err := m.Pubkey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintRegister(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MetaNode) 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 *MetaNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + n8, err8 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CreationTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime):]) + if err8 != nil { + return 0, err8 + } + i -= n8 + i = encodeVarintRegister(dAtA, i, uint64(n8)) + i-- + dAtA[i] = 0x42 + { + size, err := m.Description.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + if len(m.OwnerAddress) > 0 { + i -= len(m.OwnerAddress) + copy(dAtA[i:], m.OwnerAddress) + i = encodeVarintRegister(dAtA, i, uint64(len(m.OwnerAddress))) + i-- + dAtA[i] = 0x32 + } + { + size := m.Tokens.Size() + i -= size + if _, err := m.Tokens.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + if m.Status != 0 { + i = encodeVarintRegister(dAtA, i, uint64(m.Status)) + i-- + dAtA[i] = 0x20 + } + if m.Suspend { + i-- + if m.Suspend { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + if m.Pubkey != nil { + { + size, err := m.Pubkey.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintRegister(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MetaNodeRegistrationVotePool) 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 *MetaNodeRegistrationVotePool) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MetaNodeRegistrationVotePool) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.IsVotePassed { + i-- + if m.IsVotePassed { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + n11, err11 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.ExpireTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.ExpireTime):]) + if err11 != nil { + return 0, err11 + } + i -= n11 + i = encodeVarintRegister(dAtA, i, uint64(n11)) + i-- + dAtA[i] = 0x22 + if len(m.RejectList) > 0 { + for iNdEx := len(m.RejectList) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RejectList[iNdEx]) + copy(dAtA[i:], m.RejectList[iNdEx]) + i = encodeVarintRegister(dAtA, i, uint64(len(m.RejectList[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.ApproveList) > 0 { + for iNdEx := len(m.ApproveList) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ApproveList[iNdEx]) + copy(dAtA[i:], m.ApproveList[iNdEx]) + i = encodeVarintRegister(dAtA, i, uint64(len(m.ApproveList[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.NetworkAddress) > 0 { + i -= len(m.NetworkAddress) + copy(dAtA[i:], m.NetworkAddress) + i = encodeVarintRegister(dAtA, i, uint64(len(m.NetworkAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Description) 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 *Description) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Description) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Details) > 0 { + i -= len(m.Details) + copy(dAtA[i:], m.Details) + i = encodeVarintRegister(dAtA, i, uint64(len(m.Details))) + i-- + dAtA[i] = 0x2a + } + if len(m.SecurityContact) > 0 { + i -= len(m.SecurityContact) + copy(dAtA[i:], m.SecurityContact) + i = encodeVarintRegister(dAtA, i, uint64(len(m.SecurityContact))) + i-- + dAtA[i] = 0x22 + } + if len(m.Website) > 0 { + i -= len(m.Website) + copy(dAtA[i:], m.Website) + i = encodeVarintRegister(dAtA, i, uint64(len(m.Website))) + i-- + dAtA[i] = 0x1a + } + if len(m.Identity) > 0 { + i -= len(m.Identity) + copy(dAtA[i:], m.Identity) + i = encodeVarintRegister(dAtA, i, uint64(len(m.Identity))) + i-- + dAtA[i] = 0x12 + } + if len(m.Moniker) > 0 { + i -= len(m.Moniker) + copy(dAtA[i:], m.Moniker) + i = encodeVarintRegister(dAtA, i, uint64(len(m.Moniker))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UnbondingNode) 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 *UnbondingNode) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UnbondingNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Entries) > 0 { + for iNdEx := len(m.Entries) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Entries[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.IsMetaNode { + i-- + if m.IsMetaNode { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if len(m.NetworkAddr) > 0 { + i -= len(m.NetworkAddr) + copy(dAtA[i:], m.NetworkAddr) + i = encodeVarintRegister(dAtA, i, uint64(len(m.NetworkAddr))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *UnbondingNodeEntry) 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 *UnbondingNodeEntry) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *UnbondingNodeEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Balance != nil { + { + size := m.Balance.Size() + i -= size + if _, err := m.Balance.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.InitialBalance != nil { + { + size := m.InitialBalance.Size() + i -= size + if _, err := m.InitialBalance.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintRegister(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + n12, err12 := github_com_cosmos_gogoproto_types.StdTimeMarshalTo(m.CompletionTime, dAtA[i-github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime):]) + if err12 != nil { + return 0, err12 + } + i -= n12 + i = encodeVarintRegister(dAtA, i, uint64(n12)) + i-- + dAtA[i] = 0x12 + if m.CreationHeight != 0 { + i = encodeVarintRegister(dAtA, i, uint64(m.CreationHeight)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintRegister(dAtA []byte, offset int, v uint64) int { + offset -= sovRegister(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Params) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.BondDenom) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingThreasholdTime) + n += 1 + l + sovRegister(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.UnbondingCompletionTime) + n += 1 + l + sovRegister(uint64(l)) + if m.MaxEntries != 0 { + n += 1 + sovRegister(uint64(m.MaxEntries)) + } + if m.ResourceNodeRegEnabled { + n += 2 + } + l = m.ResourceNodeMinDeposit.Size() + n += 1 + l + sovRegister(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdDuration(m.VotingPeriod) + n += 1 + l + sovRegister(uint64(l)) + return n +} + +func (m *ResourceNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + if m.Pubkey != nil { + l = m.Pubkey.Size() + n += 1 + l + sovRegister(uint64(l)) + } + if m.Suspend { + n += 2 + } + if m.Status != 0 { + n += 1 + sovRegister(uint64(m.Status)) + } + l = m.Tokens.Size() + n += 1 + l + sovRegister(uint64(l)) + l = len(m.OwnerAddress) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + l = m.Description.Size() + n += 1 + l + sovRegister(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime) + n += 1 + l + sovRegister(uint64(l)) + if m.NodeType != 0 { + n += 1 + sovRegister(uint64(m.NodeType)) + } + l = m.EffectiveTokens.Size() + n += 1 + l + sovRegister(uint64(l)) + return n +} + +func (m *MetaNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + if m.Pubkey != nil { + l = m.Pubkey.Size() + n += 1 + l + sovRegister(uint64(l)) + } + if m.Suspend { + n += 2 + } + if m.Status != 0 { + n += 1 + sovRegister(uint64(m.Status)) + } + l = m.Tokens.Size() + n += 1 + l + sovRegister(uint64(l)) + l = len(m.OwnerAddress) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + l = m.Description.Size() + n += 1 + l + sovRegister(uint64(l)) + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime) + n += 1 + l + sovRegister(uint64(l)) + return n +} + +func (m *MetaNodeRegistrationVotePool) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.NetworkAddress) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + if len(m.ApproveList) > 0 { + for _, s := range m.ApproveList { + l = len(s) + n += 1 + l + sovRegister(uint64(l)) + } + } + if len(m.RejectList) > 0 { + for _, s := range m.RejectList { + l = len(s) + n += 1 + l + sovRegister(uint64(l)) + } + } + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.ExpireTime) + n += 1 + l + sovRegister(uint64(l)) + if m.IsVotePassed { + n += 2 + } + return n +} + +func (m *Description) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Moniker) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + l = len(m.Identity) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + l = len(m.Website) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + l = len(m.SecurityContact) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + l = len(m.Details) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + return n +} + +func (m *UnbondingNode) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.NetworkAddr) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } + if m.IsMetaNode { + n += 2 + } + if len(m.Entries) > 0 { + for _, e := range m.Entries { + l = e.Size() + n += 1 + l + sovRegister(uint64(l)) + } + } + return n +} + +func (m *UnbondingNodeEntry) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CreationHeight != 0 { + n += 1 + sovRegister(uint64(m.CreationHeight)) + } + l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CompletionTime) + n += 1 + l + sovRegister(uint64(l)) + if m.InitialBalance != nil { + l = m.InitialBalance.Size() + n += 1 + l + sovRegister(uint64(l)) + } + if m.Balance != nil { + l = m.Balance.Size() + n += 1 + l + sovRegister(uint64(l)) + } + return n +} + +func sovRegister(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozRegister(x uint64) (n int) { + return sovRegister(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Params) 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 ErrIntOverflowRegister + } + 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: Params: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BondDenom", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BondDenom = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingThreasholdTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.UnbondingThreasholdTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnbondingCompletionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.UnbondingCompletionTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxEntries", wireType) + } + m.MaxEntries = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MaxEntries |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceNodeRegEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ResourceNodeRegEnabled = bool(v != 0) + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceNodeMinDeposit", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ResourceNodeMinDeposit.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VotingPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdDurationUnmarshal(&m.VotingPeriod, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRegister(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRegister + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ResourceNode) 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 ErrIntOverflowRegister + } + 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: ResourceNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ResourceNode: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pubkey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pubkey == nil { + m.Pubkey = &types1.Any{} + } + if err := m.Pubkey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Suspend", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Suspend = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= types2.BondStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tokens", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Tokens.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OwnerAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OwnerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Description.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreationTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.CreationTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeType", wireType) + } + m.NodeType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NodeType |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EffectiveTokens", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.EffectiveTokens.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRegister(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRegister + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MetaNode) 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 ErrIntOverflowRegister + } + 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: MetaNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MetaNode: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pubkey", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pubkey == nil { + m.Pubkey = &types1.Any{} + } + if err := m.Pubkey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Suspend", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Suspend = bool(v != 0) + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + m.Status = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Status |= types2.BondStatus(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Tokens", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Tokens.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OwnerAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.OwnerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Description.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreationTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.CreationTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRegister(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRegister + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MetaNodeRegistrationVotePool) 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 ErrIntOverflowRegister + } + 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: MetaNodeRegistrationVotePool: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MetaNodeRegistrationVotePool: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NetworkAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ApproveList", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ApproveList = append(m.ApproveList, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RejectList", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.RejectList = append(m.RejectList, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpireTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.ExpireTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsVotePassed", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsVotePassed = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipRegister(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRegister + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Description) 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 ErrIntOverflowRegister + } + 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: Description: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Description: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Moniker", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Moniker = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Identity", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Identity = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Website", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Website = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecurityContact", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SecurityContact = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Details", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Details = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRegister(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRegister + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnbondingNode) 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 ErrIntOverflowRegister + } + 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: UnbondingNode: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnbondingNode: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NetworkAddr", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NetworkAddr = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsMetaNode", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsMetaNode = bool(v != 0) + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Entries", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Entries = append(m.Entries, &UnbondingNodeEntry{}) + if err := m.Entries[len(m.Entries)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRegister(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRegister + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UnbondingNodeEntry) 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 ErrIntOverflowRegister + } + 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: UnbondingNodeEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UnbondingNodeEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CreationHeight", wireType) + } + m.CreationHeight = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CreationHeight |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CompletionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthRegister + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := github_com_cosmos_gogoproto_types.StdTimeUnmarshal(&m.CompletionTime, dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialBalance", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var v github_com_cosmos_cosmos_sdk_types.Int + m.InitialBalance = &v + if err := m.InitialBalance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Balance", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var v github_com_cosmos_cosmos_sdk_types.Int + m.Balance = &v + if err := m.Balance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipRegister(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthRegister + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipRegister(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, ErrIntOverflowRegister + } + 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, ErrIntOverflowRegister + } + 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, ErrIntOverflowRegister + } + 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, ErrInvalidLengthRegister + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupRegister + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthRegister + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthRegister = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowRegister = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupRegister = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/register/legacy/v011/store.go b/x/register/legacy/v011/store.go index 295f7c87..6e795f84 100644 --- a/x/register/legacy/v011/store.go +++ b/x/register/legacy/v011/store.go @@ -2,13 +2,14 @@ package v011 import ( "github.com/cosmos/cosmos-sdk/codec" + "github.com/cosmos/cosmos-sdk/store/prefix" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/stratosnet/stratos-chain/x/register/types" ) -func MigrateStore(ctx sdk.Context, storeKey storetypes.StoreKey, legacySubspace types.ParamsSubspace, cdc codec.BinaryCodec) error { +func MigrateStore(ctx sdk.Context, storeKey storetypes.StoreKey, legacySubspace types.ParamsSubspace, cdc codec.Codec) error { store := ctx.KVStore(storeKey) // migrate params @@ -16,11 +17,15 @@ func MigrateStore(ctx sdk.Context, storeKey storetypes.StoreKey, legacySubspace return err } + if err := migrateMetaNodes(store, cdc); err != nil { + return err + } + return nil } // migrateParams will set the params to store from legacySubspace -func migrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCodec, legacySubspace types.ParamsSubspace) error { +func migrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.Codec, legacySubspace types.ParamsSubspace) error { var legacyParams types.Params legacySubspace.GetParamSet(ctx, &legacyParams) @@ -32,3 +37,39 @@ func migrateParams(ctx sdk.Context, store storetypes.KVStore, cdc codec.BinaryCo store.Set(types.ParamsKey, bz) return nil } + +func migrateMetaNodes(store sdk.KVStore, cdc codec.Codec) error { + oldMetaNodeStore := prefix.NewStore(store, MetaNodeKey) + iterator := oldMetaNodeStore.Iterator(nil, nil) + defer iterator.Close() + + for ; iterator.Valid(); iterator.Next() { + key := iterator.Key() + oldMetaNode := MustUnmarshalMetaNode(cdc, iterator.Value()) + newMetaNode := types.MetaNode{ + NetworkAddress: oldMetaNode.NetworkAddress, + Pubkey: oldMetaNode.Pubkey, + Suspend: oldMetaNode.Suspend, + Status: oldMetaNode.Status, + Tokens: oldMetaNode.Tokens, + OwnerAddress: oldMetaNode.OwnerAddress, + BeneficiaryAddress: oldMetaNode.OwnerAddress, + Description: types.Description{ + Moniker: oldMetaNode.Description.Moniker, + Identity: oldMetaNode.Description.Identity, + Website: oldMetaNode.Description.Website, + SecurityContact: oldMetaNode.Description.SecurityContact, + Details: oldMetaNode.Description.Details, + }, + CreationTime: oldMetaNode.CreationTime, + } + + newMetaNodeBz := types.MustMarshalMetaNode(cdc, newMetaNode) + storeKey := types.GetMetaNodeKey(key) + + oldMetaNodeStore.Delete(iterator.Key()) + store.Set(storeKey, newMetaNodeBz) + } + + return nil +} diff --git a/x/register/types/errors.go b/x/register/types/errors.go index 52ba9fa4..94dc377c 100644 --- a/x/register/types/errors.go +++ b/x/register/types/errors.go @@ -34,6 +34,7 @@ const ( codeErrNoVoterMetaNodeFound codeErrSameAddr codeErrInvalidOwnerAddr + codeErrInvalidBeneficiaryAddr codeErrInvalidVoterStatus codeEcoderrNoRegistrationVotePoolFound codeErrDuplicateVoting @@ -99,6 +100,7 @@ var ( ErrNoVoterMetaNodeFound = errors.Register(ModuleName, codeErrNoVoterMetaNodeFound, "voter meta node does not exist") ErrSameAddr = errors.Register(ModuleName, codeErrSameAddr, "node address should not same as the voter address") ErrInvalidOwnerAddr = errors.Register(ModuleName, codeErrInvalidOwnerAddr, "invalid owner address") + ErrInvalidBeneficiaryAddr = errors.Register(ModuleName, codeErrInvalidBeneficiaryAddr, "invalid beneficiary address") ErrInvalidVoterStatus = errors.Register(ModuleName, codeErrInvalidVoterStatus, "invalid voter status") ErrNoRegistrationVotePoolFound = errors.Register(ModuleName, codeEcoderrNoRegistrationVotePoolFound, "registration pool does not exist") ErrDuplicateVoting = errors.Register(ModuleName, codeErrDuplicateVoting, "duplicate voting") diff --git a/x/register/types/genesis.go b/x/register/types/genesis.go index 8f447d67..75486a99 100644 --- a/x/register/types/genesis.go +++ b/x/register/types/genesis.go @@ -2,6 +2,7 @@ package types import ( "encoding/json" + "strings" "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" @@ -80,6 +81,14 @@ func (v GenesisMetaNode) ToMetaNode() (MetaNode, error) { return MetaNode{}, errors.Wrap(ErrInvalidOwnerAddr, err.Error()) } + beneficiaryAddress := ownerAddress + if len(strings.TrimSpace(v.BeneficiaryAddress)) > 0 { + beneficiaryAddress, err = sdk.AccAddressFromBech32(v.BeneficiaryAddress) + if err != nil { + return MetaNode{}, errors.Wrap(ErrInvalidBeneficiaryAddr, err.Error()) + } + } + netAddr, err := stratos.SdsAddressFromBech32(v.GetNetworkAddress()) if err != nil { return MetaNode{}, errors.Wrap(ErrInvalidNetworkAddr, err.Error()) @@ -89,13 +98,14 @@ func (v GenesisMetaNode) ToMetaNode() (MetaNode, error) { tokenAmt := tokens.Amount return MetaNode{ - NetworkAddress: netAddr.String(), - Pubkey: v.GetPubkey(), - Suspend: v.GetSuspend(), - Status: v.GetStatus(), - Tokens: tokenAmt, - OwnerAddress: ownerAddress.String(), - Description: v.GetDescription(), + NetworkAddress: netAddr.String(), + Pubkey: v.GetPubkey(), + Suspend: v.GetSuspend(), + Status: v.GetStatus(), + Tokens: tokenAmt, + OwnerAddress: ownerAddress.String(), + BeneficiaryAddress: beneficiaryAddress.String(), + Description: v.GetDescription(), }, nil } diff --git a/x/register/types/genesis.pb.go b/x/register/types/genesis.pb.go index 67f8684d..ff327330 100644 --- a/x/register/types/genesis.pb.go +++ b/x/register/types/genesis.pb.go @@ -101,13 +101,14 @@ func (m *GenesisState) GetSlashing() []Slashing { } type GenesisMetaNode struct { - NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` - Pubkey *types.Any `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey" yaml:"pubkey"` - Suspend bool `protobuf:"varint,3,opt,name=suspend,proto3" json:"suspend" yaml:"suspend"` - Status types1.BondStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status" yaml:"status"` - Tokens types2.Coin `protobuf:"bytes,5,opt,name=tokens,proto3" json:"tokens" yaml:"tokens"` - OwnerAddress string `protobuf:"bytes,6,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` - Description Description `protobuf:"bytes,7,opt,name=description,proto3" json:"description" yaml:"description"` + NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` + Pubkey *types.Any `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey" yaml:"pubkey"` + Suspend bool `protobuf:"varint,3,opt,name=suspend,proto3" json:"suspend" yaml:"suspend"` + Status types1.BondStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status" yaml:"status"` + Tokens types2.Coin `protobuf:"bytes,5,opt,name=tokens,proto3" json:"tokens" yaml:"tokens"` + OwnerAddress string `protobuf:"bytes,6,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` + BeneficiaryAddress string `protobuf:"bytes,7,opt,name=beneficiary_address,json=beneficiaryAddress,proto3" json:"beneficiary_address" yaml:"beneficiary_address"` + Description Description `protobuf:"bytes,8,opt,name=description,proto3" json:"description" yaml:"description"` } func (m *GenesisMetaNode) Reset() { *m = GenesisMetaNode{} } @@ -185,6 +186,13 @@ func (m *GenesisMetaNode) GetOwnerAddress() string { return "" } +func (m *GenesisMetaNode) GetBeneficiaryAddress() string { + if m != nil { + return m.BeneficiaryAddress + } + return "" +} + func (m *GenesisMetaNode) GetDescription() Description { if m != nil { return m.Description @@ -253,65 +261,67 @@ func init() { func init() { proto.RegisterFile("stratos/register/v1/genesis.proto", fileDescriptor_5bdab54ebea9e48e) } var fileDescriptor_5bdab54ebea9e48e = []byte{ - // 929 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x41, 0x6f, 0xe3, 0x44, - 0x14, 0xae, 0xb7, 0x34, 0xdb, 0x4e, 0x9b, 0x2c, 0xf5, 0x16, 0x70, 0xbb, 0xda, 0x4c, 0xd6, 0x5a, - 0xa1, 0x0a, 0xa9, 0xb6, 0xda, 0x45, 0x42, 0x70, 0xab, 0xb7, 0x2b, 0xb4, 0x02, 0xaa, 0x95, 0x7b, - 0x40, 0x70, 0x89, 0x26, 0xf6, 0xd4, 0x1d, 0x12, 0xcf, 0x58, 0x9e, 0x49, 0x4a, 0xfa, 0x27, 0xe0, - 0xcc, 0x19, 0xc1, 0x0a, 0x2e, 0x1c, 0xf8, 0x11, 0x2b, 0x4e, 0x2b, 0x4e, 0x88, 0xc3, 0x80, 0xda, - 0x03, 0x52, 0x8e, 0xfe, 0x05, 0xc8, 0x33, 0xe3, 0x38, 0xc9, 0x66, 0x91, 0xb8, 0xb4, 0x7e, 0xdf, - 0xfb, 0xe6, 0xbd, 0xef, 0xcd, 0xbc, 0xf7, 0x02, 0x1e, 0x70, 0x91, 0x23, 0xc1, 0xb8, 0x9f, 0xe3, - 0x84, 0x70, 0x81, 0x73, 0x7f, 0x74, 0xe8, 0x27, 0x98, 0x62, 0x4e, 0xb8, 0x97, 0xe5, 0x4c, 0x30, - 0xfb, 0xae, 0xa1, 0x78, 0x15, 0xc5, 0x1b, 0x1d, 0xee, 0xed, 0x26, 0x8c, 0x25, 0x03, 0xec, 0x2b, - 0x4a, 0x6f, 0x78, 0xee, 0x23, 0x3a, 0xd6, 0xfc, 0xbd, 0x9d, 0x84, 0x25, 0x4c, 0x7d, 0xfa, 0xe5, - 0x97, 0x41, 0x77, 0x23, 0xc6, 0x53, 0xc6, 0xbb, 0xda, 0xa1, 0x0d, 0xe3, 0xda, 0x46, 0x29, 0xa1, - 0xcc, 0x57, 0x7f, 0x0d, 0xd4, 0xd6, 0x04, 0xbf, 0x87, 0x38, 0xf6, 0x47, 0x87, 0x3d, 0x2c, 0xd0, - 0xa1, 0x1f, 0x31, 0x42, 0x8d, 0xff, 0xa1, 0xf1, 0x73, 0x81, 0xfa, 0x84, 0x26, 0x53, 0x8a, 0xb1, - 0x0d, 0xcb, 0x5d, 0x56, 0xdc, 0xb4, 0x0a, 0xc5, 0x71, 0xbf, 0x6f, 0x80, 0xad, 0x8f, 0x75, 0xbd, - 0x67, 0x02, 0x09, 0x6c, 0x7f, 0x01, 0x1a, 0x19, 0xca, 0x51, 0xca, 0x1d, 0xab, 0x63, 0xed, 0x6f, - 0x1e, 0xdd, 0xf3, 0x96, 0xd4, 0xef, 0x3d, 0x53, 0x94, 0xe0, 0xe1, 0x0b, 0x09, 0x57, 0x26, 0x12, - 0x9a, 0x23, 0x85, 0x84, 0xcd, 0x31, 0x4a, 0x07, 0x1f, 0xb9, 0xda, 0x76, 0x9f, 0xff, 0xf3, 0xcb, - 0x7b, 0x56, 0x68, 0xbc, 0xf6, 0x37, 0x16, 0x68, 0xe5, 0x98, 0xb3, 0x61, 0x1e, 0xe1, 0x2e, 0x65, - 0x31, 0xe6, 0xce, 0xad, 0xce, 0xea, 0xfe, 0xe6, 0xd1, 0x83, 0xa5, 0x39, 0x42, 0x43, 0x3d, 0x65, - 0x31, 0x0e, 0x9e, 0x98, 0x4c, 0x0b, 0x01, 0x0a, 0x09, 0xdf, 0xd2, 0x19, 0xe7, 0x71, 0xf7, 0xa7, - 0xbf, 0x60, 0x73, 0x36, 0x00, 0xd7, 0x52, 0x9a, 0xf9, 0x2c, 0x66, 0x5f, 0x02, 0x90, 0x62, 0x81, - 0x8c, 0x98, 0x55, 0x25, 0xe6, 0xfe, 0x52, 0x31, 0x9f, 0x61, 0x81, 0x94, 0x90, 0x0f, 0x8d, 0x90, - 0x99, 0x83, 0x85, 0x84, 0xdb, 0x5a, 0x44, 0x8d, 0x95, 0x02, 0x36, 0xaa, 0x43, 0x26, 0xf9, 0x46, - 0x5a, 0xd9, 0xf6, 0x0f, 0x16, 0xb8, 0x9b, 0xe3, 0x14, 0x11, 0x4a, 0x68, 0xd2, 0xa5, 0xec, 0xaa, - 0x3b, 0x20, 0x29, 0x11, 0xce, 0x1b, 0x1d, 0x6b, 0x7f, 0x23, 0x18, 0x95, 0x39, 0xfe, 0x94, 0xf0, - 0xdd, 0x84, 0x88, 0x8b, 0x61, 0xcf, 0x8b, 0x58, 0x6a, 0x5a, 0xc6, 0xfc, 0x3b, 0xe0, 0x71, 0xdf, - 0x17, 0xe3, 0x0c, 0x73, 0xef, 0x29, 0x15, 0x13, 0x09, 0x97, 0x05, 0x2b, 0x24, 0xdc, 0xab, 0xee, - 0xe6, 0x15, 0xa7, 0xfb, 0xfb, 0xaf, 0x07, 0xc0, 0xb4, 0xe1, 0x53, 0x2a, 0xb4, 0xc0, 0xed, 0x29, - 0xf1, 0x94, 0x5d, 0x7d, 0x5a, 0xd2, 0xec, 0x0b, 0xb0, 0xce, 0x07, 0x88, 0x5f, 0x10, 0x9a, 0x38, - 0x6b, 0xff, 0x71, 0x3f, 0x67, 0x86, 0x14, 0x1c, 0x98, 0xfb, 0x99, 0x1e, 0x2b, 0x24, 0xdc, 0xd1, - 0x32, 0x2a, 0xa4, 0x4b, 0xe8, 0x39, 0x33, 0xbd, 0x31, 0xa5, 0xd9, 0xdf, 0x59, 0xe0, 0xcd, 0x18, - 0x67, 0x8c, 0x13, 0xa1, 0x64, 0xe6, 0x48, 0x60, 0xa7, 0xa1, 0xee, 0x23, 0xfb, 0x1f, 0xf7, 0x71, - 0x82, 0xa3, 0x89, 0x84, 0xaf, 0x44, 0x2a, 0x24, 0x7c, 0x47, 0xab, 0x58, 0xf4, 0xcc, 0xde, 0xc4, - 0x09, 0x8e, 0xb4, 0xac, 0x96, 0x61, 0x9d, 0xb2, 0xab, 0xb0, 0xe4, 0xfc, 0xbc, 0x06, 0xee, 0x98, - 0x31, 0xa9, 0x1e, 0xd5, 0xa6, 0xe0, 0x0e, 0xc5, 0xe2, 0x92, 0xe5, 0xfd, 0x2e, 0x8a, 0xe3, 0x1c, - 0x73, 0x3d, 0x32, 0x1b, 0xc1, 0x93, 0x89, 0x84, 0x8b, 0xae, 0x42, 0xc2, 0xb7, 0x75, 0xfe, 0x05, - 0x47, 0x99, 0x7e, 0xc7, 0xa4, 0x3f, 0xd6, 0xd0, 0x99, 0xc8, 0x09, 0x4d, 0xc2, 0x96, 0x61, 0x1a, - 0xd4, 0x46, 0xa0, 0x91, 0x0d, 0x7b, 0x7d, 0x3c, 0x76, 0x6e, 0xa9, 0xc9, 0xdc, 0xf1, 0xf4, 0x12, - 0xf2, 0xaa, 0x25, 0xe4, 0x1d, 0xd3, 0x71, 0xf0, 0x48, 0x8d, 0xa3, 0xe2, 0xcd, 0x8c, 0xa3, 0xb2, - 0xdd, 0xdf, 0xea, 0x54, 0x51, 0x3e, 0xce, 0x04, 0xf3, 0x9e, 0x0d, 0x7b, 0x9f, 0xe0, 0x71, 0x68, - 0x0e, 0xd8, 0x1f, 0x80, 0xdb, 0x7c, 0xc8, 0x33, 0x4c, 0x63, 0x67, 0xb5, 0x63, 0xed, 0xaf, 0x07, - 0xf7, 0x27, 0x12, 0x56, 0x50, 0x21, 0x61, 0xcb, 0x3c, 0xa4, 0x06, 0xdc, 0xb0, 0x72, 0xd9, 0x9f, - 0x83, 0x06, 0x17, 0x48, 0x0c, 0xb9, 0xea, 0xe0, 0xd6, 0x91, 0xeb, 0x99, 0x3c, 0xd5, 0x46, 0x32, - 0x1b, 0xca, 0x0b, 0x18, 0x8d, 0xcf, 0x14, 0x33, 0xb8, 0x57, 0x2a, 0xd5, 0xa7, 0x6a, 0xa5, 0xda, - 0x76, 0x43, 0xe3, 0x28, 0x03, 0x0b, 0xd6, 0xc7, 0x94, 0x3b, 0x6b, 0xaa, 0xe8, 0xdd, 0x2a, 0x70, - 0xb9, 0x1a, 0xa7, 0x51, 0x1f, 0x33, 0x42, 0xeb, 0x65, 0xa4, 0x0f, 0xd4, 0x31, 0xb5, 0x5d, 0x2d, - 0x23, 0x6d, 0xd9, 0xe7, 0xa0, 0xc9, 0x2e, 0x29, 0xce, 0xa7, 0x6f, 0xa7, 0x5b, 0xed, 0x78, 0x22, - 0xe1, 0xbc, 0xa3, 0xee, 0xdf, 0x39, 0xf8, 0xf5, 0xef, 0xb6, 0xa5, 0x78, 0xd5, 0xab, 0xe5, 0x60, - 0x33, 0xc6, 0x3c, 0xca, 0x49, 0x26, 0x08, 0xa3, 0xce, 0x6d, 0x55, 0x45, 0x67, 0xe9, 0x0c, 0x9d, - 0xd4, 0xbc, 0xc0, 0x33, 0xc5, 0xcc, 0x1e, 0x2e, 0x24, 0xb4, 0xab, 0x1e, 0x9e, 0x82, 0xa6, 0xac, - 0x59, 0x9e, 0xfb, 0xa3, 0x05, 0xd6, 0xab, 0x81, 0xb4, 0xbf, 0x02, 0xad, 0x4b, 0x34, 0x18, 0x60, - 0xb1, 0xd0, 0xa5, 0x8f, 0xcb, 0x6d, 0x3a, 0xef, 0xa9, 0xb7, 0xe9, 0x3c, 0xfe, 0xfa, 0x5a, 0x9b, - 0x9a, 0x58, 0x15, 0xeb, 0x83, 0xb5, 0x11, 0x1a, 0x0c, 0xb1, 0xea, 0xd0, 0xd5, 0x60, 0x77, 0x22, - 0xa1, 0x06, 0x0a, 0x09, 0xb7, 0x74, 0x64, 0x65, 0xba, 0xa1, 0x86, 0x83, 0xf0, 0xf9, 0x75, 0xdb, - 0x7a, 0x71, 0xdd, 0xb6, 0x5e, 0x5e, 0xb7, 0xad, 0xbf, 0xaf, 0xdb, 0xd6, 0xb7, 0x37, 0xed, 0x95, - 0x97, 0x37, 0xed, 0x95, 0x3f, 0x6e, 0xda, 0x2b, 0x5f, 0xbe, 0x3f, 0x33, 0xef, 0xe6, 0xc2, 0x28, - 0x16, 0xd5, 0xe7, 0x41, 0x74, 0x81, 0x08, 0xf5, 0xbf, 0xae, 0x7f, 0xde, 0xd4, 0x06, 0xe8, 0x35, - 0xd4, 0x3c, 0x3c, 0xfa, 0x37, 0x00, 0x00, 0xff, 0xff, 0x17, 0x5e, 0x52, 0x83, 0xdc, 0x07, 0x00, + // 961 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xcf, 0x36, 0xc4, 0x4d, 0x26, 0xb1, 0x4b, 0x36, 0x01, 0x9c, 0x54, 0xf5, 0xb8, 0xab, 0x0a, + 0x45, 0x48, 0xd9, 0x55, 0x52, 0x10, 0x82, 0x5b, 0xb6, 0xa9, 0x50, 0x05, 0x44, 0xd5, 0xe6, 0x80, + 0xe0, 0x62, 0x8d, 0xd7, 0xe3, 0xcd, 0x60, 0x7b, 0xc6, 0xda, 0x19, 0x3b, 0x38, 0x5f, 0x02, 0x24, + 0x6e, 0x9c, 0x11, 0x54, 0x9c, 0x38, 0xf0, 0x21, 0x2a, 0x4e, 0x15, 0x27, 0xc4, 0x61, 0x40, 0xc9, + 0x01, 0xc9, 0xc7, 0xfd, 0x04, 0x68, 0xe7, 0x8f, 0x77, 0xed, 0xba, 0x48, 0xbd, 0x24, 0xfb, 0x7e, + 0xef, 0xf7, 0xde, 0xfb, 0xcd, 0x9b, 0x79, 0xcf, 0xe0, 0x3e, 0x17, 0x29, 0x12, 0x8c, 0x07, 0x29, + 0x4e, 0x08, 0x17, 0x38, 0x0d, 0xc6, 0x47, 0x41, 0x82, 0x29, 0xe6, 0x84, 0xfb, 0xc3, 0x94, 0x09, + 0xe6, 0xee, 0x18, 0x8a, 0x6f, 0x29, 0xfe, 0xf8, 0x68, 0x7f, 0x2f, 0x61, 0x2c, 0xe9, 0xe3, 0x40, + 0x51, 0xda, 0xa3, 0x6e, 0x80, 0xe8, 0x44, 0xf3, 0xf7, 0x77, 0x13, 0x96, 0x30, 0xf5, 0x19, 0xe4, + 0x5f, 0x06, 0xdd, 0x8b, 0x19, 0x1f, 0x30, 0xde, 0xd2, 0x0e, 0x6d, 0x18, 0xd7, 0x36, 0x1a, 0x10, + 0xca, 0x02, 0xf5, 0xd7, 0x40, 0x0d, 0x4d, 0x08, 0xda, 0x88, 0xe3, 0x60, 0x7c, 0xd4, 0xc6, 0x02, + 0x1d, 0x05, 0x31, 0x23, 0xd4, 0xf8, 0x1f, 0x18, 0x3f, 0x17, 0xa8, 0x47, 0x68, 0x32, 0xa3, 0x18, + 0xdb, 0xb0, 0xbc, 0x65, 0x87, 0x9b, 0x9d, 0x42, 0x71, 0xbc, 0x1f, 0x2b, 0x60, 0xeb, 0x13, 0x7d, + 0xde, 0x73, 0x81, 0x04, 0x76, 0xbf, 0x04, 0x95, 0x21, 0x4a, 0xd1, 0x80, 0xd7, 0x9d, 0xa6, 0x73, + 0xb0, 0x79, 0x7c, 0xd7, 0x5f, 0x72, 0x7e, 0xff, 0xa9, 0xa2, 0x84, 0x0f, 0x9e, 0x4b, 0xb8, 0x32, + 0x95, 0xd0, 0x84, 0x64, 0x12, 0x56, 0x27, 0x68, 0xd0, 0xff, 0xd8, 0xd3, 0xb6, 0xf7, 0xec, 0xdf, + 0x5f, 0xdf, 0x73, 0x22, 0xe3, 0x75, 0xbf, 0x75, 0x40, 0x2d, 0xc5, 0x9c, 0x8d, 0xd2, 0x18, 0xb7, + 0x28, 0xeb, 0x60, 0x5e, 0xbf, 0xd5, 0x5c, 0x3d, 0xd8, 0x3c, 0xbe, 0xbf, 0xb4, 0x46, 0x64, 0xa8, + 0x67, 0xac, 0x83, 0xc3, 0xc7, 0xa6, 0xd2, 0x42, 0x82, 0x4c, 0xc2, 0xb7, 0x74, 0xc5, 0x79, 0xdc, + 0xfb, 0xe5, 0x6f, 0x58, 0x2d, 0x27, 0xe0, 0x5a, 0x4a, 0x35, 0x2d, 0x63, 0xee, 0x25, 0x00, 0x03, + 0x2c, 0x90, 0x11, 0xb3, 0xaa, 0xc4, 0xdc, 0x5b, 0x2a, 0xe6, 0x73, 0x2c, 0x90, 0x12, 0xf2, 0x91, + 0x11, 0x52, 0x0a, 0xcc, 0x24, 0xdc, 0xd6, 0x22, 0x0a, 0x2c, 0x17, 0xb0, 0x61, 0x83, 0x4c, 0xf1, + 0x8d, 0x81, 0xb5, 0xdd, 0x9f, 0x1c, 0xb0, 0x93, 0xe2, 0x01, 0x22, 0x94, 0xd0, 0xa4, 0x45, 0xd9, + 0x55, 0xab, 0x4f, 0x06, 0x44, 0xd4, 0xdf, 0x68, 0x3a, 0x07, 0x1b, 0xe1, 0x38, 0xaf, 0xf1, 0x97, + 0x84, 0xef, 0x26, 0x44, 0x5c, 0x8c, 0xda, 0x7e, 0xcc, 0x06, 0xe6, 0xc9, 0x98, 0x7f, 0x87, 0xbc, + 0xd3, 0x0b, 0xc4, 0x64, 0x88, 0xb9, 0xff, 0x84, 0x8a, 0xa9, 0x84, 0xcb, 0x92, 0x65, 0x12, 0xee, + 0xdb, 0xde, 0xbc, 0xe4, 0xf4, 0xfe, 0xf8, 0xed, 0x10, 0x98, 0x67, 0xf8, 0x84, 0x0a, 0x2d, 0x70, + 0x7b, 0x46, 0x3c, 0x63, 0x57, 0x9f, 0xe5, 0x34, 0xf7, 0x02, 0xac, 0xf3, 0x3e, 0xe2, 0x17, 0x84, + 0x26, 0xf5, 0xb5, 0xff, 0xe9, 0xcf, 0xb9, 0x21, 0x85, 0x87, 0xa6, 0x3f, 0xb3, 0xb0, 0x4c, 0xc2, + 0x5d, 0x2d, 0xc3, 0x22, 0x2d, 0x42, 0xbb, 0xcc, 0xbc, 0x8d, 0x19, 0xcd, 0xfd, 0xc1, 0x01, 0x6f, + 0x76, 0xf0, 0x90, 0x71, 0x22, 0x94, 0xcc, 0x14, 0x09, 0x5c, 0xaf, 0xa8, 0x7e, 0x0c, 0x5f, 0xa3, + 0x1f, 0xa7, 0x38, 0x9e, 0x4a, 0xf8, 0x52, 0xa6, 0x4c, 0xc2, 0x77, 0xb4, 0x8a, 0x45, 0x4f, 0xb9, + 0x13, 0xa7, 0x38, 0xd6, 0xb2, 0x6a, 0x86, 0x75, 0xc6, 0xae, 0xa2, 0x9c, 0xf3, 0x7d, 0x05, 0xdc, + 0x31, 0x63, 0x62, 0x2f, 0xd5, 0xa5, 0xe0, 0x0e, 0xc5, 0xe2, 0x92, 0xa5, 0xbd, 0x16, 0xea, 0x74, + 0x52, 0xcc, 0xf5, 0xc8, 0x6c, 0x84, 0x8f, 0xa7, 0x12, 0x2e, 0xba, 0x32, 0x09, 0xdf, 0xd6, 0xf5, + 0x17, 0x1c, 0x79, 0xf9, 0x5d, 0x53, 0xfe, 0x44, 0x43, 0xe7, 0x22, 0x25, 0x34, 0x89, 0x6a, 0x86, + 0x69, 0x50, 0x17, 0x81, 0xca, 0x70, 0xd4, 0xee, 0xe1, 0x49, 0xfd, 0x96, 0x9a, 0xcc, 0x5d, 0x5f, + 0x2f, 0x21, 0xdf, 0x2e, 0x21, 0xff, 0x84, 0x4e, 0xc2, 0x87, 0x6a, 0x1c, 0x15, 0xaf, 0x34, 0x8e, + 0xca, 0xf6, 0x7e, 0x2f, 0x4a, 0xc5, 0xe9, 0x64, 0x28, 0x98, 0xff, 0x74, 0xd4, 0xfe, 0x14, 0x4f, + 0x22, 0x13, 0xe0, 0x7e, 0x08, 0x6e, 0xf3, 0x11, 0x1f, 0x62, 0xda, 0xa9, 0xaf, 0x36, 0x9d, 0x83, + 0xf5, 0xf0, 0xde, 0x54, 0x42, 0x0b, 0x65, 0x12, 0xd6, 0xcc, 0x45, 0x6a, 0xc0, 0x8b, 0xac, 0xcb, + 0xfd, 0x02, 0x54, 0xb8, 0x40, 0x62, 0xc4, 0xd5, 0x0b, 0xae, 0x1d, 0x7b, 0xbe, 0xa9, 0x63, 0x37, + 0x92, 0xd9, 0x50, 0x7e, 0xc8, 0x68, 0xe7, 0x5c, 0x31, 0xc3, 0xbb, 0xb9, 0x52, 0x1d, 0x55, 0x28, + 0xd5, 0xb6, 0x17, 0x19, 0x47, 0x9e, 0x58, 0xb0, 0x1e, 0xa6, 0xbc, 0xbe, 0xa6, 0x0e, 0xbd, 0x67, + 0x13, 0xe7, 0xab, 0x71, 0x96, 0xf5, 0x11, 0x23, 0xb4, 0x58, 0x46, 0x3a, 0xa0, 0xc8, 0xa9, 0x6d, + 0xbb, 0x8c, 0xb4, 0xe5, 0x76, 0x41, 0x95, 0x5d, 0x52, 0x9c, 0xce, 0xee, 0x4e, 0x3f, 0xb5, 0x93, + 0xa9, 0x84, 0xf3, 0x8e, 0xe2, 0xfd, 0xce, 0xc1, 0xaf, 0xbe, 0xb7, 0x2d, 0xc5, 0xb3, 0xb7, 0xd6, + 0x05, 0x3b, 0x6d, 0x4c, 0x71, 0x97, 0xc4, 0x04, 0xa5, 0x93, 0x59, 0xb5, 0xdb, 0xaa, 0xda, 0x07, + 0xf9, 0xe8, 0x2e, 0x71, 0x17, 0xa3, 0xbb, 0xc4, 0xe9, 0x45, 0x6e, 0x09, 0xb5, 0x75, 0x52, 0xb0, + 0xd9, 0xc1, 0x3c, 0x4e, 0xc9, 0x50, 0x10, 0x46, 0xeb, 0xeb, 0xaa, 0x5b, 0xcd, 0xa5, 0xb3, 0x7a, + 0x5a, 0xf0, 0x42, 0xdf, 0x34, 0xad, 0x1c, 0x9c, 0x49, 0xe8, 0xda, 0x59, 0x99, 0x81, 0xa6, 0x7d, + 0x65, 0x9e, 0xf7, 0xb3, 0x03, 0xd6, 0xed, 0xe0, 0xbb, 0x5f, 0x83, 0xda, 0x25, 0xea, 0xf7, 0xb1, + 0x58, 0x98, 0x86, 0x47, 0xf9, 0xd6, 0x9e, 0xf7, 0x14, 0x5b, 0x7b, 0x1e, 0x7f, 0x75, 0x4f, 0xab, + 0x9a, 0x68, 0x0f, 0x1b, 0x80, 0xb5, 0x31, 0xea, 0x8f, 0xb0, 0x9a, 0x84, 0xd5, 0x70, 0x6f, 0x2a, + 0xa1, 0x06, 0x32, 0x09, 0xb7, 0x74, 0x66, 0x65, 0x7a, 0x91, 0x86, 0xc3, 0xe8, 0xd9, 0x75, 0xc3, + 0x79, 0x7e, 0xdd, 0x70, 0x5e, 0x5c, 0x37, 0x9c, 0x7f, 0xae, 0x1b, 0xce, 0x77, 0x37, 0x8d, 0x95, + 0x17, 0x37, 0x8d, 0x95, 0x3f, 0x6f, 0x1a, 0x2b, 0x5f, 0xbd, 0x5f, 0xda, 0x2b, 0xa6, 0x61, 0x14, + 0x0b, 0xfb, 0x79, 0x18, 0x5f, 0x20, 0x42, 0x83, 0x6f, 0x8a, 0x9f, 0x51, 0xb5, 0x69, 0xda, 0x15, + 0x35, 0x77, 0x0f, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x8d, 0x7b, 0x91, 0x44, 0x08, 0x00, 0x00, } @@ -406,6 +416,9 @@ func (this *GenesisMetaNode) Equal(that interface{}) bool { if this.OwnerAddress != that1.OwnerAddress { return false } + if this.BeneficiaryAddress != that1.BeneficiaryAddress { + return false + } if !this.Description.Equal(&that1.Description) { return false } @@ -562,7 +575,14 @@ func (m *GenesisMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintGenesis(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x42 + if len(m.BeneficiaryAddress) > 0 { + i -= len(m.BeneficiaryAddress) + copy(dAtA[i:], m.BeneficiaryAddress) + i = encodeVarintGenesis(dAtA, i, uint64(len(m.BeneficiaryAddress))) + i-- + dAtA[i] = 0x3a + } if len(m.OwnerAddress) > 0 { i -= len(m.OwnerAddress) copy(dAtA[i:], m.OwnerAddress) @@ -722,6 +742,10 @@ func (m *GenesisMetaNode) Size() (n int) { if l > 0 { n += 1 + l + sovGenesis(uint64(l)) } + l = len(m.BeneficiaryAddress) + if l > 0 { + n += 1 + l + sovGenesis(uint64(l)) + } l = m.Description.Size() n += 1 + l + sovGenesis(uint64(l)) return n @@ -1204,6 +1228,38 @@ func (m *GenesisMetaNode) Unmarshal(dAtA []byte) error { m.OwnerAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BeneficiaryAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + 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 ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BeneficiaryAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } diff --git a/x/register/types/meta_node.go b/x/register/types/meta_node.go index ce9c4f6b..83956e4b 100644 --- a/x/register/types/meta_node.go +++ b/x/register/types/meta_node.go @@ -25,20 +25,23 @@ type CacheStatus struct { } // NewMetaNode - initialize a new meta node -func NewMetaNode(networkAddr stratos.SdsAddress, pubKey cryptotypes.PubKey, ownerAddr sdk.AccAddress, description Description, creationTime time.Time) (MetaNode, error) { +func NewMetaNode(networkAddr stratos.SdsAddress, pubKey cryptotypes.PubKey, ownerAddr sdk.AccAddress, + beneficiaryAddress sdk.AccAddress, description Description, creationTime time.Time) (MetaNode, error) { + pkAny, err := codectypes.NewAnyWithValue(pubKey) if err != nil { return MetaNode{}, err } return MetaNode{ - NetworkAddress: networkAddr.String(), - Pubkey: pkAny, - Suspend: true, - Status: stakingtypes.Unbonded, - Tokens: sdkmath.ZeroInt(), - OwnerAddress: ownerAddr.String(), - Description: description, - CreationTime: creationTime, + NetworkAddress: networkAddr.String(), + Pubkey: pkAny, + Suspend: true, + Status: stakingtypes.Unbonded, + Tokens: sdkmath.ZeroInt(), + OwnerAddress: ownerAddr.String(), + BeneficiaryAddress: beneficiaryAddress.String(), + Description: description, + CreationTime: creationTime, }, nil } @@ -62,10 +65,11 @@ func (v MetaNode) ConvertToString() string { Status: %s Tokens: %s Owner Address: %s + Beneficiary Address %s Description: %s CreationTime: %s }`, v.GetNetworkAddress(), pubKey, v.GetSuspend(), v.GetStatus(), - v.Tokens, v.GetOwnerAddress(), v.GetDescription(), v.GetCreationTime()) + v.Tokens, v.GetOwnerAddress(), v.GetBeneficiaryAddress(), v.GetDescription(), v.GetCreationTime()) } // AddToken adds tokens to a meta node @@ -119,6 +123,12 @@ func (v MetaNode) Validate() error { if ownerAddr.Empty() { return ErrEmptyOwnerAddr } + + _, err = sdk.AccAddressFromBech32(v.GetBeneficiaryAddress()) + if err != nil { + return err + } + if v.Tokens.LT(sdkmath.ZeroInt()) { return ErrValueNegative } diff --git a/x/register/types/msg.go b/x/register/types/msg.go index 85ddca79..a559fcdd 100644 --- a/x/register/types/msg.go +++ b/x/register/types/msg.go @@ -134,7 +134,7 @@ func (msg MsgCreateResourceNode) UnpackInterfaces(unpacker codectypes.AnyUnpacke // NewMsgCreateMetaNode creates a new Msg instance func NewMsgCreateMetaNode(networkAddr stratos.SdsAddress, pubKey cryptotypes.PubKey, //nolint:interfacer - value sdk.Coin, ownerAddr sdk.AccAddress, description Description, + value sdk.Coin, ownerAddr sdk.AccAddress, beneficiaryAddr sdk.AccAddress, description Description, ) (*MsgCreateMetaNode, error) { var pkAny *codectypes.Any if pubKey != nil { @@ -147,11 +147,12 @@ func NewMsgCreateMetaNode(networkAddr stratos.SdsAddress, pubKey cryptotypes.Pub } return &MsgCreateMetaNode{ - NetworkAddress: networkAddr.String(), - Pubkey: pkAny, - Value: value, - OwnerAddress: ownerAddr.String(), - Description: description, + NetworkAddress: networkAddr.String(), + Pubkey: pkAny, + Value: value, + OwnerAddress: ownerAddr.String(), + BeneficiaryAddress: beneficiaryAddr.String(), + Description: description, }, nil } @@ -437,12 +438,13 @@ func (msg MsgUpdateResourceNodeDeposit) ValidateBasic() error { // -------------------------------------------------------------------------------------------------------------------- func NewMsgUpdateMetaNode(description Description, networkAddress stratos.SdsAddress, ownerAddress sdk.AccAddress, -) *MsgUpdateMetaNode { + beneficiaryAddress sdk.AccAddress) *MsgUpdateMetaNode { return &MsgUpdateMetaNode{ - Description: description, - NetworkAddress: networkAddress.String(), - OwnerAddress: ownerAddress.String(), + Description: description, + NetworkAddress: networkAddress.String(), + OwnerAddress: ownerAddress.String(), + BeneficiaryAddress: beneficiaryAddress.String(), } } diff --git a/x/register/types/register.pb.go b/x/register/types/register.pb.go index 3bb9fefd..ef8a215c 100644 --- a/x/register/types/register.pb.go +++ b/x/register/types/register.pb.go @@ -230,14 +230,15 @@ func (m *ResourceNode) GetNodeType() uint32 { } type MetaNode struct { - NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` - Pubkey *types1.Any `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey" yaml:"pubkey"` - Suspend bool `protobuf:"varint,3,opt,name=suspend,proto3" json:"suspend" yaml:"suspend"` - Status types2.BondStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status" yaml:"status"` - Tokens github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=tokens,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"tokens" yaml:"tokens"` - OwnerAddress string `protobuf:"bytes,6,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` - Description Description `protobuf:"bytes,7,opt,name=description,proto3" json:"description" yaml:"description"` - CreationTime time.Time `protobuf:"bytes,8,opt,name=creation_time,json=creationTime,proto3,stdtime" json:"creation_time" yaml:"creation_time"` + NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` + Pubkey *types1.Any `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey" yaml:"pubkey"` + Suspend bool `protobuf:"varint,3,opt,name=suspend,proto3" json:"suspend" yaml:"suspend"` + Status types2.BondStatus `protobuf:"varint,4,opt,name=status,proto3,enum=cosmos.staking.v1beta1.BondStatus" json:"status" yaml:"status"` + Tokens github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,5,opt,name=tokens,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"tokens" yaml:"tokens"` + OwnerAddress string `protobuf:"bytes,6,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` + BeneficiaryAddress string `protobuf:"bytes,7,opt,name=beneficiary_address,json=beneficiaryAddress,proto3" json:"beneficiary_address" yaml:"beneficiary_address"` + Description Description `protobuf:"bytes,8,opt,name=description,proto3" json:"description" yaml:"description"` + CreationTime time.Time `protobuf:"bytes,9,opt,name=creation_time,json=creationTime,proto3,stdtime" json:"creation_time" yaml:"creation_time"` } func (m *MetaNode) Reset() { *m = MetaNode{} } @@ -308,6 +309,13 @@ func (m *MetaNode) GetOwnerAddress() string { return "" } +func (m *MetaNode) GetBeneficiaryAddress() string { + if m != nil { + return m.BeneficiaryAddress + } + return "" +} + func (m *MetaNode) GetDescription() Description { if m != nil { return m.Description @@ -605,104 +613,106 @@ func init() { } var fileDescriptor_fef1e3aeec8499d6 = []byte{ - // 1543 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0x4d, 0x6f, 0xdb, 0x46, - 0x1a, 0x36, 0xed, 0xac, 0x2c, 0x8d, 0xfc, 0x91, 0x30, 0xde, 0x44, 0xce, 0x66, 0x45, 0x87, 0xfb, - 0x11, 0x27, 0xbb, 0x96, 0x60, 0x67, 0xb1, 0x45, 0x73, 0x68, 0x61, 0xc6, 0x2e, 0x9a, 0xb4, 0x09, - 0x5c, 0xc6, 0x49, 0x81, 0xa2, 0x00, 0x4b, 0x91, 0x63, 0x79, 0x6a, 0x71, 0x86, 0xe0, 0x8c, 0x64, - 0x0b, 0xed, 0x2f, 0xe8, 0xa1, 0xc8, 0x31, 0x40, 0x51, 0x20, 0x97, 0x02, 0x01, 0x7a, 0xc9, 0xa1, - 0xb7, 0xfe, 0x81, 0xa0, 0xa7, 0xa0, 0xa7, 0xa2, 0x07, 0xb6, 0x70, 0x80, 0x06, 0x50, 0x6f, 0xfc, - 0x03, 0x2d, 0x38, 0x1f, 0x22, 0x45, 0x5b, 0x48, 0x53, 0xa0, 0x3d, 0xe5, 0x62, 0x73, 0x9e, 0xe7, - 0xe1, 0xfb, 0xbe, 0x9c, 0xf7, 0x63, 0x34, 0xc0, 0xa4, 0x2c, 0x72, 0x19, 0xa1, 0xcd, 0x08, 0xb6, - 0x11, 0x65, 0x30, 0x6a, 0xf6, 0x56, 0x87, 0xcf, 0x8d, 0x30, 0x22, 0x8c, 0xe8, 0xa7, 0xa5, 0xa6, - 0x31, 0xc4, 0x7b, 0xab, 0xe7, 0x16, 0xda, 0xa4, 0x4d, 0x38, 0xdf, 0x4c, 0x9f, 0x84, 0xf4, 0xdc, - 0x62, 0x9b, 0x90, 0x76, 0x07, 0x36, 0xf9, 0xaa, 0xd5, 0xdd, 0x69, 0xba, 0xb8, 0x2f, 0x29, 0xa3, - 0x48, 0x31, 0x14, 0x40, 0xca, 0xdc, 0x20, 0x94, 0x82, 0x7a, 0x51, 0xe0, 0x77, 0x23, 0x97, 0x21, - 0x82, 0x95, 0x6d, 0x8f, 0xd0, 0x80, 0x50, 0x47, 0x38, 0x15, 0x0b, 0x49, 0x9d, 0x72, 0x03, 0x84, - 0x49, 0x93, 0xff, 0x55, 0xd6, 0x84, 0xa0, 0xd9, 0x72, 0x29, 0x6c, 0xf6, 0x56, 0x5b, 0x90, 0xb9, - 0xab, 0x4d, 0x8f, 0x20, 0x65, 0xed, 0x9f, 0x92, 0xa7, 0xcc, 0xdd, 0x43, 0xb8, 0x3d, 0x94, 0xc8, - 0xb5, 0x50, 0x99, 0x5f, 0x4e, 0x83, 0xd2, 0x96, 0x1b, 0xb9, 0x01, 0xd5, 0x2d, 0x00, 0x5a, 0x04, - 0xfb, 0x8e, 0x0f, 0x31, 0x09, 0x6a, 0xda, 0x92, 0xb6, 0x5c, 0xb1, 0xfe, 0x31, 0x88, 0x8d, 0x1c, - 0x9a, 0xc4, 0xc6, 0xa9, 0xbe, 0x1b, 0x74, 0xae, 0x9a, 0x19, 0x66, 0xda, 0x95, 0x74, 0xb1, 0x91, - 0x3e, 0xeb, 0x5f, 0x68, 0x60, 0xb1, 0x8b, 0xd3, 0x35, 0xc2, 0x6d, 0x87, 0xed, 0x46, 0xd0, 0xa5, - 0xbb, 0xa4, 0xe3, 0x3b, 0xe9, 0x5e, 0xd4, 0x26, 0x97, 0xb4, 0xe5, 0xea, 0xda, 0x62, 0x43, 0xec, - 0x43, 0x43, 0xed, 0x43, 0x63, 0x43, 0xee, 0x83, 0x75, 0xeb, 0x71, 0x6c, 0x4c, 0x0c, 0x62, 0x63, - 0xbc, 0x8d, 0x24, 0x36, 0x96, 0x44, 0x04, 0x63, 0x25, 0xe6, 0xfd, 0x1f, 0x0c, 0xed, 0xe1, 0xb3, - 0x47, 0x97, 0x35, 0xfb, 0xec, 0x50, 0xb4, 0x3d, 0xd4, 0x6c, 0xa3, 0x00, 0x16, 0xe2, 0xf4, 0x48, - 0x10, 0x76, 0x60, 0x1a, 0x81, 0x88, 0x73, 0xea, 0x77, 0xc4, 0x59, 0xb0, 0x71, 0x5c, 0x9c, 0x05, - 0xc9, 0xb1, 0x71, 0x5e, 0x1b, 0x6a, 0x78, 0x9c, 0x5b, 0xa0, 0x1a, 0xb8, 0x07, 0x0e, 0xc4, 0x2c, - 0x42, 0x90, 0xd6, 0x4e, 0x2c, 0x69, 0xcb, 0xb3, 0x56, 0x73, 0x10, 0x1b, 0x79, 0x38, 0x89, 0x8d, - 0xf3, 0xc2, 0x57, 0x0e, 0x34, 0xff, 0x4b, 0x02, 0xc4, 0x60, 0x10, 0xb2, 0xbe, 0x0d, 0x02, 0xf7, - 0x60, 0x53, 0xc0, 0xfa, 0xc7, 0x60, 0x31, 0x82, 0x94, 0x74, 0x23, 0x0f, 0x3a, 0x98, 0xf8, 0xd0, - 0x89, 0x60, 0xdb, 0x81, 0xd8, 0x6d, 0x75, 0xa0, 0x5f, 0xfb, 0xcb, 0x92, 0xb6, 0x5c, 0xb6, 0xd6, - 0xd3, 0x2f, 0x1b, 0x2b, 0xca, 0xbe, 0x6c, 0xac, 0xc4, 0xb4, 0xcf, 0x28, 0xee, 0x16, 0xf1, 0xa1, - 0x0d, 0xdb, 0x9b, 0x82, 0xd0, 0x1f, 0x68, 0x45, 0xf7, 0x01, 0xc2, 0x8e, 0x0f, 0x43, 0x42, 0x11, - 0xab, 0x95, 0xe4, 0xbe, 0xcb, 0xd2, 0x4f, 0x2b, 0xbb, 0x21, 0xcb, 0xb6, 0x71, 0x8d, 0x20, 0x6c, - 0xdd, 0x50, 0xfb, 0x3e, 0xd6, 0xc6, 0xb8, 0xe8, 0x72, 0x12, 0x53, 0xec, 0xf9, 0x48, 0x88, 0x37, - 0x11, 0xde, 0x10, 0xac, 0xde, 0x03, 0xb3, 0x3d, 0xc2, 0xd2, 0x7c, 0x85, 0x30, 0x42, 0xc4, 0xaf, - 0x4d, 0x3f, 0xaf, 0x1a, 0xfe, 0x2f, 0xa3, 0x1a, 0x7d, 0x2f, 0x89, 0x8d, 0x05, 0x11, 0xc9, 0x08, - 0x9c, 0xcb, 0xfa, 0x8c, 0x20, 0xb6, 0x38, 0x7e, 0xd5, 0xbc, 0xff, 0xc0, 0xd0, 0x3e, 0x79, 0xf6, - 0xe8, 0xf2, 0xa2, 0x9a, 0x58, 0x07, 0xd9, 0xcc, 0x12, 0x2d, 0x6a, 0x7e, 0x5e, 0x06, 0x33, 0x76, - 0x2e, 0x6c, 0x1d, 0x83, 0x79, 0x0c, 0xd9, 0x3e, 0x89, 0xf6, 0x1c, 0xd7, 0xf7, 0x23, 0x48, 0xa9, - 0x6c, 0xdc, 0xcd, 0x41, 0x6c, 0x14, 0xa9, 0x24, 0x36, 0xce, 0x88, 0x88, 0x0a, 0x84, 0xf9, 0xed, - 0x57, 0x2b, 0x0b, 0x72, 0xd3, 0xd7, 0x05, 0x74, 0x9b, 0x45, 0x08, 0xb7, 0xed, 0x39, 0xa9, 0x94, - 0xa8, 0xee, 0x82, 0x52, 0xd8, 0x6d, 0xed, 0xc1, 0xbe, 0xec, 0xe5, 0x85, 0x23, 0xbb, 0xb2, 0x8e, - 0xfb, 0xd6, 0x95, 0x41, 0x6c, 0x48, 0x5d, 0x12, 0x1b, 0xb3, 0xc2, 0xa7, 0x58, 0x9b, 0xdf, 0x64, - 0xae, 0xbc, 0xa8, 0x1f, 0x32, 0xd2, 0xd8, 0xea, 0xb6, 0xde, 0x82, 0x7d, 0x5b, 0xbe, 0xa0, 0xbf, - 0x02, 0xa6, 0x69, 0x97, 0x86, 0x10, 0xfb, 0xbc, 0x0f, 0xcb, 0xd6, 0xdf, 0x07, 0xb1, 0xa1, 0xa0, - 0x24, 0x36, 0xe6, 0x84, 0x39, 0x09, 0x98, 0xb6, 0xa2, 0xf4, 0x77, 0x41, 0x89, 0x32, 0x97, 0x75, - 0x45, 0x9b, 0xcc, 0xad, 0x99, 0xaa, 0x8e, 0xd4, 0xc4, 0x53, 0xa5, 0x64, 0x11, 0xec, 0xdf, 0xe6, - 0x4a, 0xeb, 0x6f, 0x69, 0xa4, 0xe2, 0xad, 0x2c, 0x52, 0xb1, 0x36, 0x6d, 0x49, 0xe8, 0x0c, 0x94, - 0x18, 0xd9, 0x83, 0x98, 0xf2, 0xfe, 0xa8, 0x58, 0xef, 0xa7, 0xf9, 0xfe, 0x3e, 0x36, 0xfe, 0xdd, - 0x46, 0x6c, 0xb7, 0xdb, 0x6a, 0x78, 0x24, 0x90, 0xd3, 0x5a, 0xfe, 0x5b, 0xa1, 0xfe, 0x5e, 0x93, - 0xf5, 0x43, 0x48, 0x1b, 0xd7, 0x31, 0x4b, 0x5d, 0x88, 0xf7, 0x33, 0x17, 0x62, 0x9d, 0xee, 0x3b, - 0x90, 0x41, 0x5e, 0xc7, 0x4c, 0x54, 0x85, 0xd4, 0xea, 0x3b, 0x60, 0x96, 0xec, 0x63, 0x18, 0x0d, - 0x13, 0x5b, 0xe2, 0xce, 0xd3, 0xe6, 0x1c, 0x25, 0xb2, 0x42, 0x1b, 0x81, 0xc7, 0x27, 0x75, 0x86, - 0xeb, 0x54, 0x4a, 0x03, 0x50, 0xf5, 0x21, 0xf5, 0x22, 0x14, 0xa6, 0xc5, 0x2c, 0xab, 0x7d, 0xa9, - 0x71, 0xcc, 0x91, 0xd8, 0xd8, 0xc8, 0x74, 0xd6, 0x25, 0x59, 0xf4, 0xf9, 0x97, 0x93, 0xd8, 0xd0, - 0x45, 0x24, 0x39, 0xd0, 0xb4, 0xf3, 0x12, 0x7d, 0x1f, 0xcc, 0x7a, 0x11, 0x74, 0xb3, 0x61, 0x5b, - 0xe6, 0x0e, 0xcf, 0x1d, 0x29, 0xa4, 0x6d, 0x75, 0x7a, 0x66, 0xfd, 0x35, 0xf2, 0x62, 0xf6, 0xd9, - 0x23, 0xb0, 0x79, 0x2f, 0xeb, 0x2f, 0x45, 0xf0, 0x51, 0xfa, 0x1a, 0xa8, 0xf0, 0x49, 0x90, 0xe6, - 0xa5, 0x56, 0xe1, 0x83, 0xf4, 0xc2, 0x20, 0x36, 0x32, 0x30, 0x89, 0x8d, 0x93, 0xb2, 0x3d, 0x14, - 0x64, 0xda, 0xe5, 0xf4, 0x79, 0xbb, 0x1f, 0x42, 0xfd, 0x33, 0x0d, 0x9c, 0x84, 0x3b, 0x3b, 0xd0, - 0x63, 0xa8, 0x07, 0x1d, 0x59, 0x10, 0x80, 0xe7, 0x24, 0x7c, 0xe1, 0x82, 0x38, 0x62, 0x29, 0x89, - 0x8d, 0xb3, 0xc2, 0x79, 0x91, 0x39, 0xb6, 0x48, 0xe6, 0x87, 0xaa, 0x6d, 0x2e, 0xba, 0x7a, 0x22, - 0x9d, 0x1e, 0xe6, 0xd7, 0x25, 0x50, 0xbe, 0x09, 0x99, 0xfb, 0x72, 0x36, 0xbc, 0x9c, 0x0d, 0x2f, - 0x67, 0xc3, 0x6f, 0x9e, 0x0d, 0xb2, 0x7b, 0x7e, 0x9a, 0x02, 0xe7, 0x55, 0xf7, 0xd8, 0xfc, 0xd3, - 0xc4, 0x01, 0x7f, 0x97, 0x30, 0xb8, 0x45, 0x48, 0xe7, 0x4f, 0xef, 0xa8, 0x1b, 0x60, 0xc6, 0x0d, - 0xc3, 0x88, 0xf4, 0xa0, 0xd3, 0x41, 0x94, 0xd5, 0x26, 0x97, 0xa6, 0x96, 0x2b, 0xd6, 0xc5, 0x41, - 0x6c, 0x8c, 0xe0, 0x49, 0x6c, 0x9c, 0x16, 0x9e, 0xf2, 0xa8, 0x69, 0x57, 0xe5, 0xf2, 0x6d, 0x44, - 0x99, 0xfe, 0x06, 0xa8, 0x46, 0xf0, 0x43, 0xe8, 0x31, 0x61, 0x6a, 0x8a, 0x9b, 0xfa, 0x57, 0x9a, - 0xa4, 0x1c, 0x9c, 0x25, 0x29, 0x07, 0x9a, 0x36, 0x10, 0x2b, 0x6e, 0x87, 0x80, 0x2a, 0x3c, 0x08, - 0x51, 0x04, 0x45, 0x86, 0x4e, 0x3c, 0x37, 0x43, 0x6b, 0xaa, 0x18, 0x72, 0xaf, 0x65, 0x7e, 0x72, - 0x60, 0x2e, 0x3b, 0x40, 0xc0, 0x7c, 0x6e, 0xbf, 0x03, 0xe6, 0x10, 0x75, 0x7a, 0x84, 0x41, 0x27, - 0x74, 0x29, 0x1d, 0xfe, 0x4a, 0xfd, 0xcf, 0x20, 0x36, 0x0a, 0x4c, 0x12, 0x1b, 0x7f, 0x15, 0x66, - 0x47, 0x71, 0xd3, 0x9e, 0x41, 0x94, 0x67, 0x51, 0x2c, 0x7f, 0x99, 0x04, 0xd5, 0x5c, 0xbd, 0xa6, - 0x63, 0x25, 0x20, 0x18, 0xed, 0xc1, 0x48, 0xe6, 0x93, 0x8f, 0x15, 0x09, 0x65, 0x63, 0x45, 0x02, - 0xa6, 0xad, 0x28, 0x7d, 0x13, 0x94, 0x91, 0x0f, 0x31, 0x43, 0x4c, 0x0c, 0xbd, 0x8a, 0x75, 0x69, - 0x10, 0x1b, 0x43, 0x2c, 0x89, 0x8d, 0x45, 0x19, 0x8f, 0x44, 0xf2, 0xbf, 0xca, 0x87, 0x32, 0x7d, - 0x1d, 0x4c, 0xef, 0xc3, 0x16, 0x45, 0x4c, 0x5c, 0x3d, 0x44, 0x8a, 0x15, 0x94, 0xc4, 0x46, 0x4d, - 0x18, 0x91, 0x40, 0xde, 0x86, 0x12, 0xe9, 0x3e, 0x38, 0x49, 0xa1, 0xd7, 0x8d, 0x10, 0xeb, 0x3b, - 0x1e, 0xc1, 0xcc, 0xf5, 0x18, 0xcf, 0x4d, 0xc5, 0x7a, 0x35, 0x3d, 0x6e, 0x8a, 0x5c, 0x12, 0x1b, - 0x17, 0xe4, 0x40, 0x2b, 0x30, 0x79, 0xeb, 0xf3, 0x8a, 0xbc, 0x26, 0xb8, 0x34, 0x50, 0x1f, 0x32, - 0x17, 0x75, 0xd4, 0xb8, 0xe3, 0x81, 0x4a, 0x28, 0x0b, 0x54, 0x02, 0x23, 0x81, 0x4a, 0x4c, 0xb6, - 0xda, 0x83, 0x49, 0x30, 0x7b, 0x47, 0xdd, 0x79, 0xf8, 0x69, 0xd5, 0x02, 0x33, 0xf9, 0x3e, 0x91, - 0x89, 0x78, 0x3d, 0xad, 0xf5, 0x3c, 0x9e, 0xd5, 0x7a, 0x1e, 0x1d, 0xdf, 0x52, 0xd5, 0x5c, 0x4b, - 0xe9, 0xd7, 0xc1, 0x0c, 0xa2, 0x4e, 0x00, 0x99, 0xcb, 0x2f, 0x05, 0x3c, 0x65, 0x65, 0xd1, 0x4f, - 0x79, 0x3c, 0xf3, 0x91, 0x47, 0x4d, 0x1b, 0x20, 0x3a, 0x3c, 0x5c, 0x3f, 0x00, 0xd3, 0xea, 0x52, - 0x96, 0xb6, 0x52, 0x75, 0xed, 0xe2, 0xb1, 0x53, 0x71, 0xe4, 0x1b, 0xd3, 0x2b, 0x58, 0x5f, 0xd4, - 0x56, 0x76, 0x73, 0x93, 0xb5, 0xa5, 0x6e, 0x6d, 0xb6, 0xa2, 0xcc, 0x9f, 0xa7, 0x80, 0x7e, 0xf4, - 0x75, 0xfd, 0x2e, 0x98, 0x1f, 0xce, 0xb4, 0x5d, 0x88, 0xda, 0xbb, 0x8c, 0x6f, 0xd5, 0x94, 0xb5, - 0x92, 0xce, 0xa0, 0x02, 0x95, 0xcd, 0xa0, 0x02, 0x61, 0xda, 0x73, 0x0a, 0x79, 0x93, 0x03, 0xfa, - 0x47, 0x60, 0xbe, 0x78, 0x0d, 0x9e, 0xfc, 0xc3, 0xa6, 0xef, 0x9c, 0x37, 0x7a, 0xcd, 0xfd, 0x54, - 0x03, 0xf3, 0x08, 0x23, 0x86, 0xdc, 0x8e, 0xd3, 0x72, 0x3b, 0x2e, 0xf6, 0x54, 0x27, 0xc0, 0x17, - 0x3a, 0x4b, 0x8b, 0x46, 0xb2, 0xef, 0x2f, 0x10, 0x85, 0xd3, 0xd5, 0x9e, 0x93, 0xbc, 0x25, 0x68, - 0x9d, 0x80, 0x69, 0x15, 0x87, 0xe8, 0xa2, 0x3b, 0x2f, 0x14, 0xc7, 0x74, 0xe6, 0x5f, 0xe6, 0x77, - 0x8c, 0x5f, 0x25, 0xb4, 0xec, 0x87, 0x87, 0x75, 0xed, 0xf1, 0x61, 0x5d, 0x7b, 0x72, 0x58, 0xd7, - 0x7e, 0x3c, 0xac, 0x6b, 0xf7, 0x9e, 0xd6, 0x27, 0x9e, 0x3c, 0xad, 0x4f, 0x7c, 0xf7, 0xb4, 0x3e, - 0xf1, 0xde, 0xff, 0x72, 0x9e, 0x65, 0x99, 0x61, 0xc8, 0xd4, 0xe3, 0x8a, 0xb7, 0xeb, 0x22, 0x9c, - 0xbf, 0x2e, 0xf2, 0x58, 0x5a, 0x25, 0x9e, 0xb1, 0x2b, 0xbf, 0x06, 0x00, 0x00, 0xff, 0xff, 0x80, - 0x76, 0x04, 0x8a, 0x03, 0x13, 0x00, 0x00, + // 1581 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x57, 0x4d, 0x6f, 0xdc, 0x4e, + 0x19, 0x8f, 0x93, 0x92, 0xdd, 0x9d, 0xcd, 0x4b, 0xff, 0x6e, 0x68, 0x37, 0xa1, 0xec, 0xa4, 0xe6, + 0xa5, 0x69, 0x21, 0xbb, 0x4a, 0xca, 0x8b, 0xe8, 0x01, 0x14, 0x37, 0x41, 0xb4, 0xd0, 0x2a, 0xb8, + 0x69, 0x91, 0x10, 0x92, 0xf1, 0xda, 0x93, 0xcd, 0x90, 0xf5, 0x8c, 0xe5, 0x99, 0xdd, 0x64, 0x05, + 0x9f, 0x80, 0x03, 0xea, 0xb1, 0x12, 0x42, 0xaa, 0x84, 0x90, 0x2a, 0x71, 0xe9, 0x81, 0x0f, 0x51, + 0x71, 0xaa, 0x38, 0x21, 0x0e, 0x06, 0xa5, 0x12, 0x95, 0x96, 0x9b, 0xbf, 0x00, 0xc8, 0xf3, 0xb2, + 0xf6, 0x3a, 0x59, 0x55, 0x45, 0xd0, 0x53, 0x2f, 0x89, 0xe7, 0xf7, 0xfb, 0xf9, 0x79, 0x1e, 0xcf, + 0xf3, 0x32, 0x3b, 0xc0, 0x62, 0x3c, 0xf6, 0x38, 0x65, 0xed, 0x18, 0x75, 0x31, 0xe3, 0x28, 0x6e, + 0x0f, 0xb6, 0xc6, 0xcf, 0xad, 0x28, 0xa6, 0x9c, 0x9a, 0x57, 0x94, 0xa6, 0x35, 0xc6, 0x07, 0x5b, + 0x6b, 0x2b, 0x5d, 0xda, 0xa5, 0x82, 0x6f, 0x67, 0x4f, 0x52, 0xba, 0xb6, 0xda, 0xa5, 0xb4, 0xdb, + 0x43, 0x6d, 0xb1, 0xea, 0xf4, 0x0f, 0xdb, 0x1e, 0x19, 0x2a, 0x0a, 0x96, 0x29, 0x8e, 0x43, 0xc4, + 0xb8, 0x17, 0x46, 0x4a, 0xd0, 0x2c, 0x0b, 0x82, 0x7e, 0xec, 0x71, 0x4c, 0x89, 0xb6, 0xed, 0x53, + 0x16, 0x52, 0xe6, 0x4a, 0xa7, 0x72, 0xa1, 0xa8, 0xcf, 0xbc, 0x10, 0x13, 0xda, 0x16, 0x7f, 0xb5, + 0x35, 0x29, 0x68, 0x77, 0x3c, 0x86, 0xda, 0x83, 0xad, 0x0e, 0xe2, 0xde, 0x56, 0xdb, 0xa7, 0x58, + 0x5b, 0xfb, 0xb2, 0xe2, 0x19, 0xf7, 0x8e, 0x31, 0xe9, 0x8e, 0x25, 0x6a, 0x2d, 0x55, 0xd6, 0x1f, + 0x2b, 0x60, 0x7e, 0xdf, 0x8b, 0xbd, 0x90, 0x99, 0x36, 0x00, 0x1d, 0x4a, 0x02, 0x37, 0x40, 0x84, + 0x86, 0x0d, 0x63, 0xdd, 0xd8, 0xa8, 0xd9, 0x5f, 0x1a, 0x25, 0xb0, 0x80, 0xa6, 0x09, 0xfc, 0x6c, + 0xe8, 0x85, 0xbd, 0xbb, 0x56, 0x8e, 0x59, 0x4e, 0x2d, 0x5b, 0xec, 0x66, 0xcf, 0xe6, 0x1f, 0x0c, + 0xb0, 0xda, 0x27, 0xd9, 0x1a, 0x93, 0xae, 0xcb, 0x8f, 0x62, 0xe4, 0xb1, 0x23, 0xda, 0x0b, 0xdc, + 0x6c, 0x2f, 0x1a, 0xb3, 0xeb, 0xc6, 0x46, 0x7d, 0x7b, 0xb5, 0x25, 0xf7, 0xa1, 0xa5, 0xf7, 0xa1, + 0xb5, 0xab, 0xf6, 0xc1, 0x7e, 0xf4, 0x3a, 0x81, 0x33, 0xa3, 0x04, 0x4e, 0xb7, 0x91, 0x26, 0x70, + 0x5d, 0x46, 0x30, 0x55, 0x62, 0x3d, 0xff, 0x3b, 0x34, 0x5e, 0xbe, 0x7b, 0x75, 0xdb, 0x70, 0xae, + 0x8d, 0x45, 0x07, 0x63, 0xcd, 0x01, 0x0e, 0x51, 0x29, 0x4e, 0x9f, 0x86, 0x51, 0x0f, 0x65, 0x11, + 0xc8, 0x38, 0xe7, 0xfe, 0x8b, 0x38, 0x4b, 0x36, 0x2e, 0x8a, 0xb3, 0x24, 0xb9, 0x30, 0xce, 0x7b, + 0x63, 0x8d, 0x88, 0x73, 0x1f, 0xd4, 0x43, 0xef, 0xd4, 0x45, 0x84, 0xc7, 0x18, 0xb1, 0xc6, 0xa5, + 0x75, 0x63, 0x63, 0xd1, 0x6e, 0x8f, 0x12, 0x58, 0x84, 0xd3, 0x04, 0x5e, 0x97, 0xbe, 0x0a, 0xa0, + 0xf5, 0x75, 0x1a, 0x62, 0x8e, 0xc2, 0x88, 0x0f, 0x1d, 0x10, 0x7a, 0xa7, 0x7b, 0x12, 0x36, 0x7f, + 0x05, 0x56, 0x63, 0xc4, 0x68, 0x3f, 0xf6, 0x91, 0x4b, 0x68, 0x80, 0xdc, 0x18, 0x75, 0x5d, 0x44, + 0xbc, 0x4e, 0x0f, 0x05, 0x8d, 0xcf, 0xad, 0x1b, 0x1b, 0x55, 0x7b, 0x27, 0xfb, 0xb2, 0xa9, 0xa2, + 0xfc, 0xcb, 0xa6, 0x4a, 0x2c, 0xe7, 0xaa, 0xe6, 0x1e, 0xd1, 0x00, 0x39, 0xa8, 0xbb, 0x27, 0x09, + 0xf3, 0x85, 0x51, 0x76, 0x1f, 0x62, 0xe2, 0x06, 0x28, 0xa2, 0x0c, 0xf3, 0xc6, 0xbc, 0xda, 0x77, + 0x55, 0xfa, 0x59, 0x65, 0xb7, 0x54, 0xd9, 0xb6, 0xee, 0x51, 0x4c, 0xec, 0x07, 0x7a, 0xdf, 0xa7, + 0xda, 0x98, 0x16, 0x5d, 0x41, 0x62, 0xc9, 0x3d, 0x9f, 0x08, 0xf1, 0x21, 0x26, 0xbb, 0x92, 0x35, + 0x07, 0x60, 0x71, 0x40, 0x79, 0x96, 0xaf, 0x08, 0xc5, 0x98, 0x06, 0x8d, 0xca, 0xfb, 0xaa, 0xe1, + 0x5b, 0x2a, 0xaa, 0xc9, 0xf7, 0xd2, 0x04, 0xae, 0xc8, 0x48, 0x26, 0xe0, 0x42, 0xd6, 0x17, 0x24, + 0xb1, 0x2f, 0xf0, 0xbb, 0xd6, 0xf3, 0x17, 0xd0, 0xf8, 0xf5, 0xbb, 0x57, 0xb7, 0x57, 0xf5, 0xc4, + 0x3a, 0xcd, 0x67, 0x96, 0x6c, 0x51, 0xeb, 0x77, 0x55, 0xb0, 0xe0, 0x14, 0xc2, 0x36, 0x09, 0x58, + 0x26, 0x88, 0x9f, 0xd0, 0xf8, 0xd8, 0xf5, 0x82, 0x20, 0x46, 0x8c, 0xa9, 0xc6, 0xdd, 0x1b, 0x25, + 0xb0, 0x4c, 0xa5, 0x09, 0xbc, 0x2a, 0x23, 0x2a, 0x11, 0xd6, 0x5f, 0xfe, 0xb4, 0xb9, 0xa2, 0x36, + 0x7d, 0x47, 0x42, 0x8f, 0x79, 0x8c, 0x49, 0xd7, 0x59, 0x52, 0x4a, 0x85, 0x9a, 0x1e, 0x98, 0x8f, + 0xfa, 0x9d, 0x63, 0x34, 0x54, 0xbd, 0xbc, 0x72, 0x6e, 0x57, 0x76, 0xc8, 0xd0, 0xbe, 0x33, 0x4a, + 0xa0, 0xd2, 0xa5, 0x09, 0x5c, 0x94, 0x3e, 0xe5, 0xda, 0xfa, 0x73, 0xee, 0xca, 0x8f, 0x87, 0x11, + 0xa7, 0xad, 0xfd, 0x7e, 0xe7, 0x87, 0x68, 0xe8, 0xa8, 0x17, 0xcc, 0x6f, 0x83, 0x0a, 0xeb, 0xb3, + 0x08, 0x91, 0x40, 0xf4, 0x61, 0xd5, 0xfe, 0xe2, 0x28, 0x81, 0x1a, 0x4a, 0x13, 0xb8, 0x24, 0xcd, + 0x29, 0xc0, 0x72, 0x34, 0x65, 0xfe, 0x04, 0xcc, 0x33, 0xee, 0xf1, 0xbe, 0x6c, 0x93, 0xa5, 0x6d, + 0x4b, 0xd7, 0x91, 0x9e, 0x78, 0xba, 0x94, 0x6c, 0x4a, 0x82, 0xc7, 0x42, 0x69, 0x7f, 0x21, 0x8b, + 0x54, 0xbe, 0x95, 0x47, 0x2a, 0xd7, 0x96, 0xa3, 0x08, 0x93, 0x83, 0x79, 0x4e, 0x8f, 0x11, 0x61, + 0xa2, 0x3f, 0x6a, 0xf6, 0xcf, 0xb2, 0x7c, 0xff, 0x2d, 0x81, 0x5f, 0xed, 0x62, 0x7e, 0xd4, 0xef, + 0xb4, 0x7c, 0x1a, 0xaa, 0x69, 0xad, 0xfe, 0x6d, 0xb2, 0xe0, 0xb8, 0xcd, 0x87, 0x11, 0x62, 0xad, + 0xfb, 0x84, 0x67, 0x2e, 0xe4, 0xfb, 0xb9, 0x0b, 0xb9, 0xce, 0xf6, 0x1d, 0xa8, 0x20, 0xef, 0x13, + 0x2e, 0xab, 0x42, 0x69, 0xcd, 0x43, 0xb0, 0x48, 0x4f, 0x08, 0x8a, 0xc7, 0x89, 0x9d, 0x17, 0xce, + 0xb3, 0xe6, 0x9c, 0x24, 0xf2, 0x42, 0x9b, 0x80, 0xa7, 0x27, 0x75, 0x41, 0xe8, 0x74, 0x4a, 0x43, + 0x50, 0x0f, 0x10, 0xf3, 0x63, 0x1c, 0x65, 0xc5, 0xac, 0xaa, 0x7d, 0xbd, 0x75, 0xc1, 0x91, 0xd8, + 0xda, 0xcd, 0x75, 0xf6, 0x2d, 0x55, 0xf4, 0xc5, 0x97, 0xd3, 0x04, 0x9a, 0x32, 0x92, 0x02, 0x68, + 0x39, 0x45, 0x89, 0x79, 0x02, 0x16, 0xfd, 0x18, 0x79, 0xf9, 0xb0, 0xad, 0x0a, 0x87, 0x6b, 0xe7, + 0x0a, 0xe9, 0x40, 0x9f, 0x9e, 0x79, 0x7f, 0x4d, 0xbc, 0x98, 0x7f, 0xf6, 0x04, 0x6c, 0x3d, 0xcb, + 0xfb, 0x4b, 0x13, 0x62, 0x94, 0x7e, 0x17, 0xd4, 0xc4, 0x24, 0xc8, 0xf2, 0xd2, 0xa8, 0x89, 0x41, + 0x7a, 0x63, 0x94, 0xc0, 0x1c, 0x4c, 0x13, 0x78, 0x59, 0xb5, 0x87, 0x86, 0x2c, 0xa7, 0x9a, 0x3d, + 0x1f, 0x0c, 0x23, 0x64, 0xfe, 0xd6, 0x00, 0x97, 0xd1, 0xe1, 0x21, 0xf2, 0x39, 0x1e, 0x20, 0x57, + 0x15, 0x04, 0x10, 0x39, 0x89, 0x3e, 0xb8, 0x20, 0xce, 0x59, 0x4a, 0x13, 0x78, 0x4d, 0x3a, 0x2f, + 0x33, 0x17, 0x16, 0xc9, 0xf2, 0x58, 0x75, 0x20, 0x44, 0x77, 0x2f, 0x65, 0xd3, 0xc3, 0xfa, 0x7d, + 0x05, 0x54, 0x1f, 0x22, 0xee, 0x7d, 0x9a, 0x0d, 0x9f, 0x66, 0xc3, 0xff, 0x62, 0x36, 0x1c, 0x82, + 0x2b, 0x1d, 0x44, 0xd0, 0x21, 0xf6, 0xb1, 0x17, 0x0f, 0xc7, 0xde, 0x2a, 0xc2, 0xdb, 0x37, 0x47, + 0x09, 0xbc, 0x88, 0x4e, 0x13, 0xb8, 0xa6, 0x7e, 0x24, 0x9e, 0x27, 0x2d, 0xc7, 0x2c, 0xa0, 0x53, + 0x66, 0x50, 0xf5, 0x63, 0xcf, 0xa0, 0xda, 0xc7, 0x99, 0x41, 0xaa, 0x4b, 0xff, 0x39, 0x07, 0xae, + 0xeb, 0x2e, 0x75, 0xc4, 0xa7, 0xc9, 0x1f, 0x12, 0x4f, 0x29, 0x47, 0xfb, 0x94, 0xf6, 0x3e, 0x7a, + 0xe7, 0x3e, 0x00, 0x0b, 0x5e, 0x14, 0xc5, 0x74, 0x80, 0xdc, 0x1e, 0x66, 0xbc, 0x31, 0xbb, 0x3e, + 0xb7, 0x51, 0xb3, 0x6f, 0x8e, 0x12, 0x38, 0x81, 0xa7, 0x09, 0xbc, 0x22, 0x3d, 0x15, 0x51, 0xcb, + 0xa9, 0xab, 0xe5, 0x8f, 0x30, 0xe3, 0xe6, 0xf7, 0x41, 0x3d, 0x46, 0xbf, 0x40, 0x3e, 0x97, 0xa6, + 0xe6, 0x84, 0xa9, 0xaf, 0x64, 0x49, 0x2a, 0xc0, 0x79, 0x92, 0x0a, 0xa0, 0xe5, 0x00, 0xb9, 0x12, + 0x76, 0x28, 0xa8, 0xa3, 0xd3, 0x08, 0xc7, 0x48, 0x66, 0xe8, 0xd2, 0x7b, 0x33, 0xb4, 0xad, 0x8b, + 0xa1, 0xf0, 0x5a, 0xee, 0xa7, 0x00, 0x16, 0xb2, 0x03, 0x24, 0x2c, 0xce, 0x87, 0x1f, 0x83, 0x25, + 0xcc, 0xdc, 0x01, 0xe5, 0xc8, 0x8d, 0x3c, 0xc6, 0xc6, 0xbf, 0x86, 0xbf, 0x36, 0x4a, 0x60, 0x89, + 0x49, 0x13, 0xf8, 0x79, 0x69, 0x76, 0x12, 0xb7, 0x9c, 0x05, 0xcc, 0x44, 0x16, 0xe5, 0xf2, 0xdf, + 0xb3, 0xa0, 0x5e, 0xa8, 0xd7, 0x6c, 0x7c, 0x85, 0x94, 0xe0, 0x63, 0x14, 0xab, 0x7c, 0x8a, 0xf1, + 0xa5, 0xa0, 0x7c, 0x7c, 0x29, 0xc0, 0x72, 0x34, 0x65, 0xee, 0x81, 0x2a, 0x0e, 0x10, 0xe1, 0x98, + 0xcb, 0xe1, 0x5a, 0xb3, 0x6f, 0x8d, 0x12, 0x38, 0xc6, 0xd2, 0x04, 0xae, 0xaa, 0x78, 0x14, 0x52, + 0xfc, 0xf5, 0x3f, 0x96, 0x99, 0x3b, 0xa0, 0x72, 0x82, 0x3a, 0x0c, 0x73, 0x79, 0xc5, 0x91, 0x29, + 0xd6, 0x50, 0x9a, 0xc0, 0x86, 0x34, 0xa2, 0x80, 0xa2, 0x0d, 0x2d, 0x32, 0x03, 0x70, 0x99, 0x21, + 0xbf, 0x1f, 0x63, 0x3e, 0x74, 0x7d, 0x4a, 0xb8, 0xe7, 0x73, 0x91, 0x9b, 0x9a, 0xfd, 0x9d, 0xec, + 0x58, 0x2b, 0x73, 0x69, 0x02, 0x6f, 0xa8, 0xc1, 0x59, 0x62, 0x8a, 0xd6, 0x97, 0x35, 0x79, 0x4f, + 0x72, 0x59, 0xa0, 0x01, 0xe2, 0x1e, 0xee, 0xe9, 0xb1, 0x2a, 0x02, 0x55, 0x50, 0x1e, 0xa8, 0x02, + 0x26, 0x02, 0x55, 0x98, 0x6a, 0xb5, 0x17, 0xb3, 0x60, 0xf1, 0x89, 0xbe, 0x5b, 0x89, 0x53, 0xb1, + 0x03, 0x16, 0x8a, 0x7d, 0xa2, 0x12, 0xf1, 0xbd, 0xac, 0xd6, 0x8b, 0x78, 0x5e, 0xeb, 0x45, 0x74, + 0x7a, 0x4b, 0xd5, 0x0b, 0x2d, 0x65, 0xde, 0x07, 0x0b, 0x98, 0xb9, 0x21, 0xe2, 0x9e, 0xb8, 0x7c, + 0x88, 0x94, 0x55, 0x65, 0x3f, 0x15, 0xf1, 0xdc, 0x47, 0x11, 0xb5, 0x1c, 0x80, 0xd9, 0xf8, 0x10, + 0xff, 0x39, 0xa8, 0xe8, 0xcb, 0x5f, 0xd6, 0x4a, 0xf5, 0xed, 0x9b, 0x17, 0x4e, 0xc5, 0x89, 0x6f, + 0xcc, 0xae, 0x7a, 0x43, 0x59, 0x5b, 0xf9, 0x0d, 0x51, 0xd5, 0x96, 0xbe, 0x1d, 0x3a, 0x9a, 0xb2, + 0xfe, 0x35, 0x07, 0xcc, 0xf3, 0xaf, 0x9b, 0x4f, 0xc1, 0xf2, 0x78, 0xa6, 0x1d, 0x21, 0xdc, 0x3d, + 0xe2, 0x62, 0xab, 0xe6, 0xec, 0xcd, 0x6c, 0x06, 0x95, 0xa8, 0x7c, 0x06, 0x95, 0x08, 0xcb, 0x59, + 0xd2, 0xc8, 0x0f, 0x04, 0x60, 0xfe, 0x12, 0x2c, 0x97, 0xaf, 0xdb, 0xb3, 0xff, 0xb7, 0xe9, 0xbb, + 0xe4, 0x4f, 0x5e, 0xa7, 0x7f, 0x63, 0x80, 0x65, 0x4c, 0x30, 0xc7, 0x5e, 0xcf, 0xed, 0x78, 0x3d, + 0x8f, 0xf8, 0xba, 0x13, 0xd0, 0x07, 0x9d, 0xd9, 0x65, 0x23, 0xf9, 0xf7, 0x97, 0x88, 0xd2, 0x29, + 0xee, 0x2c, 0x29, 0xde, 0x96, 0xb4, 0x49, 0x41, 0x45, 0xc7, 0x21, 0xbb, 0xe8, 0xc9, 0x07, 0xc5, + 0x51, 0xc9, 0xfd, 0xab, 0xfc, 0x4e, 0xf1, 0xab, 0x85, 0xb6, 0xf3, 0xf2, 0xac, 0x69, 0xbc, 0x3e, + 0x6b, 0x1a, 0x6f, 0xce, 0x9a, 0xc6, 0x3f, 0xce, 0x9a, 0xc6, 0xb3, 0xb7, 0xcd, 0x99, 0x37, 0x6f, + 0x9b, 0x33, 0x7f, 0x7d, 0xdb, 0x9c, 0xf9, 0xe9, 0x37, 0x0a, 0x9e, 0x55, 0x99, 0x11, 0xc4, 0xf5, + 0xe3, 0xa6, 0x7f, 0xe4, 0x61, 0x52, 0xbc, 0x96, 0x8a, 0x58, 0x3a, 0xf3, 0x22, 0x63, 0x77, 0xfe, + 0x13, 0x00, 0x00, 0xff, 0xff, 0xe5, 0xa1, 0xcf, 0xd9, 0x6b, 0x13, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { @@ -835,6 +845,9 @@ func (this *MetaNode) Equal(that interface{}) bool { if this.OwnerAddress != that1.OwnerAddress { return false } + if this.BeneficiaryAddress != that1.BeneficiaryAddress { + return false + } if !this.Description.Equal(&that1.Description) { return false } @@ -1214,7 +1227,7 @@ func (m *MetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { i -= n8 i = encodeVarintRegister(dAtA, i, uint64(n8)) i-- - dAtA[i] = 0x42 + dAtA[i] = 0x4a { size, err := m.Description.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -1224,7 +1237,14 @@ func (m *MetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintRegister(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x3a + dAtA[i] = 0x42 + if len(m.BeneficiaryAddress) > 0 { + i -= len(m.BeneficiaryAddress) + copy(dAtA[i:], m.BeneficiaryAddress) + i = encodeVarintRegister(dAtA, i, uint64(len(m.BeneficiaryAddress))) + i-- + dAtA[i] = 0x3a + } if len(m.OwnerAddress) > 0 { i -= len(m.OwnerAddress) copy(dAtA[i:], m.OwnerAddress) @@ -1619,6 +1639,10 @@ func (m *MetaNode) Size() (n int) { if l > 0 { n += 1 + l + sovRegister(uint64(l)) } + l = len(m.BeneficiaryAddress) + if l > 0 { + n += 1 + l + sovRegister(uint64(l)) + } l = m.Description.Size() n += 1 + l + sovRegister(uint64(l)) l = github_com_cosmos_gogoproto_types.SizeOfStdTime(m.CreationTime) @@ -2533,6 +2557,38 @@ func (m *MetaNode) Unmarshal(dAtA []byte) error { m.OwnerAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BeneficiaryAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowRegister + } + 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 ErrInvalidLengthRegister + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthRegister + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BeneficiaryAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } @@ -2565,7 +2621,7 @@ func (m *MetaNode) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 8: + case 9: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field CreationTime", wireType) } diff --git a/x/register/types/tx.pb.go b/x/register/types/tx.pb.go index ba9a5e6c..adc08c63 100644 --- a/x/register/types/tx.pb.go +++ b/x/register/types/tx.pb.go @@ -158,11 +158,12 @@ var xxx_messageInfo_MsgCreateResourceNodeResponse proto.InternalMessageInfo // MsgCreateMetaNode encapsulates an MsgCreateMetaNodeTx transaction as an SDK message. type MsgCreateMetaNode struct { - NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` - Pubkey *types.Any `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey" yaml:"pubkey"` - Value types1.Coin `protobuf:"bytes,3,opt,name=value,proto3" json:"value" yaml:"value"` - OwnerAddress string `protobuf:"bytes,4,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` - Description Description `protobuf:"bytes,5,opt,name=description,proto3" json:"description" yaml:"description"` + NetworkAddress string `protobuf:"bytes,1,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` + Pubkey *types.Any `protobuf:"bytes,2,opt,name=pubkey,proto3" json:"pubkey" yaml:"pubkey"` + Value types1.Coin `protobuf:"bytes,3,opt,name=value,proto3" json:"value" yaml:"value"` + OwnerAddress string `protobuf:"bytes,4,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` + BeneficiaryAddress string `protobuf:"bytes,5,opt,name=beneficiary_address,json=beneficiaryAddress,proto3" json:"beneficiary_address" yaml:"beneficiary_address"` + Description Description `protobuf:"bytes,6,opt,name=description,proto3" json:"description" yaml:"description"` } func (m *MsgCreateMetaNode) Reset() { *m = MsgCreateMetaNode{} } @@ -226,6 +227,13 @@ func (m *MsgCreateMetaNode) GetOwnerAddress() string { return "" } +func (m *MsgCreateMetaNode) GetBeneficiaryAddress() string { + if m != nil { + return m.BeneficiaryAddress + } + return "" +} + func (m *MsgCreateMetaNode) GetDescription() Description { if m != nil { return m.Description @@ -558,9 +566,10 @@ var xxx_messageInfo_MsgUpdateResourceNodeResponse proto.InternalMessageInfo // MsgUpdateMetaNode defines a SDK message for updating an existing meta node. type MsgUpdateMetaNode struct { - Description Description `protobuf:"bytes,1,opt,name=description,proto3" json:"description" yaml:"description"` - NetworkAddress string `protobuf:"bytes,2,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` - OwnerAddress string `protobuf:"bytes,3,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` + Description Description `protobuf:"bytes,1,opt,name=description,proto3" json:"description" yaml:"description"` + BeneficiaryAddress string `protobuf:"bytes,2,opt,name=beneficiary_address,json=beneficiaryAddress,proto3" json:"beneficiary_address" yaml:"beneficiary_address"` + NetworkAddress string `protobuf:"bytes,3,opt,name=network_address,json=networkAddress,proto3" json:"network_address" yaml:"network_address"` + OwnerAddress string `protobuf:"bytes,4,opt,name=owner_address,json=ownerAddress,proto3" json:"owner_address" yaml:"owner_address"` } func (m *MsgUpdateMetaNode) Reset() { *m = MsgUpdateMetaNode{} } @@ -603,6 +612,13 @@ func (m *MsgUpdateMetaNode) GetDescription() Description { return Description{} } +func (m *MsgUpdateMetaNode) GetBeneficiaryAddress() string { + if m != nil { + return m.BeneficiaryAddress + } + return "" +} + func (m *MsgUpdateMetaNode) GetNetworkAddress() string { if m != nil { return m.NetworkAddress @@ -1283,108 +1299,111 @@ func init() { func init() { proto.RegisterFile("stratos/register/v1/tx.proto", fileDescriptor_75d4b90d7a185a31) } var fileDescriptor_75d4b90d7a185a31 = []byte{ - // 1603 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcf, 0x6f, 0x1b, 0xc5, - 0x17, 0xcf, 0xc6, 0x49, 0xbe, 0xcd, 0x34, 0x69, 0x9a, 0x6d, 0xf2, 0x8d, 0xe3, 0xb4, 0x9e, 0x64, - 0x5b, 0xa2, 0x28, 0x6a, 0xd6, 0x4d, 0xfa, 0x8b, 0xba, 0x52, 0x45, 0x9d, 0x56, 0xa2, 0x42, 0x69, - 0x8b, 0xdb, 0x52, 0xc1, 0xc5, 0x5a, 0xdb, 0x13, 0x67, 0x49, 0xbc, 0x63, 0x76, 0xd7, 0x6e, 0x7d, - 0xa8, 0x84, 0x90, 0x40, 0x02, 0x09, 0x41, 0x91, 0x38, 0x71, 0xe0, 0x82, 0x44, 0xb9, 0xe5, 0x00, - 0x47, 0x24, 0x6e, 0x14, 0x4e, 0x15, 0x27, 0xe0, 0x30, 0x42, 0xe9, 0xa1, 0x92, 0x8f, 0xfb, 0x17, - 0xa0, 0xdd, 0x99, 0x1d, 0x7b, 0x77, 0x67, 0x5d, 0x47, 0x90, 0x1c, 0x50, 0x2e, 0xad, 0xf7, 0xbd, - 0xcf, 0xcc, 0x7b, 0xf3, 0x79, 0x9f, 0x79, 0xb3, 0xb3, 0x01, 0xc7, 0x2d, 0xdb, 0xd4, 0x6c, 0x6c, - 0x65, 0x4c, 0x54, 0xd1, 0x2d, 0x1b, 0x99, 0x99, 0xc6, 0x72, 0xc6, 0x7e, 0xa8, 0xd6, 0x4c, 0x6c, - 0x63, 0xf9, 0x18, 0xf3, 0xaa, 0xbe, 0x57, 0x6d, 0x2c, 0xa7, 0x26, 0x2a, 0xb8, 0x82, 0x3d, 0x7f, - 0xc6, 0xfd, 0x45, 0xa1, 0xa9, 0xe9, 0x12, 0xb6, 0xaa, 0xd8, 0x2a, 0x50, 0x07, 0x7d, 0x60, 0xae, - 0x71, 0xad, 0xaa, 0x1b, 0x38, 0xe3, 0xfd, 0xcb, 0x4c, 0x53, 0x14, 0x90, 0xa9, 0x5a, 0x15, 0x37, - 0x60, 0xd5, 0xaa, 0x30, 0x47, 0x9a, 0x39, 0x8a, 0x9a, 0x85, 0x32, 0x8d, 0xe5, 0x22, 0xb2, 0xb5, - 0xe5, 0x4c, 0x09, 0xeb, 0x86, 0x1f, 0xa6, 0x82, 0x71, 0x65, 0x0b, 0x65, 0xbc, 0xa7, 0x62, 0x7d, - 0x3d, 0xa3, 0x19, 0x4d, 0xe6, 0x52, 0x44, 0x4b, 0xe1, 0x89, 0x7b, 0x18, 0xe5, 0xf1, 0x20, 0x98, - 0x5c, 0xb3, 0x2a, 0xab, 0x26, 0xd2, 0x6c, 0x94, 0x47, 0x16, 0xae, 0x9b, 0x25, 0x74, 0x13, 0x97, - 0x91, 0x6c, 0x80, 0x31, 0x03, 0xd9, 0x0f, 0xb0, 0xb9, 0x59, 0xd0, 0xca, 0x65, 0x13, 0x59, 0x56, - 0x52, 0x9a, 0x95, 0x16, 0x86, 0x73, 0xd7, 0x5b, 0x04, 0x86, 0x5d, 0x0e, 0x81, 0xff, 0x6f, 0x6a, - 0xd5, 0xad, 0xac, 0x12, 0x72, 0x28, 0xbf, 0x7d, 0xbf, 0x34, 0xc1, 0x16, 0x7f, 0x95, 0x9a, 0xee, - 0xd8, 0xa6, 0x6e, 0x54, 0xf2, 0x47, 0x18, 0x92, 0x59, 0x65, 0x0d, 0x0c, 0xd5, 0xea, 0xc5, 0x4d, - 0xd4, 0x4c, 0xf6, 0xcf, 0x4a, 0x0b, 0x87, 0x57, 0x26, 0x54, 0xba, 0x32, 0xd5, 0x5f, 0x99, 0x7a, - 0xd5, 0x68, 0xe6, 0xce, 0xb6, 0x08, 0x64, 0x38, 0x87, 0xc0, 0x51, 0x1a, 0x93, 0x3e, 0x2b, 0xbf, - 0xb6, 0x43, 0x95, 0xcc, 0x66, 0xcd, 0xc6, 0xea, 0xed, 0x7a, 0xf1, 0x0d, 0xd4, 0xcc, 0xb3, 0x01, - 0xf2, 0x1d, 0x30, 0xd8, 0xd0, 0xb6, 0xea, 0x28, 0x99, 0xf0, 0x22, 0x4c, 0xab, 0x0c, 0xed, 0x72, - 0xab, 0x32, 0x6e, 0xd5, 0x55, 0xac, 0x1b, 0x39, 0xe5, 0x29, 0x81, 0x7d, 0x2d, 0x02, 0x29, 0xde, - 0x21, 0x70, 0x84, 0x46, 0xf2, 0x1e, 0x95, 0x27, 0x2f, 0xb6, 0x17, 0xa5, 0x3c, 0xf5, 0xc9, 0xeb, - 0x60, 0x14, 0x3f, 0x30, 0x90, 0xc9, 0x59, 0x1a, 0xf0, 0x58, 0xba, 0xda, 0x22, 0x30, 0xe8, 0x70, - 0x08, 0x9c, 0xa0, 0xb3, 0x04, 0xcc, 0xf1, 0x0c, 0x8d, 0x78, 0x38, 0x9f, 0x1f, 0x13, 0x1c, 0x2e, - 0x23, 0xab, 0x64, 0xea, 0x35, 0x5b, 0xc7, 0x46, 0x72, 0xd0, 0x5b, 0xc2, 0xac, 0x2a, 0x10, 0xa4, - 0x7a, 0xad, 0x8d, 0xcb, 0xa9, 0x6c, 0x25, 0x9d, 0x83, 0x1d, 0x02, 0x65, 0x9a, 0x49, 0x87, 0x91, - 0xad, 0xaa, 0x13, 0x27, 0x5f, 0x01, 0xc3, 0x06, 0x2e, 0xa3, 0x82, 0xdd, 0xac, 0xa1, 0xe4, 0xd0, - 0xac, 0xb4, 0x30, 0x9a, 0x9b, 0x6b, 0x11, 0xd8, 0x36, 0x3a, 0x04, 0x1e, 0x65, 0x75, 0xf7, 0x4d, - 0x4a, 0xfe, 0x90, 0xfb, 0xfb, 0x6e, 0xb3, 0x86, 0xb2, 0xe7, 0x3e, 0x78, 0xb1, 0xbd, 0x18, 0x64, - 0xe1, 0x93, 0x17, 0xdb, 0x8b, 0x27, 0x7c, 0x61, 0x0a, 0x95, 0xa7, 0x40, 0x70, 0x42, 0xe8, 0xc8, - 0x23, 0xab, 0x86, 0x0d, 0x0b, 0x29, 0xbf, 0x0c, 0x80, 0x71, 0x8e, 0x58, 0x43, 0xb6, 0x76, 0x20, - 0xd8, 0x03, 0xc1, 0xba, 0xa6, 0xec, 0x19, 0xb1, 0xe0, 0xa6, 0x23, 0x82, 0xf3, 0x55, 0xa3, 0xcc, - 0x80, 0xe9, 0x88, 0x91, 0x0b, 0xed, 0xc7, 0x7e, 0xaf, 0x3b, 0xe6, 0x51, 0x15, 0x37, 0x82, 0xdd, - 0xf1, 0x43, 0x09, 0x4c, 0x9a, 0xcc, 0x50, 0xf0, 0xb4, 0x1f, 0xd4, 0xdc, 0x9b, 0x2d, 0x02, 0xc5, - 0x00, 0x87, 0xc0, 0xe3, 0x74, 0x2d, 0x42, 0x77, 0x3c, 0xbb, 0xc7, 0xcc, 0x8e, 0x04, 0x7c, 0x92, - 0x23, 0xc5, 0xec, 0xdf, 0x93, 0x62, 0xf6, 0xb2, 0x93, 0xa3, 0x2c, 0xb1, 0x9d, 0x1c, 0x75, 0x70, - 0x82, 0xbf, 0xe9, 0xf7, 0x76, 0x32, 0x45, 0xf0, 0x9d, 0x5c, 0x07, 0xe3, 0x55, 0x64, 0x6b, 0x22, - 0x5e, 0x6f, 0xb4, 0x08, 0x8c, 0x3a, 0x1d, 0x02, 0x93, 0x74, 0x71, 0x11, 0x57, 0xfc, 0x02, 0xc7, - 0xaa, 0x2c, 0xde, 0x7e, 0x73, 0xd9, 0x83, 0x48, 0x83, 0x84, 0x30, 0x91, 0x06, 0x8d, 0x9c, 0xc3, - 0x3f, 0x12, 0x9e, 0x48, 0xef, 0xd5, 0xca, 0xe1, 0x23, 0x3c, 0xb4, 0x03, 0xa5, 0xfd, 0x38, 0x32, - 0x04, 0x5d, 0xb8, 0x7f, 0x2f, 0xbb, 0x70, 0xa4, 0x68, 0x89, 0xbd, 0xe9, 0x66, 0x81, 0xa3, 0x70, - 0x60, 0x4f, 0x8e, 0xc2, 0x68, 0x05, 0xd9, 0x06, 0x8a, 0x3a, 0x78, 0xf1, 0x1f, 0x27, 0xbc, 0x0d, - 0x44, 0x11, 0x7c, 0x03, 0x1d, 0x14, 0x7e, 0x5f, 0x77, 0x6b, 0x90, 0x7d, 0xb6, 0x5b, 0x83, 0x46, - 0x5e, 0xb0, 0x6f, 0x13, 0xe0, 0xb8, 0xb0, 0xa4, 0xd7, 0x50, 0x0d, 0x5b, 0xba, 0xbd, 0xef, 0xaf, - 0x31, 0xfb, 0xd4, 0xf5, 0x64, 0x13, 0x8c, 0x96, 0xe9, 0x12, 0x0b, 0x65, 0xb4, 0x65, 0x6b, 0x2f, - 0x7f, 0xa7, 0x59, 0x61, 0x72, 0x0c, 0x8e, 0x6b, 0xa7, 0x11, 0x30, 0x33, 0x49, 0x8e, 0x30, 0xe3, - 0x35, 0xd7, 0x96, 0xbd, 0x2c, 0xae, 0xdd, 0xa9, 0xae, 0x9b, 0x8e, 0x15, 0x42, 0x99, 0x07, 0xa7, - 0xba, 0xf9, 0x79, 0x45, 0xbf, 0x1b, 0xe8, 0xa8, 0xf7, 0xf5, 0xf5, 0x75, 0x54, 0xb2, 0xf5, 0x06, - 0x2f, 0xe7, 0x7d, 0x30, 0x6c, 0xa2, 0x1a, 0x36, 0x6d, 0x64, 0xba, 0x85, 0x4c, 0x2c, 0x0c, 0xe7, - 0x2e, 0xb9, 0x7d, 0x83, 0x1b, 0xdb, 0x7d, 0x83, 0x9b, 0xe2, 0x29, 0x6d, 0x0f, 0x93, 0xdf, 0x05, - 0x47, 0xfc, 0x87, 0x82, 0xb7, 0xc2, 0x64, 0xbf, 0x37, 0xfb, 0x6a, 0x8b, 0xc0, 0x90, 0xc7, 0x21, - 0x70, 0x32, 0x18, 0x82, 0xda, 0xe3, 0xe3, 0x8c, 0xfa, 0xc0, 0x5b, 0x2e, 0x4e, 0xa4, 0xc9, 0xc4, - 0x5e, 0x6a, 0xf2, 0x2b, 0x09, 0x1c, 0x45, 0x3e, 0x93, 0x05, 0x1b, 0x6f, 0x22, 0xc3, 0x7f, 0x4d, - 0xad, 0xb9, 0xa2, 0xf8, 0x93, 0xc0, 0xf9, 0x8a, 0x6e, 0x6f, 0xd4, 0x8b, 0x6a, 0x09, 0x57, 0xd9, - 0xe5, 0x9a, 0xfd, 0xb7, 0x64, 0x95, 0x37, 0x33, 0x6e, 0xf7, 0xb5, 0xd4, 0x1b, 0x86, 0xdd, 0x22, - 0x30, 0x32, 0x93, 0x43, 0xe0, 0x14, 0x4d, 0x30, 0xec, 0x71, 0x33, 0x04, 0x2c, 0xc3, 0x1b, 0x86, - 0x4d, 0x25, 0x35, 0xc6, 0x51, 0x77, 0x3d, 0x50, 0xf6, 0x92, 0xab, 0xaa, 0x10, 0xc5, 0xae, 0xac, - 0xe6, 0x22, 0xb2, 0x0a, 0xab, 0x41, 0x39, 0x09, 0xe6, 0x62, 0x9d, 0x5c, 0x50, 0x5f, 0x27, 0x40, - 0x32, 0xd2, 0x40, 0x0e, 0xda, 0xc3, 0xbf, 0xdf, 0x1e, 0x2e, 0x8a, 0xdb, 0xc3, 0x6c, 0x6c, 0x6b, - 0xf7, 0xcb, 0xa8, 0x80, 0xd9, 0x38, 0x1f, 0xaf, 0xe2, 0xcf, 0x83, 0x60, 0x66, 0xcd, 0xaa, 0xb4, - 0x0f, 0x00, 0xf7, 0xcc, 0x35, 0x35, 0xf7, 0xac, 0x7c, 0x0b, 0xdb, 0x48, 0xfe, 0x52, 0x02, 0xd3, - 0x25, 0xcd, 0x28, 0xeb, 0xee, 0x24, 0x05, 0x71, 0x4d, 0xdf, 0x6e, 0x11, 0x18, 0x0f, 0x72, 0x08, - 0x9c, 0xa5, 0x4b, 0x8d, 0x85, 0xc4, 0xb3, 0x3f, 0xc5, 0xc7, 0xdc, 0x0c, 0x16, 0xfc, 0x53, 0x09, - 0xb4, 0x7d, 0x05, 0x51, 0xed, 0xef, 0xb5, 0x08, 0x8c, 0x83, 0x38, 0x04, 0xa6, 0xc3, 0x39, 0xf5, - 0xa8, 0x87, 0x49, 0x3e, 0xe2, 0x56, 0xa7, 0x30, 0x2e, 0x82, 0xff, 0xe1, 0x9a, 0x6e, 0xb8, 0xef, - 0x31, 0xae, 0x24, 0x0e, 0xe5, 0x4e, 0xb4, 0x08, 0xf4, 0x4d, 0x0e, 0x81, 0x47, 0x98, 0xe8, 0xa8, - 0x41, 0xc9, 0xfb, 0x2e, 0xef, 0x8a, 0xd6, 0xc0, 0xee, 0x0e, 0x0d, 0x93, 0x3b, 0xd0, 0xbe, 0xa2, - 0x09, 0x01, 0xed, 0x2b, 0x9a, 0xd0, 0xdd, 0xe5, 0x8a, 0xe6, 0xe1, 0x43, 0x84, 0x3e, 0x02, 0xd4, - 0x1c, 0xe2, 0x72, 0xd0, 0x4b, 0x62, 0xad, 0x45, 0xa0, 0xc8, 0xed, 0x10, 0x98, 0xea, 0x4c, 0xa1, - 0x47, 0x0e, 0xc7, 0x3d, 0x74, 0x27, 0x7f, 0xd9, 0xd7, 0x5c, 0x91, 0x8b, 0x42, 0xb8, 0x52, 0x3f, - 0xd9, 0x21, 0xf5, 0x38, 0xa5, 0x2a, 0xaf, 0x80, 0x93, 0x5d, 0xdc, 0x6d, 0xc1, 0xf7, 0x83, 0xf9, - 0x35, 0xab, 0x72, 0x5f, 0xb7, 0x37, 0xca, 0xa6, 0xf6, 0x40, 0x84, 0xff, 0x8f, 0x37, 0xb1, 0xec, - 0x75, 0x71, 0x43, 0x51, 0x3b, 0x58, 0xee, 0x81, 0x1e, 0xe5, 0x0c, 0x50, 0x7b, 0x43, 0x72, 0xee, - 0x7f, 0x92, 0xc0, 0x18, 0xef, 0x48, 0xb7, 0x35, 0x53, 0xab, 0x5a, 0xf2, 0x05, 0x30, 0xac, 0xd5, - 0xed, 0x0d, 0x6c, 0xea, 0x76, 0x93, 0xd1, 0x9b, 0x8c, 0x7f, 0xb1, 0xe0, 0x50, 0xf9, 0x0a, 0x18, - 0xaa, 0x79, 0x33, 0xb0, 0xef, 0x5a, 0x33, 0xc2, 0x7b, 0x03, 0x0d, 0x92, 0x1b, 0x76, 0x9b, 0x30, - 0xed, 0xad, 0x6c, 0x54, 0xf6, 0xbc, 0x4b, 0x42, 0x7b, 0x3e, 0x97, 0x00, 0xfe, 0x25, 0xfa, 0x61, - 0xfb, 0x5b, 0x74, 0x28, 0x5d, 0x65, 0x1a, 0x4c, 0x85, 0x4c, 0xfe, 0xea, 0x56, 0x7e, 0x18, 0x01, - 0x89, 0x35, 0xab, 0x22, 0x3f, 0x02, 0x33, 0xaf, 0x6b, 0x46, 0x79, 0x0b, 0x89, 0xbf, 0x58, 0x2f, - 0x0a, 0x13, 0x15, 0x62, 0x53, 0x2b, 0xbd, 0x63, 0xfd, 0x34, 0x02, 0xe1, 0x05, 0x9f, 0x84, 0x62, - 0xc3, 0x47, 0xb1, 0xf1, 0xe1, 0xe3, 0xbf, 0x95, 0x04, 0xc2, 0x0b, 0x2e, 0xfb, 0xb1, 0xe1, 0xa3, - 0xd8, 0xf8, 0xf0, 0xf1, 0x37, 0x4d, 0xf9, 0x0b, 0x09, 0x28, 0x5d, 0xe2, 0xfb, 0x5b, 0x7b, 0xb9, - 0xf7, 0xa9, 0xd9, 0x90, 0xd4, 0xa5, 0x5d, 0x0f, 0xe1, 0x49, 0x7d, 0x2c, 0x01, 0x18, 0x4a, 0x2a, - 0xf2, 0x06, 0xae, 0x76, 0x9f, 0x3e, 0x8c, 0x4f, 0x5d, 0xd8, 0x1d, 0x9e, 0xe7, 0xf2, 0x1e, 0x98, - 0x0a, 0xa9, 0x93, 0xdf, 0xc7, 0xe7, 0xbb, 0xab, 0xcd, 0xc7, 0xa5, 0xd4, 0xde, 0x70, 0xc2, 0x90, - 0xa1, 0x6f, 0x68, 0xf3, 0xdd, 0x15, 0xf6, 0xf2, 0x90, 0xe2, 0xaf, 0x4d, 0x81, 0x90, 0xa1, 0xaf, - 0x0e, 0xf3, 0xdd, 0x89, 0x7b, 0x79, 0x48, 0xf1, 0x95, 0x59, 0xfe, 0x48, 0x02, 0xe9, 0x98, 0x98, - 0x7e, 0x8d, 0x97, 0x7a, 0x9b, 0xd2, 0x2f, 0xf1, 0xf9, 0x5d, 0xc1, 0x79, 0x22, 0x9f, 0x49, 0x60, - 0x8e, 0x27, 0x12, 0xfb, 0x62, 0x77, 0x26, 0x6e, 0xf2, 0xb8, 0x11, 0xa9, 0x57, 0x77, 0x3b, 0x82, - 0x67, 0xb4, 0x2d, 0x81, 0xd3, 0x3c, 0xa3, 0x5e, 0x4e, 0xde, 0xcb, 0x71, 0xa1, 0x7a, 0x18, 0x9c, - 0x5a, 0xfd, 0x07, 0x83, 0x79, 0xca, 0x45, 0x30, 0x12, 0x38, 0xa6, 0x4e, 0x75, 0xaf, 0x05, 0x45, - 0xa5, 0x4e, 0xf7, 0x82, 0xf2, 0x63, 0xa4, 0x06, 0xdf, 0x77, 0x4f, 0xa4, 0x5c, 0xfe, 0xc9, 0x4e, - 0x5a, 0x7a, 0xba, 0x93, 0x96, 0x9e, 0xed, 0xa4, 0xa5, 0xbf, 0x76, 0xd2, 0xd2, 0xe7, 0xcf, 0xd3, - 0x7d, 0xcf, 0x9e, 0xa7, 0xfb, 0x7e, 0x7f, 0x9e, 0xee, 0x7b, 0xe7, 0x5c, 0xc7, 0x0d, 0x92, 0x4d, - 0x6e, 0x20, 0xdb, 0xff, 0xb9, 0x54, 0xda, 0xd0, 0x74, 0xa3, 0xf3, 0xc0, 0xf2, 0xee, 0x94, 0xc5, - 0x21, 0xef, 0xaf, 0x3b, 0x67, 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xa4, 0xb6, 0xa2, 0x06, 0x28, - 0x1e, 0x00, 0x00, + // 1653 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcf, 0x6f, 0x1b, 0x45, + 0x1b, 0xce, 0xda, 0x49, 0xbe, 0x66, 0x9a, 0x34, 0xcd, 0x36, 0xf9, 0xe2, 0x38, 0xad, 0x27, 0xd9, + 0xf6, 0x8b, 0xa2, 0xa8, 0x59, 0x37, 0xe9, 0xaf, 0xaf, 0xae, 0x54, 0x7d, 0x75, 0x5a, 0xe9, 0xab, + 0x50, 0xda, 0xe2, 0xb6, 0x54, 0x70, 0xb1, 0xd6, 0xf6, 0xc4, 0x59, 0x12, 0xef, 0x98, 0xdd, 0xb5, + 0x5b, 0x1f, 0x8a, 0x10, 0x12, 0x48, 0x20, 0x21, 0x28, 0x12, 0x27, 0x0e, 0x5c, 0x90, 0x28, 0xb7, + 0x1c, 0xe0, 0x88, 0xc4, 0x8d, 0xc2, 0xa9, 0xe2, 0x04, 0x1c, 0x46, 0x28, 0x3d, 0x54, 0xf2, 0xd1, + 0x7f, 0x01, 0xda, 0xdd, 0xd9, 0xb1, 0x77, 0x77, 0xc6, 0x75, 0x04, 0x71, 0x11, 0xea, 0xa5, 0xf5, + 0xbe, 0xcf, 0x33, 0xf3, 0xbe, 0xf3, 0xbe, 0xcf, 0xbc, 0xb3, 0x3b, 0x01, 0x47, 0x2d, 0xdb, 0xd4, + 0x6c, 0x6c, 0xa5, 0x4d, 0x54, 0xd6, 0x2d, 0x1b, 0x99, 0xe9, 0xfa, 0x4a, 0xda, 0xbe, 0xaf, 0x56, + 0x4d, 0x6c, 0x63, 0xf9, 0x08, 0x45, 0x55, 0x1f, 0x55, 0xeb, 0x2b, 0xc9, 0xc9, 0x32, 0x2e, 0x63, + 0x17, 0x4f, 0x3b, 0xbf, 0x3c, 0x6a, 0x72, 0xa6, 0x88, 0xad, 0x0a, 0xb6, 0xf2, 0x1e, 0xe0, 0x3d, + 0x50, 0x68, 0x42, 0xab, 0xe8, 0x06, 0x4e, 0xbb, 0xff, 0x52, 0xd3, 0xb4, 0x47, 0x48, 0x57, 0xac, + 0xb2, 0xe3, 0xb0, 0x62, 0x95, 0x29, 0x90, 0xa2, 0x40, 0x41, 0xb3, 0x50, 0xba, 0xbe, 0x52, 0x40, + 0xb6, 0xb6, 0x92, 0x2e, 0x62, 0xdd, 0xf0, 0xdd, 0x94, 0x31, 0x2e, 0x6f, 0xa3, 0xb4, 0xfb, 0x54, + 0xa8, 0x6d, 0xa4, 0x35, 0xa3, 0x41, 0x21, 0x85, 0xb7, 0x14, 0x16, 0xb8, 0xcb, 0x51, 0x1e, 0x0e, + 0x81, 0xa9, 0x75, 0xab, 0xbc, 0x66, 0x22, 0xcd, 0x46, 0x39, 0x64, 0xe1, 0x9a, 0x59, 0x44, 0xd7, + 0x71, 0x09, 0xc9, 0x06, 0x18, 0x37, 0x90, 0x7d, 0x0f, 0x9b, 0x5b, 0x79, 0xad, 0x54, 0x32, 0x91, + 0x65, 0x25, 0xa4, 0x39, 0x69, 0x71, 0x24, 0x7b, 0xb5, 0x49, 0x60, 0x18, 0x6a, 0x11, 0xf8, 0xef, + 0x86, 0x56, 0xd9, 0xce, 0x28, 0x21, 0x40, 0xf9, 0xf9, 0x9b, 0xe5, 0x49, 0xba, 0xf8, 0xcb, 0x9e, + 0xe9, 0x96, 0x6d, 0xea, 0x46, 0x39, 0x77, 0x88, 0x32, 0xa9, 0x55, 0xd6, 0xc0, 0x70, 0xb5, 0x56, + 0xd8, 0x42, 0x8d, 0x44, 0x6c, 0x4e, 0x5a, 0x3c, 0xb8, 0x3a, 0xa9, 0x7a, 0x2b, 0x53, 0xfd, 0x95, + 0xa9, 0x97, 0x8d, 0x46, 0xf6, 0x74, 0x93, 0x40, 0xca, 0x6b, 0x11, 0x38, 0xe6, 0xf9, 0xf4, 0x9e, + 0x95, 0x9f, 0xda, 0xae, 0x8a, 0x66, 0xa3, 0x6a, 0x63, 0xf5, 0x66, 0xad, 0xf0, 0x0a, 0x6a, 0xe4, + 0xe8, 0x00, 0xf9, 0x16, 0x18, 0xaa, 0x6b, 0xdb, 0x35, 0x94, 0x88, 0xbb, 0x1e, 0x66, 0x54, 0xca, + 0x76, 0x72, 0xab, 0xd2, 0xdc, 0xaa, 0x6b, 0x58, 0x37, 0xb2, 0xca, 0x63, 0x02, 0x07, 0x9a, 0x04, + 0x7a, 0xfc, 0x16, 0x81, 0xa3, 0x9e, 0x27, 0xf7, 0x51, 0x79, 0xf4, 0x6c, 0x67, 0x49, 0xca, 0x79, + 0x98, 0xbc, 0x01, 0xc6, 0xf0, 0x3d, 0x03, 0x99, 0x2c, 0x4b, 0x83, 0x6e, 0x96, 0x2e, 0x37, 0x09, + 0x0c, 0x02, 0x2d, 0x02, 0x27, 0xbd, 0x59, 0x02, 0x66, 0x71, 0x86, 0x46, 0x5d, 0x9e, 0x9f, 0x1f, + 0x13, 0x1c, 0x2c, 0x21, 0xab, 0x68, 0xea, 0x55, 0x5b, 0xc7, 0x46, 0x62, 0xc8, 0x5d, 0xc2, 0x9c, + 0xca, 0x11, 0xa4, 0x7a, 0xa5, 0xcd, 0xcb, 0xaa, 0x74, 0x25, 0x9d, 0x83, 0x5b, 0x04, 0xca, 0x5e, + 0x24, 0x1d, 0x46, 0xba, 0xaa, 0x4e, 0x9e, 0x7c, 0x09, 0x8c, 0x18, 0xb8, 0x84, 0xf2, 0x76, 0xa3, + 0x8a, 0x12, 0xc3, 0x73, 0xd2, 0xe2, 0x58, 0x76, 0xbe, 0x49, 0x60, 0xdb, 0xd8, 0x22, 0xf0, 0x30, + 0xad, 0xbb, 0x6f, 0x52, 0x72, 0x07, 0x9c, 0xdf, 0xb7, 0x1b, 0x55, 0x94, 0x39, 0xf3, 0xee, 0xb3, + 0x9d, 0xa5, 0x60, 0x16, 0x3e, 0x7c, 0xb6, 0xb3, 0x74, 0xcc, 0x17, 0x26, 0x57, 0x79, 0x0a, 0x04, + 0xc7, 0xb8, 0x40, 0x0e, 0x59, 0x55, 0x6c, 0x58, 0x48, 0xf9, 0x71, 0x08, 0x4c, 0x30, 0xc6, 0x3a, + 0xb2, 0xb5, 0x97, 0x82, 0xfd, 0x1b, 0x0a, 0xf6, 0x6d, 0x70, 0xa4, 0x80, 0x0c, 0xb4, 0xa1, 0x17, + 0x75, 0xcd, 0x6c, 0x30, 0x6f, 0x43, 0xae, 0xb7, 0xf5, 0x26, 0x81, 0x3c, 0xb8, 0x45, 0x60, 0xd2, + 0xf3, 0xc9, 0x01, 0xc5, 0x9e, 0xe5, 0x0e, 0xb6, 0x60, 0xc3, 0x0c, 0xf7, 0x61, 0xc3, 0x64, 0x4e, + 0xf1, 0x05, 0x3f, 0x13, 0x11, 0xbc, 0xaf, 0x5a, 0x65, 0x16, 0xcc, 0x44, 0x8c, 0x4c, 0xe8, 0xdf, + 0xc5, 0xdc, 0xee, 0x9c, 0x43, 0x15, 0x5c, 0x0f, 0x76, 0xe7, 0xf7, 0x24, 0x30, 0x65, 0x52, 0x43, + 0xde, 0xdd, 0x7b, 0x41, 0xcd, 0xbf, 0xda, 0x24, 0x90, 0x4f, 0x68, 0x11, 0x78, 0xd4, 0x5b, 0x0b, + 0x17, 0x16, 0xe7, 0xf8, 0x88, 0xd9, 0x11, 0x80, 0x9f, 0xe4, 0x88, 0x98, 0x62, 0xfb, 0x22, 0xa6, + 0x5e, 0x3a, 0x49, 0x34, 0x4b, 0xb4, 0x93, 0x44, 0x01, 0x96, 0xe0, 0x2f, 0x63, 0x6e, 0x27, 0xf1, + 0x18, 0xac, 0x93, 0xd4, 0xc0, 0x44, 0x05, 0xd9, 0x1a, 0x2f, 0xaf, 0xd7, 0x9a, 0x04, 0x46, 0xc1, + 0x16, 0x81, 0x09, 0x6f, 0x71, 0x11, 0x48, 0xbc, 0xc0, 0xf1, 0x0a, 0xf5, 0xd7, 0xef, 0x5c, 0xf6, + 0x20, 0xd2, 0x60, 0x42, 0xa8, 0x48, 0x83, 0x46, 0x96, 0xc3, 0x5f, 0xe3, 0xae, 0x48, 0xef, 0x54, + 0x4b, 0xe1, 0x57, 0x88, 0xd0, 0x0e, 0x94, 0xfa, 0x71, 0x64, 0x71, 0x4e, 0x81, 0xd8, 0x7e, 0x9e, + 0x02, 0x91, 0xa2, 0xc5, 0xf7, 0xa7, 0x9b, 0x06, 0x8e, 0xe2, 0xc1, 0x7d, 0x39, 0x8a, 0xa3, 0x15, + 0xa4, 0x1b, 0x28, 0x0a, 0xb0, 0xe2, 0x3f, 0x1c, 0x74, 0x37, 0x90, 0xc7, 0x60, 0x1b, 0xe8, 0x45, + 0x14, 0x5e, 0x70, 0xdc, 0xc4, 0xfa, 0x75, 0xdc, 0x70, 0x84, 0x17, 0xef, 0xab, 0xf0, 0x06, 0x5f, + 0x58, 0xb7, 0x08, 0x56, 0x9f, 0x76, 0x8b, 0xa0, 0x91, 0x09, 0xe6, 0xab, 0x38, 0x38, 0xca, 0x95, + 0xd4, 0x15, 0x54, 0xc5, 0x96, 0x6e, 0xf7, 0xfd, 0x35, 0xae, 0x4f, 0x5d, 0x57, 0x36, 0xc1, 0x58, + 0xc9, 0x5b, 0x62, 0xbe, 0x84, 0xb6, 0x6d, 0xed, 0xf9, 0xef, 0x74, 0xab, 0x74, 0x3b, 0x04, 0xc7, + 0xb5, 0xc3, 0x08, 0x98, 0xe9, 0x96, 0x18, 0xa5, 0xc6, 0x2b, 0x8e, 0x2d, 0x73, 0x91, 0x5f, 0xbb, + 0x13, 0x5d, 0x37, 0x3d, 0x2d, 0x84, 0xb2, 0x00, 0x4e, 0x74, 0xc3, 0x59, 0x45, 0xbf, 0x1e, 0xec, + 0xa8, 0xf7, 0xd5, 0x8d, 0x0d, 0x54, 0xb4, 0xf5, 0x3a, 0x2b, 0xe7, 0x5d, 0x30, 0x62, 0xa2, 0x2a, + 0x36, 0x6d, 0x64, 0x3a, 0x85, 0x8c, 0x2f, 0x8e, 0x64, 0x2f, 0x38, 0x7d, 0x8b, 0x19, 0xdb, 0x7d, + 0x8b, 0x99, 0xc4, 0x29, 0x6d, 0x0f, 0x93, 0xdf, 0x04, 0x87, 0xfc, 0x87, 0xbc, 0xbb, 0xc2, 0x44, + 0xcc, 0x9d, 0x7d, 0xad, 0x49, 0x60, 0x08, 0x69, 0x11, 0x38, 0x15, 0x74, 0xe1, 0xd9, 0xc5, 0x7e, + 0xc6, 0x7c, 0xe2, 0x0d, 0x87, 0xd7, 0xf7, 0xbd, 0xfd, 0xb9, 0x04, 0x0e, 0x23, 0x3f, 0x93, 0x79, + 0x1b, 0x6f, 0x21, 0xc3, 0xdf, 0xdf, 0x55, 0x47, 0x14, 0xbf, 0x11, 0xb8, 0x50, 0xd6, 0xed, 0xcd, + 0x5a, 0x41, 0x2d, 0xe2, 0x0a, 0xbd, 0x5c, 0xa0, 0xff, 0x2d, 0x5b, 0xa5, 0xad, 0xb4, 0xd3, 0xfd, + 0x2d, 0xf5, 0x9a, 0x61, 0x37, 0x09, 0x8c, 0xcc, 0xd4, 0x22, 0x70, 0xda, 0x0b, 0x30, 0x8c, 0x38, + 0x11, 0x02, 0x1a, 0xe1, 0x35, 0xc3, 0xf6, 0x24, 0x35, 0xce, 0x58, 0xb7, 0x5d, 0x52, 0xe6, 0x82, + 0xa3, 0xaa, 0x50, 0x8a, 0x1d, 0x59, 0xcd, 0x47, 0x64, 0x15, 0x56, 0x83, 0x72, 0x1c, 0xcc, 0x0b, + 0x41, 0x26, 0xa8, 0x2f, 0xe2, 0x20, 0x11, 0x69, 0x20, 0x2f, 0xdb, 0xc3, 0x5f, 0xdf, 0x1e, 0xce, + 0xf3, 0xdb, 0xc3, 0x9c, 0xb0, 0xb5, 0xfb, 0x65, 0x54, 0xc0, 0x9c, 0x08, 0x63, 0x55, 0xfc, 0x61, + 0x08, 0xcc, 0xae, 0x5b, 0xe5, 0xf6, 0x01, 0xe0, 0x9c, 0xf9, 0xa6, 0xe6, 0x9c, 0xd5, 0xaf, 0x61, + 0x1b, 0xc9, 0x9f, 0x49, 0x60, 0xa6, 0xa8, 0x19, 0x25, 0xdd, 0x99, 0x24, 0xcf, 0xaf, 0xe9, 0xeb, + 0x4d, 0x02, 0xc5, 0xa4, 0x16, 0x81, 0x73, 0xde, 0x52, 0x85, 0x14, 0x71, 0xf6, 0xa7, 0xd9, 0x98, + 0xeb, 0xc1, 0x82, 0x7f, 0x24, 0x81, 0x36, 0x96, 0xe7, 0xd5, 0xfe, 0x4e, 0x93, 0x40, 0x11, 0xa5, + 0x45, 0x60, 0x2a, 0x1c, 0x53, 0x8f, 0x7a, 0x98, 0x62, 0x23, 0x6e, 0x74, 0x0a, 0xe3, 0x3c, 0xf8, + 0x17, 0xae, 0xea, 0x86, 0xf3, 0x1e, 0xe5, 0x48, 0xe2, 0x40, 0xf6, 0x58, 0x93, 0x40, 0xdf, 0xd4, + 0x22, 0xf0, 0x10, 0x15, 0x9d, 0x67, 0x50, 0x72, 0x3e, 0xe4, 0x7e, 0x22, 0xd6, 0xb1, 0xb3, 0x43, + 0xc3, 0xc9, 0x1d, 0x6c, 0x7f, 0x22, 0x72, 0x09, 0xed, 0x4f, 0x44, 0x2e, 0xdc, 0xe5, 0x13, 0xd1, + 0xe5, 0x87, 0x12, 0xfa, 0x00, 0x78, 0xe6, 0x50, 0x2e, 0x3b, 0xee, 0x01, 0x38, 0x70, 0xfb, 0xc5, + 0x8c, 0x03, 0x8a, 0x03, 0x98, 0x70, 0xd9, 0x9d, 0xf9, 0xcb, 0xfc, 0xcf, 0x11, 0x39, 0xcf, 0x85, + 0x23, 0xf5, 0xe3, 0x1d, 0x52, 0x17, 0x29, 0x55, 0xf9, 0x0f, 0x38, 0xde, 0x05, 0x6e, 0x0b, 0x3e, + 0x06, 0x16, 0xd6, 0xad, 0xf2, 0x5d, 0xdd, 0xde, 0x2c, 0x99, 0xda, 0x3d, 0x1e, 0xff, 0x1f, 0xde, + 0xc4, 0x32, 0x57, 0xf9, 0x0d, 0x45, 0xed, 0xc8, 0x72, 0x0f, 0xe9, 0x51, 0x4e, 0x01, 0xb5, 0x37, + 0x26, 0xcb, 0xfd, 0xf7, 0x12, 0x18, 0x67, 0x1d, 0xe9, 0xa6, 0x66, 0x6a, 0x15, 0x4b, 0x3e, 0x07, + 0x46, 0xb4, 0x9a, 0xbd, 0x89, 0x4d, 0xdd, 0x6e, 0xd0, 0xf4, 0x26, 0xc4, 0x2f, 0x16, 0x8c, 0x2a, + 0x5f, 0x02, 0xc3, 0x55, 0x77, 0x06, 0x7a, 0xaf, 0x37, 0xcb, 0xfd, 0x6e, 0xf1, 0x9c, 0x64, 0x47, + 0x9c, 0x26, 0xec, 0xf5, 0x56, 0x3a, 0x2a, 0x73, 0xd6, 0x49, 0x42, 0x7b, 0x3e, 0x27, 0x01, 0xec, + 0x26, 0xfe, 0x7e, 0xfb, 0x2e, 0x3e, 0x14, 0xae, 0x32, 0x03, 0xa6, 0x43, 0x26, 0x7f, 0x75, 0xab, + 0xdf, 0x8e, 0x82, 0xf8, 0xba, 0x55, 0x96, 0x1f, 0x80, 0xd9, 0xff, 0x6b, 0x46, 0x69, 0x1b, 0xf1, + 0x6f, 0xec, 0x97, 0xb8, 0x81, 0x72, 0xb9, 0xc9, 0xd5, 0xde, 0xb9, 0x7e, 0x18, 0x01, 0xf7, 0x9c, + 0x2b, 0x29, 0xa1, 0xfb, 0x28, 0x57, 0xec, 0x5e, 0x7c, 0x57, 0x13, 0x70, 0xcf, 0xb9, 0x6c, 0x10, + 0xba, 0x8f, 0x72, 0xc5, 0xee, 0xc5, 0x5f, 0xba, 0xf2, 0xa7, 0x12, 0x50, 0xba, 0xf8, 0xf7, 0xb7, + 0xf6, 0x4a, 0xef, 0x53, 0xd3, 0x21, 0xc9, 0x0b, 0x7b, 0x1e, 0xc2, 0x82, 0xfa, 0x40, 0x02, 0x30, + 0x14, 0x54, 0xe4, 0x0d, 0x5c, 0xed, 0x3e, 0x7d, 0x98, 0x9f, 0x3c, 0xb7, 0x37, 0x3e, 0x8b, 0xe5, + 0x2d, 0x30, 0x1d, 0x52, 0x27, 0xbb, 0x0f, 0x58, 0xe8, 0xae, 0x36, 0x9f, 0x97, 0x54, 0x7b, 0xe3, + 0x71, 0x5d, 0x86, 0xee, 0xf0, 0x16, 0xba, 0x2b, 0xec, 0xf9, 0x2e, 0xf9, 0xb7, 0x5d, 0x01, 0x97, + 0xa1, 0x5b, 0x8f, 0x85, 0xee, 0x89, 0x7b, 0xbe, 0x4b, 0xfe, 0x27, 0xb3, 0xfc, 0xbe, 0x04, 0x52, + 0x02, 0x9f, 0x7e, 0x8d, 0x97, 0x7b, 0x9b, 0xd2, 0x2f, 0xf1, 0xd9, 0x3d, 0xd1, 0x59, 0x20, 0x1f, + 0x4b, 0x60, 0x9e, 0x05, 0x22, 0x7c, 0xb1, 0x3b, 0x25, 0x9a, 0x5c, 0x34, 0x22, 0xf9, 0xdf, 0xbd, + 0x8e, 0x60, 0x11, 0xed, 0x48, 0xe0, 0x24, 0x8b, 0xa8, 0x97, 0x93, 0xf7, 0xa2, 0xc8, 0x55, 0x0f, + 0x83, 0x93, 0x6b, 0x7f, 0x62, 0x30, 0x0b, 0xb9, 0x00, 0x46, 0x03, 0xc7, 0xd4, 0x89, 0xee, 0xb5, + 0xf0, 0x58, 0xc9, 0x93, 0xbd, 0xb0, 0x7c, 0x1f, 0xc9, 0xa1, 0x77, 0x9c, 0x13, 0x29, 0x9b, 0x7b, + 0xb4, 0x9b, 0x92, 0x1e, 0xef, 0xa6, 0xa4, 0x27, 0xbb, 0x29, 0xe9, 0xf7, 0xdd, 0x94, 0xf4, 0xc9, + 0xd3, 0xd4, 0xc0, 0x93, 0xa7, 0xa9, 0x81, 0x5f, 0x9e, 0xa6, 0x06, 0xde, 0x38, 0xd3, 0xf1, 0x05, + 0x49, 0x27, 0x37, 0x90, 0xed, 0xff, 0x5c, 0x2e, 0x6e, 0x6a, 0xba, 0xd1, 0x79, 0x60, 0xb9, 0xdf, + 0x94, 0x85, 0x61, 0xf7, 0xaf, 0x5b, 0xa7, 0xff, 0x08, 0x00, 0x00, 0xff, 0xff, 0xa3, 0xe3, 0x27, + 0xbd, 0x28, 0x1f, 0x00, 0x00, } func (this *MsgCreateResourceNode) Equal(that interface{}) bool { @@ -1478,6 +1497,9 @@ func (this *MsgCreateMetaNode) Equal(that interface{}) bool { if this.OwnerAddress != that1.OwnerAddress { return false } + if this.BeneficiaryAddress != that1.BeneficiaryAddress { + return false + } if !this.Description.Equal(&that1.Description) { return false } @@ -1676,6 +1698,9 @@ func (this *MsgUpdateMetaNode) Equal(that interface{}) bool { if !this.Description.Equal(&that1.Description) { return false } + if this.BeneficiaryAddress != that1.BeneficiaryAddress { + return false + } if this.NetworkAddress != that1.NetworkAddress { return false } @@ -2633,7 +2658,14 @@ func (m *MsgCreateMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { i = encodeVarintTx(dAtA, i, uint64(size)) } i-- - dAtA[i] = 0x2a + dAtA[i] = 0x32 + if len(m.BeneficiaryAddress) > 0 { + i -= len(m.BeneficiaryAddress) + copy(dAtA[i:], m.BeneficiaryAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.BeneficiaryAddress))) + i-- + dAtA[i] = 0x2a + } if len(m.OwnerAddress) > 0 { i -= len(m.OwnerAddress) copy(dAtA[i:], m.OwnerAddress) @@ -2916,13 +2948,20 @@ func (m *MsgUpdateMetaNode) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.OwnerAddress) i = encodeVarintTx(dAtA, i, uint64(len(m.OwnerAddress))) i-- - dAtA[i] = 0x1a + dAtA[i] = 0x22 } if len(m.NetworkAddress) > 0 { i -= len(m.NetworkAddress) copy(dAtA[i:], m.NetworkAddress) i = encodeVarintTx(dAtA, i, uint64(len(m.NetworkAddress))) i-- + dAtA[i] = 0x1a + } + if len(m.BeneficiaryAddress) > 0 { + i -= len(m.BeneficiaryAddress) + copy(dAtA[i:], m.BeneficiaryAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.BeneficiaryAddress))) + i-- dAtA[i] = 0x12 } { @@ -3457,6 +3496,10 @@ func (m *MsgCreateMetaNode) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } + l = len(m.BeneficiaryAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } l = m.Description.Size() n += 1 + l + sovTx(uint64(l)) return n @@ -3562,6 +3605,10 @@ func (m *MsgUpdateMetaNode) Size() (n int) { _ = l l = m.Description.Size() n += 1 + l + sovTx(uint64(l)) + l = len(m.BeneficiaryAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } l = len(m.NetworkAddress) if l > 0 { n += 1 + l + sovTx(uint64(l)) @@ -4215,6 +4262,38 @@ func (m *MsgCreateMetaNode) Unmarshal(dAtA []byte) error { m.OwnerAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BeneficiaryAddress", 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.BeneficiaryAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) } @@ -4925,6 +5004,38 @@ func (m *MsgUpdateMetaNode) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BeneficiaryAddress", 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.BeneficiaryAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field NetworkAddress", wireType) } @@ -4956,7 +5067,7 @@ func (m *MsgUpdateMetaNode) Unmarshal(dAtA []byte) error { } m.NetworkAddress = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 3: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field OwnerAddress", wireType) } diff --git a/x/sds/oz_price_test.go b/x/sds/oz_price_test.go index 4fede08c..413ab803 100644 --- a/x/sds/oz_price_test.go +++ b/x/sds/oz_price_test.go @@ -44,7 +44,7 @@ const ( chainID = "testchain_1-1" stos2wei = stratos.StosToWei StosToWeiSuffix = "000000000000000000" // 1 Stos = 1e18 wei - rewardDenom = stratos.Utros + rewardDenom = stratos.Wei depositNozRateStr = "100000" ) @@ -1039,9 +1039,9 @@ func setupAllMetaNodes() []registertypes.MetaNode { var indexingNodes []registertypes.MetaNode time, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") - indexingNode1, _ := registertypes.NewMetaNode(stratos.SdsAddress(idxNodeAddr1), idxNodePubKey1, idxOwner1, registertypes.NewDescription("sds://indexingNode1", "", "", "", ""), time) - indexingNode2, _ := registertypes.NewMetaNode(stratos.SdsAddress(idxNodeAddr2), idxNodePubKey2, idxOwner2, registertypes.NewDescription("sds://indexingNode2", "", "", "", ""), time) - indexingNode3, _ := registertypes.NewMetaNode(stratos.SdsAddress(idxNodeAddr3), idxNodePubKey3, idxOwner3, registertypes.NewDescription("sds://indexingNode3", "", "", "", ""), time) + indexingNode1, _ := registertypes.NewMetaNode(stratos.SdsAddress(idxNodeAddr1), idxNodePubKey1, idxOwner1, idxOwner1, registertypes.NewDescription("sds://indexingNode1", "", "", "", ""), time) + indexingNode2, _ := registertypes.NewMetaNode(stratos.SdsAddress(idxNodeAddr2), idxNodePubKey2, idxOwner2, idxOwner2, registertypes.NewDescription("sds://indexingNode2", "", "", "", ""), time) + indexingNode3, _ := registertypes.NewMetaNode(stratos.SdsAddress(idxNodeAddr3), idxNodePubKey3, idxOwner3, idxOwner3, registertypes.NewDescription("sds://indexingNode3", "", "", "", ""), time) indexingNode1.Suspend = false indexingNode2.Suspend = false From 442c4235bfe629af81d671855f778ce0cac2b91b Mon Sep 17 00:00:00 2001 From: Xixiong Chen <60588630+Xiong-stratos@users.noreply.github.com> Date: Wed, 1 Nov 2023 10:44:58 -0400 Subject: [PATCH 10/15] Feat/Qb-2041: Add query: TotalRewardByEpoch for v0.12.0 (#312) * add query & migrate update for TotalReward * don't merge legacy data into store when update. query data from tx log for legacy epochs * update version to v0.12.0 --------- Co-authored-by: alexstratos <58865166+alexstratos@users.noreply.github.com> --- proto/stratos/pot/v1/genesis.proto | 33 ++- proto/stratos/pot/v1/query.proto | 4 + x/pot/keeper/distribute.go | 10 + x/pot/keeper/genesis.go | 18 +- x/pot/keeper/grpc_query.go | 7 +- x/pot/keeper/keeper.go | 2 +- x/pot/keeper/store.go | 33 +++ x/pot/types/genesis.go | 11 +- x/pot/types/genesis.pb.go | 412 +++++++++++++++++++++++++---- x/pot/types/key.go | 5 + x/pot/types/query.pb.go | 192 ++++++++------ x/register/keeper/genesis.go | 1 + 12 files changed, 598 insertions(+), 130 deletions(-) diff --git a/proto/stratos/pot/v1/genesis.proto b/proto/stratos/pot/v1/genesis.proto index 09eb92e8..5571fd12 100644 --- a/proto/stratos/pot/v1/genesis.proto +++ b/proto/stratos/pot/v1/genesis.proto @@ -12,19 +12,19 @@ option go_package = "github.com/stratosnet/stratos-chain/x/pot/types"; // GenesisState defines the register module's genesis state. message GenesisState { - Params params = 1 [ + Params params = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.jsontag) = "params", (gogoproto.moretags) = "yaml:\"params\"" ]; - cosmos.base.v1beta1.Coin total_mined_token = 2 [ + cosmos.base.v1beta1.Coin total_mined_token = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.jsontag) = "total_mined_token", (gogoproto.moretags) = "yaml:\"total_mined_token\"" ]; - string last_distributed_epoch = 3 [ + string last_distributed_epoch = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.jsontag) = "last_distributed_epoch", @@ -32,25 +32,25 @@ message GenesisState { (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; - repeated ImmatureTotal immature_total_info = 4 [ + repeated ImmatureTotal immature_total_info = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.jsontag) = "immature_total_info", (gogoproto.moretags) = "yaml:\"immature_total_info\"" ]; - repeated MatureTotal mature_total_info = 5 [ + repeated MatureTotal mature_total_info = 5 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.jsontag) = "mature_total_info", (gogoproto.moretags) = "yaml:\"mature_total_info\"" ]; - repeated Reward individual_reward_info = 6 [ + repeated Reward individual_reward_info = 6 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.jsontag) = "individual_reward_info", (gogoproto.moretags) = "yaml:\"individual_reward_info\"" ]; - string matured_epoch = 7 [ + string matured_epoch = 7 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.jsontag) = "matured_epoch", @@ -58,6 +58,11 @@ message GenesisState { (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" ]; + repeated RewardTotal reward_total_info = 8 [ + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "reward_total_info", + (gogoproto.moretags) = "yaml:\"reward_total_info\"" + ]; } message ImmatureTotal { @@ -87,3 +92,17 @@ message MatureTotal { (gogoproto.moretags) = "yaml:\"value\"" ]; } + +message RewardTotal { + string epoch = 1[ + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "epoch", + (gogoproto.moretags) = "yaml:\"epoch\"", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" + ]; + TotalReward total_reward = 2 [ + (gogoproto.nullable) = false, + (gogoproto.jsontag) = "total_reward", + (gogoproto.moretags) = "yaml:\"total_reward\"" + ]; +} diff --git a/proto/stratos/pot/v1/query.proto b/proto/stratos/pot/v1/query.proto index af3f5a2f..af648126 100644 --- a/proto/stratos/pot/v1/query.proto +++ b/proto/stratos/pot/v1/query.proto @@ -160,6 +160,10 @@ message QueryTotalRewardByEpochResponse { (gogoproto.jsontag) = "total_reward", (gogoproto.moretags) = "yaml:\"total_reward\"" ]; + bool is_legacy = 2 [ + (gogoproto.jsontag) = "is_legacy", + (gogoproto.moretags) = "yaml:\"is_legacy\"" + ]; } message QueryMetricsRequest {} diff --git a/x/pot/keeper/distribute.go b/x/pot/keeper/distribute.go index 0c3e7c7a..00fe993f 100644 --- a/x/pot/keeper/distribute.go +++ b/x/pot/keeper/distribute.go @@ -147,6 +147,16 @@ func (k Keeper) saveRewardInfo(ctx sdk.Context, rewardDetailList []types.Reward, newTotalMinedToken := oldTotalMinedToken.Add(newMinedTotal) k.SetTotalMinedTokens(ctx, newTotalMinedToken) k.SetLastDistributedEpoch(ctx, currentEpoch) + + newTrafficRewardTotal := unissuedPrepayToFeeCollector. + Add(unissuedPrepayToReward). + Add(sdk.NewCoin(k.BondDenom(ctx), unissuedPrepayToCommunityPool.TruncateInt())) + totalReward := types.TotalReward{ + MiningReward: sdk.NewCoins(newMinedTotal), + TrafficReward: sdk.NewCoins(newTrafficRewardTotal), + } + k.SetTotalReward(ctx, currentEpoch, totalReward) + return nil } diff --git a/x/pot/keeper/genesis.go b/x/pot/keeper/genesis.go index a05c78bb..e75b2ab1 100644 --- a/x/pot/keeper/genesis.go +++ b/x/pot/keeper/genesis.go @@ -48,6 +48,12 @@ func (k Keeper) InitGenesis(ctx sdk.Context, data *types.GenesisState) { totalSupply.String(), k.GetParams(ctx).InitialTotalSupply.String()) panic(errMsg) } + + for _, rewardTotal := range data.RewardTotalInfo { + epoch := rewardTotal.Epoch + reward := rewardTotal.TotalReward + k.SetTotalReward(ctx, epoch, reward) + } } // ExportGenesis writes the current store values @@ -85,6 +91,15 @@ func (k Keeper) ExportGenesis(ctx sdk.Context) (data *types.GenesisState) { maturedEpoch := k.GetMaturedEpoch(ctx) + var rewardTotalInfo []types.RewardTotal + k.IteratorTotalReward(ctx, func(epoch sdkmath.Int, totalReward types.TotalReward) (stop bool) { + if epoch.GT(sdkmath.ZeroInt()) { + info := types.NewRewardTotal(epoch, totalReward) + rewardTotalInfo = append(rewardTotalInfo, info) + } + return false + }) + return types.NewGenesisState( params, totalMinedToken, @@ -92,5 +107,6 @@ func (k Keeper) ExportGenesis(ctx sdk.Context) (data *types.GenesisState) { immatureTotalInfo, matureTotalInfo, individualRewardInfo, - maturedEpoch) + maturedEpoch, + rewardTotalInfo) } diff --git a/x/pot/keeper/grpc_query.go b/x/pot/keeper/grpc_query.go index 08685c0c..4eaa8e75 100644 --- a/x/pot/keeper/grpc_query.go +++ b/x/pot/keeper/grpc_query.go @@ -396,8 +396,13 @@ func (q Querier) TotalRewardByEpoch(c context.Context, req *types.QueryTotalRewa ctx := sdk.UnwrapSDKContext(c) + var isLegacy = false totalReward := q.GetTotalReward(ctx, epoch) - return &types.QueryTotalRewardByEpochResponse{TotalReward: totalReward}, nil + if totalReward.Size() == 0 { + totalReward = q.GetLegacyTotalReward(ctx, epoch) + isLegacy = true + } + return &types.QueryTotalRewardByEpochResponse{TotalReward: totalReward, IsLegacy: isLegacy}, nil } func (q Querier) Metrics(c context.Context, req *types.QueryMetricsRequest) ( diff --git a/x/pot/keeper/keeper.go b/x/pot/keeper/keeper.go index 247bcce7..c1af5d7d 100644 --- a/x/pot/keeper/keeper.go +++ b/x/pot/keeper/keeper.go @@ -194,7 +194,7 @@ func (k Keeper) GetCirculationSupply(ctx sdk.Context) (circulationSupply sdk.Coi return } -func (k Keeper) GetTotalReward(ctx sdk.Context, epoch sdkmath.Int) (totalReward types.TotalReward) { +func (k Keeper) GetLegacyTotalReward(ctx sdk.Context, epoch sdkmath.Int) (totalReward types.TotalReward) { volumeReport := k.GetVolumeReport(ctx, epoch) if volumeReport == (types.VolumeReportRecord{}) { diff --git a/x/pot/keeper/store.go b/x/pot/keeper/store.go index 2cdecd21..7979c77d 100644 --- a/x/pot/keeper/store.go +++ b/x/pot/keeper/store.go @@ -200,3 +200,36 @@ func GetIterator(prefixStore storetypes.KVStore, start []byte, reverse bool) db. } return prefixStore.Iterator(start, nil) } + +func (k Keeper) SetTotalReward(ctx sdk.Context, epoch sdkmath.Int, totalReward types.TotalReward) { + store := ctx.KVStore(k.storeKey) + storeKey := types.GetTotalRewardKey(epoch) + bz := k.cdc.MustMarshalLengthPrefixed(&totalReward) + store.Set(storeKey, bz) +} + +func (k Keeper) GetTotalReward(ctx sdk.Context, epoch sdkmath.Int) (totalReward types.TotalReward) { + store := ctx.KVStore(k.storeKey) + bz := store.Get(types.GetTotalRewardKey(epoch)) + if bz == nil { + return types.TotalReward{} + } + k.cdc.MustUnmarshalLengthPrefixed(bz, &totalReward) + return +} + +// IteratorMatureTotal Iteration for getting total mature reward +func (k Keeper) IteratorTotalReward(ctx sdk.Context, handler func(epoch sdkmath.Int, totalReward types.TotalReward) (stop bool)) { + store := ctx.KVStore(k.storeKey) + iter := sdk.KVStorePrefixIterator(store, types.TotalRewardKeyPrefix) + defer iter.Close() + for ; iter.Valid(); iter.Next() { + epochBytes := iter.Key()[len(types.TotalRewardKeyPrefix):] + epoch, _ := sdk.NewIntFromString(string(epochBytes)) + var totalReward types.TotalReward + k.cdc.MustUnmarshalLengthPrefixed(iter.Value(), &totalReward) + if handler(epoch, totalReward) { + break + } + } +} diff --git a/x/pot/types/genesis.go b/x/pot/types/genesis.go index 259fa1ad..f02da5e8 100644 --- a/x/pot/types/genesis.go +++ b/x/pot/types/genesis.go @@ -8,7 +8,7 @@ import ( // NewGenesisState creates a new GenesisState object func NewGenesisState(params Params, totalMinedToken sdk.Coin, lastDistributedEpoch sdkmath.Int, immatureTotalInfo []ImmatureTotal, matureTotalInfo []MatureTotal, individualRewardInfo []Reward, - maturedEpoch sdkmath.Int, + maturedEpoch sdkmath.Int, rewardTotalInfo []RewardTotal, ) *GenesisState { return &GenesisState{ @@ -19,6 +19,7 @@ func NewGenesisState(params Params, totalMinedToken sdk.Coin, lastDistributedEpo MatureTotalInfo: matureTotalInfo, IndividualRewardInfo: individualRewardInfo, MaturedEpoch: maturedEpoch, + RewardTotalInfo: rewardTotalInfo, } } @@ -34,6 +35,7 @@ func DefaultGenesisState() *GenesisState { MatureTotalInfo: make([]MatureTotal, 0), IndividualRewardInfo: make([]Reward, 0), MaturedEpoch: sdkmath.ZeroInt(), + RewardTotalInfo: make([]RewardTotal, 0), } } @@ -55,3 +57,10 @@ func NewMatureTotal(walletAddress sdk.AccAddress, value sdk.Coins) MatureTotal { Value: value, } } + +func NewRewardTotal(epoch sdkmath.Int, reward TotalReward) RewardTotal { + return RewardTotal{ + Epoch: epoch, + TotalReward: reward, + } +} diff --git a/x/pot/types/genesis.pb.go b/x/pot/types/genesis.pb.go index 436c60c8..941a0603 100644 --- a/x/pot/types/genesis.pb.go +++ b/x/pot/types/genesis.pb.go @@ -36,6 +36,7 @@ type GenesisState struct { MatureTotalInfo []MatureTotal `protobuf:"bytes,5,rep,name=mature_total_info,json=matureTotalInfo,proto3" json:"mature_total_info" yaml:"mature_total_info"` IndividualRewardInfo []Reward `protobuf:"bytes,6,rep,name=individual_reward_info,json=individualRewardInfo,proto3" json:"individual_reward_info" yaml:"individual_reward_info"` MaturedEpoch github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,7,opt,name=matured_epoch,json=maturedEpoch,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"matured_epoch" yaml:"matured_epoch"` + RewardTotalInfo []RewardTotal `protobuf:"bytes,8,rep,name=reward_total_info,json=rewardTotalInfo,proto3" json:"reward_total_info" yaml:"reward_total_info"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -106,6 +107,13 @@ func (m *GenesisState) GetIndividualRewardInfo() []Reward { return nil } +func (m *GenesisState) GetRewardTotalInfo() []RewardTotal { + if m != nil { + return m.RewardTotalInfo + } + return nil +} + type ImmatureTotal struct { WalletAddress string `protobuf:"bytes,1,opt,name=wallet_address,json=walletAddress,proto3" json:"wallet_address" yaml:"wallet_address"` Value github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,2,rep,name=value,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"value" yaml:"value"` @@ -210,60 +218,112 @@ func (m *MatureTotal) GetValue() github_com_cosmos_cosmos_sdk_types.Coins { return nil } +type RewardTotal struct { + Epoch github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=epoch,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"epoch" yaml:"epoch"` + TotalReward TotalReward `protobuf:"bytes,2,opt,name=total_reward,json=totalReward,proto3" json:"total_reward" yaml:"total_reward"` +} + +func (m *RewardTotal) Reset() { *m = RewardTotal{} } +func (m *RewardTotal) String() string { return proto.CompactTextString(m) } +func (*RewardTotal) ProtoMessage() {} +func (*RewardTotal) Descriptor() ([]byte, []int) { + return fileDescriptor_abdde08c2564316a, []int{3} +} +func (m *RewardTotal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RewardTotal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RewardTotal.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 *RewardTotal) XXX_Merge(src proto.Message) { + xxx_messageInfo_RewardTotal.Merge(m, src) +} +func (m *RewardTotal) XXX_Size() int { + return m.Size() +} +func (m *RewardTotal) XXX_DiscardUnknown() { + xxx_messageInfo_RewardTotal.DiscardUnknown(m) +} + +var xxx_messageInfo_RewardTotal proto.InternalMessageInfo + +func (m *RewardTotal) GetTotalReward() TotalReward { + if m != nil { + return m.TotalReward + } + return TotalReward{} +} + func init() { proto.RegisterType((*GenesisState)(nil), "stratos.pot.v1.GenesisState") proto.RegisterType((*ImmatureTotal)(nil), "stratos.pot.v1.ImmatureTotal") proto.RegisterType((*MatureTotal)(nil), "stratos.pot.v1.MatureTotal") + proto.RegisterType((*RewardTotal)(nil), "stratos.pot.v1.RewardTotal") } func init() { proto.RegisterFile("stratos/pot/v1/genesis.proto", fileDescriptor_abdde08c2564316a) } var fileDescriptor_abdde08c2564316a = []byte{ - // 694 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x95, 0xcf, 0x4f, 0x13, 0x41, - 0x14, 0xc7, 0x3b, 0x20, 0x10, 0x06, 0x0a, 0xe9, 0x5a, 0x49, 0x41, 0xd9, 0x25, 0x8d, 0x31, 0x8d, - 0x09, 0xbb, 0x29, 0xde, 0x38, 0x98, 0xb8, 0x60, 0x4c, 0x0f, 0x4d, 0x4c, 0xe1, 0xe4, 0x65, 0x33, - 0xed, 0x0e, 0x65, 0x60, 0x77, 0xa6, 0xd9, 0x99, 0x16, 0x31, 0x5e, 0x8c, 0x67, 0xa3, 0xf1, 0xaf, - 0x20, 0x9e, 0x8c, 0xf1, 0x8f, 0xe0, 0x48, 0x3c, 0x19, 0x0e, 0xab, 0x29, 0x07, 0x13, 0x8e, 0x9b, - 0x18, 0xaf, 0x66, 0x67, 0x06, 0xe9, 0x2f, 0x88, 0x9e, 0xbd, 0xb4, 0x3b, 0xef, 0xfb, 0xdd, 0xf7, - 0x3e, 0x33, 0xef, 0x4d, 0x16, 0xde, 0xe1, 0x22, 0x42, 0x82, 0x71, 0xa7, 0xc5, 0x84, 0xd3, 0x29, - 0x3b, 0x4d, 0x4c, 0x31, 0x27, 0xdc, 0x6e, 0x45, 0x4c, 0x30, 0x63, 0x4e, 0xab, 0x76, 0x8b, 0x09, - 0xbb, 0x53, 0x5e, 0xca, 0x37, 0x59, 0x93, 0x49, 0xc9, 0x49, 0x9f, 0x94, 0x6b, 0x69, 0xb1, 0xc1, - 0x78, 0xc8, 0xb8, 0xa7, 0x04, 0xb5, 0xd0, 0x52, 0x0e, 0x85, 0x84, 0x32, 0x47, 0xfe, 0xea, 0x90, - 0xa9, 0x0c, 0x4e, 0x1d, 0x71, 0xec, 0x74, 0xca, 0x75, 0x2c, 0x50, 0xd9, 0x69, 0x30, 0x42, 0xb5, - 0x5e, 0x18, 0x20, 0x4a, 0x4b, 0x4b, 0xa5, 0x78, 0x3a, 0x05, 0x67, 0x9f, 0x28, 0xbe, 0x2d, 0x81, - 0x04, 0x36, 0xb6, 0xe1, 0x64, 0x0b, 0x45, 0x28, 0xe4, 0x05, 0xb0, 0x02, 0x4a, 0x33, 0x6b, 0x0b, - 0x76, 0x3f, 0xaf, 0xfd, 0x54, 0xaa, 0xee, 0xdd, 0xe3, 0xd8, 0xca, 0x9c, 0xc7, 0x96, 0x76, 0x27, - 0xb1, 0x95, 0x3d, 0x44, 0x61, 0xb0, 0x5e, 0x54, 0xeb, 0xe2, 0xd1, 0x8f, 0x8f, 0xf7, 0x41, 0x4d, - 0xab, 0xc6, 0x2b, 0x00, 0x73, 0x82, 0x09, 0x14, 0x78, 0x21, 0xa1, 0xd8, 0xf7, 0x04, 0xdb, 0xc7, - 0xb4, 0x30, 0x26, 0x2b, 0x2c, 0xda, 0x7a, 0x7b, 0x29, 0xbd, 0xad, 0xe9, 0xed, 0x0d, 0x46, 0xa8, - 0xbb, 0xae, 0x8b, 0x0c, 0xbf, 0x9b, 0xc4, 0x56, 0x41, 0xd5, 0x1b, 0x92, 0x74, 0xe9, 0x79, 0x29, - 0x54, 0xd3, 0xf8, 0x76, 0x1a, 0x36, 0x3e, 0x01, 0xb8, 0x10, 0x20, 0x2e, 0x3c, 0x9f, 0x70, 0x11, - 0x91, 0x7a, 0x5b, 0x60, 0xdf, 0xc3, 0x2d, 0xd6, 0xd8, 0x2d, 0x8c, 0xaf, 0x80, 0xd2, 0xb4, 0xfb, - 0x32, 0xad, 0x76, 0x1a, 0x5b, 0xf7, 0x9a, 0x44, 0xec, 0xb6, 0xeb, 0x76, 0x83, 0x85, 0xfa, 0xe4, - 0xf5, 0xdf, 0x2a, 0xf7, 0xf7, 0x1d, 0x71, 0xd8, 0xc2, 0xdc, 0xae, 0x50, 0x71, 0x1e, 0x5b, 0x57, - 0xe4, 0x4b, 0x62, 0x6b, 0x59, 0xc1, 0x8d, 0xd6, 0x8b, 0x5f, 0x3e, 0xaf, 0x42, 0xbd, 0xe9, 0x0a, - 0x15, 0x8a, 0x37, 0x9f, 0x7a, 0x37, 0x2f, 0xad, 0x8f, 0x53, 0xa7, 0xf1, 0x06, 0xc0, 0x9b, 0x24, - 0x0c, 0x91, 0x68, 0x47, 0xd8, 0x53, 0x5b, 0x25, 0x74, 0x87, 0x15, 0x6e, 0xac, 0x8c, 0x97, 0x66, - 0xd6, 0x96, 0x07, 0x9b, 0x53, 0xd1, 0xd6, 0xed, 0xd4, 0xe9, 0x3e, 0xd4, 0xc7, 0x37, 0x2a, 0x43, - 0x12, 0x5b, 0x4b, 0x8a, 0x71, 0x84, 0xa8, 0x8f, 0x30, 0x47, 0x7a, 0xd3, 0x55, 0xe8, 0x0e, 0x33, - 0x5e, 0x03, 0x98, 0x1b, 0xa6, 0x99, 0x90, 0x34, 0xb7, 0x07, 0x69, 0xaa, 0x3d, 0x2c, 0x7f, 0x5a, - 0x39, 0x8a, 0x44, 0xb7, 0xf2, 0x2a, 0x8e, 0xf9, 0x41, 0x8a, 0xf7, 0x00, 0x2e, 0x10, 0xea, 0x93, - 0x0e, 0xf1, 0xdb, 0x28, 0xf0, 0x22, 0x7c, 0x80, 0x22, 0x5f, 0xa1, 0x4c, 0x4a, 0x94, 0xa1, 0xa9, - 0xad, 0x49, 0x8b, 0xbb, 0xa9, 0x29, 0xae, 0x78, 0xfb, 0xb2, 0x71, 0xa3, 0x75, 0xcd, 0x93, 0xbf, - 0x54, 0x55, 0x5e, 0x09, 0xf5, 0x16, 0xc0, 0xac, 0x02, 0xbd, 0x18, 0xab, 0x29, 0x39, 0x56, 0x7b, - 0xff, 0x3c, 0x56, 0xfd, 0x69, 0x92, 0xd8, 0xca, 0xf7, 0x9e, 0xcf, 0x75, 0x43, 0x34, 0xab, 0x2d, - 0x72, 0x78, 0x8a, 0xbf, 0x00, 0xcc, 0xf6, 0x4d, 0x84, 0xb1, 0x07, 0xe7, 0x0e, 0x50, 0x10, 0x60, - 0xe1, 0x21, 0xdf, 0x8f, 0x30, 0x57, 0xb7, 0x7c, 0xda, 0xdd, 0x38, 0x8f, 0xad, 0x01, 0x25, 0x89, - 0xad, 0x5b, 0xaa, 0x6c, 0x7f, 0x3c, 0xad, 0x9b, 0xd7, 0x75, 0x1f, 0xa9, 0xd0, 0x96, 0x88, 0x08, - 0x6d, 0xd6, 0xb2, 0xca, 0xa8, 0x83, 0xc6, 0x0b, 0x38, 0xd1, 0x41, 0x41, 0x1b, 0x17, 0xc6, 0x64, - 0x4b, 0xae, 0xb9, 0xe6, 0x15, 0xdd, 0x15, 0xe5, 0x4f, 0x62, 0x6b, 0x56, 0x15, 0x96, 0xcb, 0xe2, - 0x87, 0x6f, 0x56, 0xe9, 0x2f, 0x8e, 0x2e, 0xcd, 0xc4, 0x6b, 0x2a, 0x45, 0xf1, 0x27, 0x80, 0x33, - 0xd5, 0xff, 0x6f, 0xdf, 0x6e, 0xf5, 0xa8, 0x6b, 0x82, 0xe3, 0xae, 0x09, 0x4e, 0xba, 0x26, 0xf8, - 0xde, 0x35, 0xc1, 0xbb, 0x33, 0x33, 0x73, 0x72, 0x66, 0x66, 0xbe, 0x9e, 0x99, 0x99, 0x67, 0x4e, - 0x4f, 0x3a, 0x7d, 0x3f, 0x28, 0x16, 0x17, 0x8f, 0xab, 0x8d, 0x5d, 0x44, 0xa8, 0xf3, 0x5c, 0x7e, - 0x24, 0x64, 0xee, 0xfa, 0xa4, 0xfc, 0x48, 0x3c, 0xf8, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xb9, 0xaf, - 0xd1, 0xbd, 0xd2, 0x06, 0x00, 0x00, + // 793 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x55, 0xcf, 0x6b, 0x13, 0x4d, + 0x18, 0xce, 0xb4, 0x5f, 0xfa, 0xb5, 0x93, 0xa4, 0x25, 0xdb, 0x7c, 0x25, 0xed, 0xf7, 0x75, 0xb7, + 0x2c, 0x1f, 0x12, 0x94, 0xee, 0x92, 0x8a, 0x97, 0x1e, 0x04, 0xd3, 0x4a, 0xc9, 0x21, 0x20, 0x69, + 0x4f, 0x82, 0x2c, 0x93, 0xec, 0x34, 0x9d, 0x36, 0xbb, 0x13, 0x76, 0x27, 0xa9, 0x15, 0x11, 0xc4, + 0xb3, 0x28, 0xfe, 0x15, 0xc5, 0x93, 0x88, 0x7f, 0x44, 0x8f, 0xc5, 0x93, 0xf6, 0xb0, 0x4a, 0x7a, + 0x10, 0x7a, 0x5c, 0x10, 0xaf, 0xb2, 0x33, 0x13, 0xb3, 0xf9, 0xd1, 0x62, 0xcf, 0x5e, 0x92, 0xdd, + 0xf7, 0x79, 0xe7, 0x7d, 0x9f, 0x67, 0xde, 0x67, 0x67, 0xe0, 0x7f, 0x3e, 0xf3, 0x10, 0xa3, 0xbe, + 0xd9, 0xa2, 0xcc, 0xec, 0x14, 0xcd, 0x06, 0x76, 0xb1, 0x4f, 0x7c, 0xa3, 0xe5, 0x51, 0x46, 0x95, + 0x59, 0x89, 0x1a, 0x2d, 0xca, 0x8c, 0x4e, 0x71, 0x29, 0xd7, 0xa0, 0x0d, 0xca, 0x21, 0x33, 0x7a, + 0x12, 0x59, 0x4b, 0x8b, 0x75, 0xea, 0x3b, 0xd4, 0xb7, 0x04, 0x20, 0x5e, 0x24, 0x94, 0x45, 0x0e, + 0x71, 0xa9, 0xc9, 0x7f, 0x65, 0x48, 0x15, 0x09, 0x66, 0x0d, 0xf9, 0xd8, 0xec, 0x14, 0x6b, 0x98, + 0xa1, 0xa2, 0x59, 0xa7, 0xc4, 0x95, 0x78, 0x7e, 0x88, 0x51, 0xd4, 0x9a, 0x23, 0xfa, 0xd9, 0x34, + 0x4c, 0x6f, 0x09, 0x7e, 0xdb, 0x0c, 0x31, 0xac, 0xec, 0xc0, 0xa9, 0x16, 0xf2, 0x90, 0xe3, 0xe7, + 0xc1, 0x0a, 0x28, 0xa4, 0xd6, 0x16, 0x8c, 0x41, 0xbe, 0xc6, 0x03, 0x8e, 0x96, 0xfe, 0x3f, 0x09, + 0xb4, 0xc4, 0x45, 0xa0, 0xc9, 0xec, 0x30, 0xd0, 0x32, 0x47, 0xc8, 0x69, 0xae, 0xeb, 0xe2, 0x5d, + 0x3f, 0xfe, 0xf6, 0xee, 0x26, 0xa8, 0x4a, 0x54, 0x79, 0x0e, 0x60, 0x96, 0x51, 0x86, 0x9a, 0x96, + 0x43, 0x5c, 0x6c, 0x5b, 0x8c, 0x1e, 0x60, 0x37, 0x3f, 0xc1, 0x3b, 0x2c, 0x1a, 0x52, 0x5e, 0xc4, + 0xde, 0x90, 0xec, 0x8d, 0x0d, 0x4a, 0xdc, 0xd2, 0xba, 0x6c, 0x32, 0xba, 0x36, 0x0c, 0xb4, 0xbc, + 0xe8, 0x37, 0x02, 0xc9, 0xd6, 0x73, 0x1c, 0xa8, 0x44, 0xf1, 0x9d, 0x28, 0xac, 0xbc, 0x07, 0x70, + 0xa1, 0x89, 0x7c, 0x66, 0xd9, 0xc4, 0x67, 0x1e, 0xa9, 0xb5, 0x19, 0xb6, 0x2d, 0xdc, 0xa2, 0xf5, + 0xbd, 0xfc, 0xe4, 0x0a, 0x28, 0xcc, 0x94, 0x9e, 0x46, 0xdd, 0xce, 0x02, 0xed, 0x46, 0x83, 0xb0, + 0xbd, 0x76, 0xcd, 0xa8, 0x53, 0x47, 0xee, 0xbc, 0xfc, 0x5b, 0xf5, 0xed, 0x03, 0x93, 0x1d, 0xb5, + 0xb0, 0x6f, 0x94, 0x5d, 0x76, 0x11, 0x68, 0x97, 0xd4, 0x0b, 0x03, 0x6d, 0x59, 0x90, 0x1b, 0x8f, + 0xeb, 0x1f, 0x3f, 0xac, 0x42, 0x29, 0xba, 0xec, 0x32, 0xc1, 0x37, 0x17, 0xe5, 0x6e, 0xf6, 0x53, + 0xef, 0x47, 0x99, 0xca, 0x4b, 0x00, 0xe7, 0x89, 0xe3, 0x20, 0xd6, 0xf6, 0xb0, 0x25, 0xa4, 0x12, + 0x77, 0x97, 0xe6, 0xff, 0x5a, 0x99, 0x2c, 0xa4, 0xd6, 0x96, 0x87, 0x87, 0x53, 0x96, 0xa9, 0x3b, + 0x51, 0x66, 0xe9, 0xae, 0xdc, 0xbe, 0x71, 0x15, 0xc2, 0x40, 0x5b, 0x12, 0x1c, 0xc7, 0x80, 0x72, + 0x0b, 0xb3, 0x24, 0x5e, 0xae, 0xec, 0xee, 0x52, 0xe5, 0x05, 0x80, 0xd9, 0x51, 0x36, 0x49, 0xce, + 0xe6, 0xdf, 0x61, 0x36, 0x95, 0x18, 0x97, 0x5f, 0xa3, 0x1c, 0xc7, 0x44, 0x8e, 0xf2, 0x32, 0x1e, + 0x73, 0xc3, 0x2c, 0xde, 0x00, 0xb8, 0x40, 0x5c, 0x9b, 0x74, 0x88, 0xdd, 0x46, 0x4d, 0xcb, 0xc3, + 0x87, 0xc8, 0xb3, 0x05, 0x95, 0x29, 0x4e, 0x65, 0xc4, 0xb5, 0x55, 0x9e, 0x52, 0xda, 0x94, 0x2c, + 0x2e, 0x59, 0xdd, 0x1f, 0xdc, 0x78, 0x5c, 0xf2, 0xc9, 0xf5, 0x51, 0x51, 0x97, 0x93, 0x7a, 0x05, + 0x60, 0x46, 0x10, 0xed, 0xd9, 0xea, 0x6f, 0x6e, 0xab, 0xfd, 0x6b, 0xdb, 0x6a, 0xb0, 0x4c, 0x18, + 0x68, 0xb9, 0xf8, 0xfe, 0x5c, 0x65, 0xa2, 0xb4, 0x4c, 0x11, 0xe6, 0x79, 0x06, 0xb3, 0x92, 0x7c, + 0x6c, 0x56, 0xd3, 0xe3, 0x67, 0x25, 0x84, 0x88, 0x59, 0xdd, 0xe9, 0xcd, 0x6a, 0x64, 0x75, 0x7f, + 0x56, 0x23, 0x90, 0x5e, 0x9d, 0xf3, 0xfa, 0x35, 0xa2, 0x1d, 0xd1, 0x7f, 0x00, 0x98, 0x19, 0x70, + 0xa4, 0xb2, 0x0f, 0x67, 0x0f, 0x51, 0xb3, 0x89, 0x99, 0x85, 0x6c, 0xdb, 0xc3, 0xbe, 0x38, 0x65, + 0x66, 0x4a, 0x1b, 0x17, 0x81, 0x36, 0x84, 0x84, 0x81, 0xf6, 0x8f, 0x68, 0x35, 0x18, 0x8f, 0x74, + 0xe7, 0xa4, 0xee, 0x7b, 0x22, 0xb4, 0xcd, 0x3c, 0xe2, 0x36, 0xaa, 0x19, 0x91, 0x28, 0x83, 0xca, + 0x13, 0x98, 0xec, 0xa0, 0x66, 0x1b, 0xe7, 0x27, 0xb8, 0xe2, 0x2b, 0x8e, 0x99, 0xb2, 0xd4, 0x2b, + 0xf2, 0xc3, 0x40, 0x4b, 0x8b, 0xc6, 0xfc, 0x55, 0x7f, 0xfb, 0x45, 0x2b, 0xfc, 0xc6, 0xe8, 0xa2, + 0x4a, 0x7e, 0x55, 0x94, 0xd0, 0xbf, 0x03, 0x98, 0xaa, 0xfc, 0x81, 0xba, 0x3f, 0x03, 0x98, 0x8a, + 0x39, 0x49, 0x79, 0x04, 0x93, 0xe2, 0x53, 0x10, 0x72, 0xb7, 0xae, 0xfd, 0x29, 0x24, 0x7b, 0x9f, + 0x80, 0xa4, 0x26, 0xac, 0x5f, 0x15, 0x61, 0xe5, 0x00, 0xa6, 0x85, 0x01, 0x85, 0xf3, 0xe4, 0x85, + 0x32, 0xe2, 0x6d, 0xce, 0x45, 0x9e, 0x00, 0xb7, 0xa4, 0xe6, 0x81, 0x85, 0x61, 0xa0, 0xcd, 0xc7, + 0x6f, 0x13, 0x11, 0xd5, 0xab, 0x29, 0x16, 0x5b, 0x59, 0x39, 0xee, 0xaa, 0xe0, 0xa4, 0xab, 0x82, + 0xd3, 0xae, 0x0a, 0xbe, 0x76, 0x55, 0xf0, 0xfa, 0x5c, 0x4d, 0x9c, 0x9e, 0xab, 0x89, 0x4f, 0xe7, + 0x6a, 0xe2, 0xa1, 0x19, 0x93, 0x24, 0xdb, 0xbb, 0x98, 0xf5, 0x1e, 0x57, 0xeb, 0x7b, 0x88, 0xb8, + 0xe6, 0x63, 0x7e, 0x01, 0x73, 0x7d, 0xb5, 0x29, 0x7e, 0x01, 0xdf, 0xfe, 0x19, 0x00, 0x00, 0xff, + 0xff, 0x6e, 0x48, 0x56, 0xcf, 0x2e, 0x08, 0x00, 0x00, } func (this *GenesisState) Equal(that interface{}) bool { @@ -321,6 +381,14 @@ func (this *GenesisState) Equal(that interface{}) bool { if !this.MaturedEpoch.Equal(that1.MaturedEpoch) { return false } + if len(this.RewardTotalInfo) != len(that1.RewardTotalInfo) { + return false + } + for i := range this.RewardTotalInfo { + if !this.RewardTotalInfo[i].Equal(&that1.RewardTotalInfo[i]) { + return false + } + } return true } func (this *ImmatureTotal) Equal(that interface{}) bool { @@ -387,6 +455,33 @@ func (this *MatureTotal) Equal(that interface{}) bool { } return true } +func (this *RewardTotal) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*RewardTotal) + if !ok { + that2, ok := that.(RewardTotal) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if !this.Epoch.Equal(that1.Epoch) { + return false + } + if !this.TotalReward.Equal(&that1.TotalReward) { + return false + } + return true +} func (m *GenesisState) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -407,6 +502,20 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if len(m.RewardTotalInfo) > 0 { + for iNdEx := len(m.RewardTotalInfo) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.RewardTotalInfo[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + } { size := m.MaturedEpoch.Size() i -= size @@ -580,6 +689,49 @@ func (m *MatureTotal) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *RewardTotal) 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 *RewardTotal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RewardTotal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.TotalReward.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size := m.Epoch.Size() + i -= size + if _, err := m.Epoch.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func encodeVarintGenesis(dAtA []byte, offset int, v uint64) int { offset -= sovGenesis(v) base := offset @@ -623,6 +775,12 @@ func (m *GenesisState) Size() (n int) { } l = m.MaturedEpoch.Size() n += 1 + l + sovGenesis(uint64(l)) + if len(m.RewardTotalInfo) > 0 { + for _, e := range m.RewardTotalInfo { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } return n } @@ -664,6 +822,19 @@ func (m *MatureTotal) Size() (n int) { return n } +func (m *RewardTotal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Epoch.Size() + n += 1 + l + sovGenesis(uint64(l)) + l = m.TotalReward.Size() + n += 1 + l + sovGenesis(uint64(l)) + return n +} + func sovGenesis(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -935,6 +1106,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RewardTotalInfo", 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.RewardTotalInfo = append(m.RewardTotalInfo, RewardTotal{}) + if err := m.RewardTotalInfo[len(m.RewardTotalInfo)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) @@ -1188,6 +1393,123 @@ func (m *MatureTotal) Unmarshal(dAtA []byte) error { } return nil } +func (m *RewardTotal) 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 ErrIntOverflowGenesis + } + 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: RewardTotal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RewardTotal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Epoch", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + 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 ErrInvalidLengthGenesis + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenesis + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Epoch.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TotalReward", 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 + } + if err := m.TotalReward.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenesis(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenesis + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipGenesis(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/x/pot/types/key.go b/x/pot/types/key.go index 756844de..69b5dba8 100644 --- a/x/pot/types/key.go +++ b/x/pot/types/key.go @@ -24,6 +24,7 @@ var ( ImmatureTotalRewardKeyPrefix = []byte{0x05} // key: prefix{address} VolumeReportStoreKeyPrefix = []byte{0x06} // VolumeReportStoreKeyPrefix prefix for volumeReport store MaturedEpochKeyPrefix = []byte{0x07} + TotalRewardKeyPrefix = []byte{0x08} // key: prefix{epoch} ParamsKey = []byte{0x20} ) @@ -62,3 +63,7 @@ func GetImmatureTotalRewardKey(acc sdk.AccAddress) []byte { key := append(ImmatureTotalRewardKeyPrefix, acc.Bytes()...) return key } + +func GetTotalRewardKey(epoch sdkmath.Int) []byte { + return append(TotalRewardKeyPrefix, epoch.String()...) +} diff --git a/x/pot/types/query.pb.go b/x/pot/types/query.pb.go index abfa8a72..f20656e1 100644 --- a/x/pot/types/query.pb.go +++ b/x/pot/types/query.pb.go @@ -867,6 +867,7 @@ func (m *QueryTotalRewardByEpochRequest) GetEpoch() int64 { type QueryTotalRewardByEpochResponse struct { TotalReward TotalReward `protobuf:"bytes,1,opt,name=total_reward,json=totalReward,proto3" json:"total_reward" yaml:"total_reward"` + IsLegacy bool `protobuf:"varint,2,opt,name=is_legacy,json=isLegacy,proto3" json:"is_legacy" yaml:"is_legacy"` } func (m *QueryTotalRewardByEpochResponse) Reset() { *m = QueryTotalRewardByEpochResponse{} } @@ -909,6 +910,13 @@ func (m *QueryTotalRewardByEpochResponse) GetTotalReward() TotalReward { return TotalReward{} } +func (m *QueryTotalRewardByEpochResponse) GetIsLegacy() bool { + if m != nil { + return m.IsLegacy + } + return false +} + type QueryMetricsRequest struct { } @@ -1015,80 +1023,83 @@ func init() { func init() { proto.RegisterFile("stratos/pot/v1/query.proto", fileDescriptor_c09bd09df76a68e0) } var fileDescriptor_c09bd09df76a68e0 = []byte{ - // 1167 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x97, 0xcf, 0x6f, 0xdc, 0x44, - 0x14, 0xc7, 0xe3, 0xa4, 0x4d, 0xdb, 0x97, 0xb6, 0x51, 0x26, 0x69, 0xb2, 0x71, 0x93, 0xdd, 0x32, - 0x4d, 0xdb, 0xfc, 0xe8, 0xda, 0xd9, 0x20, 0xa8, 0x04, 0x27, 0x12, 0x0a, 0xf4, 0x50, 0xb5, 0xb8, - 0x15, 0x07, 0x2e, 0x2b, 0x67, 0x33, 0xd9, 0xb5, 0xb2, 0xeb, 0x71, 0x3c, 0xb3, 0xf9, 0x41, 0xa8, - 0x90, 0xf8, 0x03, 0x10, 0x82, 0x03, 0x1c, 0x10, 0x08, 0xb8, 0x71, 0xe2, 0xc0, 0x1f, 0x51, 0x6e, - 0x95, 0xb8, 0x70, 0x0a, 0x28, 0xe1, 0xc4, 0xb1, 0x7f, 0x01, 0xf2, 0xcc, 0xdb, 0x8d, 0xed, 0xb5, - 0x93, 0x15, 0x82, 0x53, 0xd6, 0xf3, 0xde, 0x9b, 0xf7, 0x79, 0x6f, 0x9e, 0xbf, 0xe3, 0x80, 0x29, - 0x64, 0xe8, 0x4a, 0x2e, 0xec, 0x80, 0x4b, 0x7b, 0xa7, 0x62, 0x6f, 0xb7, 0x59, 0xb8, 0x6f, 0x05, - 0x21, 0x97, 0x9c, 0x5c, 0x45, 0x9b, 0x15, 0x70, 0x69, 0xed, 0x54, 0xcc, 0x89, 0x3a, 0xaf, 0x73, - 0x65, 0xb2, 0xa3, 0x5f, 0xda, 0xcb, 0x9c, 0xa9, 0x73, 0x5e, 0x6f, 0x32, 0xdb, 0x0d, 0x3c, 0xdb, - 0xf5, 0x7d, 0x2e, 0x5d, 0xe9, 0x71, 0x5f, 0xa0, 0xb5, 0x58, 0xe3, 0xa2, 0xc5, 0x85, 0xbd, 0xee, - 0x0a, 0x66, 0xef, 0x54, 0xd6, 0x99, 0x74, 0x2b, 0x76, 0x8d, 0x7b, 0x3e, 0xda, 0x17, 0xe3, 0x76, - 0x95, 0xbc, 0xeb, 0x15, 0xb8, 0x75, 0xcf, 0x57, 0x9b, 0xa1, 0x6f, 0x21, 0xc5, 0x1a, 0x61, 0x29, - 0x0b, 0x5d, 0x86, 0xc2, 0xfb, 0x51, 0xec, 0x07, 0xbc, 0xd9, 0x6e, 0x31, 0x87, 0x05, 0x3c, 0x94, - 0x0e, 0xdb, 0x6e, 0x33, 0x21, 0xc9, 0x04, 0x9c, 0x67, 0x01, 0xaf, 0x35, 0x0a, 0xc6, 0x0d, 0x63, - 0x7e, 0xc8, 0xd1, 0x0f, 0x34, 0x80, 0xe9, 0x8c, 0x08, 0x11, 0x70, 0x5f, 0x30, 0xf2, 0x26, 0x8c, - 0x84, 0x6a, 0xa5, 0xea, 0xf9, 0x9b, 0x5c, 0x05, 0x8e, 0xac, 0x98, 0x56, 0xb2, 0x1d, 0x96, 0x0e, - 0x7a, 0xe0, 0x6f, 0x72, 0x07, 0xc2, 0xee, 0x6f, 0x32, 0x09, 0xc3, 0x0d, 0xe6, 0xd5, 0x1b, 0xb2, - 0x30, 0xa8, 0x12, 0xe2, 0x13, 0x6d, 0x03, 0x9c, 0x44, 0x64, 0x53, 0x91, 0x19, 0xb8, 0x14, 0xb2, - 0x4d, 0x16, 0x32, 0xbf, 0xc6, 0x54, 0xf8, 0x25, 0xe7, 0x64, 0x81, 0x4c, 0xc1, 0x05, 0xb9, 0x57, - 0x6d, 0xb8, 0xa2, 0x51, 0x18, 0x52, 0xb6, 0x61, 0xb9, 0xf7, 0x9e, 0x2b, 0x1a, 0xc4, 0x84, 0x8b, - 0x1a, 0x80, 0x85, 0x85, 0x73, 0xca, 0xd2, 0x7d, 0xa6, 0x13, 0x40, 0x54, 0xa1, 0x8f, 0xdd, 0xd0, - 0x6d, 0x09, 0x6c, 0x0a, 0xbd, 0x0f, 0xe3, 0x89, 0x55, 0x2c, 0xdc, 0x82, 0xe1, 0x40, 0xad, 0x60, - 0xcd, 0x93, 0xe9, 0x9a, 0xd1, 0x1f, 0xbd, 0xe8, 0xf7, 0x06, 0x98, 0x6a, 0x1f, 0x87, 0xed, 0xba, - 0xe1, 0x86, 0x58, 0xdd, 0xbf, 0x1f, 0xd5, 0x71, 0x6a, 0xeb, 0xc9, 0x2d, 0xb8, 0xba, 0xeb, 0x36, - 0x9b, 0x4c, 0x56, 0xdd, 0x8d, 0x8d, 0x90, 0x09, 0x81, 0x95, 0x5e, 0xd1, 0xab, 0x6f, 0xe9, 0x45, - 0xf2, 0x0e, 0xc0, 0xc9, 0x04, 0xa8, 0x82, 0x47, 0x56, 0x6e, 0x5b, 0x7a, 0x5c, 0xac, 0x68, 0x5c, - 0x2c, 0x3d, 0xab, 0x38, 0x2e, 0xd6, 0x63, 0xb7, 0xce, 0x30, 0xb1, 0x13, 0x8b, 0xa4, 0x3f, 0x1b, - 0x70, 0x3d, 0x93, 0x11, 0x6b, 0x5e, 0x86, 0x0b, 0xa1, 0xb6, 0x14, 0x8c, 0x1b, 0x43, 0x59, 0x45, - 0xeb, 0x40, 0xa7, 0xe3, 0x96, 0x77, 0xc2, 0xe4, 0xdd, 0x0c, 0xe2, 0x3b, 0x67, 0x12, 0x6b, 0x8c, - 0x04, 0xf2, 0x5a, 0xba, 0xab, 0x8f, 0x76, 0x7d, 0x16, 0x76, 0xba, 0xda, 0xdb, 0x3f, 0x23, 0xa3, - 0x7f, 0xd4, 0x4f, 0x97, 0x8d, 0x9b, 0x60, 0xd9, 0xf7, 0xe2, 0x65, 0x47, 0xa4, 0xb3, 0xd9, 0x65, - 0x77, 0xe2, 0xce, 0xaa, 0x9e, 0xfe, 0x32, 0x08, 0x57, 0x12, 0x21, 0x7d, 0x82, 0x92, 0x03, 0x18, - 0x6f, 0xb9, 0xb2, 0x1d, 0xb2, 0xaa, 0xe4, 0xd2, 0x6d, 0x56, 0x75, 0xa2, 0xc2, 0xa0, 0x3a, 0x8c, - 0xe9, 0x44, 0xff, 0x3a, 0x9d, 0x5b, 0xe3, 0x9e, 0xbf, 0xba, 0xfc, 0xfc, 0xb0, 0x34, 0xf0, 0xd3, - 0x1f, 0xa5, 0xf9, 0xba, 0x27, 0x1b, 0xed, 0x75, 0xab, 0xc6, 0x5b, 0x36, 0xaa, 0x89, 0xfe, 0x53, - 0x16, 0x1b, 0x5b, 0xb6, 0xdc, 0x0f, 0x98, 0x50, 0x01, 0xc2, 0x19, 0xd3, 0x79, 0x9e, 0x46, 0x69, - 0x34, 0x2a, 0xf9, 0x04, 0xae, 0x79, 0xad, 0xac, 0xf4, 0x43, 0xff, 0x7d, 0xfa, 0xf1, 0x4e, 0xa6, - 0x18, 0x00, 0x7d, 0x1b, 0x8f, 0xe9, 0x49, 0xd3, 0x15, 0x0d, 0xcf, 0xaf, 0xff, 0xbb, 0xc3, 0x76, - 0x60, 0x26, 0x7b, 0x17, 0x3c, 0x6d, 0x13, 0x2e, 0x0a, 0x34, 0xe1, 0x06, 0xdd, 0xe7, 0xdc, 0x03, - 0x9d, 0x45, 0x32, 0x45, 0xfb, 0xd0, 0xf3, 0xd9, 0xc6, 0x53, 0xbe, 0xc5, 0xfc, 0x8e, 0x84, 0x7c, - 0x63, 0x60, 0xce, 0x1e, 0x3b, 0xe6, 0xfc, 0x18, 0xc6, 0x74, 0x47, 0x5b, 0x91, 0xad, 0x2a, 0x23, - 0x23, 0xce, 0xda, 0x29, 0x6d, 0x7d, 0x2d, 0x6a, 0xeb, 0xdf, 0x87, 0xa5, 0xde, 0xd8, 0x97, 0x87, - 0xa5, 0xc2, 0xbe, 0xdb, 0x6a, 0xbe, 0x41, 0x7b, 0x4c, 0xd4, 0x19, 0x95, 0x49, 0x0a, 0x5a, 0x82, - 0x59, 0x45, 0xb7, 0xe6, 0x85, 0xb5, 0x76, 0x53, 0xbd, 0x57, 0x4f, 0xda, 0x41, 0xd0, 0xdc, 0x8f, - 0xf1, 0x17, 0xf3, 0x3c, 0xb0, 0x82, 0x8f, 0x80, 0xd4, 0x4e, 0x8c, 0x55, 0xa1, 0xac, 0xff, 0xc7, - 0x64, 0x8c, 0xd5, 0xd2, 0x0c, 0xf4, 0x75, 0xa4, 0x8b, 0xcd, 0x4a, 0x3f, 0xea, 0x4a, 0x3f, 0x33, - 0xa0, 0x94, 0x1b, 0x88, 0x75, 0x6d, 0xc1, 0xe5, 0xc4, 0xac, 0xeb, 0x43, 0xb9, 0x9e, 0x16, 0x80, - 0xf8, 0x0e, 0x4b, 0x78, 0x2c, 0x89, 0xc0, 0x97, 0x87, 0xa5, 0xf1, 0xf8, 0x89, 0xe8, 0x55, 0xea, - 0x8c, 0xc8, 0xd8, 0x80, 0x5f, 0xc3, 0xab, 0xe6, 0x21, 0x93, 0xa1, 0x57, 0xeb, 0xde, 0x40, 0x8f, - 0x60, 0x22, 0xb9, 0x7c, 0xa2, 0x4b, 0x2d, 0xbd, 0x84, 0x58, 0x53, 0x69, 0x2c, 0x8c, 0x58, 0x3d, - 0x17, 0x21, 0x39, 0x1d, 0xef, 0x95, 0x5f, 0x01, 0xce, 0xab, 0x1d, 0xc9, 0x17, 0x06, 0x5c, 0x8e, - 0xdf, 0xeb, 0x64, 0x3e, 0xbd, 0x45, 0xde, 0xc7, 0x82, 0xb9, 0xd0, 0x87, 0xa7, 0x06, 0xa5, 0xe5, - 0x4f, 0x7f, 0xfb, 0xeb, 0xcb, 0xc1, 0x3b, 0xe4, 0x96, 0x9d, 0xfa, 0x2c, 0xd9, 0x51, 0xde, 0x65, - 0x7d, 0x03, 0xdb, 0x07, 0xea, 0x58, 0x9e, 0x91, 0xaf, 0x0d, 0xb8, 0x9a, 0xbc, 0x81, 0xc8, 0x62, - 0x66, 0xb2, 0xcc, 0xab, 0xd4, 0x5c, 0xea, 0xcb, 0xf7, 0x2c, 0x34, 0xd4, 0x70, 0x5b, 0x31, 0x75, - 0xd1, 0x7e, 0x88, 0xa3, 0x69, 0xe9, 0x3e, 0x03, 0x2d, 0x2e, 0x51, 0x67, 0xa1, 0x25, 0x84, 0x88, - 0xde, 0x53, 0x68, 0x15, 0x62, 0xe7, 0xa1, 0x69, 0x5d, 0xb3, 0x0f, 0x92, 0xaa, 0xf7, 0x8c, 0x7c, - 0x67, 0xc0, 0x68, 0x4a, 0xdd, 0x48, 0x76, 0xe6, 0x6c, 0x25, 0x35, 0xef, 0xf6, 0xe7, 0x8c, 0x9c, - 0x15, 0xc5, 0xb9, 0x44, 0x16, 0xd2, 0x9c, 0x1d, 0xd9, 0xec, 0x25, 0xdc, 0x86, 0x61, 0xfd, 0x79, - 0x44, 0x68, 0x66, 0xaa, 0xc4, 0x17, 0x98, 0x79, 0xf3, 0x54, 0x1f, 0xa4, 0x28, 0x2a, 0x8a, 0x02, - 0x99, 0x4c, 0x53, 0xe8, 0xef, 0x2f, 0xf2, 0x95, 0x01, 0xa3, 0x29, 0xf9, 0xcd, 0x69, 0x4a, 0xb6, - 0x88, 0xe7, 0x34, 0x25, 0x47, 0xd1, 0xe9, 0x82, 0xc2, 0xb9, 0x49, 0x5e, 0x49, 0xe3, 0xa8, 0xf7, - 0xbd, 0xac, 0x04, 0xb9, 0xac, 0x04, 0x99, 0x7c, 0x6b, 0xc0, 0x58, 0x8f, 0xb0, 0x92, 0x72, 0x66, - 0xba, 0x3c, 0x89, 0x36, 0xad, 0x7e, 0xdd, 0x91, 0x6f, 0x51, 0xf1, 0xcd, 0x11, 0x9a, 0xe6, 0x8b, - 0xc9, 0x6b, 0x59, 0xab, 0x38, 0xf9, 0xd1, 0x00, 0xd2, 0x2b, 0x91, 0xc4, 0xca, 0x6f, 0x48, 0x96, - 0x08, 0x9b, 0x76, 0xdf, 0xfe, 0xc8, 0x78, 0x57, 0x31, 0xde, 0x26, 0x73, 0xd9, 0x3d, 0xd4, 0xaf, - 0x41, 0xf7, 0xd5, 0x6c, 0xc3, 0x05, 0x94, 0x3b, 0x92, 0x3d, 0x30, 0x49, 0x55, 0x35, 0xe7, 0x4e, - 0x77, 0x42, 0x86, 0x92, 0x62, 0x98, 0x26, 0x53, 0x69, 0x06, 0xd4, 0xd2, 0xd5, 0x07, 0xcf, 0x8f, - 0x8a, 0xc6, 0x8b, 0xa3, 0xa2, 0xf1, 0xe7, 0x51, 0xd1, 0xf8, 0xfc, 0xb8, 0x38, 0xf0, 0xe2, 0xb8, - 0x38, 0xf0, 0xfb, 0x71, 0x71, 0xe0, 0x43, 0x3b, 0x76, 0xa7, 0x61, 0xb0, 0xcf, 0x64, 0xe7, 0x67, - 0xb9, 0xd6, 0x70, 0x3d, 0xdf, 0xde, 0x53, 0xfb, 0xa9, 0x0b, 0x6e, 0x7d, 0x58, 0xfd, 0x87, 0xf6, - 0xea, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1c, 0x96, 0xa9, 0xd1, 0x69, 0x0e, 0x00, 0x00, + // 1207 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x97, 0x4f, 0x6f, 0x1b, 0xc5, + 0x1b, 0xc7, 0xb3, 0x49, 0x9b, 0x26, 0x4f, 0xda, 0xe4, 0x97, 0x49, 0x9a, 0x38, 0xdb, 0xc4, 0x6e, + 0xa7, 0x69, 0x9b, 0x3f, 0xf5, 0x6e, 0x9c, 0x9f, 0xa0, 0x12, 0x48, 0x48, 0x24, 0x14, 0xa8, 0x44, + 0xd5, 0xb2, 0xad, 0x38, 0x70, 0xb1, 0x36, 0x9b, 0x89, 0xbd, 0x8a, 0xbd, 0xb3, 0xd9, 0x19, 0x27, + 0x31, 0xa1, 0x42, 0xe2, 0x15, 0x20, 0x38, 0xc0, 0x01, 0x81, 0x80, 0x1b, 0x27, 0x0e, 0xbc, 0x88, + 0x72, 0x41, 0x95, 0xb8, 0x70, 0x32, 0x28, 0xe1, 0xd4, 0x63, 0x5e, 0x01, 0xda, 0x99, 0xb1, 0xbd, + 0xbb, 0xde, 0x4d, 0x2c, 0x04, 0x27, 0xef, 0xce, 0xf3, 0x3c, 0xf3, 0x7c, 0x9e, 0x67, 0x66, 0xbf, + 0x33, 0x06, 0x9d, 0xf1, 0xc0, 0xe6, 0x94, 0x99, 0x3e, 0xe5, 0xe6, 0x7e, 0xc9, 0xdc, 0x6b, 0x90, + 0xa0, 0x69, 0xf8, 0x01, 0xe5, 0x14, 0x8d, 0x2b, 0x9b, 0xe1, 0x53, 0x6e, 0xec, 0x97, 0xf4, 0xe9, + 0x0a, 0xad, 0x50, 0x61, 0x32, 0xc3, 0x27, 0xe9, 0xa5, 0xcf, 0x57, 0x28, 0xad, 0xd4, 0x88, 0x69, + 0xfb, 0xae, 0x69, 0x7b, 0x1e, 0xe5, 0x36, 0x77, 0xa9, 0xc7, 0x94, 0x35, 0xef, 0x50, 0x56, 0xa7, + 0xcc, 0xdc, 0xb2, 0x19, 0x31, 0xf7, 0x4b, 0x5b, 0x84, 0xdb, 0x25, 0xd3, 0xa1, 0xae, 0xa7, 0xec, + 0x2b, 0x51, 0xbb, 0x48, 0xde, 0xf1, 0xf2, 0xed, 0x8a, 0xeb, 0x89, 0xc9, 0x94, 0x6f, 0x2e, 0xc1, + 0x1a, 0x62, 0x09, 0x0b, 0x5e, 0x83, 0xdc, 0xfb, 0x61, 0xec, 0x07, 0xb4, 0xd6, 0xa8, 0x13, 0x8b, + 0xf8, 0x34, 0xe0, 0x16, 0xd9, 0x6b, 0x10, 0xc6, 0xd1, 0x34, 0x5c, 0x24, 0x3e, 0x75, 0xaa, 0x39, + 0xed, 0xba, 0xb6, 0x34, 0x64, 0xc9, 0x17, 0xec, 0xc3, 0x5c, 0x4a, 0x04, 0xf3, 0xa9, 0xc7, 0x08, + 0x7a, 0x1d, 0xc6, 0x02, 0x31, 0x52, 0x76, 0xbd, 0x1d, 0x2a, 0x02, 0xc7, 0xd6, 0x75, 0x23, 0xde, + 0x0e, 0x43, 0x06, 0x3d, 0xf0, 0x76, 0xa8, 0x05, 0x41, 0xe7, 0x19, 0xcd, 0xc0, 0x70, 0x95, 0xb8, + 0x95, 0x2a, 0xcf, 0x0d, 0x8a, 0x84, 0xea, 0x0d, 0x37, 0x00, 0xba, 0x11, 0xe9, 0x54, 0x68, 0x1e, + 0x46, 0x03, 0xb2, 0x43, 0x02, 0xe2, 0x39, 0x44, 0x84, 0x8f, 0x5a, 0xdd, 0x01, 0x34, 0x0b, 0x97, + 0xf8, 0x61, 0xb9, 0x6a, 0xb3, 0x6a, 0x6e, 0x48, 0xd8, 0x86, 0xf9, 0xe1, 0xbb, 0x36, 0xab, 0x22, + 0x1d, 0x46, 0x24, 0x00, 0x09, 0x72, 0x17, 0x84, 0xa5, 0xf3, 0x8e, 0xa7, 0x01, 0x89, 0x42, 0x1f, + 0xdb, 0x81, 0x5d, 0x67, 0xaa, 0x29, 0xf8, 0x3e, 0x4c, 0xc5, 0x46, 0x55, 0xe1, 0x06, 0x0c, 0xfb, + 0x62, 0x44, 0xd5, 0x3c, 0x93, 0xac, 0x59, 0xf9, 0x2b, 0x2f, 0xfc, 0x9d, 0x06, 0xba, 0x98, 0xc7, + 0x22, 0x07, 0x76, 0xb0, 0xcd, 0x36, 0x9a, 0xf7, 0xc3, 0x3a, 0xce, 0x6c, 0x3d, 0xba, 0x05, 0xe3, + 0x07, 0x76, 0xad, 0x46, 0x78, 0xd9, 0xde, 0xde, 0x0e, 0x08, 0x63, 0xaa, 0xd2, 0x2b, 0x72, 0xf4, + 0x4d, 0x39, 0x88, 0xde, 0x06, 0xe8, 0xee, 0x00, 0x51, 0xf0, 0xd8, 0xfa, 0x6d, 0x43, 0x6e, 0x17, + 0x23, 0xdc, 0x2e, 0x86, 0xdc, 0xab, 0x6a, 0xbb, 0x18, 0x8f, 0xed, 0x0a, 0x51, 0x89, 0xad, 0x48, + 0x24, 0xfe, 0x49, 0x83, 0x6b, 0xa9, 0x8c, 0xaa, 0xe6, 0x35, 0xb8, 0x14, 0x48, 0x4b, 0x4e, 0xbb, + 0x3e, 0x94, 0x56, 0xb4, 0x0c, 0xb4, 0xda, 0x6e, 0x59, 0x2b, 0x8c, 0xde, 0x49, 0x21, 0xbe, 0x73, + 0x2e, 0xb1, 0xc4, 0x88, 0x21, 0x6f, 0x26, 0xbb, 0xfa, 0xe8, 0xc0, 0x23, 0x41, 0xbb, 0xab, 0xbd, + 0xfd, 0xd3, 0x52, 0xfa, 0x87, 0xbd, 0x64, 0xd9, 0x6a, 0x12, 0x55, 0xf6, 0xbd, 0x68, 0xd9, 0x21, + 0xe9, 0x42, 0x7a, 0xd9, 0xed, 0xb8, 0xf3, 0xaa, 0xc7, 0x3f, 0x0f, 0xc2, 0x95, 0x58, 0x48, 0x9f, + 0xa0, 0xe8, 0x08, 0xa6, 0xea, 0x36, 0x6f, 0x04, 0xa4, 0xcc, 0x29, 0xb7, 0x6b, 0x65, 0x99, 0x28, + 0x37, 0x28, 0x16, 0x63, 0x2e, 0xd6, 0xbf, 0x76, 0xe7, 0x36, 0xa9, 0xeb, 0x6d, 0xac, 0x3d, 0x6f, + 0x15, 0x06, 0x7e, 0xfc, 0xa3, 0xb0, 0x54, 0x71, 0x79, 0xb5, 0xb1, 0x65, 0x38, 0xb4, 0x6e, 0x2a, + 0x35, 0x91, 0x3f, 0x45, 0xb6, 0xbd, 0x6b, 0xf2, 0xa6, 0x4f, 0x98, 0x08, 0x60, 0xd6, 0xa4, 0xcc, + 0xf3, 0x34, 0x4c, 0x23, 0x51, 0xd1, 0x27, 0x70, 0xd5, 0xad, 0xa7, 0xa5, 0x1f, 0xfa, 0xf7, 0xd3, + 0x4f, 0xb5, 0x33, 0x45, 0x00, 0xf0, 0x5b, 0x6a, 0x99, 0x9e, 0xd4, 0x6c, 0x56, 0x75, 0xbd, 0xca, + 0x3f, 0x5b, 0x6c, 0x0b, 0xe6, 0xd3, 0x67, 0x51, 0xab, 0xad, 0xc3, 0x08, 0x53, 0x26, 0x35, 0x41, + 0xe7, 0x3d, 0x73, 0x41, 0x17, 0x14, 0x99, 0xa0, 0x7d, 0xe8, 0x7a, 0x64, 0xfb, 0x29, 0xdd, 0x25, + 0x5e, 0x5b, 0x42, 0xbe, 0xd6, 0x54, 0xce, 0x1e, 0xbb, 0xca, 0xf9, 0x31, 0x4c, 0xca, 0x8e, 0xd6, + 0x43, 0x5b, 0x99, 0x87, 0x46, 0xb5, 0xd7, 0xce, 0x68, 0xeb, 0x2b, 0x61, 0x5b, 0x5f, 0xb6, 0x0a, + 0xbd, 0xb1, 0xa7, 0xad, 0x42, 0xae, 0x69, 0xd7, 0x6b, 0xaf, 0xe1, 0x1e, 0x13, 0xb6, 0x26, 0x78, + 0x9c, 0x02, 0x17, 0x60, 0x41, 0xd0, 0x6d, 0xba, 0x81, 0xd3, 0xa8, 0x89, 0xef, 0xea, 0x49, 0xc3, + 0xf7, 0x6b, 0xcd, 0x08, 0x7f, 0x3e, 0xcb, 0x43, 0x55, 0xf0, 0x11, 0x20, 0xa7, 0x6b, 0x2c, 0x33, + 0x61, 0xfd, 0x2f, 0x76, 0xc6, 0xa4, 0x93, 0x64, 0xc0, 0xaf, 0x2a, 0xba, 0xc8, 0x5e, 0xe9, 0x47, + 0x5d, 0xf1, 0xaf, 0x1a, 0x14, 0x32, 0x03, 0x55, 0x5d, 0xbb, 0x70, 0x39, 0xb6, 0xd7, 0xe5, 0xa2, + 0x5c, 0x4b, 0x0a, 0x40, 0x74, 0x86, 0x55, 0xb5, 0x2c, 0xb1, 0xc0, 0xd3, 0x56, 0x61, 0x2a, 0xba, + 0x22, 0x72, 0x14, 0x5b, 0x63, 0x3c, 0xf2, 0x85, 0xbd, 0x01, 0xa3, 0x2e, 0x2b, 0xd7, 0x48, 0xc5, + 0x76, 0x9a, 0x62, 0x87, 0x8d, 0x6c, 0xdc, 0x78, 0xd9, 0x2a, 0x74, 0x07, 0x4f, 0x5b, 0x85, 0xff, + 0xc9, 0x59, 0x3a, 0x43, 0xd8, 0x1a, 0x71, 0xd9, 0x7b, 0xf2, 0xf1, 0xaa, 0x3a, 0xaa, 0x1e, 0x12, + 0x1e, 0xb8, 0x4e, 0xe7, 0x04, 0x7b, 0x04, 0xd3, 0xf1, 0xe1, 0xae, 0xae, 0xd5, 0xe5, 0x90, 0x2a, + 0x6b, 0x36, 0x59, 0x96, 0x8a, 0xd8, 0xb8, 0x10, 0x96, 0x64, 0xb5, 0xbd, 0xd7, 0x7f, 0x01, 0xb8, + 0x28, 0x66, 0x44, 0x9f, 0x6b, 0x70, 0x39, 0x7a, 0x2f, 0x40, 0x4b, 0xc9, 0x29, 0xb2, 0x2e, 0x1b, + 0xfa, 0x72, 0x1f, 0x9e, 0x12, 0x14, 0x17, 0x3f, 0xfd, 0xed, 0xaf, 0x2f, 0x06, 0xef, 0xa0, 0x5b, + 0x66, 0xe2, 0x5a, 0xb3, 0x2f, 0xbc, 0x8b, 0xf2, 0x04, 0x37, 0x8f, 0xc4, 0xb2, 0x3e, 0x43, 0x5f, + 0x69, 0x30, 0x1e, 0x3f, 0xc1, 0xd0, 0x4a, 0x6a, 0xb2, 0xd4, 0xa3, 0x58, 0x5f, 0xed, 0xcb, 0xf7, + 0x3c, 0x34, 0x75, 0x06, 0x98, 0x82, 0xa9, 0x83, 0xf6, 0x7d, 0x14, 0x4d, 0x4a, 0xff, 0x39, 0x68, + 0x51, 0x89, 0x3b, 0x0f, 0x2d, 0x26, 0x64, 0xf8, 0x9e, 0x40, 0x2b, 0x21, 0x33, 0x0b, 0x4d, 0xea, + 0xa2, 0x79, 0x14, 0x57, 0xcd, 0x67, 0xe8, 0x5b, 0x0d, 0x26, 0x12, 0xea, 0x88, 0xd2, 0x33, 0xa7, + 0x2b, 0xb1, 0x7e, 0xb7, 0x3f, 0x67, 0xc5, 0x59, 0x12, 0x9c, 0xab, 0x68, 0x39, 0xc9, 0xd9, 0x96, + 0xdd, 0x5e, 0xc2, 0x3d, 0x18, 0x96, 0xd7, 0x2b, 0x84, 0x53, 0x53, 0xc5, 0x6e, 0x70, 0xfa, 0xcd, + 0x33, 0x7d, 0x14, 0x45, 0x5e, 0x50, 0xe4, 0xd0, 0x4c, 0x92, 0x42, 0xde, 0xdf, 0xd0, 0x97, 0x1a, + 0x4c, 0x24, 0xe4, 0x3b, 0xa3, 0x29, 0xe9, 0x87, 0x40, 0x46, 0x53, 0x32, 0x4e, 0x04, 0xbc, 0x2c, + 0x70, 0x6e, 0xa2, 0x1b, 0x49, 0x1c, 0xa1, 0x17, 0x45, 0x21, 0xe8, 0x45, 0x21, 0xe8, 0xe8, 0x1b, + 0x0d, 0x26, 0x7b, 0x84, 0x19, 0x15, 0x53, 0xd3, 0x65, 0x49, 0xbc, 0x6e, 0xf4, 0xeb, 0xae, 0xf8, + 0x56, 0x04, 0xdf, 0x22, 0xc2, 0x49, 0xbe, 0x88, 0x3c, 0x17, 0xe5, 0x29, 0x80, 0x7e, 0xd0, 0x00, + 0xf5, 0x4a, 0x2c, 0x32, 0xb2, 0x1b, 0x92, 0x26, 0xe2, 0xba, 0xd9, 0xb7, 0xbf, 0x62, 0xbc, 0x2b, + 0x18, 0x6f, 0xa3, 0xc5, 0xf4, 0x1e, 0xca, 0xcf, 0xa0, 0xf3, 0x69, 0x36, 0xe0, 0x92, 0x92, 0x3b, + 0x94, 0xbe, 0x61, 0xe2, 0xaa, 0xaa, 0x2f, 0x9e, 0xed, 0xa4, 0x18, 0x0a, 0x82, 0x61, 0x0e, 0xcd, + 0x26, 0x19, 0x94, 0x96, 0x6e, 0x3c, 0x78, 0x7e, 0x9c, 0xd7, 0x5e, 0x1c, 0xe7, 0xb5, 0x3f, 0x8f, + 0xf3, 0xda, 0x67, 0x27, 0xf9, 0x81, 0x17, 0x27, 0xf9, 0x81, 0xdf, 0x4f, 0xf2, 0x03, 0x1f, 0x9a, + 0x91, 0x33, 0x51, 0x05, 0x7b, 0x84, 0xb7, 0x1f, 0x8b, 0x4e, 0xd5, 0x76, 0x3d, 0xf3, 0x50, 0xcc, + 0x27, 0x0e, 0xc8, 0xad, 0x61, 0xf1, 0x0f, 0xef, 0xff, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x0c, + 0x15, 0xe8, 0x3d, 0xa9, 0x0e, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2102,6 +2113,16 @@ func (m *QueryTotalRewardByEpochResponse) MarshalToSizedBuffer(dAtA []byte) (int _ = i var l int _ = l + if m.IsLegacy { + i-- + if m.IsLegacy { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } { size, err := m.TotalReward.MarshalToSizedBuffer(dAtA[:i]) if err != nil { @@ -2445,6 +2466,9 @@ func (m *QueryTotalRewardByEpochResponse) Size() (n int) { _ = l l = m.TotalReward.Size() n += 1 + l + sovQuery(uint64(l)) + if m.IsLegacy { + n += 2 + } return n } @@ -4143,6 +4167,26 @@ func (m *QueryTotalRewardByEpochResponse) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsLegacy", 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.IsLegacy = bool(v != 0) default: iNdEx = preIndex skippy, err := skipQuery(dAtA[iNdEx:]) diff --git a/x/register/keeper/genesis.go b/x/register/keeper/genesis.go index 3a7f8d12..362ca41e 100644 --- a/x/register/keeper/genesis.go +++ b/x/register/keeper/genesis.go @@ -87,6 +87,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, data *types.GenesisState) { default: panic(types.ErrInvalidNodeStat) } + if len(strings.TrimSpace(metaNode.BeneficiaryAddress)) == 0 { metaNode.BeneficiaryAddress = metaNode.OwnerAddress } From 6de0a85f60beec449ca30109f62a6a485b6cb363 Mon Sep 17 00:00:00 2001 From: Xiong Date: Fri, 3 Nov 2023 17:17:52 -0400 Subject: [PATCH 11/15] fix unit tests --- app/genesis.go | 11 + testutil/{stratos => }/app_helpers.go | 2 +- testutil/bls_sign.go | 43 + app/test_helpers.go => testutil/helpers.go | 122 +-- testutil/{stratos => }/tx_helpers.go | 4 +- x/evm/simulation/operations.go | 3 +- x/pot/app_benchmark_test.go | 144 +-- x/pot/app_test.go | 181 ++-- x/pot/client/cli/tx.go | 4 +- x/pot/types/msg.go | 2 - x/pot/types/params.go | 2 +- x/register/types/params.go | 7 +- x/sds/oz_price_test.go | 996 ++++++++++----------- 13 files changed, 695 insertions(+), 826 deletions(-) create mode 100644 app/genesis.go rename testutil/{stratos => }/app_helpers.go (97%) create mode 100644 testutil/bls_sign.go rename app/test_helpers.go => testutil/helpers.go (67%) rename testutil/{stratos => }/tx_helpers.go (98%) diff --git a/app/genesis.go b/app/genesis.go new file mode 100644 index 00000000..4e9cd1d6 --- /dev/null +++ b/app/genesis.go @@ -0,0 +1,11 @@ +package app + +import ( + "cosmossdk.io/simapp" + "github.com/cosmos/cosmos-sdk/codec" +) + +// NewDefaultGenesisState generates the default state for the application. +func NewDefaultGenesisState(cdc codec.JSONCodec) simapp.GenesisState { + return ModuleBasics.DefaultGenesis(cdc) +} diff --git a/testutil/stratos/app_helpers.go b/testutil/app_helpers.go similarity index 97% rename from testutil/stratos/app_helpers.go rename to testutil/app_helpers.go index 3259c6ab..acbda57f 100644 --- a/testutil/stratos/app_helpers.go +++ b/testutil/app_helpers.go @@ -1,4 +1,4 @@ -package stratos +package testutil import ( "time" diff --git a/testutil/bls_sign.go b/testutil/bls_sign.go new file mode 100644 index 00000000..0b767c3e --- /dev/null +++ b/testutil/bls_sign.go @@ -0,0 +1,43 @@ +package testutil + +import ( + "fmt" + + "github.com/stratosnet/stratos-chain/crypto" + "github.com/stratosnet/stratos-chain/crypto/bls" + pottypes "github.com/stratosnet/stratos-chain/x/pot/types" +) + +// SignVolumeReport Use ed25519 private key of meta nodes to sign +func SignVolumeReport(volumeReportMsg *pottypes.MsgVolumeReport, privKeys ...[]byte) (*pottypes.MsgVolumeReport, error) { + if len(privKeys) == 0 { + return nil, fmt.Errorf("No private keys, failed to sign. ") + } + + signBytes := volumeReportMsg.GetBLSSignBytes() + signBytesHash := crypto.Keccak256(signBytes) + + var blsSignatures = make([][]byte, len(privKeys)) + var blsPrivKeys = make([][]byte, len(privKeys)) + var blsPubKeys = make([][]byte, len(privKeys)) + var err error + + for i, privKey := range privKeys { + blsPrivKeys[i], blsPubKeys[i], err = bls.NewKeyPairFromBytes(privKey) + if err != nil { + return nil, err + } + } + + for i, blsPrivKey := range blsPrivKeys { + blsSignatures[i], err = bls.Sign(signBytesHash, blsPrivKey) + if err != nil { + return nil, err + } + } + + finalBlsSignature, err := bls.AggregateSignatures(blsSignatures...) + signature := pottypes.NewBLSSignatureInfo(blsPubKeys, finalBlsSignature, signBytesHash) + volumeReportMsg.BLSSignature = signature + return volumeReportMsg, nil +} diff --git a/app/test_helpers.go b/testutil/helpers.go similarity index 67% rename from app/test_helpers.go rename to testutil/helpers.go index e58191c8..6bb47cfe 100644 --- a/app/test_helpers.go +++ b/testutil/helpers.go @@ -1,4 +1,4 @@ -package app +package testutil import ( "encoding/json" @@ -16,6 +16,7 @@ import ( sdkmath "cosmossdk.io/math" "cosmossdk.io/simapp" simappparams "cosmossdk.io/simapp/params" + "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/client/flags" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" @@ -27,7 +28,7 @@ import ( banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - stratostestutil "github.com/stratosnet/stratos-chain/testutil/stratos" + stratosapp "github.com/stratosnet/stratos-chain/app" stratos "github.com/stratosnet/stratos-chain/types" evmtypes "github.com/stratosnet/stratos-chain/x/evm/types" pottypes "github.com/stratosnet/stratos-chain/x/pot/types" @@ -43,8 +44,8 @@ func MakeTestEncodingConfig() simappparams.EncodingConfig { encodingConfig := simappparams.MakeTestEncodingConfig() std.RegisterLegacyAminoCodec(encodingConfig.Amino) std.RegisterInterfaces(encodingConfig.InterfaceRegistry) - ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino) - ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry) + stratosapp.ModuleBasics.RegisterLegacyAminoCodec(encodingConfig.Amino) + stratosapp.ModuleBasics.RegisterInterfaces(encodingConfig.InterfaceRegistry) return encodingConfig } @@ -53,15 +54,15 @@ func MakeTestEncodingConfig() simappparams.EncodingConfig { // of one consensus engine unit (10^6) in the default token of the simapp from first genesis // account. A Nop logger is set in SimApp. func SetupWithGenesisNodeSet(t *testing.T, - freshStart bool, valSet *tmtypes.ValidatorSet, metaNodes []registertypes.MetaNode, resourceNodes []registertypes.ResourceNode, genAccs []authtypes.GenesisAccount, chainId string, - balances ...banktypes.Balance) *StratosApp { + freshStart bool, + balances ...banktypes.Balance) *stratosapp.StratosApp { - app, genesisState := setup(true, 5) + app, genesisState := setup(chainId, true, 5) // set genesis accounts authGenesis := authtypes.NewGenesisState(authtypes.DefaultParams(), genAccs) genesisState[authtypes.ModuleName] = app.AppCodec().MustMarshalJSON(authGenesis) @@ -69,8 +70,7 @@ func SetupWithGenesisNodeSet(t *testing.T, validators := make([]stakingtypes.Validator, 0, len(valSet.Validators)) delegations := make([]stakingtypes.Delegation, 0, len(valSet.Validators)) - validatorBondedAmt := sdkmath.ZeroInt() - bondAmt := sdkmath.NewInt(1000000) + validatorBondAmt := sdkmath.NewInt(1000000) for _, val := range valSet.Validators { pk, err := cryptocodec.FromTmPubKeyInterface(val.PubKey) @@ -78,21 +78,24 @@ func SetupWithGenesisNodeSet(t *testing.T, pkAny, err := codectypes.NewAnyWithValue(pk) require.NoError(t, err) validator := stakingtypes.Validator{ - OperatorAddress: sdk.ValAddress(val.Address).String(), - ConsensusPubkey: pkAny, - Jailed: false, - Status: stakingtypes.Bonded, - Tokens: bondAmt, - DelegatorShares: sdkmath.LegacyOneDec(), - Description: stakingtypes.Description{}, - UnbondingHeight: int64(0), - UnbondingTime: time.Unix(0, 0).UTC(), - Commission: stakingtypes.NewCommission(sdkmath.LegacyZeroDec(), sdkmath.LegacyZeroDec(), sdkmath.LegacyZeroDec()), + OperatorAddress: sdk.ValAddress(val.Address).String(), + ConsensusPubkey: pkAny, + Jailed: false, + Status: stakingtypes.Bonded, + Tokens: validatorBondAmt, + DelegatorShares: sdkmath.LegacyOneDec(), + Description: stakingtypes.Description{}, + UnbondingHeight: int64(0), + UnbondingTime: time.Unix(0, 0).UTC(), + // 50% commission + Commission: stakingtypes.NewCommission( + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyNewDecWithPrec(5, 1), + sdkmath.LegacyZeroDec()), MinSelfDelegation: sdkmath.ZeroInt(), } validators = append(validators, validator) delegations = append(delegations, stakingtypes.NewDelegation(genAccs[0].GetAddress(), val.Address.Bytes(), sdkmath.LegacyOneDec())) - validatorBondedAmt = validatorBondedAmt.Add(bondAmt) } // set validators and delegations stakingGenesis := stakingtypes.NewGenesisState( @@ -107,50 +110,52 @@ func SetupWithGenesisNodeSet(t *testing.T, delegations) genesisState[stakingtypes.ModuleName] = app.AppCodec().MustMarshalJSON(stakingGenesis) + // add bonded amount to bonded pool module account + balances = append(balances, banktypes.Balance{ + Address: authtypes.NewModuleAddress(stakingtypes.BondedPoolName).String(), + Coins: sdk.Coins{sdk.NewCoin(stratos.Wei, validatorBondAmt)}, + }) + + // add bonded amount of resource nodes to module account + resNodeBondedAmt := sdkmath.ZeroInt() + for _, resNode := range resourceNodes { + resNodeBondedAmt = resNodeBondedAmt.Add(resNode.Tokens) + } + balances = append(balances, banktypes.Balance{ + Address: authtypes.NewModuleAddress(registertypes.ResourceNodeBondedPool).String(), + Coins: sdk.Coins{sdk.NewCoin(stratos.Wei, resNodeBondedAmt)}, + }) + + // add bonded amount of meta nodes to module account + metaNodeBondedAmt := sdkmath.ZeroInt() + for _, metaNode := range metaNodes { + metaNodeBondedAmt = metaNodeBondedAmt.Add(metaNode.Tokens) + } + balances = append(balances, banktypes.Balance{ + Address: authtypes.NewModuleAddress(registertypes.MetaNodeBondedPool).String(), + Coins: sdk.Coins{sdk.NewCoin(stratos.Wei, metaNodeBondedAmt)}, + }) + initRemainingOzoneLimit := sdkmath.ZeroInt() if !freshStart { - // add bonded amount to bonded pool module account - balances = append(balances, banktypes.Balance{ - Address: authtypes.NewModuleAddress(stakingtypes.BondedPoolName).String(), - Coins: sdk.Coins{sdk.NewCoin(stratos.Wei, validatorBondedAmt)}, - }) - - // add bonded amount of resource nodes to module account - resNodeBondedAmt := sdkmath.ZeroInt() - for _, resNode := range resourceNodes { - resNodeBondedAmt = resNodeBondedAmt.Add(resNode.Tokens) - } - balances = append(balances, banktypes.Balance{ - Address: authtypes.NewModuleAddress(registertypes.ResourceNodeBondedPool).String(), - Coins: sdk.Coins{sdk.NewCoin(stratos.Wei, resNodeBondedAmt)}, - }) - - // add bonded amount of meta nodes to module account - metaNodeBondedAmt := sdkmath.ZeroInt() - for _, metaNode := range metaNodes { - metaNodeBondedAmt = metaNodeBondedAmt.Add(metaNode.Tokens) - } - balances = append(balances, banktypes.Balance{ - Address: authtypes.NewModuleAddress(registertypes.MetaNodeBondedPool).String(), - Coins: sdk.Coins{sdk.NewCoin(stratos.Wei, metaNodeBondedAmt)}, - }) - - initRemainingOzoneLimit = resNodeBondedAmt.ToLegacyDec(). + initRemainingOzoneLimit = resNodeBondedAmt. + Add(metaNodeBondedAmt). + ToLegacyDec(). Quo(registertypes.DefaultDepositNozRate). TruncateInt() } + // update total supply totalSupply := sdk.NewCoins() for _, b := range balances { // add genesis acc tokens and delegated tokens to total supply - totalSupply = totalSupply.Add(b.Coins.Add(sdk.NewCoin(stratos.Wei, validatorBondedAmt))...) + totalSupply = totalSupply.Add(b.Coins...) } // update total supply bankGenesis := banktypes.NewGenesisState(banktypes.DefaultGenesisState().Params, balances, totalSupply, []banktypes.Metadata{}, []banktypes.SendEnabled{}) genesisState[banktypes.ModuleName] = app.AppCodec().MustMarshalJSON(bankGenesis) - //registerGenesis := registertypes.DefaultGenesisState() registerGenesis := registertypes.NewGenesisState( registertypes.DefaultParams(), resourceNodes, @@ -177,42 +182,43 @@ func SetupWithGenesisNodeSet(t *testing.T, // init chain will set the validator set and initialize the genesis accounts app.InitChain( abci.RequestInitChain{ + ChainId: chainId, Validators: []abci.ValidatorUpdate{}, - ConsensusParams: stratostestutil.DefaultConsensusParams, + ConsensusParams: DefaultConsensusParams, AppStateBytes: stateBytes, - ChainId: chainId, }, ) // commit genesis changes app.Commit() app.BeginBlock(abci.RequestBeginBlock{Header: tmproto.Header{ + ChainID: chainId, Height: app.LastBlockHeight() + 1, AppHash: app.LastCommitID().Hash, ValidatorsHash: valSet.Hash(), NextValidatorsHash: valSet.Hash(), - ChainID: chainId, }}) return app } -func setup(withGenesis bool, invCheckPeriod uint) (*StratosApp, simapp.GenesisState) { +func setup(chainID string, withGenesis bool, invCheckPeriod uint) (*stratosapp.StratosApp, simapp.GenesisState) { db := dbm.NewMemDB() - appOptions := make(simstestutil.AppOptionsMap, 0) - appOptions[flags.FlagHome] = DefaultNodeHome + appOptions := make(simstestutil.AppOptionsMap) + appOptions[flags.FlagHome] = stratosapp.DefaultNodeHome appOptions[server.FlagInvCheckPeriod] = invCheckPeriod - app := NewStratosApp(log.NewNopLogger(), db, nil, true, appOptions) + app := stratosapp.NewStratosApp(log.NewNopLogger(), db, nil, true, appOptions, baseapp.SetChainID(chainID)) if withGenesis { - return app, app.DefaultGenesis() + //return app, stratosapp.ModuleBasics.DefaultGenesis(app.AppCodec()) + return app, stratosapp.NewDefaultGenesisState(app.AppCodec()) } return app, simapp.GenesisState{} } // CheckBalance checks the balance of an account. -func CheckBalance(t *testing.T, app *StratosApp, addr sdk.AccAddress, balances sdk.Coins) { +func CheckBalance(t *testing.T, app *stratosapp.StratosApp, addr sdk.AccAddress, balances sdk.Coins) { ctxCheck := app.BaseApp.NewContext(true, tmproto.Header{}) require.True(t, balances.IsEqual(app.GetBankKeeper().GetAllBalances(ctxCheck, addr))) } diff --git a/testutil/stratos/tx_helpers.go b/testutil/tx_helpers.go similarity index 98% rename from testutil/stratos/tx_helpers.go rename to testutil/tx_helpers.go index 8f1481e1..60d88359 100644 --- a/testutil/stratos/tx_helpers.go +++ b/testutil/tx_helpers.go @@ -1,4 +1,4 @@ -package stratos +package testutil import ( "math/rand" @@ -78,7 +78,7 @@ func SignCheckDeliverWithFee( chainID string, accNums, accSeqs []uint64, expSimPass, expPass bool, priv ...cryptotypes.PrivKey, ) (sdk.GasInfo, *sdk.Result, error) { - feeAmount := sdkmath.NewInt(int64(config.DefaultMinGasPrices)).Mul(sdkmath.NewInt(DefaultGenTxGas)) + feeAmount := sdkmath.NewInt(int64(config.DefaultMinGasPrices)).MulRaw(DefaultGenTxGas) tx, err := simstestutil.GenSignedMockTx( rand.New(rand.NewSource(time.Now().UnixNano())), diff --git a/x/evm/simulation/operations.go b/x/evm/simulation/operations.go index 3c294ef0..831530ba 100644 --- a/x/evm/simulation/operations.go +++ b/x/evm/simulation/operations.go @@ -28,6 +28,7 @@ import ( "github.com/stratosnet/stratos-chain/encoding" "github.com/stratosnet/stratos-chain/tests" + stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/evm/keeper" "github.com/stratosnet/stratos-chain/x/evm/types" ) @@ -122,7 +123,7 @@ func SimulateEthCreateContract(ak types.AccountKeeper, k *keeper.Keeper) simtype from := common.BytesToAddress(simAccount.Address) nonce := k.GetNonce(ctx, from) - ctorArgs, err := types.ERC20Contract.ABI.Pack("", from, sdkmath.NewInt(1000).Mul(sdkmath.NewInt(1e18)).BigInt()) + ctorArgs, err := types.ERC20Contract.ABI.Pack("", from, sdkmath.NewInt(1000).MulRaw(stratos.StosToWei).BigInt()) if err != nil { return simtypes.NoOpMsg(types.ModuleName, types.TypeMsgEthereumTx, "can not pack owner and supply"), nil, err } diff --git a/x/pot/app_benchmark_test.go b/x/pot/app_benchmark_test.go index c3d5a515..bc6a5546 100644 --- a/x/pot/app_benchmark_test.go +++ b/x/pot/app_benchmark_test.go @@ -12,6 +12,7 @@ import ( tmtypes "github.com/cometbft/cometbft/types" sdkmath "cosmossdk.io/math" + cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" @@ -20,10 +21,7 @@ import ( banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/stratosnet/stratos-chain/app" - "github.com/stratosnet/stratos-chain/crypto" - "github.com/stratosnet/stratos-chain/crypto/bls" - stratostestutil "github.com/stratosnet/stratos-chain/testutil/stratos" + stratostestutil "github.com/stratosnet/stratos-chain/testutil" stratos "github.com/stratosnet/stratos-chain/types" "github.com/stratosnet/stratos-chain/x/pot/types" registertypes "github.com/stratosnet/stratos-chain/x/register/types" @@ -31,9 +29,22 @@ import ( ) const ( - testchainID = "testchain" + testchainID = "testchain" + funderKeyName = "funder" + reNodeCount = 1e5 +) + +var ( + keysMap = make(map[string]KeyInfo, 0) // map[bech32 P2PAddr]KeyInfo + keysList = make([]KeyInfo, 0) + accounts = make([]authtypes.GenesisAccount, 0) + balances = make([]banktypes.Balance, 0) - reNodeCount = 1e5 + accInitBalance = sdkmath.NewInt(100).MulRaw(stratos.StosToWei) + initFoundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Wei, sdkmath.NewInt(4e7).MulRaw(stratos.StosToWei))) + nodeInitDeposit = sdkmath.NewInt(1 * stratos.StosToWei) + prepayAmt = sdk.NewCoins(stratos.NewCoin(sdkmath.NewInt(20).MulRaw(stratos.StosToWei))) + valP2PAddrBech32 string ) type KeyInfo struct { @@ -71,32 +82,17 @@ func NewKeyInfo() KeyInfo { } } -var ( - keysMap = make(map[string]KeyInfo, 0) // map[bech32 P2PAddr]KeyInfo - keysList = make([]KeyInfo, 0) - accounts = make([]authtypes.GenesisAccount, 0) - balances = make([]banktypes.Balance, 0) - - accInitBalance = sdkmath.NewInt(100).Mul(sdkmath.NewInt(stratos.StosToWei)) - initFoundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Wei, sdkmath.NewInt(40000000000000000).MulRaw(stratos.GweiToWei))) - - nodeInitDeposit = sdkmath.NewInt(1 * stratos.StosToWei) - prepayAmt = sdk.NewCoins(stratos.NewCoin(sdkmath.NewInt(20).Mul(sdkmath.NewInt(stratos.StosToWei)))) - valP2PAddrBech32 string -) - func TestVolumeReportBenchmark(t *testing.T) { /********************* initialize mock app *********************/ setupKeysAndAccBalance(reNodeCount) - createValidatorMsg, metaNodes, resourceNodes := setupNodesBenchmark() - - validators := make([]*tmtypes.Validator, 0) - valSet := tmtypes.NewValidatorSet(validators) + metaNodes, resourceNodes := setupNodesBenchmark() - //fmt.Println("##### accounts: ", accounts) - //fmt.Println("!!!!! balances: ", balances) + // create validator set with single validator + consPubKey, err := cryptocodec.ToTmPubKeyInterface(keysList[0].P2PPubKey()) + validator := tmtypes.NewValidator(consPubKey, 1) + valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) - stApp := app.SetupWithGenesisNodeSet(t, false, valSet, metaNodes, resourceNodes, accounts, testchainID, balances...) + stApp := stratostestutil.SetupWithGenesisNodeSet(t, valSet, metaNodes, resourceNodes, accounts, testchainID, false, balances...) accountKeeper := stApp.GetAccountKeeper() /********************* foundation account deposit *********************/ @@ -104,27 +100,16 @@ func TestVolumeReportBenchmark(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx := stApp.BaseApp.NewContext(true, header) - foundationDepositMsg := types.NewMsgFoundationDeposit(initFoundationDeposit, keysMap["foundationDepositorKey"].OwnerAddress()) - txGen := app.MakeTestEncodingConfig().TxConfig + foundationDepositMsg := types.NewMsgFoundationDeposit(initFoundationDeposit, keysMap[funderKeyName].OwnerAddress()) + txGen := stratostestutil.MakeTestEncodingConfig().TxConfig - senderAcc := accountKeeper.GetAccount(ctx, keysMap["foundationDepositorKey"].OwnerAddress()) + senderAcc := accountKeeper.GetAccount(ctx, keysMap[funderKeyName].OwnerAddress()) accNum := senderAcc.GetAccountNumber() accSeq := senderAcc.GetSequence() - _, _, err := stratostestutil.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, testchainID, []uint64{accNum}, []uint64{accSeq}, true, true, keysMap["foundationDepositorKey"].secp256k1PrivKey) + _, _, err = stratostestutil.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, testchainID, []uint64{accNum}, []uint64{accSeq}, true, true, keysMap[funderKeyName].secp256k1PrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(types.FoundationAccount) - app.CheckBalance(t, stApp, foundationAccountAddr, initFoundationDeposit) - - /********************* create validator with 50% commission *********************/ - header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: testchainID} - stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) - ctx = stApp.BaseApp.NewContext(false, header) - - senderAcc = accountKeeper.GetAccount(ctx, keysMap[valP2PAddrBech32].OwnerAddress()) - accNum = senderAcc.GetAccountNumber() - accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliverWithFee(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, testchainID, []uint64{accNum}, []uint64{accSeq}, true, true, keysMap[valP2PAddrBech32].secp256k1PrivKey) - require.NoError(t, err) + stratostestutil.CheckBalance(t, stApp, foundationAccountAddr, initFoundationDeposit) /********************* prepay *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: testchainID} @@ -187,41 +172,25 @@ func setupKeysAndAccBalance(resNodeCnt int) { } - foundationDepositorKey := NewKeyInfo() - foundationDepositorAcc := &authtypes.BaseAccount{Address: foundationDepositorKey.OwnerAddress().String()} - feeAmt, _ := sdkmath.NewIntFromString("50000000000000000000") - foundationDepositorBalance := banktypes.Balance{ - Address: foundationDepositorKey.OwnerAddress().String(), - Coins: append(initFoundationDeposit, sdk.NewCoin(stratos.Wei, feeAmt)), + funderKey := NewKeyInfo() + funderAcc := &authtypes.BaseAccount{Address: funderKey.OwnerAddress().String()} + feeAmt := sdkmath.NewInt(50).MulRaw(stratos.StosToWei) + funderBalance := banktypes.Balance{ + Address: funderKey.OwnerAddress().String(), + Coins: initFoundationDeposit.Add(sdk.NewCoin(stratos.Wei, feeAmt)), } - keysMap["foundationDepositorKey"] = foundationDepositorKey - accounts = append(accounts, foundationDepositorAcc) - balances = append(balances, foundationDepositorBalance) + keysMap[funderKeyName] = funderKey + accounts = append(accounts, funderAcc) + balances = append(balances, funderBalance) } -func setupNodesBenchmark() (createValidatorMsg *stakingtypes.MsgCreateValidator, metaNodes []registertypes.MetaNode, resourceNodes []registertypes.ResourceNode) { +func setupNodesBenchmark() (metaNodes []registertypes.MetaNode, resourceNodes []registertypes.ResourceNode) { time, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") nodeType := registertypes.STORAGE for idx, keyInfo := range keysList { - if idx == 0 { - // first key is validator key - commission := stakingtypes.NewCommissionRates( - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDec(0), - ) - description := stakingtypes.NewDescription("foo_moniker", testchainID, "", "", "") - createValidatorMsg, _ = stakingtypes.NewMsgCreateValidator( - sdk.ValAddress(keyInfo.OwnerAddress()), - keyInfo.P2PPubKey(), - stratos.NewCoin(nodeInitDeposit), - description, - commission, - sdkmath.OneInt(), - ) - } else if idx < 4 { + if 0 < idx && idx < 4 { // 1~3 keys are metaNode keys metaNode, _ := registertypes.NewMetaNode( keyInfo.P2PAddress(), @@ -275,35 +244,14 @@ func setupMsgVolumeReportBenchmark(t *testing.T, epoch sdkmath.Int, metaNodes [] reportReference := "report for epoch " + epoch.String() reporterOwner := reporterKey.OwnerAddress() - signature := types.BLSSignatureInfo{} - volumeReportMsg := types.NewMsgVolumeReport(nodesVolume, reporter, epoch, reportReference, reporterOwner, signature) - - signBytes := volumeReportMsg.GetBLSSignBytes() - signBytesHash := crypto.Keccak256(signBytes) - - // set blsSignature - blsPrivKey1, blsPubKey1, err := bls.NewKeyPairFromBytes(keysMap[metaNodes[0].NetworkAddress].ed25519PrivKey.Bytes()) + volumeReportMsg := types.NewMsgVolumeReport(nodesVolume, reporter, epoch, reportReference, reporterOwner) + volumeReportMsg, err := stratostestutil.SignVolumeReport( + volumeReportMsg, + keysMap[metaNodes[0].NetworkAddress].ed25519PrivKey.Bytes(), + keysMap[metaNodes[1].NetworkAddress].ed25519PrivKey.Bytes(), + keysMap[metaNodes[2].NetworkAddress].ed25519PrivKey.Bytes(), + ) require.NoError(t, err) - blsPrivKey2, blsPubKey2, err := bls.NewKeyPairFromBytes(keysMap[metaNodes[1].NetworkAddress].ed25519PrivKey.Bytes()) - require.NoError(t, err) - blsPrivKey3, blsPubKey3, err := bls.NewKeyPairFromBytes(keysMap[metaNodes[2].NetworkAddress].ed25519PrivKey.Bytes()) - require.NoError(t, err) - - blsSignature1, err := bls.Sign(signBytesHash, blsPrivKey1) - require.NoError(t, err) - blsSignature2, err := bls.Sign(signBytesHash, blsPrivKey2) - require.NoError(t, err) - blsSignature3, err := bls.Sign(signBytesHash, blsPrivKey3) - require.NoError(t, err) - finalBlsSignature, err := bls.AggregateSignatures(blsSignature1, blsSignature2, blsSignature3) - require.NoError(t, err) - - pubKeys := make([][]byte, 0) - pubKeys = append(pubKeys, blsPubKey1, blsPubKey2, blsPubKey3) - - signature = types.NewBLSSignatureInfo(pubKeys, finalBlsSignature, signBytesHash) - - volumeReportMsg.BLSSignature = signature return volumeReportMsg } diff --git a/x/pot/app_test.go b/x/pot/app_test.go index 1c8f8f87..6070c34e 100644 --- a/x/pot/app_test.go +++ b/x/pot/app_test.go @@ -12,6 +12,7 @@ import ( tmtypes "github.com/cometbft/cometbft/types" sdkmath "cosmossdk.io/math" + cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" sdk "github.com/cosmos/cosmos-sdk/types" @@ -22,10 +23,7 @@ import ( distrkeeper "github.com/cosmos/cosmos-sdk/x/distribution/keeper" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - "github.com/stratosnet/stratos-chain/app" - "github.com/stratosnet/stratos-chain/crypto" - "github.com/stratosnet/stratos-chain/crypto/bls" - stratostestutil "github.com/stratosnet/stratos-chain/testutil/stratos" + stratostestutil "github.com/stratosnet/stratos-chain/testutil" stratos "github.com/stratosnet/stratos-chain/types" potKeeper "github.com/stratosnet/stratos-chain/x/pot/keeper" "github.com/stratosnet/stratos-chain/x/pot/types" @@ -46,21 +44,21 @@ var ( paramSpecificMinedReward = sdk.NewCoins(stratos.NewCoinInt64(160000000000)) paramSpecificEpoch = sdkmath.NewInt(10) - resNodeSlashingNOZAmt1 = sdkmath.NewInt(1000000000000000000) - resNodeSlashingEffectiveTokenAmt1 = sdkmath.NewInt(1000000000000000000) + resNodeSlashingNOZAmt1 = sdkmath.NewInt(1e18) + resNodeSlashingEffectiveTokenAmt1 = sdkmath.NewInt(1).MulRaw(stratos.StosToWei) resourceNodeVolume1 = sdkmath.NewInt(50000) resourceNodeVolume2 = sdkmath.NewInt(30000) resourceNodeVolume3 = sdkmath.NewInt(20000) - prepayAmount = sdk.NewCoins(stratos.NewCoin(sdkmath.NewInt(20).Mul(sdkmath.NewInt(stratos.StosToWei)))) + prepayAmount = sdk.NewCoins(stratos.NewCoin(sdkmath.NewInt(20).MulRaw(stratos.StosToWei))) foundationDepositorPrivKey = secp256k1.GenPrivKey() foundationDepositorAccAddr = sdk.AccAddress(foundationDepositorPrivKey.PubKey().Address()) - foundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Wei, sdkmath.NewInt(40000000000000000).MulRaw(stratos.GweiToWei))) + foundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Wei, sdkmath.NewInt(4e7).MulRaw(stratos.StosToWei))) nodeInitialDeposit = sdkmath.NewInt(1 * stratos.StosToWei) - initBalance = sdkmath.NewInt(100).Mul(sdkmath.NewInt(stratos.StosToWei)) + initBalance = sdkmath.NewInt(100).MulRaw(stratos.StosToWei) // wallet private keys resOwnerPrivKey1 = secp256k1.GenPrivKey() @@ -134,36 +132,16 @@ func setupMsgVolumeReport(t *testing.T, newEpoch int64) *types.MsgVolumeReport { reportReference := "report for epoch " + epoch.String() reporterOwner := metaOwner1 - signature := types.BLSSignatureInfo{} - volumeReportMsg := types.NewMsgVolumeReport(nodesVolume, reporter, epoch, reportReference, reporterOwner, signature) + volumeReportMsg := types.NewMsgVolumeReport(nodesVolume, reporter, epoch, reportReference, reporterOwner) - signBytes := volumeReportMsg.GetSignBytes() - signBytesHash := crypto.Keccak256(signBytes) - - // set blsSignature - blsPrivKey1, blsPubKey1, err := bls.NewKeyPairFromBytes(metaNodeP2PPrivKey1.Bytes()) - require.NoError(t, err) - blsPrivKey2, blsPubKey2, err := bls.NewKeyPairFromBytes(metaNodeP2PPrivKey2.Bytes()) - require.NoError(t, err) - blsPrivKey3, blsPubKey3, err := bls.NewKeyPairFromBytes(metaNodeP2PPrivKey3.Bytes()) - require.NoError(t, err) - - blsSignature1, err := bls.Sign(signBytesHash, blsPrivKey1) - require.NoError(t, err) - blsSignature2, err := bls.Sign(signBytesHash, blsPrivKey2) - require.NoError(t, err) - blsSignature3, err := bls.Sign(signBytesHash, blsPrivKey3) - require.NoError(t, err) - finalBlsSignature, err := bls.AggregateSignatures(blsSignature1, blsSignature2, blsSignature3) + volumeReportMsg, err := stratostestutil.SignVolumeReport( + volumeReportMsg, + metaNodeP2PPrivKey1.Bytes(), + metaNodeP2PPrivKey2.Bytes(), + metaNodeP2PPrivKey3.Bytes(), + ) require.NoError(t, err) - pubKeys := make([][]byte, 0) - pubKeys = append(pubKeys, blsPubKey1, blsPubKey2, blsPubKey3) - - signature = types.NewBLSSignatureInfo(pubKeys, finalBlsSignature, signBytesHash) - - volumeReportMsg.BLSSignature = signature - return volumeReportMsg } @@ -195,15 +173,17 @@ func isNeedStop(ctx sdk.Context, k potKeeper.Keeper, epoch sdkmath.Int, minedTok func TestPotVolumeReportMsgs(t *testing.T) { /********************* initialize mock app *********************/ - //mApp, k, stakingKeeper, bankKeeper, supplyKeeper, registerKeeper := getMockApp(t) accs, balances := setupAccounts() - //stApp := app.SetupWithGenesisAccounts(accs, chainID, balances...) - validators := make([]*tmtypes.Validator, 0) - valSet := tmtypes.NewValidatorSet(validators) + + // create validator set with single validator + consPubKey, err := cryptocodec.ToTmPubKeyInterface(valConsPubk1) + validator := tmtypes.NewValidator(consPubKey, 1) + valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) + metaNodes := setupAllMetaNodes() resourceNodes := setupAllResourceNodes() - stApp := app.SetupWithGenesisNodeSet(t, false, valSet, metaNodes, resourceNodes, accs, chainID, balances...) + stApp := stratostestutil.SetupWithGenesisNodeSet(t, valSet, metaNodes, resourceNodes, accs, chainID, false, balances...) accountKeeper := stApp.GetAccountKeeper() bankKeeper := stApp.GetBankKeeper() registerKeeper := stApp.GetRegisterKeeper() @@ -216,34 +196,15 @@ func TestPotVolumeReportMsgs(t *testing.T) { ctx := stApp.BaseApp.NewContext(true, header) foundationDepositMsg := types.NewMsgFoundationDeposit(foundationDeposit, foundationDepositorAccAddr) - txGen := app.MakeTestEncodingConfig().TxConfig + txGen := stratostestutil.MakeTestEncodingConfig().TxConfig senderAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) accNum := senderAcc.GetAccountNumber() accSeq := senderAcc.GetSequence() - _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(types.FoundationAccount) - app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) - - /********************* create validator with 50% commission *********************/ - header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} - stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) - ctx = stApp.BaseApp.NewContext(false, header) - - commission := stakingtypes.NewCommissionRates( - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDec(0), - ) - description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(nodeInitialDeposit), description, commission, sdkmath.OneInt()) - - senderAcc = accountKeeper.GetAccount(ctx, valOpAccAddr1) - accNum = senderAcc.GetAccountNumber() - accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) - require.NoError(t, err) + stratostestutil.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) /********************* prepay *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -261,10 +222,6 @@ func TestPotVolumeReportMsgs(t *testing.T) { stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - validator := checkValidator(t, stApp, valOpValAddr1, true) - require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdkmath.IntEq(t, nodeInitialDeposit, validator.BondedTokens())) - /********************** loop sending volume report **********************/ var i int64 var slashingAmtSetup sdkmath.Int @@ -273,33 +230,33 @@ func TestPotVolumeReportMsgs(t *testing.T) { for { /********************* test slashing msg when i==2 *********************/ - if i == 2 { - t.Log("********************************* Deliver Slashing Tx START ********************************************") - - totalConsumedNoz := resNodeSlashingNOZAmt1.ToLegacyDec() - slashingAmtCheck := potKeeper.GetTrafficReward(ctx, totalConsumedNoz) - - slashingMsg := setupSlashingMsg() - /********************* deliver tx *********************/ - - senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) - accNum = senderAcc.GetAccountNumber() - accSeq = senderAcc.GetSequence() - - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) - require.NoError(t, err) - /********************* commit & check result *********************/ - header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} - stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) - ctx = stApp.BaseApp.NewContext(true, header) - - slashingAmtSetup = registerKeeper.GetSlashing(ctx, resOwner1) - - t.Log("slashingAmtSetup = " + slashingAmtSetup.String()) - require.Equal(t, slashingAmtSetup, slashingAmtCheck.TruncateInt()) - - t.Log("********************************* Deliver Slashing Tx END ********************************************") - } + //if i == 2 { + // t.Log("********************************* Deliver Slashing Tx START ********************************************") + // + // totalConsumedNoz := resNodeSlashingNOZAmt1.ToLegacyDec() + // slashingAmtCheck := potKeeper.GetTrafficReward(ctx, totalConsumedNoz) + // + // slashingMsg := setupSlashingMsg() + // /********************* deliver tx *********************/ + // + // senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + // accNum = senderAcc.GetAccountNumber() + // accSeq = senderAcc.GetSequence() + // + // _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) + // require.NoError(t, err) + // /********************* commit & check result *********************/ + // header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} + // stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) + // ctx = stApp.BaseApp.NewContext(true, header) + // + // slashingAmtSetup = registerKeeper.GetSlashing(ctx, resOwner1) + // + // t.Log("slashingAmtSetup = " + slashingAmtSetup.String()) + // require.Equal(t, slashingAmtSetup, slashingAmtCheck.TruncateInt()) + // + // t.Log("********************************* Deliver Slashing Tx END ********************************************") + //} t.Log("*****************************************************************************") t.Log("*") @@ -548,14 +505,6 @@ func checkResult(t *testing.T, ctx sdk.Context, t.Log("totalRewardPoolBalance = " + totalRewardPoolBalance.String()) } -func checkValidator(t *testing.T, app *app.StratosApp, addr sdk.ValAddress, expFound bool) stakingtypes.Validator { - ctxCheck := app.BaseApp.NewContext(true, tmproto.Header{}) - validator, found := app.GetStakingKeeper().GetValidator(ctxCheck, addr) - - require.Equal(t, expFound, found) - return validator -} - func TestMain(m *testing.M) { config := stratos.GetConfig() config.Seal() @@ -578,7 +527,6 @@ func setupAccounts() ([]authtypes.GenesisAccount, []banktypes.Balance) { //************************** setup validator delegators' accounts ************************** valOwnerAcc1 := &authtypes.BaseAccount{Address: valOpAccAddr1.String()} ////************************** setup indexing nodes' accounts ************************** - //idxNodeAcc1 := &authtypes.BaseAccount{Address: idxNodeAddr1.String()} foundationDepositorAcc := &authtypes.BaseAccount{Address: foundationDepositorAccAddr.String()} accs := []authtypes.GenesisAccount{ @@ -586,10 +534,9 @@ func setupAccounts() ([]authtypes.GenesisAccount, []banktypes.Balance) { idxOwnerAcc1, idxOwnerAcc2, idxOwnerAcc3, valOwnerAcc1, foundationDepositorAcc, - //idxNodeAcc1, } - feeAmt, _ := sdkmath.NewIntFromString("50000000000000000000") + feeAmt := sdkmath.NewInt(50).MulRaw(stratos.StosToWei) balances := []banktypes.Balance{ { @@ -628,10 +575,6 @@ func setupAccounts() ([]authtypes.GenesisAccount, []banktypes.Balance) { Address: valOpAccAddr1.String(), Coins: sdk.Coins{stratos.NewCoin(initBalance)}, }, - //{ - // Address: idxNodeAddr1.String(), - // Coins: sdk.Coins{stratos.NewCoin(sdkmath.ZeroInt())}, - //}, { Address: foundationDepositorAccAddr.String(), Coins: foundationDeposit.Add(sdk.NewCoin(stratos.Wei, feeAmt)), @@ -642,13 +585,13 @@ func setupAccounts() ([]authtypes.GenesisAccount, []banktypes.Balance) { func setupAllResourceNodes() []registertypes.ResourceNode { - time, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") + createTime, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") nodeType := registertypes.STORAGE - resourceNode1, _ := registertypes.NewResourceNode(resNodeP2PAddr1, resNodeP2PPubKey1, resOwner1, registertypes.NewDescription("resourceNode1", "", "", "", ""), nodeType, time) - resourceNode2, _ := registertypes.NewResourceNode(resNodeP2PAddr2, resNodeP2PPubKey2, resOwner2, registertypes.NewDescription("resourceNode2", "", "", "", ""), nodeType, time) - resourceNode3, _ := registertypes.NewResourceNode(resNodeP2PAddr3, resNodeP2PPubKey3, resOwner3, registertypes.NewDescription("resourceNode3", "", "", "", ""), nodeType, time) - resourceNode4, _ := registertypes.NewResourceNode(resNodeP2PAddr4, resNodeP2PPubKey4, resOwner4, registertypes.NewDescription("resourceNode4", "", "", "", ""), nodeType, time) - resourceNode5, _ := registertypes.NewResourceNode(resNodeP2PAddr5, resNodeP2PPubKey5, resOwner5, registertypes.NewDescription("resourceNode5", "", "", "", ""), nodeType, time) + resourceNode1, _ := registertypes.NewResourceNode(resNodeP2PAddr1, resNodeP2PPubKey1, resOwner1, registertypes.NewDescription("resourceNode1", "", "", "", ""), nodeType, createTime) + resourceNode2, _ := registertypes.NewResourceNode(resNodeP2PAddr2, resNodeP2PPubKey2, resOwner2, registertypes.NewDescription("resourceNode2", "", "", "", ""), nodeType, createTime) + resourceNode3, _ := registertypes.NewResourceNode(resNodeP2PAddr3, resNodeP2PPubKey3, resOwner3, registertypes.NewDescription("resourceNode3", "", "", "", ""), nodeType, createTime) + resourceNode4, _ := registertypes.NewResourceNode(resNodeP2PAddr4, resNodeP2PPubKey4, resOwner4, registertypes.NewDescription("resourceNode4", "", "", "", ""), nodeType, createTime) + resourceNode5, _ := registertypes.NewResourceNode(resNodeP2PAddr5, resNodeP2PPubKey5, resOwner5, registertypes.NewDescription("resourceNode5", "", "", "", ""), nodeType, createTime) resourceNode1 = resourceNode1.AddToken(nodeInitialDeposit) resourceNode2 = resourceNode2.AddToken(nodeInitialDeposit) @@ -686,10 +629,10 @@ func setupAllResourceNodes() []registertypes.ResourceNode { func setupAllMetaNodes() []registertypes.MetaNode { var indexingNodes []registertypes.MetaNode - time, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") - indexingNode1, _ := registertypes.NewMetaNode(metaNodeP2PAddr1, metaNodeP2PPubKey1, metaOwner1, metaBeneficiary1, registertypes.NewDescription("indexingNode1", "", "", "", ""), time) - indexingNode2, _ := registertypes.NewMetaNode(metaNodeP2PAddr2, metaNodeP2PPubKey2, metaOwner2, metaBeneficiary2, registertypes.NewDescription("indexingNode2", "", "", "", ""), time) - indexingNode3, _ := registertypes.NewMetaNode(metaNodeP2PAddr3, metaNodeP2PPubKey3, metaOwner3, metaBeneficiary3, registertypes.NewDescription("indexingNode3", "", "", "", ""), time) + createTime, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") + indexingNode1, _ := registertypes.NewMetaNode(metaNodeP2PAddr1, metaNodeP2PPubKey1, metaOwner1, metaBeneficiary1, registertypes.NewDescription("indexingNode1", "", "", "", ""), createTime) + indexingNode2, _ := registertypes.NewMetaNode(metaNodeP2PAddr2, metaNodeP2PPubKey2, metaOwner2, metaBeneficiary2, registertypes.NewDescription("indexingNode2", "", "", "", ""), createTime) + indexingNode3, _ := registertypes.NewMetaNode(metaNodeP2PAddr3, metaNodeP2PPubKey3, metaOwner3, metaBeneficiary3, registertypes.NewDescription("indexingNode3", "", "", "", ""), createTime) indexingNode1 = indexingNode1.AddToken(nodeInitialDeposit) indexingNode2 = indexingNode2.AddToken(nodeInitialDeposit) diff --git a/x/pot/client/cli/tx.go b/x/pot/client/cli/tx.go index 11b55dde..934e0d72 100644 --- a/x/pot/client/cli/tx.go +++ b/x/pot/client/cli/tx.go @@ -209,8 +209,10 @@ func createVolumeReportMsg(clientCtx client.Context, fs *flag.FlagSet) (*types.M epoch, reportReference, reporterOwner, - signature, ) + + msg.BLSSignature = signature + return msg, nil } diff --git a/x/pot/types/msg.go b/x/pot/types/msg.go index 9c8a706e..7d006def 100644 --- a/x/pot/types/msg.go +++ b/x/pot/types/msg.go @@ -31,7 +31,6 @@ func NewMsgVolumeReport( epoch sdkmath.Int, reportReference string, reporterOwner sdk.AccAddress, - blsSignature BLSSignatureInfo, ) *MsgVolumeReport { return &MsgVolumeReport{ WalletVolumes: walletVolumes, @@ -39,7 +38,6 @@ func NewMsgVolumeReport( Epoch: epoch, ReportReference: reportReference, ReporterOwner: reporterOwner.String(), - BLSSignature: blsSignature, } } diff --git a/x/pot/types/params.go b/x/pot/types/params.go index aee3f19c..b790a54a 100644 --- a/x/pot/types/params.go +++ b/x/pot/types/params.go @@ -19,7 +19,7 @@ const ( var ( DefaultCommunityTax = sdkmath.LegacyNewDecWithPrec(2, 2) // 2% DefaultInitialTotalSupply = sdk.NewCoin(DefaultBondDenom, - sdkmath.NewInt(1e8).Mul(sdkmath.NewInt(stratos.StosToWei)), + sdkmath.NewInt(1e8).MulRaw(stratos.StosToWei), ) //100,000,000 stos ) diff --git a/x/register/types/params.go b/x/register/types/params.go index a1dba7eb..8c92d36b 100644 --- a/x/register/types/params.go +++ b/x/register/types/params.go @@ -8,12 +8,13 @@ import ( sdkmath "cosmossdk.io/math" sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/stratosnet/stratos-chain/types" + + stratos "github.com/stratosnet/stratos-chain/types" ) // Default parameter namespace const ( - DefaultBondDenom = types.Wei + DefaultBondDenom = stratos.Wei DefaultMaxEntries = uint32(16) DefaultResourceNodeRegEnabled = true ) @@ -25,7 +26,7 @@ var ( DefaultVotingPeriod = 7 * 24 * time.Hour // expiration time of registration voting - by default 7 days DefaultDepositNozRate = sdkmath.LegacyNewDec(1e6) // 0.001gwei -> 1noz = 1000000wei -> 1noz DefaultRemainingNozLimit = sdkmath.ZeroInt() - DefaultResourceNodeMinDeposit = sdk.NewCoin(DefaultBondDenom, sdkmath.NewInt(1e18)) + DefaultResourceNodeMinDeposit = sdk.NewCoin(DefaultBondDenom, sdkmath.NewInt(stratos.StosToWei)) ) // NewParams creates a new Params object diff --git a/x/sds/oz_price_test.go b/x/sds/oz_price_test.go index 413ab803..1c3990d7 100644 --- a/x/sds/oz_price_test.go +++ b/x/sds/oz_price_test.go @@ -14,6 +14,7 @@ import ( tmtypes "github.com/cometbft/cometbft/types" sdkmath "cosmossdk.io/math" + cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec" "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types" @@ -25,7 +26,7 @@ import ( stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" "github.com/stratosnet/stratos-chain/app" - stratostestutil "github.com/stratosnet/stratos-chain/testutil/stratos" + stratostestutil "github.com/stratosnet/stratos-chain/testutil" stratos "github.com/stratosnet/stratos-chain/types" potKeeper "github.com/stratosnet/stratos-chain/x/pot/keeper" pottypes "github.com/stratosnet/stratos-chain/x/pot/types" @@ -41,110 +42,89 @@ Test scenarios: */ const ( - chainID = "testchain_1-1" - stos2wei = stratos.StosToWei - StosToWeiSuffix = "000000000000000000" // 1 Stos = 1e18 wei - rewardDenom = stratos.Wei - depositNozRateStr = "100000" + chainID = "testchain_1-1" ) var ( - depositNozRateInt, _ = sdkmath.NewIntFromString(depositNozRateStr) + depositNozRateInt = sdkmath.NewInt(1e5) paramSpecificMinedReward = sdk.NewCoins(stratos.NewCoinInt64(160000000000)) paramSpecificEpoch = sdkmath.NewInt(10) - resNodeSlashingNOZAmt1 = sdkmath.NewInt(100000000000) - resNodeSlashingEffectiveTokenAmt1 = sdkmath.NewInt(1000000000000000000) + resNodeSlashingNOZAmt1 = sdkmath.NewInt(1e11) + resNodeSlashingEffectiveTokenAmt1 = sdkmath.NewInt(1).MulRaw(stratos.StosToWei) resourceNodeVolume1 = sdkmath.NewInt(537500000000) resourceNodeVolume2 = sdkmath.NewInt(200000000000) resourceNodeVolume3 = sdkmath.NewInt(200000000000) - depositForSendingTx, _ = sdkmath.NewIntFromString("100000000000000000000000000000") + prepayAmount = sdk.NewCoins(stratos.NewCoin(sdkmath.NewInt(20).MulRaw(stratos.StosToWei))) + + depositForSendingTx = sdkmath.NewInt(1000).MulRaw(stratos.StosToWei) totalUnissuedPrepayVal = sdkmath.ZeroInt() totalUnissuedPrepay = stratos.NewCoin(totalUnissuedPrepayVal) foundationDepositorPrivKey = secp256k1.GenPrivKey() foundationDepositorAccAddr = sdk.AccAddress(foundationDepositorPrivKey.PubKey().Address()) - foundationDeposit = sdk.NewCoins(sdk.NewCoin(rewardDenom, sdkmath.NewInt(40000000000000000))) - - resOwnerPrivKey1 = secp256k1.GenPrivKey() - resOwnerPrivKey2 = secp256k1.GenPrivKey() - resOwnerPrivKey3 = secp256k1.GenPrivKey() - resOwnerPrivKey4 = secp256k1.GenPrivKey() - resOwnerPrivKey5 = secp256k1.GenPrivKey() - idxOwnerPrivKey1 = secp256k1.GenPrivKey() - idxOwnerPrivKey2 = secp256k1.GenPrivKey() - idxOwnerPrivKey3 = secp256k1.GenPrivKey() - - resOwner1 = sdk.AccAddress(resOwnerPrivKey1.PubKey().Address()) - resOwner2 = sdk.AccAddress(resOwnerPrivKey2.PubKey().Address()) - resOwner3 = sdk.AccAddress(resOwnerPrivKey3.PubKey().Address()) - resOwner4 = sdk.AccAddress(resOwnerPrivKey4.PubKey().Address()) - resOwner5 = sdk.AccAddress(resOwnerPrivKey5.PubKey().Address()) - idxOwner1 = sdk.AccAddress(idxOwnerPrivKey1.PubKey().Address()) - idxOwner2 = sdk.AccAddress(idxOwnerPrivKey2.PubKey().Address()) - idxOwner3 = sdk.AccAddress(idxOwnerPrivKey3.PubKey().Address()) - - resNodeInitialDepositForMultipleNodes, _ = sdkmath.NewIntFromString("3" + StosToWeiSuffix) - //resNodeInitialDepositForMultipleNodes = sdkmath.NewInt(3 * stos2wei) - - resNodePubKey1 = ed25519.GenPrivKey().PubKey() - resNodeAddr1 = sdk.AccAddress(resNodePubKey1.Address()) - resNodeNetworkId1 = stratos.SdsAddress(resNodePubKey1.Address()) - resNodeInitialDeposit1, _ = sdkmath.NewIntFromString("3" + StosToWeiSuffix) - //resNodeInitialDeposit1 = sdkmath.NewInt(3 * stos2wei) - - resNodePubKey2 = ed25519.GenPrivKey().PubKey() - resNodeAddr2 = sdk.AccAddress(resNodePubKey2.Address()) - resNodeNetworkId2 = stratos.SdsAddress(resNodePubKey2.Address()) - resNodeInitialDeposit2, _ = sdkmath.NewIntFromString("3" + StosToWeiSuffix) - //resNodeInitialDeposit2 = sdkmath.NewInt(3 * stos2wei) - - resNodePubKey3 = ed25519.GenPrivKey().PubKey() - resNodeAddr3 = sdk.AccAddress(resNodePubKey3.Address()) - resNodeNetworkId3 = stratos.SdsAddress(resNodePubKey3.Address()) - resNodeInitialDeposit3, _ = sdkmath.NewIntFromString("3" + StosToWeiSuffix) - //resNodeInitialDeposit3 = sdkmath.NewInt(3 * stos2wei) - - resNodePubKey4 = ed25519.GenPrivKey().PubKey() - resNodeAddr4 = sdk.AccAddress(resNodePubKey4.Address()) - resNodeNetworkId4 = stratos.SdsAddress(resNodePubKey4.Address()) - resNodeInitialDeposit4 = sdkmath.NewInt(3 * stos2wei) - - resNodePubKey5 = ed25519.GenPrivKey().PubKey() - resNodeAddr5 = sdk.AccAddress(resNodePubKey5.Address()) - resNodeNetworkId5 = stratos.SdsAddress(resNodePubKey5.Address()) - resNodeInitialDeposit5 = sdkmath.NewInt(3 * stos2wei) - - idxNodePrivKey1 = ed25519.GenPrivKey() - idxNodePubKey1 = idxNodePrivKey1.PubKey() - idxNodeAddr1 = sdk.AccAddress(idxNodePubKey1.Address()) - idxNodeNetworkId1 = stratos.SdsAddress(idxNodePubKey1.Address()) - idxNodeInitialDeposit1, _ = sdkmath.NewIntFromString("5" + StosToWeiSuffix) - //idxNodeInitialDeposit1 = sdkmath.NewInt(5 * stos2wei) - - idxNodePubKey2 = ed25519.GenPrivKey().PubKey() - idxNodeAddr2 = sdk.AccAddress(idxNodePubKey2.Address()) - idxNodeNetworkId2 = stratos.SdsAddress(idxNodePubKey2.Address()) - idxNodeInitialDeposit2, _ = sdkmath.NewIntFromString("5" + StosToWeiSuffix) - //idxNodeInitialDeposit2 = sdkmath.NewInt(5 * stos2wei) - - idxNodePubKey3 = ed25519.GenPrivKey().PubKey() - idxNodeAddr3 = sdk.AccAddress(idxNodePubKey3.Address()) - idxNodeNetworkId3 = stratos.SdsAddress(idxNodePubKey3.Address()) - idxNodeInitialDeposit3, _ = sdkmath.NewIntFromString("5" + StosToWeiSuffix) - //idxNodeInitialDeposit3 = sdkmath.NewInt(5 * stos2wei) + foundationDeposit = sdk.NewCoins(sdk.NewCoin(stratos.Wei, sdkmath.NewInt(4e7).MulRaw(stratos.StosToWei))) + + valInitialStake = sdkmath.NewInt(15).MulRaw(stratos.StosToWei) + resNodeInitialDeposit = sdkmath.NewInt(3).MulRaw(stratos.StosToWei) + metaNodeInitialDeposit = sdkmath.NewInt(1000).MulRaw(stratos.StosToWei) + + // wallet private keys + resOwnerPrivKey1 = secp256k1.GenPrivKey() + resOwnerPrivKey2 = secp256k1.GenPrivKey() + resOwnerPrivKey3 = secp256k1.GenPrivKey() + resOwnerPrivKey4 = secp256k1.GenPrivKey() + resOwnerPrivKey5 = secp256k1.GenPrivKey() + metaOwnerPrivKey1 = secp256k1.GenPrivKey() + metaOwnerPrivKey2 = secp256k1.GenPrivKey() + metaOwnerPrivKey3 = secp256k1.GenPrivKey() + + // wallet addresses + resOwner1 = sdk.AccAddress(resOwnerPrivKey1.PubKey().Address()) + resOwner2 = sdk.AccAddress(resOwnerPrivKey2.PubKey().Address()) + resOwner3 = sdk.AccAddress(resOwnerPrivKey3.PubKey().Address()) + resOwner4 = sdk.AccAddress(resOwnerPrivKey4.PubKey().Address()) + resOwner5 = sdk.AccAddress(resOwnerPrivKey5.PubKey().Address()) + metaOwner1 = sdk.AccAddress(metaOwnerPrivKey1.PubKey().Address()) + metaOwner2 = sdk.AccAddress(metaOwnerPrivKey2.PubKey().Address()) + metaOwner3 = sdk.AccAddress(metaOwnerPrivKey3.PubKey().Address()) + + // P2P public key of resource nodes + resNodeP2PPubKey1 = ed25519.GenPrivKey().PubKey() + resNodeP2PPubKey2 = ed25519.GenPrivKey().PubKey() + resNodeP2PPubKey3 = ed25519.GenPrivKey().PubKey() + resNodeP2PPubKey4 = ed25519.GenPrivKey().PubKey() + resNodeP2PPubKey5 = ed25519.GenPrivKey().PubKey() + // P2P address of resource nodes + resNodeP2PAddr1 = stratos.SdsAddress(resNodeP2PPubKey1.Address()) + resNodeP2PAddr2 = stratos.SdsAddress(resNodeP2PPubKey2.Address()) + resNodeP2PAddr3 = stratos.SdsAddress(resNodeP2PPubKey3.Address()) + resNodeP2PAddr4 = stratos.SdsAddress(resNodeP2PPubKey4.Address()) + resNodeP2PAddr5 = stratos.SdsAddress(resNodeP2PPubKey5.Address()) + + // P2P private key of meta nodes + metaNodeP2PPrivKey1 = ed25519.GenPrivKey() + metaNodeP2PPrivKey2 = ed25519.GenPrivKey() + metaNodeP2PPrivKey3 = ed25519.GenPrivKey() + // P2P public key of meta nodes + metaNodeP2PPubKey1 = metaNodeP2PPrivKey1.PubKey() + metaNodeP2PPubKey2 = metaNodeP2PPrivKey2.PubKey() + metaNodeP2PPubKey3 = metaNodeP2PPrivKey3.PubKey() + // P2P address of meta nodes + metaNodeP2PAddr1 = stratos.SdsAddress(metaNodeP2PPubKey1.Address()) + metaNodeP2PAddr2 = stratos.SdsAddress(metaNodeP2PPubKey2.Address()) + metaNodeP2PAddr3 = stratos.SdsAddress(metaNodeP2PPubKey3.Address()) valOpPrivKey1 = secp256k1.GenPrivKey() valOpPubKey1 = valOpPrivKey1.PubKey() valOpValAddr1 = sdk.ValAddress(valOpPubKey1.Address()) valOpAccAddr1 = sdk.AccAddress(valOpPubKey1.Address()) - valConsPrivKey1 = ed25519.GenPrivKey() - valConsPubk1 = valConsPrivKey1.PubKey() - valInitialStake, _ = sdkmath.NewIntFromString("15" + StosToWeiSuffix) + valConsPrivKey1 = ed25519.GenPrivKey() + valConsPubk1 = valConsPrivKey1.PubKey() ) type NozPriceFactors struct { @@ -188,11 +168,11 @@ func TestPriceCurve(t *testing.T) { if i > 50 && rand.Intn(5) >= 3 { tempPrepaySign = -1 } - depositDeltaChange, _ := sdkmath.NewIntFromString(strconv.Itoa(depositChangePerm[i]) + StosToWeiSuffix) - unissuedPrepayDeltaChange, _ := sdkmath.NewIntFromString(strconv.Itoa(prepayChangePerm[i]) + StosToWeiSuffix) + depositDeltaChange := sdkmath.NewInt(int64(depositChangePerm[i])).MulRaw(stratos.StosToWei) + unissuedPrepayDeltaChange := sdkmath.NewInt(int64(prepayChangePerm[i])).MulRaw(stratos.StosToWei) change := &PriceChangeEvent{ - depositDelta: depositDeltaChange.Mul(sdkmath.NewInt(int64(tempDepositSign))), - unissuedPrepayDelta: unissuedPrepayDeltaChange.Mul(sdkmath.NewInt(int64(tempPrepaySign))), + depositDelta: depositDeltaChange.MulRaw(int64(tempDepositSign)), + unissuedPrepayDelta: unissuedPrepayDeltaChange.MulRaw(int64(tempPrepaySign)), } t.Logf("\ndepositDeltaOri: %d, unissuedPrepayDeltaOri: %d\n", depositChangePerm[i], prepayChangePerm[i]) t.Logf("\ndepositDelta: %v, unissuedPrepayDelta: %v\n", change.depositDelta.String(), change.unissuedPrepayDelta.String()) @@ -202,16 +182,18 @@ func TestPriceCurve(t *testing.T) { func TestOzPriceChange(t *testing.T) { /********************* initialize mock app *********************/ - //mApp, k, stakingKeeper, bankKeeper, supplyKeeper, registerKeeper := getMockApp(t) accs, balances := setupAccounts() - //stApp := app.SetupWithGenesisAccounts(accs, chainID, balances...) - validators := make([]*tmtypes.Validator, 0) - valSet := tmtypes.NewValidatorSet(validators) + + // create validator set with single validator + consPubKey, err := cryptocodec.ToTmPubKeyInterface(valConsPubk1) + validator := tmtypes.NewValidator(consPubKey, 1) + valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) + metaNodes := setupAllMetaNodes() //resourceNodes := setupAllResourceNodes() resourceNodes := make([]registertypes.ResourceNode, 0) - stApp := app.SetupWithGenesisNodeSet(t, true, valSet, metaNodes, resourceNodes, accs, chainID, balances...) + stApp := stratostestutil.SetupWithGenesisNodeSet(t, valSet, metaNodes, resourceNodes, accs, chainID, false, balances...) accountKeeper := stApp.GetAccountKeeper() bankKeeper := stApp.GetBankKeeper() @@ -225,45 +207,21 @@ func TestOzPriceChange(t *testing.T) { ctx := stApp.BaseApp.NewContext(true, header) foundationDepositMsg := pottypes.NewMsgFoundationDeposit(foundationDeposit, foundationDepositorAccAddr) - txGen := app.MakeTestEncodingConfig().TxConfig + txGen := stratostestutil.MakeTestEncodingConfig().TxConfig - foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) - accNum := foundationDepositorAcc.GetAccountNumber() - accSeq := foundationDepositorAcc.GetSequence() - _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) + senderAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) + accNum := senderAcc.GetAccountNumber() + accSeq := senderAcc.GetSequence() + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) - app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) - - /********************* create validator with 50% commission *********************/ - header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} - stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) - ctx = stApp.BaseApp.NewContext(true, header) - - commission := stakingtypes.NewCommissionRates( - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDec(0), - ) - description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) - - valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) - accNum = valOpAcc1.GetAccountNumber() - accSeq = valOpAcc1.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) - require.NoError(t, err) - app.CheckBalance(t, stApp, valOpAccAddr1, nil) + stratostestutil.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) /********************** commit **********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - validator := checkValidator(t, stApp, valOpValAddr1, true) - require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) - _, nozSupply := potKeeper.NozSupply(ctx) St, Pt, Lt := registerKeeper.GetCurrNozPriceParams(ctx) nozPriceFactorsSeq0, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, NozPriceFactors{ @@ -281,13 +239,14 @@ func TestOzPriceChange(t *testing.T) { prepayMsg := setupPrepayMsg() /********************* deliver tx *********************/ - resOwnerAcc := accountKeeper.GetAccount(ctx, resOwner1) - ownerAccNum := resOwnerAcc.GetAccountNumber() - ownerAccSeq := resOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, resOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey1) require.NoError(t, err) - /********************* commit & check result *********************/ + t.Log("********************************* Deliver Prepay Tx END ********************************************\n\n...\n[NEXT TEST CASE]") + /********************* new height & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) @@ -295,19 +254,19 @@ func TestOzPriceChange(t *testing.T) { nozPriceFactorsSeq1, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq0) require.True(t, nozPricePercentage.GT(sdkmath.LegacyZeroDec()), "noz price should increase after PREPAY") require.True(t, ozoneLimitPercentage.LT(sdkmath.LegacyZeroDec()), "OzLimit should decrease after PREPAY") - t.Log("********************************* Deliver Prepay Tx END ********************************************\n\n...\n[NEXT TEST CASE]") t.Log("********************************* Deliver CreateResourceNode Tx START ********************************************") createResourceNodeMsg := setupMsgCreateResourceNode1() /********************* deliver tx *********************/ - resOwnerAcc = accountKeeper.GetAccount(ctx, resOwner1) - ownerAccNum = resOwnerAcc.GetAccountNumber() - ownerAccSeq = resOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, resOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey1) require.NoError(t, err) - /********************* commit & check result *********************/ + t.Log("********************************* Deliver CreateResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") + /********************* new height & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) @@ -315,17 +274,31 @@ func TestOzPriceChange(t *testing.T) { nozPriceFactorsSeq2, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, nozPriceFactorsSeq1) require.True(t, nozPricePercentage.Equal(sdkmath.LegacyZeroDec()), "noz price shouldn't change after CreateResourceNode") require.True(t, ozoneLimitPercentage.Equal(sdkmath.LegacyZeroDec()), "OzLimit shouldn't change after CreateResourceNode") - t.Log("********************************* Deliver CreateResourceNode Tx END ********************************************\n\n...\n[NEXT TEST CASE]") - t.Log("********************************* Deliver UnsuspendResourceNode Tx (Slashing) START ********************************************") - unsuspendMsg := setupUnsuspendMsg() + t.Log("********************************* Deliver UpdateEffectiveDeposit Tx START ********************************************") + updateEffectiveDepositMsg := setupMsgUpdateEffectiveDeposit1() /********************* deliver tx *********************/ - idxOwnerAcc := accountKeeper.GetAccount(ctx, idxOwner1) - ownerAccNum = idxOwnerAcc.GetAccountNumber() - ownerAccSeq = idxOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{updateEffectiveDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) + require.NoError(t, err) + t.Log("********************************* Deliver UpdateEffectiveDeposit Tx END ********************************************\n\n...\n[NEXT TEST CASE]") + /********************* new height & check result *********************/ + header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} + stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) + ctx = stApp.BaseApp.NewContext(true, header) + + t.Log("********************************* Deliver UnsuspendResourceNode Tx (Slashing) START ********************************************") + unsuspendMsg := setupUnsuspendMsg() + + /********************* deliver tx *********************/ + senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -349,11 +322,11 @@ func TestOzPriceChange(t *testing.T) { slashingMsg := setupSlashingMsg() /********************* deliver tx *********************/ - idxOwnerAcc = accountKeeper.GetAccount(ctx, idxOwner1) - ownerAccNum = idxOwnerAcc.GetAccountNumber() - ownerAccSeq = idxOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -379,7 +352,7 @@ func TestOzPriceChange(t *testing.T) { t.Log("********************************* Deliver VolumeReport Tx START ********************************************") /********************* prepare tx data *********************/ - volumeReportMsg := setupMsgVolumeReport(1) + volumeReportMsg := setupMsgVolumeReport(t, 1) lastTotalMinedToken := potKeeper.GetTotalMinedTokens(ctx) t.Log("last committed TotalMinedTokens = " + lastTotalMinedToken.String()) @@ -437,17 +410,17 @@ func TestOzPriceChange(t *testing.T) { t.Log(" miningReward = " + rewardDetailMap[resOwner5.String()].RewardFromMiningPool.String()) t.Log(" trafficReward = " + rewardDetailMap[resOwner5.String()].RewardFromTrafficPool.String()) - t.Log("indexing_wallet1: address = " + idxOwner1.String()) - t.Log(" miningReward = " + rewardDetailMap[idxOwner1.String()].RewardFromMiningPool.String()) - t.Log(" trafficReward = " + rewardDetailMap[idxOwner1.String()].RewardFromTrafficPool.String()) + t.Log("meta_wallet1: address = " + metaOwner1.String()) + t.Log(" miningReward = " + rewardDetailMap[metaOwner1.String()].RewardFromMiningPool.String()) + t.Log(" trafficReward = " + rewardDetailMap[metaOwner1.String()].RewardFromTrafficPool.String()) - t.Log("indexing_wallet2: address = " + idxOwner2.String()) - t.Log(" miningReward = " + rewardDetailMap[idxOwner2.String()].RewardFromMiningPool.String()) - t.Log(" trafficReward = " + rewardDetailMap[idxOwner2.String()].RewardFromTrafficPool.String()) + t.Log("meta_wallet2: address = " + metaOwner2.String()) + t.Log(" miningReward = " + rewardDetailMap[metaOwner2.String()].RewardFromMiningPool.String()) + t.Log(" trafficReward = " + rewardDetailMap[metaOwner2.String()].RewardFromTrafficPool.String()) - t.Log("indexing_wallet3: address = " + idxOwner3.String()) - t.Log(" miningReward = " + rewardDetailMap[idxOwner3.String()].RewardFromMiningPool.String()) - t.Log(" trafficReward = " + rewardDetailMap[idxOwner3.String()].RewardFromTrafficPool.String()) + t.Log("meta_wallet3: address = " + metaOwner3.String()) + t.Log(" miningReward = " + rewardDetailMap[metaOwner3.String()].RewardFromMiningPool.String()) + t.Log(" trafficReward = " + rewardDetailMap[metaOwner3.String()].RewardFromTrafficPool.String()) t.Log("---------------------------") /********************* record data before delivering tx *********************/ @@ -457,15 +430,15 @@ func TestOzPriceChange(t *testing.T) { lastMatureTotalOfResNode1 := potKeeper.GetMatureTotalReward(ctx, resOwner1) /********************* deliver tx *********************/ - idxOwnerAcc = accountKeeper.GetAccount(ctx, idxOwner1) - ownerAccNum = idxOwnerAcc.GetAccountNumber() - ownerAccSeq = idxOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() feePoolAccAddr := accountKeeper.GetModuleAddress(authtypes.FeeCollectorName) require.NotNil(t, feePoolAccAddr) feeCollectorToFeePoolAtBeginBlock := bankKeeper.GetBalance(ctx, feePoolAccAddr, potKeeper.BondDenom(ctx)) - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) stApp.EndBlock(abci.RequestEndBlock{Height: header.Height}) @@ -502,11 +475,11 @@ func TestOzPriceChange(t *testing.T) { createResourceNodeMsg2 := setupMsgCreateResourceNode2() /********************* deliver tx *********************/ - resOwnerAcc = accountKeeper.GetAccount(ctx, resOwner2) - ownerAccNum = resOwnerAcc.GetAccountNumber() - ownerAccSeq = resOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, resOwner2) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg2}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey2) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg2}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey2) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -522,11 +495,11 @@ func TestOzPriceChange(t *testing.T) { createResourceNodeMsg3 := setupMsgCreateResourceNode3() /********************* deliver tx *********************/ - resOwnerAcc = accountKeeper.GetAccount(ctx, resOwner3) - ownerAccNum = resOwnerAcc.GetAccountNumber() - ownerAccSeq = resOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, resOwner3) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg3}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey3) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg3}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey3) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -542,11 +515,11 @@ func TestOzPriceChange(t *testing.T) { createResourceNodeMsg4 := setupMsgCreateResourceNode4() /********************* deliver tx *********************/ - resOwnerAcc = accountKeeper.GetAccount(ctx, resOwner4) - ownerAccNum = resOwnerAcc.GetAccountNumber() - ownerAccSeq = resOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, resOwner4) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg4}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey4) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg4}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey4) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -562,11 +535,11 @@ func TestOzPriceChange(t *testing.T) { createResourceNodeMsg5 := setupMsgCreateResourceNode5() /********************* deliver tx *********************/ - resOwnerAcc = accountKeeper.GetAccount(ctx, resOwner5) - ownerAccNum = resOwnerAcc.GetAccountNumber() - ownerAccSeq = resOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, resOwner5) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg5}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey5) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg5}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey5) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -581,58 +554,59 @@ func TestOzPriceChange(t *testing.T) { } // initialize data of volume report -func setupMsgVolumeReport(newEpoch int64) *pottypes.MsgVolumeReport { +func setupMsgVolumeReport(t *testing.T, newEpoch int64) *pottypes.MsgVolumeReport { volume1 := pottypes.NewSingleWalletVolume(resOwner1, resourceNodeVolume1) volume2 := pottypes.NewSingleWalletVolume(resOwner2, resourceNodeVolume2) volume3 := pottypes.NewSingleWalletVolume(resOwner3, resourceNodeVolume3) nodesVolume := []pottypes.SingleWalletVolume{volume1, volume2, volume3} - reporter := idxNodeNetworkId1 + reporter := metaNodeP2PAddr1 epoch := sdkmath.NewInt(newEpoch) reportReference := "report for epoch " + epoch.String() - reporterOwner := idxOwner1 - - pubKeys := make([][]byte, 1) - for i := range pubKeys { - pubKeys[i] = make([]byte, 1) - } + reporterOwner := metaOwner1 - signature := pottypes.NewBLSSignatureInfo(pubKeys, []byte("signature"), []byte("txData")) + volumeReportMsg := pottypes.NewMsgVolumeReport(nodesVolume, reporter, epoch, reportReference, reporterOwner) - volumeReportMsg := pottypes.NewMsgVolumeReport(nodesVolume, reporter, epoch, reportReference, reporterOwner, signature) + volumeReportMsg, err := stratostestutil.SignVolumeReport( + volumeReportMsg, + metaNodeP2PPrivKey1.Bytes(), + metaNodeP2PPrivKey2.Bytes(), + metaNodeP2PPrivKey3.Bytes(), + ) + require.NoError(t, err) return volumeReportMsg } func setupSlashingMsg() *pottypes.MsgSlashingResourceNode { reporters := make([]stratos.SdsAddress, 0) - reporters = append(reporters, idxNodeNetworkId1) + reporters = append(reporters, metaNodeP2PAddr1) reportOwner := make([]sdk.AccAddress, 0) - reportOwner = append(reportOwner, idxOwner1) - slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeNetworkId1, resOwner1, resNodeSlashingNOZAmt1, true) + reportOwner = append(reportOwner, metaOwner1) + slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeP2PAddr1, resOwner1, resNodeSlashingNOZAmt1, true) return slashingMsg } func setupSuspendMsgByIndex(i int, resNodeNetworkId stratos.SdsAddress, resNodePubKey cryptotypes.PubKey, resOwner sdk.AccAddress) *pottypes.MsgSlashingResourceNode { reporters := make([]stratos.SdsAddress, 0) - reporters = append(reporters, idxNodeNetworkId1) + reporters = append(reporters, metaNodeP2PAddr1) reportOwner := make([]sdk.AccAddress, 0) - reportOwner = append(reportOwner, idxOwner1) + reportOwner = append(reportOwner, metaOwner1) slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeNetworkId, resOwner, resNodeSlashingNOZAmt1, true) return slashingMsg } func setupUnsuspendMsg() *pottypes.MsgSlashingResourceNode { reporters := make([]stratos.SdsAddress, 0) - reporters = append(reporters, idxNodeNetworkId1) + reporters = append(reporters, metaNodeP2PAddr1) reportOwner := make([]sdk.AccAddress, 0) - reportOwner = append(reportOwner, idxOwner1) - slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeNetworkId1, resOwner1, sdkmath.ZeroInt(), false) + reportOwner = append(reportOwner, metaOwner1) + slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeP2PAddr1, resOwner1, sdkmath.ZeroInt(), false) return slashingMsg } func setupPrepayMsg() *sdstypes.MsgPrepay { sender := resOwner1 - amount, _ := sdkmath.NewIntFromString("1" + StosToWeiSuffix) + amount := sdkmath.NewInt(1).MulRaw(stratos.StosToWei) coin := sdk.NewCoin(stratos.Wei, amount) prepayMsg := sdstypes.NewMsgPrepay(sender.String(), sender.String(), sdk.NewCoins(coin)) return prepayMsg @@ -640,7 +614,7 @@ func setupPrepayMsg() *sdstypes.MsgPrepay { func setupPrepayMsgWithResOwner(resOwner sdk.AccAddress) *sdstypes.MsgPrepay { sender := resOwner - amount, _ := sdkmath.NewIntFromString("3" + StosToWeiSuffix) + amount := sdkmath.NewInt(3).MulRaw(stratos.StosToWei) coin := sdk.NewCoin(stratos.Wei, amount) prepayMsg := sdstypes.NewMsgPrepay(sender.String(), sender.String(), sdk.NewCoins(coin)) return prepayMsg @@ -652,47 +626,65 @@ func setupMsgRemoveResourceNode(i int, resNodeNetworkId stratos.SdsAddress, resO } func setupMsgCreateResourceNode(i int, resNodeNetworkId stratos.SdsAddress, resNodePubKey cryptotypes.PubKey, resOwner sdk.AccAddress) *registertypes.MsgCreateResourceNode { nodeType := uint32(registertypes.STORAGE) - createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeNetworkId, resNodePubKey, sdk.NewCoin(stratos.Wei, resNodeInitialDepositForMultipleNodes), resOwner, registertypes.NewDescription("sds://resourceNode"+strconv.Itoa(i+1), "", "", "", ""), nodeType) + createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeNetworkId, resNodePubKey, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit), resOwner, registertypes.NewDescription("sds://resourceNode"+strconv.Itoa(i+1), "", "", "", ""), nodeType) return createResourceNodeMsg } -func setupUnsuspendMsgByIndex(i int, resNodeNetworkId stratos.SdsAddress, resNodePubKey cryptotypes.PubKey, resOwner sdk.AccAddress) *pottypes.MsgSlashingResourceNode { +func setupUnsuspendMsgByIndex(i int, resNodeNetworkId stratos.SdsAddress, resOwner sdk.AccAddress) *pottypes.MsgSlashingResourceNode { reporters := make([]stratos.SdsAddress, 0) - reporters = append(reporters, idxNodeNetworkId1) + reporters = append(reporters, metaNodeP2PAddr1) reportOwner := make([]sdk.AccAddress, 0) - reportOwner = append(reportOwner, idxOwner1) + reportOwner = append(reportOwner, metaOwner1) slashingMsg := pottypes.NewMsgSlashingResourceNode(reporters, reportOwner, resNodeNetworkId, resOwner, sdkmath.ZeroInt(), false) return slashingMsg } func setupMsgCreateResourceNode1() *registertypes.MsgCreateResourceNode { nodeType := uint32(registertypes.STORAGE) - createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeNetworkId1, resNodePubKey1, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit1), resOwner1, registertypes.NewDescription("sds://resourceNode1", "", "", "", ""), nodeType) + createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeP2PAddr1, resNodeP2PPubKey1, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit), resOwner1, registertypes.NewDescription("sds://resourceNode1", "", "", "", ""), nodeType) return createResourceNodeMsg } func setupMsgCreateResourceNode2() *registertypes.MsgCreateResourceNode { nodeType := uint32(registertypes.STORAGE) - createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeNetworkId2, resNodePubKey2, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit2), resOwner2, registertypes.NewDescription("sds://resourceNode2", "", "", "", ""), nodeType) + createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeP2PAddr2, resNodeP2PPubKey2, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit), resOwner2, registertypes.NewDescription("sds://resourceNode2", "", "", "", ""), nodeType) return createResourceNodeMsg } func setupMsgCreateResourceNode3() *registertypes.MsgCreateResourceNode { nodeType := uint32(registertypes.STORAGE) - createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeNetworkId3, resNodePubKey3, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit3), resOwner3, registertypes.NewDescription("sds://resourceNode3", "", "", "", ""), nodeType) + createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeP2PAddr3, resNodeP2PPubKey3, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit), resOwner3, registertypes.NewDescription("sds://resourceNode3", "", "", "", ""), nodeType) return createResourceNodeMsg } func setupMsgCreateResourceNode4() *registertypes.MsgCreateResourceNode { nodeType := uint32(registertypes.STORAGE) - createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeNetworkId4, resNodePubKey4, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit4), resOwner4, registertypes.NewDescription("sds://resourceNode4", "", "", "", ""), nodeType) + createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeP2PAddr4, resNodeP2PPubKey4, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit), resOwner4, registertypes.NewDescription("sds://resourceNode4", "", "", "", ""), nodeType) return createResourceNodeMsg } func setupMsgCreateResourceNode5() *registertypes.MsgCreateResourceNode { nodeType := uint32(registertypes.STORAGE) - createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeNetworkId5, resNodePubKey5, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit5), resOwner5, registertypes.NewDescription("sds://resourceNode5", "", "", "", ""), nodeType) + createResourceNodeMsg, _ := registertypes.NewMsgCreateResourceNode(resNodeP2PAddr5, resNodeP2PPubKey5, sdk.NewCoin(stratos.Wei, resNodeInitialDeposit), resOwner5, registertypes.NewDescription("sds://resourceNode5", "", "", "", ""), nodeType) return createResourceNodeMsg } +func setupMsgUpdateEffectiveDeposit1() *registertypes.MsgUpdateEffectiveDeposit { + reporters := make([]stratos.SdsAddress, 0) + reporters = append(reporters, metaNodeP2PAddr1) + reporterOwner := make([]sdk.AccAddress, 0) + reporterOwner = append(reporterOwner, metaOwner1) + msg := registertypes.NewMsgUpdateEffectiveDeposit(reporters, reporterOwner, resNodeP2PAddr1, resNodeInitialDeposit) + return msg +} + +func setupMsgUpdateEffectiveDeposit(resNodeP2PAddr stratos.SdsAddress) *registertypes.MsgUpdateEffectiveDeposit { + reporters := make([]stratos.SdsAddress, 0) + reporters = append(reporters, metaNodeP2PAddr1) + reporterOwner := make([]sdk.AccAddress, 0) + reporterOwner = append(reporterOwner, metaOwner1) + msg := registertypes.NewMsgUpdateEffectiveDeposit(reporters, reporterOwner, resNodeP2PAddr, resNodeInitialDeposit) + return msg +} + func printCurrNozPrice(t *testing.T, ctx sdk.Context, potKeeper potKeeper.Keeper, registerKeeper registerKeeper.Keeper, nozPriceFactorsBefore NozPriceFactors) (NozPriceFactors, sdkmath.LegacyDec, sdkmath.LegacyDec) { nozPriceFactorsAfter := NozPriceFactors{} nozPriceFactorsAfter.InitialTotalDeposit = registerKeeper.GetInitialGenesisDepositTotal(ctx) @@ -720,13 +712,13 @@ func printCurrNozPrice(t *testing.T, ctx sdk.Context, potKeeper potKeeper.Keeper ozoneLimitPercentage := ozoneLimitDelta.ToLegacyDec().Quo(nozPriceFactorsBefore.OzoneLimit.ToLegacyDec()).MulInt(sdkmath.NewInt(100)) t.Log("===>>>>>>>>>>>>>> Current noz Price ===>>>>>>>>>>>>>>") - t.Log("NOzonePrice: " + nozPriceFactorsAfter.NOzonePrice.String() + "(delta: " + nozPriceDelta.String() + ", " + nozPricePercentage.String()[:5] + "%)") - t.Log("InitialTotalDeposit: " + nozPriceFactorsAfter.InitialTotalDeposit.String() + "(delta: " + initialTotalDepositDelta.String() + ")") - t.Log("EffectiveTotalDeposit: " + nozPriceFactorsAfter.EffectiveTotalDeposit.String() + "(delta: " + effectiveTotalDepositDelta.String() + ")") - t.Log("TotalUnissuedPrepay: " + nozPriceFactorsAfter.TotalUnissuedPrepay.String() + "(delta: " + totalUnissuedPrepayDelta.String() + ")") - t.Log("InitialTotalDeposit+TotalUnissuedPrepay: " + nozPriceFactorsAfter.DepositAndPrepay.String() + "(delta: " + depositAndPrepayDelta.String() + ")") - t.Log("OzoneLimit: " + nozPriceFactorsAfter.OzoneLimit.String() + "(delta: " + ozoneLimitDelta.String() + ", " + ozoneLimitPercentage.String()[:5] + "%)") - t.Log("NozSupply: " + nozPriceFactorsAfter.NozSupply.String() + "(delta: " + nozSupplyDelta.String() + ")") + t.Log("NOzonePrice: " + nozPriceFactorsAfter.NOzonePrice.String() + "(delta: " + nozPriceDelta.String() + ", " + nozPricePercentage.String()[:5] + "%)") + t.Log("InitialTotalDeposit: " + nozPriceFactorsAfter.InitialTotalDeposit.String() + "(delta: " + initialTotalDepositDelta.String() + ")") + t.Log("EffectiveTotalDeposit: " + nozPriceFactorsAfter.EffectiveTotalDeposit.String() + "(delta: " + effectiveTotalDepositDelta.String() + ")") + t.Log("TotalUnissuedPrepay: " + nozPriceFactorsAfter.TotalUnissuedPrepay.String() + "(delta: " + totalUnissuedPrepayDelta.String() + ")") + t.Log("InitialTotalDeposit+TotalUnissuedPrepay: " + nozPriceFactorsAfter.DepositAndPrepay.String() + "(delta: " + depositAndPrepayDelta.String() + ")") + t.Log("OzoneLimit: " + nozPriceFactorsAfter.OzoneLimit.String() + "(delta: " + ozoneLimitDelta.String() + ", " + ozoneLimitPercentage.String()[:5] + "%)") + t.Log("NozSupply: " + nozPriceFactorsAfter.NozSupply.String() + "(delta: " + nozSupplyDelta.String() + ")") return nozPriceFactorsAfter, nozPricePercentage, ozoneLimitPercentage } @@ -762,7 +754,7 @@ func checkResult(t *testing.T, ctx sdk.Context, slashingAmtSetup sdkmath.Int, feeCollectorToFeePoolAtBeginBlock sdk.Coin) { - currentSlashing := registerKeeper.GetSlashing(ctx, resNodeAddr2) + currentSlashing := registerKeeper.GetSlashing(ctx, resOwner2) t.Log("currentSlashing = " + currentSlashing.String()) individualRewardTotal := sdk.Coins{} @@ -846,65 +838,59 @@ func setupAccounts() ([]authtypes.GenesisAccount, []banktypes.Balance) { resOwnerAcc3 := &authtypes.BaseAccount{Address: resOwner3.String()} resOwnerAcc4 := &authtypes.BaseAccount{Address: resOwner4.String()} resOwnerAcc5 := &authtypes.BaseAccount{Address: resOwner5.String()} - //************************** setup indexing nodes owners' accounts ************************** - idxOwnerAcc1 := &authtypes.BaseAccount{Address: idxOwner1.String()} - idxOwnerAcc2 := &authtypes.BaseAccount{Address: idxOwner2.String()} - idxOwnerAcc3 := &authtypes.BaseAccount{Address: idxOwner3.String()} + //************************** setup meta nodes owners' accounts ************************** + metaOwnerAcc1 := &authtypes.BaseAccount{Address: metaOwner1.String()} + metaOwnerAcc2 := &authtypes.BaseAccount{Address: metaOwner2.String()} + metaOwnerAcc3 := &authtypes.BaseAccount{Address: metaOwner3.String()} //************************** setup validator delegators' accounts ************************** valOwnerAcc1 := &authtypes.BaseAccount{Address: valOpAccAddr1.String()} - //************************** setup indexing nodes' accounts ************************** - idxNodeAcc1 := &authtypes.BaseAccount{Address: idxNodeAddr1.String()} + //************************** setup meta nodes' accounts ************************** foundationDepositorAcc := &authtypes.BaseAccount{Address: foundationDepositorAccAddr.String()} accs := []authtypes.GenesisAccount{ resOwnerAcc1, resOwnerAcc2, resOwnerAcc3, resOwnerAcc4, resOwnerAcc5, - idxOwnerAcc1, idxOwnerAcc2, idxOwnerAcc3, + metaOwnerAcc1, metaOwnerAcc2, metaOwnerAcc3, valOwnerAcc1, foundationDepositorAcc, - idxNodeAcc1, } balances := []banktypes.Balance{ { Address: resOwner1.String(), - Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit1.Add(depositForSendingTx))}, + Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit.Add(depositForSendingTx))}, }, { Address: resOwner2.String(), - Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit2)}, + Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit)}, }, { Address: resOwner3.String(), - Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit3)}, + Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit)}, }, { Address: resOwner4.String(), - Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit4)}, + Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit)}, }, { Address: resOwner5.String(), - Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit5)}, + Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit)}, }, { - Address: idxOwner1.String(), - Coins: sdk.Coins{stratos.NewCoin(idxNodeInitialDeposit1)}, + Address: metaOwner1.String(), + Coins: sdk.Coins{stratos.NewCoin(metaNodeInitialDeposit)}, }, { - Address: idxOwner2.String(), - Coins: sdk.Coins{stratos.NewCoin(idxNodeInitialDeposit2)}, + Address: metaOwner2.String(), + Coins: sdk.Coins{stratos.NewCoin(metaNodeInitialDeposit)}, }, { - Address: idxOwner3.String(), - Coins: sdk.Coins{stratos.NewCoin(idxNodeInitialDeposit3)}, + Address: metaOwner3.String(), + Coins: sdk.Coins{stratos.NewCoin(metaNodeInitialDeposit)}, }, { Address: valOpAccAddr1.String(), Coins: sdk.Coins{stratos.NewCoin(valInitialStake)}, }, - { - Address: idxNodeAddr1.String(), - Coins: sdk.Coins{stratos.NewCoin(sdkmath.ZeroInt())}, - }, { Address: foundationDepositorAccAddr.String(), Coins: foundationDeposit, @@ -920,50 +906,41 @@ func setupAccountsMultipleResNodes(resOwners []sdk.AccAddress) ([]authtypes.Gene for _, resOwner := range resOwners { resOwnerAccs = append(resOwnerAccs, &authtypes.BaseAccount{Address: resOwner.String()}) } - //resOwnerAcc1 := &authtypes.BaseAccount{Address: resOwner1.String()} - //resOwnerAcc2 := &authtypes.BaseAccount{Address: resOwner2.String()} - //resOwnerAcc3 := &authtypes.BaseAccount{Address: resOwner3.String()} - //resOwnerAcc4 := &authtypes.BaseAccount{Address: resOwner4.String()} - //resOwnerAcc5 := &authtypes.BaseAccount{Address: resOwner5.String()} - //************************** setup indexing nodes owners' accounts ************************** - idxOwnerAcc1 := &authtypes.BaseAccount{Address: idxOwner1.String()} - idxOwnerAcc2 := &authtypes.BaseAccount{Address: idxOwner2.String()} - idxOwnerAcc3 := &authtypes.BaseAccount{Address: idxOwner3.String()} + //************************** setup meta nodes owners' accounts ************************** + idxOwnerAcc1 := &authtypes.BaseAccount{Address: metaOwner1.String()} + idxOwnerAcc2 := &authtypes.BaseAccount{Address: metaOwner2.String()} + idxOwnerAcc3 := &authtypes.BaseAccount{Address: metaOwner3.String()} //************************** setup validator delegators' accounts ************************** valOwnerAcc1 := &authtypes.BaseAccount{Address: valOpAccAddr1.String()} - //************************** setup indexing nodes' accounts ************************** - idxNodeAcc1 := &authtypes.BaseAccount{Address: idxNodeAddr1.String()} + //************************** setup meta nodes' accounts ************************** foundationDepositorAcc := &authtypes.BaseAccount{Address: foundationDepositorAccAddr.String()} accs := []authtypes.GenesisAccount{ - //resOwnerAcc1, resOwnerAcc2, resOwnerAcc3, resOwnerAcc4, resOwnerAcc5, idxOwnerAcc1, idxOwnerAcc2, idxOwnerAcc3, valOwnerAcc1, foundationDepositorAcc, - idxNodeAcc1, + } + for _, resAcc := range resOwnerAccs { + accs = append(accs, resAcc) } balances := []banktypes.Balance{ { - Address: idxOwner1.String(), - Coins: sdk.Coins{stratos.NewCoin(idxNodeInitialDeposit1)}, + Address: metaOwner1.String(), + Coins: sdk.Coins{stratos.NewCoin(metaNodeInitialDeposit)}, }, { - Address: idxOwner2.String(), - Coins: sdk.Coins{stratos.NewCoin(idxNodeInitialDeposit2)}, + Address: metaOwner2.String(), + Coins: sdk.Coins{stratos.NewCoin(metaNodeInitialDeposit)}, }, { - Address: idxOwner3.String(), - Coins: sdk.Coins{stratos.NewCoin(idxNodeInitialDeposit3)}, + Address: metaOwner3.String(), + Coins: sdk.Coins{stratos.NewCoin(metaNodeInitialDeposit)}, }, { Address: valOpAccAddr1.String(), Coins: sdk.Coins{stratos.NewCoin(valInitialStake)}, }, - { - Address: idxNodeAddr1.String(), - Coins: sdk.Coins{stratos.NewCoin(sdkmath.ZeroInt())}, - }, { Address: foundationDepositorAccAddr.String(), Coins: foundationDeposit, @@ -974,7 +951,7 @@ func setupAccountsMultipleResNodes(resOwners []sdk.AccAddress) ([]authtypes.Gene accs = append(accs, resOwnerAcc) balances = append(balances, banktypes.Balance{ Address: resOwnerAcc.Address, - Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDepositForMultipleNodes.Add(depositForSendingTx))}, + Coins: sdk.Coins{stratos.NewCoin(resNodeInitialDeposit.Add(depositForSendingTx))}, }) } @@ -983,19 +960,25 @@ func setupAccountsMultipleResNodes(resOwners []sdk.AccAddress) ([]authtypes.Gene func setupAllResourceNodes() []registertypes.ResourceNode { - time, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") + createTime, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") nodeType := registertypes.STORAGE - resourceNode1, _ := registertypes.NewResourceNode(resNodeNetworkId1, resNodePubKey1, resOwner1, registertypes.NewDescription("sds://resourceNode1", "", "", "", ""), nodeType, time) - resourceNode2, _ := registertypes.NewResourceNode(resNodeNetworkId2, resNodePubKey2, resOwner2, registertypes.NewDescription("sds://resourceNode2", "", "", "", ""), nodeType, time) - resourceNode3, _ := registertypes.NewResourceNode(resNodeNetworkId3, resNodePubKey3, resOwner3, registertypes.NewDescription("sds://resourceNode3", "", "", "", ""), nodeType, time) - resourceNode4, _ := registertypes.NewResourceNode(resNodeNetworkId4, resNodePubKey4, resOwner4, registertypes.NewDescription("sds://resourceNode4", "", "", "", ""), nodeType, time) - resourceNode5, _ := registertypes.NewResourceNode(resNodeNetworkId5, resNodePubKey5, resOwner5, registertypes.NewDescription("sds://resourceNode5", "", "", "", ""), nodeType, time) - - resourceNode1 = resourceNode1.AddToken(resNodeInitialDeposit1) - resourceNode2 = resourceNode2.AddToken(resNodeInitialDeposit2) - resourceNode3 = resourceNode3.AddToken(resNodeInitialDeposit3) - resourceNode4 = resourceNode4.AddToken(resNodeInitialDeposit4) - resourceNode5 = resourceNode5.AddToken(resNodeInitialDeposit5) + resourceNode1, _ := registertypes.NewResourceNode(resNodeP2PAddr1, resNodeP2PPubKey1, resOwner1, registertypes.NewDescription("sds://resourceNode1", "", "", "", ""), nodeType, createTime) + resourceNode2, _ := registertypes.NewResourceNode(resNodeP2PAddr2, resNodeP2PPubKey2, resOwner2, registertypes.NewDescription("sds://resourceNode2", "", "", "", ""), nodeType, createTime) + resourceNode3, _ := registertypes.NewResourceNode(resNodeP2PAddr3, resNodeP2PPubKey3, resOwner3, registertypes.NewDescription("sds://resourceNode3", "", "", "", ""), nodeType, createTime) + resourceNode4, _ := registertypes.NewResourceNode(resNodeP2PAddr4, resNodeP2PPubKey4, resOwner4, registertypes.NewDescription("sds://resourceNode4", "", "", "", ""), nodeType, createTime) + resourceNode5, _ := registertypes.NewResourceNode(resNodeP2PAddr5, resNodeP2PPubKey5, resOwner5, registertypes.NewDescription("sds://resourceNode5", "", "", "", ""), nodeType, createTime) + + resourceNode1 = resourceNode1.AddToken(resNodeInitialDeposit) + resourceNode2 = resourceNode2.AddToken(resNodeInitialDeposit) + resourceNode3 = resourceNode3.AddToken(resNodeInitialDeposit) + resourceNode4 = resourceNode4.AddToken(resNodeInitialDeposit) + resourceNode5 = resourceNode5.AddToken(resNodeInitialDeposit) + + resourceNode1.EffectiveTokens = resNodeInitialDeposit + resourceNode2.EffectiveTokens = resNodeInitialDeposit + resourceNode3.EffectiveTokens = resNodeInitialDeposit + resourceNode4.EffectiveTokens = resNodeInitialDeposit + resourceNode5.EffectiveTokens = resNodeInitialDeposit resourceNode1.Status = stakingtypes.Bonded resourceNode2.Status = stakingtypes.Bonded @@ -1003,6 +986,12 @@ func setupAllResourceNodes() []registertypes.ResourceNode { resourceNode4.Status = stakingtypes.Bonded resourceNode5.Status = stakingtypes.Bonded + resourceNode1.Suspend = false + resourceNode2.Suspend = false + resourceNode3.Suspend = false + resourceNode4.Suspend = false + resourceNode5.Suspend = false + var resourceNodes []registertypes.ResourceNode resourceNodes = append(resourceNodes, resourceNode1) resourceNodes = append(resourceNodes, resourceNode2) @@ -1012,23 +1001,24 @@ func setupAllResourceNodes() []registertypes.ResourceNode { return resourceNodes } -func setupMultipleResourceNodes(resOwnerPrivKeys []*secp256k1.PrivKey, resNodePubKeys []cryptotypes.PubKey, resOwners []sdk.AccAddress, resNodeNetworkIds []stratos.SdsAddress) []registertypes.ResourceNode { - if len(resOwnerPrivKeys) != len(resNodePubKeys) || - len(resNodePubKeys) != len(resOwners) || - len(resOwners) != len(resNodeNetworkIds) { +func setupMultipleResourceNodes(resNodeP2PAddresses []stratos.SdsAddress, resNodeP2PPubKeys []cryptotypes.PubKey, resOwners []sdk.AccAddress) []registertypes.ResourceNode { + if len(resNodeP2PPubKeys) != len(resOwners) || + len(resOwners) != len(resNodeP2PAddresses) { return nil } - numOfNodes := len(resOwnerPrivKeys) + numOfNodes := len(resNodeP2PPubKeys) resourceNodes := make([]registertypes.ResourceNode, 0, numOfNodes) - time, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") + createTime, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") nodeType := registertypes.STORAGE - for i, _ := range resOwnerPrivKeys { - resourceNodeTmp, _ := registertypes.NewResourceNode(resNodeNetworkIds[i], resNodePubKeys[i], resOwners[i], registertypes.NewDescription("sds://resourceNode"+strconv.Itoa(i+1), "", "", "", ""), nodeType, time) - resourceNodeTmp = resourceNodeTmp.AddToken(resNodeInitialDepositForMultipleNodes) + for i, _ := range resNodeP2PPubKeys { + resourceNodeTmp, _ := registertypes.NewResourceNode(resNodeP2PAddresses[i], resNodeP2PPubKeys[i], resOwners[i], registertypes.NewDescription("sds://resourceNode"+strconv.Itoa(i+1), "", "", "", ""), nodeType, createTime) + resourceNodeTmp = resourceNodeTmp.AddToken(resNodeInitialDeposit) resourceNodeTmp.Status = stakingtypes.Bonded + resourceNodeTmp.EffectiveTokens = resNodeInitialDeposit + resourceNodeTmp.Suspend = false resourceNodes = append(resourceNodes, resourceNodeTmp) } @@ -1036,30 +1026,30 @@ func setupMultipleResourceNodes(resOwnerPrivKeys []*secp256k1.PrivKey, resNodePu } func setupAllMetaNodes() []registertypes.MetaNode { - var indexingNodes []registertypes.MetaNode + var metaNodes []registertypes.MetaNode - time, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") - indexingNode1, _ := registertypes.NewMetaNode(stratos.SdsAddress(idxNodeAddr1), idxNodePubKey1, idxOwner1, idxOwner1, registertypes.NewDescription("sds://indexingNode1", "", "", "", ""), time) - indexingNode2, _ := registertypes.NewMetaNode(stratos.SdsAddress(idxNodeAddr2), idxNodePubKey2, idxOwner2, idxOwner2, registertypes.NewDescription("sds://indexingNode2", "", "", "", ""), time) - indexingNode3, _ := registertypes.NewMetaNode(stratos.SdsAddress(idxNodeAddr3), idxNodePubKey3, idxOwner3, idxOwner3, registertypes.NewDescription("sds://indexingNode3", "", "", "", ""), time) + createTime, _ := time.Parse(time.RubyDate, "Fri Sep 24 10:37:13 -0400 2021") + metaNode1, _ := registertypes.NewMetaNode(metaNodeP2PAddr1, metaNodeP2PPubKey1, metaOwner1, metaOwner1, registertypes.NewDescription("sds://metaNode1", "", "", "", ""), createTime) + metaNode2, _ := registertypes.NewMetaNode(metaNodeP2PAddr2, metaNodeP2PPubKey2, metaOwner2, metaOwner2, registertypes.NewDescription("sds://metaNode2", "", "", "", ""), createTime) + metaNode3, _ := registertypes.NewMetaNode(metaNodeP2PAddr3, metaNodeP2PPubKey3, metaOwner3, metaOwner3, registertypes.NewDescription("sds://metaNode3", "", "", "", ""), createTime) - indexingNode1.Suspend = false - indexingNode2.Suspend = false - indexingNode3.Suspend = false + metaNode1 = metaNode1.AddToken(metaNodeInitialDeposit) + metaNode2 = metaNode2.AddToken(metaNodeInitialDeposit) + metaNode3 = metaNode3.AddToken(metaNodeInitialDeposit) - indexingNode1 = indexingNode1.AddToken(idxNodeInitialDeposit1) - indexingNode2 = indexingNode2.AddToken(idxNodeInitialDeposit2) - indexingNode3 = indexingNode3.AddToken(idxNodeInitialDeposit3) + metaNode1.Status = stakingtypes.Bonded + metaNode2.Status = stakingtypes.Bonded + metaNode3.Status = stakingtypes.Bonded - indexingNode1.Status = stakingtypes.Bonded - indexingNode2.Status = stakingtypes.Bonded - indexingNode3.Status = stakingtypes.Bonded + metaNode1.Suspend = false + metaNode2.Suspend = false + metaNode3.Suspend = false - indexingNodes = append(indexingNodes, indexingNode1) - indexingNodes = append(indexingNodes, indexingNode2) - indexingNodes = append(indexingNodes, indexingNode3) + metaNodes = append(metaNodes, metaNode1) + metaNodes = append(metaNodes, metaNode2) + metaNodes = append(metaNodes, metaNode3) - return indexingNodes + return metaNodes } var ( @@ -1126,13 +1116,13 @@ func simulatePriceChange(t *testing.T, priceChangeEvent *PriceChangeEvent, nozPr ozoneLimitPercentage := ozoneLimitDelta.ToLegacyDec().Quo(nozPriceFactorsBefore.OzoneLimit.ToLegacyDec()).MulInt(sdkmath.NewInt(100)) t.Log("===>>>>>>>>>>>>>> Current noz Price ===>>>>>>>>>>>>>>") - t.Log("NOzonePrice: " + nozPriceFactorsAfter.NOzonePrice.String() + "(delta: " + nozPriceDelta.String() + ", " + nozPricePercentage.String()[:5] + "%)") - t.Log("InitialTotalDeposit: " + nozPriceFactorsAfter.InitialTotalDeposit.String() + "(delta: " + initialTotalDepositDelta.String() + ")") - t.Log("EffectiveTotalDeposit: " + nozPriceFactorsAfter.EffectiveTotalDeposit.String() + "(delta: " + effectiveTotalDepositDelta.String() + ")") - t.Log("TotalUnissuedPrepay: " + nozPriceFactorsAfter.TotalUnissuedPrepay.String() + "(delta: " + totalUnissuedPrepayDelta.String() + ")") - t.Log("InitialTotalDeposit+TotalUnissuedPrepay: " + nozPriceFactorsAfter.DepositAndPrepay.String() + "(delta: " + depositAndPrepayDelta.String() + ")") - t.Log("OzoneLimit: " + nozPriceFactorsAfter.OzoneLimit.String() + "(delta: " + ozoneLimitDelta.String() + ", " + ozoneLimitPercentage.String()[:5] + "%)") - t.Log("NozSupply: " + nozPriceFactorsAfter.NozSupply.String() + "(delta: " + nozSupplyDelta.String() + ")") + t.Log("NOzonePrice: " + nozPriceFactorsAfter.NOzonePrice.String() + "(delta: " + nozPriceDelta.String() + ", " + nozPricePercentage.String()[:5] + "%)") + t.Log("InitialTotalDeposit: " + nozPriceFactorsAfter.InitialTotalDeposit.String() + "(delta: " + initialTotalDepositDelta.String() + ")") + t.Log("EffectiveTotalDeposit: " + nozPriceFactorsAfter.EffectiveTotalDeposit.String() + "(delta: " + effectiveTotalDepositDelta.String() + ")") + t.Log("TotalUnissuedPrepay: " + nozPriceFactorsAfter.TotalUnissuedPrepay.String() + "(delta: " + totalUnissuedPrepayDelta.String() + ")") + t.Log("InitialTotalDeposit+TotalUnissuedPrepay: " + nozPriceFactorsAfter.DepositAndPrepay.String() + "(delta: " + depositAndPrepayDelta.String() + ")") + t.Log("OzoneLimit: " + nozPriceFactorsAfter.OzoneLimit.String() + "(delta: " + ozoneLimitDelta.String() + ", " + ozoneLimitPercentage.String()[:5] + "%)") + t.Log("NozSupply: " + nozPriceFactorsAfter.NozSupply.String() + "(delta: " + nozSupplyDelta.String() + ")") return nozPriceFactorsAfter, nozPricePercentage, ozoneLimitPercentage } @@ -1141,16 +1131,18 @@ func TestOzPriceChangePrepay(t *testing.T) { NUM_OF_SAMPLE := 100 dataToExcel := make([]NozPriceFactors, 0, NUM_OF_SAMPLE) /********************* initialize mock app *********************/ - //mApp, k, stakingKeeper, bankKeeper, supplyKeeper, registerKeeper := getMockApp(t) accs, balances := setupAccounts() - //stApp := app.SetupWithGenesisAccounts(accs, chainID, balances...) - validators := make([]*tmtypes.Validator, 0) - valSet := tmtypes.NewValidatorSet(validators) + + // create validator set with single validator + consPubKey, err := cryptocodec.ToTmPubKeyInterface(valConsPubk1) + validator := tmtypes.NewValidator(consPubKey, 1) + valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) + metaNodes := setupAllMetaNodes() //resourceNodes := setupAllResourceNodes() resourceNodes := make([]registertypes.ResourceNode, 0) - stApp := app.SetupWithGenesisNodeSet(t, true, valSet, metaNodes, resourceNodes, accs, chainID, balances...) + stApp := stratostestutil.SetupWithGenesisNodeSet(t, valSet, metaNodes, resourceNodes, accs, chainID, false, balances...) accountKeeper := stApp.GetAccountKeeper() //bankKeeper := stApp.GetBankKeeper() @@ -1163,44 +1155,21 @@ func TestOzPriceChangePrepay(t *testing.T) { ctx := stApp.BaseApp.NewContext(true, header) foundationDepositMsg := pottypes.NewMsgFoundationDeposit(foundationDeposit, foundationDepositorAccAddr) - txGen := app.MakeTestEncodingConfig().TxConfig + txGen := stratostestutil.MakeTestEncodingConfig().TxConfig - foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) - accNum := foundationDepositorAcc.GetAccountNumber() - accSeq := foundationDepositorAcc.GetSequence() - _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) + senderAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) + accNum := senderAcc.GetAccountNumber() + accSeq := senderAcc.GetSequence() + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) - app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) - - /********************* create validator with 50% commission *********************/ - header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} - stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) - ctx = stApp.BaseApp.NewContext(true, header) - - commission := stakingtypes.NewCommissionRates( - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDec(0), - ) - description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) - - valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) - accNum = valOpAcc1.GetAccountNumber() - accSeq = valOpAcc1.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) - require.NoError(t, err) - app.CheckBalance(t, stApp, valOpAccAddr1, nil) + stratostestutil.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) /********************** commit **********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - validator := checkValidator(t, stApp, valOpValAddr1, true) - require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) _, nozSupply := potKeeper.NozSupply(ctx) St, Pt, Lt := registerKeeper.GetCurrNozPriceParams(ctx) nozPriceFactorsSeq0, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, NozPriceFactors{ @@ -1224,11 +1193,10 @@ func TestOzPriceChangePrepay(t *testing.T) { prepayMsg := setupPrepayMsg() /********************* deliver tx *********************/ - resOwnerAcc := accountKeeper.GetAccount(ctx, resOwner1) - ownerAccNum := resOwnerAcc.GetAccountNumber() - ownerAccSeq := resOwnerAcc.GetSequence() - - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) + senderAcc = accountKeeper.GetAccount(ctx, resOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1249,16 +1217,18 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { NUM_OF_SAMPLE := 100 dataToExcel := make([]NozPriceFactors, 0, NUM_OF_SAMPLE) /********************* initialize mock app *********************/ - //mApp, k, stakingKeeper, bankKeeper, supplyKeeper, registerKeeper := getMockApp(t) accs, balances := setupAccounts() - //stApp := app.SetupWithGenesisAccounts(accs, chainID, balances...) - validators := make([]*tmtypes.Validator, 0) - valSet := tmtypes.NewValidatorSet(validators) + + // create validator set with single validator + consPubKey, err := cryptocodec.ToTmPubKeyInterface(valConsPubk1) + validator := tmtypes.NewValidator(consPubKey, 1) + valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) + metaNodes := setupAllMetaNodes() //resourceNodes := setupAllResourceNodes() resourceNodes := make([]registertypes.ResourceNode, 0) - stApp := app.SetupWithGenesisNodeSet(t, true, valSet, metaNodes, resourceNodes, accs, chainID, balances...) + stApp := stratostestutil.SetupWithGenesisNodeSet(t, valSet, metaNodes, resourceNodes, accs, chainID, false, balances...) accountKeeper := stApp.GetAccountKeeper() bankKeeper := stApp.GetBankKeeper() @@ -1272,44 +1242,22 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { ctx := stApp.BaseApp.NewContext(true, header) foundationDepositMsg := pottypes.NewMsgFoundationDeposit(foundationDeposit, foundationDepositorAccAddr) - txGen := app.MakeTestEncodingConfig().TxConfig + txGen := stratostestutil.MakeTestEncodingConfig().TxConfig - foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) - accNum := foundationDepositorAcc.GetAccountNumber() - accSeq := foundationDepositorAcc.GetSequence() - _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) - require.NoError(t, err) - foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) - app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) - - /********************* create validator with 50% commission *********************/ - header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} - stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) - ctx = stApp.BaseApp.NewContext(true, header) - - commission := stakingtypes.NewCommissionRates( - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDec(0), - ) - description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) + senderAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) + accNum := senderAcc.GetAccountNumber() + accSeq := senderAcc.GetSequence() - valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) - accNum = valOpAcc1.GetAccountNumber() - accSeq = valOpAcc1.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) - app.CheckBalance(t, stApp, valOpAccAddr1, nil) + foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) + stratostestutil.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) /********************** commit **********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - validator := checkValidator(t, stApp, valOpValAddr1, true) - require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) _, nozSupply := potKeeper.NozSupply(ctx) St, Pt, Lt := registerKeeper.GetCurrNozPriceParams(ctx) nozPriceFactorsSeq0, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, potKeeper, registerKeeper, NozPriceFactors{ @@ -1333,11 +1281,10 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { prepayMsg := setupPrepayMsg() /********************* deliver tx *********************/ - resOwnerAcc := accountKeeper.GetAccount(ctx, resOwner1) - ownerAccNum := resOwnerAcc.GetAccountNumber() - ownerAccSeq := resOwnerAcc.GetSequence() - - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKey1) + senderAcc = accountKeeper.GetAccount(ctx, resOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1355,7 +1302,7 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { for i := 0; i < NUM_OF_SAMPLE; i++ { t.Log("********************************* Deliver VolumeReport Tx START ********************************************") /********************* prepare tx data *********************/ - volumeReportMsg := setupMsgVolumeReport(int64(i + 1)) + volumeReportMsg := setupMsgVolumeReport(t, int64(i+1)) lastTotalMinedToken := potKeeper.GetTotalMinedTokens(ctx) t.Log("last committed TotalMinedTokens = " + lastTotalMinedToken.String()) @@ -1409,17 +1356,17 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { t.Log(" miningReward = " + rewardDetailMap[resOwner5.String()].RewardFromMiningPool.String()) t.Log(" trafficReward = " + rewardDetailMap[resOwner5.String()].RewardFromTrafficPool.String()) - t.Log("indexing_wallet1: address = " + idxOwner1.String()) - t.Log(" miningReward = " + rewardDetailMap[idxOwner1.String()].RewardFromMiningPool.String()) - t.Log(" trafficReward = " + rewardDetailMap[idxOwner1.String()].RewardFromTrafficPool.String()) + t.Log("meta_wallet1: address = " + metaOwner1.String()) + t.Log(" miningReward = " + rewardDetailMap[metaOwner1.String()].RewardFromMiningPool.String()) + t.Log(" trafficReward = " + rewardDetailMap[metaOwner1.String()].RewardFromTrafficPool.String()) - t.Log("indexing_wallet2: address = " + idxOwner2.String()) - t.Log(" miningReward = " + rewardDetailMap[idxOwner2.String()].RewardFromMiningPool.String()) - t.Log(" trafficReward = " + rewardDetailMap[idxOwner2.String()].RewardFromTrafficPool.String()) + t.Log("meta_wallet2: address = " + metaOwner2.String()) + t.Log(" miningReward = " + rewardDetailMap[metaOwner2.String()].RewardFromMiningPool.String()) + t.Log(" trafficReward = " + rewardDetailMap[metaOwner2.String()].RewardFromTrafficPool.String()) - t.Log("indexing_wallet3: address = " + idxOwner3.String()) - t.Log(" miningReward = " + rewardDetailMap[idxOwner3.String()].RewardFromMiningPool.String()) - t.Log(" trafficReward = " + rewardDetailMap[idxOwner3.String()].RewardFromTrafficPool.String()) + t.Log("meta_wallet3: address = " + metaOwner3.String()) + t.Log(" miningReward = " + rewardDetailMap[metaOwner3.String()].RewardFromMiningPool.String()) + t.Log(" trafficReward = " + rewardDetailMap[metaOwner3.String()].RewardFromTrafficPool.String()) t.Log("---------------------------") /********************* record data before delivering tx *********************/ @@ -1432,16 +1379,16 @@ func TestOzPriceChangeVolumeReport(t *testing.T) { //lastCommunityPool := sdk.NewCoins(sdk.NewCoin(potKeeper.BondDenom(ctx), potKeeper.DistrKeeper.GetFeePool(ctx).CommunityPool.AmountOf(potKeeper.BondDenom(ctx)).TruncateInt())) //lastMatureTotalOfResNode1 := potKeeper.GetMatureTotalReward(ctx, resOwner1) - resOwnerAcc := accountKeeper.GetAccount(ctx, idxOwner1) - ownerAccNum := resOwnerAcc.GetAccountNumber() - ownerAccSeq := resOwnerAcc.GetSequence() - feePoolAccAddr := accountKeeper.GetModuleAddress(authtypes.FeeCollectorName) require.NotNil(t, feePoolAccAddr) _ = bankKeeper.GetBalance(ctx, feePoolAccAddr, potKeeper.BondDenom(ctx)) //feeCollectorToFeePoolAtBeginBlock := bankKeeper.GetBalance(ctx, feePoolAccAddr, potKeeper.BondDenom(ctx)) - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() + + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{volumeReportMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) require.NoError(t, err) header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) @@ -1463,32 +1410,35 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { NUM_OF_SAMPLE := 100 dataToExcel := make([]NozPriceFactors, 0, NUM_OF_SAMPLE) - resOwners := make([]sdk.AccAddress, 0, NUM_OF_SAMPLE) resOwnerPrivKeys := make([]*secp256k1.PrivKey, 0, NUM_OF_SAMPLE) - resOwnerPubkeys := make([]cryptotypes.PubKey, 0, NUM_OF_SAMPLE) - resNodeNetworkIds := make([]stratos.SdsAddress, 0, NUM_OF_SAMPLE) + resOwners := make([]sdk.AccAddress, 0, NUM_OF_SAMPLE) + resNodeP2PPubkeys := make([]cryptotypes.PubKey, 0, NUM_OF_SAMPLE) + resNodeP2PAddresses := make([]stratos.SdsAddress, 0, NUM_OF_SAMPLE) for i := 0; i < NUM_OF_SAMPLE; i++ { resOwnerPrivKeyTmp := secp256k1.GenPrivKey() resOwnerPrivKeys = append(resOwnerPrivKeys, resOwnerPrivKeyTmp) - resOwnerPubKeyTmp := resOwnerPrivKeyTmp.PubKey() - resOwnerPubkeys = append(resOwnerPubkeys, resOwnerPrivKeyTmp.PubKey()) - resNodeAddrTmp := sdk.AccAddress(resOwnerPubKeyTmp.Address()) - resOwners = append(resOwners, resNodeAddrTmp) - resNodeNetworkIds = append(resNodeNetworkIds, stratos.SdsAddress(resNodeAddrTmp)) + resOwnerAddrTmp := sdk.AccAddress(resOwnerPrivKeyTmp.PubKey().Address()) + resOwners = append(resOwners, resOwnerAddrTmp) + + resNodeP2PPubkeyTmp := ed25519.GenPrivKey().PubKey() + resNodeP2PPubkeys = append(resNodeP2PPubkeys, resNodeP2PPubkeyTmp) + resNodeP2PAddresses = append(resNodeP2PAddresses, stratos.SdsAddress(resNodeP2PPubkeyTmp.Address())) } /********************* initialize mock app *********************/ - //mApp, k, stakingKeeper, bankKeeper, supplyKeeper, registerKeeper := getMockApp(t) accs, balances := setupAccountsMultipleResNodes(resOwners) - //stApp := app.SetupWithGenesisAccounts(accs, chainID, balances...) - validators := make([]*tmtypes.Validator, 0) - valSet := tmtypes.NewValidatorSet(validators) + + // create validator set with single validator + consPubKey, err := cryptocodec.ToTmPubKeyInterface(valConsPubk1) + validator := tmtypes.NewValidator(consPubKey, 1) + valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) + metaNodes := setupAllMetaNodes() //resourceNodes := setupAllResourceNodes() resourceNodes := make([]registertypes.ResourceNode, 0) - stApp := app.SetupWithGenesisNodeSet(t, true, valSet, metaNodes, resourceNodes, accs, chainID, balances...) + stApp := stratostestutil.SetupWithGenesisNodeSet(t, valSet, metaNodes, resourceNodes, accs, chainID, false, balances...) accountKeeper := stApp.GetAccountKeeper() //bankKeeper := stApp.GetBankKeeper() @@ -1501,44 +1451,22 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { ctx := stApp.BaseApp.NewContext(true, header) foundationDepositMsg := pottypes.NewMsgFoundationDeposit(foundationDeposit, foundationDepositorAccAddr) - txGen := app.MakeTestEncodingConfig().TxConfig + txGen := stratostestutil.MakeTestEncodingConfig().TxConfig - foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) - accNum := foundationDepositorAcc.GetAccountNumber() - accSeq := foundationDepositorAcc.GetSequence() - _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) - require.NoError(t, err) - foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) - app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) - - /********************* create validator with 50% commission *********************/ - header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} - stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) - ctx = stApp.BaseApp.NewContext(true, header) - - commission := stakingtypes.NewCommissionRates( - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDec(0), - ) - description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) + senderAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) + accNum := senderAcc.GetAccountNumber() + accSeq := senderAcc.GetSequence() - valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) - accNum = valOpAcc1.GetAccountNumber() - accSeq = valOpAcc1.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) - app.CheckBalance(t, stApp, valOpAccAddr1, nil) + foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) + stratostestutil.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) /********************** commit **********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - validator := checkValidator(t, stApp, valOpValAddr1, true) - require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) _, nozSupply := potKeeper.NozSupply(ctx) //nozPriceFactorsSeq0, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, registerKeeper, NozPriceFactors{ // NOzonePrice: registerKeeper.GetCurrNozPriceParams(ctx), @@ -1556,11 +1484,10 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { prepayMsg := setupPrepayMsgWithResOwner(resOwners[0]) /********************* deliver tx *********************/ - resOwnerAcc := accountKeeper.GetAccount(ctx, resOwners[0]) - ownerAccNum := resOwnerAcc.GetAccountNumber() - ownerAccSeq := resOwnerAcc.GetSequence() - - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKeys[0]) + senderAcc = accountKeeper.GetAccount(ctx, resOwners[0]) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKeys[0]) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1586,30 +1513,45 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { //ownerAccSeq := resOwnerAcc.GetSequence() for i := 0; i < NUM_OF_SAMPLE; i++ { - createResourceNodeMsg := setupMsgCreateResourceNode(i, resNodeNetworkIds[i], resOwnerPubkeys[i], resOwners[i]) + createResourceNodeMsg := setupMsgCreateResourceNode(i, resNodeP2PAddresses[i], resNodeP2PPubkeys[i], resOwners[i]) /********************* deliver tx *********************/ - resOwnerAcc := accountKeeper.GetAccount(ctx, resOwners[i]) - ownerAccNum := resOwnerAcc.GetAccountNumber() - ownerAccSeq := resOwnerAcc.GetSequence() - - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKeys[i]) + senderAcc = accountKeeper.GetAccount(ctx, resOwners[i]) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createResourceNodeMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKeys[i]) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - unsuspendMsg := setupUnsuspendMsgByIndex(i, resNodeNetworkIds[i], resOwnerPubkeys[i], resOwners[i]) + unsuspendMsg := setupUnsuspendMsgByIndex(i, resNodeP2PAddresses[i], resOwners[i]) /********************* deliver tx *********************/ - idxOwnerAcc := accountKeeper.GetAccount(ctx, idxOwner1) - ownerAccNum = idxOwnerAcc.GetAccountNumber() - ownerAccSeq = idxOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) require.NoError(t, err) - /********************* commit & check result *********************/ + /********************* new height & check result *********************/ + header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} + stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) + ctx = stApp.BaseApp.NewContext(true, header) + + t.Log("********************************* Deliver UpdateEffectiveDeposit Tx START ********************************************") + updateEffectiveDepositMsg := setupMsgUpdateEffectiveDeposit(resNodeP2PAddresses[i]) + /********************* deliver tx *********************/ + + senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() + + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{updateEffectiveDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) + require.NoError(t, err) + t.Log("********************************* Deliver UpdateEffectiveDeposit Tx END ********************************************\n\n...\n[NEXT TEST CASE]") + /********************* new height & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) @@ -1624,21 +1566,21 @@ func TestOzPriceChangeAddMultipleResourceNodeAndThenRemove(t *testing.T) { } for i := 0; i < NUM_OF_SAMPLE; i++ { - slashingMsg := setupSuspendMsgByIndex(i, resNodeNetworkIds[i], resOwnerPubkeys[i], resOwners[i]) + slashingMsg := setupSuspendMsgByIndex(i, resNodeP2PAddresses[i], resNodeP2PPubkeys[i], resOwners[i]) /********************* deliver tx *********************/ - idxOwnerAcc := accountKeeper.GetAccount(ctx, idxOwner1) - ownerAccNum = idxOwnerAcc.GetAccountNumber() - ownerAccSeq = idxOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - //createResourceNodeMsg := setupMsgRemoveResourceNode(i, resNodeNetworkIds[i], resOwners[i]) + //createResourceNodeMsg := setupMsgRemoveResourceNode(i, resNodeP2PAddresses[i], resOwners[i]) ///********************* deliver tx *********************/ // //resOwnerAcc := accountKeeper.GetAccount(ctx, resOwners[i]) @@ -1669,31 +1611,35 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { NUM_OF_SAMPLE := 100 dataToExcel := make([]NozPriceFactors, 0, NUM_OF_SAMPLE) - resOwners := make([]sdk.AccAddress, 0, NUM_OF_SAMPLE) resOwnerPrivKeys := make([]*secp256k1.PrivKey, 0, NUM_OF_SAMPLE) - resOwnerPubkeys := make([]cryptotypes.PubKey, 0, NUM_OF_SAMPLE) - resNodeNetworkIds := make([]stratos.SdsAddress, 0, NUM_OF_SAMPLE) + resOwners := make([]sdk.AccAddress, 0, NUM_OF_SAMPLE) + + resNodeP2PPubKeys := make([]cryptotypes.PubKey, 0, NUM_OF_SAMPLE) + resNodeP2PAddresses := make([]stratos.SdsAddress, 0, NUM_OF_SAMPLE) for i := 0; i < NUM_OF_SAMPLE; i++ { resOwnerPrivKeyTmp := secp256k1.GenPrivKey() resOwnerPrivKeys = append(resOwnerPrivKeys, resOwnerPrivKeyTmp) - resOwnerPubKeyTmp := resOwnerPrivKeyTmp.PubKey() - resOwnerPubkeys = append(resOwnerPubkeys, resOwnerPrivKeyTmp.PubKey()) - resNodeAddrTmp := sdk.AccAddress(resOwnerPubKeyTmp.Address()) - resOwners = append(resOwners, resNodeAddrTmp) - resNodeNetworkIds = append(resNodeNetworkIds, stratos.SdsAddress(resNodeAddrTmp)) + resOwnerAddrTmp := sdk.AccAddress(resOwnerPrivKeyTmp.PubKey().Address()) + resOwners = append(resOwners, resOwnerAddrTmp) + + resNodeP2PPubKeyTmp := ed25519.GenPrivKey().PubKey() + resNodeP2PPubKeys = append(resNodeP2PPubKeys, resNodeP2PPubKeyTmp) + resNodeP2PAddresses = append(resNodeP2PAddresses, stratos.SdsAddress(resNodeP2PPubKeyTmp.Address())) } /********************* initialize mock app *********************/ - //mApp, k, stakingKeeper, bankKeeper, supplyKeeper, registerKeeper := getMockApp(t) accs, balances := setupAccountsMultipleResNodes(resOwners) - //stApp := app.SetupWithGenesisAccounts(accs, chainID, balances...) - validators := make([]*tmtypes.Validator, 0) - valSet := tmtypes.NewValidatorSet(validators) + + // create validator set with single validator + consPubKey, err := cryptocodec.ToTmPubKeyInterface(valConsPubk1) + validator := tmtypes.NewValidator(consPubKey, 1) + valSet := tmtypes.NewValidatorSet([]*tmtypes.Validator{validator}) + metaNodes := setupAllMetaNodes() - resourceNodes := setupMultipleResourceNodes(resOwnerPrivKeys, resOwnerPubkeys, resOwners, resNodeNetworkIds) + resourceNodes := setupMultipleResourceNodes(resNodeP2PAddresses, resNodeP2PPubKeys, resOwners) - stApp := app.SetupWithGenesisNodeSet(t, true, valSet, metaNodes, resourceNodes, accs, chainID, balances...) + stApp := stratostestutil.SetupWithGenesisNodeSet(t, valSet, metaNodes, resourceNodes, accs, chainID, false, balances...) accountKeeper := stApp.GetAccountKeeper() //bankKeeper := stApp.GetBankKeeper() @@ -1706,71 +1652,42 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { ctx := stApp.BaseApp.NewContext(true, header) foundationDepositMsg := pottypes.NewMsgFoundationDeposit(foundationDeposit, foundationDepositorAccAddr) - txGen := app.MakeTestEncodingConfig().TxConfig + txGen := stratostestutil.MakeTestEncodingConfig().TxConfig - foundationDepositorAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) - accNum := foundationDepositorAcc.GetAccountNumber() - accSeq := foundationDepositorAcc.GetSequence() - _, _, err := stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) - require.NoError(t, err) - foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) - app.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) + senderAcc := accountKeeper.GetAccount(ctx, foundationDepositorAccAddr) + accNum := senderAcc.GetAccountNumber() + accSeq := senderAcc.GetSequence() - /********************* create validator with 50% commission *********************/ - header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} - stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) - ctx = stApp.BaseApp.NewContext(true, header) - - commission := stakingtypes.NewCommissionRates( - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDecWithPrec(5, 1), - sdkmath.LegacyNewDec(0), - ) - description := stakingtypes.NewDescription("foo_moniker", chainID, "", "", "") - createValidatorMsg, err := stakingtypes.NewMsgCreateValidator(valOpValAddr1, valConsPubk1, stratos.NewCoin(valInitialStake), description, commission, sdkmath.OneInt()) - - valOpAcc1 := accountKeeper.GetAccount(ctx, valOpAccAddr1) - accNum = valOpAcc1.GetAccountNumber() - accSeq = valOpAcc1.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{createValidatorMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, valOpPrivKey1) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{foundationDepositMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, foundationDepositorPrivKey) require.NoError(t, err) - app.CheckBalance(t, stApp, valOpAccAddr1, nil) + foundationAccountAddr := accountKeeper.GetModuleAddress(pottypes.FoundationAccount) + stratostestutil.CheckBalance(t, stApp, foundationAccountAddr, foundationDeposit) /********************** commit **********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - validator := checkValidator(t, stApp, valOpValAddr1, true) - require.Equal(t, stakingtypes.Bonded, validator.Status) - require.True(sdkmath.IntEq(t, valInitialStake, validator.BondedTokens())) _, nozSupply := potKeeper.NozSupply(ctx) - //nozPriceFactorsSeq0, nozPricePercentage, ozoneLimitPercentage := printCurrNozPrice(t, ctx, registerKeeper, NozPriceFactors{ - // NOzonePrice: registerKeeper.GetCurrNozPriceParams(ctx), - // InitialTotalDeposit: registerKeeper.GetInitialGenesisDepositTotal(ctx), - // EffectiveTotalDeposit: registerKeeper.GetEffectiveTotalDeposit(ctx), - // TotalUnissuedPrepay: registerKeeper.GetTotalUnissuedPrepay(ctx).Amount, - // DepositAndPrepay: registerKeeper.GetInitialGenesisDepositTotal(ctx).Add(registerKeeper.GetTotalUnissuedPrepay(ctx).Amount), - // OzoneLimit: registerKeeper.GetRemainingOzoneLimit(ctx), - // NozSupply: nozSupply, - //}) - - for i := 0; i < NUM_OF_SAMPLE; i++ { - unsuspendMsg := setupUnsuspendMsgByIndex(i, resNodeNetworkIds[i], resOwnerPubkeys[i], resOwners[i]) - /********************* deliver tx *********************/ - - idxOwnerAcc := accountKeeper.GetAccount(ctx, idxOwner1) - ownerAccNum := idxOwnerAcc.GetAccountNumber() - ownerAccSeq := idxOwnerAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) - require.NoError(t, err) - /********************* commit & check result *********************/ - header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} - stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) - ctx = stApp.BaseApp.NewContext(true, header) - - } + //for i := 0; i < NUM_OF_SAMPLE; i++ { + // unsuspendMsg := setupUnsuspendMsgByIndex(i, resNodeP2PAddresses[i], resOwners[i]) + // /********************* deliver tx *********************/ + // + // senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + // accNum = senderAcc.GetAccountNumber() + // accSeq = senderAcc.GetSequence() + // + // fmt.Println("!!!!!!!!!!!!!!!!! ------------- i = ", i) + // + // _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{unsuspendMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) + // require.NoError(t, err) + // /********************* commit & check result *********************/ + // header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} + // stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) + // ctx = stApp.BaseApp.NewContext(true, header) + // + //} // start testing t.Log("********************************* Deliver RemoveResourceNode Tx START ********************************************") @@ -1778,11 +1695,11 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { prepayMsg := setupPrepayMsgWithResOwner(resOwners[0]) /********************* deliver tx *********************/ - resOwnerAcc := accountKeeper.GetAccount(ctx, resOwners[0]) - ownerAccNum := resOwnerAcc.GetAccountNumber() - ownerAccSeq := resOwnerAcc.GetSequence() + senderAcc = accountKeeper.GetAccount(ctx, resOwners[0]) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, resOwnerPrivKeys[0]) + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{prepayMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, resOwnerPrivKeys[0]) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} @@ -1804,20 +1721,19 @@ func TestOzPriceChangeRemoveMultipleResourceNodeAfterGenesis(t *testing.T) { dataToExcel = append(dataToExcel, priceBefore) for i := 0; i < NUM_OF_SAMPLE; i++ { - slashingMsg := setupSuspendMsgByIndex(i, resNodeNetworkIds[i], resOwnerPubkeys[i], resOwners[i]) + slashingMsg := setupSuspendMsgByIndex(i, resNodeP2PAddresses[i], resNodeP2PPubKeys[i], resOwners[i]) /********************* deliver tx *********************/ - idxOwnerAcc := accountKeeper.GetAccount(ctx, idxOwner1) - ownerAccNum = idxOwnerAcc.GetAccountNumber() - ownerAccSeq = idxOwnerAcc.GetSequence() - - _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{ownerAccNum}, []uint64{ownerAccSeq}, true, true, idxOwnerPrivKey1) + senderAcc = accountKeeper.GetAccount(ctx, metaOwner1) + accNum = senderAcc.GetAccountNumber() + accSeq = senderAcc.GetSequence() + _, _, err = stratostestutil.SignCheckDeliver(t, txGen, stApp.BaseApp, header, []sdk.Msg{slashingMsg}, chainID, []uint64{accNum}, []uint64{accSeq}, true, true, metaOwnerPrivKey1) require.NoError(t, err) /********************* commit & check result *********************/ header = tmproto.Header{Height: stApp.LastBlockHeight() + 1, ChainID: chainID} stApp.BeginBlock(abci.RequestBeginBlock{Header: header}) ctx = stApp.BaseApp.NewContext(true, header) - //createResourceNodeMsg := setupMsgRemoveResourceNode(i, resNodeNetworkIds[i], resOwners[i]) + //createResourceNodeMsg := setupMsgRemoveResourceNode(i, resNodeP2PAddresses[i], resOwners[i]) ///********************* deliver tx *********************/ // //resOwnerAcc := accountKeeper.GetAccount(ctx, resOwners[i]) From d542725ec0383c53bb6f9bb16e86ee8afb00b1fa Mon Sep 17 00:00:00 2001 From: Xiong Date: Tue, 7 Nov 2023 15:51:15 -0500 Subject: [PATCH 12/15] error fix --- app/app_config.go | 10 +++++----- app/upgrades/v012/upgrade.go | 5 +++-- cmd/stchaind/root.go | 22 +++++++++++----------- x/evm/keeper/eip1559.go | 2 +- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/app/app_config.go b/app/app_config.go index e7fd2592..140bfa60 100644 --- a/app/app_config.go +++ b/app/app_config.go @@ -29,7 +29,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/capability" capabilitytypes "github.com/cosmos/cosmos-sdk/x/capability/types" "github.com/cosmos/cosmos-sdk/x/consensus" - consensusparamtypes "github.com/cosmos/cosmos-sdk/x/consensus/types" + consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" "github.com/cosmos/cosmos-sdk/x/crisis" crisistypes "github.com/cosmos/cosmos-sdk/x/crisis/types" distr "github.com/cosmos/cosmos-sdk/x/distribution" @@ -167,7 +167,7 @@ var ( feegrant.ModuleName, paramstypes.ModuleName, vestingtypes.ModuleName, - consensusparamtypes.ModuleName, + consensustypes.ModuleName, // IBC modules ibcexported.ModuleName, @@ -202,7 +202,7 @@ var ( paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName, - consensusparamtypes.ModuleName, + consensustypes.ModuleName, // IBC modules ibcexported.ModuleName, @@ -233,7 +233,7 @@ var ( paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName, - consensusparamtypes.ModuleName, + consensustypes.ModuleName, // IBC modules ibcexported.ModuleName, @@ -270,7 +270,7 @@ var ( paramstypes.ModuleName, upgradetypes.ModuleName, vestingtypes.ModuleName, - consensusparamtypes.ModuleName, + consensustypes.ModuleName, // IBC modules ibcexported.ModuleName, diff --git a/app/upgrades/v012/upgrade.go b/app/upgrades/v012/upgrade.go index f15f7804..762a4fb7 100644 --- a/app/upgrades/v012/upgrade.go +++ b/app/upgrades/v012/upgrade.go @@ -61,7 +61,7 @@ func NewUpgrade( // Name implements upgrades.Upgrade func (u *Upgrade) Name() string { - return "v0.12.0" + return "v012" } // Handler implements upgrades.Upgrade @@ -144,7 +144,8 @@ func (u *Upgrade) StoreUpgrades() *storetypes.StoreUpgrades { icahosttypes.StoreKey, // Cosmos SDK v0.47.x upgrades - consensustypes.ModuleName, + consensustypes.StoreKey, + crisistypes.StoreKey, }, Deleted: []string{}, } diff --git a/cmd/stchaind/root.go b/cmd/stchaind/root.go index e4be8795..dca46eb3 100644 --- a/cmd/stchaind/root.go +++ b/cmd/stchaind/root.go @@ -34,18 +34,18 @@ import ( "github.com/stratosnet/stratos-chain/app" stratosclient "github.com/stratosnet/stratos-chain/client" - "github.com/stratosnet/stratos-chain/crypto/hd" - "github.com/stratosnet/stratos-chain/encoding" - "github.com/stratosnet/stratos-chain/server" - servercfg "github.com/stratosnet/stratos-chain/server/config" - srvflags "github.com/stratosnet/stratos-chain/server/flags" + stratoshd "github.com/stratosnet/stratos-chain/crypto/hd" + stratosencoding "github.com/stratosnet/stratos-chain/encoding" + stratosserver "github.com/stratosnet/stratos-chain/server" + stratosservercfg "github.com/stratosnet/stratos-chain/server/config" + stratossrvflags "github.com/stratosnet/stratos-chain/server/flags" stratos "github.com/stratosnet/stratos-chain/types" ) // NewRootCmd creates a new root command for simd. It is called once in the // main function. func NewRootCmd() (*cobra.Command, simappparams.EncodingConfig) { - encodingConfig := encoding.MakeEncodingConfig(app.ModuleBasics) + encodingConfig := stratosencoding.MakeEncodingConfig(app.ModuleBasics) initClientCtx := client.Context{}. WithCodec(encodingConfig.Codec). WithInterfaceRegistry(encodingConfig.InterfaceRegistry). @@ -54,7 +54,7 @@ func NewRootCmd() (*cobra.Command, simappparams.EncodingConfig) { WithInput(os.Stdin). WithAccountRetriever(authtypes.AccountRetriever{}). WithHomeDir(app.DefaultNodeHome). - WithKeyringOptions(hd.EthSecp256k1Option()). + WithKeyringOptions(stratoshd.EthSecp256k1Option()). WithBroadcastMode(flags.BroadcastSync). WithViper("") @@ -80,7 +80,7 @@ func NewRootCmd() (*cobra.Command, simappparams.EncodingConfig) { return err } - customAppTemplate, customAppConfig := servercfg.AppConfig(stratos.Wei) + customAppTemplate, customAppConfig := stratosservercfg.AppConfig(stratos.Wei) customTMConfig := tmcfg.DefaultConfig() return sdkserver.InterceptConfigsPreRunHandler(cmd, customAppTemplate, customAppConfig, customTMConfig) @@ -114,7 +114,7 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig simappparams.EncodingCon snapshot.Cmd(newApp), ) - server.AddCommands(rootCmd, app.DefaultNodeHome, newApp, createStratosAppAndExport, addModuleInitFlags) + stratosserver.AddCommands(rootCmd, app.DefaultNodeHome, newApp, createStratosAppAndExport, addModuleInitFlags) // add keybase, auxiliary RPC, query, and tx child commands rootCmd.AddCommand( @@ -124,7 +124,7 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig simappparams.EncodingCon stratosclient.KeyCommands(app.DefaultNodeHome), ) - rootCmd, err := srvflags.AddTxFlags(rootCmd) + rootCmd, err := stratossrvflags.AddTxFlags(rootCmd) if err != nil { panic(err) } @@ -134,7 +134,7 @@ func initRootCmd(rootCmd *cobra.Command, encodingConfig simappparams.EncodingCon } func newApp(logger log.Logger, db dbm.DB, traceStore io.Writer, appOpts sdkservertypes.AppOptions) sdkservertypes.Application { - baseAppOptions := server.DefaultBaseAppOptions(appOpts) + baseAppOptions := stratosserver.DefaultBaseAppOptions(appOpts) return app.NewStratosApp( logger, db, diff --git a/x/evm/keeper/eip1559.go b/x/evm/keeper/eip1559.go index 494b2c19..601defb6 100644 --- a/x/evm/keeper/eip1559.go +++ b/x/evm/keeper/eip1559.go @@ -51,7 +51,7 @@ func (k Keeper) CalculateBaseFee(ctx sdk.Context) *big.Int { gasLimit := new(big.Int).SetUint64(math.MaxUint64) // NOTE: a MaxGas equal to -1 means that block gas is unlimited - if consParams != nil && consParams.Block.MaxGas > -1 { + if consParams != nil && consParams.Block != nil && consParams.Block.MaxGas > -1 { gasLimit = big.NewInt(consParams.Block.MaxGas) } From 527d7965d79ada3d1a39f064209bc32856cb5dfe Mon Sep 17 00:00:00 2001 From: Xiong Date: Wed, 8 Nov 2023 16:17:01 -0500 Subject: [PATCH 13/15] use stratos fork of cosmos-sdk --- cmd/stchaind/main.go | 7 +++++-- go.mod | 5 ++++- go.sum | 8 ++++---- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/cmd/stchaind/main.go b/cmd/stchaind/main.go index b7734b75..86d9fc8c 100644 --- a/cmd/stchaind/main.go +++ b/cmd/stchaind/main.go @@ -5,9 +5,11 @@ import ( "os" sdkmath "cosmossdk.io/math" + "github.com/cosmos/cosmos-sdk/crypto/ledger" "github.com/cosmos/cosmos-sdk/server" svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/stratosnet/stratos-chain/crypto/ethsecp256k1" "github.com/stratosnet/stratos-chain/app" stratos "github.com/stratosnet/stratos-chain/types" @@ -23,8 +25,9 @@ var ( func main() { registerDenoms() - //TODO: enable when customized cosmos-sdk pushed - //ledger.InitLedger(ethsecp256k1.MakePubKey, ledger.SignMode_SIGN_MODE_DIRECT) + + ledger.InitLedger(ethsecp256k1.MakePubKey, ledger.SignMode_SIGN_MODE_DIRECT) + ledger.SetAppName("stratos") rootCmd, _ := NewRootCmd() if err := svrcmd.Execute(rootCmd, EnvPrefix, app.DefaultNodeHome); err != nil { diff --git a/go.mod b/go.mod index 1202218d..cf1fbe6b 100644 --- a/go.mod +++ b/go.mod @@ -77,7 +77,6 @@ require ( github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v0.20.0 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect - github.com/cosmos/ledger-cosmos-go v0.12.1 // indirect github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/creachadair/taskgroup v0.4.2 // indirect @@ -194,6 +193,7 @@ require ( github.com/spf13/afero v1.9.5 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 // indirect + github.com/stratosnet/ledger-stratos-go v0.0.0-20230728192009-175657d24cb0 // indirect github.com/subosito/gotenv v1.4.2 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tendermint/go-amino v0.16.0 // indirect @@ -234,6 +234,9 @@ replace ( github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 + // use stratos fork of cosmos-sdk + github.com/cosmos/cosmos-sdk => github.com/stratosnet/cosmos-sdk v0.47.0-rc1.0.20231108205759-6d5c78bb6649 + // dgrijalva/jwt-go is deprecated and doesn't receive security updates. // TODO: remove it: https://github.com/cosmos/cosmos-sdk/issues/13134 github.com/dgrijalva/jwt-go => github.com/golang-jwt/jwt/v4 v4.4.2 diff --git a/go.sum b/go.sum index 6085c872..538020dc 100644 --- a/go.sum +++ b/go.sum @@ -360,8 +360,6 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= -github.com/cosmos/cosmos-sdk v0.47.5 h1:n1+WjP/VM/gAEOx3TqU2/Ny734rj/MX1kpUnn7zVJP8= -github.com/cosmos/cosmos-sdk v0.47.5/go.mod h1:EHwCeN9IXonsjKcjpS12MqeStdZvIdxt3VYXhus3G3c= github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 h1:iKclrn3YEOwk4jQHT2ulgzuXyxmzmPczUalMwW4XH9k= github.com/cosmos/cosmos-sdk/ics23/go v0.8.0/go.mod h1:2a4dBq88TUoqoWAU5eu0lGvpFP3wWDPgdHPargtyw30= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= @@ -380,8 +378,6 @@ github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZD github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= github.com/cosmos/keyring v1.2.0/go.mod h1:fc+wB5KTk9wQ9sDx0kFXB3A0MaeGHM9AwRStKOQ5vOA= -github.com/cosmos/ledger-cosmos-go v0.12.1 h1:sMBxza5p/rNK/06nBSNmsI/WDqI0pVJFVNihy1Y984w= -github.com/cosmos/ledger-cosmos-go v0.12.1/go.mod h1:dhO6kj+Y+AHIOgAe4L9HL/6NDdyyth4q238I9yFpD2g= github.com/cosmos/rosetta-sdk-go v0.10.0 h1:E5RhTruuoA7KTIXUcMicL76cffyeoyvNybzUGSKFTcM= github.com/cosmos/rosetta-sdk-go v0.10.0/go.mod h1:SImAZkb96YbwvoRkzSMQB6noNJXFgWl/ENIznEoYQI4= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= @@ -1043,6 +1039,10 @@ github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57NRNuZ2d3rmvB3pcmbu7O1RS3m8WRx7ilrg= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= +github.com/stratosnet/cosmos-sdk v0.47.0-rc1.0.20231108205759-6d5c78bb6649 h1:esJWeGUIyzC1hEn98qFJGeyoBNrpDyvmQMMarH6VszE= +github.com/stratosnet/cosmos-sdk v0.47.0-rc1.0.20231108205759-6d5c78bb6649/go.mod h1:WDWuv5LQB7RzVwlD1WEaYOZZZk0DzQf9o8CMD3NHrPI= +github.com/stratosnet/ledger-stratos-go v0.0.0-20230728192009-175657d24cb0 h1:Y8vzNO2ieC7ViVbge7v0eT/ft3nzwVCH78soFeqSJr4= +github.com/stratosnet/ledger-stratos-go v0.0.0-20230728192009-175657d24cb0/go.mod h1:9T0Ii/AMWWnJRtvKYKB4kDdraaOP76J+K5/IbRXQgyc= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= From 89d8c1aacf3cbdc343a22c6d0f9d51c2e7221260 Mon Sep 17 00:00:00 2001 From: Xiong Date: Thu, 9 Nov 2023 11:56:29 -0500 Subject: [PATCH 14/15] update cosmos-sdk --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index cf1fbe6b..7f2f6e21 100644 --- a/go.mod +++ b/go.mod @@ -235,7 +235,7 @@ replace ( github.com/confio/ics23/go => github.com/cosmos/cosmos-sdk/ics23/go v0.8.0 // use stratos fork of cosmos-sdk - github.com/cosmos/cosmos-sdk => github.com/stratosnet/cosmos-sdk v0.47.0-rc1.0.20231108205759-6d5c78bb6649 + github.com/cosmos/cosmos-sdk => github.com/stratosnet/cosmos-sdk v0.47.5-stratos // dgrijalva/jwt-go is deprecated and doesn't receive security updates. // TODO: remove it: https://github.com/cosmos/cosmos-sdk/issues/13134 diff --git a/go.sum b/go.sum index 538020dc..1d505c95 100644 --- a/go.sum +++ b/go.sum @@ -1039,8 +1039,8 @@ github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4 h1:Gb2Tyox57NRNuZ2d3rmvB3pcmbu7O1RS3m8WRx7ilrg= github.com/status-im/keycard-go v0.0.0-20190316090335-8537d3370df4/go.mod h1:RZLeN1LMWmRsyYjvAu+I6Dm9QmlDaIIt+Y+4Kd7Tp+Q= -github.com/stratosnet/cosmos-sdk v0.47.0-rc1.0.20231108205759-6d5c78bb6649 h1:esJWeGUIyzC1hEn98qFJGeyoBNrpDyvmQMMarH6VszE= -github.com/stratosnet/cosmos-sdk v0.47.0-rc1.0.20231108205759-6d5c78bb6649/go.mod h1:WDWuv5LQB7RzVwlD1WEaYOZZZk0DzQf9o8CMD3NHrPI= +github.com/stratosnet/cosmos-sdk v0.47.5-stratos h1:g0qhd8SurXdq6UttDL6h3+G8N/fhNTm7cwE3cIqWg6o= +github.com/stratosnet/cosmos-sdk v0.47.5-stratos/go.mod h1:WDWuv5LQB7RzVwlD1WEaYOZZZk0DzQf9o8CMD3NHrPI= github.com/stratosnet/ledger-stratos-go v0.0.0-20230728192009-175657d24cb0 h1:Y8vzNO2ieC7ViVbge7v0eT/ft3nzwVCH78soFeqSJr4= github.com/stratosnet/ledger-stratos-go v0.0.0-20230728192009-175657d24cb0/go.mod h1:9T0Ii/AMWWnJRtvKYKB4kDdraaOP76J+K5/IbRXQgyc= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= From da93a10c2e9cff17b2a27d5c4c57366b1e14022e Mon Sep 17 00:00:00 2001 From: Xiong Date: Thu, 9 Nov 2023 12:23:24 -0500 Subject: [PATCH 15/15] update cosmos-sdk --- cmd/stchaind/main.go | 7 +++---- go.mod | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/cmd/stchaind/main.go b/cmd/stchaind/main.go index 86d9fc8c..91cfedcf 100644 --- a/cmd/stchaind/main.go +++ b/cmd/stchaind/main.go @@ -1,7 +1,7 @@ package main import ( - "go/doc/comment" + "crypto/tls" "os" sdkmath "cosmossdk.io/math" @@ -18,9 +18,8 @@ import ( const EnvPrefix = "" var ( - // Force to build with go1.19, because sorting algorithm has been rewritten since go1.19 - // The order of sorted results will be different between go1.18 & go1.19 if the values of the compared elements are equal - doc comment.Doc + // Force to build with go1.20 + noUsage tls.CertificateVerificationError ) func main() { diff --git a/go.mod b/go.mod index 7f2f6e21..add29062 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/stratosnet/stratos-chain -go 1.19 +go 1.20 require ( cosmossdk.io/api v0.3.1