diff --git a/CHANGELOG.md b/CHANGELOG.md index 09917aa56..ad439e781 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ - [#1060](https://github.com/crypto-org-chain/chain-main/pull/1060) Upgrade rocksdb to `v9.2.1` and bump versiondb. - [#1061](https://github.com/crypto-org-chain/chain-main/pull/1061) Integrate sdk 0.50. - [#1068](https://github.com/crypto-org-chain/chain-main/pull/1068) Upgrade ibc-go to `v8.3.2` and remove icaauth module. +- [#1084](https://github.com/crypto-org-chain/chain-main/pull/1084) Add MsgModuleQuerySafe in allowed messages for ica host param. *Dec 6, 2023* diff --git a/app/app.go b/app/app.go index ee43ee0f4..308518ca9 100644 --- a/app/app.go +++ b/app/app.go @@ -771,7 +771,7 @@ func New( // upgrade. app.setPostHandler() - app.RegisterUpgradeHandlers(app.appCodec, app.IBCKeeper.ClientKeeper) + app.RegisterUpgradeHandlers(app.appCodec) if loadLatest { if err := app.LoadLatestVersion(); err != nil { diff --git a/app/upgrades.go b/app/upgrades.go index 824b5c73c..df63304a6 100644 --- a/app/upgrades.go +++ b/app/upgrades.go @@ -3,18 +3,34 @@ package app import ( "context" "fmt" + "slices" storetypes "cosmossdk.io/store/types" upgradetypes "cosmossdk.io/x/upgrade/types" "github.com/cosmos/cosmos-sdk/codec" + sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/module" - clientkeeper "github.com/cosmos/ibc-go/v8/modules/core/02-client/keeper" ) -func (app *ChainApp) RegisterUpgradeHandlers(cdc codec.BinaryCodec, clientKeeper clientkeeper.Keeper) { +func (app *ChainApp) RegisterUpgradeHandlers(cdc codec.BinaryCodec) { planName := "v5.0" app.UpgradeKeeper.SetUpgradeHandler(planName, func(ctx context.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { - return app.ModuleManager.RunMigrations(ctx, app.configurator, fromVM) + m, err := app.ModuleManager.RunMigrations(ctx, app.configurator, fromVM) + if err != nil { + return m, err + } + sdkCtx := sdk.UnwrapSDKContext(ctx) + { + params := app.ICAHostKeeper.GetParams(sdkCtx) + msg := "/ibc.applications.interchain_accounts.host.v1.MsgModuleQuerySafe" + if !slices.ContainsFunc(params.AllowMessages, func(allowMsg string) bool { + return allowMsg == "*" || allowMsg == msg + }) { + params.AllowMessages = append(params.AllowMessages, msg) + app.ICAHostKeeper.SetParams(sdkCtx, params) + } + } + return m, nil }) upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()