From 28facaec64e8b071e6e8c6f8d4601b40bd617c00 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Apr 2022 12:24:09 +0200 Subject: [PATCH 1/3] build(deps): bump codecov/codecov-action from 2.1.0 to 3 (#463) --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 97d4308a81..08b51b6c46 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,7 +49,7 @@ jobs: run: | make test-unit-cover if: env.GIT_DIFF - - uses: codecov/codecov-action@v2.1.0 + - uses: codecov/codecov-action@v3 with: file: ./coverage.txt fail_ci_if_error: true From 1f7cb7515a3b91f130a17a13b161861962bd5db3 Mon Sep 17 00:00:00 2001 From: Loredana Cirstea Date: Wed, 6 Apr 2022 15:03:44 +0300 Subject: [PATCH 2/3] [ENG-128] Fee distribution - fees v1 proto and types (#461) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * x/fees v1 proto and types * x/fees - PR review fixes https://github.com/tharsis/evmos/pull/461#pullrequestreview-933329127 Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> --- docs/api/proto-docs.md | 395 ++++++ proto/evmos/fees/v1/fees.proto | 20 + proto/evmos/fees/v1/genesis.proto | 33 + proto/evmos/fees/v1/query.proto | 89 ++ proto/evmos/fees/v1/tx.proto | 76 ++ x/fees/types/codec.go | 28 + x/fees/types/errors.go | 10 + x/fees/types/events.go | 11 + x/fees/types/fee.go | 37 + x/fees/types/fees.pb.go | 603 +++++++++ x/fees/types/genesis.go | 42 + x/fees/types/genesis.pb.go | 655 ++++++++++ x/fees/types/interfaces.go | 31 + x/fees/types/keys.go | 27 + x/fees/types/msg.go | 175 +++ x/fees/types/params.go | 96 ++ x/fees/types/query.pb.go | 1922 +++++++++++++++++++++++++++++ x/fees/types/query.pb.gw.go | 456 +++++++ x/fees/types/tx.pb.go | 1583 ++++++++++++++++++++++++ x/fees/types/tx.pb.gw.go | 337 +++++ 20 files changed, 6626 insertions(+) create mode 100644 proto/evmos/fees/v1/fees.proto create mode 100644 proto/evmos/fees/v1/genesis.proto create mode 100644 proto/evmos/fees/v1/query.proto create mode 100644 proto/evmos/fees/v1/tx.proto create mode 100644 x/fees/types/codec.go create mode 100644 x/fees/types/errors.go create mode 100644 x/fees/types/events.go create mode 100644 x/fees/types/fee.go create mode 100644 x/fees/types/fees.pb.go create mode 100644 x/fees/types/genesis.go create mode 100644 x/fees/types/genesis.pb.go create mode 100644 x/fees/types/interfaces.go create mode 100644 x/fees/types/keys.go create mode 100644 x/fees/types/msg.go create mode 100644 x/fees/types/params.go create mode 100644 x/fees/types/query.pb.go create mode 100644 x/fees/types/query.pb.gw.go create mode 100644 x/fees/types/tx.pb.go create mode 100644 x/fees/types/tx.pb.gw.go diff --git a/docs/api/proto-docs.md b/docs/api/proto-docs.md index e81252d497..4def75126f 100644 --- a/docs/api/proto-docs.md +++ b/docs/api/proto-docs.md @@ -70,6 +70,36 @@ - [Msg](#evmos.erc20.v1.Msg) +- [evmos/fees/v1/fees.proto](#evmos/fees/v1/fees.proto) + - [DevFeeInfo](#evmos.fees.v1.DevFeeInfo) + - [DevFeeInfosPerDeployer](#evmos.fees.v1.DevFeeInfosPerDeployer) + +- [evmos/fees/v1/genesis.proto](#evmos/fees/v1/genesis.proto) + - [GenesisState](#evmos.fees.v1.GenesisState) + - [Params](#evmos.fees.v1.Params) + +- [evmos/fees/v1/query.proto](#evmos/fees/v1/query.proto) + - [QueryDevFeeInfoRequest](#evmos.fees.v1.QueryDevFeeInfoRequest) + - [QueryDevFeeInfoResponse](#evmos.fees.v1.QueryDevFeeInfoResponse) + - [QueryDevFeeInfosPerDeployerRequest](#evmos.fees.v1.QueryDevFeeInfosPerDeployerRequest) + - [QueryDevFeeInfosPerDeployerResponse](#evmos.fees.v1.QueryDevFeeInfosPerDeployerResponse) + - [QueryDevFeeInfosRequest](#evmos.fees.v1.QueryDevFeeInfosRequest) + - [QueryDevFeeInfosResponse](#evmos.fees.v1.QueryDevFeeInfosResponse) + - [QueryParamsRequest](#evmos.fees.v1.QueryParamsRequest) + - [QueryParamsResponse](#evmos.fees.v1.QueryParamsResponse) + + - [Query](#evmos.fees.v1.Query) + +- [evmos/fees/v1/tx.proto](#evmos/fees/v1/tx.proto) + - [MsgCancelDevFeeInfo](#evmos.fees.v1.MsgCancelDevFeeInfo) + - [MsgCancelDevFeeInfoResponse](#evmos.fees.v1.MsgCancelDevFeeInfoResponse) + - [MsgRegisterDevFeeInfo](#evmos.fees.v1.MsgRegisterDevFeeInfo) + - [MsgRegisterDevFeeInfoResponse](#evmos.fees.v1.MsgRegisterDevFeeInfoResponse) + - [MsgUpdateDevFeeInfo](#evmos.fees.v1.MsgUpdateDevFeeInfo) + - [MsgUpdateDevFeeInfoResponse](#evmos.fees.v1.MsgUpdateDevFeeInfoResponse) + + - [Msg](#evmos.fees.v1.Msg) + - [evmos/incentives/v1/incentives.proto](#evmos/incentives/v1/incentives.proto) - [CancelIncentiveProposal](#evmos.incentives.v1.CancelIncentiveProposal) - [GasMeter](#evmos.incentives.v1.GasMeter) @@ -943,6 +973,371 @@ Msg defines the erc20 Msg service. + +

Top

+ +## evmos/fees/v1/fees.proto + + + + + +### DevFeeInfo +DevFeeInfo defines an instance that organizes fee distribution conditions +for the owner of a given smart contract + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `contract_address` | [string](#string) | | hex address of registered contract | +| `deployer_address` | [string](#string) | | bech32 address of contract deployer | +| `withdraw_address` | [string](#string) | | bech32 address of account receiving the transaction fees it defaults to deployer_address | + + + + + + + + +### DevFeeInfosPerDeployer +DevFeeInfosPerDeployer defines an instance that keeps track of all +contracts registered by a deployer + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `contract_addresses` | [string](#string) | repeated | | + + + + + + + + + + + + + + + + +

Top

+ +## evmos/fees/v1/genesis.proto + + + + + +### GenesisState +GenesisState defines the module's genesis state. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `params` | [Params](#evmos.fees.v1.Params) | | module parameters | +| `dev_fee_infos` | [DevFeeInfo](#evmos.fees.v1.DevFeeInfo) | repeated | active registered contracts | + + + + + + + + +### Params +Params defines the fees module params + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `enable_fees` | [bool](#bool) | | parameter to enable fees | +| `developer_shares` | [string](#string) | | developer_shares defines the proportion of the transaction fees to be distributed to the registered contract owner | +| `validator_shares` | [string](#string) | | developer_shares defines the proportion of the transaction fees to be distributed to validators | + + + + + + + + + + + + + + + + +

Top

+ +## evmos/fees/v1/query.proto + + + + + +### QueryDevFeeInfoRequest +QueryDevFeeInfoRequest is the request type for the Query/DevFeeInfo RPC +method. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `contract_address` | [string](#string) | | contract identifier is the hex contract address of a contract | + + + + + + + + +### QueryDevFeeInfoResponse +QueryDevFeeInfoResponse is the response type for the Query/DevFeeInfo RPC +method. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `fee` | [DevFeeInfo](#evmos.fees.v1.DevFeeInfo) | | | + + + + + + + + +### QueryDevFeeInfosPerDeployerRequest +QueryDevFeeInfosPerDeployerRequest is the request type for the +Query/DevFeeInfosPerDeployer RPC method. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `deployer_address` | [string](#string) | | deployer bech32 address | +| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. | + + + + + + + + +### QueryDevFeeInfosPerDeployerResponse +QueryDevFeeInfosPerDeployerResponse is the response type for the +Query/DevFeeInfosPerDeployer RPC method. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `fees` | [DevFeeInfo](#evmos.fees.v1.DevFeeInfo) | repeated | | +| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | + + + + + + + + +### QueryDevFeeInfosRequest +QueryDevFeeInfosRequest is the request type for the Query/DevFeeInfos RPC +method. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `pagination` | [cosmos.base.query.v1beta1.PageRequest](#cosmos.base.query.v1beta1.PageRequest) | | pagination defines an optional pagination for the request. | + + + + + + + + +### QueryDevFeeInfosResponse +QueryDevFeeInfosResponse is the response type for the Query/DevFeeInfos +RPC method. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `fees` | [DevFeeInfo](#evmos.fees.v1.DevFeeInfo) | repeated | | +| `pagination` | [cosmos.base.query.v1beta1.PageResponse](#cosmos.base.query.v1beta1.PageResponse) | | pagination defines the pagination in the response. | + + + + + + + + +### QueryParamsRequest +QueryParamsRequest is the request type for the Query/Params RPC method. + + + + + + + + +### QueryParamsResponse +QueryParamsResponse is the response type for the Query/Params RPC +method. + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `params` | [Params](#evmos.fees.v1.Params) | | | + + + + + + + + + + + + + + +### Query +Query defines the gRPC querier service. + +| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | +| ----------- | ------------ | ------------- | ------------| ------- | -------- | +| `DevFeeInfos` | [QueryDevFeeInfosRequest](#evmos.fees.v1.QueryDevFeeInfosRequest) | [QueryDevFeeInfosResponse](#evmos.fees.v1.QueryDevFeeInfosResponse) | DevFeeInfos retrieves all registered contracts for fee distribution | GET|/evmos/fees/v1/fees| +| `DevFeeInfo` | [QueryDevFeeInfoRequest](#evmos.fees.v1.QueryDevFeeInfoRequest) | [QueryDevFeeInfoResponse](#evmos.fees.v1.QueryDevFeeInfoResponse) | DevFeeInfo retrieves a registered contract for fee distribution | GET|/evmos/fees/v1/fees/{contract_address}| +| `Params` | [QueryParamsRequest](#evmos.fees.v1.QueryParamsRequest) | [QueryParamsResponse](#evmos.fees.v1.QueryParamsResponse) | Params retrieves the fees module params | GET|/evmos/fees/v1/params| +| `DevFeeInfosPerDeployer` | [QueryDevFeeInfosPerDeployerRequest](#evmos.fees.v1.QueryDevFeeInfosPerDeployerRequest) | [QueryDevFeeInfosPerDeployerResponse](#evmos.fees.v1.QueryDevFeeInfosPerDeployerResponse) | DevFeeInfosPerDeployer retrieves all contracts that a deployer has registered for fee distribution | GET|/evmos/fees/v1/fees/{deployer_address}| + + + + + + +

Top

+ +## evmos/fees/v1/tx.proto + + + + + +### MsgCancelDevFeeInfo +MsgCancelDevFeeInfo defines a message that cancels a registered a +DevFeeInfo + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `contract_address` | [string](#string) | | contract hex address | +| `deployer_address` | [string](#string) | | deployer bech32 address | + + + + + + + + +### MsgCancelDevFeeInfoResponse +MsgCancelDevFeeInfoResponse defines the MsgCancelDevFeeInfo response type + + + + + + + + +### MsgRegisterDevFeeInfo +MsgRegisterFeesContract defines a message that registers a DevFeeInfo + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `contract_address` | [string](#string) | | contract hex address | +| `deployer_address` | [string](#string) | | bech32 address of message sender, must be the same as the origin EOA sending the transaction which deploys the contract | +| `withdraw_address` | [string](#string) | | bech32 address of account receiving the transaction fees | +| `nonces` | [uint64](#uint64) | repeated | array of nonces from the address path, where the last nonce is the nonce that determines the contract's address - it can be an EOA nonce or a factory contract nonce | + + + + + + + + +### MsgRegisterDevFeeInfoResponse +MsgRegisterDevFeeInfoResponse defines the MsgRegisterDevFeeInfo response +type + + + + + + + + +### MsgUpdateDevFeeInfo +MsgUpdateDevFeeInfo defines a message that updates the withdraw address for +a registered DevFeeInfo + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| `contract_address` | [string](#string) | | contract hex address | +| `deployer_address` | [string](#string) | | deployer bech32 address | +| `withdraw_address` | [string](#string) | | new withdraw bech32 address for receiving the transaction fees | + + + + + + + + +### MsgUpdateDevFeeInfoResponse +MsgUpdateDevFeeInfoResponse defines the MsgUpdateDevFeeInfo response type + + + + + + + + + + + + + + +### Msg +Msg defines the fees Msg service. + +| Method Name | Request Type | Response Type | Description | HTTP Verb | Endpoint | +| ----------- | ------------ | ------------- | ------------| ------- | -------- | +| `RegisterDevFeeInfo` | [MsgRegisterDevFeeInfo](#evmos.fees.v1.MsgRegisterDevFeeInfo) | [MsgRegisterDevFeeInfoResponse](#evmos.fees.v1.MsgRegisterDevFeeInfoResponse) | RegisterDevFeeInfo is used by a deployer to register a new contract for receiving transaction fees | GET|/evmos/fees/v1/tx/register_fee_contract| +| `CancelDevFeeInfo` | [MsgCancelDevFeeInfo](#evmos.fees.v1.MsgCancelDevFeeInfo) | [MsgCancelDevFeeInfoResponse](#evmos.fees.v1.MsgCancelDevFeeInfoResponse) | CancelDevFeeInfo is used by a deployer to cancel a registered contract and stop receiving transaction fees | GET|/evmos/fees/v1/tx/cancel_fee_contract| +| `UpdateDevFeeInfo` | [MsgUpdateDevFeeInfo](#evmos.fees.v1.MsgUpdateDevFeeInfo) | [MsgUpdateDevFeeInfoResponse](#evmos.fees.v1.MsgUpdateDevFeeInfoResponse) | UpdateDevFeeInfo is used by a deployer to update the withdraw address | GET|/evmos/fees/v1/tx/update_fee_contract| + + + + +

Top

diff --git a/proto/evmos/fees/v1/fees.proto b/proto/evmos/fees/v1/fees.proto new file mode 100644 index 0000000000..cb8de0fa14 --- /dev/null +++ b/proto/evmos/fees/v1/fees.proto @@ -0,0 +1,20 @@ +syntax = "proto3"; +package evmos.fees.v1; + +option go_package = "github.com/tharsis/evmos/v3/x/fees/types"; + +// DevFeeInfo defines an instance that organizes fee distribution conditions +// for the owner of a given smart contract +message DevFeeInfo { + // hex address of registered contract + string contract_address = 1; + // bech32 address of contract deployer + string deployer_address = 2; + // bech32 address of account receiving the transaction fees + // it defaults to deployer_address + string withdraw_address = 3; +} + +// DevFeeInfosPerDeployer defines an instance that keeps track of all +// contracts registered by a deployer +message DevFeeInfosPerDeployer { repeated string contract_addresses = 1; } diff --git a/proto/evmos/fees/v1/genesis.proto b/proto/evmos/fees/v1/genesis.proto new file mode 100644 index 0000000000..db24f3c857 --- /dev/null +++ b/proto/evmos/fees/v1/genesis.proto @@ -0,0 +1,33 @@ +syntax = "proto3"; +package evmos.fees.v1; +import "evmos/fees/v1/fees.proto"; + +import "gogoproto/gogo.proto"; + +option go_package = "github.com/tharsis/evmos/v3/x/fees/types"; + +// GenesisState defines the module's genesis state. +message GenesisState { + // module parameters + Params params = 1 [ (gogoproto.nullable) = false ]; + // active registered contracts + repeated DevFeeInfo dev_fee_infos = 2 [ (gogoproto.nullable) = false ]; +} + +// Params defines the fees module params +message Params { + // parameter to enable fees + bool enable_fees = 1; + // developer_shares defines the proportion of the transaction fees to be + // distributed to the registered contract owner + string developer_shares = 2 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; + // developer_shares defines the proportion of the transaction fees to be + // distributed to validators + string validator_shares = 3 [ + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (gogoproto.nullable) = false + ]; +} diff --git a/proto/evmos/fees/v1/query.proto b/proto/evmos/fees/v1/query.proto new file mode 100644 index 0000000000..d470aabf9e --- /dev/null +++ b/proto/evmos/fees/v1/query.proto @@ -0,0 +1,89 @@ +syntax = "proto3"; +package evmos.fees.v1; + +import "cosmos/base/query/v1beta1/pagination.proto"; +import "evmos/fees/v1/genesis.proto"; +import "evmos/fees/v1/fees.proto"; +import "google/api/annotations.proto"; +import "gogoproto/gogo.proto"; + +option go_package = "github.com/tharsis/evmos/v3/x/fees/types"; + +// Query defines the gRPC querier service. +service Query { + // DevFeeInfos retrieves all registered contracts for fee distribution + rpc DevFeeInfos(QueryDevFeeInfosRequest) returns (QueryDevFeeInfosResponse) { + option (google.api.http).get = "/evmos/fees/v1/fees"; + } + + // DevFeeInfo retrieves a registered contract for fee distribution + rpc DevFeeInfo(QueryDevFeeInfoRequest) returns (QueryDevFeeInfoResponse) { + option (google.api.http).get = "/evmos/fees/v1/fees/{contract_address}"; + } + + // Params retrieves the fees module params + rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { + option (google.api.http).get = "/evmos/fees/v1/params"; + } + + // DevFeeInfosPerDeployer retrieves all contracts that a deployer has + // registered for fee distribution + rpc DevFeeInfosPerDeployer(QueryDevFeeInfosPerDeployerRequest) + returns (QueryDevFeeInfosPerDeployerResponse) { + option (google.api.http).get = "/evmos/fees/v1/fees/{deployer_address}"; + } +} + +// QueryDevFeeInfosRequest is the request type for the Query/DevFeeInfos RPC +// method. +message QueryDevFeeInfosRequest { + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 1; +} + +// QueryDevFeeInfosResponse is the response type for the Query/DevFeeInfos +// RPC method. +message QueryDevFeeInfosResponse { + repeated DevFeeInfo fees = 1 [ (gogoproto.nullable) = false ]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} + +// QueryDevFeeInfoRequest is the request type for the Query/DevFeeInfo RPC +// method. +message QueryDevFeeInfoRequest { + // contract identifier is the hex contract address of a contract + string contract_address = 1; +} + +// QueryDevFeeInfoResponse is the response type for the Query/DevFeeInfo RPC +// method. +message QueryDevFeeInfoResponse { + DevFeeInfo fee = 1 [ (gogoproto.nullable) = false ]; +} + +// 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 ]; +} + +// QueryDevFeeInfosPerDeployerRequest is the request type for the +// Query/DevFeeInfosPerDeployer RPC method. +message QueryDevFeeInfosPerDeployerRequest { + // deployer bech32 address + string deployer_address = 1; + // pagination defines an optional pagination for the request. + cosmos.base.query.v1beta1.PageRequest pagination = 2; +} + +// QueryDevFeeInfosPerDeployerResponse is the response type for the +// Query/DevFeeInfosPerDeployer RPC method. +message QueryDevFeeInfosPerDeployerResponse { + repeated DevFeeInfo fees = 1 [ (gogoproto.nullable) = false ]; + // pagination defines the pagination in the response. + cosmos.base.query.v1beta1.PageResponse pagination = 2; +} diff --git a/proto/evmos/fees/v1/tx.proto b/proto/evmos/fees/v1/tx.proto new file mode 100644 index 0000000000..902f64ec1e --- /dev/null +++ b/proto/evmos/fees/v1/tx.proto @@ -0,0 +1,76 @@ +syntax = "proto3"; +package evmos.fees.v1; + +import "google/api/annotations.proto"; +import "gogoproto/gogo.proto"; + +option go_package = "github.com/tharsis/evmos/v3/x/fees/types"; + +// Msg defines the fees Msg service. +service Msg { + // RegisterDevFeeInfo is used by a deployer to register a new contract for + // receiving transaction fees + rpc RegisterDevFeeInfo(MsgRegisterDevFeeInfo) + returns (MsgRegisterDevFeeInfoResponse) { + option (google.api.http).post = "/evmos/fees/v1/tx/register_fee_contract"; + }; + // CancelDevFeeInfo is used by a deployer to cancel a registered contract + // and stop receiving transaction fees + rpc CancelDevFeeInfo(MsgCancelDevFeeInfo) + returns (MsgCancelDevFeeInfoResponse) { + option (google.api.http).post = "/evmos/fees/v1/tx/cancel_fee_contract"; + }; + // UpdateDevFeeInfo is used by a deployer to update the withdraw address + rpc UpdateDevFeeInfo(MsgUpdateDevFeeInfo) + returns (MsgUpdateDevFeeInfoResponse) { + option (google.api.http).post = "/evmos/fees/v1/tx/update_fee_contract"; + }; +} + +// MsgRegisterFeesContract defines a message that registers a DevFeeInfo +message MsgRegisterDevFeeInfo { + option (gogoproto.equal) = false; + // contract hex address + string contract_address = 1; + // bech32 address of message sender, must be the same as the origin EOA + // sending the transaction which deploys the contract + string deployer_address = 2; + // bech32 address of account receiving the transaction fees + string withdraw_address = 3; + // array of nonces from the address path, where the last nonce is + // the nonce that determines the contract's address - it can be an EOA nonce + // or a factory contract nonce + repeated uint64 nonces = 4; +} + +// MsgRegisterDevFeeInfoResponse defines the MsgRegisterDevFeeInfo response +// type +message MsgRegisterDevFeeInfoResponse {} + +// MsgCancelDevFeeInfo defines a message that cancels a registered a +// DevFeeInfo +message MsgCancelDevFeeInfo { + option (gogoproto.equal) = false; + // contract hex address + string contract_address = 1; + // deployer bech32 address + string deployer_address = 2; +} + +// MsgCancelDevFeeInfoResponse defines the MsgCancelDevFeeInfo response type +message MsgCancelDevFeeInfoResponse {} + +// MsgUpdateDevFeeInfo defines a message that updates the withdraw address for +// a registered DevFeeInfo +message MsgUpdateDevFeeInfo { + option (gogoproto.equal) = false; + // contract hex address + string contract_address = 1; + // deployer bech32 address + string deployer_address = 2; + // new withdraw bech32 address for receiving the transaction fees + string withdraw_address = 3; +} + +// MsgUpdateDevFeeInfoResponse defines the MsgUpdateDevFeeInfo response type +message MsgUpdateDevFeeInfoResponse {} diff --git a/x/fees/types/codec.go b/x/fees/types/codec.go new file mode 100644 index 0000000000..89e1f45310 --- /dev/null +++ b/x/fees/types/codec.go @@ -0,0 +1,28 @@ +package types + +import ( + "github.com/cosmos/cosmos-sdk/codec" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/msgservice" +) + +// ModuleCdc references the global fees module codec. Note, the codec +// should ONLY be used in certain instances of tests and for JSON encoding. +// +// The actual codec used for serialization should be provided to +// modules/fees and defined at the application level. +var ModuleCdc = codec.NewProtoCodec(codectypes.NewInterfaceRegistry()) + +// RegisterInterfaces register implementations +func RegisterInterfaces(registry codectypes.InterfaceRegistry) { + + registry.RegisterImplementations( + (*sdk.Msg)(nil), + &MsgRegisterDevFeeInfo{}, + &MsgCancelDevFeeInfo{}, + &MsgUpdateDevFeeInfo{}, + ) + + msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) +} diff --git a/x/fees/types/errors.go b/x/fees/types/errors.go new file mode 100644 index 0000000000..343806b8f3 --- /dev/null +++ b/x/fees/types/errors.go @@ -0,0 +1,10 @@ +package types + +import ( + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +// errors +var ( + ErrInternalFee = sdkerrors.Register(ModuleName, 2, "internal fees error") +) diff --git a/x/fees/types/events.go b/x/fees/types/events.go new file mode 100644 index 0000000000..88a7e6fe77 --- /dev/null +++ b/x/fees/types/events.go @@ -0,0 +1,11 @@ +package types + +// fees events +const ( + EventTypeRegisterDevFeeInfo = "register_dev_fee_info" + EventTypeCancelDevFeeInfo = "cancel_dev_fee_info" + EventTypeUpdateDevFeeInfo = "update_dev_fee_info" + + AttributeKeyContract = "contract" + AttributeKeyWithdrawAddress = "withdraw_address" +) diff --git a/x/fees/types/fee.go b/x/fees/types/fee.go new file mode 100644 index 0000000000..5b7ac3f35e --- /dev/null +++ b/x/fees/types/fee.go @@ -0,0 +1,37 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/ethereum/go-ethereum/common" + ethermint "github.com/tharsis/ethermint/types" +) + +// NewFee returns an instance of DevFeeInfo +func NewDevFeeInfo( + contract common.Address, + owner, + withdraw sdk.AccAddress, +) DevFeeInfo { + return DevFeeInfo{ + ContractAddress: contract.String(), + DeployerAddress: owner.String(), + WithdrawAddress: withdraw.String(), + } +} + +// Validate performs a stateless validation of a DevFeeInfo +func (i DevFeeInfo) Validate() error { + if err := ethermint.ValidateAddress(i.ContractAddress); err != nil { + return err + } + + if _, err := sdk.AccAddressFromBech32(i.DeployerAddress); err != nil { + return err + } + + if _, err := sdk.AccAddressFromBech32(i.WithdrawAddress); err != nil { + return err + } + + return nil +} diff --git a/x/fees/types/fees.pb.go b/x/fees/types/fees.pb.go new file mode 100644 index 0000000000..fd2b5eb81a --- /dev/null +++ b/x/fees/types/fees.pb.go @@ -0,0 +1,603 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: evmos/fees/v1/fees.proto + +package types + +import ( + fmt "fmt" + proto "github.com/gogo/protobuf/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 + +// DevFeeInfo defines an instance that organizes fee distribution conditions +// for the owner of a given smart contract +type DevFeeInfo struct { + // hex address of registered contract + ContractAddress string `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + // bech32 address of contract deployer + DeployerAddress string `protobuf:"bytes,2,opt,name=deployer_address,json=deployerAddress,proto3" json:"deployer_address,omitempty"` + // bech32 address of account receiving the transaction fees + // it defaults to deployer_address + WithdrawAddress string `protobuf:"bytes,3,opt,name=withdraw_address,json=withdrawAddress,proto3" json:"withdraw_address,omitempty"` +} + +func (m *DevFeeInfo) Reset() { *m = DevFeeInfo{} } +func (m *DevFeeInfo) String() string { return proto.CompactTextString(m) } +func (*DevFeeInfo) ProtoMessage() {} +func (*DevFeeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_1527b6d4bf16c067, []int{0} +} +func (m *DevFeeInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DevFeeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DevFeeInfo.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 *DevFeeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_DevFeeInfo.Merge(m, src) +} +func (m *DevFeeInfo) XXX_Size() int { + return m.Size() +} +func (m *DevFeeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_DevFeeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_DevFeeInfo proto.InternalMessageInfo + +func (m *DevFeeInfo) GetContractAddress() string { + if m != nil { + return m.ContractAddress + } + return "" +} + +func (m *DevFeeInfo) GetDeployerAddress() string { + if m != nil { + return m.DeployerAddress + } + return "" +} + +func (m *DevFeeInfo) GetWithdrawAddress() string { + if m != nil { + return m.WithdrawAddress + } + return "" +} + +// DevFeeInfosPerDeployer defines an instance that keeps track of all +// contracts registered by a deployer +type DevFeeInfosPerDeployer struct { + ContractAddresses []string `protobuf:"bytes,1,rep,name=contract_addresses,json=contractAddresses,proto3" json:"contract_addresses,omitempty"` +} + +func (m *DevFeeInfosPerDeployer) Reset() { *m = DevFeeInfosPerDeployer{} } +func (m *DevFeeInfosPerDeployer) String() string { return proto.CompactTextString(m) } +func (*DevFeeInfosPerDeployer) ProtoMessage() {} +func (*DevFeeInfosPerDeployer) Descriptor() ([]byte, []int) { + return fileDescriptor_1527b6d4bf16c067, []int{1} +} +func (m *DevFeeInfosPerDeployer) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DevFeeInfosPerDeployer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_DevFeeInfosPerDeployer.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 *DevFeeInfosPerDeployer) XXX_Merge(src proto.Message) { + xxx_messageInfo_DevFeeInfosPerDeployer.Merge(m, src) +} +func (m *DevFeeInfosPerDeployer) XXX_Size() int { + return m.Size() +} +func (m *DevFeeInfosPerDeployer) XXX_DiscardUnknown() { + xxx_messageInfo_DevFeeInfosPerDeployer.DiscardUnknown(m) +} + +var xxx_messageInfo_DevFeeInfosPerDeployer proto.InternalMessageInfo + +func (m *DevFeeInfosPerDeployer) GetContractAddresses() []string { + if m != nil { + return m.ContractAddresses + } + return nil +} + +func init() { + proto.RegisterType((*DevFeeInfo)(nil), "evmos.fees.v1.DevFeeInfo") + proto.RegisterType((*DevFeeInfosPerDeployer)(nil), "evmos.fees.v1.DevFeeInfosPerDeployer") +} + +func init() { proto.RegisterFile("evmos/fees/v1/fees.proto", fileDescriptor_1527b6d4bf16c067) } + +var fileDescriptor_1527b6d4bf16c067 = []byte{ + // 239 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x48, 0x2d, 0xcb, 0xcd, + 0x2f, 0xd6, 0x4f, 0x4b, 0x4d, 0x2d, 0xd6, 0x2f, 0x33, 0x04, 0xd3, 0x7a, 0x05, 0x45, 0xf9, 0x25, + 0xf9, 0x42, 0xbc, 0x60, 0x19, 0x3d, 0xb0, 0x48, 0x99, 0xa1, 0x52, 0x2f, 0x23, 0x17, 0x97, 0x4b, + 0x6a, 0x99, 0x5b, 0x6a, 0xaa, 0x67, 0x5e, 0x5a, 0xbe, 0x90, 0x26, 0x97, 0x40, 0x72, 0x7e, 0x5e, + 0x49, 0x51, 0x62, 0x72, 0x49, 0x7c, 0x62, 0x4a, 0x4a, 0x51, 0x6a, 0x71, 0xb1, 0x04, 0xa3, 0x02, + 0xa3, 0x06, 0x67, 0x10, 0x3f, 0x4c, 0xdc, 0x11, 0x22, 0x0c, 0x52, 0x9a, 0x92, 0x5a, 0x90, 0x93, + 0x5f, 0x99, 0x5a, 0x04, 0x57, 0xca, 0x04, 0x51, 0x0a, 0x13, 0x47, 0x52, 0x5a, 0x9e, 0x59, 0x92, + 0x91, 0x52, 0x94, 0x58, 0x0e, 0x57, 0xca, 0x0c, 0x51, 0x0a, 0x13, 0x87, 0x2a, 0x55, 0x72, 0xe7, + 0x12, 0x43, 0x38, 0xa7, 0x38, 0x20, 0xb5, 0xc8, 0x05, 0x6a, 0x96, 0x90, 0x2e, 0x97, 0x10, 0xba, + 0xd3, 0x52, 0x41, 0x8e, 0x63, 0xd6, 0xe0, 0x0c, 0x12, 0x44, 0x73, 0x5c, 0x6a, 0xb1, 0x93, 0xd3, + 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, + 0xc3, 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0x69, 0xa4, 0x67, 0x96, 0x64, 0x94, + 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0x97, 0x64, 0x24, 0x16, 0x15, 0x67, 0x16, 0xeb, 0x43, 0x82, + 0xab, 0xcc, 0x58, 0xbf, 0x02, 0x12, 0x66, 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x49, 0x6c, 0xe0, 0x20, + 0x33, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xb1, 0xff, 0x67, 0x49, 0x4e, 0x01, 0x00, 0x00, +} + +func (m *DevFeeInfo) 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 *DevFeeInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DevFeeInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.WithdrawAddress) > 0 { + i -= len(m.WithdrawAddress) + copy(dAtA[i:], m.WithdrawAddress) + i = encodeVarintFees(dAtA, i, uint64(len(m.WithdrawAddress))) + i-- + dAtA[i] = 0x1a + } + if len(m.DeployerAddress) > 0 { + i -= len(m.DeployerAddress) + copy(dAtA[i:], m.DeployerAddress) + i = encodeVarintFees(dAtA, i, uint64(len(m.DeployerAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.ContractAddress) > 0 { + i -= len(m.ContractAddress) + copy(dAtA[i:], m.ContractAddress) + i = encodeVarintFees(dAtA, i, uint64(len(m.ContractAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DevFeeInfosPerDeployer) 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 *DevFeeInfosPerDeployer) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DevFeeInfosPerDeployer) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ContractAddresses) > 0 { + for iNdEx := len(m.ContractAddresses) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.ContractAddresses[iNdEx]) + copy(dAtA[i:], m.ContractAddresses[iNdEx]) + i = encodeVarintFees(dAtA, i, uint64(len(m.ContractAddresses[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func encodeVarintFees(dAtA []byte, offset int, v uint64) int { + offset -= sovFees(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *DevFeeInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ContractAddress) + if l > 0 { + n += 1 + l + sovFees(uint64(l)) + } + l = len(m.DeployerAddress) + if l > 0 { + n += 1 + l + sovFees(uint64(l)) + } + l = len(m.WithdrawAddress) + if l > 0 { + n += 1 + l + sovFees(uint64(l)) + } + return n +} + +func (m *DevFeeInfosPerDeployer) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ContractAddresses) > 0 { + for _, s := range m.ContractAddresses { + l = len(s) + n += 1 + l + sovFees(uint64(l)) + } + } + return n +} + +func sovFees(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozFees(x uint64) (n int) { + return sovFees(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *DevFeeInfo) 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 ErrIntOverflowFees + } + 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: DevFeeInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DevFeeInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowFees + } + 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 ErrInvalidLengthFees + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthFees + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContractAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeployerAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowFees + } + 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 ErrInvalidLengthFees + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthFees + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DeployerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WithdrawAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowFees + } + 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 ErrInvalidLengthFees + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthFees + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WithdrawAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipFees(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthFees + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DevFeeInfosPerDeployer) 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 ErrIntOverflowFees + } + 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: DevFeeInfosPerDeployer: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DevFeeInfosPerDeployer: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractAddresses", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowFees + } + 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 ErrInvalidLengthFees + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthFees + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContractAddresses = append(m.ContractAddresses, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipFees(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthFees + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipFees(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, ErrIntOverflowFees + } + 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, ErrIntOverflowFees + } + 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, ErrIntOverflowFees + } + 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, ErrInvalidLengthFees + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupFees + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthFees + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthFees = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowFees = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupFees = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/fees/types/genesis.go b/x/fees/types/genesis.go new file mode 100644 index 0000000000..a72a58ce6a --- /dev/null +++ b/x/fees/types/genesis.go @@ -0,0 +1,42 @@ +package types + +import "fmt" + +// NewGenesisState creates a new genesis state. +func NewGenesisState( + params Params, + feeInfos []DevFeeInfo, +) GenesisState { + return GenesisState{ + Params: params, + DevFeeInfos: feeInfos, + } +} + +// DefaultGenesisState sets default evm genesis state with empty accounts and +// default params and chain config values. +func DefaultGenesisState() *GenesisState { + return &GenesisState{ + Params: DefaultParams(), + } +} + +// Validate performs basic genesis state validation returning an error upon any +// failure. +func (gs GenesisState) Validate() error { + seenContractIn := make(map[string]bool) + for _, in := range gs.DevFeeInfos { + // only one fee per contract + if seenContractIn[in.ContractAddress] { + return fmt.Errorf("contract duplicated on genesis '%s'", in.ContractAddress) + } + + if err := in.Validate(); err != nil { + return err + } + + seenContractIn[in.ContractAddress] = true + } + + return gs.Params.Validate() +} diff --git a/x/fees/types/genesis.pb.go b/x/fees/types/genesis.pb.go new file mode 100644 index 0000000000..c55bb6cda7 --- /dev/null +++ b/x/fees/types/genesis.pb.go @@ -0,0 +1,655 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: evmos/fees/v1/genesis.proto + +package types + +import ( + fmt "fmt" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" + _ "github.com/gogo/protobuf/gogoproto" + proto "github.com/gogo/protobuf/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 + +// GenesisState defines the module's genesis state. +type GenesisState struct { + // module parameters + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + // active registered contracts + DevFeeInfos []DevFeeInfo `protobuf:"bytes,2,rep,name=dev_fee_infos,json=devFeeInfos,proto3" json:"dev_fee_infos"` +} + +func (m *GenesisState) Reset() { *m = GenesisState{} } +func (m *GenesisState) String() string { return proto.CompactTextString(m) } +func (*GenesisState) ProtoMessage() {} +func (*GenesisState) Descriptor() ([]byte, []int) { + return fileDescriptor_27418e5be97fbe06, []int{0} +} +func (m *GenesisState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GenesisState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GenesisState.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 *GenesisState) XXX_Merge(src proto.Message) { + xxx_messageInfo_GenesisState.Merge(m, src) +} +func (m *GenesisState) XXX_Size() int { + return m.Size() +} +func (m *GenesisState) XXX_DiscardUnknown() { + xxx_messageInfo_GenesisState.DiscardUnknown(m) +} + +var xxx_messageInfo_GenesisState proto.InternalMessageInfo + +func (m *GenesisState) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + +func (m *GenesisState) GetDevFeeInfos() []DevFeeInfo { + if m != nil { + return m.DevFeeInfos + } + return nil +} + +// Params defines the fees module params +type Params struct { + // parameter to enable fees + EnableFees bool `protobuf:"varint,1,opt,name=enable_fees,json=enableFees,proto3" json:"enable_fees,omitempty"` + // developer_shares defines the proportion of the transaction fees to be + // distributed to the registered contract owner + DeveloperShares github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,2,opt,name=developer_shares,json=developerShares,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"developer_shares"` + // developer_shares defines the proportion of the transaction fees to be + // distributed to validators + ValidatorShares github_com_cosmos_cosmos_sdk_types.Dec `protobuf:"bytes,3,opt,name=validator_shares,json=validatorShares,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Dec" json:"validator_shares"` +} + +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_27418e5be97fbe06, []int{1} +} +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) GetEnableFees() bool { + if m != nil { + return m.EnableFees + } + return false +} + +func init() { + proto.RegisterType((*GenesisState)(nil), "evmos.fees.v1.GenesisState") + proto.RegisterType((*Params)(nil), "evmos.fees.v1.Params") +} + +func init() { proto.RegisterFile("evmos/fees/v1/genesis.proto", fileDescriptor_27418e5be97fbe06) } + +var fileDescriptor_27418e5be97fbe06 = []byte{ + // 340 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0xd1, 0xc1, 0x4e, 0xf2, 0x40, + 0x10, 0x07, 0xf0, 0xee, 0xc7, 0x17, 0xa2, 0x5b, 0x89, 0xa6, 0xd1, 0x04, 0x31, 0x29, 0x84, 0x83, + 0xe9, 0xc5, 0xdd, 0x00, 0x6f, 0x50, 0x09, 0xc6, 0x9b, 0x81, 0x93, 0x5e, 0xc8, 0x42, 0xa7, 0xa5, + 0x11, 0xba, 0x4d, 0xa7, 0x6e, 0xf4, 0x0d, 0x3c, 0xfa, 0x58, 0x1c, 0x39, 0x1a, 0x0f, 0x68, 0xe0, + 0x45, 0x4c, 0x77, 0x49, 0x23, 0x1e, 0x3d, 0x75, 0xf3, 0x9f, 0xd9, 0xdf, 0x34, 0x3b, 0xf4, 0x02, + 0xd4, 0x42, 0x22, 0x0f, 0x01, 0x90, 0xab, 0x0e, 0x8f, 0x20, 0x01, 0x8c, 0x91, 0xa5, 0x99, 0xcc, + 0xa5, 0x53, 0xd3, 0x45, 0x56, 0x14, 0x99, 0xea, 0x34, 0xea, 0xfb, 0xbd, 0x3a, 0xd6, 0x8d, 0x8d, + 0xd3, 0x48, 0x46, 0x52, 0x1f, 0x79, 0x71, 0x32, 0x69, 0xfb, 0x95, 0xd0, 0xa3, 0x1b, 0x03, 0x8e, + 0x72, 0x91, 0x83, 0xd3, 0xa3, 0xd5, 0x54, 0x64, 0x62, 0x81, 0x75, 0xd2, 0x22, 0x9e, 0xdd, 0x3d, + 0x63, 0x7b, 0x03, 0xd8, 0x9d, 0x2e, 0xfa, 0xff, 0x97, 0xeb, 0xa6, 0x35, 0xdc, 0xb5, 0x3a, 0xd7, + 0xb4, 0x16, 0x80, 0x1a, 0x87, 0x00, 0xe3, 0x38, 0x09, 0x25, 0xd6, 0xff, 0xb5, 0x2a, 0x9e, 0xdd, + 0x3d, 0xff, 0x75, 0xb7, 0x0f, 0x6a, 0x00, 0x70, 0x9b, 0x84, 0x72, 0x77, 0xdf, 0x0e, 0xca, 0x04, + 0xdb, 0x9f, 0x84, 0x56, 0x8d, 0xee, 0x34, 0xa9, 0x0d, 0x89, 0x98, 0xcc, 0xa1, 0x20, 0xcd, 0x9f, + 0x1c, 0x0c, 0xa9, 0x89, 0x06, 0x00, 0xe8, 0xdc, 0xd3, 0x93, 0x00, 0x14, 0xcc, 0x65, 0x0a, 0xd9, + 0x18, 0x67, 0x22, 0x83, 0x62, 0x26, 0xf1, 0x0e, 0x7d, 0x56, 0xc0, 0x1f, 0xeb, 0xe6, 0x65, 0x14, + 0xe7, 0xb3, 0xa7, 0x09, 0x9b, 0xca, 0x05, 0x9f, 0x4a, 0x2c, 0x1e, 0xc5, 0x7c, 0xae, 0x30, 0x78, + 0xe4, 0xf9, 0x4b, 0x0a, 0xc8, 0xfa, 0x30, 0x1d, 0x1e, 0x97, 0xce, 0x48, 0x33, 0x05, 0xad, 0xc4, + 0x3c, 0x0e, 0x44, 0x2e, 0x4b, 0xba, 0xf2, 0x37, 0xba, 0x74, 0x0c, 0xed, 0xfb, 0xcb, 0x8d, 0x4b, + 0x56, 0x1b, 0x97, 0x7c, 0x6d, 0x5c, 0xf2, 0xb6, 0x75, 0xad, 0xd5, 0xd6, 0xb5, 0xde, 0xb7, 0xae, + 0xf5, 0xe0, 0xfd, 0x20, 0xf3, 0x99, 0xc8, 0x30, 0x46, 0x6e, 0x36, 0xa9, 0x7a, 0xfc, 0xd9, 0xac, + 0x53, 0xc3, 0x93, 0xaa, 0xde, 0x5b, 0xef, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xa9, 0x83, 0xdd, + 0x15, 0x02, 0x00, 0x00, +} + +func (m *GenesisState) 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 *GenesisState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.DevFeeInfos) > 0 { + for iNdEx := len(m.DevFeeInfos) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DevFeeInfos[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + 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 +} + +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 + { + size := m.ValidatorShares.Size() + i -= size + if _, err := m.ValidatorShares.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size := m.DeveloperShares.Size() + i -= size + if _, err := m.DeveloperShares.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintGenesis(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if m.EnableFees { + i-- + if m.EnableFees { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func encodeVarintGenesis(dAtA []byte, offset int, v uint64) int { + offset -= sovGenesis(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *GenesisState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovGenesis(uint64(l)) + if len(m.DevFeeInfos) > 0 { + for _, e := range m.DevFeeInfos { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } + return n +} + +func (m *Params) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.EnableFees { + n += 2 + } + l = m.DeveloperShares.Size() + n += 1 + l + sovGenesis(uint64(l)) + l = m.ValidatorShares.Size() + n += 1 + l + sovGenesis(uint64(l)) + return n +} + +func sovGenesis(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenesis(x uint64) (n int) { + return sovGenesis(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *GenesisState) 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: GenesisState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GenesisState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 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.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 DevFeeInfos", 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.DevFeeInfos = append(m.DevFeeInfos, DevFeeInfo{}) + if err := m.DevFeeInfos[len(m.DevFeeInfos)-1].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 (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 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: 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 != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EnableFees", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenesis + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.EnableFees = bool(v != 0) + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeveloperShares", 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.DeveloperShares.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ValidatorShares", 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.ValidatorShares.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 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenesis + } + 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, ErrIntOverflowGenesis + } + 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, ErrIntOverflowGenesis + } + 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, ErrInvalidLengthGenesis + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenesis + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenesis + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenesis = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenesis = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenesis = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/fees/types/interfaces.go b/x/fees/types/interfaces.go new file mode 100644 index 0000000000..1ae888e458 --- /dev/null +++ b/x/fees/types/interfaces.go @@ -0,0 +1,31 @@ +package types + +import ( + "github.com/ethereum/go-ethereum/common" + + sdk "github.com/cosmos/cosmos-sdk/types" + + "github.com/tharsis/ethermint/x/evm/statedb" + evmtypes "github.com/tharsis/ethermint/x/evm/types" +) + +// AccountKeeper defines the expected interface needed to retrieve account info. +type AccountKeeper interface { + GetModuleAddress(moduleName string) sdk.AccAddress +} + +// BankKeeper defines the expected interface needed to retrieve account balances. +type BankKeeper interface { + SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error + SendCoinsFromAccountToModule(ctx sdk.Context, senderAddr sdk.AccAddress, recipientModule string, amt sdk.Coins) error + BurnCoins(ctx sdk.Context, moduleName string, amt sdk.Coins) error + GetBalance(ctx sdk.Context, addr sdk.AccAddress, denom string) sdk.Coin + GetAllBalances(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins +} + +// EVMKeeper defines the expected EVM keeper interface used on erc20 +type EVMKeeper interface { + EVMConfig(ctx sdk.Context) (*evmtypes.EVMConfig, error) + GetParams(ctx sdk.Context) evmtypes.Params + GetAccountWithoutBalance(ctx sdk.Context, addr common.Address) *statedb.Account +} diff --git a/x/fees/types/keys.go b/x/fees/types/keys.go new file mode 100644 index 0000000000..e131cf091d --- /dev/null +++ b/x/fees/types/keys.go @@ -0,0 +1,27 @@ +package types + +// constants +const ( + // module name + ModuleName = "fees" + + // StoreKey to be used when creating the KVStore + StoreKey = ModuleName + + // RouterKey to be used for message routing + RouterKey = ModuleName +) + +// prefix bytes for the fees persistent store +const ( + prefixFee = iota + 1 + prefixFeeWithdrawal + prefixFeeInverse +) + +// KVStore key prefixes +var ( + KeyPrefixFee = []byte{prefixFee} + KeyPrefixFeeWithdrawal = []byte{prefixFeeWithdrawal} + KeyPrefixInverse = []byte{prefixFeeInverse} +) diff --git a/x/fees/types/msg.go b/x/fees/types/msg.go new file mode 100644 index 0000000000..ba0a6171d8 --- /dev/null +++ b/x/fees/types/msg.go @@ -0,0 +1,175 @@ +package types + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + "github.com/ethereum/go-ethereum/common" + ethermint "github.com/tharsis/ethermint/types" +) + +var ( + _ sdk.Msg = &MsgRegisterDevFeeInfo{} + _ sdk.Msg = &MsgCancelDevFeeInfo{} + _ sdk.Msg = &MsgUpdateDevFeeInfo{} +) + +const ( + TypeMsgRegisterDevFeeInfo = "register_fee_contract" + TypeMsgCancelDevFeeInfo = "cancel_fee_contract" + TypeMsgUpdateDevFeeInfo = "update_fee_contract" +) + +// NewMsgRegisterDevFeeInfo creates new instance of MsgRegisterDevFeeInfo +func NewMsgRegisterDevFeeInfo( + contract common.Address, + deployer sdk.AccAddress, + withdraw sdk.AccAddress, + nonces []uint64, +) *MsgRegisterDevFeeInfo { + return &MsgRegisterDevFeeInfo{ + ContractAddress: contract.String(), + DeployerAddress: deployer.String(), + WithdrawAddress: withdraw.String(), + Nonces: nonces, + } +} + +// Route returns the name of the module +func (msg MsgRegisterDevFeeInfo) Route() string { return RouterKey } + +// Type returns the the action +func (msg MsgRegisterDevFeeInfo) Type() string { return TypeMsgRegisterDevFeeInfo } + +// ValidateBasic runs stateless checks on the message +func (msg MsgRegisterDevFeeInfo) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.DeployerAddress); err != nil { + return sdkerrors.Wrapf(err, "invalid deployer address %s", msg.DeployerAddress) + } + + if err := ethermint.ValidateAddress(msg.ContractAddress); err != nil { + return sdkerrors.Wrapf(err, "invalid contract address %s", msg.ContractAddress) + } + + // WithdrawAddress can be omitted and it will default to DeployerAddress + if msg.WithdrawAddress != "" { + if _, err := sdk.AccAddressFromBech32(msg.WithdrawAddress); err != nil { + return sdkerrors.Wrapf(err, "invalid withdraw address address %s", msg.WithdrawAddress) + } + } + + if len(msg.Nonces) < 1 { + return sdkerrors.Wrapf(sdkerrors.ErrInvalidRequest, "invalid nonces - empty array") + } + + return nil +} + +// GetSignBytes encodes the message for signing +func (msg *MsgRegisterDevFeeInfo) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +// GetSigners defines whose signature is required +func (msg MsgRegisterDevFeeInfo) GetSigners() []sdk.AccAddress { + from, err := sdk.AccAddressFromBech32(msg.DeployerAddress) + if err != nil { + return nil + } + return []sdk.AccAddress{from} +} + +// NewMsgClawbackcreates new instance of MsgClawback. The dest_address may be +// nil - defaulting to the funder. +func NewMsgCancelDevFeeInfo(deployer sdk.AccAddress, contract string) *MsgCancelDevFeeInfo { + return &MsgCancelDevFeeInfo{ + ContractAddress: contract, + DeployerAddress: deployer.String(), + } +} + +// Route returns the message route for a MsgCancelDevFeeInfo. +func (msg MsgCancelDevFeeInfo) Route() string { return RouterKey } + +// Type returns the message type for a MsgCancelDevFeeInfo. +func (msg MsgCancelDevFeeInfo) Type() string { return TypeMsgCancelDevFeeInfo } + +// ValidateBasic runs stateless checks on the message +func (msg MsgCancelDevFeeInfo) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.DeployerAddress); err != nil { + return sdkerrors.Wrapf(err, "invalid deployer address %s", msg.DeployerAddress) + } + + if err := ethermint.ValidateAddress(msg.ContractAddress); err != nil { + return sdkerrors.Wrapf(err, "invalid contract address %s", msg.ContractAddress) + } + + return nil +} + +// GetSignBytes encodes the message for signing +func (msg *MsgCancelDevFeeInfo) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +// GetSigners defines whose signature is required +func (msg MsgCancelDevFeeInfo) GetSigners() []sdk.AccAddress { + funder, err := sdk.AccAddressFromBech32(msg.DeployerAddress) + if err != nil { + return nil + } + return []sdk.AccAddress{funder} +} + +// NewMsgUpdateDevFeeInfo creates new instance of MsgUpdateDevFeeInfo +func NewMsgUpdateDevFeeInfo( + deployer sdk.AccAddress, + contract string, + withdraw sdk.AccAddress, +) *MsgUpdateDevFeeInfo { + return &MsgUpdateDevFeeInfo{ + DeployerAddress: deployer.String(), + ContractAddress: contract, + WithdrawAddress: withdraw.String(), + } +} + +// Route returns the name of the module +func (msg MsgUpdateDevFeeInfo) Route() string { return RouterKey } + +// Type returns the the action +func (msg MsgUpdateDevFeeInfo) Type() string { return TypeMsgUpdateDevFeeInfo } + +// ValidateBasic runs stateless checks on the message +func (msg MsgUpdateDevFeeInfo) ValidateBasic() error { + if _, err := sdk.AccAddressFromBech32(msg.DeployerAddress); err != nil { + return sdkerrors.Wrapf(err, "invalid deployer address %s", msg.DeployerAddress) + } + + if err := ethermint.ValidateAddress(msg.ContractAddress); err != nil { + return sdkerrors.Wrapf(err, "invalid contract address %s", msg.ContractAddress) + } + + if _, err := sdk.AccAddressFromBech32(msg.WithdrawAddress); err != nil { + return sdkerrors.Wrapf(err, "invalid withdraw address %s", msg.WithdrawAddress) + } + + if msg.DeployerAddress == msg.WithdrawAddress { + return sdkerrors.Wrapf(ErrInternalFee, "withdraw address %s must be different that deployer address %s", msg.WithdrawAddress, msg.DeployerAddress) + } + + return nil +} + +// GetSignBytes encodes the message for signing +func (msg *MsgUpdateDevFeeInfo) GetSignBytes() []byte { + return sdk.MustSortJSON(ModuleCdc.MustMarshalJSON(msg)) +} + +// GetSigners defines whose signature is required +func (msg MsgUpdateDevFeeInfo) GetSigners() []sdk.AccAddress { + from, err := sdk.AccAddressFromBech32(msg.DeployerAddress) + if err != nil { + return nil + } + return []sdk.AccAddress{from} +} diff --git a/x/fees/types/params.go b/x/fees/types/params.go new file mode 100644 index 0000000000..8497d5682a --- /dev/null +++ b/x/fees/types/params.go @@ -0,0 +1,96 @@ +package types + +import ( + "fmt" + + sdk "github.com/cosmos/cosmos-sdk/types" + paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" +) + +// Parameter store key +var ( + DefaultDeveloperShares = sdk.NewDecWithPrec(50, 2) // 50% + DefaultValidatorShares = sdk.NewDecWithPrec(50, 2) // 50% + ParamStoreKeyEnableFees = []byte("EnableFees") + ParamStoreKeyDeveloperShares = []byte("DeveloperShares") + ParamStoreKeyValidatorShares = []byte("ValidatorShares") +) + +// ParamKeyTable returns the parameter key table. +func ParamKeyTable() paramtypes.KeyTable { + return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) +} + +// NewParams creates a new Params object +func NewParams( + enableFees bool, + developerShares, + validatorShares sdk.Dec, + +) Params { + return Params{ + EnableFees: enableFees, + DeveloperShares: developerShares, + ValidatorShares: validatorShares, + } +} + +func DefaultParams() Params { + return Params{ + EnableFees: false, + DeveloperShares: DefaultDeveloperShares, + ValidatorShares: DefaultValidatorShares, + } +} + +// ParamSetPairs returns the parameter set pairs. +func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { + return paramtypes.ParamSetPairs{ + paramtypes.NewParamSetPair(ParamStoreKeyEnableFees, &p.EnableFees, validateBool), + paramtypes.NewParamSetPair(ParamStoreKeyDeveloperShares, &p.DeveloperShares, validateShares), + paramtypes.NewParamSetPair(ParamStoreKeyValidatorShares, &p.ValidatorShares, validateShares), + } +} + +func validateBool(i interface{}) error { + _, ok := i.(bool) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + return nil +} + +func validateShares(i interface{}) error { + v, ok := i.(sdk.Dec) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + + if v.IsNegative() { + return fmt.Errorf("value cannot be negative: %T", i) + } + + if v.GT(sdk.OneDec()) { + return fmt.Errorf("value cannot be greater than 1: %T", i) + } + + return nil +} + +func (p Params) Validate() error { + if err := validateBool(p.EnableFees); err != nil { + return err + } + if err := validateShares(p.DeveloperShares); err != nil { + return err + } + if err := validateShares(p.ValidatorShares); err != nil { + return err + } + if p.DeveloperShares.Add(p.ValidatorShares).GT(sdk.OneDec()) { + return fmt.Errorf("total shares cannot be greater than 1: %T + %T", p.DeveloperShares, p.ValidatorShares) + } + + return nil +} diff --git a/x/fees/types/query.pb.go b/x/fees/types/query.pb.go new file mode 100644 index 0000000000..7adbf2f805 --- /dev/null +++ b/x/fees/types/query.pb.go @@ -0,0 +1,1922 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: evmos/fees/v1/query.proto + +package types + +import ( + context "context" + fmt "fmt" + 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" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + 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 + +// QueryDevFeeInfosRequest is the request type for the Query/DevFeeInfos RPC +// method. +type QueryDevFeeInfosRequest struct { + // pagination defines an optional pagination for the request. + Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryDevFeeInfosRequest) Reset() { *m = QueryDevFeeInfosRequest{} } +func (m *QueryDevFeeInfosRequest) String() string { return proto.CompactTextString(m) } +func (*QueryDevFeeInfosRequest) ProtoMessage() {} +func (*QueryDevFeeInfosRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_6533658f63002c05, []int{0} +} +func (m *QueryDevFeeInfosRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDevFeeInfosRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDevFeeInfosRequest.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 *QueryDevFeeInfosRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDevFeeInfosRequest.Merge(m, src) +} +func (m *QueryDevFeeInfosRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryDevFeeInfosRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDevFeeInfosRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDevFeeInfosRequest proto.InternalMessageInfo + +func (m *QueryDevFeeInfosRequest) GetPagination() *query.PageRequest { + if m != nil { + return m.Pagination + } + return nil +} + +// QueryDevFeeInfosResponse is the response type for the Query/DevFeeInfos +// RPC method. +type QueryDevFeeInfosResponse struct { + Fees []DevFeeInfo `protobuf:"bytes,1,rep,name=fees,proto3" json:"fees"` + // pagination defines the pagination in the response. + Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryDevFeeInfosResponse) Reset() { *m = QueryDevFeeInfosResponse{} } +func (m *QueryDevFeeInfosResponse) String() string { return proto.CompactTextString(m) } +func (*QueryDevFeeInfosResponse) ProtoMessage() {} +func (*QueryDevFeeInfosResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_6533658f63002c05, []int{1} +} +func (m *QueryDevFeeInfosResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDevFeeInfosResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDevFeeInfosResponse.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 *QueryDevFeeInfosResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDevFeeInfosResponse.Merge(m, src) +} +func (m *QueryDevFeeInfosResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryDevFeeInfosResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDevFeeInfosResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDevFeeInfosResponse proto.InternalMessageInfo + +func (m *QueryDevFeeInfosResponse) GetFees() []DevFeeInfo { + if m != nil { + return m.Fees + } + return nil +} + +func (m *QueryDevFeeInfosResponse) GetPagination() *query.PageResponse { + if m != nil { + return m.Pagination + } + return nil +} + +// QueryDevFeeInfoRequest is the request type for the Query/DevFeeInfo RPC +// method. +type QueryDevFeeInfoRequest struct { + // contract identifier is the hex contract address of a contract + ContractAddress string `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` +} + +func (m *QueryDevFeeInfoRequest) Reset() { *m = QueryDevFeeInfoRequest{} } +func (m *QueryDevFeeInfoRequest) String() string { return proto.CompactTextString(m) } +func (*QueryDevFeeInfoRequest) ProtoMessage() {} +func (*QueryDevFeeInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_6533658f63002c05, []int{2} +} +func (m *QueryDevFeeInfoRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDevFeeInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDevFeeInfoRequest.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 *QueryDevFeeInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDevFeeInfoRequest.Merge(m, src) +} +func (m *QueryDevFeeInfoRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryDevFeeInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDevFeeInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDevFeeInfoRequest proto.InternalMessageInfo + +func (m *QueryDevFeeInfoRequest) GetContractAddress() string { + if m != nil { + return m.ContractAddress + } + return "" +} + +// QueryDevFeeInfoResponse is the response type for the Query/DevFeeInfo RPC +// method. +type QueryDevFeeInfoResponse struct { + Fee DevFeeInfo `protobuf:"bytes,1,opt,name=fee,proto3" json:"fee"` +} + +func (m *QueryDevFeeInfoResponse) Reset() { *m = QueryDevFeeInfoResponse{} } +func (m *QueryDevFeeInfoResponse) String() string { return proto.CompactTextString(m) } +func (*QueryDevFeeInfoResponse) ProtoMessage() {} +func (*QueryDevFeeInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_6533658f63002c05, []int{3} +} +func (m *QueryDevFeeInfoResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDevFeeInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDevFeeInfoResponse.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 *QueryDevFeeInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDevFeeInfoResponse.Merge(m, src) +} +func (m *QueryDevFeeInfoResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryDevFeeInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDevFeeInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDevFeeInfoResponse proto.InternalMessageInfo + +func (m *QueryDevFeeInfoResponse) GetFee() DevFeeInfo { + if m != nil { + return m.Fee + } + return DevFeeInfo{} +} + +// QueryParamsRequest is the request type for the Query/Params RPC method. +type QueryParamsRequest struct { +} + +func (m *QueryParamsRequest) Reset() { *m = QueryParamsRequest{} } +func (m *QueryParamsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryParamsRequest) ProtoMessage() {} +func (*QueryParamsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_6533658f63002c05, []int{4} +} +func (m *QueryParamsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryParamsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryParamsRequest.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 *QueryParamsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryParamsRequest.Merge(m, src) +} +func (m *QueryParamsRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryParamsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryParamsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryParamsRequest proto.InternalMessageInfo + +// QueryParamsResponse is the response type for the Query/Params RPC +// method. +type QueryParamsResponse struct { + Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` +} + +func (m *QueryParamsResponse) Reset() { *m = QueryParamsResponse{} } +func (m *QueryParamsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryParamsResponse) ProtoMessage() {} +func (*QueryParamsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_6533658f63002c05, []int{5} +} +func (m *QueryParamsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryParamsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryParamsResponse.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 *QueryParamsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryParamsResponse.Merge(m, src) +} +func (m *QueryParamsResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryParamsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryParamsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryParamsResponse proto.InternalMessageInfo + +func (m *QueryParamsResponse) GetParams() Params { + if m != nil { + return m.Params + } + return Params{} +} + +// QueryDevFeeInfosPerDeployerRequest is the request type for the +// Query/DevFeeInfosPerDeployer RPC method. +type QueryDevFeeInfosPerDeployerRequest struct { + // deployer bech32 address + DeployerAddress string `protobuf:"bytes,1,opt,name=deployer_address,json=deployerAddress,proto3" json:"deployer_address,omitempty"` + // pagination defines an optional pagination for the request. + Pagination *query.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryDevFeeInfosPerDeployerRequest) Reset() { *m = QueryDevFeeInfosPerDeployerRequest{} } +func (m *QueryDevFeeInfosPerDeployerRequest) String() string { return proto.CompactTextString(m) } +func (*QueryDevFeeInfosPerDeployerRequest) ProtoMessage() {} +func (*QueryDevFeeInfosPerDeployerRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_6533658f63002c05, []int{6} +} +func (m *QueryDevFeeInfosPerDeployerRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDevFeeInfosPerDeployerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDevFeeInfosPerDeployerRequest.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 *QueryDevFeeInfosPerDeployerRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDevFeeInfosPerDeployerRequest.Merge(m, src) +} +func (m *QueryDevFeeInfosPerDeployerRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryDevFeeInfosPerDeployerRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDevFeeInfosPerDeployerRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDevFeeInfosPerDeployerRequest proto.InternalMessageInfo + +func (m *QueryDevFeeInfosPerDeployerRequest) GetDeployerAddress() string { + if m != nil { + return m.DeployerAddress + } + return "" +} + +func (m *QueryDevFeeInfosPerDeployerRequest) GetPagination() *query.PageRequest { + if m != nil { + return m.Pagination + } + return nil +} + +// QueryDevFeeInfosPerDeployerResponse is the response type for the +// Query/DevFeeInfosPerDeployer RPC method. +type QueryDevFeeInfosPerDeployerResponse struct { + Fees []DevFeeInfo `protobuf:"bytes,1,rep,name=fees,proto3" json:"fees"` + // pagination defines the pagination in the response. + Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` +} + +func (m *QueryDevFeeInfosPerDeployerResponse) Reset() { *m = QueryDevFeeInfosPerDeployerResponse{} } +func (m *QueryDevFeeInfosPerDeployerResponse) String() string { return proto.CompactTextString(m) } +func (*QueryDevFeeInfosPerDeployerResponse) ProtoMessage() {} +func (*QueryDevFeeInfosPerDeployerResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_6533658f63002c05, []int{7} +} +func (m *QueryDevFeeInfosPerDeployerResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryDevFeeInfosPerDeployerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryDevFeeInfosPerDeployerResponse.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 *QueryDevFeeInfosPerDeployerResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryDevFeeInfosPerDeployerResponse.Merge(m, src) +} +func (m *QueryDevFeeInfosPerDeployerResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryDevFeeInfosPerDeployerResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryDevFeeInfosPerDeployerResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryDevFeeInfosPerDeployerResponse proto.InternalMessageInfo + +func (m *QueryDevFeeInfosPerDeployerResponse) GetFees() []DevFeeInfo { + if m != nil { + return m.Fees + } + return nil +} + +func (m *QueryDevFeeInfosPerDeployerResponse) GetPagination() *query.PageResponse { + if m != nil { + return m.Pagination + } + return nil +} + +func init() { + proto.RegisterType((*QueryDevFeeInfosRequest)(nil), "evmos.fees.v1.QueryDevFeeInfosRequest") + proto.RegisterType((*QueryDevFeeInfosResponse)(nil), "evmos.fees.v1.QueryDevFeeInfosResponse") + proto.RegisterType((*QueryDevFeeInfoRequest)(nil), "evmos.fees.v1.QueryDevFeeInfoRequest") + proto.RegisterType((*QueryDevFeeInfoResponse)(nil), "evmos.fees.v1.QueryDevFeeInfoResponse") + proto.RegisterType((*QueryParamsRequest)(nil), "evmos.fees.v1.QueryParamsRequest") + proto.RegisterType((*QueryParamsResponse)(nil), "evmos.fees.v1.QueryParamsResponse") + proto.RegisterType((*QueryDevFeeInfosPerDeployerRequest)(nil), "evmos.fees.v1.QueryDevFeeInfosPerDeployerRequest") + proto.RegisterType((*QueryDevFeeInfosPerDeployerResponse)(nil), "evmos.fees.v1.QueryDevFeeInfosPerDeployerResponse") +} + +func init() { proto.RegisterFile("evmos/fees/v1/query.proto", fileDescriptor_6533658f63002c05) } + +var fileDescriptor_6533658f63002c05 = []byte{ + // 584 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0xc1, 0x6e, 0xd3, 0x4c, + 0x10, 0x8e, 0xd3, 0xfc, 0x91, 0xfe, 0x8d, 0x10, 0x68, 0xdb, 0xb4, 0x69, 0x0a, 0xa6, 0x18, 0x91, + 0x06, 0x0e, 0xbb, 0x72, 0xf2, 0x04, 0x84, 0xaa, 0x08, 0xc4, 0x21, 0xe4, 0xc8, 0x05, 0x6d, 0x92, + 0x89, 0x6b, 0xa9, 0xf1, 0xba, 0x5e, 0xc7, 0x22, 0xaa, 0x7a, 0xe1, 0xca, 0x05, 0x89, 0x03, 0xdc, + 0x79, 0x00, 0x2e, 0x3c, 0x44, 0x8f, 0x95, 0xb8, 0x70, 0x42, 0x28, 0xe1, 0x41, 0x90, 0x77, 0xd7, + 0x4d, 0xec, 0x84, 0x04, 0x38, 0x71, 0xb3, 0x66, 0xbe, 0x99, 0xef, 0x9b, 0x6f, 0x67, 0x8c, 0x76, + 0x21, 0x1a, 0x72, 0x41, 0x07, 0x00, 0x82, 0x46, 0x36, 0x3d, 0x1d, 0x41, 0x30, 0x26, 0x7e, 0xc0, + 0x43, 0x8e, 0xaf, 0xc9, 0x14, 0x89, 0x53, 0x24, 0xb2, 0xab, 0x0f, 0x7a, 0x5c, 0xc4, 0xd0, 0x2e, + 0x13, 0xa0, 0x70, 0x34, 0xb2, 0xbb, 0x10, 0x32, 0x9b, 0xfa, 0xcc, 0x71, 0x3d, 0x16, 0xba, 0xdc, + 0x53, 0xa5, 0xd5, 0xbd, 0x74, 0x57, 0x07, 0x3c, 0x10, 0xae, 0xd0, 0xc9, 0x4a, 0x3a, 0x29, 0xfb, + 0xab, 0xcc, 0x4d, 0x87, 0x73, 0xe7, 0x04, 0x28, 0xf3, 0x5d, 0xca, 0x3c, 0x8f, 0x87, 0xb2, 0x67, + 0x92, 0xdd, 0x72, 0xb8, 0xc3, 0xe5, 0x27, 0x8d, 0xbf, 0x54, 0xd4, 0x62, 0x68, 0xe7, 0x79, 0x2c, + 0xe6, 0x10, 0xa2, 0x23, 0x80, 0x27, 0xde, 0x80, 0x8b, 0x0e, 0x9c, 0x8e, 0x40, 0x84, 0xf8, 0x08, + 0xa1, 0x99, 0xb2, 0x8a, 0xb1, 0x6f, 0xd4, 0x4b, 0x8d, 0x1a, 0x51, 0x63, 0x90, 0x78, 0x0c, 0xa2, + 0xc6, 0xd5, 0x63, 0x90, 0x36, 0x73, 0x40, 0xd7, 0x76, 0xe6, 0x2a, 0xad, 0x0f, 0x06, 0xaa, 0x2c, + 0x72, 0x08, 0x9f, 0x7b, 0x02, 0x70, 0x13, 0x15, 0xe2, 0x09, 0x2a, 0xc6, 0xfe, 0x46, 0xbd, 0xd4, + 0xd8, 0x25, 0x29, 0xd3, 0xc8, 0xac, 0xa2, 0x55, 0xb8, 0xf8, 0x76, 0x3b, 0xd7, 0x91, 0x60, 0xfc, + 0x38, 0xa5, 0x2c, 0x2f, 0x95, 0x1d, 0xac, 0x55, 0xa6, 0x18, 0x53, 0xd2, 0x1e, 0xa1, 0xed, 0x8c, + 0xb2, 0x64, 0xf8, 0xfb, 0xe8, 0x46, 0x8f, 0x7b, 0x61, 0xc0, 0x7a, 0xe1, 0x4b, 0xd6, 0xef, 0x07, + 0x20, 0x84, 0xb4, 0xe0, 0xff, 0xce, 0xf5, 0x24, 0xfe, 0x50, 0x85, 0xad, 0x67, 0x0b, 0x16, 0x5e, + 0x4d, 0x67, 0xa3, 0x8d, 0x01, 0x80, 0xf6, 0x6e, 0xed, 0x70, 0x31, 0xd6, 0xda, 0x42, 0x58, 0x76, + 0x6b, 0xb3, 0x80, 0x0d, 0x93, 0xb7, 0xb0, 0x9e, 0xa2, 0xcd, 0x54, 0xf4, 0xca, 0xbd, 0xa2, 0x2f, + 0x23, 0x9a, 0xa2, 0x9c, 0xa1, 0x50, 0x70, 0xdd, 0x5e, 0x43, 0xad, 0xf7, 0x06, 0xb2, 0xb2, 0xef, + 0xd1, 0x86, 0xe0, 0x10, 0xfc, 0x13, 0x3e, 0x86, 0x60, 0xce, 0x81, 0xbe, 0x0e, 0x65, 0x1d, 0x48, + 0xe2, 0xda, 0x81, 0xcc, 0xa6, 0xe4, 0xff, 0x7a, 0x53, 0x3e, 0x1a, 0xe8, 0xee, 0x4a, 0x65, 0xff, + 0xc2, 0xd2, 0x34, 0x3e, 0x17, 0xd0, 0x7f, 0x52, 0x25, 0x3e, 0x43, 0xa5, 0x39, 0xa5, 0xb8, 0x96, + 0x11, 0xf2, 0x8b, 0xc3, 0xaa, 0x1e, 0xac, 0xc5, 0x29, 0x56, 0x6b, 0xef, 0xf5, 0x97, 0x1f, 0xef, + 0xf2, 0x65, 0xbc, 0x49, 0x17, 0x6f, 0x1e, 0xbf, 0x31, 0x10, 0x9a, 0x15, 0xe1, 0x7b, 0xab, 0x9b, + 0x26, 0xdc, 0xb5, 0x75, 0x30, 0x4d, 0x4d, 0x24, 0x75, 0x1d, 0xd7, 0x96, 0x50, 0xd3, 0xb3, 0xec, + 0x69, 0x9c, 0x63, 0x0f, 0x15, 0xd5, 0xb2, 0xe1, 0x3b, 0xcb, 0x18, 0x52, 0xdb, 0x5c, 0xb5, 0x56, + 0x41, 0xb4, 0x80, 0x5b, 0x52, 0xc0, 0x0e, 0x2e, 0x67, 0x04, 0xa8, 0x25, 0xc6, 0x9f, 0x0c, 0xb4, + 0xbd, 0x7c, 0x4b, 0xb0, 0xbd, 0xc6, 0xde, 0xc5, 0x5d, 0xaf, 0x36, 0xfe, 0xa4, 0xe4, 0xb7, 0x1c, + 0xca, 0x9e, 0xce, 0x79, 0xab, 0x75, 0x31, 0x31, 0x8d, 0xcb, 0x89, 0x69, 0x7c, 0x9f, 0x98, 0xc6, + 0xdb, 0xa9, 0x99, 0xbb, 0x9c, 0x9a, 0xb9, 0xaf, 0x53, 0x33, 0xf7, 0xa2, 0xee, 0xb8, 0xe1, 0xf1, + 0xa8, 0x4b, 0x7a, 0x7c, 0x48, 0xc3, 0x63, 0x16, 0x08, 0x57, 0xe8, 0x9e, 0x51, 0x93, 0xbe, 0x52, + 0x0d, 0xc3, 0xb1, 0x0f, 0xa2, 0x5b, 0x94, 0x3f, 0xed, 0xe6, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x6d, 0x0d, 0x0b, 0xa6, 0x77, 0x06, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// QueryClient is the client API for Query service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type QueryClient interface { + // DevFeeInfos retrieves all registered contracts for fee distribution + DevFeeInfos(ctx context.Context, in *QueryDevFeeInfosRequest, opts ...grpc.CallOption) (*QueryDevFeeInfosResponse, error) + // DevFeeInfo retrieves a registered contract for fee distribution + DevFeeInfo(ctx context.Context, in *QueryDevFeeInfoRequest, opts ...grpc.CallOption) (*QueryDevFeeInfoResponse, error) + // Params retrieves the fees module params + Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) + // DevFeeInfosPerDeployer retrieves all contracts that a deployer has + // registered for fee distribution + DevFeeInfosPerDeployer(ctx context.Context, in *QueryDevFeeInfosPerDeployerRequest, opts ...grpc.CallOption) (*QueryDevFeeInfosPerDeployerResponse, error) +} + +type queryClient struct { + cc grpc1.ClientConn +} + +func NewQueryClient(cc grpc1.ClientConn) QueryClient { + return &queryClient{cc} +} + +func (c *queryClient) DevFeeInfos(ctx context.Context, in *QueryDevFeeInfosRequest, opts ...grpc.CallOption) (*QueryDevFeeInfosResponse, error) { + out := new(QueryDevFeeInfosResponse) + err := c.cc.Invoke(ctx, "/evmos.fees.v1.Query/DevFeeInfos", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) DevFeeInfo(ctx context.Context, in *QueryDevFeeInfoRequest, opts ...grpc.CallOption) (*QueryDevFeeInfoResponse, error) { + out := new(QueryDevFeeInfoResponse) + err := c.cc.Invoke(ctx, "/evmos.fees.v1.Query/DevFeeInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { + out := new(QueryParamsResponse) + err := c.cc.Invoke(ctx, "/evmos.fees.v1.Query/Params", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *queryClient) DevFeeInfosPerDeployer(ctx context.Context, in *QueryDevFeeInfosPerDeployerRequest, opts ...grpc.CallOption) (*QueryDevFeeInfosPerDeployerResponse, error) { + out := new(QueryDevFeeInfosPerDeployerResponse) + err := c.cc.Invoke(ctx, "/evmos.fees.v1.Query/DevFeeInfosPerDeployer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// QueryServer is the server API for Query service. +type QueryServer interface { + // DevFeeInfos retrieves all registered contracts for fee distribution + DevFeeInfos(context.Context, *QueryDevFeeInfosRequest) (*QueryDevFeeInfosResponse, error) + // DevFeeInfo retrieves a registered contract for fee distribution + DevFeeInfo(context.Context, *QueryDevFeeInfoRequest) (*QueryDevFeeInfoResponse, error) + // Params retrieves the fees module params + Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) + // DevFeeInfosPerDeployer retrieves all contracts that a deployer has + // registered for fee distribution + DevFeeInfosPerDeployer(context.Context, *QueryDevFeeInfosPerDeployerRequest) (*QueryDevFeeInfosPerDeployerResponse, error) +} + +// UnimplementedQueryServer can be embedded to have forward compatible implementations. +type UnimplementedQueryServer struct { +} + +func (*UnimplementedQueryServer) DevFeeInfos(ctx context.Context, req *QueryDevFeeInfosRequest) (*QueryDevFeeInfosResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DevFeeInfos not implemented") +} +func (*UnimplementedQueryServer) DevFeeInfo(ctx context.Context, req *QueryDevFeeInfoRequest) (*QueryDevFeeInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DevFeeInfo not implemented") +} +func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") +} +func (*UnimplementedQueryServer) DevFeeInfosPerDeployer(ctx context.Context, req *QueryDevFeeInfosPerDeployerRequest) (*QueryDevFeeInfosPerDeployerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DevFeeInfosPerDeployer not implemented") +} + +func RegisterQueryServer(s grpc1.Server, srv QueryServer) { + s.RegisterService(&_Query_serviceDesc, srv) +} + +func _Query_DevFeeInfos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryDevFeeInfosRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).DevFeeInfos(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/evmos.fees.v1.Query/DevFeeInfos", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).DevFeeInfos(ctx, req.(*QueryDevFeeInfosRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_DevFeeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryDevFeeInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).DevFeeInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/evmos.fees.v1.Query/DevFeeInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).DevFeeInfo(ctx, req.(*QueryDevFeeInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryParamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Params(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/evmos.fees.v1.Query/Params", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Params(ctx, req.(*QueryParamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Query_DevFeeInfosPerDeployer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryDevFeeInfosPerDeployerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).DevFeeInfosPerDeployer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/evmos.fees.v1.Query/DevFeeInfosPerDeployer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).DevFeeInfosPerDeployer(ctx, req.(*QueryDevFeeInfosPerDeployerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Query_serviceDesc = grpc.ServiceDesc{ + ServiceName: "evmos.fees.v1.Query", + HandlerType: (*QueryServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "DevFeeInfos", + Handler: _Query_DevFeeInfos_Handler, + }, + { + MethodName: "DevFeeInfo", + Handler: _Query_DevFeeInfo_Handler, + }, + { + MethodName: "Params", + Handler: _Query_Params_Handler, + }, + { + MethodName: "DevFeeInfosPerDeployer", + Handler: _Query_DevFeeInfosPerDeployer_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "evmos/fees/v1/query.proto", +} + +func (m *QueryDevFeeInfosRequest) 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 *QueryDevFeeInfosRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDevFeeInfosRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryDevFeeInfosResponse) 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 *QueryDevFeeInfosResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDevFeeInfosResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Fees) > 0 { + for iNdEx := len(m.Fees) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Fees[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *QueryDevFeeInfoRequest) 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 *QueryDevFeeInfoRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDevFeeInfoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ContractAddress) > 0 { + i -= len(m.ContractAddress) + copy(dAtA[i:], m.ContractAddress) + i = encodeVarintQuery(dAtA, i, uint64(len(m.ContractAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryDevFeeInfoResponse) 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 *QueryDevFeeInfoResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDevFeeInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Fee.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QueryDevFeeInfosPerDeployerRequest) 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 *QueryDevFeeInfosPerDeployerRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDevFeeInfosPerDeployerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.DeployerAddress) > 0 { + i -= len(m.DeployerAddress) + copy(dAtA[i:], m.DeployerAddress) + i = encodeVarintQuery(dAtA, i, uint64(len(m.DeployerAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryDevFeeInfosPerDeployerResponse) 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 *QueryDevFeeInfosPerDeployerResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryDevFeeInfosPerDeployerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Pagination != nil { + { + size, err := m.Pagination.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Fees) > 0 { + for iNdEx := len(m.Fees) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Fees[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintQuery(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { + offset -= sovQuery(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *QueryDevFeeInfosRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryDevFeeInfosResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Fees) > 0 { + for _, e := range m.Fees { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryDevFeeInfoRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ContractAddress) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryDevFeeInfoResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Fee.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryParamsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *QueryParamsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Params.Size() + n += 1 + l + sovQuery(uint64(l)) + return n +} + +func (m *QueryDevFeeInfosPerDeployerRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.DeployerAddress) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryDevFeeInfosPerDeployerResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Fees) > 0 { + for _, e := range m.Fees { + l = e.Size() + n += 1 + l + sovQuery(uint64(l)) + } + } + if m.Pagination != nil { + l = m.Pagination.Size() + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func sovQuery(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozQuery(x uint64) (n int) { + return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *QueryDevFeeInfosRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDevFeeInfosRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDevFeeInfosRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageRequest{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryDevFeeInfosResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDevFeeInfosResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDevFeeInfosResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fees", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Fees = append(m.Fees, DevFeeInfo{}) + if err := m.Fees[len(m.Fees)-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 Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageResponse{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryDevFeeInfoRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDevFeeInfoRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDevFeeInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContractAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryDevFeeInfoResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDevFeeInfoResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDevFeeInfoResponse: 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 msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Fee.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryDevFeeInfosPerDeployerRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDevFeeInfosPerDeployerRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDevFeeInfosPerDeployerRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeployerAddress", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DeployerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageRequest{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QueryDevFeeInfosPerDeployerResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QueryDevFeeInfosPerDeployerResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryDevFeeInfosPerDeployerResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Fees", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Fees = append(m.Fees, DevFeeInfo{}) + if err := m.Fees[len(m.Fees)-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 Pagination", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Pagination == nil { + m.Pagination = &query.PageResponse{} + } + if err := m.Pagination.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthQuery + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipQuery(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, ErrIntOverflowQuery + } + 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, ErrIntOverflowQuery + } + 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, ErrIntOverflowQuery + } + 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, ErrInvalidLengthQuery + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupQuery + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthQuery + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthQuery = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowQuery = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupQuery = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/fees/types/query.pb.gw.go b/x/fees/types/query.pb.gw.go new file mode 100644 index 0000000000..eb7c604a6f --- /dev/null +++ b/x/fees/types/query.pb.gw.go @@ -0,0 +1,456 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: evmos/fees/v1/query.proto + +/* +Package types is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package types + +import ( + "context" + "io" + "net/http" + + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = descriptor.ForMessage +var _ = metadata.Join + +var ( + filter_Query_DevFeeInfos_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Query_DevFeeInfos_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryDevFeeInfosRequest + 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_Query_DevFeeInfos_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DevFeeInfos(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_DevFeeInfos_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryDevFeeInfosRequest + 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_Query_DevFeeInfos_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DevFeeInfos(ctx, &protoReq) + return msg, metadata, err + +} + +func request_Query_DevFeeInfo_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryDevFeeInfoRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["contract_address"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "contract_address") + } + + protoReq.ContractAddress, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "contract_address", err) + } + + msg, err := client.DevFeeInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_DevFeeInfo_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryDevFeeInfoRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["contract_address"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "contract_address") + } + + protoReq.ContractAddress, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "contract_address", err) + } + + msg, err := server.DevFeeInfo(ctx, &protoReq) + return msg, metadata, err + +} + +func request_Query_Params_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryParamsRequest + var metadata runtime.ServerMetadata + + msg, err := client.Params(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_Params_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryParamsRequest + var metadata runtime.ServerMetadata + + msg, err := server.Params(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_Query_DevFeeInfosPerDeployer_0 = &utilities.DoubleArray{Encoding: map[string]int{"deployer_address": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_Query_DevFeeInfosPerDeployer_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryDevFeeInfosPerDeployerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["deployer_address"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployer_address") + } + + protoReq.DeployerAddress, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "deployer_address", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_DevFeeInfosPerDeployer_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DevFeeInfosPerDeployer(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_DevFeeInfosPerDeployer_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryDevFeeInfosPerDeployerRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["deployer_address"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "deployer_address") + } + + protoReq.DeployerAddress, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "deployer_address", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_DevFeeInfosPerDeployer_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DevFeeInfosPerDeployer(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. +// 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_DevFeeInfos_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_DevFeeInfos_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_DevFeeInfos_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_DevFeeInfo_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_DevFeeInfo_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_DevFeeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + 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 { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + 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) + return + } + + forward_Query_Params_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_DevFeeInfosPerDeployer_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_DevFeeInfosPerDeployer_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_DevFeeInfosPerDeployer_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterQueryHandlerFromEndpoint is same as RegisterQueryHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterQueryHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterQueryHandler(ctx, mux, conn) +} + +// RegisterQueryHandler registers the http handlers for service Query to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterQueryHandlerClient(ctx, mux, NewQueryClient(conn)) +} + +// RegisterQueryHandlerClient registers the http handlers for service Query +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "QueryClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "QueryClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "QueryClient" to call the correct interceptors. +func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error { + + mux.Handle("GET", pattern_Query_DevFeeInfos_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_DevFeeInfos_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_DevFeeInfos_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_DevFeeInfo_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_DevFeeInfo_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_DevFeeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + 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() + 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_Params_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_Params_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Query_DevFeeInfosPerDeployer_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_DevFeeInfosPerDeployer_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_DevFeeInfosPerDeployer_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_Query_DevFeeInfos_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 1}, []string{"evmos", "fees", "v1"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_DevFeeInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 1, 1, 0, 4, 1, 5, 3}, []string{"evmos", "fees", "v1", "contract_address"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"evmos", "fees", "v1", "params"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Query_DevFeeInfosPerDeployer_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 1, 1, 0, 4, 1, 5, 3}, []string{"evmos", "fees", "v1", "deployer_address"}, "", runtime.AssumeColonVerbOpt(true))) +) + +var ( + forward_Query_DevFeeInfos_0 = runtime.ForwardResponseMessage + + forward_Query_DevFeeInfo_0 = runtime.ForwardResponseMessage + + forward_Query_Params_0 = runtime.ForwardResponseMessage + + forward_Query_DevFeeInfosPerDeployer_0 = runtime.ForwardResponseMessage +) diff --git a/x/fees/types/tx.pb.go b/x/fees/types/tx.pb.go new file mode 100644 index 0000000000..41584cb0e7 --- /dev/null +++ b/x/fees/types/tx.pb.go @@ -0,0 +1,1583 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: evmos/fees/v1/tx.proto + +package types + +import ( + context "context" + fmt "fmt" + _ "github.com/gogo/protobuf/gogoproto" + grpc1 "github.com/gogo/protobuf/grpc" + proto "github.com/gogo/protobuf/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" + 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 + +// MsgRegisterFeesContract defines a message that registers a DevFeeInfo +type MsgRegisterDevFeeInfo struct { + // contract hex address + ContractAddress string `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + // bech32 address of message sender, must be the same as the origin EOA + // sending the transaction which deploys the contract + DeployerAddress string `protobuf:"bytes,2,opt,name=deployer_address,json=deployerAddress,proto3" json:"deployer_address,omitempty"` + // bech32 address of account receiving the transaction fees + WithdrawAddress string `protobuf:"bytes,3,opt,name=withdraw_address,json=withdrawAddress,proto3" json:"withdraw_address,omitempty"` + // array of nonces from the address path, where the last nonce is + // the nonce that determines the contract's address - it can be an EOA nonce + // or a factory contract nonce + Nonces []uint64 `protobuf:"varint,4,rep,packed,name=nonces,proto3" json:"nonces,omitempty"` +} + +func (m *MsgRegisterDevFeeInfo) Reset() { *m = MsgRegisterDevFeeInfo{} } +func (m *MsgRegisterDevFeeInfo) String() string { return proto.CompactTextString(m) } +func (*MsgRegisterDevFeeInfo) ProtoMessage() {} +func (*MsgRegisterDevFeeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_8839b3a6b237f9b6, []int{0} +} +func (m *MsgRegisterDevFeeInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRegisterDevFeeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRegisterDevFeeInfo.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 *MsgRegisterDevFeeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRegisterDevFeeInfo.Merge(m, src) +} +func (m *MsgRegisterDevFeeInfo) XXX_Size() int { + return m.Size() +} +func (m *MsgRegisterDevFeeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRegisterDevFeeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRegisterDevFeeInfo proto.InternalMessageInfo + +func (m *MsgRegisterDevFeeInfo) GetContractAddress() string { + if m != nil { + return m.ContractAddress + } + return "" +} + +func (m *MsgRegisterDevFeeInfo) GetDeployerAddress() string { + if m != nil { + return m.DeployerAddress + } + return "" +} + +func (m *MsgRegisterDevFeeInfo) GetWithdrawAddress() string { + if m != nil { + return m.WithdrawAddress + } + return "" +} + +func (m *MsgRegisterDevFeeInfo) GetNonces() []uint64 { + if m != nil { + return m.Nonces + } + return nil +} + +// MsgRegisterDevFeeInfoResponse defines the MsgRegisterDevFeeInfo response +// type +type MsgRegisterDevFeeInfoResponse struct { +} + +func (m *MsgRegisterDevFeeInfoResponse) Reset() { *m = MsgRegisterDevFeeInfoResponse{} } +func (m *MsgRegisterDevFeeInfoResponse) String() string { return proto.CompactTextString(m) } +func (*MsgRegisterDevFeeInfoResponse) ProtoMessage() {} +func (*MsgRegisterDevFeeInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8839b3a6b237f9b6, []int{1} +} +func (m *MsgRegisterDevFeeInfoResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgRegisterDevFeeInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgRegisterDevFeeInfoResponse.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 *MsgRegisterDevFeeInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgRegisterDevFeeInfoResponse.Merge(m, src) +} +func (m *MsgRegisterDevFeeInfoResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgRegisterDevFeeInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgRegisterDevFeeInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgRegisterDevFeeInfoResponse proto.InternalMessageInfo + +// MsgCancelDevFeeInfo defines a message that cancels a registered a +// DevFeeInfo +type MsgCancelDevFeeInfo struct { + // contract hex address + ContractAddress string `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + // deployer bech32 address + DeployerAddress string `protobuf:"bytes,2,opt,name=deployer_address,json=deployerAddress,proto3" json:"deployer_address,omitempty"` +} + +func (m *MsgCancelDevFeeInfo) Reset() { *m = MsgCancelDevFeeInfo{} } +func (m *MsgCancelDevFeeInfo) String() string { return proto.CompactTextString(m) } +func (*MsgCancelDevFeeInfo) ProtoMessage() {} +func (*MsgCancelDevFeeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_8839b3a6b237f9b6, []int{2} +} +func (m *MsgCancelDevFeeInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCancelDevFeeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCancelDevFeeInfo.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 *MsgCancelDevFeeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCancelDevFeeInfo.Merge(m, src) +} +func (m *MsgCancelDevFeeInfo) XXX_Size() int { + return m.Size() +} +func (m *MsgCancelDevFeeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCancelDevFeeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCancelDevFeeInfo proto.InternalMessageInfo + +func (m *MsgCancelDevFeeInfo) GetContractAddress() string { + if m != nil { + return m.ContractAddress + } + return "" +} + +func (m *MsgCancelDevFeeInfo) GetDeployerAddress() string { + if m != nil { + return m.DeployerAddress + } + return "" +} + +// MsgCancelDevFeeInfoResponse defines the MsgCancelDevFeeInfo response type +type MsgCancelDevFeeInfoResponse struct { +} + +func (m *MsgCancelDevFeeInfoResponse) Reset() { *m = MsgCancelDevFeeInfoResponse{} } +func (m *MsgCancelDevFeeInfoResponse) String() string { return proto.CompactTextString(m) } +func (*MsgCancelDevFeeInfoResponse) ProtoMessage() {} +func (*MsgCancelDevFeeInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8839b3a6b237f9b6, []int{3} +} +func (m *MsgCancelDevFeeInfoResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgCancelDevFeeInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgCancelDevFeeInfoResponse.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 *MsgCancelDevFeeInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgCancelDevFeeInfoResponse.Merge(m, src) +} +func (m *MsgCancelDevFeeInfoResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgCancelDevFeeInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgCancelDevFeeInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgCancelDevFeeInfoResponse proto.InternalMessageInfo + +// MsgUpdateDevFeeInfo defines a message that updates the withdraw address for +// a registered DevFeeInfo +type MsgUpdateDevFeeInfo struct { + // contract hex address + ContractAddress string `protobuf:"bytes,1,opt,name=contract_address,json=contractAddress,proto3" json:"contract_address,omitempty"` + // deployer bech32 address + DeployerAddress string `protobuf:"bytes,2,opt,name=deployer_address,json=deployerAddress,proto3" json:"deployer_address,omitempty"` + // new withdraw bech32 address for receiving the transaction fees + WithdrawAddress string `protobuf:"bytes,3,opt,name=withdraw_address,json=withdrawAddress,proto3" json:"withdraw_address,omitempty"` +} + +func (m *MsgUpdateDevFeeInfo) Reset() { *m = MsgUpdateDevFeeInfo{} } +func (m *MsgUpdateDevFeeInfo) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateDevFeeInfo) ProtoMessage() {} +func (*MsgUpdateDevFeeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_8839b3a6b237f9b6, []int{4} +} +func (m *MsgUpdateDevFeeInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateDevFeeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateDevFeeInfo.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 *MsgUpdateDevFeeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateDevFeeInfo.Merge(m, src) +} +func (m *MsgUpdateDevFeeInfo) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateDevFeeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateDevFeeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateDevFeeInfo proto.InternalMessageInfo + +func (m *MsgUpdateDevFeeInfo) GetContractAddress() string { + if m != nil { + return m.ContractAddress + } + return "" +} + +func (m *MsgUpdateDevFeeInfo) GetDeployerAddress() string { + if m != nil { + return m.DeployerAddress + } + return "" +} + +func (m *MsgUpdateDevFeeInfo) GetWithdrawAddress() string { + if m != nil { + return m.WithdrawAddress + } + return "" +} + +// MsgUpdateDevFeeInfoResponse defines the MsgUpdateDevFeeInfo response type +type MsgUpdateDevFeeInfoResponse struct { +} + +func (m *MsgUpdateDevFeeInfoResponse) Reset() { *m = MsgUpdateDevFeeInfoResponse{} } +func (m *MsgUpdateDevFeeInfoResponse) String() string { return proto.CompactTextString(m) } +func (*MsgUpdateDevFeeInfoResponse) ProtoMessage() {} +func (*MsgUpdateDevFeeInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_8839b3a6b237f9b6, []int{5} +} +func (m *MsgUpdateDevFeeInfoResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MsgUpdateDevFeeInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_MsgUpdateDevFeeInfoResponse.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 *MsgUpdateDevFeeInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgUpdateDevFeeInfoResponse.Merge(m, src) +} +func (m *MsgUpdateDevFeeInfoResponse) XXX_Size() int { + return m.Size() +} +func (m *MsgUpdateDevFeeInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgUpdateDevFeeInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgUpdateDevFeeInfoResponse proto.InternalMessageInfo + +func init() { + proto.RegisterType((*MsgRegisterDevFeeInfo)(nil), "evmos.fees.v1.MsgRegisterDevFeeInfo") + proto.RegisterType((*MsgRegisterDevFeeInfoResponse)(nil), "evmos.fees.v1.MsgRegisterDevFeeInfoResponse") + proto.RegisterType((*MsgCancelDevFeeInfo)(nil), "evmos.fees.v1.MsgCancelDevFeeInfo") + proto.RegisterType((*MsgCancelDevFeeInfoResponse)(nil), "evmos.fees.v1.MsgCancelDevFeeInfoResponse") + proto.RegisterType((*MsgUpdateDevFeeInfo)(nil), "evmos.fees.v1.MsgUpdateDevFeeInfo") + proto.RegisterType((*MsgUpdateDevFeeInfoResponse)(nil), "evmos.fees.v1.MsgUpdateDevFeeInfoResponse") +} + +func init() { proto.RegisterFile("evmos/fees/v1/tx.proto", fileDescriptor_8839b3a6b237f9b6) } + +var fileDescriptor_8839b3a6b237f9b6 = []byte{ + // 445 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x94, 0x4d, 0x8b, 0xd3, 0x40, + 0x18, 0xc7, 0x33, 0x9b, 0xb2, 0xe0, 0x80, 0xb8, 0x44, 0x5d, 0x96, 0xe8, 0x66, 0x97, 0xa0, 0x6c, + 0x2b, 0x9a, 0xa1, 0xf6, 0xe6, 0xcd, 0x2a, 0x82, 0x87, 0x5e, 0x02, 0x5e, 0xbc, 0x94, 0x69, 0xf2, + 0x74, 0x1a, 0x68, 0x67, 0xe2, 0xcc, 0x34, 0x6d, 0xaf, 0x7e, 0x02, 0xc5, 0x93, 0xe0, 0xc1, 0x4f, + 0xe1, 0x67, 0xd0, 0x5b, 0xc1, 0x8b, 0x47, 0x69, 0x3d, 0xf8, 0x31, 0xa4, 0x79, 0xc3, 0x26, 0xf1, + 0xe5, 0x22, 0x78, 0x9b, 0xfc, 0xf9, 0x3d, 0x33, 0xbf, 0x3c, 0xcf, 0x24, 0xf8, 0x18, 0x92, 0x99, + 0x50, 0x64, 0x0c, 0xa0, 0x48, 0xd2, 0x25, 0x7a, 0xe9, 0xc5, 0x52, 0x68, 0x61, 0x5d, 0x4e, 0x73, + 0x6f, 0x97, 0x7b, 0x49, 0xd7, 0xbe, 0xc9, 0x84, 0x60, 0x53, 0x20, 0x34, 0x8e, 0x08, 0xe5, 0x5c, + 0x68, 0xaa, 0x23, 0xc1, 0x55, 0x06, 0xdb, 0xd7, 0x98, 0x60, 0x22, 0x5d, 0x92, 0xdd, 0x2a, 0x4b, + 0xdd, 0x0f, 0x08, 0x5f, 0x1f, 0x28, 0xe6, 0x03, 0x8b, 0x94, 0x06, 0xf9, 0x18, 0x92, 0x27, 0x00, + 0x4f, 0xf9, 0x58, 0x58, 0x1d, 0x7c, 0x14, 0x08, 0xae, 0x25, 0x0d, 0xf4, 0x90, 0x86, 0xa1, 0x04, + 0xa5, 0x4e, 0xd0, 0x39, 0x6a, 0x5f, 0xf2, 0xaf, 0x14, 0xf9, 0xc3, 0x2c, 0xde, 0xa1, 0x21, 0xc4, + 0x53, 0xb1, 0x02, 0x59, 0xa2, 0x07, 0x19, 0x5a, 0xe4, 0x3f, 0xa1, 0x8b, 0x48, 0x4f, 0x42, 0x49, + 0x17, 0x25, 0x6a, 0x66, 0x68, 0x91, 0x17, 0xe8, 0x31, 0x3e, 0xe4, 0x82, 0x07, 0xa0, 0x4e, 0x5a, + 0xe7, 0x66, 0xbb, 0xe5, 0xe7, 0x4f, 0x0f, 0x5a, 0xdf, 0xdf, 0x9f, 0x19, 0xee, 0x19, 0x3e, 0x6d, + 0xf4, 0xf6, 0x41, 0xc5, 0x82, 0x2b, 0x70, 0x5f, 0xe0, 0xab, 0x03, 0xc5, 0x1e, 0x51, 0x1e, 0xc0, + 0xf4, 0x5f, 0xbf, 0x56, 0xee, 0x74, 0x8a, 0x6f, 0x34, 0x1c, 0x59, 0x1a, 0xbd, 0x43, 0xa9, 0xd2, + 0xb3, 0x38, 0xa4, 0x1a, 0xfe, 0xa3, 0x4e, 0xef, 0xd9, 0x57, 0xed, 0x0a, 0xfb, 0xfb, 0x9f, 0x4c, + 0x6c, 0x0e, 0x14, 0xb3, 0xde, 0x22, 0x6c, 0x35, 0x5c, 0x97, 0x5b, 0xde, 0xde, 0x65, 0xf4, 0x1a, + 0x87, 0x63, 0xdf, 0xfd, 0x1b, 0xaa, 0x6c, 0x18, 0x79, 0xf9, 0xf9, 0xdb, 0x9b, 0x83, 0x8e, 0x75, + 0x41, 0xaa, 0x1f, 0x00, 0x91, 0x79, 0xd5, 0x70, 0x0c, 0x30, 0x2c, 0xba, 0x64, 0xbd, 0x46, 0xf8, + 0xa8, 0x36, 0x71, 0xb7, 0x7e, 0x66, 0x95, 0xb1, 0xef, 0xfc, 0x99, 0x29, 0xad, 0xee, 0xa5, 0x56, + 0x17, 0xd6, 0xed, 0xba, 0x55, 0x90, 0xd6, 0xd4, 0x9d, 0x6a, 0x23, 0x6f, 0x70, 0xaa, 0x32, 0x4d, + 0x4e, 0xbf, 0x1a, 0xce, 0xef, 0x9c, 0xe6, 0x69, 0xcd, 0x9e, 0x53, 0xbf, 0xff, 0x71, 0xe3, 0xa0, + 0xf5, 0xc6, 0x41, 0x5f, 0x37, 0x0e, 0x7a, 0xb5, 0x75, 0x8c, 0xf5, 0xd6, 0x31, 0xbe, 0x6c, 0x1d, + 0xe3, 0x79, 0x9b, 0x45, 0x7a, 0x32, 0x1f, 0x79, 0x81, 0x98, 0x11, 0x3d, 0xa1, 0x52, 0x45, 0x2a, + 0xdf, 0x32, 0xe9, 0x91, 0x65, 0xb6, 0xaf, 0x5e, 0xc5, 0xa0, 0x46, 0x87, 0xe9, 0x0f, 0xa4, 0xf7, + 0x23, 0x00, 0x00, 0xff, 0xff, 0x20, 0x68, 0x4e, 0x28, 0x9d, 0x04, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// MsgClient is the client API for Msg service. +// +// 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 { + // RegisterDevFeeInfo is used by a deployer to register a new contract for + // receiving transaction fees + RegisterDevFeeInfo(ctx context.Context, in *MsgRegisterDevFeeInfo, opts ...grpc.CallOption) (*MsgRegisterDevFeeInfoResponse, error) + // CancelDevFeeInfo is used by a deployer to cancel a registered contract + // and stop receiving transaction fees + CancelDevFeeInfo(ctx context.Context, in *MsgCancelDevFeeInfo, opts ...grpc.CallOption) (*MsgCancelDevFeeInfoResponse, error) + // UpdateDevFeeInfo is used by a deployer to update the withdraw address + UpdateDevFeeInfo(ctx context.Context, in *MsgUpdateDevFeeInfo, opts ...grpc.CallOption) (*MsgUpdateDevFeeInfoResponse, error) +} + +type msgClient struct { + cc grpc1.ClientConn +} + +func NewMsgClient(cc grpc1.ClientConn) MsgClient { + return &msgClient{cc} +} + +func (c *msgClient) RegisterDevFeeInfo(ctx context.Context, in *MsgRegisterDevFeeInfo, opts ...grpc.CallOption) (*MsgRegisterDevFeeInfoResponse, error) { + out := new(MsgRegisterDevFeeInfoResponse) + err := c.cc.Invoke(ctx, "/evmos.fees.v1.Msg/RegisterDevFeeInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) CancelDevFeeInfo(ctx context.Context, in *MsgCancelDevFeeInfo, opts ...grpc.CallOption) (*MsgCancelDevFeeInfoResponse, error) { + out := new(MsgCancelDevFeeInfoResponse) + err := c.cc.Invoke(ctx, "/evmos.fees.v1.Msg/CancelDevFeeInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *msgClient) UpdateDevFeeInfo(ctx context.Context, in *MsgUpdateDevFeeInfo, opts ...grpc.CallOption) (*MsgUpdateDevFeeInfoResponse, error) { + out := new(MsgUpdateDevFeeInfoResponse) + err := c.cc.Invoke(ctx, "/evmos.fees.v1.Msg/UpdateDevFeeInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MsgServer is the server API for Msg service. +type MsgServer interface { + // RegisterDevFeeInfo is used by a deployer to register a new contract for + // receiving transaction fees + RegisterDevFeeInfo(context.Context, *MsgRegisterDevFeeInfo) (*MsgRegisterDevFeeInfoResponse, error) + // CancelDevFeeInfo is used by a deployer to cancel a registered contract + // and stop receiving transaction fees + CancelDevFeeInfo(context.Context, *MsgCancelDevFeeInfo) (*MsgCancelDevFeeInfoResponse, error) + // UpdateDevFeeInfo is used by a deployer to update the withdraw address + UpdateDevFeeInfo(context.Context, *MsgUpdateDevFeeInfo) (*MsgUpdateDevFeeInfoResponse, error) +} + +// UnimplementedMsgServer can be embedded to have forward compatible implementations. +type UnimplementedMsgServer struct { +} + +func (*UnimplementedMsgServer) RegisterDevFeeInfo(ctx context.Context, req *MsgRegisterDevFeeInfo) (*MsgRegisterDevFeeInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterDevFeeInfo not implemented") +} +func (*UnimplementedMsgServer) CancelDevFeeInfo(ctx context.Context, req *MsgCancelDevFeeInfo) (*MsgCancelDevFeeInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CancelDevFeeInfo not implemented") +} +func (*UnimplementedMsgServer) UpdateDevFeeInfo(ctx context.Context, req *MsgUpdateDevFeeInfo) (*MsgUpdateDevFeeInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDevFeeInfo not implemented") +} + +func RegisterMsgServer(s grpc1.Server, srv MsgServer) { + s.RegisterService(&_Msg_serviceDesc, srv) +} + +func _Msg_RegisterDevFeeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgRegisterDevFeeInfo) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).RegisterDevFeeInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/evmos.fees.v1.Msg/RegisterDevFeeInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).RegisterDevFeeInfo(ctx, req.(*MsgRegisterDevFeeInfo)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_CancelDevFeeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgCancelDevFeeInfo) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).CancelDevFeeInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/evmos.fees.v1.Msg/CancelDevFeeInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).CancelDevFeeInfo(ctx, req.(*MsgCancelDevFeeInfo)) + } + return interceptor(ctx, in, info, handler) +} + +func _Msg_UpdateDevFeeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgUpdateDevFeeInfo) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MsgServer).UpdateDevFeeInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/evmos.fees.v1.Msg/UpdateDevFeeInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MsgServer).UpdateDevFeeInfo(ctx, req.(*MsgUpdateDevFeeInfo)) + } + return interceptor(ctx, in, info, handler) +} + +var _Msg_serviceDesc = grpc.ServiceDesc{ + ServiceName: "evmos.fees.v1.Msg", + HandlerType: (*MsgServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "RegisterDevFeeInfo", + Handler: _Msg_RegisterDevFeeInfo_Handler, + }, + { + MethodName: "CancelDevFeeInfo", + Handler: _Msg_CancelDevFeeInfo_Handler, + }, + { + MethodName: "UpdateDevFeeInfo", + Handler: _Msg_UpdateDevFeeInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "evmos/fees/v1/tx.proto", +} + +func (m *MsgRegisterDevFeeInfo) 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 *MsgRegisterDevFeeInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRegisterDevFeeInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Nonces) > 0 { + dAtA2 := make([]byte, len(m.Nonces)*10) + var j1 int + for _, num := range m.Nonces { + for num >= 1<<7 { + dAtA2[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA2[j1] = uint8(num) + j1++ + } + i -= j1 + copy(dAtA[i:], dAtA2[:j1]) + i = encodeVarintTx(dAtA, i, uint64(j1)) + i-- + dAtA[i] = 0x22 + } + if len(m.WithdrawAddress) > 0 { + i -= len(m.WithdrawAddress) + copy(dAtA[i:], m.WithdrawAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.WithdrawAddress))) + i-- + dAtA[i] = 0x1a + } + if len(m.DeployerAddress) > 0 { + i -= len(m.DeployerAddress) + copy(dAtA[i:], m.DeployerAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.DeployerAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.ContractAddress) > 0 { + i -= len(m.ContractAddress) + copy(dAtA[i:], m.ContractAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.ContractAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgRegisterDevFeeInfoResponse) 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 *MsgRegisterDevFeeInfoResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgRegisterDevFeeInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgCancelDevFeeInfo) 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 *MsgCancelDevFeeInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCancelDevFeeInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.DeployerAddress) > 0 { + i -= len(m.DeployerAddress) + copy(dAtA[i:], m.DeployerAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.DeployerAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.ContractAddress) > 0 { + i -= len(m.ContractAddress) + copy(dAtA[i:], m.ContractAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.ContractAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgCancelDevFeeInfoResponse) 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 *MsgCancelDevFeeInfoResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgCancelDevFeeInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *MsgUpdateDevFeeInfo) 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 *MsgUpdateDevFeeInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateDevFeeInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.WithdrawAddress) > 0 { + i -= len(m.WithdrawAddress) + copy(dAtA[i:], m.WithdrawAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.WithdrawAddress))) + i-- + dAtA[i] = 0x1a + } + if len(m.DeployerAddress) > 0 { + i -= len(m.DeployerAddress) + copy(dAtA[i:], m.DeployerAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.DeployerAddress))) + i-- + dAtA[i] = 0x12 + } + if len(m.ContractAddress) > 0 { + i -= len(m.ContractAddress) + copy(dAtA[i:], m.ContractAddress) + i = encodeVarintTx(dAtA, i, uint64(len(m.ContractAddress))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MsgUpdateDevFeeInfoResponse) 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 *MsgUpdateDevFeeInfoResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MsgUpdateDevFeeInfoResponse) 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 + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *MsgRegisterDevFeeInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ContractAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.DeployerAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.WithdrawAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + if len(m.Nonces) > 0 { + l = 0 + for _, e := range m.Nonces { + l += sovTx(uint64(e)) + } + n += 1 + sovTx(uint64(l)) + l + } + return n +} + +func (m *MsgRegisterDevFeeInfoResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgCancelDevFeeInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ContractAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.DeployerAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgCancelDevFeeInfoResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *MsgUpdateDevFeeInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ContractAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.DeployerAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + l = len(m.WithdrawAddress) + if l > 0 { + n += 1 + l + sovTx(uint64(l)) + } + return n +} + +func (m *MsgUpdateDevFeeInfoResponse) 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 +} +func sozTx(x uint64) (n int) { + return sovTx(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *MsgRegisterDevFeeInfo) 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: MsgRegisterDevFeeInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRegisterDevFeeInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", 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.ContractAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeployerAddress", 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.DeployerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WithdrawAddress", 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.WithdrawAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType == 0 { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Nonces = append(m.Nonces, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return ErrInvalidLengthTx + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return ErrInvalidLengthTx + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(m.Nonces) == 0 { + m.Nonces = make([]uint64, 0, elementCount) + } + for iNdEx < postIndex { + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTx + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Nonces = append(m.Nonces, v) + } + } else { + return fmt.Errorf("proto: wrong wireType = %d for field Nonces", wireType) + } + 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 *MsgRegisterDevFeeInfoResponse) 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: MsgRegisterDevFeeInfoResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgRegisterDevFeeInfoResponse: 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 *MsgCancelDevFeeInfo) 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: MsgCancelDevFeeInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCancelDevFeeInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", 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.ContractAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeployerAddress", 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.DeployerAddress = 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 *MsgCancelDevFeeInfoResponse) 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: MsgCancelDevFeeInfoResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgCancelDevFeeInfoResponse: 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 *MsgUpdateDevFeeInfo) 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: MsgUpdateDevFeeInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateDevFeeInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContractAddress", 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.ContractAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DeployerAddress", 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.DeployerAddress = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WithdrawAddress", 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.WithdrawAddress = 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 *MsgUpdateDevFeeInfoResponse) 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: MsgUpdateDevFeeInfoResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MsgUpdateDevFeeInfoResponse: 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 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTx + } + 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, ErrIntOverflowTx + } + 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, ErrIntOverflowTx + } + 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, ErrInvalidLengthTx + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTx + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTx + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTx = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTx = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTx = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/fees/types/tx.pb.gw.go b/x/fees/types/tx.pb.gw.go new file mode 100644 index 0000000000..2abb58da5b --- /dev/null +++ b/x/fees/types/tx.pb.gw.go @@ -0,0 +1,337 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: evmos/fees/v1/tx.proto + +/* +Package types is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package types + +import ( + "context" + "io" + "net/http" + + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = descriptor.ForMessage +var _ = metadata.Join + +var ( + filter_Msg_RegisterDevFeeInfo_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Msg_RegisterDevFeeInfo_0(ctx context.Context, marshaler runtime.Marshaler, client MsgClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq MsgRegisterDevFeeInfo + 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_RegisterDevFeeInfo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.RegisterDevFeeInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Msg_RegisterDevFeeInfo_0(ctx context.Context, marshaler runtime.Marshaler, server MsgServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq MsgRegisterDevFeeInfo + 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_RegisterDevFeeInfo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.RegisterDevFeeInfo(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_Msg_CancelDevFeeInfo_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Msg_CancelDevFeeInfo_0(ctx context.Context, marshaler runtime.Marshaler, client MsgClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq MsgCancelDevFeeInfo + 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_CancelDevFeeInfo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.CancelDevFeeInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Msg_CancelDevFeeInfo_0(ctx context.Context, marshaler runtime.Marshaler, server MsgServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq MsgCancelDevFeeInfo + 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_CancelDevFeeInfo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.CancelDevFeeInfo(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_Msg_UpdateDevFeeInfo_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Msg_UpdateDevFeeInfo_0(ctx context.Context, marshaler runtime.Marshaler, client MsgClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq MsgUpdateDevFeeInfo + 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_UpdateDevFeeInfo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateDevFeeInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Msg_UpdateDevFeeInfo_0(ctx context.Context, marshaler runtime.Marshaler, server MsgServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq MsgUpdateDevFeeInfo + 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_UpdateDevFeeInfo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateDevFeeInfo(ctx, &protoReq) + return msg, metadata, err + +} + +// 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 to stop working. Consider using RegisterMsgHandlerFromEndpoint instead. +func RegisterMsgHandlerServer(ctx context.Context, mux *runtime.ServeMux, server MsgServer) error { + + mux.Handle("GET", pattern_Msg_RegisterDevFeeInfo_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_RegisterDevFeeInfo_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_RegisterDevFeeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Msg_CancelDevFeeInfo_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_CancelDevFeeInfo_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_CancelDevFeeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Msg_UpdateDevFeeInfo_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_UpdateDevFeeInfo_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_UpdateDevFeeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterMsgHandlerFromEndpoint is same as RegisterMsgHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterMsgHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterMsgHandler(ctx, mux, conn) +} + +// RegisterMsgHandler registers the http handlers for service Msg to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterMsgHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterMsgHandlerClient(ctx, mux, NewMsgClient(conn)) +} + +// RegisterMsgHandlerClient registers the http handlers for service Msg +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "MsgClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "MsgClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "MsgClient" to call the correct interceptors. +func RegisterMsgHandlerClient(ctx context.Context, mux *runtime.ServeMux, client MsgClient) error { + + mux.Handle("GET", pattern_Msg_RegisterDevFeeInfo_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_RegisterDevFeeInfo_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_RegisterDevFeeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Msg_CancelDevFeeInfo_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_CancelDevFeeInfo_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_CancelDevFeeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Msg_UpdateDevFeeInfo_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_UpdateDevFeeInfo_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_UpdateDevFeeInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_Msg_RegisterDevFeeInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"evmos", "fees", "v1", "tx", "register_fee_contract"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Msg_CancelDevFeeInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"evmos", "fees", "v1", "tx", "cancel_fee_contract"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_Msg_UpdateDevFeeInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"evmos", "fees", "v1", "tx", "update_fee_contract"}, "", runtime.AssumeColonVerbOpt(true))) +) + +var ( + forward_Msg_RegisterDevFeeInfo_0 = runtime.ForwardResponseMessage + + forward_Msg_CancelDevFeeInfo_0 = runtime.ForwardResponseMessage + + forward_Msg_UpdateDevFeeInfo_0 = runtime.ForwardResponseMessage +) From a81fd31c1056e71767801163d48571d7a731f1d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Federico=20Kunze=20K=C3=BCllmer?= <31522760+fedekunze@users.noreply.github.com> Date: Wed, 6 Apr 2022 23:36:20 +0200 Subject: [PATCH 3/3] update testnet docs (#465) --- docs/.vuepress/config.js | 4 ++-- docs/basics/chain_id.md | 15 ++++++++------- docs/governance/submitting.md | 2 +- docs/guides/keys-wallets/multisig.md | 12 ++++++------ docs/guides/localnet/single_node.md | 4 ++-- docs/guides/validators/faq.md | 2 +- docs/quickstart/binary.md | 8 ++++---- docs/quickstart/interact_node.md | 10 +++++----- docs/testnet/join.md | 15 ++++++++------- 9 files changed, 37 insertions(+), 35 deletions(-) diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index 02f70f93ae..176e03d1e1 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -62,9 +62,9 @@ module.exports = { rpc_url_local: 'http://localhost:8545/', chain_id: '9001', testnet_chain_id: '9000', - latest_version: 'v3.0.0-beta', + latest_version: 'v3.0.0-beta1', version_number: '2', - testnet_version_number: '3', + testnet_version_number: '4', testnet_evm_explorer_url: 'https://evm.evmos.dev', evm_explorer_url: 'https://evm.evmos.org', testnet_cosmos_explorer_url: 'https://explorer.evmos.dev/', diff --git a/docs/basics/chain_id.md b/docs/basics/chain_id.md index b7d8787def..023429bf2b 100644 --- a/docs/basics/chain_id.md +++ b/docs/basics/chain_id.md @@ -15,17 +15,18 @@ Learn about the Evmos chain-id format {synopsis} :::: tabs ::: tab Mainnet -| Name | Chain ID | Identifier | EIP155 Number | Version Number | -|-------------------------------------------------|-----------------------------------------------|------------|---------------------------------------|-------------------------------------------| +| Name | Chain ID | Identifier | EIP155 Number | Version Number | +| ----------------------------------------------- | --------------------------------------------- | ---------- | ------------------------------------- | ------------------------------------------- | | Evmos {{ $themeConfig.project.version_number }} | `evmos_{{ $themeConfig.project.chain_id }}-2` | `evmos` | `{{ $themeConfig.project.chain_id }}` | `{{ $themeConfig.project.version_number }}` | -| Evmos 1 | `evmos_{{ $themeConfig.project.chain_id }}-1` | `evmos` | `{{ $themeConfig.project.chain_id }}` | `1` | +| Evmos 1 | `evmos_{{ $themeConfig.project.chain_id }}-1` | `evmos` | `{{ $themeConfig.project.chain_id }}` | `1` | ::: ::: tab Testnets | Name | Chain ID | Identifier | EIP155 Number | Version Number | -|-----------------------------------|-------------------------------------------------------|------------|-----------------------------------------------|-----------------------------------------------------| -| Evmos Public Testnet | `evmos_{{ $themeConfig.project.testnet_chain_id }}-3` | `evmos` | `{{ $themeConfig.project.testnet_chain_id }}` | `{{ $themeConfig.project.testnet_version_number }}` | -| Olympus Mons Incentivized Testnet | `evmos_{{ $themeConfig.project.testnet_chain_id }}-2` | `evmos` | `{{ $themeConfig.project.testnet_chain_id }}` | `2` | +| --------------------------------- | ----------------------------------------------------- | ---------- | --------------------------------------------- | --------------------------------------------------- | +| Evmos Public Testnet | `evmos_{{ $themeConfig.project.testnet_chain_id }}-4` | `evmos` | `{{ $themeConfig.project.testnet_chain_id }}` | `{{ $themeConfig.project.testnet_version_number }}` | +| Evmos Public Testnet | `evmos_{{ $themeConfig.project.testnet_chain_id }}-3` | `evmos` | `{{ $themeConfig.project.testnet_chain_id }}` | `3` | +| Olympus Mons Incentivized Testnet | `evmos_{{ $themeConfig.project.testnet_chain_id }}-2` | `evmos` | `{{ $themeConfig.project.testnet_chain_id }}` | `2` | | Arsia Mons Testnet | `evmos_{{ $themeConfig.project.testnet_chain_id }}-1` | `evmos` | `{{ $themeConfig.project.testnet_chain_id }}` | `1` | ::: @@ -62,7 +63,7 @@ The format for specifying and Evmos compatible chain-id in genesis is the follow The following table provides an example where the second row corresponds to an upgrade from the first one: | ChainID | Identifier | EIP155 Number | Version Number | -|----------------|------------|---------------|----------------| +| -------------- | ---------- | ------------- | -------------- | | `evmos_9000-1` | evmos | 9000 | 1 | | `evmos_9000-2` | evmos | 9000 | 2 | | `...` | ... | ... | ... | diff --git a/docs/governance/submitting.md b/docs/governance/submitting.md index 569ff6c2a3..2c36468328 100644 --- a/docs/governance/submitting.md +++ b/docs/governance/submitting.md @@ -76,7 +76,7 @@ Use the `evmos tx gov --help` flag to get more info about the governance command - many nodes (including the Figment node) use a minimum fee to desincentivize transaction spamming - 7500aevmos is equal to 0.0075 EVMOS 6. `--chain-id evmos_90001-2` is Evmos Mainnet. For current and past chain-id's, please look at the [tharsis/mainnet resource](https://github.com/tharsis/mainnet) - - the testnet chain ID is [evmos_9000-3](https://testnet.mintscan.io/evmos). For current and past testnet information, please look at the [testnet repository](https://github.com/tharsis/testnets) + - the testnet chain ID is [evmos_9000-4](https://testnet.mintscan.io/evmos). For current and past testnet information, please look at the [testnet repository](https://github.com/tharsis/testnets) 7. `--node` is using a full node to send the transaction to the Evmos Mainnet ### Verifying your transaction diff --git a/docs/guides/keys-wallets/multisig.md b/docs/guides/keys-wallets/multisig.md index e2931bdcdf..9d92412d54 100644 --- a/docs/guides/keys-wallets/multisig.md +++ b/docs/guides/keys-wallets/multisig.md @@ -80,7 +80,7 @@ evmosd tx bank send \ test1 \ evmos1e0fx0q9meawrcq7fmma9x60gk35lpr4xk3884m \ 10000000000000000000aevmos \ - --chain-id=evmos_9000-3 \ + --chain-id=evmos_9000-4 \ --gas=auto \ --fees=1000000aevmos \ --broadcast-mode=block @@ -97,7 +97,7 @@ evmosd tx bank send \ 5000000000000000000aevmos \ --gas=200000 \ --fees=1000000aevmos \ - --chain-id=evmos_9000-3 \ + --chain-id=evmos_9000-4 \ --generate-only > unsignedTx.json ``` @@ -152,7 +152,7 @@ evmosd tx sign \ --multisig=evmos1e0fx0q9meawrcq7fmma9x60gk35lpr4xk3884m \ --from=test1 \ --output-document=test1sig.json \ - --chain-id=evmos_9000-3 + --chain-id=evmos_9000-4 ``` ```sh @@ -161,7 +161,7 @@ evmosd tx sign \ --multisig=evmos1e0fx0q9meawrcq7fmma9x60gk35lpr4xk3884m \ --from=test2 \ --output-document=test2sig.json \ - --chain-id=evmos_9000-3 + --chain-id=evmos_9000-4 ``` ### Step 4: Create multisignature @@ -174,7 +174,7 @@ evmosd tx multisign \ multi \ test1sig.json test2sig.json \ --output-document=signedTx.json \ - --chain-id=evmos_9000-3 + --chain-id=evmos_9000-4 ``` The TX is now signed: @@ -266,6 +266,6 @@ The TX is now signed: ```sh evmosd tx broadcast signedTx.json \ - --chain-id=evmos_9000-3 \ + --chain-id=evmos_9000-4 \ --broadcast-mode=block ``` diff --git a/docs/guides/localnet/single_node.md b/docs/guides/localnet/single_node.md index 0930779d8d..0bd6b3c178 100644 --- a/docs/guides/localnet/single_node.md +++ b/docs/guides/localnet/single_node.md @@ -15,7 +15,7 @@ You can customize the local testnet script by changing values for convenience fo ```bash # customize the name of your key, the chain-id, moniker of the node, keyring backend, and log level KEY="mykey" -CHAINID="evmos_9000-3" +CHAINID="evmos_9000-4" MONIKER="localtestnet" KEYRING="test" LOGLEVEL="info" @@ -48,7 +48,7 @@ Before actually running the node, we need to initialize the chain, and most impo ```bash $MONIKER=testing $KEY=mykey -$CHAINID="evmos_9000-3" +$CHAINID="evmos_9000-4" # The argument $MONIKER is the custom username of your node, it should be human-readable. evmosd init $MONIKER --chain-id=$CHAINID diff --git a/docs/guides/validators/faq.md b/docs/guides/validators/faq.md index 8e0acc4721..2d655c11f0 100644 --- a/docs/guides/validators/faq.md +++ b/docs/guides/validators/faq.md @@ -61,7 +61,7 @@ evmosd tx staking create-validator --commission-max-change-rate="0.01" --min-self-delegation "1" --moniker "validator" - --chain-id "evmos_9000-3" + --chain-id "evmos_9000-4" --gas auto --node tcp://127.0.0.1:26647 ``` diff --git a/docs/quickstart/binary.md b/docs/quickstart/binary.md index d1897497e7..01b0454bd0 100644 --- a/docs/quickstart/binary.md +++ b/docs/quickstart/binary.md @@ -109,13 +109,13 @@ evmosd config We can make changes to the default settings upon our choices, so it allows users to set the configuration beforehand all at once, so it would be ready with the same config afterward. -For example, the chain identifier can be changed to `evmos_9000-3` from a blank name by using: +For example, the chain identifier can be changed to `evmos_9000-4` from a blank name by using: ```bash -evmosd config "chain-id" evmos_9000-3 +evmosd config "chain-id" evmos_9000-4 evmosd config { - "chain-id": "evmos_9000-3", + "chain-id": "evmos_9000-4", "keyring-backend": "os", "output": "text", "node": "tcp://localhost:26657", @@ -135,7 +135,7 @@ Alternatively, we can directly make the changes to the config values in one plac # The network chain ID -chain-id = "evmos_9000-3" +chain-id = "evmos_9000-4" # The keyring's backend, where the keys are stored (os|file|kwallet|pass|test|memory) diff --git a/docs/quickstart/interact_node.md b/docs/quickstart/interact_node.md index 3875a9a399..a157289e59 100644 --- a/docs/quickstart/interact_node.md +++ b/docs/quickstart/interact_node.md @@ -11,7 +11,7 @@ There are multiple ways to interact with a node: using the CLI, using gRPC or us Now that your very own node is running, it is time to try sending tokens from the first account you created to a second account. In a new terminal window, start by running the following query command: ```bash -evmosd query bank balances $MY_VALIDATOR_ADDRESS --chain-id=evmos_9000-3 +evmosd query bank balances $MY_VALIDATOR_ADDRESS --chain-id=evmos_9000-4 ``` You should see the current balance of the account you created, equal to the original balance of tokens you granted it minus the amount you delegated via the `gentx`. Now, create a second account: @@ -26,19 +26,19 @@ RECIPIENT=$(evmosd keys show recipient -a --keyring-backend=file) The command above creates a local key-pair that is not yet registered on the chain. An account is created the first time it receives tokens from another account. Now, run the following command to send tokens to the `recipient` account: ```bash -evmosd tx bank send $MY_VALIDATOR_ADDRESS $RECIPIENT 1000000aevmos --chain-id=evmos_9000-3 --keyring-backend=file +evmosd tx bank send $MY_VALIDATOR_ADDRESS $RECIPIENT 1000000aevmos --chain-id=evmos_9000-4 --keyring-backend=file # Check that the recipient account did receive the tokens. -evmosd query bank balances $RECIPIENT --chain-id=evmos_9000-3 +evmosd query bank balances $RECIPIENT --chain-id=evmos_9000-4 ``` Finally, delegate some of the stake tokens sent to the `recipient` account to the validator: ```bash -evmosd tx staking delegate $(evmosd keys show my_validator --bech val -a --keyring-backend=file) 500aevmos --from=recipient --chain-id=evmos_9000-3 --keyring-backend=file +evmosd tx staking delegate $(evmosd keys show my_validator --bech val -a --keyring-backend=file) 500aevmos --from=recipient --chain-id=evmos_9000-4 --keyring-backend=file # Query the total delegations to `validator`. -evmosd query staking delegations-to $(evmosd keys show my_validator --bech val -a --keyring-backend=file) --chain-id=evmos_9000-3 +evmosd query staking delegations-to $(evmosd keys show my_validator --bech val -a --keyring-backend=file) --chain-id=evmos_9000-4 ``` You should see two delegations, the first one made from the `gentx`, and the second one you just performed from the `recipient` account. diff --git a/docs/testnet/join.md b/docs/testnet/join.md index 3d73aee388..5731a73660 100644 --- a/docs/testnet/join.md +++ b/docs/testnet/join.md @@ -12,7 +12,8 @@ You specify the network you want to join by setting the **genesis file** and **s | Testnet Chain ID | Description | Site | Version | Status | | ---------------- | --------------------------------- | -------------------------------------------------------------------------- | ----------------------------------------------------- | --- | -| `evmos_9000-3` | Evmos_9000-3 Testnet | [Evmos 9000-3](https://github.com/tharsis/testnets/tree/main/evmos_9000-3) | [`v3.0.0-beta`](https://github.com/tharsis/evmos/releases/tag/v3.0.0-beta) | `Live` | +| `evmos_9000-4` | Evmos_9000-4 Testnet | [Evmos 9000-4](https://github.com/tharsis/testnets/tree/main/evmos_9000-4) | [`v3.0.0-beta1`](https://github.com/tharsis/evmos/releases/tag/v3.0.0-beta1) | `Live` | +| `evmos_9000-3` | Evmos_9000-3 Testnet | [Evmos 9000-3](https://github.com/tharsis/testnets/tree/main/evmos_9000-3) | [`v1.0.0-beta1`](https://github.com/tharsis/evmos/releases/tag/v1.0.0-beta1) | `Stale` | | `evmos_9000-2` | Olympus Mons Incentivized Testnet | [Olympus Mons](https://github.com/tharsis/testnets/tree/main/olympus_mons) | [`v0.3.x`](https://github.com/tharsis/evmos/releases) | `Stale` | | `evmos_9000-1` | Arsia Mons Testnet | [Arsia Mons](https://github.com/tharsis/testnets/tree/main/arsia_mons) | [`v0.1.x`](https://github.com/tharsis/evmos/releases) | `Stale` | @@ -26,14 +27,14 @@ Make sure you have the right version of `{{ $themeConfig.project.binary }}` inst ### Save Chain ID -We recommend saving the testnet `chain-id` into your `{{ $themeConfig.project.binary }}`'s `client.toml`. This will make it so you do not have to manually pass in the `chain-id` flag for every CLI command. +We recommend saving the testnet `chain-id` into your `{{ $themeConfig.project.binary }}`'s `client.toml`. This will make it so you do not have to manually pass in the `chain-id` flag for every CLI command. ::: tip See the Official [Chain IDs](./../basics/chain_id.md#official-chain-ids) for reference. ::: ```bash -evmosd config chain-id evmos_9000-3 +evmosd config chain-id evmos_9000-4 ``` ## Initialize Node @@ -41,7 +42,7 @@ evmosd config chain-id evmos_9000-3 We need to initialize the node to create all the necessary validator and node configuration files: ```bash -evmosd init --chain-id evmos_9000-3 +evmosd init --chain-id evmos_9000-4 ``` ::: danger @@ -59,7 +60,7 @@ Check the `genesis.json` file from the [`testnets`](https://github.com/tharsis/t ```bash sudo apt install -y unzip wget -wget -P ~/.evmosd/config https://github.com/tharsis/testnets/raw/main/evmos_9000-3/genesis.zip +wget -P ~/.evmosd/config https://github.com/tharsis/testnets/raw/main/evmos_9000-4/genesis.zip cd ~/.evmosd/config unzip genesis.zip rm genesis.zip @@ -92,7 +93,7 @@ seeds = "@:" You can use the following code to get seeds from the repo and add it to your config: ```bash -SEEDS=`curl -sL https://raw.githubusercontent.com/tharsis/testnets/main/evmos_9000-3/seeds.txt | awk '{print $1}' | paste -s -d, -` +SEEDS=`curl -sL https://raw.githubusercontent.com/tharsis/testnets/main/evmos_9000-4/seeds.txt | awk '{print $1}' | paste -s -d, -` sed -i.bak -e "s/^seeds =.*/seeds = \"$SEEDS\"/" ~/.evmosd/config/config.toml ``` @@ -108,7 +109,7 @@ available peers on the [`testnets`](https://github.com/tharsis/testnets) repo. A list of available persistent peers is also available in the `#find-peers` channel in the [Evmos Discord](https://discord.gg/evmos). You can get a random 10 entries from the `peers.txt` file in the `PEERS` variable by running the following command: ```bash -PEERS=`curl -sL https://raw.githubusercontent.com/tharsis/testnets/main/evmos_9000-3/peers.txt | sort -R | head -n 10 | awk '{print $1}' | paste -s -d, -` +PEERS=`curl -sL https://raw.githubusercontent.com/tharsis/testnets/main/evmos_9000-4/peers.txt | sort -R | head -n 10 | awk '{print $1}' | paste -s -d, -` ``` Use `sed` to include them into the configuration. You can also add them manually: