package v3
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"
ibcfeetypes "github.com/cosmos/ibc-go/v7/modules/apps/29-fee/types"
"github.com/cybercongress/go-cyber/v7/app/keepers"
)
func CreateV3UpgradeHandler(
mm *module.Manager,
cfg module.Configurator,
_ *keepers.AppKeepers,
) upgradetypes.UpgradeHandler {
return func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) {
before := time.Now()
logger := ctx.Logger().With("upgrade", UpgradeName)
logger.Info(fmt.Sprintf("ibcfee module version %s set", fmt.Sprint(fromVM[ibcfeetypes.ModuleName])))
versionMap, err := mm.RunMigrations(ctx, cfg, fromVM)
after := time.Now()
ctx.Logger().Info("migration time", "duration_ms", after.Sub(before).Milliseconds())
return versionMap, err
}
}