diff --git a/modules/apps/27-interchain-accounts/host/keeper/export_test.go b/modules/apps/27-interchain-accounts/host/keeper/export_test.go index bad2c32661a..38b1653259d 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/export_test.go +++ b/modules/apps/27-interchain-accounts/host/keeper/export_test.go @@ -14,3 +14,8 @@ import ( func (k Keeper) GetAppMetadata(ctx sdk.Context, portID, channelID string) (icatypes.Metadata, error) { return k.getAppMetadata(ctx, portID, channelID) } + +// NewModuleQuerySafeWhitelist is a wrapper around newModuleQuerySafeWhitelist to allow the function to be directly called in tests. +func NewModuleQuerySafeWhitelist() []string { + return newModuleQuerySafeWhitelist() +} 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 37e26c7807a..afc5eabe4b8 100644 --- a/modules/apps/27-interchain-accounts/host/keeper/keeper_test.go +++ b/modules/apps/27-interchain-accounts/host/keeper/keeper_test.go @@ -201,6 +201,31 @@ func (suite *KeeperTestSuite) TestNewKeeper() { } } +func (suite *KeeperTestSuite) TestNewModuleQuerySafeWhitelist() { + // Currently, all queries in bank, staking, auth, and circuit are marked safe + // Notably, the gov and distribution modules are not marked safe + + var whitelist []string + suite.Require().NotPanics(func() { + whitelist = keeper.NewModuleQuerySafeWhitelist() + }) + + suite.Require().NotEmpty(whitelist) + suite.Require().Contains(whitelist, "/cosmos.bank.v1beta1.Query/Balance") + suite.Require().Contains(whitelist, "/cosmos.bank.v1beta1.Query/AllBalances") + suite.Require().Contains(whitelist, "/cosmos.staking.v1beta1.Query/Validator") + suite.Require().Contains(whitelist, "/cosmos.staking.v1beta1.Query/Validators") + suite.Require().Contains(whitelist, "/cosmos.circuit.v1.Query/Account") + suite.Require().Contains(whitelist, "/cosmos.circuit.v1.Query/DisabledList") + suite.Require().Contains(whitelist, "/cosmos.auth.v1beta1.Query/Accounts") + suite.Require().Contains(whitelist, "/cosmos.auth.v1beta1.Query/ModuleAccountByName") + suite.Require().Contains(whitelist, "/ibc.core.client.v1.Query/VerifyMembership") + suite.Require().NotContains(whitelist, "/cosmos.gov.v1beta1.Query/Proposals") + suite.Require().NotContains(whitelist, "/cosmos.gov.v1.Query/Proposals") + suite.Require().NotContains(whitelist, "/cosmos.distribution.v1beta1.Query/Params") + suite.Require().NotContains(whitelist, "/cosmos.distribution.v1beta1.Query/DelegationRewards") +} + func (suite *KeeperTestSuite) TestGetInterchainAccountAddress() { suite.SetupTest()