package v7
import (
"fmt"
"time"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types"
"github.com/cybercongress/go-cyber/v7/app/keepers"
)
func CreateV7UpgradeHandler(
mm *module.Manager,
cfg module.Configurator,
keepers *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) {
before := time.Now()
logger := ctx.Logger().With("upgrade", UpgradeName)
logger.Info(fmt.Sprintf("pre migrate version map: %v", vm))
versionMap, err := mm.RunMigrations(ctx, cfg, vm)
if err != nil {
return nil, err
}
logger.Info(fmt.Sprintf("post migrate version map: %v", versionMap))
rankParams := keepers.RankKeeper.GetParams(ctx)
rankParams.CalculationPeriod = 10
err = keepers.RankKeeper.SetParams(ctx, rankParams)
if err != nil {
return nil, err
}
cidCount := keepers.GraphKeeper.GetCidsCount(ctx)
keepers.RankKeeper.SetDebugMerkleTrees(ctx, cidCount)
after := time.Now()
ctx.Logger().Info("upgrade time", "duration ms", after.Sub(before).Milliseconds())
return versionMap, err
}
}