From 9af2a797df0c93e706d261535647787f0d38c5a8 Mon Sep 17 00:00:00 2001 From: Leo Beaker <89185836+djm07073@users.noreply.github.com> Date: Fri, 21 Jun 2024 17:41:27 +0900 Subject: [PATCH] feat: multi-ibc-relayer supported (#205) * feat: multi-relayer supported * fix: reflect comment * fix:name * fix: slice module * fix: remove add permissioned relayers & types.proto * fix: convert function & unused test code * fix: init genesis & add some test code --- app/hook/bridge_hook.go | 12 +- app/hook/bridge_hook_test.go | 26 +- proto/ibc/applications/perm/v1/genesis.proto | 2 +- proto/ibc/applications/perm/v1/query.proto | 26 +- proto/ibc/applications/perm/v1/tx.proto | 23 +- proto/ibc/applications/perm/v1/types.proto | 8 +- x/ibc/perm/ibc_module.go | 3 +- x/ibc/perm/keeper/genesis.go | 26 +- x/ibc/perm/keeper/genesis_test.go | 43 ++- x/ibc/perm/keeper/grpc_query.go | 33 +- x/ibc/perm/keeper/grpc_query_test.go | 31 +- x/ibc/perm/keeper/keeper.go | 46 +-- x/ibc/perm/keeper/keeper_test.go | 39 +- x/ibc/perm/keeper/msg_server.go | 15 +- x/ibc/perm/keeper/msg_server_test.go | 10 +- x/ibc/perm/types/codec.go | 4 +- x/ibc/perm/types/events.go | 9 +- x/ibc/perm/types/extended.go | 57 +++ x/ibc/perm/types/genesis.go | 4 +- x/ibc/perm/types/genesis.pb.go | 26 +- x/ibc/perm/types/key.go | 10 +- x/ibc/perm/types/query.pb.go | 355 ++++++++++--------- x/ibc/perm/types/query.pb.gw.go | 62 ++-- x/ibc/perm/types/tx.go | 22 +- x/ibc/perm/types/tx.pb.go | 217 ++++++------ x/ibc/perm/types/types.pb.go | 292 ++++++++++++--- 26 files changed, 874 insertions(+), 527 deletions(-) create mode 100644 x/ibc/perm/types/extended.go diff --git a/app/hook/bridge_hook.go b/app/hook/bridge_hook.go index 75042ddc..41e98145 100644 --- a/app/hook/bridge_hook.go +++ b/app/hook/bridge_hook.go @@ -28,8 +28,8 @@ type ChannelKeeper interface { type PermKeeper interface { HasPermission(ctx context.Context, portID, channelID string, relayer sdk.AccAddress) (bool, error) - SetPermissionedRelayer(ctx context.Context, portID, channelID string, relayer sdk.AccAddress) error - GetPermissionedRelayer(ctx context.Context, portID, channelID string) (sdk.AccAddress, error) + SetPermissionedRelayers(ctx context.Context, portID, channelID string, relayers []sdk.AccAddress) error + GetPermissionedRelayers(ctx context.Context, portID, channelID string) ([]sdk.AccAddress, error) } func NewBridgeHook(channelKeeper ChannelKeeper, permKeeper PermKeeper, ac address.Codec) BridgeHook { @@ -61,14 +61,14 @@ func (h BridgeHook) BridgeCreated( } // check if the channel has a permissioned relayer - if _, err := h.IBCPermKeeper.GetPermissionedRelayer(ctx, portID, channelID); err == nil { + if _, err := h.IBCPermKeeper.GetPermissionedRelayers(ctx, portID, channelID); err == nil { return permtypes.ErrAlreadyTaken.Wrap("failed to claim permissioned relayer") } else if !errors.Is(err, collections.ErrNotFound) { return err } // register challenger as channel relayer - if err = h.IBCPermKeeper.SetPermissionedRelayer(sdkCtx, portID, channelID, challenger); err != nil { + if err = h.IBCPermKeeper.SetPermissionedRelayers(sdkCtx, portID, channelID, []sdk.AccAddress{challenger}); err != nil { return err } } @@ -96,7 +96,7 @@ func (h BridgeHook) BridgeChallengerUpdated( portID, channelID := permChannel.PortID, permChannel.ChannelID // update relayer to a new challenger - if err = h.IBCPermKeeper.SetPermissionedRelayer(sdkCtx, portID, channelID, challenger); err != nil { + if err = h.IBCPermKeeper.SetPermissionedRelayers(sdkCtx, portID, channelID, []sdk.AccAddress{challenger}); err != nil { return err } } @@ -154,7 +154,7 @@ func (h BridgeHook) BridgeMetadataUpdated( } // register challenger as channel relayer - if err = h.IBCPermKeeper.SetPermissionedRelayer(sdkCtx, portID, channelID, challenger); err != nil { + if err = h.IBCPermKeeper.SetPermissionedRelayers(sdkCtx, portID, channelID, []sdk.AccAddress{challenger}); err != nil { return err } } diff --git a/app/hook/bridge_hook_test.go b/app/hook/bridge_hook_test.go index 3e423c22..a10badfb 100644 --- a/app/hook/bridge_hook_test.go +++ b/app/hook/bridge_hook_test.go @@ -34,25 +34,37 @@ func (k MockChannelKeeper) GetNextSequenceSend(ctx sdk.Context, portID, channelI return seq, ok } +type MockPermRelayerList struct { + Relayers []sdk.AccAddress +} + +func (l MockPermRelayerList) Equals(relayer sdk.AccAddress) bool { + for _, r := range l.Relayers { + if r.Equals(relayer) { + return true + } + } + return false +} + type MockPermKeeper struct { - perms map[string]sdk.AccAddress + perms map[string]MockPermRelayerList } func (k MockPermKeeper) HasPermission(ctx context.Context, portID, channelID string, relayer sdk.AccAddress) (bool, error) { return k.perms[portID+"/"+channelID].Equals(relayer), nil } -func (k MockPermKeeper) SetPermissionedRelayer(ctx context.Context, portID, channelID string, relayer sdk.AccAddress) error { - k.perms[portID+"/"+channelID] = relayer +func (k MockPermKeeper) SetPermissionedRelayers(ctx context.Context, portID, channelID string, relayers []sdk.AccAddress) error { + k.perms[portID+"/"+channelID] = MockPermRelayerList{Relayers: relayers} return nil } -func (k MockPermKeeper) GetPermissionedRelayer(ctx context.Context, portID, channelID string) (sdk.AccAddress, error) { +func (k MockPermKeeper) GetPermissionedRelayers(ctx context.Context, portID, channelID string) ([]sdk.AccAddress, error) { if _, ok := k.perms[portID+"/"+channelID]; !ok { return nil, collections.ErrNotFound } - - return k.perms[portID+"/"+channelID], nil + return k.perms[portID+"/"+channelID].Relayers, nil } func setup() (context.Context, hook.BridgeHook) { @@ -63,7 +75,7 @@ func setup() (context.Context, hook.BridgeHook) { "transfer/channel-2": 1, }, }, MockPermKeeper{ - perms: make(map[string]sdk.AccAddress), + perms: make(map[string]MockPermRelayerList), }, address.NewBech32Codec(sdk.GetConfig().GetBech32AccountAddrPrefix())) ms := store.NewCommitMultiStore(dbm.NewMemDB(), log.NewNopLogger(), metrics.NewNoOpMetrics()) diff --git a/proto/ibc/applications/perm/v1/genesis.proto b/proto/ibc/applications/perm/v1/genesis.proto index 3548289b..36182b65 100644 --- a/proto/ibc/applications/perm/v1/genesis.proto +++ b/proto/ibc/applications/perm/v1/genesis.proto @@ -9,6 +9,6 @@ option go_package = "github.com/initia-labs/initia/x/ibc/perm/types"; // GenesisState defines the ibc perm genesis state message GenesisState { - repeated PermissionedRelayer permissioned_relayers = 1 + repeated PermissionedRelayers permissioned_relayers = 1 [(gogoproto.moretags) = "yaml:\"permissioned_relayers\"", (gogoproto.nullable) = false]; } diff --git a/proto/ibc/applications/perm/v1/query.proto b/proto/ibc/applications/perm/v1/query.proto index 9bc31d3f..2aa99d8e 100644 --- a/proto/ibc/applications/perm/v1/query.proto +++ b/proto/ibc/applications/perm/v1/query.proto @@ -11,43 +11,43 @@ option go_package = "github.com/initia-labs/initia/x/ibc/perm/types"; // Query provides defines the gRPC querier service. service Query { - // PermissionedRelayer queries a permissioned ibc relayer for the specific channel. - rpc PermissionedRelayer(QueryPermissionedRelayerRequest) returns (QueryPermissionedRelayerResponse) { + // PermissionedRelayersByChannel queries a set of permissioned ibc relayers for the specific channel. + rpc PermissionedRelayersByChannel(QueryPermissionedRelayersByChannelRequest) returns (QueryPermissionedRelayersByChannelResponse) { option (google.api.http).get = "/ibc/apps/perm/v1/relayers/{port_id}/{channel_id}"; } - // PermissionedRelayers queries a permissioned ibc relayers. - rpc PermissionedRelayers(QueryPermissionedRelayersRequest) returns (QueryPermissionedRelayersResponse) { + // AllPermissionedRelayers queries all sets of permissioned relayers for all channels. + rpc AllPermissionedRelayers(QueryAllPermissionedRelayersRequest) returns (QueryAllPermissionedRelayersResponse) { option (google.api.http).get = "/ibc/apps/perm/v1/relayers"; } } -// QueryPermissionedRelayerRequest is the request type for the Query/PermissionedRelayer RPC +// QueryPermissionedRelayersOfOneChannelRequest is the request type for the Query/PermissionedRelayer RPC // method -message QueryPermissionedRelayerRequest { +message QueryPermissionedRelayersByChannelRequest { string port_id = 1; string channel_id = 2; } // QueryPermissionedRelayerResponse is the response type for the Query/PermissionedRelayer RPC // method. -message QueryPermissionedRelayerResponse { +message QueryPermissionedRelayersByChannelResponse { // class_trace returns the requested class id trace information. - PermissionedRelayer permissioned_relayer = 1; + PermissionedRelayers permissioned_relayers = 1; } -// QueryPermissionedRelayersRequest is the request type for the Query/PermissionedRelayers RPC +// QueryAllPermissionedRelayersRequest is the request type for the Query/AllPermissionedRelayers RPC // method -message QueryPermissionedRelayersRequest { +message QueryAllPermissionedRelayersRequest { // pagination defines an optional pagination for the request. cosmos.base.query.v1beta1.PageRequest pagination = 1; } -// QueryPermissionedRelayersResponse is the response type for the Query/PermissionedRelayers RPC +// QueryAllPermissionedRelayersResponse is the response type for the Query/AllPermissionedRelayers RPC // method. -message QueryPermissionedRelayersResponse { +message QueryAllPermissionedRelayersResponse { // class_trace returns the requested class id trace information. - repeated PermissionedRelayer permissioned_relayers = 1 [(gogoproto.nullable) = false]; + repeated PermissionedRelayers permissioned_relayers = 1 [(gogoproto.nullable) = false]; // pagination defines the pagination in the response. cosmos.base.query.v1beta1.PageResponse pagination = 2; } diff --git a/proto/ibc/applications/perm/v1/tx.proto b/proto/ibc/applications/perm/v1/tx.proto index c4f2e4d1..ec9fd3b5 100644 --- a/proto/ibc/applications/perm/v1/tx.proto +++ b/proto/ibc/applications/perm/v1/tx.proto @@ -5,22 +5,23 @@ import "amino/amino.proto"; import "cosmos/msg/v1/msg.proto"; import "cosmos_proto/cosmos.proto"; import "gogoproto/gogo.proto"; - +import "ibc/applications/perm/v1/types.proto"; option go_package = "github.com/initia-labs/initia/x/ibc/perm/types"; // Msg defines the ibc/perm Msg service service Msg { option (cosmos.msg.v1.service) = true; - // SetPermissionedRelayer defines a rpc handler method for MsgSetPermissionedRelayer. - rpc SetPermissionedRelayer(MsgSetPermissionedRelayer) returns (MsgSetPermissionedRelayerResponse); + // SetPermissionedRelayers defines a rpc handler method for MsgSetPermissionedRelayers. + rpc SetPermissionedRelayers(MsgSetPermissionedRelayers) returns (MsgSetPermissionedRelayersResponse); + } -// MsgSetPermissionedRelayer defines msg to set permissioned relyer for +// MsgSetPermissionedRelayers defines msg to set permissioned relyer for // the specific ibc channel. -message MsgSetPermissionedRelayer { +message MsgSetPermissionedRelayers { option (cosmos.msg.v1.signer) = "authority"; - option (amino.name) = "perm/MsgSetPermissionedRelayer"; + option (amino.name) = "perm/MsgSetPermissionedRelayers"; option (gogoproto.equal) = false; option (gogoproto.goproto_getters) = false; @@ -30,8 +31,12 @@ message MsgSetPermissionedRelayer { string authority = 1 [(gogoproto.moretags) = "yaml:\"authority\"", (cosmos_proto.scalar) = "cosmos.AddressString"]; string port_id = 2 [(gogoproto.moretags) = "yaml:\"port_id\""]; string channel_id = 3 [(gogoproto.moretags) = "yaml:\"channel_id\""]; - string relayer = 4 [(gogoproto.moretags) = "yaml:\"relayer\""]; + repeated string relayers = 4 [(gogoproto.moretags) = "yaml:\"relayers\""]; } -// MsgSetPermissionedRelayerResponse defines the Msg/SetPermissionedRelayer response type. -message MsgSetPermissionedRelayerResponse {} +// MsgSetPermissionedRelayersResponse defines the Msg/SetPermissionedRelayer response type. +message MsgSetPermissionedRelayersResponse {} + + + + diff --git a/proto/ibc/applications/perm/v1/types.proto b/proto/ibc/applications/perm/v1/types.proto index 9ab9d0a9..454c557a 100644 --- a/proto/ibc/applications/perm/v1/types.proto +++ b/proto/ibc/applications/perm/v1/types.proto @@ -6,8 +6,12 @@ option go_package = "github.com/initia-labs/initia/x/ibc/perm/types"; // PermissionedRelayer is used to specifiy the permissioned relayer for // the specific port-id:channel-id pair. -message PermissionedRelayer { +message PermissionedRelayers { string port_id = 1; string channel_id = 2; - string relayer = 3; + repeated string relayers = 3; } + +message PermissionedRelayersList { + repeated string relayers = 1; +} \ No newline at end of file diff --git a/x/ibc/perm/ibc_module.go b/x/ibc/perm/ibc_module.go index ccd93a5e..6833e382 100644 --- a/x/ibc/perm/ibc_module.go +++ b/x/ibc/perm/ibc_module.go @@ -1,7 +1,6 @@ package perm import ( - "bytes" "errors" "fmt" @@ -160,7 +159,7 @@ func (im IBCMiddleware) OnRecvPacket( ) ibcexported.Acknowledgement { if permissionedRelayer, err := im.keeper.PermissionedRelayers.Get(ctx, collections.Join(packet.DestinationPort, packet.DestinationChannel)); err != nil && !errors.Is(err, collections.ErrNotFound) { return newEmitErrorAcknowledgement(ctx, err) - } else if err == nil && !bytes.Equal(relayer, permissionedRelayer) { + } else if err == nil && !permissionedRelayer.HasRelayer(relayer.String()) { /* Raise a panic to prevent abnormal relayers from disrupting operations by continuously sending error acknowledgements. For instance, abnormal relaying diff --git a/x/ibc/perm/keeper/genesis.go b/x/ibc/perm/keeper/genesis.go index a1b59173..b73cbc1f 100644 --- a/x/ibc/perm/keeper/genesis.go +++ b/x/ibc/perm/keeper/genesis.go @@ -9,13 +9,19 @@ import ( // InitGenesis initializes the ibc-perm state. func (k Keeper) InitGenesis(ctx sdk.Context, genesisState types.GenesisState) { - for _, channelRelayer := range genesisState.PermissionedRelayers { - addr, err := k.ac.StringToBytes(channelRelayer.Relayer) - if err != nil { - panic(err) - } - if err := k.PermissionedRelayers.Set(ctx, collections.Join(channelRelayer.PortId, channelRelayer.ChannelId), addr); err != nil { + for _, relayersByChannel := range genesisState.PermissionedRelayers { + var channelRelayers []string + for _, channelRelayer := range relayersByChannel.Relayers { + _, err := k.ac.StringToBytes(channelRelayer) + if err != nil { + panic(err) + } + channelRelayers = append(channelRelayers, channelRelayer) + } + if err := k.PermissionedRelayers.Set(ctx, collections.Join(relayersByChannel.PortId, relayersByChannel.ChannelId), types.PermissionedRelayersList{ + Relayers: channelRelayers, + }); err != nil { panic(err) } } @@ -23,9 +29,9 @@ func (k Keeper) InitGenesis(ctx sdk.Context, genesisState types.GenesisState) { // ExportGenesis exports ibc-perm module's channel relayers. func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { - channelRelayers := []types.PermissionedRelayer{} - err := k.IteratePermissionedRelayers(ctx, func(channelRelayer types.PermissionedRelayer) (bool, error) { - channelRelayers = append(channelRelayers, channelRelayer) + channelRelayerSets := []types.PermissionedRelayers{} + err := k.IteratePermissionedRelayers(ctx, func(channelRelayer types.PermissionedRelayers) (bool, error) { + channelRelayerSets = append(channelRelayerSets, channelRelayer) return false, nil }) if err != nil { @@ -33,6 +39,6 @@ func (k Keeper) ExportGenesis(ctx sdk.Context) *types.GenesisState { } return &types.GenesisState{ - PermissionedRelayers: channelRelayers, + PermissionedRelayers: channelRelayerSets, } } diff --git a/x/ibc/perm/keeper/genesis_test.go b/x/ibc/perm/keeper/genesis_test.go index f5db78e5..cb70a677 100644 --- a/x/ibc/perm/keeper/genesis_test.go +++ b/x/ibc/perm/keeper/genesis_test.go @@ -12,6 +12,42 @@ import ( "github.com/initia-labs/initia/x/ibc/perm/types" ) +func Test_InitGenesis(t *testing.T) { + ctx, k := _createTestInput(t, dbm.NewMemDB()) + channelA := "channel-123" + channelB := "channel-456" + portA := "port-123" + portB := "port-456" + + pubKeyA := secp256k1.GenPrivKey().PubKey() + pubKeyB := secp256k1.GenPrivKey().PubKey() + + addrA := sdk.AccAddress(pubKeyA.Address()) + addrB := sdk.AccAddress(pubKeyB.Address()) + + k.InitGenesis(ctx, types.GenesisState{ + PermissionedRelayers: []types.PermissionedRelayers{ + { + PortId: portA, + ChannelId: channelA, + Relayers: []string{addrA.String()}, + }, + { + PortId: portB, + ChannelId: channelB, + Relayers: []string{addrB.String()}, + }, + }, + }) + + ok, err := k.HasPermission(ctx, portA, channelA, addrA) + require.NoError(t, err) + require.True(t, ok) + + ok, _ = k.HasPermission(ctx, portB, channelB, addrB) + require.NoError(t, err) + require.True(t, ok) +} func Test_ExportGenesis(t *testing.T) { ctx, k := _createTestInput(t, dbm.NewMemDB()) @@ -27,21 +63,20 @@ func Test_ExportGenesis(t *testing.T) { addrB := sdk.AccAddress(pubKeyB.Address()) genState := types.NewGenesisState( - []types.PermissionedRelayer{ + []types.PermissionedRelayers{ { PortId: portA, ChannelId: channelA, - Relayer: addrA.String(), + Relayers: []string{addrA.String()}, }, { PortId: portB, ChannelId: channelB, - Relayer: addrB.String(), + Relayers: []string{addrB.String()}, }, }, ) k.InitGenesis(ctx, *genState) - exportedState := k.ExportGenesis(ctx) require.Equal(t, genState, exportedState) } diff --git a/x/ibc/perm/keeper/grpc_query.go b/x/ibc/perm/keeper/grpc_query.go index 2fa220e7..7ef29238 100644 --- a/x/ibc/perm/keeper/grpc_query.go +++ b/x/ibc/perm/keeper/grpc_query.go @@ -20,42 +20,33 @@ func NewQueryServer(k *Keeper) QueryServerImpl { return QueryServerImpl{k} } -// PermissionedRelayer implements the Query/PermissionedRelayer gRPC method -func (q QueryServerImpl) PermissionedRelayer(c context.Context, req *types.QueryPermissionedRelayerRequest) (*types.QueryPermissionedRelayerResponse, error) { +// PermissionedRelayersByChannel implements the Query/PermissionedRelayersByChannel gRPC method +func (q QueryServerImpl) PermissionedRelayersByChannel(c context.Context, req *types.QueryPermissionedRelayersByChannelRequest) (*types.QueryPermissionedRelayersByChannelResponse, error) { ctx := sdk.UnwrapSDKContext(c) - relayer, err := q.Keeper.PermissionedRelayers.Get(ctx, collections.Join(req.PortId, req.ChannelId)) + relayersList, err := q.Keeper.PermissionedRelayers.Get(ctx, collections.Join(req.PortId, req.ChannelId)) if err != nil { return nil, err } - relayerStr, err := q.ac.BytesToString(relayer) - if err != nil { - return nil, err - } - - return &types.QueryPermissionedRelayerResponse{ - PermissionedRelayer: &types.PermissionedRelayer{ + return &types.QueryPermissionedRelayersByChannelResponse{ + PermissionedRelayers: &types.PermissionedRelayers{ PortId: req.PortId, ChannelId: req.ChannelId, - Relayer: relayerStr, + Relayers: relayersList.Relayers, }, }, nil } -// PermissionedRelayers implements the Query/PermissionedRelayers gRPC method -func (q QueryServerImpl) PermissionedRelayers(ctx context.Context, req *types.QueryPermissionedRelayersRequest) (*types.QueryPermissionedRelayersResponse, error) { +// AllPermissionedRelayers implements the Query/AllPermissionedRelayers gRPC method +func (q QueryServerImpl) AllPermissionedRelayers(ctx context.Context, req *types.QueryAllPermissionedRelayersRequest) (*types.QueryAllPermissionedRelayersResponse, error) { relayers, pageRes, err := query.CollectionPaginate( ctx, q.Keeper.PermissionedRelayers, req.Pagination, - func(key collections.Pair[string, string], relayer []byte) (types.PermissionedRelayer, error) { - relayerStr, err := q.ac.BytesToString(relayer) - if err != nil { - return types.PermissionedRelayer{}, err - } + func(key collections.Pair[string, string], relayersList types.PermissionedRelayersList) (types.PermissionedRelayers, error) { - return types.PermissionedRelayer{ + return types.PermissionedRelayers{ PortId: key.K1(), ChannelId: key.K2(), - Relayer: relayerStr, + Relayers: relayersList.Relayers, }, nil }, ) @@ -63,7 +54,7 @@ func (q QueryServerImpl) PermissionedRelayers(ctx context.Context, req *types.Qu return nil, err } - return &types.QueryPermissionedRelayersResponse{ + return &types.QueryAllPermissionedRelayersResponse{ PermissionedRelayers: relayers, Pagination: pageRes, }, nil diff --git a/x/ibc/perm/keeper/grpc_query_test.go b/x/ibc/perm/keeper/grpc_query_test.go index 91b54766..bd574ad0 100644 --- a/x/ibc/perm/keeper/grpc_query_test.go +++ b/x/ibc/perm/keeper/grpc_query_test.go @@ -1,6 +1,7 @@ package keeper_test import ( + "slices" "testing" "cosmossdk.io/collections" @@ -15,7 +16,7 @@ import ( "github.com/initia-labs/initia/x/ibc/perm/types" ) -func Test_QueryPermissionedRelayer(t *testing.T) { +func Test_QueryPermissionedRelayersOneChannel(t *testing.T) { ctx, k := _createTestInput(t, dbm.NewMemDB()) portID := "port-123" @@ -24,18 +25,18 @@ func Test_QueryPermissionedRelayer(t *testing.T) { addr := sdk.AccAddress(pubKey.Address()) // set relayer - require.NoError(t, k.PermissionedRelayers.Set(ctx, collections.Join(portID, channelID), addr)) + require.NoError(t, k.PermissionedRelayers.Set(ctx, collections.Join(portID, channelID), types.PermissionedRelayersList{Relayers: []string{addr.String()}})) // set channel relayer via msg handler queryServer := keeper.NewQueryServer(k) - res, err := queryServer.PermissionedRelayer(ctx, &types.QueryPermissionedRelayerRequest{ + res, err := queryServer.PermissionedRelayersByChannel(ctx, &types.QueryPermissionedRelayersByChannelRequest{ PortId: portID, ChannelId: channelID, }) require.NoError(t, err) - require.Equal(t, addr.String(), res.PermissionedRelayer.Relayer) + require.True(t, slices.Contains(res.PermissionedRelayers.Relayers, addr.String())) - _, err = queryServer.PermissionedRelayer(ctx, &types.QueryPermissionedRelayerRequest{ + _, err = queryServer.PermissionedRelayersByChannel(ctx, &types.QueryPermissionedRelayersByChannelRequest{ PortId: portID, ChannelId: channelID + "4", }) @@ -43,7 +44,7 @@ func Test_QueryPermissionedRelayer(t *testing.T) { } -func Test_QueryPermissionedRelayers(t *testing.T) { +func Test_QueryAllPermissionedRelayers(t *testing.T) { ctx, k := _createTestInput(t, dbm.NewMemDB()) portID1 := "port-123" @@ -56,38 +57,38 @@ func Test_QueryPermissionedRelayers(t *testing.T) { addr2 := sdk.AccAddress(pubKey2.Address()) // set relayers - require.NoError(t, k.PermissionedRelayers.Set(ctx, collections.Join(portID1, channelID1), addr1)) - require.NoError(t, k.PermissionedRelayers.Set(ctx, collections.Join(portID2, channelID2), addr2)) + require.NoError(t, k.PermissionedRelayers.Set(ctx, collections.Join(portID1, channelID1), types.PermissionedRelayersList{Relayers: []string{addr1.String()}})) + require.NoError(t, k.PermissionedRelayers.Set(ctx, collections.Join(portID2, channelID2), types.PermissionedRelayersList{Relayers: []string{addr2.String()}})) // set channel relayer via msg handler queryServer := keeper.NewQueryServer(k) - res, err := queryServer.PermissionedRelayers(ctx, &types.QueryPermissionedRelayersRequest{}) + res, err := queryServer.AllPermissionedRelayers(ctx, &types.QueryAllPermissionedRelayersRequest{}) require.NoError(t, err) require.Len(t, res.PermissionedRelayers, 2) if res.PermissionedRelayers[0].ChannelId == channelID1 { - require.Equal(t, res.PermissionedRelayers, []types.PermissionedRelayer{ + require.Equal(t, res.PermissionedRelayers, []types.PermissionedRelayers{ { PortId: portID1, ChannelId: channelID1, - Relayer: addr1.String(), + Relayers: []string{addr1.String()}, }, { PortId: portID2, ChannelId: channelID2, - Relayer: addr2.String(), + Relayers: []string{addr2.String()}, }, }) } else { - require.Equal(t, res.PermissionedRelayers, []types.PermissionedRelayer{ + require.Equal(t, res.PermissionedRelayers, []types.PermissionedRelayers{ { PortId: portID2, ChannelId: channelID2, - Relayer: addr2.String(), + Relayers: []string{addr2.String()}, }, { PortId: portID1, ChannelId: channelID1, - Relayer: addr1.String(), + Relayers: []string{addr1.String()}, }, }) } diff --git a/x/ibc/perm/keeper/keeper.go b/x/ibc/perm/keeper/keeper.go index 0c05e716..c5b14959 100644 --- a/x/ibc/perm/keeper/keeper.go +++ b/x/ibc/perm/keeper/keeper.go @@ -1,7 +1,6 @@ package keeper import ( - "bytes" "context" "errors" "fmt" @@ -25,7 +24,7 @@ type Keeper struct { authority string Schema collections.Schema - PermissionedRelayers collections.Map[collections.Pair[string, string], []byte] + PermissionedRelayers collections.Map[collections.Pair[string, string], types.PermissionedRelayersList] } // NewKeeper creates a new IBC perm Keeper instance @@ -43,7 +42,7 @@ func NewKeeper( k := &Keeper{ cdc: cdc, authority: authority, - PermissionedRelayers: collections.NewMap(sb, types.PermissionedRelayerPrefixKey, "channel_relayers", collections.PairKeyCodec[string, string](collections.StringKey, collections.StringKey), collections.BytesValue), + PermissionedRelayers: collections.NewMap(sb, types.PermissionedRelayersPrefixKey, "channel_relayers", collections.PairKeyCodec[string, string](collections.StringKey, collections.StringKey), codec.CollValue[types.PermissionedRelayersList](cdc)), ac: ac, } @@ -63,44 +62,51 @@ func (k Keeper) Logger(ctx context.Context) log.Logger { } // IteratePermissionedRelayers iterates over all the permissioned relayers. -func (k Keeper) IteratePermissionedRelayers(ctx context.Context, cb func(channelRelayer types.PermissionedRelayer) (bool, error)) error { - return k.PermissionedRelayers.Walk(ctx, nil, func(key collections.Pair[string, string], relayer []byte) (stop bool, err error) { - relayerStr, err := k.ac.BytesToString(relayer) - if err != nil { - return true, err - } - - return cb(types.PermissionedRelayer{ +func (k Keeper) IteratePermissionedRelayers(ctx context.Context, cb func(channelRelayer types.PermissionedRelayers) (bool, error)) error { + return k.PermissionedRelayers.Walk(ctx, nil, func(key collections.Pair[string, string], relayersList types.PermissionedRelayersList) (stop bool, err error) { + return cb(types.PermissionedRelayers{ PortId: key.K1(), ChannelId: key.K2(), - Relayer: relayerStr, + Relayers: relayersList.Relayers, }) }) } // SetPermissionedRelayer sets the relayer as the permissioned relayer for the channel. -func (k Keeper) SetPermissionedRelayer(ctx context.Context, portID, channelID string, relayer sdk.AccAddress) error { - return k.PermissionedRelayers.Set(ctx, collections.Join(portID, channelID), relayer) +func (k Keeper) SetPermissionedRelayers(ctx context.Context, portID, channelID string, relayers []sdk.AccAddress) error { + relayerList, err := types.ToRelayerList(k.ac, relayers) + if err != nil { + return err + } + return k.PermissionedRelayers.Set(ctx, collections.Join(portID, channelID), relayerList) } // GetPermissionedRelayer returns the permissioned relayer for the channel. -func (k Keeper) GetPermissionedRelayer(ctx context.Context, portID, channelID string) (sdk.AccAddress, error) { - relayer, err := k.PermissionedRelayers.Get(ctx, collections.Join(portID, channelID)) +func (k Keeper) GetPermissionedRelayers(ctx context.Context, portID, channelID string) ([]sdk.AccAddress, error) { + relayers, err := k.PermissionedRelayers.Get(ctx, collections.Join(portID, channelID)) if err != nil { return nil, err } - - return sdk.AccAddress(relayer), nil + relayersAcc, err := relayers.GetAccAddr(k.ac) + if err != nil { + return nil, err + } + return relayersAcc, nil } // HasPermission checks if the relayer has permission to relay packets on the channel. func (k Keeper) HasPermission(ctx context.Context, portID, channelID string, relayer sdk.AccAddress) (bool, error) { - permRelayer, err := k.PermissionedRelayers.Get(ctx, collections.Join(portID, channelID)) + + permRelayers, err := k.PermissionedRelayers.Get(ctx, collections.Join(portID, channelID)) if err != nil && errors.Is(err, collections.ErrNotFound) { return false, nil } else if err != nil { return false, err } + relayerStr, err := k.ac.BytesToString(relayer) + if err != nil { + return false, err + } - return bytes.Equal(permRelayer, relayer.Bytes()), nil + return permRelayers.HasRelayer(relayerStr), nil } diff --git a/x/ibc/perm/keeper/keeper_test.go b/x/ibc/perm/keeper/keeper_test.go index d492e53e..6ad4c732 100644 --- a/x/ibc/perm/keeper/keeper_test.go +++ b/x/ibc/perm/keeper/keeper_test.go @@ -78,7 +78,7 @@ func _createTestInput( return ctx, permKeeper } -func Test_GetPermissionedRelayer(t *testing.T) { +func Test_GetPermissionedRelayers(t *testing.T) { ctx, k := _createTestInput(t, dbm.NewMemDB()) portID := "port-123" @@ -91,13 +91,13 @@ func Test_GetPermissionedRelayer(t *testing.T) { require.ErrorIs(t, err, collections.ErrNotFound) // set channel relayer via msg handler - err = k.PermissionedRelayers.Set(ctx, collections.Join(portID, channelID), addr) + err = k.PermissionedRelayers.Set(ctx, collections.Join(portID, channelID), types.PermissionedRelayersList{Relayers: []string{addr.String()}}) require.NoError(t, err) // check properly set res, err := k.PermissionedRelayers.Get(ctx, collections.Join(portID, channelID)) require.NoError(t, err) - require.Equal(t, res, addr.Bytes()) + require.True(t, res.HasRelayer(addr.String())) // check properly set ok, err := k.HasPermission(ctx, portID, channelID, addr) @@ -109,3 +109,36 @@ func Test_GetPermissionedRelayer(t *testing.T) { require.NoError(t, err) require.False(t, ok) } + +func Test_SetPermissionedRelayers(t *testing.T) { + ctx, k := _createTestInput(t, dbm.NewMemDB()) + + portID := "port-123" + channelID := "channel-123" + pubKey := secp256k1.GenPrivKey().PubKey() + addr := sdk.AccAddress(pubKey.Address()) + + // set relayer + err := k.SetPermissionedRelayers(ctx, portID, channelID, []sdk.AccAddress{addr}) + require.NoError(t, err) + + // check properly set + res, err := k.PermissionedRelayers.Get(ctx, collections.Join(portID, channelID)) + require.NoError(t, err) + require.True(t, res.HasRelayer(addr.String())) +} +func Test_HasPermission(t *testing.T) { + ctx, k := _createTestInput(t, dbm.NewMemDB()) + + portID := "port-123" + channelID := "channel-123" + pubKey := secp256k1.GenPrivKey().PubKey() + addr := sdk.AccAddress(pubKey.Address()) + + err := k.SetPermissionedRelayers(ctx, portID, channelID, []sdk.AccAddress{addr}) + require.NoError(t, err) + + ok, err := k.HasPermission(ctx, portID, channelID, addr) + require.NoError(t, err) + require.True(t, ok) +} diff --git a/x/ibc/perm/keeper/msg_server.go b/x/ibc/perm/keeper/msg_server.go index 721aeed6..82adc40b 100644 --- a/x/ibc/perm/keeper/msg_server.go +++ b/x/ibc/perm/keeper/msg_server.go @@ -2,6 +2,7 @@ package keeper import ( "context" + "strings" "cosmossdk.io/errors" @@ -23,7 +24,7 @@ func NewMsgServerImpl(k *Keeper) MsgServer { } // SetPermissionedRelayer update channel relayer to restrict relaying operation of a channel to specific relayer. -func (ms MsgServer) SetPermissionedRelayer(ctx context.Context, req *types.MsgSetPermissionedRelayer) (*types.MsgSetPermissionedRelayerResponse, error) { +func (ms MsgServer) SetPermissionedRelayers(ctx context.Context, req *types.MsgSetPermissionedRelayers) (*types.MsgSetPermissionedRelayersResponse, error) { if err := req.Validate(ms.Keeper.ac); err != nil { return nil, err } @@ -32,12 +33,12 @@ func (ms MsgServer) SetPermissionedRelayer(ctx context.Context, req *types.MsgSe return nil, errors.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", ms.authority, req.Authority) } - relayerAddr, err := ms.Keeper.ac.StringToBytes(req.Relayer) + relayers, err := types.ToRelayerAccAddr(ms.ac, req.Relayers) if err != nil { return nil, err } - if err := ms.Keeper.SetPermissionedRelayer(ctx, req.PortId, req.ChannelId, relayerAddr); err != nil { + if err := ms.Keeper.SetPermissionedRelayers(ctx, req.PortId, req.ChannelId, relayers); err != nil { return nil, err } @@ -45,16 +46,16 @@ func (ms MsgServer) SetPermissionedRelayer(ctx context.Context, req *types.MsgSe "IBC permissioned channel relayer", "port id", req.PortId, "channel id", req.ChannelId, - "relayer", relayerAddr, + "relayers", req.Relayers, ) sdkCtx := sdk.UnwrapSDKContext(ctx) sdkCtx.EventManager().EmitEvents(sdk.Events{ sdk.NewEvent( - types.EventTypeSetPermissionedRelayer, + types.EventTypeSetPermissionedRelayers, sdk.NewAttribute(types.AttributeKeyPortId, req.PortId), sdk.NewAttribute(types.AttributeKeyChannelId, req.ChannelId), - sdk.NewAttribute(types.AttributeKeyRelayer, req.Relayer), + sdk.NewAttribute(types.AttributeKeyRelayers, strings.Join(req.Relayers, ",")), ), sdk.NewEvent( sdk.EventTypeMessage, @@ -62,5 +63,5 @@ func (ms MsgServer) SetPermissionedRelayer(ctx context.Context, req *types.MsgSe ), }) - return &types.MsgSetPermissionedRelayerResponse{}, nil + return &types.MsgSetPermissionedRelayersResponse{}, nil } diff --git a/x/ibc/perm/keeper/msg_server_test.go b/x/ibc/perm/keeper/msg_server_test.go index ac14ea21..7982178f 100644 --- a/x/ibc/perm/keeper/msg_server_test.go +++ b/x/ibc/perm/keeper/msg_server_test.go @@ -23,7 +23,8 @@ func Test_SetPermissionedRelayer(t *testing.T) { portID := "port-123" channelID := "channel-123" pubKey := secp256k1.GenPrivKey().PubKey() - addr := sdk.AccAddress(pubKey.Address()) + addr1 := sdk.AccAddress(pubKey.Address()) + addr2 := sdk.AccAddress(pubKey.Address()) // should be empty _, err := k.PermissionedRelayers.Get(ctx, collections.Join(portID, channelID)) @@ -31,14 +32,15 @@ func Test_SetPermissionedRelayer(t *testing.T) { // set channel relayer via msg handler msgServer := keeper.NewMsgServerImpl(k) - _, err = msgServer.SetPermissionedRelayer(ctx, types.NewMsgSetPermissionedRelayer( + _, err = msgServer.SetPermissionedRelayers(ctx, types.NewMsgSetPermissionedRelayers( authtypes.NewModuleAddress(govtypes.ModuleName).String(), - portID, channelID, addr.String(), + portID, channelID, []string{addr1.String(), addr2.String()}, )) require.NoError(t, err) // check properly set res, err := k.PermissionedRelayers.Get(ctx, collections.Join(portID, channelID)) require.NoError(t, err) - require.Equal(t, res, addr.Bytes()) + require.True(t, res.HasRelayer(addr1.String())) + require.True(t, res.HasRelayer(addr2.String())) } diff --git a/x/ibc/perm/types/codec.go b/x/ibc/perm/types/codec.go index bd91324f..994ed936 100644 --- a/x/ibc/perm/types/codec.go +++ b/x/ibc/perm/types/codec.go @@ -11,13 +11,13 @@ import ( // RegisterLegacyAminoCodec registers the necessary x/ibc perm interfaces and concrete types // on the provided LegacyAmino codec. These types are used for Amino JSON serialization. func RegisterLegacyAminoCodec(cdc *codec.LegacyAmino) { - legacy.RegisterAminoMsg(cdc, &MsgSetPermissionedRelayer{}, "ibc-perm/MsgSetPermissionedRelayer") + legacy.RegisterAminoMsg(cdc, &MsgSetPermissionedRelayers{}, "ibc-perm/MsgSetPermissionedRelayers") } // RegisterInterfaces register the ibc perm module interfaces to protobuf // Any. func RegisterInterfaces(registry codectypes.InterfaceRegistry) { - registry.RegisterImplementations((*sdk.Msg)(nil), &MsgSetPermissionedRelayer{}) + registry.RegisterImplementations((*sdk.Msg)(nil), &MsgSetPermissionedRelayers{}) msgservice.RegisterMsgServiceDesc(registry, &_Msg_serviceDesc) } diff --git a/x/ibc/perm/types/events.go b/x/ibc/perm/types/events.go index 05cbbdd7..a8369d5b 100644 --- a/x/ibc/perm/types/events.go +++ b/x/ibc/perm/types/events.go @@ -1,9 +1,8 @@ package types const ( - EventTypeSetPermissionedRelayer = "update_channel_relayer" - - AttributeKeyPortId = "port_id" - AttributeKeyChannelId = "channel_id" - AttributeKeyRelayer = "relayer" + EventTypeSetPermissionedRelayers = "update_channel_relayers" + AttributeKeyPortId = "port_id" + AttributeKeyChannelId = "channel_id" + AttributeKeyRelayers = "relayers" ) diff --git a/x/ibc/perm/types/extended.go b/x/ibc/perm/types/extended.go new file mode 100644 index 00000000..580b234d --- /dev/null +++ b/x/ibc/perm/types/extended.go @@ -0,0 +1,57 @@ +package types + +import ( + "slices" + + "cosmossdk.io/errors" + + "cosmossdk.io/core/address" + sdk "github.com/cosmos/cosmos-sdk/types" + sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" +) + +func (rl *PermissionedRelayersList) HasRelayer(addrStr string) bool { + return slices.Contains(rl.Relayers, addrStr) +} +func (rl *PermissionedRelayersList) AddRelayer(addrStr string) { + rl.Relayers = append(rl.Relayers, addrStr) +} + +func (rl *PermissionedRelayersList) GetAccAddr(ac address.Codec) ([]sdk.AccAddress, error) { + + var relayerStrs []sdk.AccAddress + for _, relayer := range rl.Relayers { + + relayer, err := ac.StringToBytes(relayer) + if err != nil { + return nil, errors.Wrapf(sdkerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err) + } + relayerStrs = append(relayerStrs, relayer) + } + + return relayerStrs, nil +} + +func ToRelayerList(ac address.Codec, relayers []sdk.AccAddress) (PermissionedRelayersList, error) { + var relayerList PermissionedRelayersList + for _, relayer := range relayers { + relayerStr, error := ac.BytesToString(relayer) + if error != nil { + return relayerList, errors.Wrapf(sdkerrors.ErrInvalidAddress, "relayer address could not be converted to string : %v", error) + } + relayerList.AddRelayer(relayerStr) + } + return relayerList, nil +} + +func ToRelayerAccAddr(ac address.Codec, relayerStrs []string) ([]sdk.AccAddress, error) { + var relayerAccAddrs []sdk.AccAddress + for _, relayerStr := range relayerStrs { + relayer, err := ac.StringToBytes(relayerStr) + if err != nil { + return nil, errors.Wrapf(sdkerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err) + } + relayerAccAddrs = append(relayerAccAddrs, relayer) + } + return relayerAccAddrs, nil +} diff --git a/x/ibc/perm/types/genesis.go b/x/ibc/perm/types/genesis.go index 2ad08c43..9c20550f 100644 --- a/x/ibc/perm/types/genesis.go +++ b/x/ibc/perm/types/genesis.go @@ -1,7 +1,7 @@ package types // NewGenesisState creates a new ibc perm GenesisState instance. -func NewGenesisState(permissionedRelayers []PermissionedRelayer) *GenesisState { +func NewGenesisState(permissionedRelayers []PermissionedRelayers) *GenesisState { return &GenesisState{ PermissionedRelayers: permissionedRelayers, } @@ -10,7 +10,7 @@ func NewGenesisState(permissionedRelayers []PermissionedRelayer) *GenesisState { // DefaultGenesisState returns a default empty GenesisState. func DefaultGenesisState() *GenesisState { return &GenesisState{ - PermissionedRelayers: []PermissionedRelayer{}, + PermissionedRelayers: []PermissionedRelayers{}, } } diff --git a/x/ibc/perm/types/genesis.pb.go b/x/ibc/perm/types/genesis.pb.go index 529d4456..1fd68429 100644 --- a/x/ibc/perm/types/genesis.pb.go +++ b/x/ibc/perm/types/genesis.pb.go @@ -25,7 +25,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // GenesisState defines the ibc perm genesis state type GenesisState struct { - PermissionedRelayers []PermissionedRelayer `protobuf:"bytes,1,rep,name=permissioned_relayers,json=permissionedRelayers,proto3" json:"permissioned_relayers" yaml:"permissioned_relayers"` + PermissionedRelayers []PermissionedRelayers `protobuf:"bytes,1,rep,name=permissioned_relayers,json=permissionedRelayers,proto3" json:"permissioned_relayers" yaml:"permissioned_relayers"` } func (m *GenesisState) Reset() { *m = GenesisState{} } @@ -61,7 +61,7 @@ func (m *GenesisState) XXX_DiscardUnknown() { var xxx_messageInfo_GenesisState proto.InternalMessageInfo -func (m *GenesisState) GetPermissionedRelayers() []PermissionedRelayer { +func (m *GenesisState) GetPermissionedRelayers() []PermissionedRelayers { if m != nil { return m.PermissionedRelayers } @@ -77,23 +77,23 @@ func init() { } var fileDescriptor_9b6fe0c483250b7c = []byte{ - // 252 bytes of a gzipped FileDescriptorProto + // 250 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0xcb, 0x4c, 0x4a, 0xd6, 0x4f, 0x2c, 0x28, 0xc8, 0xc9, 0x4c, 0x4e, 0x2c, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0x2f, 0x48, 0x2d, 0xca, 0xd5, 0x2f, 0x33, 0xd4, 0x4f, 0x4f, 0xcd, 0x4b, 0x2d, 0xce, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, 0xc8, 0x4c, 0x4a, 0xd6, 0x43, 0x56, 0xa7, 0x07, 0x52, 0xa7, 0x57, 0x66, 0x28, 0x25, 0x92, 0x9e, 0x9f, 0x9e, 0x0f, 0x56, 0xa4, 0x0f, 0x62, 0x41, 0xd4, 0x4b, 0xa9, 0xe0, - 0x34, 0xb7, 0xa4, 0xb2, 0x20, 0x15, 0x6a, 0xaa, 0xd2, 0x4c, 0x46, 0x2e, 0x1e, 0x77, 0x88, 0x3d, - 0xc1, 0x25, 0x89, 0x25, 0xa9, 0x42, 0x1d, 0x8c, 0x5c, 0xa2, 0x20, 0x85, 0x99, 0xc5, 0xc5, 0x99, + 0x34, 0xb7, 0xa4, 0xb2, 0x20, 0x15, 0x6a, 0xaa, 0xd2, 0x2c, 0x46, 0x2e, 0x1e, 0x77, 0x88, 0x3d, + 0xc1, 0x25, 0x89, 0x25, 0xa9, 0x42, 0x9d, 0x8c, 0x5c, 0xa2, 0x20, 0x85, 0x99, 0xc5, 0xc5, 0x99, 0xf9, 0x79, 0xa9, 0x29, 0xf1, 0x45, 0xa9, 0x39, 0x89, 0x95, 0xa9, 0x45, 0xc5, 0x12, 0x8c, 0x0a, - 0xcc, 0x1a, 0xdc, 0x46, 0xba, 0x7a, 0xb8, 0xdc, 0xa1, 0x17, 0x80, 0xa4, 0x2d, 0x08, 0xa2, 0xcb, + 0xcc, 0x1a, 0xdc, 0x46, 0x7a, 0x7a, 0xb8, 0xdc, 0xa1, 0x17, 0x80, 0xa4, 0x2d, 0x08, 0xaa, 0xcb, 0x49, 0xe5, 0xc4, 0x3d, 0x79, 0x86, 0x4f, 0xf7, 0xe4, 0x65, 0x2a, 0x13, 0x73, 0x73, 0xac, 0x94, - 0xb0, 0x9a, 0xac, 0x14, 0x24, 0x52, 0x80, 0xa9, 0xb5, 0xd8, 0xc9, 0xe3, 0xc4, 0x23, 0x39, 0xc6, - 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39, - 0x86, 0x1b, 0x8f, 0xe5, 0x18, 0xa2, 0xf4, 0xd2, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, - 0x73, 0xf5, 0x33, 0xf3, 0x32, 0x4b, 0x32, 0x13, 0x75, 0x73, 0x12, 0x93, 0x8a, 0xa1, 0x6c, 0xfd, - 0x0a, 0x7d, 0x90, 0xdf, 0xc1, 0xde, 0x05, 0xfb, 0x35, 0x89, 0x0d, 0xec, 0x59, 0x63, 0x40, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xe0, 0x8d, 0xed, 0x40, 0x6c, 0x01, 0x00, 0x00, + 0xb0, 0x1a, 0xad, 0x14, 0x24, 0x52, 0x80, 0x4d, 0xaf, 0xc7, 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, 0xe9, 0xa5, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, + 0x67, 0xe6, 0x65, 0x96, 0x64, 0x26, 0xea, 0xe6, 0x24, 0x26, 0x15, 0x43, 0xd9, 0xfa, 0x15, 0xfa, + 0x20, 0xcf, 0x83, 0xfd, 0x0b, 0xf6, 0x6c, 0x12, 0x1b, 0xd8, 0xb7, 0xc6, 0x80, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x47, 0xed, 0x68, 0x8b, 0x6d, 0x01, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { @@ -223,7 +223,7 @@ func (m *GenesisState) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PermissionedRelayers = append(m.PermissionedRelayers, PermissionedRelayer{}) + m.PermissionedRelayers = append(m.PermissionedRelayers, PermissionedRelayers{}) if err := m.PermissionedRelayers[len(m.PermissionedRelayers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/x/ibc/perm/types/key.go b/x/ibc/perm/types/key.go index 6abaa95e..59bf31d9 100644 --- a/x/ibc/perm/types/key.go +++ b/x/ibc/perm/types/key.go @@ -15,11 +15,11 @@ const ( ) var ( - // PermissionedRelayerPrefixKey defines the key to store the channel relayer in store - PermissionedRelayerPrefixKey = []byte{0x01} + // PermissionedRelayersPrefixKey defines the key to store the channel relayers in store + PermissionedRelayersPrefixKey = []byte{0x01} ) -// GetPermissionedRelayerKey return channel relayer key of the channel. -func GetPermissionedRelayerKey(channel string) []byte { - return append(PermissionedRelayerPrefixKey, []byte(channel)...) +// GetPermissionedRelayersKey return channel relayers key of the channel. +func GetPermissionedRelayersKey(channel string) []byte { + return append(PermissionedRelayersPrefixKey, []byte(channel)...) } diff --git a/x/ibc/perm/types/query.pb.go b/x/ibc/perm/types/query.pb.go index db38b2df..b920e31a 100644 --- a/x/ibc/perm/types/query.pb.go +++ b/x/ibc/perm/types/query.pb.go @@ -30,25 +30,29 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -// QueryPermissionedRelayerRequest is the request type for the Query/PermissionedRelayer RPC +// QueryPermissionedRelayersOfOneChannelRequest is the request type for the Query/PermissionedRelayer RPC // method -type QueryPermissionedRelayerRequest struct { +type QueryPermissionedRelayersByChannelRequest struct { PortId string `protobuf:"bytes,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` ChannelId string `protobuf:"bytes,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` } -func (m *QueryPermissionedRelayerRequest) Reset() { *m = QueryPermissionedRelayerRequest{} } -func (m *QueryPermissionedRelayerRequest) String() string { return proto.CompactTextString(m) } -func (*QueryPermissionedRelayerRequest) ProtoMessage() {} -func (*QueryPermissionedRelayerRequest) Descriptor() ([]byte, []int) { +func (m *QueryPermissionedRelayersByChannelRequest) Reset() { + *m = QueryPermissionedRelayersByChannelRequest{} +} +func (m *QueryPermissionedRelayersByChannelRequest) String() string { + return proto.CompactTextString(m) +} +func (*QueryPermissionedRelayersByChannelRequest) ProtoMessage() {} +func (*QueryPermissionedRelayersByChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor_835b754d3cf5eb3d, []int{0} } -func (m *QueryPermissionedRelayerRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryPermissionedRelayersByChannelRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryPermissionedRelayerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryPermissionedRelayersByChannelRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryPermissionedRelayerRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryPermissionedRelayersByChannelRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -58,26 +62,26 @@ func (m *QueryPermissionedRelayerRequest) XXX_Marshal(b []byte, deterministic bo return b[:n], nil } } -func (m *QueryPermissionedRelayerRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryPermissionedRelayerRequest.Merge(m, src) +func (m *QueryPermissionedRelayersByChannelRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPermissionedRelayersByChannelRequest.Merge(m, src) } -func (m *QueryPermissionedRelayerRequest) XXX_Size() int { +func (m *QueryPermissionedRelayersByChannelRequest) XXX_Size() int { return m.Size() } -func (m *QueryPermissionedRelayerRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryPermissionedRelayerRequest.DiscardUnknown(m) +func (m *QueryPermissionedRelayersByChannelRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPermissionedRelayersByChannelRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryPermissionedRelayerRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryPermissionedRelayersByChannelRequest proto.InternalMessageInfo -func (m *QueryPermissionedRelayerRequest) GetPortId() string { +func (m *QueryPermissionedRelayersByChannelRequest) GetPortId() string { if m != nil { return m.PortId } return "" } -func (m *QueryPermissionedRelayerRequest) GetChannelId() string { +func (m *QueryPermissionedRelayersByChannelRequest) GetChannelId() string { if m != nil { return m.ChannelId } @@ -86,23 +90,27 @@ func (m *QueryPermissionedRelayerRequest) GetChannelId() string { // QueryPermissionedRelayerResponse is the response type for the Query/PermissionedRelayer RPC // method. -type QueryPermissionedRelayerResponse struct { +type QueryPermissionedRelayersByChannelResponse struct { // class_trace returns the requested class id trace information. - PermissionedRelayer *PermissionedRelayer `protobuf:"bytes,1,opt,name=permissioned_relayer,json=permissionedRelayer,proto3" json:"permissioned_relayer,omitempty"` + PermissionedRelayers *PermissionedRelayers `protobuf:"bytes,1,opt,name=permissioned_relayers,json=permissionedRelayers,proto3" json:"permissioned_relayers,omitempty"` } -func (m *QueryPermissionedRelayerResponse) Reset() { *m = QueryPermissionedRelayerResponse{} } -func (m *QueryPermissionedRelayerResponse) String() string { return proto.CompactTextString(m) } -func (*QueryPermissionedRelayerResponse) ProtoMessage() {} -func (*QueryPermissionedRelayerResponse) Descriptor() ([]byte, []int) { +func (m *QueryPermissionedRelayersByChannelResponse) Reset() { + *m = QueryPermissionedRelayersByChannelResponse{} +} +func (m *QueryPermissionedRelayersByChannelResponse) String() string { + return proto.CompactTextString(m) +} +func (*QueryPermissionedRelayersByChannelResponse) ProtoMessage() {} +func (*QueryPermissionedRelayersByChannelResponse) Descriptor() ([]byte, []int) { return fileDescriptor_835b754d3cf5eb3d, []int{1} } -func (m *QueryPermissionedRelayerResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryPermissionedRelayersByChannelResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryPermissionedRelayerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryPermissionedRelayersByChannelResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryPermissionedRelayerResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryPermissionedRelayersByChannelResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -112,44 +120,44 @@ func (m *QueryPermissionedRelayerResponse) XXX_Marshal(b []byte, deterministic b return b[:n], nil } } -func (m *QueryPermissionedRelayerResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryPermissionedRelayerResponse.Merge(m, src) +func (m *QueryPermissionedRelayersByChannelResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryPermissionedRelayersByChannelResponse.Merge(m, src) } -func (m *QueryPermissionedRelayerResponse) XXX_Size() int { +func (m *QueryPermissionedRelayersByChannelResponse) XXX_Size() int { return m.Size() } -func (m *QueryPermissionedRelayerResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryPermissionedRelayerResponse.DiscardUnknown(m) +func (m *QueryPermissionedRelayersByChannelResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryPermissionedRelayersByChannelResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryPermissionedRelayerResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryPermissionedRelayersByChannelResponse proto.InternalMessageInfo -func (m *QueryPermissionedRelayerResponse) GetPermissionedRelayer() *PermissionedRelayer { +func (m *QueryPermissionedRelayersByChannelResponse) GetPermissionedRelayers() *PermissionedRelayers { if m != nil { - return m.PermissionedRelayer + return m.PermissionedRelayers } return nil } -// QueryPermissionedRelayersRequest is the request type for the Query/PermissionedRelayers RPC +// QueryAllPermissionedRelayersRequest is the request type for the Query/AllPermissionedRelayers RPC // method -type QueryPermissionedRelayersRequest struct { +type QueryAllPermissionedRelayersRequest struct { // pagination defines an optional pagination for the request. Pagination *query.PageRequest `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"` } -func (m *QueryPermissionedRelayersRequest) Reset() { *m = QueryPermissionedRelayersRequest{} } -func (m *QueryPermissionedRelayersRequest) String() string { return proto.CompactTextString(m) } -func (*QueryPermissionedRelayersRequest) ProtoMessage() {} -func (*QueryPermissionedRelayersRequest) Descriptor() ([]byte, []int) { +func (m *QueryAllPermissionedRelayersRequest) Reset() { *m = QueryAllPermissionedRelayersRequest{} } +func (m *QueryAllPermissionedRelayersRequest) String() string { return proto.CompactTextString(m) } +func (*QueryAllPermissionedRelayersRequest) ProtoMessage() {} +func (*QueryAllPermissionedRelayersRequest) Descriptor() ([]byte, []int) { return fileDescriptor_835b754d3cf5eb3d, []int{2} } -func (m *QueryPermissionedRelayersRequest) XXX_Unmarshal(b []byte) error { +func (m *QueryAllPermissionedRelayersRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryPermissionedRelayersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryAllPermissionedRelayersRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryPermissionedRelayersRequest.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryAllPermissionedRelayersRequest.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -159,46 +167,46 @@ func (m *QueryPermissionedRelayersRequest) XXX_Marshal(b []byte, deterministic b return b[:n], nil } } -func (m *QueryPermissionedRelayersRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryPermissionedRelayersRequest.Merge(m, src) +func (m *QueryAllPermissionedRelayersRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllPermissionedRelayersRequest.Merge(m, src) } -func (m *QueryPermissionedRelayersRequest) XXX_Size() int { +func (m *QueryAllPermissionedRelayersRequest) XXX_Size() int { return m.Size() } -func (m *QueryPermissionedRelayersRequest) XXX_DiscardUnknown() { - xxx_messageInfo_QueryPermissionedRelayersRequest.DiscardUnknown(m) +func (m *QueryAllPermissionedRelayersRequest) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllPermissionedRelayersRequest.DiscardUnknown(m) } -var xxx_messageInfo_QueryPermissionedRelayersRequest proto.InternalMessageInfo +var xxx_messageInfo_QueryAllPermissionedRelayersRequest proto.InternalMessageInfo -func (m *QueryPermissionedRelayersRequest) GetPagination() *query.PageRequest { +func (m *QueryAllPermissionedRelayersRequest) GetPagination() *query.PageRequest { if m != nil { return m.Pagination } return nil } -// QueryPermissionedRelayersResponse is the response type for the Query/PermissionedRelayers RPC +// QueryAllPermissionedRelayersResponse is the response type for the Query/AllPermissionedRelayers RPC // method. -type QueryPermissionedRelayersResponse struct { +type QueryAllPermissionedRelayersResponse struct { // class_trace returns the requested class id trace information. - PermissionedRelayers []PermissionedRelayer `protobuf:"bytes,1,rep,name=permissioned_relayers,json=permissionedRelayers,proto3" json:"permissioned_relayers"` + PermissionedRelayers []PermissionedRelayers `protobuf:"bytes,1,rep,name=permissioned_relayers,json=permissionedRelayers,proto3" json:"permissioned_relayers"` // pagination defines the pagination in the response. Pagination *query.PageResponse `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` } -func (m *QueryPermissionedRelayersResponse) Reset() { *m = QueryPermissionedRelayersResponse{} } -func (m *QueryPermissionedRelayersResponse) String() string { return proto.CompactTextString(m) } -func (*QueryPermissionedRelayersResponse) ProtoMessage() {} -func (*QueryPermissionedRelayersResponse) Descriptor() ([]byte, []int) { +func (m *QueryAllPermissionedRelayersResponse) Reset() { *m = QueryAllPermissionedRelayersResponse{} } +func (m *QueryAllPermissionedRelayersResponse) String() string { return proto.CompactTextString(m) } +func (*QueryAllPermissionedRelayersResponse) ProtoMessage() {} +func (*QueryAllPermissionedRelayersResponse) Descriptor() ([]byte, []int) { return fileDescriptor_835b754d3cf5eb3d, []int{3} } -func (m *QueryPermissionedRelayersResponse) XXX_Unmarshal(b []byte) error { +func (m *QueryAllPermissionedRelayersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *QueryPermissionedRelayersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *QueryAllPermissionedRelayersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_QueryPermissionedRelayersResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_QueryAllPermissionedRelayersResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -208,26 +216,26 @@ func (m *QueryPermissionedRelayersResponse) XXX_Marshal(b []byte, deterministic return b[:n], nil } } -func (m *QueryPermissionedRelayersResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryPermissionedRelayersResponse.Merge(m, src) +func (m *QueryAllPermissionedRelayersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_QueryAllPermissionedRelayersResponse.Merge(m, src) } -func (m *QueryPermissionedRelayersResponse) XXX_Size() int { +func (m *QueryAllPermissionedRelayersResponse) XXX_Size() int { return m.Size() } -func (m *QueryPermissionedRelayersResponse) XXX_DiscardUnknown() { - xxx_messageInfo_QueryPermissionedRelayersResponse.DiscardUnknown(m) +func (m *QueryAllPermissionedRelayersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_QueryAllPermissionedRelayersResponse.DiscardUnknown(m) } -var xxx_messageInfo_QueryPermissionedRelayersResponse proto.InternalMessageInfo +var xxx_messageInfo_QueryAllPermissionedRelayersResponse proto.InternalMessageInfo -func (m *QueryPermissionedRelayersResponse) GetPermissionedRelayers() []PermissionedRelayer { +func (m *QueryAllPermissionedRelayersResponse) GetPermissionedRelayers() []PermissionedRelayers { if m != nil { return m.PermissionedRelayers } return nil } -func (m *QueryPermissionedRelayersResponse) GetPagination() *query.PageResponse { +func (m *QueryAllPermissionedRelayersResponse) GetPagination() *query.PageResponse { if m != nil { return m.Pagination } @@ -235,10 +243,10 @@ func (m *QueryPermissionedRelayersResponse) GetPagination() *query.PageResponse } func init() { - proto.RegisterType((*QueryPermissionedRelayerRequest)(nil), "ibc.applications.perm.v1.QueryPermissionedRelayerRequest") - proto.RegisterType((*QueryPermissionedRelayerResponse)(nil), "ibc.applications.perm.v1.QueryPermissionedRelayerResponse") - proto.RegisterType((*QueryPermissionedRelayersRequest)(nil), "ibc.applications.perm.v1.QueryPermissionedRelayersRequest") - proto.RegisterType((*QueryPermissionedRelayersResponse)(nil), "ibc.applications.perm.v1.QueryPermissionedRelayersResponse") + proto.RegisterType((*QueryPermissionedRelayersByChannelRequest)(nil), "ibc.applications.perm.v1.QueryPermissionedRelayersByChannelRequest") + proto.RegisterType((*QueryPermissionedRelayersByChannelResponse)(nil), "ibc.applications.perm.v1.QueryPermissionedRelayersByChannelResponse") + proto.RegisterType((*QueryAllPermissionedRelayersRequest)(nil), "ibc.applications.perm.v1.QueryAllPermissionedRelayersRequest") + proto.RegisterType((*QueryAllPermissionedRelayersResponse)(nil), "ibc.applications.perm.v1.QueryAllPermissionedRelayersResponse") } func init() { @@ -246,38 +254,39 @@ func init() { } var fileDescriptor_835b754d3cf5eb3d = []byte{ - // 493 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0x4f, 0x6f, 0xd3, 0x30, - 0x18, 0xc6, 0xeb, 0x0e, 0x86, 0x66, 0x6e, 0x5e, 0x11, 0x55, 0x34, 0xb2, 0x12, 0x21, 0x40, 0x48, - 0xb3, 0x95, 0xed, 0x34, 0xb8, 0xed, 0x00, 0xec, 0x36, 0x72, 0x83, 0xcb, 0x70, 0x52, 0x2b, 0x35, - 0x4a, 0x6d, 0x2f, 0x76, 0x2b, 0xaa, 0x69, 0x17, 0x84, 0xc4, 0x15, 0x89, 0x8f, 0xc2, 0x87, 0x60, - 0xc7, 0x49, 0x48, 0x88, 0x13, 0x42, 0x2d, 0x1f, 0x04, 0xc5, 0x71, 0xd4, 0x20, 0x12, 0x2a, 0x7a, - 0x4b, 0xfc, 0xfe, 0x7b, 0x7e, 0xaf, 0x1f, 0x19, 0xde, 0xe3, 0x71, 0x42, 0xa8, 0x52, 0x19, 0x4f, - 0xa8, 0xe1, 0x52, 0x68, 0xa2, 0x58, 0x3e, 0x26, 0xd3, 0x90, 0x9c, 0x4d, 0x58, 0x3e, 0xc3, 0x2a, - 0x97, 0x46, 0xa2, 0x3e, 0x8f, 0x13, 0x5c, 0xcf, 0xc2, 0x45, 0x16, 0x9e, 0x86, 0x5e, 0x2f, 0x95, - 0xa9, 0xb4, 0x49, 0xa4, 0xf8, 0x2a, 0xf3, 0xbd, 0x9d, 0x54, 0xca, 0x34, 0x63, 0x84, 0x2a, 0x4e, - 0xa8, 0x10, 0xd2, 0x54, 0x55, 0x36, 0xfa, 0x28, 0x91, 0x7a, 0x2c, 0x35, 0x89, 0xa9, 0x66, 0xe5, - 0x18, 0x32, 0x0d, 0x63, 0x66, 0x68, 0x48, 0x14, 0x4d, 0xb9, 0xb0, 0xc9, 0x2e, 0xb7, 0x5d, 0x9f, - 0x99, 0x29, 0xe6, 0x3a, 0x06, 0x2f, 0xe1, 0xee, 0x8b, 0xa2, 0xcf, 0x09, 0xcb, 0xc7, 0x5c, 0x6b, - 0x2e, 0x05, 0x1b, 0x46, 0x2c, 0xa3, 0x33, 0x96, 0x47, 0xec, 0x6c, 0xc2, 0xb4, 0x41, 0xb7, 0xe1, - 0x0d, 0x25, 0x73, 0x73, 0xca, 0x87, 0x7d, 0x30, 0x00, 0x0f, 0xb7, 0xa2, 0xcd, 0xe2, 0xf7, 0x78, - 0x88, 0xee, 0x40, 0x98, 0x8c, 0xa8, 0x10, 0x2c, 0x2b, 0x62, 0x5d, 0x1b, 0xdb, 0x72, 0x27, 0xc7, - 0xc3, 0xe0, 0x3d, 0x80, 0x83, 0xf6, 0xde, 0x5a, 0x49, 0xa1, 0x19, 0x7a, 0x0d, 0x7b, 0xaa, 0x16, - 0x3e, 0xcd, 0xcb, 0xb8, 0x9d, 0x74, 0x73, 0x7f, 0x0f, 0xb7, 0xad, 0x0f, 0x37, 0x35, 0xdd, 0x56, - 0x7f, 0x1f, 0x06, 0x6f, 0xda, 0x55, 0xe8, 0x0a, 0xf1, 0x29, 0x84, 0xcb, 0xfd, 0xb9, 0xd9, 0xf7, - 0x71, 0xb9, 0x6c, 0x5c, 0x2c, 0x1b, 0x97, 0x77, 0xea, 0x96, 0x8d, 0x4f, 0x68, 0xca, 0x5c, 0x6d, - 0x54, 0xab, 0x0c, 0xbe, 0x01, 0x78, 0xf7, 0x1f, 0xc3, 0x1c, 0xf3, 0x08, 0xde, 0x6a, 0x62, 0xd6, - 0x7d, 0x30, 0xd8, 0xf8, 0x6f, 0xe8, 0xa3, 0x6b, 0x97, 0x3f, 0x76, 0x3b, 0x51, 0xaf, 0x01, 0x5d, - 0xa3, 0x67, 0x7f, 0x70, 0x75, 0x2d, 0xd7, 0x83, 0x95, 0x5c, 0xa5, 0xcc, 0x3a, 0xd8, 0xfe, 0x87, - 0x0d, 0x78, 0xdd, 0x82, 0xa1, 0x2f, 0x00, 0x6e, 0x37, 0xc8, 0x40, 0x87, 0xed, 0xaa, 0x57, 0x18, - 0xcc, 0x7b, 0xbc, 0x4e, 0x69, 0x29, 0x32, 0x38, 0x7c, 0xf7, 0xf5, 0xd7, 0xa7, 0xee, 0x01, 0x0a, - 0x89, 0xb3, 0xfb, 0xd2, 0xe6, 0xd5, 0x5a, 0xc9, 0xb9, 0xb3, 0xef, 0x05, 0x39, 0x5f, 0xfa, 0xf5, - 0x02, 0x7d, 0x06, 0xb0, 0xd7, 0x74, 0x4f, 0x68, 0x0d, 0x3d, 0x95, 0x93, 0xbc, 0x27, 0x6b, 0xd5, - 0x3a, 0x98, 0xc0, 0xc2, 0xec, 0x20, 0xaf, 0x1d, 0xe6, 0xe8, 0xf9, 0xe5, 0xdc, 0x07, 0x57, 0x73, - 0x1f, 0xfc, 0x9c, 0xfb, 0xe0, 0xe3, 0xc2, 0xef, 0x5c, 0x2d, 0xfc, 0xce, 0xf7, 0x85, 0xdf, 0x79, - 0x85, 0x53, 0x6e, 0x46, 0x93, 0x18, 0x27, 0x72, 0x4c, 0xb8, 0xe0, 0x86, 0xd3, 0xbd, 0x8c, 0xc6, - 0xda, 0x7d, 0x93, 0xb7, 0xb6, 0xa9, 0xed, 0x67, 0x1f, 0x80, 0x78, 0xd3, 0xbe, 0x00, 0x07, 0xbf, - 0x03, 0x00, 0x00, 0xff, 0xff, 0x01, 0xab, 0xe6, 0x8d, 0xc9, 0x04, 0x00, 0x00, + // 502 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x4d, 0x6e, 0xd4, 0x30, + 0x14, 0xc7, 0xc7, 0x53, 0x28, 0xaa, 0xd9, 0x59, 0x45, 0xad, 0xa2, 0x36, 0xa0, 0x50, 0xf1, 0x51, + 0x09, 0x5b, 0x69, 0x57, 0x2c, 0x40, 0x62, 0x8a, 0x80, 0xee, 0x4a, 0x96, 0x6c, 0x2a, 0xc7, 0x63, + 0xa5, 0x96, 0x12, 0xdb, 0x8d, 0x3d, 0x23, 0x46, 0x55, 0x37, 0x9c, 0x00, 0xc4, 0x3d, 0x38, 0x01, + 0x07, 0xe8, 0xb2, 0x12, 0x1b, 0xc4, 0x02, 0xa1, 0x19, 0xb8, 0x07, 0x8a, 0xe3, 0x6a, 0x82, 0x94, + 0x4c, 0x0b, 0xec, 0x12, 0xbf, 0xff, 0xfb, 0xf8, 0xbd, 0xf7, 0x6c, 0xb8, 0x25, 0x52, 0x46, 0xa8, + 0xd6, 0xb9, 0x60, 0xd4, 0x0a, 0x25, 0x0d, 0xd1, 0xbc, 0x2c, 0xc8, 0x38, 0x26, 0xc7, 0x23, 0x5e, + 0x4e, 0xb0, 0x2e, 0x95, 0x55, 0x68, 0x5d, 0xa4, 0x0c, 0x37, 0x55, 0xb8, 0x52, 0xe1, 0x71, 0x1c, + 0xac, 0x66, 0x2a, 0x53, 0x4e, 0x44, 0xaa, 0xaf, 0x5a, 0x1f, 0x6c, 0x64, 0x4a, 0x65, 0x39, 0x27, + 0x54, 0x0b, 0x42, 0xa5, 0x54, 0xf6, 0xc2, 0xcb, 0x59, 0xb7, 0x99, 0x32, 0x85, 0x32, 0x24, 0xa5, + 0x86, 0xd7, 0x69, 0xc8, 0x38, 0x4e, 0xb9, 0xa5, 0x31, 0xd1, 0x34, 0x13, 0xd2, 0x89, 0xbd, 0xb6, + 0xbb, 0x3e, 0x3b, 0xd1, 0xdc, 0x47, 0x8c, 0x18, 0x7c, 0xf8, 0xba, 0x8a, 0x73, 0xc0, 0xcb, 0x42, + 0x18, 0x23, 0x94, 0xe4, 0xc3, 0x84, 0xe7, 0x74, 0xc2, 0x4b, 0x33, 0x98, 0xec, 0x1d, 0x51, 0x29, + 0x79, 0x9e, 0xf0, 0xe3, 0x11, 0x37, 0x16, 0xad, 0xc1, 0x1b, 0x5a, 0x95, 0xf6, 0x50, 0x0c, 0xd7, + 0xc1, 0x1d, 0xf0, 0x60, 0x25, 0x59, 0xae, 0x7e, 0xf7, 0x87, 0x68, 0x13, 0x42, 0x56, 0x4b, 0x2b, + 0x5b, 0xdf, 0xd9, 0x56, 0xfc, 0xc9, 0xfe, 0x30, 0xfa, 0x00, 0xe0, 0xf6, 0x55, 0xb2, 0x18, 0xad, + 0xa4, 0xe1, 0x88, 0xc1, 0x5b, 0xba, 0x21, 0x3c, 0x2c, 0xbd, 0xd2, 0x25, 0xbd, 0xb9, 0x83, 0x71, + 0x57, 0x4f, 0x71, 0x5b, 0xfc, 0x64, 0x55, 0xb7, 0x9c, 0x46, 0x05, 0xbc, 0xeb, 0x4a, 0x7a, 0x96, + 0xe7, 0xad, 0x5e, 0x1e, 0xf9, 0x05, 0x84, 0xf3, 0xce, 0xfa, 0x02, 0xee, 0xe1, 0x7a, 0x0c, 0xb8, + 0x1a, 0x03, 0xae, 0xa7, 0xed, 0xc7, 0x80, 0x0f, 0x68, 0xc6, 0xbd, 0x6f, 0xd2, 0xf0, 0x8c, 0xbe, + 0x01, 0xb8, 0xb5, 0x38, 0x9f, 0x87, 0x17, 0xdd, 0xf0, 0x4b, 0x7f, 0x0f, 0x3f, 0xb8, 0x76, 0xf6, + 0xfd, 0x76, 0xaf, 0xbd, 0x05, 0xe8, 0xe5, 0x1f, 0x6c, 0x7d, 0xc7, 0x76, 0xff, 0x52, 0xb6, 0xba, + 0xce, 0x26, 0xdc, 0xce, 0xa7, 0x25, 0x78, 0xdd, 0xc1, 0xa1, 0x5f, 0x00, 0x6e, 0x2e, 0x1c, 0x32, + 0xda, 0xeb, 0x06, 0xb8, 0xf2, 0x22, 0x06, 0xcf, 0xff, 0x2f, 0x48, 0x8d, 0x10, 0x3d, 0x7e, 0xf7, + 0xe5, 0xe7, 0xc7, 0xfe, 0x2e, 0x8a, 0x89, 0xbf, 0x2a, 0xf3, 0x2b, 0x72, 0xd1, 0x75, 0x72, 0xe2, + 0x17, 0xfe, 0x94, 0x9c, 0xcc, 0x37, 0xfc, 0x14, 0x7d, 0x06, 0x70, 0xad, 0x63, 0x92, 0xe8, 0xc9, + 0x25, 0xc5, 0x2d, 0xde, 0xb8, 0xe0, 0xe9, 0xbf, 0xba, 0x7b, 0xaa, 0xc8, 0x51, 0x6d, 0xa0, 0xa0, + 0x9b, 0x6a, 0xf0, 0xea, 0x6c, 0x1a, 0x82, 0xf3, 0x69, 0x08, 0x7e, 0x4c, 0x43, 0xf0, 0x7e, 0x16, + 0xf6, 0xce, 0x67, 0x61, 0xef, 0xeb, 0x2c, 0xec, 0xbd, 0xc1, 0x99, 0xb0, 0x47, 0xa3, 0x14, 0x33, + 0x55, 0x10, 0x21, 0x85, 0x15, 0xf4, 0x51, 0x4e, 0x53, 0xe3, 0xbf, 0xc9, 0x5b, 0x17, 0xd4, 0xc5, + 0x73, 0xaf, 0x48, 0xba, 0xec, 0x9e, 0x91, 0xdd, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x0e, + 0x6b, 0x78, 0x0e, 0x05, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -292,10 +301,10 @@ 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 { - // PermissionedRelayer queries a permissioned ibc relayer for the specific channel. - PermissionedRelayer(ctx context.Context, in *QueryPermissionedRelayerRequest, opts ...grpc.CallOption) (*QueryPermissionedRelayerResponse, error) - // PermissionedRelayers queries a permissioned ibc relayers. - PermissionedRelayers(ctx context.Context, in *QueryPermissionedRelayersRequest, opts ...grpc.CallOption) (*QueryPermissionedRelayersResponse, error) + // PermissionedRelayersByChannel queries a set of permissioned ibc relayers for the specific channel. + PermissionedRelayersByChannel(ctx context.Context, in *QueryPermissionedRelayersByChannelRequest, opts ...grpc.CallOption) (*QueryPermissionedRelayersByChannelResponse, error) + // AllPermissionedRelayers queries all sets of permissioned relayers for all channels. + AllPermissionedRelayers(ctx context.Context, in *QueryAllPermissionedRelayersRequest, opts ...grpc.CallOption) (*QueryAllPermissionedRelayersResponse, error) } type queryClient struct { @@ -306,18 +315,18 @@ func NewQueryClient(cc grpc1.ClientConn) QueryClient { return &queryClient{cc} } -func (c *queryClient) PermissionedRelayer(ctx context.Context, in *QueryPermissionedRelayerRequest, opts ...grpc.CallOption) (*QueryPermissionedRelayerResponse, error) { - out := new(QueryPermissionedRelayerResponse) - err := c.cc.Invoke(ctx, "/ibc.applications.perm.v1.Query/PermissionedRelayer", in, out, opts...) +func (c *queryClient) PermissionedRelayersByChannel(ctx context.Context, in *QueryPermissionedRelayersByChannelRequest, opts ...grpc.CallOption) (*QueryPermissionedRelayersByChannelResponse, error) { + out := new(QueryPermissionedRelayersByChannelResponse) + err := c.cc.Invoke(ctx, "/ibc.applications.perm.v1.Query/PermissionedRelayersByChannel", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *queryClient) PermissionedRelayers(ctx context.Context, in *QueryPermissionedRelayersRequest, opts ...grpc.CallOption) (*QueryPermissionedRelayersResponse, error) { - out := new(QueryPermissionedRelayersResponse) - err := c.cc.Invoke(ctx, "/ibc.applications.perm.v1.Query/PermissionedRelayers", in, out, opts...) +func (c *queryClient) AllPermissionedRelayers(ctx context.Context, in *QueryAllPermissionedRelayersRequest, opts ...grpc.CallOption) (*QueryAllPermissionedRelayersResponse, error) { + out := new(QueryAllPermissionedRelayersResponse) + err := c.cc.Invoke(ctx, "/ibc.applications.perm.v1.Query/AllPermissionedRelayers", in, out, opts...) if err != nil { return nil, err } @@ -326,59 +335,59 @@ func (c *queryClient) PermissionedRelayers(ctx context.Context, in *QueryPermiss // QueryServer is the server API for Query service. type QueryServer interface { - // PermissionedRelayer queries a permissioned ibc relayer for the specific channel. - PermissionedRelayer(context.Context, *QueryPermissionedRelayerRequest) (*QueryPermissionedRelayerResponse, error) - // PermissionedRelayers queries a permissioned ibc relayers. - PermissionedRelayers(context.Context, *QueryPermissionedRelayersRequest) (*QueryPermissionedRelayersResponse, error) + // PermissionedRelayersByChannel queries a set of permissioned ibc relayers for the specific channel. + PermissionedRelayersByChannel(context.Context, *QueryPermissionedRelayersByChannelRequest) (*QueryPermissionedRelayersByChannelResponse, error) + // AllPermissionedRelayers queries all sets of permissioned relayers for all channels. + AllPermissionedRelayers(context.Context, *QueryAllPermissionedRelayersRequest) (*QueryAllPermissionedRelayersResponse, error) } // UnimplementedQueryServer can be embedded to have forward compatible implementations. type UnimplementedQueryServer struct { } -func (*UnimplementedQueryServer) PermissionedRelayer(ctx context.Context, req *QueryPermissionedRelayerRequest) (*QueryPermissionedRelayerResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PermissionedRelayer not implemented") +func (*UnimplementedQueryServer) PermissionedRelayersByChannel(ctx context.Context, req *QueryPermissionedRelayersByChannelRequest) (*QueryPermissionedRelayersByChannelResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PermissionedRelayersByChannel not implemented") } -func (*UnimplementedQueryServer) PermissionedRelayers(ctx context.Context, req *QueryPermissionedRelayersRequest) (*QueryPermissionedRelayersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PermissionedRelayers not implemented") +func (*UnimplementedQueryServer) AllPermissionedRelayers(ctx context.Context, req *QueryAllPermissionedRelayersRequest) (*QueryAllPermissionedRelayersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AllPermissionedRelayers not implemented") } func RegisterQueryServer(s grpc1.Server, srv QueryServer) { s.RegisterService(&_Query_serviceDesc, srv) } -func _Query_PermissionedRelayer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryPermissionedRelayerRequest) +func _Query_PermissionedRelayersByChannel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryPermissionedRelayersByChannelRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).PermissionedRelayer(ctx, in) + return srv.(QueryServer).PermissionedRelayersByChannel(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/ibc.applications.perm.v1.Query/PermissionedRelayer", + FullMethod: "/ibc.applications.perm.v1.Query/PermissionedRelayersByChannel", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).PermissionedRelayer(ctx, req.(*QueryPermissionedRelayerRequest)) + return srv.(QueryServer).PermissionedRelayersByChannel(ctx, req.(*QueryPermissionedRelayersByChannelRequest)) } return interceptor(ctx, in, info, handler) } -func _Query_PermissionedRelayers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueryPermissionedRelayersRequest) +func _Query_AllPermissionedRelayers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryAllPermissionedRelayersRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(QueryServer).PermissionedRelayers(ctx, in) + return srv.(QueryServer).AllPermissionedRelayers(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/ibc.applications.perm.v1.Query/PermissionedRelayers", + FullMethod: "/ibc.applications.perm.v1.Query/AllPermissionedRelayers", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(QueryServer).PermissionedRelayers(ctx, req.(*QueryPermissionedRelayersRequest)) + return srv.(QueryServer).AllPermissionedRelayers(ctx, req.(*QueryAllPermissionedRelayersRequest)) } return interceptor(ctx, in, info, handler) } @@ -388,19 +397,19 @@ var _Query_serviceDesc = grpc.ServiceDesc{ HandlerType: (*QueryServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "PermissionedRelayer", - Handler: _Query_PermissionedRelayer_Handler, + MethodName: "PermissionedRelayersByChannel", + Handler: _Query_PermissionedRelayersByChannel_Handler, }, { - MethodName: "PermissionedRelayers", - Handler: _Query_PermissionedRelayers_Handler, + MethodName: "AllPermissionedRelayers", + Handler: _Query_AllPermissionedRelayers_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "ibc/applications/perm/v1/query.proto", } -func (m *QueryPermissionedRelayerRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryPermissionedRelayersByChannelRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -410,12 +419,12 @@ func (m *QueryPermissionedRelayerRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryPermissionedRelayerRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryPermissionedRelayersByChannelRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryPermissionedRelayerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryPermissionedRelayersByChannelRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -437,7 +446,7 @@ func (m *QueryPermissionedRelayerRequest) MarshalToSizedBuffer(dAtA []byte) (int return len(dAtA) - i, nil } -func (m *QueryPermissionedRelayerResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryPermissionedRelayersByChannelResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -447,19 +456,19 @@ func (m *QueryPermissionedRelayerResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryPermissionedRelayerResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryPermissionedRelayersByChannelResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryPermissionedRelayerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryPermissionedRelayersByChannelResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if m.PermissionedRelayer != nil { + if m.PermissionedRelayers != nil { { - size, err := m.PermissionedRelayer.MarshalToSizedBuffer(dAtA[:i]) + size, err := m.PermissionedRelayers.MarshalToSizedBuffer(dAtA[:i]) if err != nil { return 0, err } @@ -472,7 +481,7 @@ func (m *QueryPermissionedRelayerResponse) MarshalToSizedBuffer(dAtA []byte) (in return len(dAtA) - i, nil } -func (m *QueryPermissionedRelayersRequest) Marshal() (dAtA []byte, err error) { +func (m *QueryAllPermissionedRelayersRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -482,12 +491,12 @@ func (m *QueryPermissionedRelayersRequest) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryPermissionedRelayersRequest) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryAllPermissionedRelayersRequest) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryPermissionedRelayersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryAllPermissionedRelayersRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -507,7 +516,7 @@ func (m *QueryPermissionedRelayersRequest) MarshalToSizedBuffer(dAtA []byte) (in return len(dAtA) - i, nil } -func (m *QueryPermissionedRelayersResponse) Marshal() (dAtA []byte, err error) { +func (m *QueryAllPermissionedRelayersResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -517,12 +526,12 @@ func (m *QueryPermissionedRelayersResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *QueryPermissionedRelayersResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *QueryAllPermissionedRelayersResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *QueryPermissionedRelayersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *QueryAllPermissionedRelayersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -567,7 +576,7 @@ func encodeVarintQuery(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *QueryPermissionedRelayerRequest) Size() (n int) { +func (m *QueryPermissionedRelayersByChannelRequest) Size() (n int) { if m == nil { return 0 } @@ -584,20 +593,20 @@ func (m *QueryPermissionedRelayerRequest) Size() (n int) { return n } -func (m *QueryPermissionedRelayerResponse) Size() (n int) { +func (m *QueryPermissionedRelayersByChannelResponse) Size() (n int) { if m == nil { return 0 } var l int _ = l - if m.PermissionedRelayer != nil { - l = m.PermissionedRelayer.Size() + if m.PermissionedRelayers != nil { + l = m.PermissionedRelayers.Size() n += 1 + l + sovQuery(uint64(l)) } return n } -func (m *QueryPermissionedRelayersRequest) Size() (n int) { +func (m *QueryAllPermissionedRelayersRequest) Size() (n int) { if m == nil { return 0 } @@ -610,7 +619,7 @@ func (m *QueryPermissionedRelayersRequest) Size() (n int) { return n } -func (m *QueryPermissionedRelayersResponse) Size() (n int) { +func (m *QueryAllPermissionedRelayersResponse) Size() (n int) { if m == nil { return 0 } @@ -635,7 +644,7 @@ func sovQuery(x uint64) (n int) { func sozQuery(x uint64) (n int) { return sovQuery(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *QueryPermissionedRelayerRequest) Unmarshal(dAtA []byte) error { +func (m *QueryPermissionedRelayersByChannelRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -658,10 +667,10 @@ func (m *QueryPermissionedRelayerRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPermissionedRelayerRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPermissionedRelayersByChannelRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPermissionedRelayerRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPermissionedRelayersByChannelRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -749,7 +758,7 @@ func (m *QueryPermissionedRelayerRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPermissionedRelayerResponse) Unmarshal(dAtA []byte) error { +func (m *QueryPermissionedRelayersByChannelResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -772,15 +781,15 @@ func (m *QueryPermissionedRelayerResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPermissionedRelayerResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryPermissionedRelayersByChannelResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPermissionedRelayerResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryPermissionedRelayersByChannelResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PermissionedRelayer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field PermissionedRelayers", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -807,10 +816,10 @@ func (m *QueryPermissionedRelayerResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.PermissionedRelayer == nil { - m.PermissionedRelayer = &PermissionedRelayer{} + if m.PermissionedRelayers == nil { + m.PermissionedRelayers = &PermissionedRelayers{} } - if err := m.PermissionedRelayer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + if err := m.PermissionedRelayers.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex @@ -835,7 +844,7 @@ func (m *QueryPermissionedRelayerResponse) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPermissionedRelayersRequest) Unmarshal(dAtA []byte) error { +func (m *QueryAllPermissionedRelayersRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -858,10 +867,10 @@ func (m *QueryPermissionedRelayersRequest) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPermissionedRelayersRequest: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAllPermissionedRelayersRequest: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPermissionedRelayersRequest: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAllPermissionedRelayersRequest: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -921,7 +930,7 @@ func (m *QueryPermissionedRelayersRequest) Unmarshal(dAtA []byte) error { } return nil } -func (m *QueryPermissionedRelayersResponse) Unmarshal(dAtA []byte) error { +func (m *QueryAllPermissionedRelayersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -944,10 +953,10 @@ func (m *QueryPermissionedRelayersResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: QueryPermissionedRelayersResponse: wiretype end group for non-group") + return fmt.Errorf("proto: QueryAllPermissionedRelayersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: QueryPermissionedRelayersResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: QueryAllPermissionedRelayersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -979,7 +988,7 @@ func (m *QueryPermissionedRelayersResponse) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.PermissionedRelayers = append(m.PermissionedRelayers, PermissionedRelayer{}) + m.PermissionedRelayers = append(m.PermissionedRelayers, PermissionedRelayers{}) if err := m.PermissionedRelayers[len(m.PermissionedRelayers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } diff --git a/x/ibc/perm/types/query.pb.gw.go b/x/ibc/perm/types/query.pb.gw.go index d49755e6..5a434dce 100644 --- a/x/ibc/perm/types/query.pb.gw.go +++ b/x/ibc/perm/types/query.pb.gw.go @@ -33,8 +33,8 @@ var _ = utilities.NewDoubleArray var _ = descriptor.ForMessage var _ = metadata.Join -func request_Query_PermissionedRelayer_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryPermissionedRelayerRequest +func request_Query_PermissionedRelayersByChannel_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryPermissionedRelayersByChannelRequest var metadata runtime.ServerMetadata var ( @@ -66,13 +66,13 @@ func request_Query_PermissionedRelayer_0(ctx context.Context, marshaler runtime. return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "channel_id", err) } - msg, err := client.PermissionedRelayer(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.PermissionedRelayersByChannel(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_Query_PermissionedRelayer_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryPermissionedRelayerRequest +func local_request_Query_PermissionedRelayersByChannel_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryPermissionedRelayersByChannelRequest var metadata runtime.ServerMetadata var ( @@ -104,43 +104,43 @@ func local_request_Query_PermissionedRelayer_0(ctx context.Context, marshaler ru return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "channel_id", err) } - msg, err := server.PermissionedRelayer(ctx, &protoReq) + msg, err := server.PermissionedRelayersByChannel(ctx, &protoReq) return msg, metadata, err } var ( - filter_Query_PermissionedRelayers_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_Query_AllPermissionedRelayers_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_Query_PermissionedRelayers_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryPermissionedRelayersRequest +func request_Query_AllPermissionedRelayers_0(ctx context.Context, marshaler runtime.Marshaler, client QueryClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAllPermissionedRelayersRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_PermissionedRelayers_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_AllPermissionedRelayers_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.PermissionedRelayers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.AllPermissionedRelayers(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_Query_PermissionedRelayers_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq QueryPermissionedRelayersRequest +func local_request_Query_AllPermissionedRelayers_0(ctx context.Context, marshaler runtime.Marshaler, server QueryServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq QueryAllPermissionedRelayersRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_PermissionedRelayers_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Query_AllPermissionedRelayers_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.PermissionedRelayers(ctx, &protoReq) + msg, err := server.AllPermissionedRelayers(ctx, &protoReq) return msg, metadata, err } @@ -151,7 +151,7 @@ func local_request_Query_PermissionedRelayers_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_PermissionedRelayer_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_PermissionedRelayersByChannel_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -162,7 +162,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_Query_PermissionedRelayer_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_Query_PermissionedRelayersByChannel_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 { @@ -170,11 +170,11 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } - forward_Query_PermissionedRelayer_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_PermissionedRelayersByChannel_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_Query_PermissionedRelayers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_AllPermissionedRelayers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream @@ -185,7 +185,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_Query_PermissionedRelayers_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_Query_AllPermissionedRelayers_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 { @@ -193,7 +193,7 @@ func RegisterQueryHandlerServer(ctx context.Context, mux *runtime.ServeMux, serv return } - forward_Query_PermissionedRelayers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_AllPermissionedRelayers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -238,7 +238,7 @@ 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_PermissionedRelayer_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_PermissionedRelayersByChannel_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) @@ -247,18 +247,18 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_Query_PermissionedRelayer_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_Query_PermissionedRelayersByChannel_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_PermissionedRelayer_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_PermissionedRelayersByChannel_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_Query_PermissionedRelayers_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_Query_AllPermissionedRelayers_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) @@ -267,14 +267,14 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_Query_PermissionedRelayers_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_Query_AllPermissionedRelayers_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_PermissionedRelayers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_Query_AllPermissionedRelayers_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -282,13 +282,13 @@ func RegisterQueryHandlerClient(ctx context.Context, mux *runtime.ServeMux, clie } var ( - pattern_Query_PermissionedRelayer_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"ibc", "apps", "perm", "v1", "relayers", "port_id", "channel_id"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_PermissionedRelayersByChannel_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 1, 0, 4, 1, 5, 5, 1, 0, 4, 1, 5, 6}, []string{"ibc", "apps", "perm", "v1", "relayers", "port_id", "channel_id"}, "", runtime.AssumeColonVerbOpt(false))) - pattern_Query_PermissionedRelayers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"ibc", "apps", "perm", "v1", "relayers"}, "", runtime.AssumeColonVerbOpt(false))) + pattern_Query_AllPermissionedRelayers_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"ibc", "apps", "perm", "v1", "relayers"}, "", runtime.AssumeColonVerbOpt(false))) ) var ( - forward_Query_PermissionedRelayer_0 = runtime.ForwardResponseMessage + forward_Query_PermissionedRelayersByChannel_0 = runtime.ForwardResponseMessage - forward_Query_PermissionedRelayers_0 = runtime.ForwardResponseMessage + forward_Query_AllPermissionedRelayers_0 = runtime.ForwardResponseMessage ) diff --git a/x/ibc/perm/types/tx.go b/x/ibc/perm/types/tx.go index 7c3d71a8..ebbbf43a 100644 --- a/x/ibc/perm/types/tx.go +++ b/x/ibc/perm/types/tx.go @@ -11,18 +11,18 @@ import ( ) var ( - _ sdk.Msg = &MsgSetPermissionedRelayer{} + _ sdk.Msg = &MsgSetPermissionedRelayers{} ) // NewMsgSetPermissionedRelayer creates a new MsgSetPermissionedRelayer instance -func NewMsgSetPermissionedRelayer( - authority, portID, channelID, relayer string, -) *MsgSetPermissionedRelayer { - return &MsgSetPermissionedRelayer{ +func NewMsgSetPermissionedRelayers( + authority, portID, channelID string, relayers []string, +) *MsgSetPermissionedRelayers { + return &MsgSetPermissionedRelayers{ Authority: authority, PortId: portID, ChannelId: channelID, - Relayer: relayer, + Relayers: relayers, } } @@ -30,7 +30,7 @@ func NewMsgSetPermissionedRelayer( // NOTE: timeout height or timestamp values can be 0 to disable the timeout. // NOTE: The recipient addresses format is not validated as the format defined by // the chain is not known to IBC. -func (msg MsgSetPermissionedRelayer) Validate(ac address.Codec) error { +func (msg MsgSetPermissionedRelayers) Validate(ac address.Codec) error { if err := host.PortIdentifierValidator(msg.PortId); err != nil { return err } @@ -44,9 +44,11 @@ func (msg MsgSetPermissionedRelayer) Validate(ac address.Codec) error { return errors.Wrapf(sdkerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err) } - _, err = ac.StringToBytes(msg.Relayer) - if err != nil { - return errors.Wrapf(sdkerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err) + for _, relayer := range msg.Relayers { + _, err = ac.StringToBytes(relayer) + if err != nil { + return errors.Wrapf(sdkerrors.ErrInvalidAddress, "string could not be parsed as address: %v", err) + } } return nil diff --git a/x/ibc/perm/types/tx.pb.go b/x/ibc/perm/types/tx.pb.go index c3804607..067fbb00 100644 --- a/x/ibc/perm/types/tx.pb.go +++ b/x/ibc/perm/types/tx.pb.go @@ -31,29 +31,29 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package -// MsgSetPermissionedRelayer defines msg to set permissioned relyer for +// MsgSetPermissionedRelayers defines msg to set permissioned relyer for // the specific ibc channel. -type MsgSetPermissionedRelayer struct { +type MsgSetPermissionedRelayers struct { // authority is the address that controls the module // (defaults to x/gov unless overwritten). - Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty" yaml:"authority"` - PortId string `protobuf:"bytes,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty" yaml:"port_id"` - ChannelId string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty" yaml:"channel_id"` - Relayer string `protobuf:"bytes,4,opt,name=relayer,proto3" json:"relayer,omitempty" yaml:"relayer"` + Authority string `protobuf:"bytes,1,opt,name=authority,proto3" json:"authority,omitempty" yaml:"authority"` + PortId string `protobuf:"bytes,2,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty" yaml:"port_id"` + ChannelId string `protobuf:"bytes,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty" yaml:"channel_id"` + Relayers []string `protobuf:"bytes,4,rep,name=relayers,proto3" json:"relayers,omitempty" yaml:"relayers"` } -func (m *MsgSetPermissionedRelayer) Reset() { *m = MsgSetPermissionedRelayer{} } -func (m *MsgSetPermissionedRelayer) String() string { return proto.CompactTextString(m) } -func (*MsgSetPermissionedRelayer) ProtoMessage() {} -func (*MsgSetPermissionedRelayer) Descriptor() ([]byte, []int) { +func (m *MsgSetPermissionedRelayers) Reset() { *m = MsgSetPermissionedRelayers{} } +func (m *MsgSetPermissionedRelayers) String() string { return proto.CompactTextString(m) } +func (*MsgSetPermissionedRelayers) ProtoMessage() {} +func (*MsgSetPermissionedRelayers) Descriptor() ([]byte, []int) { return fileDescriptor_9ea92a5af9136e08, []int{0} } -func (m *MsgSetPermissionedRelayer) XXX_Unmarshal(b []byte) error { +func (m *MsgSetPermissionedRelayers) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgSetPermissionedRelayer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgSetPermissionedRelayers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgSetPermissionedRelayer.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgSetPermissionedRelayers.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -63,34 +63,34 @@ func (m *MsgSetPermissionedRelayer) XXX_Marshal(b []byte, deterministic bool) ([ return b[:n], nil } } -func (m *MsgSetPermissionedRelayer) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgSetPermissionedRelayer.Merge(m, src) +func (m *MsgSetPermissionedRelayers) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgSetPermissionedRelayers.Merge(m, src) } -func (m *MsgSetPermissionedRelayer) XXX_Size() int { +func (m *MsgSetPermissionedRelayers) XXX_Size() int { return m.Size() } -func (m *MsgSetPermissionedRelayer) XXX_DiscardUnknown() { - xxx_messageInfo_MsgSetPermissionedRelayer.DiscardUnknown(m) +func (m *MsgSetPermissionedRelayers) XXX_DiscardUnknown() { + xxx_messageInfo_MsgSetPermissionedRelayers.DiscardUnknown(m) } -var xxx_messageInfo_MsgSetPermissionedRelayer proto.InternalMessageInfo +var xxx_messageInfo_MsgSetPermissionedRelayers proto.InternalMessageInfo -// MsgSetPermissionedRelayerResponse defines the Msg/SetPermissionedRelayer response type. -type MsgSetPermissionedRelayerResponse struct { +// MsgSetPermissionedRelayersResponse defines the Msg/SetPermissionedRelayer response type. +type MsgSetPermissionedRelayersResponse struct { } -func (m *MsgSetPermissionedRelayerResponse) Reset() { *m = MsgSetPermissionedRelayerResponse{} } -func (m *MsgSetPermissionedRelayerResponse) String() string { return proto.CompactTextString(m) } -func (*MsgSetPermissionedRelayerResponse) ProtoMessage() {} -func (*MsgSetPermissionedRelayerResponse) Descriptor() ([]byte, []int) { +func (m *MsgSetPermissionedRelayersResponse) Reset() { *m = MsgSetPermissionedRelayersResponse{} } +func (m *MsgSetPermissionedRelayersResponse) String() string { return proto.CompactTextString(m) } +func (*MsgSetPermissionedRelayersResponse) ProtoMessage() {} +func (*MsgSetPermissionedRelayersResponse) Descriptor() ([]byte, []int) { return fileDescriptor_9ea92a5af9136e08, []int{1} } -func (m *MsgSetPermissionedRelayerResponse) XXX_Unmarshal(b []byte) error { +func (m *MsgSetPermissionedRelayersResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *MsgSetPermissionedRelayerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *MsgSetPermissionedRelayersResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_MsgSetPermissionedRelayerResponse.Marshal(b, m, deterministic) + return xxx_messageInfo_MsgSetPermissionedRelayersResponse.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -100,55 +100,56 @@ func (m *MsgSetPermissionedRelayerResponse) XXX_Marshal(b []byte, deterministic return b[:n], nil } } -func (m *MsgSetPermissionedRelayerResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgSetPermissionedRelayerResponse.Merge(m, src) +func (m *MsgSetPermissionedRelayersResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgSetPermissionedRelayersResponse.Merge(m, src) } -func (m *MsgSetPermissionedRelayerResponse) XXX_Size() int { +func (m *MsgSetPermissionedRelayersResponse) XXX_Size() int { return m.Size() } -func (m *MsgSetPermissionedRelayerResponse) XXX_DiscardUnknown() { - xxx_messageInfo_MsgSetPermissionedRelayerResponse.DiscardUnknown(m) +func (m *MsgSetPermissionedRelayersResponse) XXX_DiscardUnknown() { + xxx_messageInfo_MsgSetPermissionedRelayersResponse.DiscardUnknown(m) } -var xxx_messageInfo_MsgSetPermissionedRelayerResponse proto.InternalMessageInfo +var xxx_messageInfo_MsgSetPermissionedRelayersResponse proto.InternalMessageInfo func init() { - proto.RegisterType((*MsgSetPermissionedRelayer)(nil), "ibc.applications.perm.v1.MsgSetPermissionedRelayer") - proto.RegisterType((*MsgSetPermissionedRelayerResponse)(nil), "ibc.applications.perm.v1.MsgSetPermissionedRelayerResponse") + proto.RegisterType((*MsgSetPermissionedRelayers)(nil), "ibc.applications.perm.v1.MsgSetPermissionedRelayers") + proto.RegisterType((*MsgSetPermissionedRelayersResponse)(nil), "ibc.applications.perm.v1.MsgSetPermissionedRelayersResponse") } func init() { proto.RegisterFile("ibc/applications/perm/v1/tx.proto", fileDescriptor_9ea92a5af9136e08) } var fileDescriptor_9ea92a5af9136e08 = []byte{ - // 437 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x92, 0x31, 0x6f, 0xd4, 0x30, - 0x14, 0xc7, 0xe3, 0x16, 0x5a, 0x9d, 0x07, 0x44, 0xa3, 0x02, 0x69, 0x86, 0x84, 0x86, 0x05, 0x1d, - 0xad, 0xad, 0x52, 0x16, 0xca, 0x44, 0x27, 0x8a, 0x54, 0x09, 0xa5, 0x1b, 0x4b, 0xe5, 0x24, 0x96, - 0xcf, 0x52, 0x6c, 0x47, 0xb6, 0x5b, 0x35, 0x1b, 0x62, 0x42, 0x9d, 0x58, 0xd9, 0xfa, 0x11, 0x4e, - 0x82, 0x0f, 0xc1, 0x58, 0x31, 0x31, 0x9d, 0xd0, 0xdd, 0x70, 0xcc, 0xf7, 0x09, 0x50, 0xe2, 0x94, - 0x43, 0x48, 0x59, 0xba, 0x58, 0xef, 0xf9, 0xf7, 0xf7, 0xdf, 0x4f, 0xef, 0x3d, 0xb8, 0xcd, 0xb3, - 0x1c, 0x93, 0xaa, 0x2a, 0x79, 0x4e, 0x2c, 0x57, 0xd2, 0xe0, 0x8a, 0x6a, 0x81, 0xcf, 0xf7, 0xb0, - 0xbd, 0x40, 0x95, 0x56, 0x56, 0xf9, 0x01, 0xcf, 0x72, 0xf4, 0xaf, 0x04, 0x35, 0x12, 0x74, 0xbe, - 0x17, 0x6e, 0x10, 0xc1, 0xa5, 0xc2, 0xed, 0xe9, 0xc4, 0xe1, 0xa3, 0x5c, 0x19, 0xa1, 0x0c, 0x16, - 0x86, 0x35, 0x26, 0xc2, 0xb0, 0x0e, 0x6c, 0x39, 0x70, 0xda, 0x66, 0xd8, 0x25, 0x1d, 0xda, 0x64, - 0x8a, 0x29, 0x77, 0xdf, 0x44, 0xee, 0x36, 0xf9, 0xba, 0x02, 0xb7, 0x8e, 0x0d, 0x3b, 0xa1, 0xf6, - 0x1d, 0xd5, 0x82, 0x1b, 0xc3, 0x95, 0xa4, 0x45, 0x4a, 0x4b, 0x52, 0x53, 0xed, 0xbf, 0x85, 0x03, - 0x72, 0x66, 0x47, 0x4a, 0x73, 0x5b, 0x07, 0xe0, 0x31, 0x78, 0x3a, 0x38, 0xdc, 0x59, 0x4c, 0xe2, - 0xfb, 0x35, 0x11, 0xe5, 0x41, 0xf2, 0x17, 0x25, 0x3f, 0xbe, 0xed, 0x6e, 0x76, 0x9f, 0xbd, 0x2e, - 0x0a, 0x4d, 0x8d, 0x39, 0xb1, 0x9a, 0x4b, 0x96, 0x2e, 0x9f, 0xfb, 0xcf, 0xe0, 0x7a, 0xa5, 0xb4, - 0x3d, 0xe5, 0x45, 0xb0, 0xd2, 0x3a, 0xf9, 0x8b, 0x49, 0x7c, 0xcf, 0x39, 0x75, 0x20, 0x49, 0xd7, - 0x9a, 0xe8, 0xa8, 0xf0, 0x5f, 0x40, 0x98, 0x8f, 0x88, 0x94, 0xb4, 0x6c, 0xf4, 0xab, 0xad, 0xfe, - 0xc1, 0x62, 0x12, 0x6f, 0x38, 0xfd, 0x92, 0x25, 0xe9, 0xa0, 0x4b, 0x8e, 0x0a, 0x7f, 0x07, 0xae, - 0x6b, 0x57, 0x79, 0x70, 0xe7, 0xff, 0x2f, 0x3a, 0x90, 0xa4, 0x37, 0x92, 0x83, 0x97, 0x9f, 0xae, - 0x62, 0xef, 0xf7, 0x55, 0xec, 0x7d, 0x9c, 0x8f, 0x87, 0xcb, 0x42, 0x2f, 0xe7, 0xe3, 0x61, 0xd4, - 0x8e, 0xa7, 0xb7, 0x2f, 0xc9, 0x13, 0xb8, 0xdd, 0x0b, 0x53, 0x6a, 0x2a, 0x25, 0x0d, 0x7d, 0xfe, - 0x05, 0xc0, 0xd5, 0x63, 0xc3, 0xfc, 0x4b, 0x00, 0x1f, 0xf6, 0xf4, 0x77, 0x1f, 0xf5, 0x4d, 0x1d, - 0xf5, 0xfa, 0x87, 0xaf, 0x6e, 0xf1, 0xe8, 0xa6, 0xa8, 0xf0, 0xee, 0x87, 0xf9, 0x78, 0x08, 0x0e, - 0xdf, 0x7c, 0x9f, 0x46, 0xe0, 0x7a, 0x1a, 0x81, 0x5f, 0xd3, 0x08, 0x7c, 0x9e, 0x45, 0xde, 0xf5, - 0x2c, 0xf2, 0x7e, 0xce, 0x22, 0xef, 0x3d, 0x62, 0xdc, 0x8e, 0xce, 0x32, 0x94, 0x2b, 0x81, 0xb9, - 0xe4, 0x96, 0x93, 0xdd, 0x92, 0x64, 0xa6, 0x8b, 0xf1, 0x05, 0x6e, 0x56, 0xb9, 0x6d, 0x8f, 0xad, - 0x2b, 0x6a, 0xb2, 0xb5, 0x76, 0x8f, 0xf6, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x8a, 0xef, 0x15, - 0x46, 0xe3, 0x02, 0x00, 0x00, + // 454 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x92, 0x31, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0xed, 0x06, 0x0a, 0xb9, 0x01, 0xa8, 0x29, 0x6a, 0xf0, 0x60, 0x17, 0xab, 0x43, 0x15, + 0xe8, 0x9d, 0x0a, 0x9d, 0x22, 0x16, 0x32, 0x51, 0xa4, 0x4a, 0xc8, 0xdd, 0x58, 0xaa, 0xb3, 0x7d, + 0xba, 0x9c, 0xe4, 0xbb, 0xb3, 0xee, 0xae, 0x55, 0xb3, 0x21, 0x26, 0x84, 0x84, 0xc4, 0x07, 0x60, + 0xe8, 0x47, 0xc8, 0xc0, 0xc0, 0x47, 0x60, 0xac, 0x98, 0x98, 0x22, 0x94, 0x0c, 0x61, 0xce, 0x27, + 0x40, 0x3e, 0x5f, 0x13, 0x16, 0x2f, 0x2c, 0xd6, 0x7b, 0xf7, 0xfb, 0xbf, 0xe7, 0xbf, 0x9e, 0xfe, + 0xe0, 0x09, 0xcb, 0x72, 0x84, 0xab, 0xaa, 0x64, 0x39, 0x36, 0x4c, 0x0a, 0x8d, 0x2a, 0xa2, 0x38, + 0xba, 0x38, 0x44, 0xe6, 0x12, 0x56, 0x4a, 0x1a, 0x19, 0xf4, 0x58, 0x96, 0xc3, 0x7f, 0x25, 0xb0, + 0x96, 0xc0, 0x8b, 0xc3, 0x70, 0x0b, 0x73, 0x26, 0x24, 0xb2, 0xdf, 0x46, 0x1c, 0xee, 0xe4, 0x52, + 0x73, 0xa9, 0x11, 0xd7, 0xb4, 0x5e, 0xc2, 0x35, 0x75, 0xe0, 0x71, 0x03, 0xce, 0x6c, 0x87, 0x9a, + 0xc6, 0xa1, 0x6d, 0x2a, 0xa9, 0x6c, 0xde, 0xeb, 0xca, 0xbd, 0xee, 0xb5, 0x3b, 0x1b, 0x57, 0xc4, + 0xcd, 0x26, 0xdf, 0x37, 0x40, 0x78, 0xa2, 0xe9, 0x29, 0x31, 0x6f, 0x89, 0xe2, 0x4c, 0x6b, 0x26, + 0x05, 0x29, 0x52, 0x52, 0xe2, 0x31, 0x51, 0x3a, 0x78, 0x03, 0xba, 0xf8, 0xdc, 0x8c, 0xa4, 0x62, + 0x66, 0xdc, 0xf3, 0x77, 0xfd, 0xfd, 0xee, 0xf0, 0xd9, 0x72, 0x1a, 0x3f, 0x18, 0x63, 0x5e, 0x0e, + 0x92, 0x15, 0x4a, 0x7e, 0x7e, 0x3b, 0xd8, 0x76, 0x9e, 0x5e, 0x15, 0x85, 0x22, 0x5a, 0x9f, 0x1a, + 0xc5, 0x04, 0x4d, 0xd7, 0xe3, 0xc1, 0x53, 0x70, 0xa7, 0x92, 0xca, 0x9c, 0xb1, 0xa2, 0xb7, 0x61, + 0x37, 0x05, 0xcb, 0x69, 0x7c, 0xaf, 0xd9, 0xe4, 0x40, 0x92, 0x6e, 0xd6, 0xd5, 0x71, 0x11, 0x1c, + 0x01, 0x90, 0x8f, 0xb0, 0x10, 0xa4, 0xac, 0xf5, 0x1d, 0xab, 0x7f, 0xb4, 0x9c, 0xc6, 0x5b, 0x8d, + 0x7e, 0xcd, 0x92, 0xb4, 0xeb, 0x9a, 0xe3, 0x22, 0x40, 0xe0, 0xae, 0x72, 0xd6, 0x7b, 0xb7, 0x76, + 0x3b, 0xfb, 0xdd, 0xe1, 0xc3, 0xe5, 0x34, 0xbe, 0xdf, 0xcc, 0xdc, 0x90, 0x24, 0x5d, 0x89, 0x06, + 0x83, 0x8f, 0x57, 0xb1, 0xf7, 0xe7, 0x2a, 0xf6, 0x3e, 0x2c, 0x26, 0xfd, 0xb5, 0xd7, 0x4f, 0x8b, + 0x49, 0x3f, 0xb6, 0xe7, 0x6a, 0xbf, 0x4d, 0xb2, 0x07, 0x92, 0x76, 0x9a, 0x12, 0x5d, 0x49, 0xa1, + 0xc9, 0xf3, 0xaf, 0x3e, 0xe8, 0x9c, 0x68, 0x1a, 0x7c, 0xf6, 0xc1, 0x4e, 0xdb, 0x95, 0x8f, 0x60, + 0x5b, 0x44, 0x60, 0xfb, 0x1f, 0xc2, 0x97, 0xff, 0x33, 0x75, 0xe3, 0x2b, 0xbc, 0xfd, 0x7e, 0x31, + 0xe9, 0xfb, 0xc3, 0xd7, 0x3f, 0x66, 0x91, 0x7f, 0x3d, 0x8b, 0xfc, 0xdf, 0xb3, 0xc8, 0xff, 0x32, + 0x8f, 0xbc, 0xeb, 0x79, 0xe4, 0xfd, 0x9a, 0x47, 0xde, 0x3b, 0x48, 0x99, 0x19, 0x9d, 0x67, 0x30, + 0x97, 0x1c, 0x31, 0xc1, 0x0c, 0xc3, 0x07, 0x25, 0xce, 0xb4, 0xab, 0xd1, 0x25, 0xaa, 0xf3, 0x65, + 0x6f, 0x64, 0xf3, 0x94, 0x6d, 0xda, 0x40, 0xbd, 0xf8, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x06, 0x93, + 0x97, 0xca, 0x12, 0x03, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -163,8 +164,8 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type MsgClient interface { - // SetPermissionedRelayer defines a rpc handler method for MsgSetPermissionedRelayer. - SetPermissionedRelayer(ctx context.Context, in *MsgSetPermissionedRelayer, opts ...grpc.CallOption) (*MsgSetPermissionedRelayerResponse, error) + // SetPermissionedRelayers defines a rpc handler method for MsgSetPermissionedRelayers. + SetPermissionedRelayers(ctx context.Context, in *MsgSetPermissionedRelayers, opts ...grpc.CallOption) (*MsgSetPermissionedRelayersResponse, error) } type msgClient struct { @@ -175,9 +176,9 @@ func NewMsgClient(cc grpc1.ClientConn) MsgClient { return &msgClient{cc} } -func (c *msgClient) SetPermissionedRelayer(ctx context.Context, in *MsgSetPermissionedRelayer, opts ...grpc.CallOption) (*MsgSetPermissionedRelayerResponse, error) { - out := new(MsgSetPermissionedRelayerResponse) - err := c.cc.Invoke(ctx, "/ibc.applications.perm.v1.Msg/SetPermissionedRelayer", in, out, opts...) +func (c *msgClient) SetPermissionedRelayers(ctx context.Context, in *MsgSetPermissionedRelayers, opts ...grpc.CallOption) (*MsgSetPermissionedRelayersResponse, error) { + out := new(MsgSetPermissionedRelayersResponse) + err := c.cc.Invoke(ctx, "/ibc.applications.perm.v1.Msg/SetPermissionedRelayers", in, out, opts...) if err != nil { return nil, err } @@ -186,36 +187,36 @@ func (c *msgClient) SetPermissionedRelayer(ctx context.Context, in *MsgSetPermis // MsgServer is the server API for Msg service. type MsgServer interface { - // SetPermissionedRelayer defines a rpc handler method for MsgSetPermissionedRelayer. - SetPermissionedRelayer(context.Context, *MsgSetPermissionedRelayer) (*MsgSetPermissionedRelayerResponse, error) + // SetPermissionedRelayers defines a rpc handler method for MsgSetPermissionedRelayers. + SetPermissionedRelayers(context.Context, *MsgSetPermissionedRelayers) (*MsgSetPermissionedRelayersResponse, error) } // UnimplementedMsgServer can be embedded to have forward compatible implementations. type UnimplementedMsgServer struct { } -func (*UnimplementedMsgServer) SetPermissionedRelayer(ctx context.Context, req *MsgSetPermissionedRelayer) (*MsgSetPermissionedRelayerResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetPermissionedRelayer not implemented") +func (*UnimplementedMsgServer) SetPermissionedRelayers(ctx context.Context, req *MsgSetPermissionedRelayers) (*MsgSetPermissionedRelayersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetPermissionedRelayers not implemented") } func RegisterMsgServer(s grpc1.Server, srv MsgServer) { s.RegisterService(&_Msg_serviceDesc, srv) } -func _Msg_SetPermissionedRelayer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgSetPermissionedRelayer) +func _Msg_SetPermissionedRelayers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgSetPermissionedRelayers) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MsgServer).SetPermissionedRelayer(ctx, in) + return srv.(MsgServer).SetPermissionedRelayers(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/ibc.applications.perm.v1.Msg/SetPermissionedRelayer", + FullMethod: "/ibc.applications.perm.v1.Msg/SetPermissionedRelayers", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).SetPermissionedRelayer(ctx, req.(*MsgSetPermissionedRelayer)) + return srv.(MsgServer).SetPermissionedRelayers(ctx, req.(*MsgSetPermissionedRelayers)) } return interceptor(ctx, in, info, handler) } @@ -225,15 +226,15 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ HandlerType: (*MsgServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "SetPermissionedRelayer", - Handler: _Msg_SetPermissionedRelayer_Handler, + MethodName: "SetPermissionedRelayers", + Handler: _Msg_SetPermissionedRelayers_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "ibc/applications/perm/v1/tx.proto", } -func (m *MsgSetPermissionedRelayer) Marshal() (dAtA []byte, err error) { +func (m *MsgSetPermissionedRelayers) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -243,22 +244,24 @@ func (m *MsgSetPermissionedRelayer) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgSetPermissionedRelayer) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgSetPermissionedRelayers) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgSetPermissionedRelayer) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgSetPermissionedRelayers) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Relayer) > 0 { - i -= len(m.Relayer) - copy(dAtA[i:], m.Relayer) - i = encodeVarintTx(dAtA, i, uint64(len(m.Relayer))) - i-- - dAtA[i] = 0x22 + if len(m.Relayers) > 0 { + for iNdEx := len(m.Relayers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Relayers[iNdEx]) + copy(dAtA[i:], m.Relayers[iNdEx]) + i = encodeVarintTx(dAtA, i, uint64(len(m.Relayers[iNdEx]))) + i-- + dAtA[i] = 0x22 + } } if len(m.ChannelId) > 0 { i -= len(m.ChannelId) @@ -284,7 +287,7 @@ func (m *MsgSetPermissionedRelayer) MarshalToSizedBuffer(dAtA []byte) (int, erro return len(dAtA) - i, nil } -func (m *MsgSetPermissionedRelayerResponse) Marshal() (dAtA []byte, err error) { +func (m *MsgSetPermissionedRelayersResponse) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -294,12 +297,12 @@ func (m *MsgSetPermissionedRelayerResponse) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *MsgSetPermissionedRelayerResponse) MarshalTo(dAtA []byte) (int, error) { +func (m *MsgSetPermissionedRelayersResponse) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *MsgSetPermissionedRelayerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *MsgSetPermissionedRelayersResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int @@ -318,7 +321,7 @@ func encodeVarintTx(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *MsgSetPermissionedRelayer) Size() (n int) { +func (m *MsgSetPermissionedRelayers) Size() (n int) { if m == nil { return 0 } @@ -336,14 +339,16 @@ func (m *MsgSetPermissionedRelayer) Size() (n int) { if l > 0 { n += 1 + l + sovTx(uint64(l)) } - l = len(m.Relayer) - if l > 0 { - n += 1 + l + sovTx(uint64(l)) + if len(m.Relayers) > 0 { + for _, s := range m.Relayers { + l = len(s) + n += 1 + l + sovTx(uint64(l)) + } } return n } -func (m *MsgSetPermissionedRelayerResponse) Size() (n int) { +func (m *MsgSetPermissionedRelayersResponse) Size() (n int) { if m == nil { return 0 } @@ -358,7 +363,7 @@ func sovTx(x uint64) (n int) { func sozTx(x uint64) (n int) { return sovTx(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *MsgSetPermissionedRelayer) Unmarshal(dAtA []byte) error { +func (m *MsgSetPermissionedRelayers) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -381,10 +386,10 @@ func (m *MsgSetPermissionedRelayer) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgSetPermissionedRelayer: wiretype end group for non-group") + return fmt.Errorf("proto: MsgSetPermissionedRelayers: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetPermissionedRelayer: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgSetPermissionedRelayers: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -485,7 +490,7 @@ func (m *MsgSetPermissionedRelayer) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Relayer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Relayers", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -513,7 +518,7 @@ func (m *MsgSetPermissionedRelayer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Relayer = string(dAtA[iNdEx:postIndex]) + m.Relayers = append(m.Relayers, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex @@ -536,7 +541,7 @@ func (m *MsgSetPermissionedRelayer) Unmarshal(dAtA []byte) error { } return nil } -func (m *MsgSetPermissionedRelayerResponse) Unmarshal(dAtA []byte) error { +func (m *MsgSetPermissionedRelayersResponse) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -559,10 +564,10 @@ func (m *MsgSetPermissionedRelayerResponse) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: MsgSetPermissionedRelayerResponse: wiretype end group for non-group") + return fmt.Errorf("proto: MsgSetPermissionedRelayersResponse: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: MsgSetPermissionedRelayerResponse: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: MsgSetPermissionedRelayersResponse: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { default: diff --git a/x/ibc/perm/types/types.pb.go b/x/ibc/perm/types/types.pb.go index e5c516f2..c46085bd 100644 --- a/x/ibc/perm/types/types.pb.go +++ b/x/ibc/perm/types/types.pb.go @@ -24,24 +24,24 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // PermissionedRelayer is used to specifiy the permissioned relayer for // the specific port-id:channel-id pair. -type PermissionedRelayer struct { - PortId string `protobuf:"bytes,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` - ChannelId string `protobuf:"bytes,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` - Relayer string `protobuf:"bytes,3,opt,name=relayer,proto3" json:"relayer,omitempty"` +type PermissionedRelayers struct { + PortId string `protobuf:"bytes,1,opt,name=port_id,json=portId,proto3" json:"port_id,omitempty"` + ChannelId string `protobuf:"bytes,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + Relayers []string `protobuf:"bytes,3,rep,name=relayers,proto3" json:"relayers,omitempty"` } -func (m *PermissionedRelayer) Reset() { *m = PermissionedRelayer{} } -func (m *PermissionedRelayer) String() string { return proto.CompactTextString(m) } -func (*PermissionedRelayer) ProtoMessage() {} -func (*PermissionedRelayer) Descriptor() ([]byte, []int) { +func (m *PermissionedRelayers) Reset() { *m = PermissionedRelayers{} } +func (m *PermissionedRelayers) String() string { return proto.CompactTextString(m) } +func (*PermissionedRelayers) ProtoMessage() {} +func (*PermissionedRelayers) Descriptor() ([]byte, []int) { return fileDescriptor_58b3976370e0fa77, []int{0} } -func (m *PermissionedRelayer) XXX_Unmarshal(b []byte) error { +func (m *PermissionedRelayers) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) } -func (m *PermissionedRelayer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { +func (m *PermissionedRelayers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { if deterministic { - return xxx_messageInfo_PermissionedRelayer.Marshal(b, m, deterministic) + return xxx_messageInfo_PermissionedRelayers.Marshal(b, m, deterministic) } else { b = b[:cap(b)] n, err := m.MarshalToSizedBuffer(b) @@ -51,41 +51,86 @@ func (m *PermissionedRelayer) XXX_Marshal(b []byte, deterministic bool) ([]byte, return b[:n], nil } } -func (m *PermissionedRelayer) XXX_Merge(src proto.Message) { - xxx_messageInfo_PermissionedRelayer.Merge(m, src) +func (m *PermissionedRelayers) XXX_Merge(src proto.Message) { + xxx_messageInfo_PermissionedRelayers.Merge(m, src) } -func (m *PermissionedRelayer) XXX_Size() int { +func (m *PermissionedRelayers) XXX_Size() int { return m.Size() } -func (m *PermissionedRelayer) XXX_DiscardUnknown() { - xxx_messageInfo_PermissionedRelayer.DiscardUnknown(m) +func (m *PermissionedRelayers) XXX_DiscardUnknown() { + xxx_messageInfo_PermissionedRelayers.DiscardUnknown(m) } -var xxx_messageInfo_PermissionedRelayer proto.InternalMessageInfo +var xxx_messageInfo_PermissionedRelayers proto.InternalMessageInfo -func (m *PermissionedRelayer) GetPortId() string { +func (m *PermissionedRelayers) GetPortId() string { if m != nil { return m.PortId } return "" } -func (m *PermissionedRelayer) GetChannelId() string { +func (m *PermissionedRelayers) GetChannelId() string { if m != nil { return m.ChannelId } return "" } -func (m *PermissionedRelayer) GetRelayer() string { +func (m *PermissionedRelayers) GetRelayers() []string { if m != nil { - return m.Relayer + return m.Relayers + } + return nil +} + +type PermissionedRelayersList struct { + Relayers []string `protobuf:"bytes,1,rep,name=relayers,proto3" json:"relayers,omitempty"` +} + +func (m *PermissionedRelayersList) Reset() { *m = PermissionedRelayersList{} } +func (m *PermissionedRelayersList) String() string { return proto.CompactTextString(m) } +func (*PermissionedRelayersList) ProtoMessage() {} +func (*PermissionedRelayersList) Descriptor() ([]byte, []int) { + return fileDescriptor_58b3976370e0fa77, []int{1} +} +func (m *PermissionedRelayersList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PermissionedRelayersList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_PermissionedRelayersList.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil } - return "" +} +func (m *PermissionedRelayersList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PermissionedRelayersList.Merge(m, src) +} +func (m *PermissionedRelayersList) XXX_Size() int { + return m.Size() +} +func (m *PermissionedRelayersList) XXX_DiscardUnknown() { + xxx_messageInfo_PermissionedRelayersList.DiscardUnknown(m) +} + +var xxx_messageInfo_PermissionedRelayersList proto.InternalMessageInfo + +func (m *PermissionedRelayersList) GetRelayers() []string { + if m != nil { + return m.Relayers + } + return nil } func init() { - proto.RegisterType((*PermissionedRelayer)(nil), "ibc.applications.perm.v1.PermissionedRelayer") + proto.RegisterType((*PermissionedRelayers)(nil), "ibc.applications.perm.v1.PermissionedRelayers") + proto.RegisterType((*PermissionedRelayersList)(nil), "ibc.applications.perm.v1.PermissionedRelayersList") } func init() { @@ -93,24 +138,26 @@ func init() { } var fileDescriptor_58b3976370e0fa77 = []byte{ - // 222 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x4c, 0x8f, 0xbd, 0x4a, 0x04, 0x31, - 0x14, 0x85, 0x27, 0x0a, 0xbb, 0x6c, 0xca, 0x58, 0x98, 0xc6, 0x20, 0x62, 0x61, 0x63, 0xc2, 0xe2, - 0x1b, 0x58, 0xb9, 0x9d, 0x6c, 0x69, 0x23, 0xf9, 0x63, 0xf7, 0x42, 0x26, 0x09, 0x49, 0x5c, 0x9c, - 0xb7, 0xf0, 0xb1, 0x2c, 0xa7, 0xb4, 0x94, 0x99, 0x17, 0x91, 0xc4, 0x11, 0xec, 0xee, 0xb9, 0xdf, - 0xe1, 0xc0, 0x87, 0x6f, 0x41, 0x69, 0x21, 0x63, 0x74, 0xa0, 0x65, 0x81, 0xe0, 0xb3, 0x88, 0x36, - 0xf5, 0xe2, 0xb4, 0x15, 0x65, 0x88, 0x36, 0xf3, 0x98, 0x42, 0x09, 0x84, 0x82, 0xd2, 0xfc, 0x7f, - 0x8b, 0xd7, 0x16, 0x3f, 0x6d, 0x6f, 0x0e, 0xf8, 0xe2, 0xd9, 0xa6, 0x1e, 0x72, 0x86, 0xe0, 0xad, - 0xd9, 0x5b, 0x27, 0x07, 0x9b, 0xc8, 0x25, 0x5e, 0xc7, 0x90, 0xca, 0x2b, 0x18, 0x8a, 0xae, 0xd1, - 0xdd, 0x66, 0xbf, 0xaa, 0x71, 0x67, 0xc8, 0x15, 0xc6, 0xfa, 0x28, 0xbd, 0xb7, 0xae, 0xb2, 0xb3, - 0xc6, 0x36, 0xcb, 0x67, 0x67, 0x08, 0xc5, 0xeb, 0xf4, 0x3b, 0x41, 0xcf, 0x1b, 0xfb, 0x8b, 0x8f, - 0x4f, 0x9f, 0x13, 0x43, 0xe3, 0xc4, 0xd0, 0xf7, 0xc4, 0xd0, 0xc7, 0xcc, 0xba, 0x71, 0x66, 0xdd, - 0xd7, 0xcc, 0xba, 0x17, 0x7e, 0x80, 0x72, 0x7c, 0x53, 0x5c, 0x87, 0x5e, 0x80, 0x87, 0x02, 0xf2, - 0xde, 0x49, 0x95, 0x97, 0x5b, 0xbc, 0x8b, 0xaa, 0xd8, 0xac, 0x9a, 0x92, 0x5a, 0x35, 0xa7, 0x87, - 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb1, 0x6a, 0xfb, 0x0e, 0xfb, 0x00, 0x00, 0x00, + // 244 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0xc9, 0x4c, 0x4a, 0xd6, + 0x4f, 0x2c, 0x28, 0xc8, 0xc9, 0x4c, 0x4e, 0x2c, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0x2f, 0x48, 0x2d, + 0xca, 0xd5, 0x2f, 0x33, 0xd4, 0x2f, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, + 0x17, 0x92, 0xc8, 0x4c, 0x4a, 0xd6, 0x43, 0x56, 0xa5, 0x07, 0x52, 0xa5, 0x57, 0x66, 0xa8, 0x94, + 0xc5, 0x25, 0x12, 0x90, 0x5a, 0x94, 0x9b, 0x59, 0x5c, 0x9c, 0x99, 0x9f, 0x97, 0x9a, 0x12, 0x94, + 0x9a, 0x93, 0x58, 0x99, 0x5a, 0x54, 0x2c, 0x24, 0xce, 0xc5, 0x5e, 0x90, 0x5f, 0x54, 0x12, 0x9f, + 0x99, 0x22, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x19, 0xc4, 0x06, 0xe2, 0x7a, 0xa6, 0x08, 0xc9, 0x72, + 0x71, 0x25, 0x67, 0x24, 0xe6, 0xe5, 0xa5, 0xe6, 0x80, 0xe4, 0x98, 0xc0, 0x72, 0x9c, 0x50, 0x11, + 0xcf, 0x14, 0x21, 0x29, 0x2e, 0x8e, 0x22, 0xa8, 0x19, 0x12, 0xcc, 0x0a, 0xcc, 0x1a, 0x9c, 0x41, + 0x70, 0xbe, 0x92, 0x19, 0x97, 0x04, 0x36, 0xbb, 0x7c, 0x32, 0x8b, 0x4b, 0x50, 0xf4, 0x31, 0xa2, + 0xea, 0x73, 0xf2, 0x38, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, + 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0xbd, 0xf4, + 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0xfd, 0xcc, 0xbc, 0xcc, 0x92, 0xcc, 0x44, + 0xdd, 0x9c, 0xc4, 0xa4, 0x62, 0x28, 0x5b, 0xbf, 0x42, 0x1f, 0x14, 0x3a, 0xe0, 0x00, 0x01, 0x87, + 0x46, 0x12, 0x1b, 0x38, 0x38, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe4, 0x33, 0xe2, 0x9d, + 0x36, 0x01, 0x00, 0x00, } -func (m *PermissionedRelayer) Marshal() (dAtA []byte, err error) { +func (m *PermissionedRelayers) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalToSizedBuffer(dAtA[:size]) @@ -120,22 +167,24 @@ func (m *PermissionedRelayer) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *PermissionedRelayer) MarshalTo(dAtA []byte) (int, error) { +func (m *PermissionedRelayers) MarshalTo(dAtA []byte) (int, error) { size := m.Size() return m.MarshalToSizedBuffer(dAtA[:size]) } -func (m *PermissionedRelayer) MarshalToSizedBuffer(dAtA []byte) (int, error) { +func (m *PermissionedRelayers) MarshalToSizedBuffer(dAtA []byte) (int, error) { i := len(dAtA) _ = i var l int _ = l - if len(m.Relayer) > 0 { - i -= len(m.Relayer) - copy(dAtA[i:], m.Relayer) - i = encodeVarintTypes(dAtA, i, uint64(len(m.Relayer))) - i-- - dAtA[i] = 0x1a + if len(m.Relayers) > 0 { + for iNdEx := len(m.Relayers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Relayers[iNdEx]) + copy(dAtA[i:], m.Relayers[iNdEx]) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Relayers[iNdEx]))) + i-- + dAtA[i] = 0x1a + } } if len(m.ChannelId) > 0 { i -= len(m.ChannelId) @@ -154,6 +203,38 @@ func (m *PermissionedRelayer) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *PermissionedRelayersList) 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 *PermissionedRelayersList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PermissionedRelayersList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Relayers) > 0 { + for iNdEx := len(m.Relayers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Relayers[iNdEx]) + copy(dAtA[i:], m.Relayers[iNdEx]) + i = encodeVarintTypes(dAtA, i, uint64(len(m.Relayers[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { offset -= sovTypes(v) base := offset @@ -165,7 +246,7 @@ func encodeVarintTypes(dAtA []byte, offset int, v uint64) int { dAtA[offset] = uint8(v) return base } -func (m *PermissionedRelayer) Size() (n int) { +func (m *PermissionedRelayers) Size() (n int) { if m == nil { return 0 } @@ -179,9 +260,26 @@ func (m *PermissionedRelayer) Size() (n int) { if l > 0 { n += 1 + l + sovTypes(uint64(l)) } - l = len(m.Relayer) - if l > 0 { - n += 1 + l + sovTypes(uint64(l)) + if len(m.Relayers) > 0 { + for _, s := range m.Relayers { + l = len(s) + n += 1 + l + sovTypes(uint64(l)) + } + } + return n +} + +func (m *PermissionedRelayersList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Relayers) > 0 { + for _, s := range m.Relayers { + l = len(s) + n += 1 + l + sovTypes(uint64(l)) + } } return n } @@ -192,7 +290,7 @@ func sovTypes(x uint64) (n int) { func sozTypes(x uint64) (n int) { return sovTypes(uint64((x << 1) ^ uint64((int64(x) >> 63)))) } -func (m *PermissionedRelayer) Unmarshal(dAtA []byte) error { +func (m *PermissionedRelayers) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 for iNdEx < l { @@ -215,10 +313,10 @@ func (m *PermissionedRelayer) Unmarshal(dAtA []byte) error { fieldNum := int32(wire >> 3) wireType := int(wire & 0x7) if wireType == 4 { - return fmt.Errorf("proto: PermissionedRelayer: wiretype end group for non-group") + return fmt.Errorf("proto: PermissionedRelayers: wiretype end group for non-group") } if fieldNum <= 0 { - return fmt.Errorf("proto: PermissionedRelayer: illegal tag %d (wire type %d)", fieldNum, wire) + return fmt.Errorf("proto: PermissionedRelayers: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { case 1: @@ -287,7 +385,89 @@ func (m *PermissionedRelayer) Unmarshal(dAtA []byte) error { iNdEx = postIndex case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Relayer", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Relayers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Relayers = append(m.Relayers, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTypes(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTypes + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PermissionedRelayersList) 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 ErrIntOverflowTypes + } + 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: PermissionedRelayersList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PermissionedRelayersList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Relayers", wireType) } var stringLen uint64 for shift := uint(0); ; shift += 7 { @@ -315,7 +495,7 @@ func (m *PermissionedRelayer) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - m.Relayer = string(dAtA[iNdEx:postIndex]) + m.Relayers = append(m.Relayers, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex default: iNdEx = preIndex