From b9a680cd530798a6b72de638604ef9e1a7d859c5 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Mon, 18 Sep 2023 15:14:00 +0200 Subject: [PATCH 1/5] chore: port keeper pointer --- docs/migrations/v7-to-v8.md | 21 +++++++++++++++++++++ modules/core/05-port/keeper/keeper_test.go | 2 +- modules/core/keeper/keeper.go | 6 +++--- testing/simapp/app.go | 10 +++++----- 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/docs/migrations/v7-to-v8.md b/docs/migrations/v7-to-v8.md index ec89e987124..c4d387af376 100644 --- a/docs/migrations/v7-to-v8.md +++ b/docs/migrations/v7-to-v8.md @@ -14,6 +14,27 @@ There are four sections based on the four potential user groups of this document ## Chains +The type of the `PortKeeper` field of the IBC keeper have been changed to `*portkeeper.Keeper`: + +```diff +// Keeper defines each ICS keeper for IBC +type Keeper struct { + // implements gRPC QueryServer interface + types.QueryServer + + cdc codec.BinaryCodec + + ClientKeeper clientkeeper.Keeper + ConnectionKeeper connectionkeeper.Keeper + ChannelKeeper channelkeeper.Keeper +- PortKeeper portkeeper.Keeper ++ PortKeeper *portkeeper.Keeper + Router *porttypes.Router + + authority string +} +``` + TODO: https://github.com/cosmos/ibc-go/pull/3505 (extra parameter added to transfer's `GenesisState`) - You must pass the `authority` to the icahost keeper. ([#3520](https://github.com/cosmos/ibc-go/pull/3520)) See [diff](https://github.com/cosmos/ibc-go/pull/3520/files#diff-d18972debee5e64f16e40807b2ae112ddbe609504a93ea5e1c80a5d489c3a08a). diff --git a/modules/core/05-port/keeper/keeper_test.go b/modules/core/05-port/keeper/keeper_test.go index 48438d6f3c2..df2051644f9 100644 --- a/modules/core/05-port/keeper/keeper_test.go +++ b/modules/core/05-port/keeper/keeper_test.go @@ -29,7 +29,7 @@ func (suite *KeeperTestSuite) SetupTest() { app := simapp.Setup(suite.T(), isCheckTx) suite.ctx = app.BaseApp.NewContext(isCheckTx) - suite.keeper = &app.IBCKeeper.PortKeeper + suite.keeper = app.IBCKeeper.PortKeeper } func TestKeeperTestSuite(t *testing.T) { diff --git a/modules/core/keeper/keeper.go b/modules/core/keeper/keeper.go index 040d0a3ffed..4da38804db4 100644 --- a/modules/core/keeper/keeper.go +++ b/modules/core/keeper/keeper.go @@ -32,7 +32,7 @@ type Keeper struct { ClientKeeper clientkeeper.Keeper ConnectionKeeper connectionkeeper.Keeper ChannelKeeper channelkeeper.Keeper - PortKeeper portkeeper.Keeper + PortKeeper *portkeeper.Keeper Router *porttypes.Router authority string @@ -67,14 +67,14 @@ func NewKeeper( clientKeeper := clientkeeper.NewKeeper(cdc, key, paramSpace, stakingKeeper, upgradeKeeper) connectionKeeper := connectionkeeper.NewKeeper(cdc, key, paramSpace, clientKeeper) portKeeper := portkeeper.NewKeeper(scopedKeeper) - channelKeeper := channelkeeper.NewKeeper(cdc, key, clientKeeper, connectionKeeper, portKeeper, scopedKeeper) + channelKeeper := channelkeeper.NewKeeper(cdc, key, clientKeeper, connectionKeeper, &portKeeper, scopedKeeper) return &Keeper{ cdc: cdc, ClientKeeper: clientKeeper, ConnectionKeeper: connectionKeeper, ChannelKeeper: channelKeeper, - PortKeeper: portKeeper, + PortKeeper: &portKeeper, authority: authority, } } diff --git a/testing/simapp/app.go b/testing/simapp/app.go index 3fd6110046b..f0584219d92 100644 --- a/testing/simapp/app.go +++ b/testing/simapp/app.go @@ -436,14 +436,14 @@ func NewSimApp( appCodec, keys[ibcfeetypes.StoreKey], app.IBCKeeper.ChannelKeeper, // may be replaced with IBC middleware app.IBCKeeper.ChannelKeeper, - &app.IBCKeeper.PortKeeper, app.AccountKeeper, app.BankKeeper, + app.IBCKeeper.PortKeeper, app.AccountKeeper, app.BankKeeper, ) // ICA Controller keeper app.ICAControllerKeeper = icacontrollerkeeper.NewKeeper( appCodec, keys[icacontrollertypes.StoreKey], app.GetSubspace(icacontrollertypes.SubModuleName), app.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, + app.IBCKeeper.ChannelKeeper, app.IBCKeeper.PortKeeper, scopedICAControllerKeeper, app.MsgServiceRouter(), authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -452,7 +452,7 @@ func NewSimApp( app.ICAHostKeeper = icahostkeeper.NewKeeper( appCodec, keys[icahosttypes.StoreKey], app.GetSubspace(icahosttypes.SubModuleName), app.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, + app.IBCKeeper.ChannelKeeper, app.IBCKeeper.PortKeeper, app.AccountKeeper, scopedICAHostKeeper, app.MsgServiceRouter(), authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -467,7 +467,7 @@ func NewSimApp( app.TransferKeeper = ibctransferkeeper.NewKeeper( appCodec, keys[ibctransfertypes.StoreKey], app.GetSubspace(ibctransfertypes.ModuleName), app.IBCFeeKeeper, // ISC4 Wrapper: fee IBC middleware - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, + app.IBCKeeper.ChannelKeeper, app.IBCKeeper.PortKeeper, app.AccountKeeper, app.BankKeeper, scopedTransferKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -477,7 +477,7 @@ func NewSimApp( // Mock Module setup for testing IBC and also acts as the interchain accounts authentication module // NOTE: the IBC mock keeper and application module is used only for testing core IBC. Do // not replicate if you do not need to test core IBC or light clients. - mockModule := ibcmock.NewAppModule(&app.IBCKeeper.PortKeeper) + mockModule := ibcmock.NewAppModule(app.IBCKeeper.PortKeeper) // The mock module is used for testing IBC mockIBCModule := ibcmock.NewIBCModule(&mockModule, ibcmock.NewIBCApp(ibcmock.ModuleName, scopedIBCMockKeeper)) From 9469dd6c9cb7f0b358cf02ad48b475ecf3504b66 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Mon, 18 Sep 2023 15:16:38 +0200 Subject: [PATCH 2/5] spacing --- docs/migrations/v7-to-v8.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/migrations/v7-to-v8.md b/docs/migrations/v7-to-v8.md index c4d387af376..9db4e066444 100644 --- a/docs/migrations/v7-to-v8.md +++ b/docs/migrations/v7-to-v8.md @@ -19,19 +19,19 @@ The type of the `PortKeeper` field of the IBC keeper have been changed to `*port ```diff // Keeper defines each ICS keeper for IBC type Keeper struct { - // implements gRPC QueryServer interface - types.QueryServer + // implements gRPC QueryServer interface + types.QueryServer - cdc codec.BinaryCodec + cdc codec.BinaryCodec - ClientKeeper clientkeeper.Keeper - ConnectionKeeper connectionkeeper.Keeper - ChannelKeeper channelkeeper.Keeper + ClientKeeper clientkeeper.Keeper + ConnectionKeeper connectionkeeper.Keeper + ChannelKeeper channelkeeper.Keeper - PortKeeper portkeeper.Keeper + PortKeeper *portkeeper.Keeper - Router *porttypes.Router + Router *porttypes.Router - authority string + authority string } ``` From 1dbb4fa387ba42cf9738a7ad31642bb9044b819b Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Mon, 18 Sep 2023 15:18:11 +0200 Subject: [PATCH 3/5] alignment --- docs/migrations/v7-to-v8.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/migrations/v7-to-v8.md b/docs/migrations/v7-to-v8.md index 9db4e066444..5d2f46ce138 100644 --- a/docs/migrations/v7-to-v8.md +++ b/docs/migrations/v7-to-v8.md @@ -27,8 +27,8 @@ type Keeper struct { ClientKeeper clientkeeper.Keeper ConnectionKeeper connectionkeeper.Keeper ChannelKeeper channelkeeper.Keeper -- PortKeeper portkeeper.Keeper -+ PortKeeper *portkeeper.Keeper +- PortKeeper portkeeper.Keeper ++ PortKeeper *portkeeper.Keeper Router *porttypes.Router authority string From 986ae621ff7bacfdf416e082a05bb4ebe2d350be Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Mon, 18 Sep 2023 19:57:05 +0200 Subject: [PATCH 4/5] fix callbacks module --- docs/migrations/v7-to-v8.md | 2 ++ modules/apps/callbacks/testing/simapp/app.go | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/migrations/v7-to-v8.md b/docs/migrations/v7-to-v8.md index 5d2f46ce138..e9d8ae8623c 100644 --- a/docs/migrations/v7-to-v8.md +++ b/docs/migrations/v7-to-v8.md @@ -35,6 +35,8 @@ type Keeper struct { } ``` +See [this PR](https://github.com/cosmos/ibc-go/pull/4703/files#diff-d18972debee5e64f16e40807b2ae112ddbe609504a93ea5e1c80a5d489c3a08a) for the changes required in `app.go`. + TODO: https://github.com/cosmos/ibc-go/pull/3505 (extra parameter added to transfer's `GenesisState`) - You must pass the `authority` to the icahost keeper. ([#3520](https://github.com/cosmos/ibc-go/pull/3520)) See [diff](https://github.com/cosmos/ibc-go/pull/3520/files#diff-d18972debee5e64f16e40807b2ae112ddbe609504a93ea5e1c80a5d489c3a08a). diff --git a/modules/apps/callbacks/testing/simapp/app.go b/modules/apps/callbacks/testing/simapp/app.go index 81e3c2300dc..2e8819e2d58 100644 --- a/modules/apps/callbacks/testing/simapp/app.go +++ b/modules/apps/callbacks/testing/simapp/app.go @@ -446,14 +446,14 @@ func NewSimApp( appCodec, keys[ibcfeetypes.StoreKey], app.IBCKeeper.ChannelKeeper, // may be replaced with IBC middleware app.IBCKeeper.ChannelKeeper, - &app.IBCKeeper.PortKeeper, app.AccountKeeper, app.BankKeeper, + app.IBCKeeper.PortKeeper, app.AccountKeeper, app.BankKeeper, ) // ICA Controller keeper app.ICAControllerKeeper = icacontrollerkeeper.NewKeeper( appCodec, keys[icacontrollertypes.StoreKey], app.GetSubspace(icacontrollertypes.SubModuleName), app.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, + app.IBCKeeper.ChannelKeeper, app.IBCKeeper.PortKeeper, scopedICAControllerKeeper, app.MsgServiceRouter(), authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -462,7 +462,7 @@ func NewSimApp( app.ICAHostKeeper = icahostkeeper.NewKeeper( appCodec, keys[icahosttypes.StoreKey], app.GetSubspace(icahosttypes.SubModuleName), app.IBCFeeKeeper, // use ics29 fee as ics4Wrapper in middleware stack - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, + app.IBCKeeper.ChannelKeeper, app.IBCKeeper.PortKeeper, app.AccountKeeper, scopedICAHostKeeper, app.MsgServiceRouter(), authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -479,7 +479,7 @@ func NewSimApp( app.TransferKeeper = ibctransferkeeper.NewKeeper( appCodec, keys[ibctransfertypes.StoreKey], app.GetSubspace(ibctransfertypes.ModuleName), app.IBCFeeKeeper, // ISC4 Wrapper: fee IBC middleware - app.IBCKeeper.ChannelKeeper, &app.IBCKeeper.PortKeeper, + app.IBCKeeper.ChannelKeeper, app.IBCKeeper.PortKeeper, app.AccountKeeper, app.BankKeeper, scopedTransferKeeper, authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) @@ -489,7 +489,7 @@ func NewSimApp( // Mock Module setup for testing IBC and also acts as the interchain accounts authentication module // NOTE: the IBC mock keeper and application module is used only for testing core IBC. Do // not replicate if you do not need to test core IBC or light clients. - mockModule := ibcmock.NewAppModule(&app.IBCKeeper.PortKeeper) + mockModule := ibcmock.NewAppModule(app.IBCKeeper.PortKeeper) // The mock module is used for testing IBC mockIBCModule := ibcmock.NewIBCModule(&mockModule, ibcmock.NewIBCApp(ibcmock.ModuleName, scopedIBCMockKeeper)) From 21063eee3c26de841442b9377ec6b033f8d8d722 Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Tue, 19 Sep 2023 13:39:10 +0200 Subject: [PATCH 5/5] fix tests --- .../27-interchain-accounts/controller/keeper/keeper_test.go | 4 ++-- .../apps/27-interchain-accounts/host/keeper/keeper_test.go | 6 +++--- modules/apps/transfer/keeper/keeper_test.go | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/apps/27-interchain-accounts/controller/keeper/keeper_test.go b/modules/apps/27-interchain-accounts/controller/keeper/keeper_test.go index 68abb999c2e..c420efca166 100644 --- a/modules/apps/27-interchain-accounts/controller/keeper/keeper_test.go +++ b/modules/apps/27-interchain-accounts/controller/keeper/keeper_test.go @@ -121,7 +121,7 @@ func (suite *KeeperTestSuite) TestNewKeeper() { suite.chainA.GetSimApp().GetSubspace(types.SubModuleName), suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, - &suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, suite.chainA.GetSimApp().ScopedICAControllerKeeper, suite.chainA.GetSimApp().MsgServiceRouter(), suite.chainA.GetSimApp().ICAControllerKeeper.GetAuthority(), @@ -134,7 +134,7 @@ func (suite *KeeperTestSuite) TestNewKeeper() { suite.chainA.GetSimApp().GetSubspace(types.SubModuleName), suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, - &suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, suite.chainA.GetSimApp().ScopedICAControllerKeeper, suite.chainA.GetSimApp().MsgServiceRouter(), "", // authority diff --git a/modules/apps/27-interchain-accounts/host/keeper/keeper_test.go b/modules/apps/27-interchain-accounts/host/keeper/keeper_test.go index a0acc4b21d6..95dd3f8b89c 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/keeper_test.go +++ b/modules/apps/27-interchain-accounts/host/keeper/keeper_test.go @@ -143,7 +143,7 @@ func (suite *KeeperTestSuite) TestNewKeeper() { suite.chainA.GetSimApp().GetSubspace(types.SubModuleName), suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, - &suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, suite.chainA.GetSimApp().AccountKeeper, suite.chainA.GetSimApp().ScopedICAHostKeeper, suite.chainA.GetSimApp().MsgServiceRouter(), @@ -157,7 +157,7 @@ func (suite *KeeperTestSuite) TestNewKeeper() { suite.chainA.GetSimApp().GetSubspace(types.SubModuleName), suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, - &suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, authkeeper.AccountKeeper{}, // empty account keeper suite.chainA.GetSimApp().ScopedICAHostKeeper, suite.chainA.GetSimApp().MsgServiceRouter(), @@ -171,7 +171,7 @@ func (suite *KeeperTestSuite) TestNewKeeper() { suite.chainA.GetSimApp().GetSubspace(types.SubModuleName), suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, - &suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, suite.chainA.GetSimApp().AccountKeeper, suite.chainA.GetSimApp().ScopedICAHostKeeper, suite.chainA.GetSimApp().MsgServiceRouter(), diff --git a/modules/apps/transfer/keeper/keeper_test.go b/modules/apps/transfer/keeper/keeper_test.go index 281bebd9aff..2e164f05c5b 100644 --- a/modules/apps/transfer/keeper/keeper_test.go +++ b/modules/apps/transfer/keeper/keeper_test.go @@ -58,7 +58,7 @@ func (suite *KeeperTestSuite) TestNewKeeper() { suite.chainA.GetSimApp().GetSubspace(types.ModuleName), suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, - &suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, suite.chainA.GetSimApp().AccountKeeper, suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetSimApp().ScopedTransferKeeper, @@ -72,7 +72,7 @@ func (suite *KeeperTestSuite) TestNewKeeper() { suite.chainA.GetSimApp().GetSubspace(types.ModuleName), suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, - &suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, authkeeper.AccountKeeper{}, // empty account keeper suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetSimApp().ScopedTransferKeeper, @@ -86,7 +86,7 @@ func (suite *KeeperTestSuite) TestNewKeeper() { suite.chainA.GetSimApp().GetSubspace(types.ModuleName), suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper, - &suite.chainA.GetSimApp().IBCKeeper.PortKeeper, + suite.chainA.GetSimApp().IBCKeeper.PortKeeper, suite.chainA.GetSimApp().AccountKeeper, suite.chainA.GetSimApp().BankKeeper, suite.chainA.GetSimApp().ScopedTransferKeeper,