Skip to content

Commit

Permalink
feat: fix upgradeHander issue (#353)
Browse files Browse the repository at this point in the history
  • Loading branch information
gyuguen authored Jun 14, 2022
1 parent ef2b77d commit 91a8646
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
31 changes: 27 additions & 4 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import (
"github.com/cosmos/cosmos-sdk/server/api"
"github.com/cosmos/cosmos-sdk/server/config"
servertypes "github.com/cosmos/cosmos-sdk/server/types"
storetypes "github.com/cosmos/cosmos-sdk/store/types"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/module"
"github.com/cosmos/cosmos-sdk/version"
Expand Down Expand Up @@ -590,6 +591,11 @@ func New(
)
app.SetEndBlocker(app.EndBlocker)

err = app.registerUpgradeHandlers()
if err != nil {
panic("Failed to register upgradeHandler: " + err.Error())
}

if loadLatest {
if err := app.LoadLatestVersion(); err != nil {
tmos.Exit(err.Error())
Expand All @@ -615,8 +621,6 @@ func New(
app.ScopedTransferKeeper = scopedTransferKeeper
app.ScopedWasmKeeper = scopedWasmKeeper

app.registerUpgradeHandlers()

return app
}

Expand Down Expand Up @@ -785,7 +789,10 @@ func initParamsKeeper(appCodec codec.BinaryMarshaler, legacyAmino *codec.LegacyA
return paramsKeeper
}

func (app *App) registerUpgradeHandlers() {
// registerUpgradeHandlers registers upgrade handlers, and sets the store loader if necessary.
// This function must be called before sealing the BaseApp (i.e. by app.LoadLatestVersion())
// because the storetypes loader cannot be set if BaseApp is already sealed.
func (app *App) registerUpgradeHandlers() error {
app.UpgradeKeeper.SetUpgradeHandler("v2.0.2", func(ctx sdk.Context, plan upgradetypes.Plan) {})

app.UpgradeKeeper.SetUpgradeHandler("v2.0.3", func(ctx sdk.Context, plan upgradetypes.Plan) {
Expand Down Expand Up @@ -819,9 +826,25 @@ func (app *App) registerUpgradeHandlers() {
}
})

app.UpgradeKeeper.SetUpgradeHandler("v2.1.0-alpha1", func(ctx sdk.Context, plan upgradetypes.Plan) {
app.UpgradeKeeper.SetUpgradeHandler("v2.1.0-alpha2", func(ctx sdk.Context, plan upgradetypes.Plan) {
datadeal.InitGenesis(ctx, app.dataDealKeeper, *datadealtypes.DefaultGenesis())
datapool.InitGenesis(ctx, app.dataPoolKeeper, *datapooltypes.DefaultGenesis())
oracle.InitGenesis(ctx, app.oracleKeeper, *oracletypes.DefaultGenesis())
})

upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk()
if err != nil {
return err
}

if upgradeInfo.Name == "v2.1.0-alpha2" && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) {
storeUpgrades := storetypes.StoreUpgrades{
Added: []string{datadealtypes.ModuleName, datapooltypes.ModuleName, oracletypes.ModuleName},
}

// configure storetypes loader that checks if version == upgradeHeight and applies storetypes upgrades
app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades))
}

return nil
}
1 change: 0 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ require (
github.com/pborman/uuid v1.2.0
github.com/prometheus/client_golang v1.11.0
github.com/rakyll/statik v0.1.7
github.com/regen-network/cosmos-proto v0.3.1 // indirect
github.com/spf13/cast v1.4.1
github.com/spf13/cobra v1.4.0
github.com/spf13/pflag v1.0.5
Expand Down

0 comments on commit 91a8646

Please sign in to comment.