From 0f927b4a38e246c50c10168677975612988d7933 Mon Sep 17 00:00:00 2001 From: Matthew Witkowski Date: Thu, 18 Aug 2022 17:18:57 -0400 Subject: [PATCH 1/4] Added interface to accept any type of ADR 031 message router. This was added to the controller and host keepers. --- .../27-interchain-accounts/controller/keeper/keeper.go | 9 +++++++-- .../apps/27-interchain-accounts/host/keeper/keeper.go | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/apps/27-interchain-accounts/controller/keeper/keeper.go b/modules/apps/27-interchain-accounts/controller/keeper/keeper.go index 6fa539a1533..de158f452da 100644 --- a/modules/apps/27-interchain-accounts/controller/keeper/keeper.go +++ b/modules/apps/27-interchain-accounts/controller/keeper/keeper.go @@ -19,6 +19,11 @@ import ( host "github.com/cosmos/ibc-go/v5/modules/core/24-host" ) +// MessageRouter ADR 031 request type routing +type MessageRouter interface { + Handler(msg sdk.Msg) baseapp.MsgServiceHandler +} + // Keeper defines the IBC interchain accounts controller keeper type Keeper struct { storeKey storetypes.StoreKey @@ -31,14 +36,14 @@ type Keeper struct { scopedKeeper capabilitykeeper.ScopedKeeper - msgRouter *baseapp.MsgServiceRouter + msgRouter MessageRouter } // NewKeeper creates a new interchain accounts controller Keeper instance func NewKeeper( cdc codec.BinaryCodec, key storetypes.StoreKey, paramSpace paramtypes.Subspace, ics4Wrapper icatypes.ICS4Wrapper, channelKeeper icatypes.ChannelKeeper, portKeeper icatypes.PortKeeper, - scopedKeeper capabilitykeeper.ScopedKeeper, msgRouter *baseapp.MsgServiceRouter, + scopedKeeper capabilitykeeper.ScopedKeeper, msgRouter MessageRouter, ) Keeper { // set KeyTable if it has not already been set if !paramSpace.HasKeyTable() { diff --git a/modules/apps/27-interchain-accounts/host/keeper/keeper.go b/modules/apps/27-interchain-accounts/host/keeper/keeper.go index 13d3f387c94..c8670eaf9e3 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/keeper.go +++ b/modules/apps/27-interchain-accounts/host/keeper/keeper.go @@ -19,6 +19,11 @@ import ( host "github.com/cosmos/ibc-go/v5/modules/core/24-host" ) +// MessageRouter ADR 031 request type routing +type MessageRouter interface { + Handler(msg sdk.Msg) baseapp.MsgServiceHandler +} + // Keeper defines the IBC interchain accounts host keeper type Keeper struct { storeKey storetypes.StoreKey @@ -31,14 +36,14 @@ type Keeper struct { scopedKeeper capabilitykeeper.ScopedKeeper - msgRouter *baseapp.MsgServiceRouter + msgRouter MessageRouter } // NewKeeper creates a new interchain accounts host Keeper instance func NewKeeper( cdc codec.BinaryCodec, key storetypes.StoreKey, paramSpace paramtypes.Subspace, channelKeeper icatypes.ChannelKeeper, portKeeper icatypes.PortKeeper, - accountKeeper icatypes.AccountKeeper, scopedKeeper capabilitykeeper.ScopedKeeper, msgRouter *baseapp.MsgServiceRouter, + accountKeeper icatypes.AccountKeeper, scopedKeeper capabilitykeeper.ScopedKeeper, msgRouter MessageRouter, ) Keeper { // ensure ibc interchain accounts module account is set if addr := accountKeeper.GetModuleAddress(icatypes.ModuleName); addr == nil { From 10c0cb2d756127a13fb860d899100d86580b8098 Mon Sep 17 00:00:00 2001 From: Matthew Witkowski Date: Fri, 19 Aug 2022 17:20:31 -0400 Subject: [PATCH 2/4] Updated CHANGELOG to include 27-interchain-accounts MessageRouter changes. --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a0b9ed28b6..ee0e0e2dc43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -59,6 +59,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (modules/core/exported) [\#1107](https://github.com/cosmos/ibc-go/pull/1107) Merging the `Header` and `Misbehaviour` interfaces into a single `ClientMessage` type. * (06-solomachine)[\#1906](https://github.com/cosmos/ibc-go/pull/1906/files) Removed `AllowUpdateAfterProposal` boolean as it has been deprecated (see 01_concepts of the solo machine spec for more details). * (07-tendermint) [\#1896](https://github.com/cosmos/ibc-go/pull/1896) Remove error return from `IterateConsensusStateAscending` in `07-tendermint`. +* (apps/27-interchain-accounts) [\#2058](https://github.com/cosmos/ibc-go/pull/2058) Added `MessageRouter` interface and replaced `*baseapp.MsgServiceRouter` with it. The controller and host keepers of apps/27-interchain-accounts have been updated to use it. ### State Machine Breaking From 5cbf8c6c5d0afe992706bdebc8560657c986cc79 Mon Sep 17 00:00:00 2001 From: Matthew Witkowski Date: Fri, 19 Aug 2022 17:24:41 -0400 Subject: [PATCH 3/4] Extracted common interface out into new file 27-interchain-accounts/types/router.go --- .../controller/keeper/keeper.go | 10 ++-------- .../apps/27-interchain-accounts/host/keeper/keeper.go | 10 ++-------- modules/apps/27-interchain-accounts/types/router.go | 11 +++++++++++ 3 files changed, 15 insertions(+), 16 deletions(-) create mode 100644 modules/apps/27-interchain-accounts/types/router.go diff --git a/modules/apps/27-interchain-accounts/controller/keeper/keeper.go b/modules/apps/27-interchain-accounts/controller/keeper/keeper.go index de158f452da..4dec1b4adcc 100644 --- a/modules/apps/27-interchain-accounts/controller/keeper/keeper.go +++ b/modules/apps/27-interchain-accounts/controller/keeper/keeper.go @@ -4,7 +4,6 @@ import ( "fmt" "strings" - baseapp "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -19,11 +18,6 @@ import ( host "github.com/cosmos/ibc-go/v5/modules/core/24-host" ) -// MessageRouter ADR 031 request type routing -type MessageRouter interface { - Handler(msg sdk.Msg) baseapp.MsgServiceHandler -} - // Keeper defines the IBC interchain accounts controller keeper type Keeper struct { storeKey storetypes.StoreKey @@ -36,14 +30,14 @@ type Keeper struct { scopedKeeper capabilitykeeper.ScopedKeeper - msgRouter MessageRouter + msgRouter icatypes.MessageRouter } // NewKeeper creates a new interchain accounts controller Keeper instance func NewKeeper( cdc codec.BinaryCodec, key storetypes.StoreKey, paramSpace paramtypes.Subspace, ics4Wrapper icatypes.ICS4Wrapper, channelKeeper icatypes.ChannelKeeper, portKeeper icatypes.PortKeeper, - scopedKeeper capabilitykeeper.ScopedKeeper, msgRouter MessageRouter, + scopedKeeper capabilitykeeper.ScopedKeeper, msgRouter icatypes.MessageRouter, ) Keeper { // set KeyTable if it has not already been set if !paramSpace.HasKeyTable() { diff --git a/modules/apps/27-interchain-accounts/host/keeper/keeper.go b/modules/apps/27-interchain-accounts/host/keeper/keeper.go index c8670eaf9e3..3ded03787d4 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/keeper.go +++ b/modules/apps/27-interchain-accounts/host/keeper/keeper.go @@ -4,7 +4,6 @@ import ( "fmt" "strings" - baseapp "github.com/cosmos/cosmos-sdk/baseapp" "github.com/cosmos/cosmos-sdk/codec" storetypes "github.com/cosmos/cosmos-sdk/store/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -19,11 +18,6 @@ import ( host "github.com/cosmos/ibc-go/v5/modules/core/24-host" ) -// MessageRouter ADR 031 request type routing -type MessageRouter interface { - Handler(msg sdk.Msg) baseapp.MsgServiceHandler -} - // Keeper defines the IBC interchain accounts host keeper type Keeper struct { storeKey storetypes.StoreKey @@ -36,14 +30,14 @@ type Keeper struct { scopedKeeper capabilitykeeper.ScopedKeeper - msgRouter MessageRouter + msgRouter icatypes.MessageRouter } // NewKeeper creates a new interchain accounts host Keeper instance func NewKeeper( cdc codec.BinaryCodec, key storetypes.StoreKey, paramSpace paramtypes.Subspace, channelKeeper icatypes.ChannelKeeper, portKeeper icatypes.PortKeeper, - accountKeeper icatypes.AccountKeeper, scopedKeeper capabilitykeeper.ScopedKeeper, msgRouter MessageRouter, + accountKeeper icatypes.AccountKeeper, scopedKeeper capabilitykeeper.ScopedKeeper, msgRouter icatypes.MessageRouter, ) Keeper { // ensure ibc interchain accounts module account is set if addr := accountKeeper.GetModuleAddress(icatypes.ModuleName); addr == nil { diff --git a/modules/apps/27-interchain-accounts/types/router.go b/modules/apps/27-interchain-accounts/types/router.go new file mode 100644 index 00000000000..b924f6b381e --- /dev/null +++ b/modules/apps/27-interchain-accounts/types/router.go @@ -0,0 +1,11 @@ +package types + +import ( + baseapp "github.com/cosmos/cosmos-sdk/baseapp" + sdk "github.com/cosmos/cosmos-sdk/types" +) + +// MessageRouter ADR 031 request type routing +type MessageRouter interface { + Handler(msg sdk.Msg) baseapp.MsgServiceHandler +} From e0c9edc5251f96ccb3f436b31650f03f9de1a304 Mon Sep 17 00:00:00 2001 From: Matt Witkowski Date: Mon, 22 Aug 2022 13:52:34 -0400 Subject: [PATCH 4/4] Update modules/apps/27-interchain-accounts/types/router.go MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> --- modules/apps/27-interchain-accounts/types/router.go | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/apps/27-interchain-accounts/types/router.go b/modules/apps/27-interchain-accounts/types/router.go index b924f6b381e..007091b9d0d 100644 --- a/modules/apps/27-interchain-accounts/types/router.go +++ b/modules/apps/27-interchain-accounts/types/router.go @@ -6,6 +6,7 @@ import ( ) // MessageRouter ADR 031 request type routing +// https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-031-msg-service.md type MessageRouter interface { Handler(msg sdk.Msg) baseapp.MsgServiceHandler }