diff --git a/proto/denommetadata/genesis.proto b/proto/denommetadata/genesis.proto index 9d40bac0..32128e9c 100644 --- a/proto/denommetadata/genesis.proto +++ b/proto/denommetadata/genesis.proto @@ -1,13 +1,7 @@ syntax = "proto3"; package rollapp.denommetadata.types; -import "gogoproto/gogo.proto"; -import "denommetadata/params.proto"; - option go_package = "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types"; // GenesisState defines the test module's genesis state. -message GenesisState { - // params are all parameters for the module - Params params = 1 [ (gogoproto.nullable) = false ]; -} +message GenesisState {} diff --git a/proto/denommetadata/params.proto b/proto/denommetadata/params.proto deleted file mode 100644 index e3d3b50b..00000000 --- a/proto/denommetadata/params.proto +++ /dev/null @@ -1,13 +0,0 @@ -syntax = "proto3"; -package rollapp.denommetadata.types; -import "gogoproto/gogo.proto"; - -option go_package = "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types"; - -// Params defines the parameters for the module. -message Params { - // allowed_addresses defines the list of addresses authorized to use the - // module - repeated string allowed_addresses = 1 - [ (gogoproto.moretags) = "yaml:\"allowed_addresses\"" ]; -} diff --git a/proto/denommetadata/query.proto b/proto/denommetadata/query.proto index fa6619d8..1228079e 100644 --- a/proto/denommetadata/query.proto +++ b/proto/denommetadata/query.proto @@ -1,19 +1,12 @@ syntax = "proto3"; package rollapp.denommetadata.types; -import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; -import "denommetadata/params.proto"; option go_package = "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types"; // Query defines the gRPC querier service. service Query { - // Parameters retrieves the denom metadata module params - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = - "/dymensionxyz/dymension-rdk/denommetadata/params"; - } // Queries an IBC denom base on denom trace rpc IBCDenomByDenomTrace(QueryGetIBCDenomByDenomTraceRequest) returns (QueryIBCDenomByDenomTraceResponse) { @@ -22,15 +15,6 @@ service Query { } } -// QueryParamsRequest is request type for the Query/Params RPC method. -message QueryParamsRequest {} - -// QueryParamsResponse is response type for the Query/Params RPC method. -message QueryParamsResponse { - // params holds all the parameters of this module. - Params params = 1 [ (gogoproto.nullable) = false ]; -} - // QueryGetIBCDenomByDenomTraceRequest is the request type for the // Query/IBCDenomByDenomTrace RPC method. message QueryGetIBCDenomByDenomTraceRequest { diff --git a/proto/hub-genesis/genesis.proto b/proto/hub-genesis/genesis.proto old mode 100755 new mode 100644 index 3e226f34..12a64a74 --- a/proto/hub-genesis/genesis.proto +++ b/proto/hub-genesis/genesis.proto @@ -2,14 +2,9 @@ syntax = "proto3"; package rollapp.hub_genesis; import "gogoproto/gogo.proto"; -import "hub-genesis/params.proto"; import "hub-genesis/state.proto"; option go_package = "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/types"; // GenesisState defines the hub-genesis module's genesis state. -message GenesisState { - // params defines all the parameters of the module. - Params params = 1 [ (gogoproto.nullable) = false ]; - State state = 2 [(gogoproto.nullable) = false]; -} +message GenesisState { State state = 1 [ (gogoproto.nullable) = false ]; } diff --git a/proto/hub-genesis/params.proto b/proto/hub-genesis/params.proto deleted file mode 100644 index 6e3aada0..00000000 --- a/proto/hub-genesis/params.proto +++ /dev/null @@ -1,25 +0,0 @@ -syntax = "proto3"; -package rollapp.hub_genesis; - -option go_package = "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/types"; - -import "gogoproto/gogo.proto"; - -// Params holds parameters for the hub-genesis module. -message Params { - option (gogoproto.goproto_stringer) = false; - - // genesis_triggerer_allowlist is a list of the - // accounts that are allowed to trigger a genesis event on the rollapp. - // In the case of an empty list, there are no restrictions - repeated GenesisTriggererParams genesis_triggerer_allowlist = 1 [ - (gogoproto.moretags) = "yaml:\"genesis_triggerer_allowlist\"", - (gogoproto.nullable) = false - ]; -} - -message GenesisTriggererParams { - // address is a bech32-encoded address of the - // accounts that are allowed to trigger a rollapp genesis event. - string address = 1 [ (gogoproto.moretags) = "yaml:\"address\"" ]; -} diff --git a/proto/hub-genesis/query.proto b/proto/hub-genesis/query.proto index 35b30535..caf7bbc0 100644 --- a/proto/hub-genesis/query.proto +++ b/proto/hub-genesis/query.proto @@ -3,40 +3,24 @@ package rollapp.hub_genesis; import "gogoproto/gogo.proto"; import "google/api/annotations.proto"; -import "hub-genesis/params.proto"; import "hub-genesis/state.proto"; option go_package = "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/types"; // Query provides defines the gRPC querier service. service Query { - // Params returns the total set of hub-genesis parameters. - rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { - option (google.api.http).get = - "/dymensionxyz/dymension-rdk/hub-genesis/params"; - } - - // State returns the state of the genesis event. - rpc State(QueryStateRequest) returns (QueryStateResponse) { + // State returns the state of the genesis event. + rpc State(QueryStateRequest) returns (QueryStateResponse) { option (google.api.http).get = "/dymensionxyz/dymension-rdk/hub-genesis/state"; } } -// QueryParamsRequest is the request type for the Query/Params RPC method. -message QueryParamsRequest {} - -// QueryParamsResponse is the response type for the Query/Params RPC method. -message QueryParamsResponse { - // params defines the parameters of the module. - Params params = 1 [ (gogoproto.nullable) = false ]; -} - // QueryStateRequest is the request type for the Query/State RPC method. message QueryStateRequest {} // QueryStateResponse is the response type for the Query/State RPC method. message QueryStateResponse { // state holds the state of the genesis event - State state = 1 [(gogoproto.nullable) = false]; + State state = 1 [ (gogoproto.nullable) = false ]; } \ No newline at end of file diff --git a/proto/hub-genesis/state.proto b/proto/hub-genesis/state.proto index 5d80f756..30ed0f57 100644 --- a/proto/hub-genesis/state.proto +++ b/proto/hub-genesis/state.proto @@ -8,13 +8,13 @@ option go_package = "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/types"; // State holds the state of the genesis event message State { - // is_locked is a boolean that indicates if the genesis event has occured - bool is_locked = 1; - - // genesis_tokens is the list of tokens that are expected to be locked on genesis event - repeated cosmos.base.v1beta1.Coin genesis_tokens = 2 [ - (gogoproto.nullable) = false, - (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" - ]; + // is_locked is a boolean that indicates if the genesis event has occured + bool is_locked = 1; + // genesis_tokens is the list of tokens that are expected to be locked on + // genesis event + repeated cosmos.base.v1beta1.Coin genesis_tokens = 2 [ + (gogoproto.nullable) = false, + (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" + ]; } diff --git a/proto/sequencers/genesis.proto b/proto/sequencers/genesis.proto index e1d888ab..002412be 100644 --- a/proto/sequencers/genesis.proto +++ b/proto/sequencers/genesis.proto @@ -3,6 +3,7 @@ package rollapp.sequencers.types; import "gogoproto/gogo.proto"; import "sequencers/params.proto"; +import "sequencers/permission.proto"; // this line is used by starport scaffolding # genesis/proto/import @@ -12,7 +13,14 @@ option go_package = "github.com/dymensionxyz/dymension-rdk/x/sequencers/types"; message GenesisState { Params params = 1 [ (gogoproto.nullable) = false ]; + // the address and its permissions to trigger some special actions + // on the rollapp + repeated AddressPermissions address_permissions = 2 [ + (gogoproto.moretags) = "yaml:\"address_permissions\"", + (gogoproto.nullable) = false + ]; + // genesis_operator_address defines the genesis operator address of the // sequencer. - string genesis_operator_address = 2; -} \ No newline at end of file + string genesis_operator_address = 3; +} diff --git a/proto/sequencers/gov_permission.proto b/proto/sequencers/gov_permission.proto new file mode 100644 index 00000000..310478e8 --- /dev/null +++ b/proto/sequencers/gov_permission.proto @@ -0,0 +1,31 @@ +syntax = "proto3"; +package rollapp.sequencers.types; + +import "gogoproto/gogo.proto"; +import "sequencers/permission.proto"; + +option go_package = "github.com/dymensionxyz/dymension-rdk/x/sequencers/types"; + +message GrantPermissionsProposal { + option (gogoproto.equal) = true; + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + string title = 1; + string description = 2; + + repeated AddressPermissions address_permissions = 3 + [ (gogoproto.nullable) = false ]; +} + +message RevokePermissionsProposal { + option (gogoproto.equal) = true; + option (gogoproto.goproto_getters) = false; + option (gogoproto.goproto_stringer) = false; + + string title = 1; + string description = 2; + + repeated AddressPermissions address_permissions = 3 + [ (gogoproto.nullable) = false ]; +} \ No newline at end of file diff --git a/proto/sequencers/permission.proto b/proto/sequencers/permission.proto new file mode 100644 index 00000000..6491d179 --- /dev/null +++ b/proto/sequencers/permission.proto @@ -0,0 +1,26 @@ +syntax = "proto3"; +package rollapp.sequencers.types; + +import "gogoproto/gogo.proto"; + +// this line is used by starport scaffolding # genesis/proto/import + +option go_package = "github.com/dymensionxyz/dymension-rdk/x/sequencers/types"; + +message AddressPermissions { + option (gogoproto.equal) = true; + + string address = 1 [ (gogoproto.moretags) = "yaml:\"address\"" ]; + // list of the module name that addresses have permission to execute msg + PermissionList permission_list = 2 [ + (gogoproto.moretags) = "yaml:\"permission_list\"", + (gogoproto.nullable) = false + ]; +} + +message PermissionList { + option (gogoproto.equal) = true; + + repeated string permissions = 1 + [ (gogoproto.moretags) = "yaml:\"permissions\"" ]; +} \ No newline at end of file diff --git a/proto/sequencers/query.proto b/proto/sequencers/query.proto index ee751b58..81b74c4c 100644 --- a/proto/sequencers/query.proto +++ b/proto/sequencers/query.proto @@ -32,6 +32,12 @@ service Query { "/dymensionxyz/dymension-rdk/sequencers/historical_info/{height}"; } + // Permissions queries the permissions for given address. + rpc Permissions(QueryPermissionsRequest) returns (QueryPermissionsResponse) { + option (google.api.http).get = + "/dymensionxyz/dymension-rdk/sequencers/permissions/{address}"; + } + // Parameters queries the staking parameters. rpc Params(QueryParamsRequest) returns (QueryParamsResponse) { option (google.api.http).get = "/cosmos/staking/v1beta1/params"; @@ -84,6 +90,20 @@ message QueryHistoricalInfoResponse { cosmos.staking.v1beta1.HistoricalInfo hist = 1; } +// QueryPermissionsRequest is request type for the Query/Permissions RPC +// method. +message QueryPermissionsRequest { + // address defines the address to query for. + string address = 1; +} + +// QueryPermissionsResponse is response type for the Query/Permissions RPC +// method. +message QueryPermissionsResponse { + // permissions defines the permissions for the given address. + string permissions = 1; +} + // QueryParamsRequest is request type for the Query/Params RPC method. message QueryParamsRequest {} diff --git a/testutil/app/app.go b/testutil/app/app.go index f99ca0af..3b51a8fb 100644 --- a/testutil/app/app.go +++ b/testutil/app/app.go @@ -38,7 +38,6 @@ import ( authkeeper "github.com/cosmos/cosmos-sdk/x/auth/keeper" "github.com/cosmos/cosmos-sdk/x/auth/posthandler" authsims "github.com/cosmos/cosmos-sdk/x/auth/simulation" - "github.com/cosmos/cosmos-sdk/x/auth/tx" authtx "github.com/cosmos/cosmos-sdk/x/auth/tx" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "github.com/cosmos/cosmos-sdk/x/auth/vesting" @@ -379,6 +378,7 @@ func NewRollapp( AddRoute(paramproposal.RouterKey, params.NewParamChangeProposalHandler(app.ParamsKeeper)). AddRoute(distrtypes.RouterKey, distr.NewCommunityPoolSpendProposalHandler(app.DistrKeeper)). AddRoute(upgradetypes.RouterKey, upgrade.NewSoftwareUpgradeProposalHandler(app.UpgradeKeeper)). + AddRoute(seqtypes.RouterKey, sequencers.NewUpdatePermissionProposalHandler(&app.SequencersKeeper)). AddRoute(ibcclienttypes.RouterKey, ibcclient.NewClientProposalHandler(app.IBCKeeper.ClientKeeper)) govConfig := govtypes.DefaultConfig() @@ -414,10 +414,10 @@ func NewRollapp( app.DenommetadataKeeper = denommetadatakeeper.NewKeeper( appCodec, keys[denommetadatatypes.StoreKey], + app.SequencersKeeper, app.BankKeeper, app.TransferKeeper, nil, - app.GetSubspace(denommetadatatypes.ModuleName), ) // set hook for denom metadata keeper later app.DenommetadataKeeper.SetHooks( @@ -429,8 +429,8 @@ func NewRollapp( app.HubGenesisKeeper = hubgenkeeper.NewKeeper( appCodec, keys[hubgentypes.StoreKey], - app.GetSubspace(hubgentypes.ModuleName), app.IBCKeeper.ChannelKeeper, + app.SequencersKeeper, app.BankKeeper, app.AccountKeeper, ) @@ -843,13 +843,11 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino paramsKeeper.Subspace(stakingtypes.ModuleName) paramsKeeper.Subspace(seqtypes.ModuleName) paramsKeeper.Subspace(minttypes.ModuleName) - paramsKeeper.Subspace(denommetadatatypes.ModuleName) paramsKeeper.Subspace(epochstypes.ModuleName) paramsKeeper.Subspace(distrtypes.ModuleName) paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govv1.ParamKeyTable()) paramsKeeper.Subspace(ibctransfertypes.ModuleName) paramsKeeper.Subspace(ibchost.ModuleName) - paramsKeeper.Subspace(hubgentypes.ModuleName) return paramsKeeper } @@ -866,7 +864,7 @@ func MakeEncodingConfig() EncodingConfig { amino := codec.NewLegacyAmino() interfaceRegistry := types.NewInterfaceRegistry() codec := codec.NewProtoCodec(interfaceRegistry) - txCfg := tx.NewTxConfig(codec, tx.DefaultSignModes) + txCfg := authtx.NewTxConfig(codec, authtx.DefaultSignModes) encodingConfig := EncodingConfig{ InterfaceRegistry: interfaceRegistry, diff --git a/x/denommetadata/client/cli/query.go b/x/denommetadata/client/cli/query.go index 7eb4cb3f..f1c9d96e 100644 --- a/x/denommetadata/client/cli/query.go +++ b/x/denommetadata/client/cli/query.go @@ -23,42 +23,12 @@ func GetQueryCmd() *cobra.Command { } denommetadataQueryCmd.AddCommand( - GetCmdQueryParams(), GetCmdIBCDenomBaseOnDenomTrace(), ) return denommetadataQueryCmd } -// GetCmdQueryParams implements a command to return the current parameters. -func GetCmdQueryParams() *cobra.Command { - cmd := &cobra.Command{ - Use: "params", - Short: "Query the current denom metadata module parameters", - Args: cobra.NoArgs, - RunE: func(cmd *cobra.Command, _ []string) error { - clientCtx, err := client.GetClientQueryContext(cmd) - if err != nil { - return err - } - queryClient := types.NewQueryClient(clientCtx) - - params := &types.QueryParamsRequest{} - - res, err := queryClient.Params(context.Background(), params) - if err != nil { - return err - } - - return clientCtx.PrintProto(&res.Params) - }, - } - - flags.AddQueryFlagsToCmd(cmd) - - return cmd -} - // GetCmdIBCDenomBaseOnDenomTrace implements a command to return the IBC denom base on a denom trace. func GetCmdIBCDenomBaseOnDenomTrace() *cobra.Command { cmd := &cobra.Command{ diff --git a/x/denommetadata/genesis.go b/x/denommetadata/genesis.go index 1f38810d..c651c85d 100644 --- a/x/denommetadata/genesis.go +++ b/x/denommetadata/genesis.go @@ -9,27 +9,10 @@ import ( // DefaultGenesis returns the default Capability genesis state func DefaultGenesis() *types.GenesisState { - return &types.GenesisState{ - Params: types.DefaultParams(), - } -} - -// InitGenesis import module genesis -func InitGenesis( - ctx sdk.Context, - k keeper.Keeper, - data types.GenesisState, -) { - k.SetParams(ctx, data.Params) + return &types.GenesisState{} } // ExportGenesis export module state func ExportGenesis(ctx sdk.Context, k keeper.Keeper) *types.GenesisState { - return &types.GenesisState{ - Params: k.GetParams(ctx), - } -} - -func ValidateGenesis(gs types.GenesisState) error { - return gs.Params.Validate() + return &types.GenesisState{} } diff --git a/x/denommetadata/keeper/grpc_query.go b/x/denommetadata/keeper/grpc_query.go index 2deb1d61..5926588c 100644 --- a/x/denommetadata/keeper/grpc_query.go +++ b/x/denommetadata/keeper/grpc_query.go @@ -4,7 +4,6 @@ import ( "context" "strings" - sdk "github.com/cosmos/cosmos-sdk/types" transfertypes "github.com/cosmos/ibc-go/v6/modules/apps/transfer/types" "google.golang.org/grpc/codes" @@ -25,16 +24,6 @@ func NewQuerier(k Keeper) Querier { return Querier{Keeper: k} } -// Params returns denommetadata module params -func (q Querier) Params( - c context.Context, - _ *types.QueryParamsRequest, -) (*types.QueryParamsResponse, error) { - ctx := sdk.UnwrapSDKContext(c) - params := q.GetParams(ctx) - return &types.QueryParamsResponse{Params: params}, nil -} - // IBCDenomByDenomTrace returns IBC denom base on denom trace func (q Querier) IBCDenomByDenomTrace( _ context.Context, diff --git a/x/denommetadata/keeper/grpc_query_test.go b/x/denommetadata/keeper/grpc_query_test.go deleted file mode 100644 index 90134dfb..00000000 --- a/x/denommetadata/keeper/grpc_query_test.go +++ /dev/null @@ -1,23 +0,0 @@ -package keeper_test - -import ( - "testing" - - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/dymensionxyz/dymension-rdk/x/denommetadata/keeper" - "github.com/dymensionxyz/dymension-rdk/x/denommetadata/testutils" - "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types" - "github.com/stretchr/testify/require" -) - -func TestParamsQuery(t *testing.T) { - app, ctx := testutils.NewTestDenommetadataKeeper(t) - - q := keeper.Querier{Keeper: app.DenommetadataKeeper} - - wctx := sdk.WrapSDKContext(ctx) - - response, err := q.Params(wctx, &types.QueryParamsRequest{}) - require.NoError(t, err) - require.Equal(t, &types.QueryParamsResponse{Params: types.DefaultParams()}, response) -} diff --git a/x/denommetadata/keeper/keeper.go b/x/denommetadata/keeper/keeper.go index 45695242..a3506de3 100644 --- a/x/denommetadata/keeper/keeper.go +++ b/x/denommetadata/keeper/keeper.go @@ -3,67 +3,38 @@ package keeper import ( "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" - sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types" ) // Keeper of this module maintains distributing tokens to all stakers. type Keeper struct { - storeKey storetypes.StoreKey - cdc codec.BinaryCodec - paramSpace paramtypes.Subspace + storeKey storetypes.StoreKey + cdc codec.BinaryCodec - bankKeeper types.BankKeeper - transferKeeper types.TransferKeeper - hooks types.MultiDenomMetadataHooks + sequencerKeeper types.SequencerKeeper + bankKeeper types.BankKeeper + transferKeeper types.TransferKeeper + hooks types.MultiDenomMetadataHooks } // NewKeeper creates new instances of the Keeper func NewKeeper( cdc codec.BinaryCodec, storeKey storetypes.StoreKey, + sk types.SequencerKeeper, bk types.BankKeeper, tk types.TransferKeeper, hooks types.MultiDenomMetadataHooks, - paramSpace paramtypes.Subspace, ) Keeper { - // set KeyTable if it has not already been set - if !paramSpace.HasKeyTable() { - paramSpace = paramSpace.WithKeyTable(types.ParamKeyTable()) - } - return Keeper{ - storeKey: storeKey, - cdc: cdc, - paramSpace: paramSpace, - bankKeeper: bk, - transferKeeper: tk, - hooks: hooks, - } -} - -// GetParams returns the total set of denommetadata parameters. -func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) { - k.paramSpace.GetParamSet(ctx, ¶ms) - return -} - -// SetParams sets the total set of denommetadata parameters. -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { - k.paramSpace.SetParamSet(ctx, ¶ms) -} - -// IsAddressPermissioned checks if the given address is permissioned to create or update denom metadata -func (k Keeper) IsAddressPermissioned(ctx sdk.Context, address string) bool { - params := k.GetParams(ctx) - for _, PermissionedAddress := range params.AllowedAddresses { - if PermissionedAddress == address { - return true - } + storeKey: storeKey, + cdc: cdc, + sequencerKeeper: sk, + bankKeeper: bk, + transferKeeper: tk, + hooks: hooks, } - return false } // SetHooks set the denommetadata hooks diff --git a/x/denommetadata/keeper/keeper_test.go b/x/denommetadata/keeper/keeper_test.go deleted file mode 100644 index 2563903b..00000000 --- a/x/denommetadata/keeper/keeper_test.go +++ /dev/null @@ -1,33 +0,0 @@ -package keeper_test - -import ( - "testing" - - "github.com/dymensionxyz/dymension-rdk/x/denommetadata/testutils" - "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types" - "github.com/stretchr/testify/require" -) - -func TestParams(t *testing.T) { - // Setup the test environment - app, ctx := testutils.NewTestDenommetadataKeeper(t) // Assume you have a similar utility function for denommetadata keeper - k := app.DenommetadataKeeper - - // Set some initial parameters - initialParams := types.DefaultParams() - initialParams.AllowedAddresses = []string{"cosmos19crd4fwzm9qtf5ln5l3e2vmquhevjwprk8tgxp", "cosmos1gusne8eh37myphx09hgdsy85zpl2t0kzdvu3en"} // Example addresses - k.SetParams(ctx, initialParams) - - // Retrieve the parameters - retrievedParams := k.GetParams(ctx) - - // Assert that the retrieved parameters match the initial ones - require.Equal(t, initialParams, retrievedParams, "retrieved parameters should match the initial ones") - - // Test setting and getting a different set of parameters - updatedParams := initialParams - updatedParams.AllowedAddresses = append(updatedParams.AllowedAddresses, "cosmos1s77x8wr2gzdhq8gt8c085vate0s23xu9u80wtx") - k.SetParams(ctx, updatedParams) - retrievedParams = k.GetParams(ctx) - require.Equal(t, updatedParams, retrievedParams, "retrieved parameters should match the updated ones") -} diff --git a/x/denommetadata/keeper/msg_server.go b/x/denommetadata/keeper/msg_server.go index 85dc1e33..2012ccc4 100644 --- a/x/denommetadata/keeper/msg_server.go +++ b/x/denommetadata/keeper/msg_server.go @@ -33,7 +33,12 @@ func (k msgServer) CreateDenomMetadata( return nil, err } - if !k.IsAddressPermissioned(ctx, msg.SenderAddress) { + accAddr, err := sdk.AccAddressFromBech32(msg.SenderAddress) + if err != nil { + return nil, err + } + + if !k.sequencerKeeper.HasPermission(ctx, accAddr, types.ModuleName) { return nil, types.ErrNoPermission } @@ -72,7 +77,12 @@ func (k msgServer) UpdateDenomMetadata( return nil, err } - if !k.IsAddressPermissioned(ctx, msg.SenderAddress) { + accAddr, err := sdk.AccAddressFromBech32(msg.SenderAddress) + if err != nil { + return nil, err + } + + if !k.sequencerKeeper.HasPermission(ctx, accAddr, types.ModuleName) { return nil, types.ErrNoPermission } diff --git a/x/denommetadata/keeper/msg_server_test.go b/x/denommetadata/keeper/msg_server_test.go index 8c131af7..671c305e 100644 --- a/x/denommetadata/keeper/msg_server_test.go +++ b/x/denommetadata/keeper/msg_server_test.go @@ -5,14 +5,16 @@ import ( "sync" "testing" + "github.com/stretchr/testify/suite" + sdk "github.com/cosmos/cosmos-sdk/types" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/dymensionxyz/dymension-rdk/testutil/app" "github.com/dymensionxyz/dymension-rdk/x/denommetadata/keeper" "github.com/dymensionxyz/dymension-rdk/x/denommetadata/testutils" - "github.com/stretchr/testify/suite" - - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types" + sequencerstypes "github.com/dymensionxyz/dymension-rdk/x/sequencers/types" ) type DenomMetadataMsgServerTestSuite struct { @@ -34,9 +36,8 @@ func (suite *DenomMetadataMsgServerTestSuite) setupTest(hooks types.DenomMetadat suite.k.SetHooks(types.NewMultiDenommetadataHooks(hooks)) suite.msgServer = keeper.NewMsgServerImpl(suite.k) // Set allowed addresses - initialParams := types.DefaultParams() - initialParams.AllowedAddresses = []string{senderAddress} - suite.k.SetParams(suite.ctx, initialParams) + senderAccAddr := sdk.MustAccAddressFromBech32(senderAddress) + suite.app.SequencersKeeper.GrantPermissions(suite.ctx, senderAccAddr, sequencerstypes.NewPermissionsList([]string{types.ModuleName})) } const ( @@ -92,9 +93,8 @@ func (suite *DenomMetadataMsgServerTestSuite) TestCreateDenomMetadata() { }, }, malleate: func() { - initialParams := types.DefaultParams() - initialParams.AllowedAddresses = []string{} - suite.k.SetParams(suite.ctx, initialParams) + senderAccAddr := sdk.MustAccAddressFromBech32(senderAddress) + suite.app.SequencersKeeper.RevokeAllPermissions(suite.ctx, senderAccAddr) }, hooks: &mockERC20Hook{}, expectHookCalled: false, diff --git a/x/denommetadata/module.go b/x/denommetadata/module.go index 32ba848f..34afd91a 100644 --- a/x/denommetadata/module.go +++ b/x/denommetadata/module.go @@ -56,7 +56,7 @@ func (AppModuleBasic) ValidateGenesis(cdc codec.JSONCodec, config client.TxEncod if err := cdc.UnmarshalJSON(bz, &genState); err != nil { return fmt.Errorf("failed to unmarshal %s genesis state: %w", types.ModuleName, err) } - return ValidateGenesis(genState) + return nil } // RegisterGRPCGatewayRoutes registers the gRPC Gateway routes for the module. @@ -130,10 +130,6 @@ func (am AppModule) RegisterInvariants(sdk.InvariantRegistry) {} // InitGenesis performs the capability module's genesis initialization It returns // no validator updates. func (am AppModule) InitGenesis(ctx sdk.Context, cdc codec.JSONCodec, gs json.RawMessage) []abci.ValidatorUpdate { - // Initialize global index to index in genesis state - var genState types.GenesisState - cdc.MustUnmarshalJSON(gs, &genState) - InitGenesis(ctx, am.keeper, genState) return []abci.ValidatorUpdate{} } diff --git a/x/denommetadata/types/expected_keeper.go b/x/denommetadata/types/expected_keeper.go index 04577e5c..30143e60 100644 --- a/x/denommetadata/types/expected_keeper.go +++ b/x/denommetadata/types/expected_keeper.go @@ -19,3 +19,8 @@ type TransferKeeper interface { HasDenomTrace(ctx sdk.Context, denomTraceHash tmbytes.HexBytes) bool SetDenomTrace(ctx sdk.Context, denomTrace transfertypes.DenomTrace) } + +// SequencerKeeper defines the expected interface needed to check for address permission. +type SequencerKeeper interface { + HasPermission(ctx sdk.Context, accAddr sdk.AccAddress, permission string) bool +} diff --git a/x/denommetadata/types/genesis.pb.go b/x/denommetadata/types/genesis.pb.go index 997cacc1..ddbaa4c7 100644 --- a/x/denommetadata/types/genesis.pb.go +++ b/x/denommetadata/types/genesis.pb.go @@ -5,7 +5,6 @@ package types import ( fmt "fmt" - _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" io "io" math "math" @@ -25,8 +24,6 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the test module's genesis state. type GenesisState struct { - // params are all parameters for the module - Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -62,13 +59,6 @@ func (m *GenesisState) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisState proto.InternalMessageInfo -func (m *GenesisState) GetParams() Params { - if m != nil { - return m.Params - } - return Params{} -} - func init() { proto.RegisterType((*GenesisState)(nil), "rollapp.denommetadata.types.GenesisState") } @@ -76,21 +66,17 @@ func init() { func init() { proto.RegisterFile("denommetadata/genesis.proto", fileDescriptor_d7024f2838e64694) } var fileDescriptor_d7024f2838e64694 = []byte{ - // 209 bytes of a gzipped FileDescriptorProto + // 154 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4e, 0x49, 0xcd, 0xcb, 0xcf, 0xcd, 0x4d, 0x2d, 0x49, 0x4c, 0x49, 0x2c, 0x49, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x2e, 0xca, 0xcf, 0xc9, 0x49, 0x2c, 0x28, - 0xd0, 0x43, 0x51, 0xa4, 0x57, 0x52, 0x59, 0x90, 0x5a, 0x2c, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, - 0x56, 0xa7, 0x0f, 0x62, 0x41, 0xb4, 0x48, 0x49, 0xa1, 0x9a, 0x57, 0x90, 0x58, 0x94, 0x98, 0x0b, - 0x35, 0x4e, 0x29, 0x90, 0x8b, 0xc7, 0x1d, 0x62, 0x7e, 0x70, 0x49, 0x62, 0x49, 0xaa, 0x90, 0x23, - 0x17, 0x1b, 0x44, 0x5e, 0x82, 0x51, 0x81, 0x51, 0x83, 0xdb, 0x48, 0x59, 0x0f, 0x8f, 0x7d, 0x7a, - 0x01, 0x60, 0xa5, 0x4e, 0x2c, 0x27, 0xee, 0xc9, 0x33, 0x04, 0x41, 0x35, 0x3a, 0x85, 0x9e, 0x78, - 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, - 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x94, 0x75, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, - 0x5e, 0x72, 0x7e, 0xae, 0x7e, 0x4a, 0x65, 0x6e, 0x6a, 0x5e, 0x71, 0x66, 0x7e, 0x5e, 0x45, 0x65, - 0x15, 0x82, 0xa3, 0x5b, 0x94, 0x92, 0xad, 0x5f, 0xa1, 0x8f, 0xea, 0x60, 0xb0, 0x5d, 0x49, 0x6c, - 0x60, 0x07, 0x1b, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x08, 0x12, 0x62, 0x3a, 0x1e, 0x01, 0x00, - 0x00, + 0xd0, 0x43, 0x51, 0xa4, 0x57, 0x52, 0x59, 0x90, 0x5a, 0xac, 0xc4, 0xc7, 0xc5, 0xe3, 0x0e, 0x51, + 0x1d, 0x5c, 0x92, 0x58, 0x92, 0xea, 0x14, 0x7a, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, + 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, + 0x0c, 0x51, 0xd6, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0x29, 0x95, + 0xb9, 0xa9, 0x79, 0xc5, 0x99, 0xf9, 0x79, 0x15, 0x95, 0x55, 0x08, 0x8e, 0x6e, 0x51, 0x4a, 0xb6, + 0x7e, 0x85, 0x3e, 0xaa, 0x5b, 0xc0, 0xd6, 0x24, 0xb1, 0x81, 0x9d, 0x62, 0x0c, 0x08, 0x00, 0x00, + 0xff, 0xff, 0x1f, 0xe4, 0x6f, 0x96, 0xa9, 0x00, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -113,16 +99,6 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - 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 } @@ -143,8 +119,6 @@ func (m *GenesisState) Size() (n int) { } var l int _ = l - l = m.Params.Size() - n += 1 + l + sovGenesis(uint64(l)) return n } @@ -183,39 +157,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { 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 default: iNdEx = preIndex skippy, err := skipGenesis(dAtA[iNdEx:]) diff --git a/x/denommetadata/types/params.go b/x/denommetadata/types/params.go deleted file mode 100644 index 3cb65ab6..00000000 --- a/x/denommetadata/types/params.go +++ /dev/null @@ -1,68 +0,0 @@ -package types - -import ( - "fmt" - - errorsmod "cosmossdk.io/errors" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - - sdk "github.com/cosmos/cosmos-sdk/types" -) - -var ( - KeyAllowedAddresses = []byte("AllowedAddresses") - DefaultAllowedAddresses = []string(nil) // no one allowed -) - -// ParamKeyTable for minting module. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -// NewParams creates a new Params object -func NewParams( - allowedAddresses []string, -) Params { - return Params{ - AllowedAddresses: allowedAddresses, - } -} - -// DefaultParams returns default x/denommetadata module parameters. -func DefaultParams() Params { - return Params{ - AllowedAddresses: DefaultAllowedAddresses, - } -} - -func (p Params) Validate() error { - return assertValidAddresses(p.AllowedAddresses) -} - -func assertValidAddresses(i any) error { - addrs, ok := i.([]string) - if !ok { - return fmt.Errorf("invalid parameter type: %T", i) - } - - idx := make(map[string]struct{}, len(addrs)) - for _, a := range addrs { - - // this also checks for empty addresses - if _, err := sdk.AccAddressFromBech32(a); err != nil { - return errorsmod.Wrapf(err, "address: %s", a) - } - if _, exists := idx[a]; exists { - return ErrDuplicate.Wrapf("address: %s", a) - } - idx[a] = struct{}{} - } - return nil -} - -// Implements params.ParamSet. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyAllowedAddresses, &p.AllowedAddresses, assertValidAddresses), - } -} diff --git a/x/denommetadata/types/params.pb.go b/x/denommetadata/types/params.pb.go deleted file mode 100644 index 66ef3f40..00000000 --- a/x/denommetadata/types/params.pb.go +++ /dev/null @@ -1,326 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: denommetadata/params.proto - -package types - -import ( - fmt "fmt" - _ "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 - -// Params defines the parameters for the module. -type Params struct { - // allowed_addresses defines the list of addresses authorized to use the - // module - AllowedAddresses []string `protobuf:"bytes,1,rep,name=allowed_addresses,json=allowedAddresses,proto3" json:"allowed_addresses,omitempty" yaml:"allowed_addresses"` -} - -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_c251c710bb35ef69, []int{0} -} -func (m *Params) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Params.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *Params) XXX_Merge(src proto.Message) { - xxx_messageInfo_Params.Merge(m, src) -} -func (m *Params) XXX_Size() int { - return m.Size() -} -func (m *Params) XXX_DiscardUnknown() { - xxx_messageInfo_Params.DiscardUnknown(m) -} - -var xxx_messageInfo_Params proto.InternalMessageInfo - -func (m *Params) GetAllowedAddresses() []string { - if m != nil { - return m.AllowedAddresses - } - return nil -} - -func init() { - proto.RegisterType((*Params)(nil), "rollapp.denommetadata.types.Params") -} - -func init() { proto.RegisterFile("denommetadata/params.proto", fileDescriptor_c251c710bb35ef69) } - -var fileDescriptor_c251c710bb35ef69 = []byte{ - // 210 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4a, 0x49, 0xcd, 0xcb, - 0xcf, 0xcd, 0x4d, 0x2d, 0x49, 0x4c, 0x49, 0x2c, 0x49, 0xd4, 0x2f, 0x48, 0x2c, 0x4a, 0xcc, 0x2d, - 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x2e, 0xca, 0xcf, 0xc9, 0x49, 0x2c, 0x28, 0xd0, - 0x43, 0x51, 0xa3, 0x57, 0x52, 0x59, 0x90, 0x5a, 0x2c, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, 0x56, - 0xa7, 0x0f, 0x62, 0x41, 0xb4, 0x28, 0x05, 0x73, 0xb1, 0x05, 0x80, 0x8d, 0x10, 0xf2, 0xe4, 0x12, - 0x4c, 0xcc, 0xc9, 0xc9, 0x2f, 0x4f, 0x4d, 0x89, 0x4f, 0x4c, 0x49, 0x29, 0x4a, 0x2d, 0x2e, 0x4e, - 0x2d, 0x96, 0x60, 0x54, 0x60, 0xd6, 0xe0, 0x74, 0x92, 0xf9, 0x74, 0x4f, 0x5e, 0xa2, 0x32, 0x31, - 0x37, 0xc7, 0x4a, 0x09, 0x43, 0x89, 0x52, 0x90, 0x00, 0x54, 0xcc, 0x11, 0x26, 0xe4, 0x14, 0x7a, - 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, - 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0xd6, 0xe9, 0x99, 0x25, 0x19, 0xa5, - 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0x29, 0x95, 0xb9, 0xa9, 0x79, 0xc5, 0x99, 0xf9, 0x79, 0x15, - 0x95, 0x55, 0x08, 0x8e, 0x6e, 0x51, 0x4a, 0xb6, 0x7e, 0x85, 0x3e, 0xaa, 0x2f, 0xc1, 0x3e, 0x48, - 0x62, 0x03, 0x3b, 0xd9, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x51, 0xf5, 0x4c, 0x14, 0x03, 0x01, - 0x00, 0x00, -} - -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 - if len(m.AllowedAddresses) > 0 { - for iNdEx := len(m.AllowedAddresses) - 1; iNdEx >= 0; iNdEx-- { - i -= len(m.AllowedAddresses[iNdEx]) - copy(dAtA[i:], m.AllowedAddresses[iNdEx]) - i = encodeVarintParams(dAtA, i, uint64(len(m.AllowedAddresses[iNdEx]))) - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func encodeVarintParams(dAtA []byte, offset int, v uint64) int { - offset -= sovParams(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *Params) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.AllowedAddresses) > 0 { - for _, s := range m.AllowedAddresses { - l = len(s) - n += 1 + l + sovParams(uint64(l)) - } - } - return n -} - -func sovParams(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozParams(x uint64) (n int) { - return sovParams(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *Params) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowParams - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Params: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field AllowedAddresses", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowParams - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthParams - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthParams - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.AllowedAddresses = append(m.AllowedAddresses, string(dAtA[iNdEx:postIndex])) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipParams(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthParams - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipParams(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, ErrIntOverflowParams - } - 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, ErrIntOverflowParams - } - 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, ErrIntOverflowParams - } - 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, ErrInvalidLengthParams - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupParams - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthParams - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthParams = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowParams = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupParams = fmt.Errorf("proto: unexpected end of group") -) diff --git a/x/denommetadata/types/query.pb.go b/x/denommetadata/types/query.pb.go index 77fd4b94..d3c40375 100644 --- a/x/denommetadata/types/query.pb.go +++ b/x/denommetadata/types/query.pb.go @@ -6,7 +6,6 @@ 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" @@ -29,89 +28,6 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -// QueryParamsRequest is 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_81a3ad864530e6e9, []int{0} -} -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 response type for the Query/Params RPC method. -type QueryParamsResponse struct { - // params holds all the parameters of this module. - 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_81a3ad864530e6e9, []int{1} -} -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{} -} - // QueryGetIBCDenomByDenomTraceRequest is the request type for the // Query/IBCDenomByDenomTrace RPC method. type QueryGetIBCDenomByDenomTraceRequest struct { @@ -123,7 +39,7 @@ func (m *QueryGetIBCDenomByDenomTraceRequest) Reset() { *m = QueryGetIBC func (m *QueryGetIBCDenomByDenomTraceRequest) String() string { return proto.CompactTextString(m) } func (*QueryGetIBCDenomByDenomTraceRequest) ProtoMessage() {} func (*QueryGetIBCDenomByDenomTraceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_81a3ad864530e6e9, []int{2} + return fileDescriptor_81a3ad864530e6e9, []int{0} } func (m *QueryGetIBCDenomByDenomTraceRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -170,7 +86,7 @@ func (m *QueryIBCDenomByDenomTraceResponse) Reset() { *m = QueryIBCDenom func (m *QueryIBCDenomByDenomTraceResponse) String() string { return proto.CompactTextString(m) } func (*QueryIBCDenomByDenomTraceResponse) ProtoMessage() {} func (*QueryIBCDenomByDenomTraceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_81a3ad864530e6e9, []int{3} + return fileDescriptor_81a3ad864530e6e9, []int{1} } func (m *QueryIBCDenomByDenomTraceResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -207,8 +123,6 @@ func (m *QueryIBCDenomByDenomTraceResponse) GetIbcDenom() string { } func init() { - proto.RegisterType((*QueryParamsRequest)(nil), "rollapp.denommetadata.types.QueryParamsRequest") - proto.RegisterType((*QueryParamsResponse)(nil), "rollapp.denommetadata.types.QueryParamsResponse") proto.RegisterType((*QueryGetIBCDenomByDenomTraceRequest)(nil), "rollapp.denommetadata.types.QueryGetIBCDenomByDenomTraceRequest") proto.RegisterType((*QueryIBCDenomByDenomTraceResponse)(nil), "rollapp.denommetadata.types.QueryIBCDenomByDenomTraceResponse") } @@ -216,32 +130,26 @@ func init() { func init() { proto.RegisterFile("denommetadata/query.proto", fileDescriptor_81a3ad864530e6e9) } var fileDescriptor_81a3ad864530e6e9 = []byte{ - // 397 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x3f, 0x4b, 0xc3, 0x40, - 0x14, 0x4f, 0xfc, 0x53, 0xec, 0x75, 0x3b, 0x3b, 0x68, 0x2a, 0xa9, 0xa6, 0x8b, 0x8b, 0xb9, 0x52, - 0x17, 0x41, 0x90, 0x36, 0x15, 0xa5, 0x9b, 0x16, 0x05, 0x71, 0x29, 0x97, 0xe4, 0x88, 0xc1, 0x26, - 0x97, 0x26, 0x57, 0x68, 0x14, 0x17, 0x3f, 0x81, 0x20, 0x7e, 0x04, 0xbf, 0x4b, 0xc7, 0x82, 0x8b, - 0x93, 0x48, 0xe3, 0x07, 0x91, 0x5c, 0x42, 0xb5, 0x5a, 0xd2, 0x4e, 0x49, 0xde, 0x7b, 0xbf, 0x7f, - 0xef, 0x05, 0x6c, 0x9a, 0xc4, 0xa5, 0x8e, 0x43, 0x18, 0x36, 0x31, 0xc3, 0xa8, 0xd7, 0x27, 0x7e, - 0xa8, 0x7a, 0x3e, 0x65, 0x14, 0x96, 0x7c, 0xda, 0xed, 0x62, 0xcf, 0x53, 0xa7, 0x46, 0x54, 0x16, - 0x7a, 0x24, 0x90, 0x8a, 0x16, 0xb5, 0x28, 0x9f, 0x43, 0xf1, 0x5b, 0x02, 0x91, 0xb6, 0x2c, 0x4a, - 0xad, 0x2e, 0x41, 0xd8, 0xb3, 0x11, 0x76, 0x5d, 0xca, 0x30, 0xb3, 0xa9, 0x1b, 0xa4, 0x5d, 0x69, - 0x5a, 0xcb, 0xc3, 0x3e, 0x76, 0xd2, 0x9e, 0x52, 0x04, 0xf0, 0x3c, 0xd6, 0x3e, 0xe3, 0xc5, 0x36, - 0xe9, 0xf5, 0x49, 0xc0, 0x94, 0x2b, 0xb0, 0x3e, 0x55, 0x0d, 0x3c, 0xea, 0x06, 0x04, 0x36, 0x40, - 0x2e, 0x01, 0x6f, 0x88, 0xdb, 0xe2, 0x6e, 0xa1, 0x56, 0x51, 0x33, 0xac, 0xaa, 0x09, 0x58, 0x5b, - 0x19, 0x7e, 0x94, 0x85, 0x76, 0x0a, 0x54, 0x4e, 0x40, 0x85, 0x33, 0x9f, 0x12, 0xd6, 0xd2, 0x9a, - 0xc7, 0x31, 0x4c, 0x0b, 0xf9, 0xe3, 0xc2, 0xc7, 0x06, 0x49, 0x0d, 0xc0, 0x32, 0x28, 0x70, 0xca, - 0x0e, 0x8b, 0xab, 0x5c, 0x2e, 0xdf, 0x06, 0xe6, 0x64, 0x4e, 0xa9, 0x83, 0x1d, 0xce, 0x33, 0x9b, - 0x24, 0xf5, 0x5b, 0x02, 0x79, 0x5b, 0x37, 0x3a, 0x1c, 0x96, 0x72, 0xac, 0xd9, 0xba, 0xc1, 0x27, - 0x6b, 0x2f, 0xcb, 0x60, 0x95, 0x53, 0xc0, 0x57, 0x11, 0xe4, 0x12, 0xb3, 0x10, 0x65, 0x26, 0xfa, - 0xbf, 0x29, 0xa9, 0xba, 0x38, 0x20, 0x31, 0xa5, 0x1c, 0x3c, 0xbe, 0x7d, 0x3d, 0x2f, 0xd5, 0x60, - 0x15, 0x99, 0xa1, 0x43, 0xdc, 0xc0, 0xa6, 0xee, 0x20, 0xbc, 0xfb, 0xf9, 0xd8, 0xf3, 0xcd, 0x5b, - 0x34, 0xeb, 0x62, 0x30, 0x12, 0x41, 0x71, 0x56, 0x5e, 0x58, 0x9f, 0x6f, 0x22, 0x7b, 0xdf, 0xd2, - 0xd1, 0x7c, 0x86, 0xac, 0x4d, 0x2b, 0x2d, 0x1e, 0xaa, 0x09, 0x1b, 0x8b, 0x87, 0x9a, 0x5c, 0x06, - 0xdd, 0xff, 0x3a, 0xf5, 0x83, 0x76, 0x39, 0x1c, 0xcb, 0xe2, 0x68, 0x2c, 0x8b, 0x9f, 0x63, 0x59, - 0x7c, 0x8a, 0x64, 0x61, 0x14, 0xc9, 0xc2, 0x7b, 0x24, 0x0b, 0xd7, 0x87, 0x96, 0xcd, 0x6e, 0xfa, - 0xba, 0x6a, 0x50, 0x27, 0x4b, 0x66, 0xf0, 0x47, 0x88, 0x67, 0xd0, 0x73, 0xfc, 0x7f, 0xdf, 0xff, - 0x0e, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x22, 0x9e, 0x64, 0x79, 0x03, 0x00, 0x00, + // 304 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4c, 0x49, 0xcd, 0xcb, + 0xcf, 0xcd, 0x4d, 0x2d, 0x49, 0x4c, 0x49, 0x2c, 0x49, 0xd4, 0x2f, 0x2c, 0x4d, 0x2d, 0xaa, 0xd4, + 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x2e, 0xca, 0xcf, 0xc9, 0x49, 0x2c, 0x28, 0xd0, 0x43, + 0x51, 0xa2, 0x57, 0x52, 0x59, 0x90, 0x5a, 0x2c, 0x25, 0x93, 0x9e, 0x9f, 0x9f, 0x9e, 0x93, 0xaa, + 0x9f, 0x58, 0x90, 0xa9, 0x9f, 0x98, 0x97, 0x97, 0x5f, 0x92, 0x58, 0x92, 0x99, 0x9f, 0x57, 0x0c, + 0xd1, 0xaa, 0xe4, 0xc6, 0xa5, 0x1c, 0x08, 0x32, 0xc9, 0x3d, 0xb5, 0xc4, 0xd3, 0xc9, 0xd9, 0x05, + 0xa4, 0xdf, 0xa9, 0x12, 0x4c, 0x85, 0x14, 0x25, 0x26, 0xa7, 0x06, 0xa5, 0x16, 0x96, 0xa6, 0x16, + 0x97, 0x08, 0xc9, 0x73, 0x71, 0x83, 0xcd, 0x8e, 0x2f, 0x01, 0x89, 0x4a, 0x30, 0x2a, 0x30, 0x6a, + 0x70, 0x06, 0x71, 0xa5, 0xc0, 0xd5, 0x29, 0x39, 0x70, 0x29, 0x82, 0xcd, 0xc1, 0x6e, 0x48, 0x71, + 0x41, 0x7e, 0x5e, 0x71, 0xaa, 0x90, 0x34, 0x17, 0x67, 0x66, 0x52, 0x72, 0x3c, 0x58, 0x1b, 0xd4, + 0x0c, 0x8e, 0xcc, 0xa4, 0x64, 0xb0, 0x4a, 0xa3, 0xb7, 0x8c, 0x5c, 0xac, 0x60, 0x23, 0x84, 0x1e, + 0x33, 0x72, 0x89, 0x60, 0x33, 0x47, 0xc8, 0x41, 0x0f, 0x8f, 0x47, 0xf5, 0x88, 0xf0, 0x87, 0x94, + 0x1d, 0x61, 0x13, 0xf0, 0xf9, 0x40, 0xc9, 0xb3, 0xe9, 0xf2, 0x93, 0xc9, 0x4c, 0xce, 0x42, 0x8e, + 0xfa, 0x29, 0x95, 0xb9, 0xa9, 0x79, 0xc5, 0x99, 0xf9, 0x79, 0x15, 0x95, 0x55, 0x08, 0x8e, 0x6e, + 0x51, 0x4a, 0xb6, 0x3e, 0x6a, 0x44, 0xc1, 0x7d, 0xac, 0x5f, 0x8d, 0x14, 0x84, 0xb5, 0x4e, 0xa1, + 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, + 0x0c, 0x17, 0x1e, 0xcb, 0x31, 0xdc, 0x78, 0x2c, 0xc7, 0x10, 0x65, 0x9d, 0x9e, 0x59, 0x92, 0x51, + 0x9a, 0xa4, 0x97, 0x9c, 0x9f, 0x8b, 0xcf, 0x9a, 0x0a, 0x34, 0x8b, 0xc0, 0x7e, 0x48, 0x62, 0x03, + 0xc7, 0xab, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x5c, 0x95, 0xf5, 0x2f, 0x02, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -256,8 +164,6 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type QueryClient interface { - // Parameters retrieves the denom metadata module params - Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) // Queries an IBC denom base on denom trace IBCDenomByDenomTrace(ctx context.Context, in *QueryGetIBCDenomByDenomTraceRequest, opts ...grpc.CallOption) (*QueryIBCDenomByDenomTraceResponse, error) } @@ -270,15 +176,6 @@ func NewQueryClient(cc grpc1.ClientConn) QueryClient { return &queryClient{cc} } -func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { - out := new(QueryParamsResponse) - err := c.cc.Invoke(ctx, "/rollapp.denommetadata.types.Query/Params", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *queryClient) IBCDenomByDenomTrace(ctx context.Context, in *QueryGetIBCDenomByDenomTraceRequest, opts ...grpc.CallOption) (*QueryIBCDenomByDenomTraceResponse, error) { out := new(QueryIBCDenomByDenomTraceResponse) err := c.cc.Invoke(ctx, "/rollapp.denommetadata.types.Query/IBCDenomByDenomTrace", in, out, opts...) @@ -290,8 +187,6 @@ func (c *queryClient) IBCDenomByDenomTrace(ctx context.Context, in *QueryGetIBCD // QueryServer is the server API for Query service. type QueryServer interface { - // Parameters retrieves the denom metadata module params - Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) // Queries an IBC denom base on denom trace IBCDenomByDenomTrace(context.Context, *QueryGetIBCDenomByDenomTraceRequest) (*QueryIBCDenomByDenomTraceResponse, error) } @@ -300,9 +195,6 @@ type QueryServer interface { type UnimplementedQueryServer struct { } -func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") -} func (*UnimplementedQueryServer) IBCDenomByDenomTrace(ctx context.Context, req *QueryGetIBCDenomByDenomTraceRequest) (*QueryIBCDenomByDenomTraceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method IBCDenomByDenomTrace not implemented") } @@ -311,24 +203,6 @@ func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) } -func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryParamsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).Params(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/rollapp.denommetadata.types.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_IBCDenomByDenomTrace_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryGetIBCDenomByDenomTraceRequest) if err := dec(in); err != nil { @@ -351,10 +225,6 @@ var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "rollapp.denommetadata.types.Query", HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ - { - MethodName: "Params", - Handler: _Query_Params_Handler, - }, { MethodName: "IBCDenomByDenomTrace", Handler: _Query_IBCDenomByDenomTrace_Handler, @@ -364,62 +234,6 @@ var _Query_serviceDesc = grpc.ServiceDesc{ Metadata: "denommetadata/query.proto", } -func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - func (m *QueryGetIBCDenomByDenomTraceRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -491,26 +305,6 @@ func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *QueryParamsRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *QueryParamsResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Params.Size() - n += 1 + l + sovQuery(uint64(l)) - return n -} - func (m *QueryGetIBCDenomByDenomTraceRequest) Size() (n int) { if m == nil { return 0 @@ -543,139 +337,6 @@ func sovQuery(x uint64) (n int) { func sozQuery(x uint64) (n int) { return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *QueryGetIBCDenomByDenomTraceRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/denommetadata/types/query.pb.gw.go b/x/denommetadata/types/query.pb.gw.go index 016d386a..d91ac044 100644 --- a/x/denommetadata/types/query.pb.gw.go +++ b/x/denommetadata/types/query.pb.gw.go @@ -33,24 +33,6 @@ var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage var _ = metadata.Join -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 - -} - func request_Query_IBCDenomByDenomTrace_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryGetIBCDenomByDenomTraceRequest var metadata runtime.ServerMetadata @@ -111,29 +93,6 @@ func local_request_Query_IBCDenomByDenomTrace_0(ctx context.Context, marshaler r // 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_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_IBCDenomByDenomTrace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -198,26 +157,6 @@ func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc // "QueryClient" to call the correct interceptors. func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error { - 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_IBCDenomByDenomTrace_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -242,13 +181,9 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( - pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"dymensionxyz", "dymension-rdk", "denommetadata", "params"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_IBCDenomByDenomTrace_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"dymensionxyz", "dymension-rdk", "denommetadata", "ibc_denom", "denom_trace"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( - forward_Query_Params_0 = runtime.ForwardResponseMessage - forward_Query_IBCDenomByDenomTrace_0 = runtime.ForwardResponseMessage ) diff --git a/x/hub-genesis/client/cli/query.go b/x/hub-genesis/client/cli/query.go index b33b8d82..0140f826 100644 --- a/x/hub-genesis/client/cli/query.go +++ b/x/hub-genesis/client/cli/query.go @@ -22,42 +22,12 @@ func GetQueryCmd() *cobra.Command { } hubGenQueryCmd.AddCommand( - GetCmdQueryParams(), GetCmdQueryState(), ) return hubGenQueryCmd } -// GetCmdQueryParams implements a command to return the current hub-genesis -// parameters. -func GetCmdQueryParams() *cobra.Command { - cmd := &cobra.Command{ - Use: "params", - Short: "Query the current hub-genesis parameters", - Args: cobra.NoArgs, - RunE: func(cmd *cobra.Command, args []string) error { - clientCtx, err := client.GetClientQueryContext(cmd) - if err != nil { - return err - } - queryClient := types.NewQueryClient(clientCtx) - - params := &types.QueryParamsRequest{} - res, err := queryClient.Params(context.Background(), params) - if err != nil { - return err - } - - return clientCtx.PrintProto(&res.Params) - }, - } - - flags.AddQueryFlagsToCmd(cmd) - - return cmd -} - // GetCmdQueryState implements a command to return the current hub-genesis // state. func GetCmdQueryState() *cobra.Command { diff --git a/x/hub-genesis/keeper/genesis.go b/x/hub-genesis/keeper/genesis.go index de560863..d381783a 100644 --- a/x/hub-genesis/keeper/genesis.go +++ b/x/hub-genesis/keeper/genesis.go @@ -7,8 +7,6 @@ import ( // InitGenesis new hub-genesis genesis. func (k Keeper) InitGenesis(ctx sdk.Context, genState *types.GenesisState) { - k.SetParams(ctx, genState.Params) - modAddress := k.accountKeeper.GetModuleAddress(types.ModuleName) if !k.accountKeeper.HasAccount(ctx, modAddress) { k.accountKeeper.GetModuleAccount(ctx, types.ModuleName) @@ -29,7 +27,6 @@ func (k Keeper) InitGenesis(ctx sdk.Context, genState *types.GenesisState) { // ExportGenesis returns a GenesisState for a given context and keeper. func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { genesis := types.DefaultGenesisState() - genesis.Params = k.GetParams(ctx) genesis.State = k.GetState(ctx) return genesis diff --git a/x/hub-genesis/keeper/grpc_query.go b/x/hub-genesis/keeper/grpc_query.go index 0f1e37a4..0ab067e8 100644 --- a/x/hub-genesis/keeper/grpc_query.go +++ b/x/hub-genesis/keeper/grpc_query.go @@ -20,14 +20,6 @@ func NewQuerier(k Keeper) Querier { return Querier{Keeper: k} } -// Params returns params of the hub-genesis module. -func (q Querier) Params(c context.Context, _ *types.QueryParamsRequest) (*types.QueryParamsResponse, error) { - ctx := sdk.UnwrapSDKContext(c) - params := q.Keeper.GetParams(ctx) - - return &types.QueryParamsResponse{Params: params}, nil -} - func (q Querier) State(goCtx context.Context, request *types.QueryStateRequest) (*types.QueryStateResponse, error) { ctx := sdk.UnwrapSDKContext(goCtx) return &types.QueryStateResponse{State: q.Keeper.GetState(ctx)}, nil diff --git a/x/hub-genesis/keeper/keeper.go b/x/hub-genesis/keeper/keeper.go index ecdf2946..8e590a87 100644 --- a/x/hub-genesis/keeper/keeper.go +++ b/x/hub-genesis/keeper/keeper.go @@ -11,42 +11,35 @@ import ( "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" ) type ( Keeper struct { - cdc codec.BinaryCodec - storeKey storetypes.StoreKey - paramstore paramtypes.Subspace + cdc codec.BinaryCodec + storeKey storetypes.StoreKey - channelKeeper types.ChannelKeeper - bankKeeper types.BankKeeper - accountKeeper types.AccountKeeper + sequencerKeeper types.SequencerKeeper + channelKeeper types.ChannelKeeper + bankKeeper types.BankKeeper + accountKeeper types.AccountKeeper } ) func NewKeeper( cdc codec.BinaryCodec, storeKey storetypes.StoreKey, - ps paramtypes.Subspace, channelKeeper types.ChannelKeeper, + sequencerKeeper types.SequencerKeeper, bankKeeper types.BankKeeper, accountKeeper types.AccountKeeper, ) Keeper { - // set KeyTable if it has not already been set - if !ps.HasKeyTable() { - table := types.ParamKeyTable() - ps = ps.WithKeyTable(table) - } - return Keeper{ - cdc: cdc, - storeKey: storeKey, - paramstore: ps, - channelKeeper: channelKeeper, - bankKeeper: bankKeeper, - accountKeeper: accountKeeper, + cdc: cdc, + storeKey: storeKey, + sequencerKeeper: sequencerKeeper, + channelKeeper: channelKeeper, + bankKeeper: bankKeeper, + accountKeeper: accountKeeper, } } diff --git a/x/hub-genesis/keeper/msg_server.go b/x/hub-genesis/keeper/msg_server.go index 9c54fce4..3503ff29 100644 --- a/x/hub-genesis/keeper/msg_server.go +++ b/x/hub-genesis/keeper/msg_server.go @@ -27,7 +27,12 @@ func (m msgServer) TriggerGenesisEvent(goCtx context.Context, msg *types.MsgHubG ctx := sdk.UnwrapSDKContext(goCtx) // Get the sender and validate they are in the Allowlist - if !m.IsAddressInGenesisTriggererAllowList(ctx, msg.Address) { + accAddr, err := sdk.AccAddressFromBech32(msg.Address) + if err != nil { + return nil, err + } + + if !m.sequencerKeeper.HasPermission(ctx, accAddr, types.ModuleName) { return nil, sdkerrors.ErrUnauthorized } diff --git a/x/hub-genesis/keeper/msg_server_test.go b/x/hub-genesis/keeper/msg_server_test.go index cc7b4bd5..c02f29df 100644 --- a/x/hub-genesis/keeper/msg_server_test.go +++ b/x/hub-genesis/keeper/msg_server_test.go @@ -15,6 +15,7 @@ import ( "github.com/dymensionxyz/dymension-rdk/testutil/ibctest" "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/keeper" "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/types" + sequencerstypes "github.com/dymensionxyz/dymension-rdk/x/sequencers/types" ) const ( @@ -57,6 +58,7 @@ func (suite *HubGenesisMsgServerTestSuite) TestTriggerGenesisEvent() { cases := []struct { name string genesisState *types.GenesisState + permissionAddress sdk.AccAddress msg *types.MsgHubGenesisEvent rollappBalanceBefore sdk.Coin expErr error @@ -65,11 +67,9 @@ func (suite *HubGenesisMsgServerTestSuite) TestTriggerGenesisEvent() { { name: "successful hub genesis event", genesisState: &types.GenesisState{ - Params: types.Params{ - GenesisTriggererAllowlist: []types.GenesisTriggererParams{{Address: authorisedAddress.String()}}, - }, State: types.State{GenesisTokens: sdk.NewCoins(initialRollappBalance)}, }, + permissionAddress: authorisedAddress, msg: &types.MsgHubGenesisEvent{ Address: authorisedAddress.String(), ChannelId: path.EndpointA.ChannelID, @@ -80,11 +80,9 @@ func (suite *HubGenesisMsgServerTestSuite) TestTriggerGenesisEvent() { }, { name: "invalid rollapp genesis event - genesis event already triggered", genesisState: &types.GenesisState{ - Params: types.Params{ - GenesisTriggererAllowlist: []types.GenesisTriggererParams{{Address: authorisedAddress.String()}}, - }, State: types.State{IsLocked: true, GenesisTokens: sdk.NewCoins(initialRollappBalance)}, }, + permissionAddress: authorisedAddress, msg: &types.MsgHubGenesisEvent{ Address: authorisedAddress.String(), ChannelId: path.EndpointA.ChannelID, @@ -95,11 +93,9 @@ func (suite *HubGenesisMsgServerTestSuite) TestTriggerGenesisEvent() { }, { name: "invalid rollapp genesis event - address not in Allowlist", genesisState: &types.GenesisState{ - Params: types.Params{ - GenesisTriggererAllowlist: []types.GenesisTriggererParams{{Address: utils.AccAddress().String()}}, - }, State: types.State{GenesisTokens: sdk.NewCoins(initialRollappBalance)}, }, + permissionAddress: utils.AccAddress(), msg: &types.MsgHubGenesisEvent{ Address: authorisedAddress.String(), ChannelId: path.EndpointA.ChannelID, @@ -110,11 +106,9 @@ func (suite *HubGenesisMsgServerTestSuite) TestTriggerGenesisEvent() { }, { name: "invalid rollapp genesis event - invalid channel id", genesisState: &types.GenesisState{ - Params: types.Params{ - GenesisTriggererAllowlist: []types.GenesisTriggererParams{{Address: authorisedAddress.String()}}, - }, State: types.State{GenesisTokens: sdk.NewCoins(initialRollappBalance)}, }, + permissionAddress: authorisedAddress, msg: &types.MsgHubGenesisEvent{ Address: authorisedAddress.String(), ChannelId: "invalid-channel", @@ -125,11 +119,9 @@ func (suite *HubGenesisMsgServerTestSuite) TestTriggerGenesisEvent() { }, { name: "invalid rollapp genesis event - invalid chain id", genesisState: &types.GenesisState{ - Params: types.Params{ - GenesisTriggererAllowlist: []types.GenesisTriggererParams{{Address: authorisedAddress.String()}}, - }, State: types.State{GenesisTokens: sdk.NewCoins(initialRollappBalance)}, }, + permissionAddress: authorisedAddress, msg: &types.MsgHubGenesisEvent{ Address: authorisedAddress.String(), ChannelId: path.EndpointA.ChannelID, @@ -140,11 +132,9 @@ func (suite *HubGenesisMsgServerTestSuite) TestTriggerGenesisEvent() { }, { name: "invalid rollapp genesis event - module account has no coins", genesisState: &types.GenesisState{ - Params: types.Params{ - GenesisTriggererAllowlist: []types.GenesisTriggererParams{{Address: authorisedAddress.String()}}, - }, State: types.State{GenesisTokens: sdk.NewCoins(initialRollappBalance)}, }, + permissionAddress: authorisedAddress, msg: &types.MsgHubGenesisEvent{ Address: authorisedAddress.String(), ChannelId: path.EndpointA.ChannelID, @@ -175,8 +165,8 @@ func (suite *HubGenesisMsgServerTestSuite) TestTriggerGenesisEvent() { } suite.k.SetState(suite.ctx, tc.genesisState.State) - suite.k.SetParams(suite.ctx, tc.genesisState.Params) moduleAddr := suite.app.AccountKeeper.GetModuleAddress(types.ModuleName) + suite.app.SequencersKeeper.GrantPermissions(suite.ctx, tc.permissionAddress, sequencerstypes.NewPermissionsList([]string{types.ModuleName})) // check the initial module balance rollappBalanceBefore := suite.app.BankKeeper.GetBalance(suite.ctx, moduleAddr, rollappDenom) diff --git a/x/hub-genesis/keeper/params.go b/x/hub-genesis/keeper/params.go deleted file mode 100644 index 1e6f8f47..00000000 --- a/x/hub-genesis/keeper/params.go +++ /dev/null @@ -1,33 +0,0 @@ -package keeper - -import ( - sdk "github.com/cosmos/cosmos-sdk/types" - "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/types" -) - -// GetParams returns the total set of minting parameters. -func (k Keeper) GetParams(ctx sdk.Context) (params types.Params) { - k.paramstore.GetParamSet(ctx, ¶ms) - return params -} - -// SetParams sets the total set of minting parameters. -func (k Keeper) SetParams(ctx sdk.Context, params types.Params) { - k.paramstore.SetParamSet(ctx, ¶ms) -} - -// GenesisTriggererAllowlist returns the GenesisTriggererAllowlist param -func (k Keeper) GenesisTriggererAllowlist(ctx sdk.Context) (res []types.GenesisTriggererParams) { - k.paramstore.Get(ctx, types.KeyGenesisTriggererAllowlist, &res) - return -} - -func (k Keeper) IsAddressInGenesisTriggererAllowList(ctx sdk.Context, address string) bool { - Allowlist := k.GenesisTriggererAllowlist(ctx) - for _, item := range Allowlist { - if item.Address == address { - return true - } - } - return false -} diff --git a/x/hub-genesis/types/expected_keepers.go b/x/hub-genesis/types/expected_keepers.go index cc5bcb0a..931b2046 100644 --- a/x/hub-genesis/types/expected_keepers.go +++ b/x/hub-genesis/types/expected_keepers.go @@ -23,3 +23,8 @@ type BankKeeper interface { type ChannelKeeper interface { GetChannelClientState(ctx sdk.Context, portID, channelID string) (string, exported.ClientState, error) } + +// SequencerKeeper defines the expected interface needed to check for address permission. +type SequencerKeeper interface { + HasPermission(ctx sdk.Context, accAddr sdk.AccAddress, permission string) bool +} diff --git a/x/hub-genesis/types/genesis.go b/x/hub-genesis/types/genesis.go index 68a905ea..12de5f51 100644 --- a/x/hub-genesis/types/genesis.go +++ b/x/hub-genesis/types/genesis.go @@ -1,25 +1,20 @@ package types // NewGenesisState creates a new GenesisState object. -func NewGenesisState(params Params, state State) *GenesisState { +func NewGenesisState(state State) *GenesisState { return &GenesisState{ - Params: params, - State: state, + State: state, } } // DefaultGenesisState creates a default GenesisState object. func DefaultGenesisState() *GenesisState { - return NewGenesisState(DefaultParams(), State{}) + return NewGenesisState(State{}) } // ValidateGenesis validates the provided genesis state to ensure the // expected invariants holds. func ValidateGenesis(data GenesisState) error { - if err := data.Params.Validate(); err != nil { - return err - } - if err := data.State.Validate(); err != nil { return err } diff --git a/x/hub-genesis/types/genesis.pb.go b/x/hub-genesis/types/genesis.pb.go index 5cb6727f..83a6622c 100644 --- a/x/hub-genesis/types/genesis.pb.go +++ b/x/hub-genesis/types/genesis.pb.go @@ -25,9 +25,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the hub-genesis module's genesis state. type GenesisState struct { - // params defines all the parameters of the module. - Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` - State State `protobuf:"bytes,2,opt,name=state,proto3" json:"state"` + State State `protobuf:"bytes,1,opt,name=state,proto3" json:"state"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -63,13 +61,6 @@ func (m *GenesisState) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisState proto.InternalMessageInfo -func (m *GenesisState) GetParams() Params { - if m != nil { - return m.Params - } - return Params{} -} - func (m *GenesisState) GetState() State { if m != nil { return m.State @@ -84,22 +75,20 @@ func init() { func init() { proto.RegisterFile("hub-genesis/genesis.proto", fileDescriptor_6deac3d79fd587fe) } var fileDescriptor_6deac3d79fd587fe = []byte{ - // 231 bytes of a gzipped FileDescriptorProto + // 198 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xcc, 0x28, 0x4d, 0xd2, 0x4d, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x87, 0xd2, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0xc2, 0x45, 0xf9, 0x39, 0x39, 0x89, 0x05, 0x05, 0x7a, 0x19, 0xa5, 0x49, 0xf1, 0x50, 0x29, - 0x29, 0x91, 0xf4, 0xfc, 0xf4, 0x7c, 0xb0, 0xbc, 0x3e, 0x88, 0x05, 0x51, 0x2a, 0x25, 0x81, 0x6c, - 0x4a, 0x41, 0x62, 0x51, 0x62, 0x2e, 0xd4, 0x10, 0x29, 0x71, 0x64, 0x99, 0xe2, 0x92, 0xc4, 0x92, - 0x54, 0x88, 0x84, 0x52, 0x23, 0x23, 0x17, 0x8f, 0x3b, 0x44, 0x3c, 0x18, 0x24, 0x2c, 0x64, 0xc9, - 0xc5, 0x06, 0xd1, 0x29, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6d, 0x24, 0xad, 0x87, 0xc5, 0x7e, 0xbd, - 0x00, 0xb0, 0x12, 0x27, 0x96, 0x13, 0xf7, 0xe4, 0x19, 0x82, 0xa0, 0x1a, 0x84, 0xcc, 0xb8, 0x58, - 0xc1, 0x46, 0x4b, 0x30, 0x81, 0x75, 0x4a, 0x61, 0xd5, 0x09, 0xb6, 0x05, 0xaa, 0x11, 0xa2, 0xdc, - 0x29, 0xf8, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x9c, 0xf0, - 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39, 0x86, 0x1b, 0x8f, 0xe5, 0x18, 0xa2, 0x2c, 0xd3, 0x33, 0x4b, - 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x53, 0x2a, 0x73, 0x53, 0xf3, 0x8a, 0x33, 0xf3, - 0xf3, 0x2a, 0x2a, 0xab, 0x10, 0x1c, 0xdd, 0xa2, 0x94, 0x6c, 0xfd, 0x0a, 0x7d, 0x64, 0xef, 0x95, - 0x54, 0x16, 0xa4, 0x16, 0x27, 0xb1, 0x81, 0xfd, 0x67, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0xd3, - 0x81, 0x05, 0x3c, 0x5a, 0x01, 0x00, 0x00, + 0x29, 0x91, 0xf4, 0xfc, 0xf4, 0x7c, 0xb0, 0xbc, 0x3e, 0x88, 0x05, 0x51, 0x2a, 0x25, 0x8e, 0x6c, + 0x4a, 0x71, 0x49, 0x62, 0x49, 0x2a, 0x44, 0x42, 0xc9, 0x8d, 0x8b, 0xc7, 0x1d, 0x22, 0x1c, 0x0c, + 0x12, 0x15, 0x32, 0xe3, 0x62, 0x05, 0x4b, 0x4b, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x49, 0xe9, + 0x61, 0xb1, 0x43, 0x0f, 0xac, 0xd4, 0x89, 0xe5, 0xc4, 0x3d, 0x79, 0x86, 0x20, 0x88, 0x72, 0xa7, + 0xe0, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71, 0xc2, 0x63, + 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x88, 0xb2, 0x4c, 0xcf, 0x2c, 0xc9, + 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xa9, 0xcc, 0x4d, 0xcd, 0x2b, 0xce, 0xcc, 0xcf, + 0xab, 0xa8, 0xac, 0x42, 0x70, 0x74, 0x8b, 0x52, 0xb2, 0xf5, 0x2b, 0xf4, 0x91, 0x9d, 0x58, 0x52, + 0x59, 0x90, 0x5a, 0x9c, 0xc4, 0x06, 0x76, 0xa3, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x44, + 0x3e, 0x32, 0x04, 0x01, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -131,16 +120,6 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { 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 } @@ -162,8 +141,6 @@ func (m *GenesisState) Size() (n int) { } var l int _ = l - l = m.Params.Size() - n += 1 + l + sovGenesis(uint64(l)) l = m.State.Size() n += 1 + l + sovGenesis(uint64(l)) return n @@ -205,39 +182,6 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } 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 State", wireType) } diff --git a/x/hub-genesis/types/params.go b/x/hub-genesis/types/params.go deleted file mode 100644 index 50064780..00000000 --- a/x/hub-genesis/types/params.go +++ /dev/null @@ -1,73 +0,0 @@ -package types - -import ( - "fmt" - - sdk "github.com/cosmos/cosmos-sdk/types" - paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" - "gopkg.in/yaml.v2" -) - -var _ paramtypes.ParamSet = (*Params)(nil) - -// GenesisTriggererAllowlist is store's key for GenesisTriggererAllowlist Params -var KeyGenesisTriggererAllowlist = []byte("GenesisTriggererAllowlist") - -// ParamTable for hub_genesis module. -func ParamKeyTable() paramtypes.KeyTable { - return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) -} - -func NewParams(genesisTriggererAllowlist []GenesisTriggererParams) Params { - return Params{ - GenesisTriggererAllowlist: genesisTriggererAllowlist, - } -} - -func DefaultParams() Params { - return NewParams([]GenesisTriggererParams{}) -} - -// String implements the Stringer interface. -func (p Params) String() string { - out, _ := yaml.Marshal(p) - return string(out) -} - -// Implements params.ParamSet. -func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{ - paramtypes.NewParamSetPair(KeyGenesisTriggererAllowlist, &p.GenesisTriggererAllowlist, validateGenesisTriggererAllowlist), - } -} - -// Validate checks that the parameters have valid values. -func (p Params) Validate() error { - return validateGenesisTriggererAllowlist(p.GenesisTriggererAllowlist) -} - -// validateGenesisTriggererAllowlist validates the GenesisTriggererAllowlist param -func validateGenesisTriggererAllowlist(v interface{}) error { - genesisTriggererAllowlist, ok := v.([]GenesisTriggererParams) - if !ok { - return fmt.Errorf("invalid parameter type: %T", v) - } - - // Check for duplicated index in genesis triggerer address - rollappGenesisTriggererIndexMap := make(map[string]struct{}) - - for i, item := range genesisTriggererAllowlist { - // check Bech32 format - if _, err := sdk.AccAddressFromBech32(item.Address); err != nil { - return fmt.Errorf("genesisTriggererAllowlist[%d] format error: %s", i, err.Error()) - } - - // check duplicate - if _, ok := rollappGenesisTriggererIndexMap[item.Address]; ok { - return fmt.Errorf("duplicated genesis trigerrer address in genesisTriggererAllowlist") - } - rollappGenesisTriggererIndexMap[item.Address] = struct{}{} - } - - return nil -} diff --git a/x/hub-genesis/types/params.pb.go b/x/hub-genesis/types/params.pb.go deleted file mode 100644 index ce48175b..00000000 --- a/x/hub-genesis/types/params.pb.go +++ /dev/null @@ -1,509 +0,0 @@ -// Code generated by protoc-gen-gogo. DO NOT EDIT. -// source: hub-genesis/params.proto - -package types - -import ( - fmt "fmt" - _ "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 - -// Params holds parameters for the hub-genesis module. -type Params struct { - // genesis_triggerer_allowlist is a list of the - // accounts that are allowed to trigger a genesis event on the rollapp. - // In the case of an empty list, there are no restrictions - GenesisTriggererAllowlist []GenesisTriggererParams `protobuf:"bytes,1,rep,name=genesis_triggerer_allowlist,json=genesisTriggererAllowlist,proto3" json:"genesis_triggerer_allowlist" yaml:"genesis_triggerer_allowlist"` -} - -func (m *Params) Reset() { *m = Params{} } -func (*Params) ProtoMessage() {} -func (*Params) Descriptor() ([]byte, []int) { - return fileDescriptor_a8d0b00d1bcc9c95, []int{0} -} -func (m *Params) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *Params) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_Params.Marshal(b, m, deterministic) - } else { - b = b[:cap(b)] - n, err := m.MarshalToSizedBuffer(b) - if err != nil { - return nil, err - } - return b[:n], nil - } -} -func (m *Params) XXX_Merge(src proto.Message) { - xxx_messageInfo_Params.Merge(m, src) -} -func (m *Params) XXX_Size() int { - return m.Size() -} -func (m *Params) XXX_DiscardUnknown() { - xxx_messageInfo_Params.DiscardUnknown(m) -} - -var xxx_messageInfo_Params proto.InternalMessageInfo - -func (m *Params) GetGenesisTriggererAllowlist() []GenesisTriggererParams { - if m != nil { - return m.GenesisTriggererAllowlist - } - return nil -} - -type GenesisTriggererParams struct { - // address is a bech32-encoded address of the - // accounts that are allowed to trigger a rollapp genesis event. - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty" yaml:"address"` -} - -func (m *GenesisTriggererParams) Reset() { *m = GenesisTriggererParams{} } -func (m *GenesisTriggererParams) String() string { return proto.CompactTextString(m) } -func (*GenesisTriggererParams) ProtoMessage() {} -func (*GenesisTriggererParams) Descriptor() ([]byte, []int) { - return fileDescriptor_a8d0b00d1bcc9c95, []int{1} -} -func (m *GenesisTriggererParams) XXX_Unmarshal(b []byte) error { - return m.Unmarshal(b) -} -func (m *GenesisTriggererParams) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - if deterministic { - return xxx_messageInfo_GenesisTriggererParams.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 *GenesisTriggererParams) XXX_Merge(src proto.Message) { - xxx_messageInfo_GenesisTriggererParams.Merge(m, src) -} -func (m *GenesisTriggererParams) XXX_Size() int { - return m.Size() -} -func (m *GenesisTriggererParams) XXX_DiscardUnknown() { - xxx_messageInfo_GenesisTriggererParams.DiscardUnknown(m) -} - -var xxx_messageInfo_GenesisTriggererParams proto.InternalMessageInfo - -func (m *GenesisTriggererParams) GetAddress() string { - if m != nil { - return m.Address - } - return "" -} - -func init() { - proto.RegisterType((*Params)(nil), "rollapp.hub_genesis.Params") - proto.RegisterType((*GenesisTriggererParams)(nil), "rollapp.hub_genesis.GenesisTriggererParams") -} - -func init() { proto.RegisterFile("hub-genesis/params.proto", fileDescriptor_a8d0b00d1bcc9c95) } - -var fileDescriptor_a8d0b00d1bcc9c95 = []byte{ - // 280 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0xc8, 0x28, 0x4d, 0xd2, - 0x4d, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2f, 0x48, 0x2c, 0x4a, 0xcc, 0x2d, 0xd6, 0x2b, - 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x2e, 0xca, 0xcf, 0xc9, 0x49, 0x2c, 0x28, 0xd0, 0xcb, 0x28, - 0x4d, 0x8a, 0x87, 0xaa, 0x90, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0xcb, 0xeb, 0x83, 0x58, 0x10, - 0xa5, 0x4a, 0x2b, 0x18, 0xb9, 0xd8, 0x02, 0xc0, 0x7a, 0x85, 0xa6, 0x33, 0x72, 0x49, 0x43, 0x15, - 0xc7, 0x97, 0x14, 0x65, 0xa6, 0xa7, 0xa7, 0x16, 0xa5, 0x16, 0xc5, 0x27, 0xe6, 0xe4, 0xe4, 0x97, - 0xe7, 0x64, 0x16, 0x97, 0x48, 0x30, 0x2a, 0x30, 0x6b, 0x70, 0x1b, 0x69, 0xeb, 0x61, 0x31, 0x5c, - 0xcf, 0x1d, 0x42, 0x87, 0xc0, 0xb4, 0x41, 0x8c, 0x74, 0xd2, 0x3a, 0x71, 0x4f, 0x9e, 0xe1, 0xd3, - 0x3d, 0x79, 0xa5, 0xca, 0xc4, 0xdc, 0x1c, 0x2b, 0x25, 0x3c, 0xa6, 0x2b, 0x05, 0x49, 0xa6, 0xa3, - 0x99, 0xe1, 0x08, 0x93, 0xb3, 0x62, 0x99, 0xb1, 0x40, 0x9e, 0x41, 0xc9, 0x8d, 0x4b, 0x0c, 0xbb, - 0x35, 0x42, 0x3a, 0x5c, 0xec, 0x89, 0x29, 0x29, 0x45, 0xa9, 0xc5, 0xc5, 0x12, 0x8c, 0x0a, 0x8c, - 0x1a, 0x9c, 0x4e, 0x42, 0x9f, 0xee, 0xc9, 0xf3, 0x41, 0xec, 0x84, 0x4a, 0x28, 0x05, 0xc1, 0x94, - 0x38, 0x05, 0x9f, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x13, - 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x94, 0x65, 0x7a, 0x66, - 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x7e, 0x4a, 0x65, 0x6e, 0x6a, 0x5e, 0x71, 0x66, - 0x7e, 0x5e, 0x45, 0x65, 0x15, 0x82, 0xa3, 0x5b, 0x94, 0x92, 0xad, 0x5f, 0xa1, 0x8f, 0x1c, 0xf2, - 0x25, 0x95, 0x05, 0xa9, 0xc5, 0x49, 0x6c, 0xe0, 0xe0, 0x34, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, - 0xaa, 0x00, 0x8d, 0x77, 0x95, 0x01, 0x00, 0x00, -} - -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 - if len(m.GenesisTriggererAllowlist) > 0 { - for iNdEx := len(m.GenesisTriggererAllowlist) - 1; iNdEx >= 0; iNdEx-- { - { - size, err := m.GenesisTriggererAllowlist[iNdEx].MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintParams(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - } - } - return len(dAtA) - i, nil -} - -func (m *GenesisTriggererParams) 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 *GenesisTriggererParams) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *GenesisTriggererParams) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - if len(m.Address) > 0 { - i -= len(m.Address) - copy(dAtA[i:], m.Address) - i = encodeVarintParams(dAtA, i, uint64(len(m.Address))) - i-- - dAtA[i] = 0xa - } - return len(dAtA) - i, nil -} - -func encodeVarintParams(dAtA []byte, offset int, v uint64) int { - offset -= sovParams(v) - base := offset - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return base -} -func (m *Params) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - if len(m.GenesisTriggererAllowlist) > 0 { - for _, e := range m.GenesisTriggererAllowlist { - l = e.Size() - n += 1 + l + sovParams(uint64(l)) - } - } - return n -} - -func (m *GenesisTriggererParams) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = len(m.Address) - if l > 0 { - n += 1 + l + sovParams(uint64(l)) - } - return n -} - -func sovParams(x uint64) (n int) { - return (math_bits.Len64(x|1) + 6) / 7 -} -func sozParams(x uint64) (n int) { - return sovParams(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (m *Params) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowParams - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Params: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field GenesisTriggererAllowlist", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowParams - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthParams - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthParams - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.GenesisTriggererAllowlist = append(m.GenesisTriggererAllowlist, GenesisTriggererParams{}) - if err := m.GenesisTriggererAllowlist[len(m.GenesisTriggererAllowlist)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipParams(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthParams - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *GenesisTriggererParams) 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 ErrIntOverflowParams - } - 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: GenesisTriggererParams: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: GenesisTriggererParams: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowParams - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthParams - } - postIndex := iNdEx + intStringLen - if postIndex < 0 { - return ErrInvalidLengthParams - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Address = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipParams(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthParams - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipParams(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, ErrIntOverflowParams - } - 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, ErrIntOverflowParams - } - 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, ErrIntOverflowParams - } - 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, ErrInvalidLengthParams - } - iNdEx += length - case 3: - depth++ - case 4: - if depth == 0 { - return 0, ErrUnexpectedEndOfGroupParams - } - depth-- - case 5: - iNdEx += 4 - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - if iNdEx < 0 { - return 0, ErrInvalidLengthParams - } - if depth == 0 { - return iNdEx, nil - } - } - return 0, io.ErrUnexpectedEOF -} - -var ( - ErrInvalidLengthParams = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowParams = fmt.Errorf("proto: integer overflow") - ErrUnexpectedEndOfGroupParams = fmt.Errorf("proto: unexpected end of group") -) diff --git a/x/hub-genesis/types/query.pb.go b/x/hub-genesis/types/query.pb.go index a1a82d10..f8733b8a 100644 --- a/x/hub-genesis/types/query.pb.go +++ b/x/hub-genesis/types/query.pb.go @@ -29,89 +29,6 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -// 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_361b89f8abfb35e2, []int{0} -} -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 defines the parameters of the module. - 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_361b89f8abfb35e2, []int{1} -} -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{} -} - // QueryStateRequest is the request type for the Query/State RPC method. type QueryStateRequest struct { } @@ -120,7 +37,7 @@ func (m *QueryStateRequest) Reset() { *m = QueryStateRequest{} } func (m *QueryStateRequest) String() string { return proto.CompactTextString(m) } func (*QueryStateRequest) ProtoMessage() {} func (*QueryStateRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_361b89f8abfb35e2, []int{2} + return fileDescriptor_361b89f8abfb35e2, []int{0} } func (m *QueryStateRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -159,7 +76,7 @@ func (m *QueryStateResponse) Reset() { *m = QueryStateResponse{} } func (m *QueryStateResponse) String() string { return proto.CompactTextString(m) } func (*QueryStateResponse) ProtoMessage() {} func (*QueryStateResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_361b89f8abfb35e2, []int{3} + return fileDescriptor_361b89f8abfb35e2, []int{1} } func (m *QueryStateResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -196,8 +113,6 @@ func (m *QueryStateResponse) GetState() State { } func init() { - proto.RegisterType((*QueryParamsRequest)(nil), "rollapp.hub_genesis.QueryParamsRequest") - proto.RegisterType((*QueryParamsResponse)(nil), "rollapp.hub_genesis.QueryParamsResponse") proto.RegisterType((*QueryStateRequest)(nil), "rollapp.hub_genesis.QueryStateRequest") proto.RegisterType((*QueryStateResponse)(nil), "rollapp.hub_genesis.QueryStateResponse") } @@ -205,30 +120,25 @@ func init() { func init() { proto.RegisterFile("hub-genesis/query.proto", fileDescriptor_361b89f8abfb35e2) } var fileDescriptor_361b89f8abfb35e2 = []byte{ - // 361 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xb1, 0x4e, 0x3a, 0x31, - 0x1c, 0xc7, 0xaf, 0xe4, 0x0f, 0x43, 0xff, 0x93, 0x85, 0x44, 0x72, 0x9a, 0xd3, 0xdc, 0x20, 0x2c, - 0x5c, 0x0d, 0x46, 0x12, 0x56, 0x66, 0x07, 0x84, 0xcd, 0xc5, 0xf4, 0xa4, 0x39, 0x2e, 0x42, 0x5b, - 0xae, 0xbd, 0x84, 0x73, 0xf4, 0x05, 0x34, 0xe1, 0x41, 0x7c, 0x0d, 0x46, 0x12, 0x17, 0x27, 0x63, - 0xc0, 0x07, 0x31, 0xb4, 0x25, 0x42, 0x40, 0x71, 0x83, 0xfe, 0xbe, 0xbf, 0xef, 0xe7, 0x73, 0xbd, - 0x83, 0x87, 0xfd, 0x34, 0xac, 0x45, 0x94, 0x51, 0x19, 0x4b, 0x3c, 0x4a, 0x69, 0x92, 0x05, 0x22, - 0xe1, 0x8a, 0xa3, 0x62, 0xc2, 0x07, 0x03, 0x22, 0x44, 0xd0, 0x4f, 0xc3, 0x5b, 0x1b, 0x70, 0x4b, - 0x11, 0x8f, 0xb8, 0x9e, 0xe3, 0xe5, 0x2f, 0x13, 0x75, 0x8f, 0x23, 0xce, 0xa3, 0x01, 0xc5, 0x44, - 0xc4, 0x98, 0x30, 0xc6, 0x15, 0x51, 0x31, 0x67, 0xd2, 0x4e, 0xcb, 0xeb, 0x04, 0x41, 0x12, 0x32, - 0x5c, 0x4d, 0x36, 0xd8, 0x52, 0x11, 0x45, 0xcd, 0xc0, 0x2f, 0x41, 0x74, 0xbd, 0x54, 0x69, 0xeb, - 0x74, 0x87, 0x8e, 0x52, 0x2a, 0x95, 0xdf, 0x86, 0xc5, 0x8d, 0x53, 0x29, 0x38, 0x93, 0x14, 0x35, - 0x61, 0xc1, 0xb4, 0x96, 0xc1, 0x29, 0xa8, 0xfe, 0xaf, 0x1f, 0x05, 0x3b, 0xcc, 0x03, 0xb3, 0xd4, - 0xfa, 0x37, 0x7d, 0x3f, 0x71, 0x3a, 0x76, 0xc1, 0x2f, 0xc2, 0x03, 0xdd, 0xd8, 0x5d, 0xb2, 0x57, - 0x98, 0x2b, 0x0b, 0xb7, 0x87, 0x96, 0xd2, 0x80, 0x79, 0x6d, 0x68, 0x21, 0xee, 0x4e, 0x88, 0x5e, - 0xb1, 0x0c, 0x13, 0xaf, 0xbf, 0xe4, 0x60, 0x5e, 0xd7, 0xa1, 0x09, 0x80, 0x05, 0x63, 0x81, 0x2a, - 0x3b, 0xb7, 0xb7, 0x1f, 0xd9, 0xad, 0xee, 0x0f, 0x1a, 0x3f, 0xbf, 0xf1, 0xf8, 0xfa, 0x39, 0xc9, - 0x9d, 0xa3, 0x00, 0xf7, 0xb2, 0x21, 0x65, 0x32, 0xe6, 0x6c, 0x9c, 0x3d, 0x7c, 0xff, 0xa9, 0x25, - 0xbd, 0x7b, 0xbc, 0xfd, 0x26, 0xd0, 0x13, 0x80, 0x79, 0xad, 0x8d, 0xce, 0x7e, 0x66, 0xad, 0xdf, - 0x8f, 0x5b, 0xd9, 0x9b, 0xb3, 0x4a, 0x97, 0x5a, 0x09, 0xa3, 0xda, 0x5f, 0x95, 0xf4, 0x8d, 0xb5, - 0xba, 0xd3, 0xb9, 0x07, 0x66, 0x73, 0x0f, 0x7c, 0xcc, 0x3d, 0xf0, 0xbc, 0xf0, 0x9c, 0xd9, 0xc2, - 0x73, 0xde, 0x16, 0x9e, 0x73, 0xd3, 0x8c, 0x62, 0xd5, 0x4f, 0xc3, 0xe0, 0x8e, 0x0f, 0x7f, 0xab, - 0x1c, 0x6f, 0x94, 0xaa, 0x4c, 0x50, 0x19, 0x16, 0xf4, 0x87, 0x75, 0xf1, 0x15, 0x00, 0x00, 0xff, - 0xff, 0x4a, 0x6a, 0xbc, 0x50, 0xef, 0x02, 0x00, 0x00, + // 287 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xcf, 0x28, 0x4d, 0xd2, + 0x4d, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2f, 0x2c, 0x4d, 0x2d, 0xaa, 0xd4, 0x2b, 0x28, + 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x2e, 0xca, 0xcf, 0xc9, 0x49, 0x2c, 0x28, 0xd0, 0xcb, 0x28, 0x4d, + 0x8a, 0x87, 0x2a, 0x90, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0xcb, 0xeb, 0x83, 0x58, 0x10, 0xa5, + 0x52, 0x32, 0xe9, 0xf9, 0xf9, 0xe9, 0x39, 0xa9, 0xfa, 0x89, 0x05, 0x99, 0xfa, 0x89, 0x79, 0x79, + 0xf9, 0x25, 0x89, 0x25, 0x99, 0xf9, 0x79, 0xc5, 0x50, 0x59, 0x14, 0x1b, 0x8a, 0x4b, 0x12, 0x4b, + 0x52, 0x21, 0x12, 0x4a, 0xc2, 0x5c, 0x82, 0x81, 0x20, 0x0b, 0x83, 0x41, 0x62, 0x41, 0xa9, 0x85, + 0xa5, 0xa9, 0xc5, 0x25, 0x4a, 0x3e, 0x5c, 0x42, 0xc8, 0x82, 0xc5, 0x05, 0xf9, 0x79, 0xc5, 0xa9, + 0x42, 0x66, 0x5c, 0xac, 0x60, 0x9d, 0x12, 0x8c, 0x0a, 0x8c, 0x1a, 0xdc, 0x46, 0x52, 0x7a, 0x58, + 0x1c, 0xa7, 0x07, 0xd6, 0xe2, 0xc4, 0x72, 0xe2, 0x9e, 0x3c, 0x43, 0x10, 0x44, 0xb9, 0xd1, 0x4c, + 0x46, 0x2e, 0x56, 0xb0, 0x71, 0x42, 0xfd, 0x8c, 0x5c, 0xac, 0x60, 0x05, 0x42, 0x6a, 0x58, 0x35, + 0x63, 0xb8, 0x44, 0x4a, 0x9d, 0xa0, 0x3a, 0x88, 0xe3, 0x94, 0x4c, 0x9b, 0x2e, 0x3f, 0x99, 0xcc, + 0xa4, 0x2f, 0xa4, 0xab, 0x9f, 0x52, 0x99, 0x9b, 0x9a, 0x57, 0x9c, 0x99, 0x9f, 0x57, 0x51, 0x59, + 0x85, 0xe0, 0xe8, 0x16, 0xa5, 0x64, 0xeb, 0x63, 0x04, 0x82, 0x53, 0xf0, 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, 0x59, 0xa6, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, + 0xe7, 0xe2, 0x33, 0xb2, 0x02, 0xc5, 0xd0, 0x92, 0xca, 0x82, 0xd4, 0xe2, 0x24, 0x36, 0x70, 0xd0, + 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x08, 0x19, 0x55, 0xd6, 0xd7, 0x01, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -243,8 +153,6 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type QueryClient interface { - // Params returns the total set of hub-genesis parameters. - Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) // State returns the state of the genesis event. State(ctx context.Context, in *QueryStateRequest, opts ...grpc.CallOption) (*QueryStateResponse, error) } @@ -257,15 +165,6 @@ func NewQueryClient(cc grpc1.ClientConn) QueryClient { return &queryClient{cc} } -func (c *queryClient) Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) { - out := new(QueryParamsResponse) - err := c.cc.Invoke(ctx, "/rollapp.hub_genesis.Query/Params", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *queryClient) State(ctx context.Context, in *QueryStateRequest, opts ...grpc.CallOption) (*QueryStateResponse, error) { out := new(QueryStateResponse) err := c.cc.Invoke(ctx, "/rollapp.hub_genesis.Query/State", in, out, opts...) @@ -277,8 +176,6 @@ func (c *queryClient) State(ctx context.Context, in *QueryStateRequest, opts ... // QueryServer is the server API for Query service. type QueryServer interface { - // Params returns the total set of hub-genesis parameters. - Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) // State returns the state of the genesis event. State(context.Context, *QueryStateRequest) (*QueryStateResponse, error) } @@ -287,9 +184,6 @@ type QueryServer interface { type UnimplementedQueryServer struct { } -func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") -} func (*UnimplementedQueryServer) State(ctx context.Context, req *QueryStateRequest) (*QueryStateResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method State not implemented") } @@ -298,24 +192,6 @@ func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) } -func _Query_Params_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryParamsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(QueryServer).Params(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/rollapp.hub_genesis.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_State_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(QueryStateRequest) if err := dec(in); err != nil { @@ -338,10 +214,6 @@ var _Query_serviceDesc = grpc.ServiceDesc{ ServiceName: "rollapp.hub_genesis.Query", HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ - { - MethodName: "Params", - Handler: _Query_Params_Handler, - }, { MethodName: "State", Handler: _Query_State_Handler, @@ -351,62 +223,6 @@ var _Query_serviceDesc = grpc.ServiceDesc{ Metadata: "hub-genesis/query.proto", } -func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *QueryParamsRequest) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryParamsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - return len(dAtA) - i, nil -} - -func (m *QueryParamsResponse) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalToSizedBuffer(dAtA[:size]) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *QueryParamsResponse) MarshalTo(dAtA []byte) (int, error) { - size := m.Size() - return m.MarshalToSizedBuffer(dAtA[:size]) -} - -func (m *QueryParamsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { - i := len(dAtA) - _ = i - var l int - _ = l - { - size, err := m.Params.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintQuery(dAtA, i, uint64(size)) - } - i-- - dAtA[i] = 0xa - return len(dAtA) - i, nil -} - func (m *QueryStateRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -474,26 +290,6 @@ func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *QueryParamsRequest) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - return n -} - -func (m *QueryParamsResponse) Size() (n int) { - if m == nil { - return 0 - } - var l int - _ = l - l = m.Params.Size() - n += 1 + l + sovQuery(uint64(l)) - return n -} - func (m *QueryStateRequest) Size() (n int) { if m == nil { return 0 @@ -520,139 +316,6 @@ func sovQuery(x uint64) (n int) { func sozQuery(x uint64) (n int) { return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *QueryParamsRequest) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryParamsRequest: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsRequest: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *QueryParamsResponse) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= uint64(b&0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: QueryParamsResponse: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: QueryParamsResponse: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Params", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowQuery - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthQuery - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthQuery - } - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Params.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipQuery(dAtA[iNdEx:]) - if err != nil { - return err - } - if (skippy < 0) || (iNdEx+skippy) < 0 { - return ErrInvalidLengthQuery - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} func (m *QueryStateRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/hub-genesis/types/query.pb.gw.go b/x/hub-genesis/types/query.pb.gw.go index 16c5d1a9..609f1662 100644 --- a/x/hub-genesis/types/query.pb.gw.go +++ b/x/hub-genesis/types/query.pb.gw.go @@ -33,24 +33,6 @@ var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage var _ = metadata.Join -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 - -} - func request_Query_State_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq QueryStateRequest var metadata runtime.ServerMetadata @@ -75,29 +57,6 @@ func local_request_Query_State_0(ctx context.Context, marshaler runtime.Marshale // 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_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_State_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -162,26 +121,6 @@ func RegisterQueryHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc // "QueryClient" to call the correct interceptors. func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, client QueryClient) error { - 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_State_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -206,13 +145,9 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( - pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"dymensionxyz", "dymension-rdk", "hub-genesis", "params"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_State_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"dymensionxyz", "dymension-rdk", "hub-genesis", "state"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( - forward_Query_Params_0 = runtime.ForwardResponseMessage - forward_Query_State_0 = runtime.ForwardResponseMessage ) diff --git a/x/hub-genesis/types/state.pb.go b/x/hub-genesis/types/state.pb.go index 5df134aa..aa54cc6e 100644 --- a/x/hub-genesis/types/state.pb.go +++ b/x/hub-genesis/types/state.pb.go @@ -29,7 +29,8 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package type State struct { // is_locked is a boolean that indicates if the genesis event has occured IsLocked bool `protobuf:"varint,1,opt,name=is_locked,json=isLocked,proto3" json:"is_locked,omitempty"` - // genesis_tokens is the list of tokens that are expected to be locked on genesis event + // genesis_tokens is the list of tokens that are expected to be locked on + // genesis event GenesisTokens github_com_cosmos_cosmos_sdk_types.Coins `protobuf:"bytes,2,rep,name=genesis_tokens,json=genesisTokens,proto3,castrepeated=github.com/cosmos/cosmos-sdk/types.Coins" json:"genesis_tokens"` } diff --git a/x/sequencers/client/cli/query.go b/x/sequencers/client/cli/query.go index 72e73610..4d9a11bc 100644 --- a/x/sequencers/client/cli/query.go +++ b/x/sequencers/client/cli/query.go @@ -22,6 +22,7 @@ func GetQueryCmd() *cobra.Command { } cmd.AddCommand(CmdQueryParams()) + cmd.AddCommand(CmdQueryPermissions()) cmd.AddCommand(CmdQuerySequencers()) cmd.AddCommand(CmdQuerySequencer()) diff --git a/x/sequencers/client/cli/query_permissions.go b/x/sequencers/client/cli/query_permissions.go new file mode 100644 index 00000000..b1a763be --- /dev/null +++ b/x/sequencers/client/cli/query_permissions.go @@ -0,0 +1,43 @@ +package cli + +import ( + "context" + + "cosmossdk.io/errors" + "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/dymensionxyz/dymension-rdk/x/sequencers/types" + "github.com/spf13/cobra" +) + +func CmdQueryPermissions() *cobra.Command { + cmd := &cobra.Command{ + Use: "address-permissions [address]", + Short: "shows the address's permission", + Args: cobra.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + clientCtx := client.GetClientContextFromCmd(cmd) + + queryClient := types.NewQueryClient(clientCtx) + + address := args[0] + if _, err := sdk.AccAddressFromBech32(address); err != nil { + return errors.Wrapf(err, "address format error") + } + + res, err := queryClient.Permissions(context.Background(), &types.QueryPermissionsRequest{ + Address: address, + }) + if err != nil { + return err + } + + return clientCtx.PrintProto(res) + }, + } + + flags.AddQueryFlagsToCmd(cmd) + + return cmd +} diff --git a/x/sequencers/keeper/grpc_query.go b/x/sequencers/keeper/grpc_query.go index 8732259c..71243e5c 100644 --- a/x/sequencers/keeper/grpc_query.go +++ b/x/sequencers/keeper/grpc_query.go @@ -2,6 +2,7 @@ package keeper import ( "context" + "strings" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/dymensionxyz/dymension-rdk/x/sequencers/types" @@ -25,6 +26,24 @@ func (k Querier) Params(c context.Context, req *types.QueryParamsRequest) (*type return &types.QueryParamsResponse{Params: k.GetParams(ctx)}, nil } +// Permissions queries all the permissions for the given address. +func (k Querier) Permissions(c context.Context, req *types.QueryPermissionsRequest) (*types.QueryPermissionsResponse, error) { + if req == nil { + return nil, status.Error(codes.InvalidArgument, "invalid request") + } + ctx := sdk.UnwrapSDKContext(c) + + accAddress, err := sdk.AccAddressFromBech32(req.Address) + if err != nil { + return nil, status.Error(codes.InvalidArgument, err.Error()) + } + + permissionList := k.GetPermissionList(ctx, accAddress) + return &types.QueryPermissionsResponse{ + Permissions: strings.Join(permissionList.Permissions, "\n"), + }, nil +} + // Sequencers queries all sequencers that match the given status. func (k Querier) Sequencers(c context.Context, req *types.QuerySequencersRequest) (*types.QuerySequencersResponse, error) { if req == nil { diff --git a/x/sequencers/keeper/grpc_query_test.go b/x/sequencers/keeper/grpc_query_test.go index dbce577c..77180390 100644 --- a/x/sequencers/keeper/grpc_query_test.go +++ b/x/sequencers/keeper/grpc_query_test.go @@ -23,3 +23,26 @@ func TestParamsQuery(t *testing.T) { require.NoError(t, err) require.Equal(t, &types.QueryParamsResponse{Params: types.DefaultParams()}, response) } + +func TestPermissionsQuery(t *testing.T) { + app := utils.Setup(t, false) + k, ctx := testkeepers.NewTestSequencerKeeperFromApp(app) + q := keeper.Querier{Keeper: *k} + + wctx := sdk.WrapSDKContext(ctx) + + accAddr := utils.AccAddress() + + request := &types.QueryPermissionsRequest{ + Address: sdk.MustBech32ifyAddressBytes(sdk.Bech32PrefixAccAddr, accAddr), + } + + response, err := q.Permissions(wctx, request) + require.NoError(t, err) + require.Equal(t, &types.QueryPermissionsResponse{Permissions: ""}, response) + + k.GrantPermissions(ctx, accAddr, types.NewPermissionsList([]string{"test1", "test2"})) + response, err = q.Permissions(wctx, request) + require.NoError(t, err) + require.Equal(t, &types.QueryPermissionsResponse{Permissions: "test1\ntest2"}, response) +} diff --git a/x/sequencers/keeper/permission.go b/x/sequencers/keeper/permission.go new file mode 100644 index 00000000..fd2c7692 --- /dev/null +++ b/x/sequencers/keeper/permission.go @@ -0,0 +1,62 @@ +package keeper + +import ( + "slices" + + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/dymensionxyz/dymension-rdk/x/sequencers/types" +) + +func (k Keeper) GetPermissionList(ctx sdk.Context, accAddr sdk.AccAddress) types.PermissionList { + store := ctx.KVStore(k.storeKey) + keys := types.GetAddressPermissionsKey(accAddr) + bz := store.Get(keys) + if bz == nil { + return types.EmptyPermissionList() + } + + var perms types.PermissionList + k.cdc.MustUnmarshal(bz, &perms) + return perms +} + +func (k Keeper) HasPermission(ctx sdk.Context, accAddr sdk.AccAddress, permission string) bool { + permissions := k.GetPermissionList(ctx, accAddr).Permissions + + return slices.Contains(permissions, permission) +} + +func (k Keeper) GrantPermissions(ctx sdk.Context, accAddr sdk.AccAddress, grantPermList types.PermissionList) { + perms := k.GetPermissionList(ctx, accAddr).Permissions + + newPerms := append(perms, grantPermList.Permissions...) + slices.Sort(newPerms) + newPermissionList := types.NewPermissionsList(slices.Compact(newPerms)) + + bz := k.cdc.MustMarshal(&newPermissionList) + store := ctx.KVStore(k.storeKey) + store.Set(types.GetAddressPermissionsKey(accAddr), bz) +} + +func (k Keeper) RevokePermissions(ctx sdk.Context, accAddr sdk.AccAddress, revokePermList types.PermissionList) { + store := ctx.KVStore(k.storeKey) + permissionList := k.GetPermissionList(ctx, accAddr) + + newPerms := slices.DeleteFunc(permissionList.Permissions, func(perm string) bool { + return slices.Contains(revokePermList.Permissions, perm) + }) + if len(newPerms) == 0 { + store.Delete(types.GetAddressPermissionsKey(accAddr)) + return + } + + slices.Sort(newPerms) + newPermList := types.NewPermissionsList(newPerms) + bz := k.cdc.MustMarshal(&newPermList) + store.Set(types.GetAddressPermissionsKey(accAddr), bz) +} + +func (k Keeper) RevokeAllPermissions(ctx sdk.Context, accAddr sdk.AccAddress) { + store := ctx.KVStore(k.storeKey) + store.Delete(types.GetAddressPermissionsKey(accAddr)) +} diff --git a/x/sequencers/keeper/permission_test.go b/x/sequencers/keeper/permission_test.go new file mode 100644 index 00000000..f6a79ce4 --- /dev/null +++ b/x/sequencers/keeper/permission_test.go @@ -0,0 +1,54 @@ +package keeper_test + +import ( + "testing" + + testkeepers "github.com/dymensionxyz/dymension-rdk/testutil/keepers" + "github.com/dymensionxyz/dymension-rdk/testutil/utils" + "github.com/dymensionxyz/dymension-rdk/x/sequencers/types" + "github.com/stretchr/testify/assert" +) + +func TestGrantRevokePermissions(t *testing.T) { + app := utils.Setup(t, false) + k, ctx := testkeepers.NewTestSequencerKeeperFromApp(app) + + accAddr := utils.AccAddress() + accAddr2 := utils.AccAddress() + + // Grant the permissions and make sure that the store will save them ordered + k.GrantPermissions(ctx, accAddr, types.NewPermissionsList([]string{"test3", "test1", "test2", "abc"})) + + permissions := k.GetPermissionList(ctx, accAddr) + assert.Equal(t, permissions.Permissions, []string{"abc", "test1", "test2", "test3"}) + + // Grant existed permissions + k.GrantPermissions(ctx, accAddr, types.NewPermissionsList([]string{"test3", "test1", "test4"})) + permissions = k.GetPermissionList(ctx, accAddr) + assert.Equal(t, permissions.Permissions, []string{"abc", "test1", "test2", "test3", "test4"}) + + // Grant to different account address, make sure original permissions not changed + k.GrantPermissions(ctx, accAddr2, types.NewPermissionsList([]string{"diff-test"})) + permissions = k.GetPermissionList(ctx, accAddr) + assert.Equal(t, permissions.Permissions, []string{"abc", "test1", "test2", "test3", "test4"}) + + // Revoke permissions + k.RevokePermissions(ctx, accAddr, types.NewPermissionsList([]string{"test1", "test2"})) + permissions = k.GetPermissionList(ctx, accAddr) + assert.Equal(t, permissions.Permissions, []string{"abc", "test3", "test4"}) + + // Revoke non exist permissions and make sure it doesn't panic + k.RevokePermissions(ctx, accAddr, types.NewPermissionsList([]string{"diff-test"})) + permissions = k.GetPermissionList(ctx, accAddr) + assert.Equal(t, permissions.Permissions, []string{"abc", "test3", "test4"}) + + // Revoke all permissions and check if the store delete account address + k.RevokePermissions(ctx, accAddr2, types.NewPermissionsList([]string{"diff-test"})) + permissions = k.GetPermissionList(ctx, accAddr2) + assert.Equal(t, permissions, types.EmptyPermissionList()) + + // Revoke permissions from non-permissions account + k.RevokePermissions(ctx, accAddr2, types.NewPermissionsList([]string{"diff-test"})) + permissions = k.GetPermissionList(ctx, accAddr2) + assert.Equal(t, permissions, types.EmptyPermissionList()) +} \ No newline at end of file diff --git a/x/sequencers/proposal_handler.go b/x/sequencers/proposal_handler.go new file mode 100644 index 00000000..9ec0f919 --- /dev/null +++ b/x/sequencers/proposal_handler.go @@ -0,0 +1,57 @@ +package sequencers + +import ( + errorsmod "cosmossdk.io/errors" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" + "github.com/dymensionxyz/dymension-rdk/x/sequencers/keeper" + "github.com/dymensionxyz/dymension-rdk/x/sequencers/types" +) + +func NewUpdatePermissionProposalHandler(k *keeper.Keeper) govtypes.Handler { + return func(ctx sdk.Context, content govtypes.Content) error { + switch c := content.(type) { + case *types.GrantPermissionsProposal: + return HandleGrantPermissionsProposal(ctx, k, c) + case *types.RevokePermissionsProposal: + return HandleRevokePermissionsProposal(ctx, k, c) + default: + return errorsmod.Wrapf(sdkerrors.ErrUnknownRequest, "unrecognized permissions proposal content type: %T", c) + } + } +} + +// HandleGrantPermissionsProposal is a handler for executing a grant permissions proposal +func HandleGrantPermissionsProposal(ctx sdk.Context, k *keeper.Keeper, p *types.GrantPermissionsProposal) error { + if err := p.ValidateBasic(); err != nil { + return err + } + + for _, addrPerms := range p.AddressPermissions { + accAddr, err := sdk.AccAddressFromBech32(addrPerms.Address) + if err != nil { + return err + } + + k.GrantPermissions(ctx, accAddr, addrPerms.PermissionList) + } + return nil +} + +// HandleRevokePermissionsProposal is a handler for executing a revoke permissions proposal +func HandleRevokePermissionsProposal(ctx sdk.Context, k *keeper.Keeper, p *types.RevokePermissionsProposal) error { + if err := p.ValidateBasic(); err != nil { + return err + } + + for _, addrPerms := range p.AddressPermissions { + accAddr, err := sdk.AccAddressFromBech32(addrPerms.Address) + if err != nil { + return err + } + + k.RevokePermissions(ctx, accAddr, addrPerms.PermissionList) + } + return nil +} diff --git a/x/sequencers/types/genesis.go b/x/sequencers/types/genesis.go index 53afe4ba..a6446f26 100644 --- a/x/sequencers/types/genesis.go +++ b/x/sequencers/types/genesis.go @@ -9,10 +9,13 @@ import ( // DefaultIndex is the default capability global index const DefaultIndex uint64 = 1 +var DefaultAddressPermissions = []AddressPermissions{} // no one allowed + // DefaultGenesis returns the default Capability genesis state func DefaultGenesis() *GenesisState { return &GenesisState{ - Params: DefaultParams(), + Params: DefaultParams(), + AddressPermissions: DefaultAddressPermissions, } } @@ -22,6 +25,12 @@ func (gs GenesisState) ValidateGenesis() error { return err } + for _, accPerms := range gs.AddressPermissions { + if err := accPerms.Validate(); err != nil { + return err + } + } + _, err = sdk.ValAddressFromBech32(gs.GenesisOperatorAddress) if err != nil { return fmt.Errorf("genesis operator address is invalid: %w", err) diff --git a/x/sequencers/types/genesis.pb.go b/x/sequencers/types/genesis.pb.go index 61a057cc..123d666a 100644 --- a/x/sequencers/types/genesis.pb.go +++ b/x/sequencers/types/genesis.pb.go @@ -26,9 +26,12 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the test module's genesis state. type GenesisState struct { Params Params `protobuf:"bytes,1,opt,name=params,proto3" json:"params"` + // the address and its permissions to trigger some special actions + // on the rollapp + AddressPermissions []AddressPermissions `protobuf:"bytes,2,rep,name=address_permissions,json=addressPermissions,proto3" json:"address_permissions" yaml:"address_permissions"` // genesis_operator_address defines the genesis operator address of the // sequencer. - GenesisOperatorAddress string `protobuf:"bytes,2,opt,name=genesis_operator_address,json=genesisOperatorAddress,proto3" json:"genesis_operator_address,omitempty"` + GenesisOperatorAddress string `protobuf:"bytes,3,opt,name=genesis_operator_address,json=genesisOperatorAddress,proto3" json:"genesis_operator_address,omitempty"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -71,6 +74,13 @@ func (m *GenesisState) GetParams() Params { return Params{} } +func (m *GenesisState) GetAddressPermissions() []AddressPermissions { + if m != nil { + return m.AddressPermissions + } + return nil +} + func (m *GenesisState) GetGenesisOperatorAddress() string { if m != nil { return m.GenesisOperatorAddress @@ -85,23 +95,27 @@ func init() { func init() { proto.RegisterFile("sequencers/genesis.proto", fileDescriptor_56ef324f83e482d4) } var fileDescriptor_56ef324f83e482d4 = []byte{ - // 246 bytes of a gzipped FileDescriptorProto + // 309 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x28, 0x4e, 0x2d, 0x2c, 0x4d, 0xcd, 0x4b, 0x4e, 0x2d, 0x2a, 0xd6, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x28, 0xca, 0xcf, 0xc9, 0x49, 0x2c, 0x28, 0xd0, 0x43, 0xa8, 0xd0, 0x2b, 0xa9, 0x2c, 0x48, 0x2d, 0x96, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, 0x2b, 0xd2, 0x07, - 0xb1, 0x20, 0xea, 0xa5, 0xc4, 0x91, 0x4c, 0x2a, 0x48, 0x2c, 0x4a, 0xcc, 0x85, 0x1a, 0xa4, 0xd4, - 0xc1, 0xc8, 0xc5, 0xe3, 0x0e, 0x31, 0x3a, 0xb8, 0x24, 0xb1, 0x24, 0x55, 0xc8, 0x8e, 0x8b, 0x0d, - 0xa2, 0x40, 0x82, 0x51, 0x81, 0x51, 0x83, 0xdb, 0x48, 0x41, 0x0f, 0x97, 0x55, 0x7a, 0x01, 0x60, - 0x75, 0x4e, 0x2c, 0x27, 0xee, 0xc9, 0x33, 0x04, 0x41, 0x75, 0x09, 0x59, 0x70, 0x49, 0x40, 0x9d, - 0x1a, 0x9f, 0x5f, 0x90, 0x5a, 0x94, 0x58, 0x92, 0x5f, 0x14, 0x9f, 0x98, 0x92, 0x52, 0x94, 0x5a, - 0x5c, 0x2c, 0xc1, 0xa4, 0xc0, 0xa8, 0xc1, 0x19, 0x24, 0x06, 0x95, 0xf7, 0x87, 0x4a, 0x3b, 0x42, - 0x64, 0x9d, 0x82, 0x4e, 0x3c, 0x92, 0x63, 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, - 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0xca, 0x22, 0x3d, - 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, 0x3f, 0x57, 0x3f, 0xa5, 0x32, 0x37, 0x35, 0xaf, 0x38, - 0x33, 0x3f, 0xaf, 0xa2, 0xb2, 0x0a, 0xc1, 0xd1, 0x2d, 0x4a, 0xc9, 0xd6, 0xaf, 0xd0, 0x47, 0xf2, - 0x25, 0xd8, 0x89, 0x49, 0x6c, 0x60, 0x5f, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x41, 0xd4, - 0x1f, 0x75, 0x4a, 0x01, 0x00, 0x00, + 0xb1, 0x20, 0xea, 0xa5, 0xc4, 0x91, 0x4c, 0x2a, 0x48, 0x2c, 0x4a, 0xcc, 0x85, 0x1a, 0x24, 0x25, + 0x8d, 0x2c, 0x91, 0x5a, 0x94, 0x9b, 0x59, 0x5c, 0x9c, 0x99, 0x9f, 0x07, 0x91, 0x54, 0xea, 0x61, + 0xe2, 0xe2, 0x71, 0x87, 0xd8, 0x1b, 0x5c, 0x92, 0x58, 0x92, 0x2a, 0x64, 0xc7, 0xc5, 0x06, 0xd1, + 0x2d, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x6d, 0xa4, 0xa0, 0x87, 0xcb, 0x1d, 0x7a, 0x01, 0x60, 0x75, + 0x4e, 0x2c, 0x27, 0xee, 0xc9, 0x33, 0x04, 0x41, 0x75, 0x09, 0x35, 0x32, 0x72, 0x09, 0x27, 0xa6, + 0xa4, 0x14, 0xa5, 0x16, 0x17, 0xc7, 0x23, 0x6c, 0x2b, 0x96, 0x60, 0x52, 0x60, 0xd6, 0xe0, 0x36, + 0xd2, 0xc1, 0x6d, 0x9a, 0x23, 0x44, 0x53, 0x00, 0x42, 0x8f, 0x93, 0x12, 0xc8, 0xe4, 0x4f, 0xf7, + 0xe4, 0xa5, 0x2a, 0x13, 0x73, 0x73, 0xac, 0x94, 0xb0, 0x18, 0xab, 0x14, 0x24, 0x94, 0x88, 0xa1, + 0x4f, 0xc8, 0x82, 0x4b, 0x02, 0x1a, 0x96, 0xf1, 0xf9, 0x05, 0xa9, 0x45, 0x89, 0x25, 0xf9, 0x45, + 0xf1, 0x50, 0x65, 0x12, 0xcc, 0x0a, 0x8c, 0x1a, 0x9c, 0x41, 0x62, 0x50, 0x79, 0x7f, 0xa8, 0x34, + 0xd4, 0x72, 0xa7, 0xa0, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, + 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, 0x3c, 0x96, 0x63, 0x88, 0xb2, 0x48, + 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xa9, 0xcc, 0x4d, 0xcd, 0x03, + 0x59, 0x55, 0x51, 0x59, 0x85, 0xe0, 0xe8, 0x16, 0xa5, 0x64, 0xeb, 0x57, 0xe8, 0x23, 0x85, 0x36, + 0xd8, 0x63, 0x49, 0x6c, 0xe0, 0x90, 0x36, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xca, 0x51, 0xd2, + 0x61, 0xeb, 0x01, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -129,7 +143,21 @@ func (m *GenesisState) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.GenesisOperatorAddress) i = encodeVarintGenesis(dAtA, i, uint64(len(m.GenesisOperatorAddress))) i-- - dAtA[i] = 0x12 + dAtA[i] = 0x1a + } + if len(m.AddressPermissions) > 0 { + for iNdEx := len(m.AddressPermissions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AddressPermissions[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]) @@ -163,6 +191,12 @@ func (m *GenesisState) Size() (n int) { _ = l l = m.Params.Size() n += 1 + l + sovGenesis(uint64(l)) + if len(m.AddressPermissions) > 0 { + for _, e := range m.AddressPermissions { + l = e.Size() + n += 1 + l + sovGenesis(uint64(l)) + } + } l = len(m.GenesisOperatorAddress) if l > 0 { n += 1 + l + sovGenesis(uint64(l)) @@ -239,6 +273,40 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { } iNdEx = postIndex case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressPermissions", 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.AddressPermissions = append(m.AddressPermissions, AddressPermissions{}) + if err := m.AddressPermissions[len(m.AddressPermissions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field GenesisOperatorAddress", wireType) } diff --git a/x/sequencers/types/genesis_test.go b/x/sequencers/types/genesis_test.go index 987f88f6..2abe85a2 100644 --- a/x/sequencers/types/genesis_test.go +++ b/x/sequencers/types/genesis_test.go @@ -12,6 +12,7 @@ import ( func TestGenesisState_Validate(t *testing.T) { pk := ed25519.GenPrivKey().PubKey() + accAddr := sdk.AccAddress(pk.Address()) for _, tc := range []struct { desc string @@ -22,6 +23,7 @@ func TestGenesisState_Validate(t *testing.T) { desc: "valid", genState: types.GenesisState{ Params: types.DefaultParams(), + AddressPermissions: types.DefaultAddressPermissions, GenesisOperatorAddress: sdk.ValAddress(pk.Address()).String(), }, valid: true, @@ -35,7 +37,43 @@ func TestGenesisState_Validate(t *testing.T) { desc: "not a val address", genState: types.GenesisState{ Params: types.DefaultParams(), - GenesisOperatorAddress: sdk.AccAddress(pk.Address()).String(), + GenesisOperatorAddress: accAddr.String(), + }, + valid: false, + }, + { + desc: "empty operator address", + genState: types.GenesisState{ + Params: types.DefaultParams(), + GenesisOperatorAddress: "", + }, + valid: false, + }, + { + desc: "empty address in address permissions", + genState: types.GenesisState{ + Params: types.DefaultParams(), + AddressPermissions: []types.AddressPermissions{ + { + Address: "", + PermissionList: types.PermissionList{ + Permissions: []string{"test"}, + }, + }, + }, + }, + valid: false, + }, + { + desc: "invalid permission list", + genState: types.GenesisState{ + Params: types.DefaultParams(), + AddressPermissions: []types.AddressPermissions{ + { + Address: sdk.MustBech32ifyAddressBytes(sdk.Bech32PrefixAccAddr, accAddr), + PermissionList: types.EmptyPermissionList(), + }, + }, }, valid: false, }, diff --git a/x/sequencers/types/gov_permission.pb.go b/x/sequencers/types/gov_permission.pb.go new file mode 100644 index 00000000..2c6aa534 --- /dev/null +++ b/x/sequencers/types/gov_permission.pb.go @@ -0,0 +1,746 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: sequencers/gov_permission.proto + +package types + +import ( + fmt "fmt" + _ "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 + +type GrantPermissionsProposal struct { + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + AddressPermissions []AddressPermissions `protobuf:"bytes,3,rep,name=address_permissions,json=addressPermissions,proto3" json:"address_permissions"` +} + +func (m *GrantPermissionsProposal) Reset() { *m = GrantPermissionsProposal{} } +func (*GrantPermissionsProposal) ProtoMessage() {} +func (*GrantPermissionsProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_d40c11f5a74a5529, []int{0} +} +func (m *GrantPermissionsProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GrantPermissionsProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GrantPermissionsProposal.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 *GrantPermissionsProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_GrantPermissionsProposal.Merge(m, src) +} +func (m *GrantPermissionsProposal) XXX_Size() int { + return m.Size() +} +func (m *GrantPermissionsProposal) XXX_DiscardUnknown() { + xxx_messageInfo_GrantPermissionsProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_GrantPermissionsProposal proto.InternalMessageInfo + +type RevokePermissionsProposal struct { + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + AddressPermissions []AddressPermissions `protobuf:"bytes,3,rep,name=address_permissions,json=addressPermissions,proto3" json:"address_permissions"` +} + +func (m *RevokePermissionsProposal) Reset() { *m = RevokePermissionsProposal{} } +func (*RevokePermissionsProposal) ProtoMessage() {} +func (*RevokePermissionsProposal) Descriptor() ([]byte, []int) { + return fileDescriptor_d40c11f5a74a5529, []int{1} +} +func (m *RevokePermissionsProposal) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *RevokePermissionsProposal) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_RevokePermissionsProposal.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 *RevokePermissionsProposal) XXX_Merge(src proto.Message) { + xxx_messageInfo_RevokePermissionsProposal.Merge(m, src) +} +func (m *RevokePermissionsProposal) XXX_Size() int { + return m.Size() +} +func (m *RevokePermissionsProposal) XXX_DiscardUnknown() { + xxx_messageInfo_RevokePermissionsProposal.DiscardUnknown(m) +} + +var xxx_messageInfo_RevokePermissionsProposal proto.InternalMessageInfo + +func init() { + proto.RegisterType((*GrantPermissionsProposal)(nil), "rollapp.sequencers.types.GrantPermissionsProposal") + proto.RegisterType((*RevokePermissionsProposal)(nil), "rollapp.sequencers.types.RevokePermissionsProposal") +} + +func init() { proto.RegisterFile("sequencers/gov_permission.proto", fileDescriptor_d40c11f5a74a5529) } + +var fileDescriptor_d40c11f5a74a5529 = []byte{ + // 297 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2f, 0x4e, 0x2d, 0x2c, + 0x4d, 0xcd, 0x4b, 0x4e, 0x2d, 0x2a, 0xd6, 0x4f, 0xcf, 0x2f, 0x8b, 0x2f, 0x48, 0x2d, 0xca, 0xcd, + 0x2c, 0x2e, 0xce, 0xcc, 0xcf, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x28, 0xca, 0xcf, + 0xc9, 0x49, 0x2c, 0x28, 0xd0, 0x43, 0x28, 0xd4, 0x2b, 0xa9, 0x2c, 0x48, 0x2d, 0x96, 0x12, 0x49, + 0xcf, 0x4f, 0xcf, 0x07, 0x2b, 0xd2, 0x07, 0xb1, 0x20, 0xea, 0xa5, 0xa4, 0x91, 0x0c, 0x44, 0x37, + 0x4c, 0xe9, 0x28, 0x23, 0x97, 0x84, 0x7b, 0x51, 0x62, 0x5e, 0x49, 0x00, 0x5c, 0xa6, 0x38, 0xa0, + 0x28, 0xbf, 0x20, 0xbf, 0x38, 0x31, 0x47, 0x48, 0x84, 0x8b, 0xb5, 0x24, 0xb3, 0x24, 0x27, 0x55, + 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x08, 0xc2, 0x11, 0x52, 0xe0, 0xe2, 0x4e, 0x49, 0x2d, 0x4e, + 0x2e, 0xca, 0x2c, 0x28, 0xc9, 0xcc, 0xcf, 0x93, 0x60, 0x02, 0xcb, 0x21, 0x0b, 0x09, 0x25, 0x73, + 0x09, 0x27, 0xa6, 0xa4, 0x14, 0xa5, 0x16, 0x17, 0x23, 0xb9, 0xbe, 0x58, 0x82, 0x59, 0x81, 0x59, + 0x83, 0xdb, 0x48, 0x47, 0x0f, 0x97, 0xfb, 0xf5, 0x1c, 0x21, 0x9a, 0x90, 0x9c, 0xe2, 0xc4, 0x72, + 0xe2, 0x9e, 0x3c, 0x43, 0x90, 0x50, 0x22, 0x86, 0x8c, 0x15, 0x4f, 0xc7, 0x02, 0x79, 0x86, 0x19, + 0x0b, 0xe4, 0x19, 0x5e, 0x2c, 0x90, 0x67, 0x54, 0x3a, 0xc6, 0xc8, 0x25, 0x19, 0x94, 0x5a, 0x96, + 0x9f, 0x9d, 0x3a, 0xb4, 0x3d, 0xe2, 0x14, 0x74, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, + 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, + 0x0c, 0x51, 0x16, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0x29, 0x95, + 0xb9, 0xa9, 0x79, 0x20, 0xed, 0x15, 0x95, 0x55, 0x08, 0x8e, 0x6e, 0x51, 0x4a, 0xb6, 0x7e, 0x85, + 0x3e, 0x52, 0x7c, 0x83, 0x9d, 0x93, 0xc4, 0x06, 0x8e, 0x6b, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x87, 0x43, 0xb4, 0x54, 0x5b, 0x02, 0x00, 0x00, +} + +func (this *GrantPermissionsProposal) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*GrantPermissionsProposal) + if !ok { + that2, ok := that.(GrantPermissionsProposal) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Title != that1.Title { + return false + } + if this.Description != that1.Description { + return false + } + if len(this.AddressPermissions) != len(that1.AddressPermissions) { + return false + } + for i := range this.AddressPermissions { + if !this.AddressPermissions[i].Equal(&that1.AddressPermissions[i]) { + return false + } + } + return true +} +func (this *RevokePermissionsProposal) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*RevokePermissionsProposal) + if !ok { + that2, ok := that.(RevokePermissionsProposal) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Title != that1.Title { + return false + } + if this.Description != that1.Description { + return false + } + if len(this.AddressPermissions) != len(that1.AddressPermissions) { + return false + } + for i := range this.AddressPermissions { + if !this.AddressPermissions[i].Equal(&that1.AddressPermissions[i]) { + return false + } + } + return true +} +func (m *GrantPermissionsProposal) 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 *GrantPermissionsProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GrantPermissionsProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AddressPermissions) > 0 { + for iNdEx := len(m.AddressPermissions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AddressPermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovPermission(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintGovPermission(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintGovPermission(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *RevokePermissionsProposal) 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 *RevokePermissionsProposal) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *RevokePermissionsProposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.AddressPermissions) > 0 { + for iNdEx := len(m.AddressPermissions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AddressPermissions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGovPermission(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.Description) > 0 { + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintGovPermission(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0x12 + } + if len(m.Title) > 0 { + i -= len(m.Title) + copy(dAtA[i:], m.Title) + i = encodeVarintGovPermission(dAtA, i, uint64(len(m.Title))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintGovPermission(dAtA []byte, offset int, v uint64) int { + offset -= sovGovPermission(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *GrantPermissionsProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Title) + if l > 0 { + n += 1 + l + sovGovPermission(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovGovPermission(uint64(l)) + } + if len(m.AddressPermissions) > 0 { + for _, e := range m.AddressPermissions { + l = e.Size() + n += 1 + l + sovGovPermission(uint64(l)) + } + } + return n +} + +func (m *RevokePermissionsProposal) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Title) + if l > 0 { + n += 1 + l + sovGovPermission(uint64(l)) + } + l = len(m.Description) + if l > 0 { + n += 1 + l + sovGovPermission(uint64(l)) + } + if len(m.AddressPermissions) > 0 { + for _, e := range m.AddressPermissions { + l = e.Size() + n += 1 + l + sovGovPermission(uint64(l)) + } + } + return n +} + +func sovGovPermission(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGovPermission(x uint64) (n int) { + return sovGovPermission(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *GrantPermissionsProposal) 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 ErrIntOverflowGovPermission + } + 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: GrantPermissionsProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GrantPermissionsProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovPermission + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovPermission + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovPermission + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovPermission + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovPermission + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovPermission + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressPermissions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovPermission + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovPermission + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovPermission + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddressPermissions = append(m.AddressPermissions, AddressPermissions{}) + if err := m.AddressPermissions[len(m.AddressPermissions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovPermission(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovPermission + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RevokePermissionsProposal) 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 ErrIntOverflowGovPermission + } + 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: RevokePermissionsProposal: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RevokePermissionsProposal: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Title", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovPermission + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovPermission + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovPermission + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Title = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovPermission + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGovPermission + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGovPermission + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AddressPermissions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGovPermission + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGovPermission + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGovPermission + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AddressPermissions = append(m.AddressPermissions, AddressPermissions{}) + if err := m.AddressPermissions[len(m.AddressPermissions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGovPermission(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGovPermission + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGovPermission(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, ErrIntOverflowGovPermission + } + 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, ErrIntOverflowGovPermission + } + 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, ErrIntOverflowGovPermission + } + 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, ErrInvalidLengthGovPermission + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGovPermission + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGovPermission + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGovPermission = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGovPermission = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGovPermission = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/sequencers/types/keys.go b/x/sequencers/types/keys.go index 83db6d68..93e6f90c 100644 --- a/x/sequencers/types/keys.go +++ b/x/sequencers/types/keys.go @@ -29,7 +29,10 @@ var ( SequencersKey = []byte{0x21} // prefix for each key to a sequencer SequencersByConsAddrKey = []byte{0x22} // prefix for each key to a sequencer index, by pubkey + AddressPermissionsKey = []byte{0x30} // prefix for each key to a permission address + HistoricalInfoKey = []byte{0x50} // prefix for the historical info + ) // GetSequencerKey creates the key for the sequencer with address @@ -42,6 +45,11 @@ func GetSequencerByConsAddrKey(addr sdk.ConsAddress) []byte { return append(SequencersByConsAddrKey, address.MustLengthPrefix(addr)...) } +// GetAddressPermissionsKey creates the key for address's permissions +func GetAddressPermissionsKey(addr sdk.AccAddress) []byte { + return append(AddressPermissionsKey, address.MustLengthPrefix(addr)...) +} + // GetHistoricalInfoKey returns a key prefix for indexing HistoricalInfo objects. func GetHistoricalInfoKey(height int64) []byte { return append(HistoricalInfoKey, []byte(strconv.FormatInt(height, 10))...) diff --git a/x/sequencers/types/permission.go b/x/sequencers/types/permission.go new file mode 100644 index 00000000..97da525e --- /dev/null +++ b/x/sequencers/types/permission.go @@ -0,0 +1,56 @@ +package types + +import ( + "errors" + "fmt" + "slices" + "strings" + + sdk "github.com/cosmos/cosmos-sdk/types" +) + +func (ap *AddressPermissions) Validate() error { + if strings.TrimSpace(ap.Address) == "" { + return errors.New("address field cannot be blank") + } + if _, err := sdk.AccAddressFromBech32(ap.Address); err != nil { + return fmt.Errorf("address format error: %s", err.Error()) + } + + return ap.PermissionList.Validate() +} + +func (p *PermissionList) Validate() error { + if len(p.Permissions) == 0 { + return errors.New("permissions field cannot be empty") + } + perms := p.Permissions + slices.Sort(perms) + perms = slices.Compact(perms) + + // Check if duplicates + if len(perms) != len(p.Permissions) { + return fmt.Errorf("duplicated permission in AddressPermissions") + } + + // Check if permissions list is sorted + if !p.Equal(NewPermissionsList(perms)) { + return fmt.Errorf("PermissionList is not sorted yet") + } + return nil +} + +func EmptyPermissionList() PermissionList { + return PermissionList{ + Permissions: []string{}, + } +} + +func NewPermissionsList(permission []string) PermissionList { + if len(permission) == 0 || permission == nil { + return EmptyPermissionList() + } + return PermissionList{ + Permissions: permission, + } +} diff --git a/x/sequencers/types/permission.pb.go b/x/sequencers/types/permission.pb.go new file mode 100644 index 00000000..4354940c --- /dev/null +++ b/x/sequencers/types/permission.pb.go @@ -0,0 +1,608 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: sequencers/permission.proto + +package types + +import ( + fmt "fmt" + _ "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 + +type AddressPermissions struct { + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty" yaml:"address"` + // list of the module name that addresses have permission to execute msg + PermissionList PermissionList `protobuf:"bytes,2,opt,name=permission_list,json=permissionList,proto3" json:"permission_list" yaml:"permission_list"` +} + +func (m *AddressPermissions) Reset() { *m = AddressPermissions{} } +func (m *AddressPermissions) String() string { return proto.CompactTextString(m) } +func (*AddressPermissions) ProtoMessage() {} +func (*AddressPermissions) Descriptor() ([]byte, []int) { + return fileDescriptor_c76c2ae8ca24ef11, []int{0} +} +func (m *AddressPermissions) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AddressPermissions) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_AddressPermissions.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 *AddressPermissions) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddressPermissions.Merge(m, src) +} +func (m *AddressPermissions) XXX_Size() int { + return m.Size() +} +func (m *AddressPermissions) XXX_DiscardUnknown() { + xxx_messageInfo_AddressPermissions.DiscardUnknown(m) +} + +var xxx_messageInfo_AddressPermissions proto.InternalMessageInfo + +func (m *AddressPermissions) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +func (m *AddressPermissions) GetPermissionList() PermissionList { + if m != nil { + return m.PermissionList + } + return PermissionList{} +} + +type PermissionList struct { + Permissions []string `protobuf:"bytes,1,rep,name=permissions,proto3" json:"permissions,omitempty" yaml:"permissions"` +} + +func (m *PermissionList) Reset() { *m = PermissionList{} } +func (m *PermissionList) String() string { return proto.CompactTextString(m) } +func (*PermissionList) ProtoMessage() {} +func (*PermissionList) Descriptor() ([]byte, []int) { + return fileDescriptor_c76c2ae8ca24ef11, []int{1} +} +func (m *PermissionList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PermissionList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PermissionList.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 *PermissionList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PermissionList.Merge(m, src) +} +func (m *PermissionList) XXX_Size() int { + return m.Size() +} +func (m *PermissionList) XXX_DiscardUnknown() { + xxx_messageInfo_PermissionList.DiscardUnknown(m) +} + +var xxx_messageInfo_PermissionList proto.InternalMessageInfo + +func (m *PermissionList) GetPermissions() []string { + if m != nil { + return m.Permissions + } + return nil +} + +func init() { + proto.RegisterType((*AddressPermissions)(nil), "rollapp.sequencers.types.AddressPermissions") + proto.RegisterType((*PermissionList)(nil), "rollapp.sequencers.types.PermissionList") +} + +func init() { proto.RegisterFile("sequencers/permission.proto", fileDescriptor_c76c2ae8ca24ef11) } + +var fileDescriptor_c76c2ae8ca24ef11 = []byte{ + // 291 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2e, 0x4e, 0x2d, 0x2c, + 0x4d, 0xcd, 0x4b, 0x4e, 0x2d, 0x2a, 0xd6, 0x2f, 0x48, 0x2d, 0xca, 0xcd, 0x2c, 0x2e, 0xce, 0xcc, + 0xcf, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0x28, 0xca, 0xcf, 0xc9, 0x49, 0x2c, 0x28, + 0xd0, 0x43, 0x28, 0xd2, 0x2b, 0xa9, 0x2c, 0x48, 0x2d, 0x96, 0x12, 0x49, 0xcf, 0x4f, 0xcf, 0x07, + 0x2b, 0xd2, 0x07, 0xb1, 0x20, 0xea, 0x95, 0x76, 0x33, 0x72, 0x09, 0x39, 0xa6, 0xa4, 0x14, 0xa5, + 0x16, 0x17, 0x07, 0xc0, 0xcd, 0x2a, 0x16, 0xd2, 0xe1, 0x62, 0x4f, 0x84, 0x88, 0x4a, 0x30, 0x2a, + 0x30, 0x6a, 0x70, 0x3a, 0x09, 0x7d, 0xba, 0x27, 0xcf, 0x57, 0x99, 0x98, 0x9b, 0x63, 0xa5, 0x04, + 0x95, 0x50, 0x0a, 0x82, 0x29, 0x11, 0x2a, 0xe4, 0xe2, 0x47, 0x38, 0x24, 0x3e, 0x27, 0xb3, 0xb8, + 0x44, 0x82, 0x49, 0x81, 0x51, 0x83, 0xdb, 0x48, 0x43, 0x0f, 0x97, 0x73, 0xf4, 0x10, 0xb6, 0xf9, + 0x64, 0x16, 0x97, 0x38, 0xc9, 0x9d, 0xb8, 0x27, 0xcf, 0xf0, 0xe9, 0x9e, 0xbc, 0x18, 0xc4, 0x0e, + 0x34, 0xe3, 0x94, 0x82, 0xf8, 0x0a, 0x50, 0xd4, 0x5b, 0xb1, 0xbc, 0x58, 0x20, 0xcf, 0xa8, 0x14, + 0xc0, 0xc5, 0x87, 0x6a, 0x8e, 0x90, 0x05, 0x17, 0x37, 0x42, 0x25, 0xc8, 0xf1, 0xcc, 0x1a, 0x9c, + 0x4e, 0x62, 0x9f, 0xee, 0xc9, 0x0b, 0xa1, 0x1b, 0x5c, 0xac, 0x14, 0x84, 0xac, 0x14, 0x62, 0xa2, + 0x53, 0xd0, 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, 0x59, 0xa4, 0x67, 0x96, + 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0x54, 0xe6, 0xa6, 0xe6, 0x81, 0xb4, 0x55, + 0x54, 0x56, 0x21, 0x38, 0xba, 0x45, 0x29, 0xd9, 0xfa, 0x15, 0xfa, 0x48, 0xd1, 0x03, 0xf6, 0x6a, + 0x12, 0x1b, 0x38, 0xa8, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x84, 0x15, 0x53, 0x9c, 0xb9, + 0x01, 0x00, 0x00, +} + +func (this *AddressPermissions) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*AddressPermissions) + if !ok { + that2, ok := that.(AddressPermissions) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if this.Address != that1.Address { + return false + } + if !this.PermissionList.Equal(&that1.PermissionList) { + return false + } + return true +} +func (this *PermissionList) Equal(that interface{}) bool { + if that == nil { + return this == nil + } + + that1, ok := that.(*PermissionList) + if !ok { + that2, ok := that.(PermissionList) + if ok { + that1 = &that2 + } else { + return false + } + } + if that1 == nil { + return this == nil + } else if this == nil { + return false + } + if len(this.Permissions) != len(that1.Permissions) { + return false + } + for i := range this.Permissions { + if this.Permissions[i] != that1.Permissions[i] { + return false + } + } + return true +} +func (m *AddressPermissions) 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 *AddressPermissions) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AddressPermissions) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.PermissionList.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintPermission(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintPermission(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *PermissionList) 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 *PermissionList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PermissionList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Permissions) > 0 { + for iNdEx := len(m.Permissions) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Permissions[iNdEx]) + copy(dAtA[i:], m.Permissions[iNdEx]) + i = encodeVarintPermission(dAtA, i, uint64(len(m.Permissions[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func encodeVarintPermission(dAtA []byte, offset int, v uint64) int { + offset -= sovPermission(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *AddressPermissions) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovPermission(uint64(l)) + } + l = m.PermissionList.Size() + n += 1 + l + sovPermission(uint64(l)) + return n +} + +func (m *PermissionList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Permissions) > 0 { + for _, s := range m.Permissions { + l = len(s) + n += 1 + l + sovPermission(uint64(l)) + } + } + return n +} + +func sovPermission(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozPermission(x uint64) (n int) { + return sovPermission(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *AddressPermissions) 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 ErrIntOverflowPermission + } + 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: AddressPermissions: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AddressPermissions: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermission + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermission + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermission + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PermissionList", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermission + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthPermission + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthPermission + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.PermissionList.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPermission(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermission + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PermissionList) 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 ErrIntOverflowPermission + } + 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: PermissionList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PermissionList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Permissions", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowPermission + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthPermission + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthPermission + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Permissions = append(m.Permissions, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipPermission(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthPermission + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipPermission(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, ErrIntOverflowPermission + } + 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, ErrIntOverflowPermission + } + 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, ErrIntOverflowPermission + } + 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, ErrInvalidLengthPermission + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupPermission + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthPermission + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthPermission = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowPermission = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupPermission = fmt.Errorf("proto: unexpected end of group") +) diff --git a/x/sequencers/types/proposal_permission.go b/x/sequencers/types/proposal_permission.go new file mode 100644 index 00000000..db2c8a5c --- /dev/null +++ b/x/sequencers/types/proposal_permission.go @@ -0,0 +1,103 @@ +package types + +import ( + "fmt" + "strings" + + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" +) + +const ( + // ProposalTypeGrantPermissions defines the type for a RevokePermissions + ProposalTypeGrantPermissions = "GrantPermissions" + + // ProposalTypeRevokePermissions defines the type for a RevokePermissions + ProposalTypeRevokePermissions = "RevokePermissions" +) + +// Assert CreateDenomMetadataProposal implements govtypes.Content at compile-time +var ( + _ govtypes.Content = &GrantPermissionsProposal{} + _ govtypes.Content = &RevokePermissionsProposal{} +) + +func init() { + govtypes.RegisterProposalType(ProposalTypeGrantPermissions) + govtypes.RegisterProposalType(ProposalTypeRevokePermissions) +} + +// GetTitle returns the title of a grant permissions proposal. +func (gpp *GrantPermissionsProposal) GetTitle() string { return gpp.Title } + +// GetDescription returns the description of a community pool spend proposal. +func (gpp *GrantPermissionsProposal) GetDescription() string { return gpp.Description } + +// ProposalRoute returns the routing key of a community pool spend proposal. +func (gpp *GrantPermissionsProposal) ProposalRoute() string { return RouterKey } + +// ProposalType returns the type of community pool spend proposal. +func (gpp *GrantPermissionsProposal) ProposalType() string { return ProposalTypeGrantPermissions } + +// ValidateBasic runs basic stateless validity checks +func (gpp *GrantPermissionsProposal) ValidateBasic() error { + err := govtypes.ValidateAbstract(gpp) + if err != nil { + return err + } + + for _, addrPerms := range gpp.AddressPermissions { + if err := addrPerms.Validate(); err != nil { + return err + } + } + return nil +} + +// String implements the Stringer interface. +func (gpp GrantPermissionsProposal) String() string { + var b strings.Builder + b.WriteString(fmt.Sprintf(`Grant permissions Proposal: + Title: %s + Description: %s + AddressPermissions: %s +`, gpp.Title, gpp.Description, &gpp.AddressPermissions)) + return b.String() +} + +// GetTitle returns the title of a revoke permissions proposal. +func (rpp *RevokePermissionsProposal) GetTitle() string { return rpp.Title } + +// GetDescription returns the description of a revoke permissions proposal. +func (rpp *RevokePermissionsProposal) GetDescription() string { return rpp.Description } + +// ProposalRoute returns the routing key of a revoke permissions proposal. +func (rpp *RevokePermissionsProposal) ProposalRoute() string { return RouterKey } + +// ProposalType returns the type of revoke permissions proposal. +func (rpp *RevokePermissionsProposal) ProposalType() string { return ProposalTypeRevokePermissions } + +// ValidateBasic runs basic stateless validity checks +func (rpp *RevokePermissionsProposal) ValidateBasic() error { + err := govtypes.ValidateAbstract(rpp) + if err != nil { + return err + } + + for _, addrPerms := range rpp.AddressPermissions { + if err := addrPerms.Validate(); err != nil { + return err + } + } + return nil +} + +// String implements the Stringer interface. +func (rpp RevokePermissionsProposal) String() string { + var b strings.Builder + b.WriteString(fmt.Sprintf(`Revoke permissions Proposal: + Title: %s + Description: %s + AddressPermissions: %s +`, rpp.Title, rpp.Description, &rpp.AddressPermissions)) + return b.String() +} diff --git a/x/sequencers/types/query.pb.go b/x/sequencers/types/query.pb.go index b6776fac..f23f4820 100644 --- a/x/sequencers/types/query.pb.go +++ b/x/sequencers/types/query.pb.go @@ -327,6 +327,100 @@ func (m *QueryHistoricalInfoResponse) GetHist() *types.HistoricalInfo { return nil } +// QueryPermissionsRequest is request type for the Query/Permissions RPC +// method. +type QueryPermissionsRequest struct { + // address defines the address to query for. + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` +} + +func (m *QueryPermissionsRequest) Reset() { *m = QueryPermissionsRequest{} } +func (m *QueryPermissionsRequest) String() string { return proto.CompactTextString(m) } +func (*QueryPermissionsRequest) ProtoMessage() {} +func (*QueryPermissionsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_1707b8f76abec2d9, []int{6} +} +func (m *QueryPermissionsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryPermissionsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPermissionsRequest.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 *QueryPermissionsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPermissionsRequest.Merge(m, src) +} +func (m *QueryPermissionsRequest) XXX_Size() int { + return m.Size() +} +func (m *QueryPermissionsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPermissionsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryPermissionsRequest proto.InternalMessageInfo + +func (m *QueryPermissionsRequest) GetAddress() string { + if m != nil { + return m.Address + } + return "" +} + +// QueryPermissionsResponse is response type for the Query/Permissions RPC +// method. +type QueryPermissionsResponse struct { + // permissions defines the permissions for the given address. + Permissions string `protobuf:"bytes,1,opt,name=permissions,proto3" json:"permissions,omitempty"` +} + +func (m *QueryPermissionsResponse) Reset() { *m = QueryPermissionsResponse{} } +func (m *QueryPermissionsResponse) String() string { return proto.CompactTextString(m) } +func (*QueryPermissionsResponse) ProtoMessage() {} +func (*QueryPermissionsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_1707b8f76abec2d9, []int{7} +} +func (m *QueryPermissionsResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QueryPermissionsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_QueryPermissionsResponse.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 *QueryPermissionsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPermissionsResponse.Merge(m, src) +} +func (m *QueryPermissionsResponse) XXX_Size() int { + return m.Size() +} +func (m *QueryPermissionsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPermissionsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_QueryPermissionsResponse proto.InternalMessageInfo + +func (m *QueryPermissionsResponse) GetPermissions() string { + if m != nil { + return m.Permissions + } + return "" +} + // QueryParamsRequest is request type for the Query/Params RPC method. type QueryParamsRequest struct { } @@ -335,7 +429,7 @@ 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_1707b8f76abec2d9, []int{6} + return fileDescriptor_1707b8f76abec2d9, []int{8} } func (m *QueryParamsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -374,7 +468,7 @@ 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_1707b8f76abec2d9, []int{7} + return fileDescriptor_1707b8f76abec2d9, []int{9} } func (m *QueryParamsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -417,6 +511,8 @@ func init() { proto.RegisterType((*QuerySequencerResponse)(nil), "rollapp.sequencers.types.QuerySequencerResponse") proto.RegisterType((*QueryHistoricalInfoRequest)(nil), "rollapp.sequencers.types.QueryHistoricalInfoRequest") proto.RegisterType((*QueryHistoricalInfoResponse)(nil), "rollapp.sequencers.types.QueryHistoricalInfoResponse") + proto.RegisterType((*QueryPermissionsRequest)(nil), "rollapp.sequencers.types.QueryPermissionsRequest") + proto.RegisterType((*QueryPermissionsResponse)(nil), "rollapp.sequencers.types.QueryPermissionsResponse") proto.RegisterType((*QueryParamsRequest)(nil), "rollapp.sequencers.types.QueryParamsRequest") proto.RegisterType((*QueryParamsResponse)(nil), "rollapp.sequencers.types.QueryParamsResponse") } @@ -424,48 +520,52 @@ func init() { func init() { proto.RegisterFile("sequencers/query.proto", fileDescriptor_1707b8f76abec2d9) } var fileDescriptor_1707b8f76abec2d9 = []byte{ - // 641 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xcd, 0x6e, 0xd3, 0x4e, - 0x14, 0xc5, 0x33, 0xfd, 0x88, 0xd4, 0xa9, 0xfe, 0x5d, 0xcc, 0xbf, 0xb4, 0x91, 0x41, 0x26, 0x58, - 0x10, 0x22, 0x44, 0xed, 0x36, 0x14, 0x09, 0xb1, 0x28, 0x6a, 0x04, 0x14, 0x58, 0x15, 0x23, 0x90, - 0x60, 0x13, 0x4d, 0xe2, 0xa9, 0x33, 0x6a, 0xe2, 0x71, 0x3d, 0x13, 0x94, 0x50, 0x75, 0xc3, 0x1e, - 0x09, 0x89, 0x27, 0x60, 0xcd, 0x1b, 0xb0, 0x63, 0x83, 0xba, 0xac, 0xc4, 0x86, 0x15, 0x42, 0x09, - 0x0f, 0x82, 0x32, 0x1e, 0x7f, 0xb5, 0x09, 0x49, 0x76, 0x9e, 0xcc, 0x3d, 0xe7, 0xfe, 0xee, 0xf5, - 0x89, 0xe1, 0x1a, 0x27, 0x47, 0x1d, 0xe2, 0x35, 0x48, 0xc0, 0xad, 0xa3, 0x0e, 0x09, 0x7a, 0xa6, - 0x1f, 0x30, 0xc1, 0x50, 0x21, 0x60, 0xad, 0x16, 0xf6, 0x7d, 0x33, 0xb9, 0x37, 0x45, 0xcf, 0x27, - 0x5c, 0x5b, 0x75, 0x99, 0xcb, 0x64, 0x91, 0x35, 0x7c, 0x0a, 0xeb, 0xb5, 0xeb, 0x0d, 0xc6, 0xdb, - 0x8c, 0x5b, 0x5c, 0xe0, 0x43, 0xea, 0xb9, 0xd6, 0xdb, 0xad, 0x3a, 0x11, 0x78, 0x2b, 0x3a, 0xab, - 0xaa, 0x2b, 0x2e, 0x63, 0x6e, 0x8b, 0x58, 0xd8, 0xa7, 0x16, 0xf6, 0x3c, 0x26, 0xb0, 0xa0, 0xcc, - 0xe3, 0xea, 0xf6, 0x96, 0xf2, 0xa8, 0x63, 0x4e, 0x42, 0x98, 0xd8, 0xc6, 0xc7, 0x2e, 0xf5, 0x64, - 0xb1, 0xaa, 0x5d, 0x4f, 0x71, 0xfb, 0x38, 0xc0, 0x6d, 0x65, 0x62, 0x74, 0xe1, 0xda, 0xf3, 0xa1, - 0xf4, 0x45, 0x7c, 0x6f, 0x0f, 0x9f, 0xb8, 0x40, 0x6b, 0x30, 0xcf, 0x05, 0x16, 0x1d, 0x5e, 0x00, - 0x45, 0x50, 0x5e, 0xb2, 0xd5, 0x09, 0x3d, 0x86, 0x30, 0xb1, 0x2f, 0xcc, 0x15, 0x41, 0x79, 0xb9, - 0x52, 0x32, 0x43, 0x16, 0x73, 0xc8, 0x62, 0x86, 0x8b, 0x51, 0x2c, 0xe6, 0x3e, 0x76, 0x89, 0xf2, - 0xb4, 0x53, 0x4a, 0xe3, 0x0b, 0x80, 0xeb, 0x17, 0x5a, 0x73, 0x9f, 0x79, 0x9c, 0xa0, 0x3d, 0x08, - 0x13, 0xe0, 0x02, 0x28, 0xce, 0x97, 0x97, 0x2b, 0xd7, 0xa2, 0x1e, 0xd1, 0x8e, 0xa2, 0x06, 0xaf, - 0x70, 0x8b, 0x3a, 0x58, 0xb0, 0xa0, 0xba, 0x70, 0xfa, 0xeb, 0x6a, 0xce, 0x4e, 0x49, 0x87, 0x46, - 0x17, 0x60, 0x6f, 0x4e, 0x84, 0x0d, 0x29, 0x32, 0xb4, 0x3b, 0xf0, 0x52, 0x16, 0x36, 0x5a, 0xd3, - 0x0d, 0xb8, 0x12, 0xf7, 0xab, 0x61, 0xc7, 0x09, 0xd4, 0xba, 0xfe, 0x8b, 0x7f, 0xdd, 0x75, 0x9c, - 0xc0, 0xa8, 0x9d, 0xdf, 0x73, 0x3c, 0xeb, 0x23, 0xb8, 0x14, 0x97, 0x4a, 0xed, 0x0c, 0xa3, 0x26, - 0x4a, 0x63, 0x1b, 0x6a, 0xb2, 0xc1, 0x13, 0xca, 0x05, 0x0b, 0x68, 0x03, 0xb7, 0x9e, 0x7a, 0x07, - 0x2c, 0xf5, 0x32, 0x9b, 0x84, 0xba, 0x4d, 0x21, 0x3b, 0xcc, 0xdb, 0xea, 0x64, 0xbc, 0x86, 0x97, - 0x47, 0xaa, 0x14, 0xdb, 0x7d, 0xb8, 0xd0, 0xa4, 0x5c, 0x28, 0xac, 0xd2, 0x38, 0xac, 0x73, 0x6a, - 0xa9, 0x31, 0x56, 0x21, 0x92, 0xd6, 0xfb, 0x32, 0x6e, 0x0a, 0xc4, 0x78, 0x09, 0xff, 0xcf, 0xfc, - 0xaa, 0x1a, 0xed, 0xc0, 0x7c, 0x18, 0x4b, 0xd5, 0xaa, 0x68, 0x8e, 0xfb, 0x43, 0x99, 0xa1, 0x52, - 0x2d, 0x40, 0xa9, 0x2a, 0xdf, 0x16, 0xe1, 0xa2, 0xf4, 0x45, 0x9f, 0x01, 0x84, 0x49, 0xa2, 0xd0, - 0xe6, 0x78, 0xa3, 0xd1, 0xb9, 0xd7, 0xb6, 0x66, 0x50, 0x84, 0xf4, 0x86, 0xf9, 0xfe, 0xc7, 0x9f, - 0x4f, 0x73, 0x65, 0x54, 0xb2, 0x9c, 0x5e, 0x9b, 0x78, 0x9c, 0x32, 0xaf, 0xdb, 0x7b, 0x97, 0x1c, - 0x36, 0x02, 0xe7, 0xd0, 0x4a, 0xa5, 0xf2, 0x2b, 0x80, 0x4b, 0xb1, 0x0d, 0xb2, 0xa6, 0x6d, 0x18, - 0x11, 0x6e, 0x4e, 0x2f, 0x50, 0x80, 0xcf, 0x24, 0xe0, 0x43, 0x54, 0x9d, 0x0e, 0x30, 0xfd, 0x78, - 0x9c, 0x4d, 0xf7, 0x09, 0xfa, 0x0e, 0xe0, 0x4a, 0xf6, 0x85, 0xa3, 0xed, 0x09, 0x40, 0x23, 0x33, - 0xa9, 0xdd, 0x9d, 0x51, 0xa5, 0x66, 0xd9, 0x93, 0xb3, 0xec, 0xa2, 0x07, 0x53, 0xce, 0xd2, 0x8c, - 0x6d, 0x6a, 0xd4, 0x3b, 0x60, 0xd6, 0x71, 0x18, 0xfd, 0x13, 0xf4, 0x01, 0xc0, 0x7c, 0x18, 0x26, - 0x74, 0x7b, 0x02, 0x4a, 0x26, 0xc3, 0xda, 0xc6, 0x94, 0xd5, 0x0a, 0xb8, 0x24, 0x81, 0x8b, 0x48, - 0xb7, 0xc6, 0x7c, 0xf4, 0xc3, 0x0c, 0x57, 0xed, 0xd3, 0xbe, 0x0e, 0xce, 0xfa, 0x3a, 0xf8, 0xdd, - 0xd7, 0xc1, 0xc7, 0x81, 0x9e, 0x3b, 0x1b, 0xe8, 0xb9, 0x9f, 0x03, 0x3d, 0xf7, 0xe6, 0x9e, 0x4b, - 0x45, 0xb3, 0x53, 0x37, 0x1b, 0xac, 0xfd, 0xaf, 0xa1, 0xbb, 0xe9, 0xb1, 0x25, 0x4f, 0x3d, 0x2f, - 0xbf, 0xf2, 0x77, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0x63, 0x6a, 0xc8, 0xb0, 0xb8, 0x06, 0x00, - 0x00, + // 711 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x95, 0x4f, 0x4f, 0x13, 0x4f, + 0x18, 0xc7, 0xbb, 0xc0, 0xaf, 0xbf, 0xf0, 0x34, 0x72, 0x18, 0x11, 0x9a, 0xd5, 0xac, 0x75, 0xa3, + 0xb5, 0x31, 0xb2, 0x0b, 0x05, 0x13, 0x63, 0x08, 0x06, 0x82, 0xa2, 0x9e, 0xb0, 0x46, 0x13, 0xbd, + 0x90, 0x69, 0x77, 0xd8, 0x6e, 0x68, 0x77, 0x96, 0x9d, 0xa9, 0xa1, 0x12, 0x2e, 0xde, 0x4d, 0x4c, + 0x7c, 0x05, 0x9e, 0x7d, 0x07, 0xbe, 0x00, 0xc3, 0x91, 0xc4, 0x8b, 0x27, 0x63, 0xc0, 0xd7, 0x61, + 0xcc, 0xce, 0xcc, 0xfe, 0x29, 0xa5, 0xb6, 0xbd, 0xed, 0xcc, 0x3c, 0xdf, 0xe7, 0xf9, 0x3c, 0xcf, + 0xcc, 0x37, 0x0b, 0x73, 0x8c, 0xec, 0x77, 0x88, 0xdf, 0x20, 0x21, 0xb3, 0xf7, 0x3b, 0x24, 0xec, + 0x5a, 0x41, 0x48, 0x39, 0x45, 0xc5, 0x90, 0xb6, 0x5a, 0x38, 0x08, 0xac, 0xf4, 0xdc, 0xe2, 0xdd, + 0x80, 0x30, 0x7d, 0xd6, 0xa5, 0x2e, 0x15, 0x41, 0x76, 0xf4, 0x25, 0xe3, 0xf5, 0x9b, 0x0d, 0xca, + 0xda, 0x94, 0xd9, 0x8c, 0xe3, 0x3d, 0xcf, 0x77, 0xed, 0xb7, 0x4b, 0x75, 0xc2, 0xf1, 0x52, 0xbc, + 0x56, 0x51, 0xd7, 0x5c, 0x4a, 0xdd, 0x16, 0xb1, 0x71, 0xe0, 0xd9, 0xd8, 0xf7, 0x29, 0xc7, 0xdc, + 0xa3, 0x3e, 0x53, 0xa7, 0x77, 0x54, 0x8e, 0x3a, 0x66, 0x44, 0xc2, 0x24, 0x69, 0x02, 0xec, 0x7a, + 0xbe, 0x08, 0x56, 0xb1, 0xf3, 0x19, 0xee, 0x00, 0x87, 0xb8, 0xad, 0x92, 0x98, 0x07, 0x30, 0xf7, + 0x3c, 0x92, 0xbe, 0x48, 0xce, 0x6b, 0xd1, 0x17, 0xe3, 0x68, 0x0e, 0xf2, 0x8c, 0x63, 0xde, 0x61, + 0x45, 0xad, 0xa4, 0x55, 0xa6, 0x6b, 0x6a, 0x85, 0x1e, 0x03, 0xa4, 0xe9, 0x8b, 0x13, 0x25, 0xad, + 0x52, 0xa8, 0x96, 0x2d, 0xc9, 0x62, 0x45, 0x2c, 0x96, 0x1c, 0x8c, 0x62, 0xb1, 0xb6, 0xb1, 0x4b, + 0x54, 0xce, 0x5a, 0x46, 0x69, 0x7e, 0xd1, 0x60, 0xbe, 0xaf, 0x34, 0x0b, 0xa8, 0xcf, 0x08, 0xda, + 0x02, 0x48, 0x81, 0x8b, 0x5a, 0x69, 0xb2, 0x52, 0xa8, 0xde, 0x88, 0x6b, 0xc4, 0x33, 0x8a, 0x0b, + 0xbc, 0xc2, 0x2d, 0xcf, 0xc1, 0x9c, 0x86, 0x1b, 0x53, 0xc7, 0x3f, 0xaf, 0xe7, 0x6a, 0x19, 0x69, + 0x94, 0xa8, 0x0f, 0xf6, 0xf6, 0x50, 0x58, 0x49, 0xd1, 0x43, 0xbb, 0x06, 0x57, 0x7a, 0x61, 0xe3, + 0x31, 0xdd, 0x82, 0x99, 0xa4, 0xde, 0x0e, 0x76, 0x9c, 0x50, 0x8d, 0xeb, 0x52, 0xb2, 0xbb, 0xee, + 0x38, 0xa1, 0xb9, 0x73, 0x7e, 0xce, 0x49, 0xaf, 0x8f, 0x60, 0x3a, 0x09, 0x15, 0xda, 0x31, 0x5a, + 0x4d, 0x95, 0xe6, 0x0a, 0xe8, 0xa2, 0xc0, 0x13, 0x8f, 0x71, 0x1a, 0x7a, 0x0d, 0xdc, 0x7a, 0xea, + 0xef, 0xd2, 0xcc, 0x65, 0x36, 0x89, 0xe7, 0x36, 0xb9, 0xa8, 0x30, 0x59, 0x53, 0x2b, 0xf3, 0x35, + 0x5c, 0xbd, 0x50, 0xa5, 0xd8, 0x1e, 0xc0, 0x54, 0xd3, 0x63, 0x5c, 0x61, 0x95, 0x07, 0x61, 0x9d, + 0x53, 0x0b, 0x8d, 0xb9, 0xac, 0xae, 0x77, 0x9b, 0x84, 0x6d, 0x8f, 0xb1, 0xe8, 0xe1, 0xc6, 0x34, + 0x45, 0xf8, 0x3f, 0x9a, 0x14, 0x61, 0xf1, 0xdb, 0x8a, 0x97, 0xe6, 0x2a, 0x14, 0xfb, 0x45, 0x0a, + 0xa6, 0x04, 0x85, 0x20, 0xdd, 0x56, 0xca, 0xec, 0x96, 0x39, 0x0b, 0x48, 0xaa, 0xc5, 0x0b, 0x57, + 0xd5, 0xcc, 0x97, 0x70, 0xb9, 0x67, 0x57, 0xa5, 0x5b, 0x83, 0xbc, 0x74, 0x82, 0xea, 0xae, 0x64, + 0x0d, 0xf2, 0xb0, 0x25, 0x95, 0x6a, 0xe6, 0x4a, 0x55, 0xfd, 0x93, 0x87, 0xff, 0x44, 0x5e, 0xf4, + 0x59, 0x03, 0x48, 0x1f, 0x31, 0x5a, 0x1c, 0x9c, 0xe8, 0x62, 0xab, 0xe9, 0x4b, 0x63, 0x28, 0x24, + 0xbd, 0x69, 0xbd, 0xff, 0xfe, 0xfb, 0xd3, 0x44, 0x05, 0x95, 0x6d, 0xa7, 0xdb, 0x26, 0x7e, 0xd4, + 0xff, 0x41, 0xf7, 0x5d, 0xba, 0x58, 0x08, 0x9d, 0x3d, 0x3b, 0x63, 0x84, 0xaf, 0x1a, 0x4c, 0x27, + 0x69, 0x90, 0x3d, 0x6a, 0xc1, 0x98, 0x70, 0x71, 0x74, 0x81, 0x02, 0x7c, 0x26, 0x00, 0x37, 0xd1, + 0xc6, 0x68, 0x80, 0xd9, 0xcf, 0xc3, 0x5e, 0x43, 0x1d, 0xa1, 0x6f, 0x1a, 0xcc, 0xf4, 0xbe, 0x31, + 0xb4, 0x32, 0x04, 0xe8, 0x42, 0x1b, 0xe8, 0xf7, 0xc6, 0x54, 0xa9, 0x5e, 0xb6, 0x44, 0x2f, 0xeb, + 0xe8, 0xe1, 0x88, 0xbd, 0x34, 0x93, 0x34, 0x3b, 0x9e, 0xbf, 0x4b, 0xed, 0x43, 0xe9, 0xb6, 0xa3, + 0xe8, 0x16, 0x0a, 0x99, 0xa7, 0x8d, 0x86, 0x5d, 0x7c, 0xbf, 0x77, 0xf4, 0xea, 0x38, 0x12, 0xc5, + 0xbf, 0x29, 0xf8, 0xd7, 0xd0, 0xea, 0x88, 0xfc, 0x19, 0x4f, 0xd9, 0x87, 0xca, 0x9a, 0x47, 0xe8, + 0x83, 0x06, 0x79, 0xe9, 0x04, 0x74, 0x77, 0x18, 0x44, 0xd6, 0x80, 0xfa, 0xc2, 0x88, 0xd1, 0x8a, + 0xb6, 0x2c, 0x68, 0x4b, 0xc8, 0xb0, 0x07, 0xfc, 0x24, 0xa5, 0x01, 0x37, 0x6a, 0xc7, 0xa7, 0x86, + 0x76, 0x72, 0x6a, 0x68, 0xbf, 0x4e, 0x0d, 0xed, 0xe3, 0x99, 0x91, 0x3b, 0x39, 0x33, 0x72, 0x3f, + 0xce, 0x8c, 0xdc, 0x9b, 0xfb, 0xae, 0xc7, 0x9b, 0x9d, 0xba, 0xd5, 0xa0, 0xed, 0x7f, 0x75, 0x7c, + 0x90, 0xed, 0x59, 0xf0, 0xd4, 0xf3, 0xe2, 0xaf, 0xb8, 0xfc, 0x37, 0x00, 0x00, 0xff, 0xff, 0x16, + 0xe8, 0x86, 0xb4, 0xe8, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -486,6 +586,8 @@ type QueryClient interface { Sequencer(ctx context.Context, in *QuerySequencerRequest, opts ...grpc.CallOption) (*QuerySequencerResponse, error) // HistoricalInfo queries the historical info for given height. HistoricalInfo(ctx context.Context, in *QueryHistoricalInfoRequest, opts ...grpc.CallOption) (*QueryHistoricalInfoResponse, error) + // Permissions queries the permissions for given address. + Permissions(ctx context.Context, in *QueryPermissionsRequest, opts ...grpc.CallOption) (*QueryPermissionsResponse, error) // Parameters queries the staking parameters. Params(ctx context.Context, in *QueryParamsRequest, opts ...grpc.CallOption) (*QueryParamsResponse, error) } @@ -525,6 +627,15 @@ func (c *queryClient) HistoricalInfo(ctx context.Context, in *QueryHistoricalInf return out, nil } +func (c *queryClient) Permissions(ctx context.Context, in *QueryPermissionsRequest, opts ...grpc.CallOption) (*QueryPermissionsResponse, error) { + out := new(QueryPermissionsResponse) + err := c.cc.Invoke(ctx, "/rollapp.sequencers.types.Query/Permissions", 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, "/rollapp.sequencers.types.Query/Params", in, out, opts...) @@ -542,6 +653,8 @@ type QueryServer interface { Sequencer(context.Context, *QuerySequencerRequest) (*QuerySequencerResponse, error) // HistoricalInfo queries the historical info for given height. HistoricalInfo(context.Context, *QueryHistoricalInfoRequest) (*QueryHistoricalInfoResponse, error) + // Permissions queries the permissions for given address. + Permissions(context.Context, *QueryPermissionsRequest) (*QueryPermissionsResponse, error) // Parameters queries the staking parameters. Params(context.Context, *QueryParamsRequest) (*QueryParamsResponse, error) } @@ -559,6 +672,9 @@ func (*UnimplementedQueryServer) Sequencer(ctx context.Context, req *QuerySequen func (*UnimplementedQueryServer) HistoricalInfo(ctx context.Context, req *QueryHistoricalInfoRequest) (*QueryHistoricalInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method HistoricalInfo not implemented") } +func (*UnimplementedQueryServer) Permissions(ctx context.Context, req *QueryPermissionsRequest) (*QueryPermissionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Permissions not implemented") +} func (*UnimplementedQueryServer) Params(ctx context.Context, req *QueryParamsRequest) (*QueryParamsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Params not implemented") } @@ -621,6 +737,24 @@ func _Query_HistoricalInfo_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _Query_Permissions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryPermissionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(QueryServer).Permissions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rollapp.sequencers.types.Query/Permissions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(QueryServer).Permissions(ctx, req.(*QueryPermissionsRequest)) + } + 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 { @@ -655,6 +789,10 @@ var _Query_serviceDesc = grpc.ServiceDesc{ MethodName: "HistoricalInfo", Handler: _Query_HistoricalInfo_Handler, }, + { + MethodName: "Permissions", + Handler: _Query_Permissions_Handler, + }, { MethodName: "Params", Handler: _Query_Params_Handler, @@ -881,6 +1019,66 @@ func (m *QueryHistoricalInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, er return len(dAtA) - i, nil } +func (m *QueryPermissionsRequest) 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 *QueryPermissionsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPermissionsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Address) > 0 { + i -= len(m.Address) + copy(dAtA[i:], m.Address) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Address))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *QueryPermissionsResponse) 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 *QueryPermissionsResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QueryPermissionsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Permissions) > 0 { + i -= len(m.Permissions) + copy(dAtA[i:], m.Permissions) + i = encodeVarintQuery(dAtA, i, uint64(len(m.Permissions))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *QueryParamsRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -1033,6 +1231,32 @@ func (m *QueryHistoricalInfoResponse) Size() (n int) { return n } +func (m *QueryPermissionsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Address) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + +func (m *QueryPermissionsResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Permissions) + if l > 0 { + n += 1 + l + sovQuery(uint64(l)) + } + return n +} + func (m *QueryParamsRequest) Size() (n int) { if m == nil { return 0 @@ -1617,6 +1841,170 @@ func (m *QueryHistoricalInfoResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *QueryPermissionsRequest) 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: QueryPermissionsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryPermissionsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Address", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowQuery + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthQuery + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthQuery + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Address = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipQuery(dAtA[iNdEx:]) + 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 *QueryPermissionsResponse) 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: QueryPermissionsResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QueryPermissionsResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Permissions", 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.Permissions = 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 *QueryParamsRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/x/sequencers/types/query.pb.gw.go b/x/sequencers/types/query.pb.gw.go index a239cff9..ea79cb1d 100644 --- a/x/sequencers/types/query.pb.gw.go +++ b/x/sequencers/types/query.pb.gw.go @@ -177,6 +177,60 @@ func local_request_Query_HistoricalInfo_0(ctx context.Context, marshaler runtime } +func request_Query_Permissions_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryPermissionsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["address"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "address") + } + + protoReq.Address, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "address", err) + } + + msg, err := client.Permissions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Query_Permissions_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryPermissionsRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["address"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "address") + } + + protoReq.Address, err = runtime.String(val) + + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "address", err) + } + + msg, err := server.Permissions(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 @@ -270,6 +324,29 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv }) + mux.Handle("GET", pattern_Query_Permissions_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_Permissions_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_Permissions_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() @@ -394,6 +471,26 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie }) + mux.Handle("GET", pattern_Query_Permissions_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_Permissions_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_Permissions_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() @@ -424,6 +521,8 @@ var ( pattern_Query_HistoricalInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"dymensionxyz", "dymension-rdk", "sequencers", "historical_info", "height"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_Permissions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"dymensionxyz", "dymension-rdk", "sequencers", "permissions", "address"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_Params_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"cosmos", "staking", "v1beta1", "params"}, "", runtime.AssumeColonVerbOpt(false))) ) @@ -434,5 +533,7 @@ var ( forward_Query_HistoricalInfo_0 = runtime.ForwardResponseMessage + forward_Query_Permissions_0 = runtime.ForwardResponseMessage + forward_Query_Params_0 = runtime.ForwardResponseMessage )