Skip to content

Commit

Permalink
increment consensus ver and register migration
Browse files Browse the repository at this point in the history
  • Loading branch information
shaspitz committed Sep 13, 2023
1 parent 1a009e7 commit da546f1
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 10 deletions.
8 changes: 4 additions & 4 deletions x/ccv/consumer/keeper/migration.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,18 @@ func NewMigrator(ccvConsumerKeeper Keeper, ccvConsumerParamSpace paramtypes.Subs
// https://github.com/cosmos/interchain-security/pull/1037
//
// Note an equivalent migration is not required for providers.
func (k Keeper) MigrateConsumerPacketData(ctx sdk.Context) {
func (k Keeper) MigrateConsumerPacketData(ctx sdk.Context) error {
// deserialize packet data from old format
var depreciatedType ccvtypes.ConsumerPacketDataList
store := ctx.KVStore(k.storeKey)
bz := store.Get([]byte{consumertypes.PendingDataPacketsBytePrefix})
if bz == nil {
ctx.Logger().Info("no pending data packets to migrate")
return
return nil
}
err := depreciatedType.Unmarshal(bz)
if err != nil {
// An error here would indicate something is very wrong
panic(fmt.Errorf("failed to unmarshal pending data packets: %w", err))
return fmt.Errorf("failed to unmarshal pending data packets: %w", err)
}

// Delete old data
Expand All @@ -48,6 +47,7 @@ func (k Keeper) MigrateConsumerPacketData(ctx sdk.Context) {
for _, data := range depreciatedType.List {
k.AppendPendingPacket(ctx, data.Type, data.Data)
}
return nil
}

// TODO: the following hackyness could be removed if we're able to reference older versions of ICS.
Expand Down
10 changes: 4 additions & 6 deletions x/ccv/consumer/module.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@ func (AppModule) RegisterInvariants(ir sdk.InvariantRegistry) {
// RegisterServices registers module services.
func (am AppModule) RegisterServices(cfg module.Configurator) {
consumertypes.RegisterQueryServer(cfg.QueryServer(), am.keeper)
cfg.RegisterMigration(consumertypes.ModuleName,
1, // from version 1
am.keeper.MigrateConsumerPacketData)
}

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

// ConsensusVersion implements AppModule/ConsensusVersion.
func (AppModule) ConsensusVersion() uint64 {
// Note that v1.0.0 consumers should technically be on a different consensus version
// than v1.2.0-multiden and v2.0.0. However, Neutron was the first consumer to launch
// in prod, and they've started on v1.2.0-multiden (which has a ConsensusVersion of 1).
//
// v1.2.0-multiden and v2.0.0 are consensus compatible, so they need return the same ConsensusVersion of 1.
return 1
return 2
}

// BeginBlock implements the AppModule interface
Expand Down

0 comments on commit da546f1

Please sign in to comment.