@@ -78,6 +78,8 @@ import (
7878 ibcporttypes "github.com/cosmos/ibc-go/v10/modules/core/05-port/types"
7979 ibckeeper "github.com/cosmos/ibc-go/v10/modules/core/keeper"
8080
81+ upgrades "github.com/LumeraProtocol/lumera/app/upgrades"
82+ appParams "github.com/LumeraProtocol/lumera/app/upgrades/params"
8183 actionmodulekeeper "github.com/LumeraProtocol/lumera/x/action/v1/keeper"
8284 claimmodulekeeper "github.com/LumeraProtocol/lumera/x/claim/keeper"
8385 lumeraidmodulekeeper "github.com/LumeraProtocol/lumera/x/lumeraid/keeper"
@@ -86,12 +88,6 @@ import (
8688 // this line is used by starport scaffolding # stargate/app/moduleImport
8789
8890 "github.com/LumeraProtocol/lumera/docs"
89-
90- upgrade_v1_6_1 "github.com/LumeraProtocol/lumera/app/upgrades/v1_6_1"
91- upgrade_v1_7_0 "github.com/LumeraProtocol/lumera/app/upgrades/v1_7_0"
92- upgrade_v1_7_2 "github.com/LumeraProtocol/lumera/app/upgrades/v1_7_2"
93- upgrade_v1_8_0 "github.com/LumeraProtocol/lumera/app/upgrades/v1_8_0"
94- upgrade_v1_8_2 "github.com/LumeraProtocol/lumera/app/upgrades/v1_8_2"
9591)
9692
9793const (
@@ -279,13 +275,9 @@ func New(
279275 panic (err )
280276 }
281277
282- // **** SETUP UPGRADE HANDLER ****
278+ // **** SETUP UPGRADES (upgrade handlers and store loaders) ****
283279 // This needs to be done after keepers are initialized but before loading state.
284- app .setupUpgradeHandlers ()
285-
286- // **** SETUP STORE LOADER ****
287- // This must be done BEFORE LoadLatestVersion/LoadVersion
288- app .setupUpgradeStoreLoaders ()
280+ app .setupUpgrades ()
289281
290282 /**** Module Options ****/
291283 app .ModuleManager .RegisterInvariants (app .CrisisKeeper )
@@ -328,9 +320,9 @@ func (app *App) GetSubspace(moduleName string) paramstypes.Subspace {
328320 return subspace
329321}
330322
331- // setupUpgradeStoreLoaders configures the store loader for upcoming upgrades.
323+ // setupUpgrades configures the store loader for upcoming upgrades and registers upgrade handlers .
332324// This needs to be called BEFORE app.Load()
333- func (app * App ) setupUpgradeStoreLoaders () {
325+ func (app * App ) setupUpgrades () {
334326 upgradeInfo , err := app .UpgradeKeeper .ReadUpgradeInfoFromDisk ()
335327 // No upgrade scheduled, skip
336328 if err != nil {
@@ -341,82 +333,36 @@ func (app *App) setupUpgradeStoreLoaders() {
341333 return // No upgrade info file, normal startup
342334 }
343335
344- // Map of upgrade names to their corresponding StoreUpgrades
345- storeUpgradesMap := map [string ]* storetypes.StoreUpgrades {
346- upgrade_v1_6_1 .UpgradeName : & upgrade_v1_6_1 .StoreUpgrades ,
347- upgrade_v1_7_0 .UpgradeName : & upgrade_v1_7_0 .StoreUpgrades ,
348- upgrade_v1_7_2 .UpgradeName : & upgrade_v1_7_2 .StoreUpgrades ,
349- upgrade_v1_8_0 .UpgradeName : & upgrade_v1_8_0 .StoreUpgrades ,
350- upgrade_v1_8_2 .UpgradeName : & upgrade_v1_8_2 .StoreUpgrades ,
351- }
336+ upgradeConfig , found := upgrades .SetupUpgrades (upgradeInfo .Name , appParams.AppUpgradeParams {
337+ ChainID : app .ChainID (),
338+ Logger : app .Logger (),
339+ ModuleManager : app .ModuleManager ,
340+ Configurator : app .Configurator (),
341+ })
352342
353- // Check for the planned upgrades
354- if ! app .UpgradeKeeper .IsSkipHeight (upgradeInfo .Height ) {
355- if upgrades , exists := storeUpgradesMap [upgradeInfo .Name ]; exists {
356- app .SetStoreLoader (upgradetypes .UpgradeStoreLoader (upgradeInfo .Height , upgrades ))
357- app .Logger ().Info ("Configured store loader for upgrade" , "name" , upgradeInfo .Name , "height" , upgradeInfo .Height )
358- } else {
359- app .Logger ().Info ("No store upgrades registered for pending plan" , "name" , upgradeInfo .Name )
360- }
343+ if ! found {
344+ panic (fmt .Sprintf ("upgrade plan %q is scheduled at height %d but not registered in this binary" , upgradeInfo .Name , upgradeInfo .Height ))
361345 }
362- }
363346
364- type UpgradeHandlerConfig struct {
365- Name string
366- Handler upgradetypes.UpgradeHandler
367- }
347+ if upgradeConfig .Handler != nil {
348+ app .UpgradeKeeper .SetUpgradeHandler (upgradeInfo .Name , upgradeConfig .Handler )
349+ app .Logger ().Info ("Registered upgrade handler" , "name" , upgradeInfo .Name )
350+ } else {
351+ app .Logger ().Info ("Skipping upgrade handler registration" , "name" , upgradeInfo .Name )
352+ }
368353
369- // setupUpgradeHandlers registers the upgrade handlers for specific upgrade names.
370- func (app * App ) setupUpgradeHandlers () {
371- handlers := []UpgradeHandlerConfig {
372- {
373- Name : upgrade_v1_6_1 .UpgradeName ,
374- Handler : upgrade_v1_6_1 .CreateUpgradeHandler (
375- app .Logger (),
376- app .ModuleManager ,
377- app .Configurator (),
378- ),
379- },
380- {
381- Name : upgrade_v1_7_0 .UpgradeName ,
382- Handler : upgrade_v1_7_0 .CreateUpgradeHandler (
383- app .Logger (),
384- app .ModuleManager ,
385- app .Configurator (),
386- ),
387- },
388- {
389- Name : upgrade_v1_7_2 .UpgradeName ,
390- Handler : upgrade_v1_7_2 .CreateUpgradeHandler (
391- app .Logger (),
392- app .ModuleManager ,
393- app .Configurator (),
394- ),
395- },
396- {
397- Name : upgrade_v1_8_0 .UpgradeName ,
398- Handler : upgrade_v1_8_0 .CreateUpgradeHandler (
399- app .Logger (),
400- app .ModuleManager ,
401- app .Configurator (),
402- ),
403- },
404- {
405- Name : upgrade_v1_8_2 .UpgradeName ,
406- Handler : upgrade_v1_8_2 .CreateUpgradeHandler (
407- app .Logger (),
408- app .ModuleManager ,
409- app .Configurator (),
410- ),
411- },
412- // Add future upgrades here
354+ if upgradeConfig .StoreUpgrade == nil {
355+ app .Logger ().Info ("No store upgrades registered for pending plan" , "name" , upgradeInfo .Name )
356+ return
413357 }
414358
415- // Register the upgrade handlers
416- for _ , h := range handlers {
417- app .UpgradeKeeper .SetUpgradeHandler (h .Name , h .Handler )
418- app .Logger ().Info ("Registered upgrade handler" , "name" , h .Name )
359+ if app .UpgradeKeeper .IsSkipHeight (upgradeInfo .Height ) {
360+ app .Logger ().Info ("Skipping store loader because height is flagged to skip" , "name" , upgradeInfo .Name , "height" , upgradeInfo .Height )
361+ return
419362 }
363+
364+ app .SetStoreLoader (upgradetypes .UpgradeStoreLoader (upgradeInfo .Height , upgradeConfig .StoreUpgrade ))
365+ app .Logger ().Info ("Configured store loader for upgrade" , "name" , upgradeInfo .Name , "height" , upgradeInfo .Height )
420366}
421367
422368// LegacyAmino returns App's amino codec.
0 commit comments