From 987862a07df573595e750661871adfbd4667713b Mon Sep 17 00:00:00 2001 From: Haiyi Zhong Date: Sat, 5 Oct 2024 02:21:55 +0800 Subject: [PATCH] revert migration --- x/nexus/keeper/migrate.go | 18 ++++---- x/nexus/keeper/migrate_test.go | 79 ++++++++++++++++++---------------- x/nexus/module.go | 4 +- 3 files changed, 53 insertions(+), 48 deletions(-) diff --git a/x/nexus/keeper/migrate.go b/x/nexus/keeper/migrate.go index 3c191deb8b..19a94133fc 100644 --- a/x/nexus/keeper/migrate.go +++ b/x/nexus/keeper/migrate.go @@ -3,23 +3,23 @@ package keeper import ( sdk "github.com/cosmos/cosmos-sdk/types" - axelarnettypes "github.com/axelarnetwork/axelar-core/x/axelarnet/types" "github.com/axelarnetwork/axelar-core/x/nexus/types" ) -// Migrate7to8 returns the handler that performs in-place store migrations -func Migrate7to8(_ Keeper, bank types.BankKeeper, account types.AccountKeeper) func(ctx sdk.Context) error { +// Migrate6to7 returns the handler that performs in-place store migrations +func Migrate6to7(k Keeper) func(ctx sdk.Context) error { return func(ctx sdk.Context) error { - if err := sendCoinsFromAxelarnetToNexus(ctx, bank, account); err != nil { - return err - } + addModuleParamGateway(ctx, k) + addModuleParamEndBlockerLimit(ctx, k) return nil } } -func sendCoinsFromAxelarnetToNexus(ctx sdk.Context, bank types.BankKeeper, account types.AccountKeeper) error { - balances := bank.GetAllBalances(ctx, account.GetModuleAddress(axelarnettypes.ModuleName)) +func addModuleParamGateway(ctx sdk.Context, k Keeper) { + k.params.Set(ctx, types.KeyGateway, types.DefaultParams().Gateway) +} - return bank.SendCoinsFromModuleToModule(ctx, axelarnettypes.ModuleName, types.ModuleName, balances) +func addModuleParamEndBlockerLimit(ctx sdk.Context, k Keeper) { + k.params.Set(ctx, types.KeyEndBlockerLimit, types.DefaultParams().EndBlockerLimit) } diff --git a/x/nexus/keeper/migrate_test.go b/x/nexus/keeper/migrate_test.go index 2a2d8d4cf1..702c033bc5 100644 --- a/x/nexus/keeper/migrate_test.go +++ b/x/nexus/keeper/migrate_test.go @@ -11,50 +11,55 @@ import ( "github.com/axelarnetwork/axelar-core/app" "github.com/axelarnetwork/axelar-core/testutils/fake" - "github.com/axelarnetwork/axelar-core/testutils/rand" - axelarnettypes "github.com/axelarnetwork/axelar-core/x/axelarnet/types" "github.com/axelarnetwork/axelar-core/x/nexus/keeper" "github.com/axelarnetwork/axelar-core/x/nexus/types" - "github.com/axelarnetwork/axelar-core/x/nexus/types/mock" + . "github.com/axelarnetwork/utils/test" ) -func TestMigrate7to8(t *testing.T) { +func TestMigrate6to7(t *testing.T) { encCfg := app.MakeEncodingConfig() subspace := params.NewSubspace(encCfg.Codec, encCfg.Amino, sdk.NewKVStoreKey("nexusKey"), sdk.NewKVStoreKey("tNexusKey"), "nexus") k := keeper.NewKeeper(encCfg.Codec, sdk.NewKVStoreKey("nexus"), subspace) ctx := sdk.NewContext(fake.NewMultiStore(), tmproto.Header{}, false, log.TestingLogger()) - t.Run("sendCoinsFromAxelarnetToNexus", func(t *testing.T) { - bank := &mock.BankKeeperMock{} - account := &mock.AccountKeeperMock{} - balances := sdk.NewCoins(rand.Coin(), rand.Coin(), rand.Coin()) - axelarnetModuleAccount := rand.AccAddr() - nexusModuleAccount := rand.AccAddr() - - account.GetModuleAddressFunc = func(name string) sdk.AccAddress { - switch name { - case axelarnettypes.ModuleName: - return axelarnetModuleAccount - case types.ModuleName: - return nexusModuleAccount - default: - return sdk.AccAddress{} - } - } - bank.GetAllBalancesFunc = func(ctx sdk.Context, addr sdk.AccAddress) sdk.Coins { - if addr.Equals(axelarnetModuleAccount) { - return balances - } - return sdk.NewCoins() - } - bank.SendCoinsFromModuleToModuleFunc = func(ctx sdk.Context, sender, recipient string, coins sdk.Coins) error { return nil } - - err := keeper.Migrate7to8(k, bank, account)(ctx) - - assert.NoError(t, err) - assert.Len(t, bank.SendCoinsFromModuleToModuleCalls(), 1) - assert.Equal(t, axelarnettypes.ModuleName, bank.SendCoinsFromModuleToModuleCalls()[0].SenderModule) - assert.Equal(t, types.ModuleName, bank.SendCoinsFromModuleToModuleCalls()[0].RecipientModule) - assert.Equal(t, balances, bank.SendCoinsFromModuleToModuleCalls()[0].Amt) - }) + Given("subspace is setup with params before migration", func() { + subspace.Set(ctx, types.KeyChainActivationThreshold, types.DefaultParams().ChainActivationThreshold) + subspace.Set(ctx, types.KeyChainMaintainerMissingVoteThreshold, types.DefaultParams().ChainMaintainerMissingVoteThreshold) + subspace.Set(ctx, types.KeyChainMaintainerIncorrectVoteThreshold, types.DefaultParams().ChainMaintainerIncorrectVoteThreshold) + subspace.Set(ctx, types.KeyChainMaintainerCheckWindow, types.DefaultParams().ChainMaintainerCheckWindow) + }). + When("", func() {}). + Then("the migration should add the new param with the default value", func(t *testing.T) { + actualGateway := sdk.AccAddress{} + actualEndBlockerLimit := uint64(0) + + assert.PanicsWithError(t, "UnmarshalJSON cannot decode empty bytes", func() { + subspace.Get(ctx, types.KeyGateway, &actualGateway) + }) + assert.PanicsWithError(t, "UnmarshalJSON cannot decode empty bytes", func() { + subspace.Get(ctx, types.KeyEndBlockerLimit, &actualEndBlockerLimit) + }) + assert.PanicsWithError(t, "UnmarshalJSON cannot decode empty bytes", func() { + k.GetParams(ctx) + }) + + keeper.Migrate6to7(k)(ctx) + + assert.NotPanics(t, func() { + subspace.Get(ctx, types.KeyGateway, &actualGateway) + }) + assert.NotPanics(t, func() { + subspace.Get(ctx, types.KeyEndBlockerLimit, &actualEndBlockerLimit) + }) + assert.NotPanics(t, func() { + k.GetParams(ctx) + }) + + assert.Equal(t, types.DefaultParams().Gateway, actualGateway) + assert.Equal(t, types.DefaultParams().Gateway, k.GetParams(ctx).Gateway) + assert.Equal(t, types.DefaultParams().EndBlockerLimit, actualEndBlockerLimit) + assert.Equal(t, types.DefaultParams().EndBlockerLimit, k.GetParams(ctx).EndBlockerLimit) + }). + Run(t) + } diff --git a/x/nexus/module.go b/x/nexus/module.go index 0b5e7f6579..ebe87f28aa 100644 --- a/x/nexus/module.go +++ b/x/nexus/module.go @@ -120,7 +120,7 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { types.RegisterMsgServiceServer(grpc.ServerWithSDKErrors{Server: cfg.MsgServer(), Err: types.ErrNexus, Logger: am.keeper.Logger}, msgServer) types.RegisterQueryServiceServer(cfg.QueryServer(), keeper.NewGRPCQuerier(am.keeper, am.axelarnet)) - err := cfg.RegisterMigration(types.ModuleName, 7, keeper.Migrate7to8(am.keeper, am.bank, am.account)) + err := cfg.RegisterMigration(types.ModuleName, 6, keeper.Migrate6to7(am.keeper)) if err != nil { panic(err) } @@ -171,4 +171,4 @@ func (am AppModule) LegacyQuerierHandler(*codec.LegacyAmino) sdk.Querier { } // ConsensusVersion implements AppModule/ConsensusVersion. -func (AppModule) ConsensusVersion() uint64 { return 8 } +func (AppModule) ConsensusVersion() uint64 { return 7 }