From 4457b44d0f92bc43097bdf29678aa7ba7f16b3fd Mon Sep 17 00:00:00 2001 From: Danilo Pantani Date: Thu, 27 Jun 2024 12:34:59 +0200 Subject: [PATCH 1/3] add method to check if the scope module already exist --- modules/capability/keeper/keeper.go | 6 ++++++ modules/capability/keeper/keeper_test.go | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/modules/capability/keeper/keeper.go b/modules/capability/keeper/keeper.go index 2e663b536fc..5d856c5e64b 100644 --- a/modules/capability/keeper/keeper.go +++ b/modules/capability/keeper/keeper.go @@ -66,6 +66,12 @@ func NewKeeper(cdc codec.BinaryCodec, storeKey, memKey storetypes.StoreKey) *Kee } } +// HasModule checks if the module name already has a ScopedKeeper. +func (k *Keeper) HasModule(moduleName string) bool { + _, ok := k.scopedModules[moduleName] + return ok +} + // ScopeToModule attempts to create and return a ScopedKeeper for a given module // by name. It will panic if the keeper is already sealed or if the module name // already has a ScopedKeeper. diff --git a/modules/capability/keeper/keeper_test.go b/modules/capability/keeper/keeper_test.go index 7585da92c20..d2b7fcf6589 100644 --- a/modules/capability/keeper/keeper_test.go +++ b/modules/capability/keeper/keeper_test.go @@ -76,6 +76,12 @@ func (suite *KeeperTestSuite) TestSeal() { }) } +func (suite *KeeperTestSuite) TestHasModule() { + _ = suite.keeper.ScopeToModule(bankModuleName) + suite.Require().True(suite.keeper.HasModule(bankModuleName), "bank module not exist") + suite.Require().False(suite.keeper.HasModule("invalid"), "invalid module exist") +} + func (suite *KeeperTestSuite) TestNewCapability() { sk := suite.keeper.ScopeToModule(bankModuleName) From 37cda38ceae9a78720fcac409997c3d2b41795bb Mon Sep 17 00:00:00 2001 From: Damian Nolan Date: Mon, 1 Jul 2024 10:20:08 +0200 Subject: [PATCH 2/3] chore: add changelog --- modules/capability/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/capability/CHANGELOG.md b/modules/capability/CHANGELOG.md index f0ee998d580..b58e88afb56 100644 --- a/modules/capability/CHANGELOG.md +++ b/modules/capability/CHANGELOG.md @@ -41,6 +41,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Improvements +* [\#6716](https://github.com/cosmos/ibc-go/pull/6716) Add `HasModule` to capability keeper to allow checking if a scoped module already exists. + ### Features ### Bug Fixes From 54e117f8678d4cb07ba2b51611432c1fdb728a55 Mon Sep 17 00:00:00 2001 From: Damian Nolan Date: Mon, 1 Jul 2024 11:59:02 +0200 Subject: [PATCH 3/3] Update modules/capability/keeper/keeper_test.go Co-authored-by: Nikolas De Giorgis --- modules/capability/keeper/keeper_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/capability/keeper/keeper_test.go b/modules/capability/keeper/keeper_test.go index d2b7fcf6589..c2cd70597dc 100644 --- a/modules/capability/keeper/keeper_test.go +++ b/modules/capability/keeper/keeper_test.go @@ -78,8 +78,8 @@ func (suite *KeeperTestSuite) TestSeal() { func (suite *KeeperTestSuite) TestHasModule() { _ = suite.keeper.ScopeToModule(bankModuleName) - suite.Require().True(suite.keeper.HasModule(bankModuleName), "bank module not exist") - suite.Require().False(suite.keeper.HasModule("invalid"), "invalid module exist") + suite.Require().True(suite.keeper.HasModule(bankModuleName), "bank module does not exist") + suite.Require().False(suite.keeper.HasModule("invalid"), "invalid module exists") } func (suite *KeeperTestSuite) TestNewCapability() {