diff --git a/CHANGELOG.md b/CHANGELOG.md index c9c8e86c..01d2f1a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (fbridge) [\#355](https://github.com/Finschia/finschia/pull/355) Bump finschia-sdk v0.49.0-rc1 to v0.49.0-rc2 * (build) [\#357](https://github.com/Finschia/finschia/pull/357) Upgrade to v4 * (fswap, fbridge) [\#359](https://github.com/Finschia/finschia/pull/359) Bump finschia-sdk v0.49.0-rc2 to v0.49.0-rc3 +* (fswap, fbridge) [\#365](https://github.com/Finschia/finschia/pull/365) Load fbridge & fswap stores ### Improvements diff --git a/app/app.go b/app/app.go index d30e770c..cd062f9a 100644 --- a/app/app.go +++ b/app/app.go @@ -42,6 +42,7 @@ import ( servertypes "github.com/Finschia/finschia-sdk/server/types" "github.com/Finschia/finschia-sdk/simapp" "github.com/Finschia/finschia-sdk/store/streaming" + storetypes "github.com/Finschia/finschia-sdk/store/types" sdk "github.com/Finschia/finschia-sdk/types" "github.com/Finschia/finschia-sdk/types/module" "github.com/Finschia/finschia-sdk/version" @@ -690,12 +691,8 @@ func NewLinkApp( app.SetAnteHandler(anteHandler) app.SetEndBlocker(app.EndBlocker) - // upgrade - app.UpgradeKeeper.SetUpgradeHandler( - upgradeName, - func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { - return app.mm.RunMigrations(ctx, app.configurator, fromVM) - }) + app.setupUpgradeHandlers() + app.setupUpgradeStoreLoaders() // must be before loading version // requires the snapshot store to be created and registered as a BaseAppOptions @@ -876,6 +873,31 @@ func (app *LinkApp) RegisterNodeService(clientCtx client.Context) { nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter()) } +func (app *LinkApp) setupUpgradeStoreLoaders() { + upgradeInfo, err := app.UpgradeKeeper.ReadUpgradeInfoFromDisk() + if err != nil { + panic(err) + } + + if upgradeInfo.Name == upgradeName && !app.UpgradeKeeper.IsSkipHeight(upgradeInfo.Height) { + storeUpgrades := storetypes.StoreUpgrades{ + Added: []string{ + fbridgetypes.ModuleName, + fswaptypes.ModuleName, + }, + } + app.SetStoreLoader(upgradetypes.UpgradeStoreLoader(upgradeInfo.Height, &storeUpgrades)) + } +} + +func (app *LinkApp) setupUpgradeHandlers() { + app.UpgradeKeeper.SetUpgradeHandler( + upgradeName, + func(ctx sdk.Context, plan upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + return app.mm.RunMigrations(ctx, app.configurator, fromVM) + }) +} + // RegisterSwaggerAPI registers swagger route with API Server func RegisterSwaggerAPI(rtr *mux.Router) { statikFS, err := fs.New()