Skip to content

Commit

Permalink
Add migration for channel params (cosmos#5640)
Browse files Browse the repository at this point in the history
* chore: adding channel params migration

* chore: removed separate migration fn

* chore: fix linter

* chore: bump consensus

* chore: fix linter again

* chore: pr feedback

---------

Co-authored-by: Carlos Rodriguez <[email protected]>
  • Loading branch information
chatton and crodriguezvega authored Jan 18, 2024
1 parent 9776943 commit 59ac9b2
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 1 deletion.
25 changes: 25 additions & 0 deletions modules/core/04-channel/keeper/migrations.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package keeper

import (
sdk "github.com/cosmos/cosmos-sdk/types"

channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
)

// Migrator is a struct for handling in-place store migrations.
type Migrator struct {
keeper Keeper
}

// NewMigrator returns a new Migrator.
func NewMigrator(keeper Keeper) Migrator {
return Migrator{keeper: keeper}
}

// MigrateParams migrates params to the default channel params.
func (m Migrator) MigrateParams(ctx sdk.Context) error {
params := channeltypes.DefaultParams()
m.keeper.SetParams(ctx, params)
m.keeper.Logger(ctx).Info("successfully migrated ibc channel params")
return nil
}
34 changes: 34 additions & 0 deletions modules/core/04-channel/keeper/migrations_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package keeper_test

import (
"github.com/cosmos/ibc-go/v8/modules/core/04-channel/keeper"
channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
)

// TestMigrateDefaultParams tests the migration for the channel params
func (suite *KeeperTestSuite) TestMigrateDefaultParams() {
testCases := []struct {
name string
expectedParams channeltypes.Params
}{
{
"success: default params",
channeltypes.DefaultParams(),
},
}

for _, tc := range testCases {
tc := tc
suite.Run(tc.name, func() {
suite.SetupTest() // reset

ctx := suite.chainA.GetContext()
migrator := keeper.NewMigrator(suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper)
err := migrator.MigrateParams(ctx)
suite.Require().NoError(err)

params := suite.chainA.GetSimApp().IBCKeeper.ChannelKeeper.GetParams(ctx)
suite.Require().Equal(tc.expectedParams, params)
})
}
}
9 changes: 8 additions & 1 deletion modules/core/module.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types"
connectionkeeper "github.com/cosmos/ibc-go/v8/modules/core/03-connection/keeper"
connectiontypes "github.com/cosmos/ibc-go/v8/modules/core/03-connection/types"
channelkeeper "github.com/cosmos/ibc-go/v8/modules/core/04-channel/keeper"
channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
"github.com/cosmos/ibc-go/v8/modules/core/client/cli"
"github.com/cosmos/ibc-go/v8/modules/core/exported"
Expand Down Expand Up @@ -157,6 +158,12 @@ func (am AppModule) RegisterServices(cfg module.Configurator) {
}); err != nil {
panic(err)
}

channelMigrator := channelkeeper.NewMigrator(am.keeper.ChannelKeeper)
err := cfg.RegisterMigration(exported.ModuleName, 5, channelMigrator.MigrateParams)
if err != nil {
panic(err)
}
}

// InitGenesis performs genesis initialization for the ibc module. It returns
Expand All @@ -177,7 +184,7 @@ func (am AppModule) ExportGenesis(ctx sdk.Context, cdc codec.JSONCodec) json.Raw
}

// ConsensusVersion implements AppModule/ConsensusVersion.
func (AppModule) ConsensusVersion() uint64 { return 5 }
func (AppModule) ConsensusVersion() uint64 { return 6 }

// BeginBlock returns the begin blocker for the ibc module.
func (am AppModule) BeginBlock(ctx context.Context) error {
Expand Down

0 comments on commit 59ac9b2

Please sign in to comment.