diff --git a/app/app.go b/app/app.go index d41ab02..bed98c8 100644 --- a/app/app.go +++ b/app/app.go @@ -2,6 +2,7 @@ package app import ( "encoding/json" + "errors" "fmt" "io" "os" @@ -465,6 +466,17 @@ func New( authtypes.NewModuleAddress(govtypes.ModuleName).String(), ) + // Register store loader for v0.13.0 upgrade (DER module) + derUpgradeHeight, err := getDerUpgradeHeightFromConfig(homePath) + if err != nil { + logger.Error("failed to get DER upgrade height from config", "error", err) + } + app.SetStoreLoader( + upgradetypes.UpgradeStoreLoader(derUpgradeHeight, &storetypes.StoreUpgrades{ + Added: []string{dermoduletypes.StoreKey}, + }), + ) + // ... other modules keepers // Create IBC Keeper @@ -1037,4 +1049,27 @@ func (app *App) setupUpgradeHandlers() { app.UpgradeKeeper.SetUpgradeHandler("v0.11.0", func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { return app.mm.RunMigrations(ctx, app.configurator, fromVM) }) + app.UpgradeKeeper.SetUpgradeHandler("v0.13.0", func(ctx sdk.Context, _ upgradetypes.Plan, fromVM module.VersionMap) (module.VersionMap, error) { + ctx.Logger().Info("Running v0.13.0 upgrade: adding der store") + return app.mm.RunMigrations(ctx, app.configurator, fromVM) + }) +} + +// Utility function to get DER upgrade height from config/upgrade-v0.13.0.json +func getDerUpgradeHeightFromConfig(homePath string) (int64, error) { + configPath := filepath.Join(homePath, "config", "upgrade-v0.13.0.json") + data, err := os.ReadFile(configPath) + if err != nil { + return 0, fmt.Errorf("failed to read DER upgrade config: %w", err) + } + var cfg struct { + DerUpgradeHeight int64 `json:"der-upgrade-height"` + } + if err := json.Unmarshal(data, &cfg); err != nil { + return 0, fmt.Errorf("failed to parse DER upgrade config: %w", err) + } + if cfg.DerUpgradeHeight <= 0 { + return 0, errors.New("DER upgrade height must be set and > 0 in config/upgrade-v0.13.0.json") + } + return cfg.DerUpgradeHeight, nil } diff --git a/x/der/keeper/der_asset_test.go b/x/der/keeper/der_asset_test.go index e04b1bc..02576cb 100644 --- a/x/der/keeper/der_asset_test.go +++ b/x/der/keeper/der_asset_test.go @@ -1,9 +1,10 @@ package keeper import ( + "testing" + dertypes "github.com/planetmint/planetmint-go/x/der/types" "github.com/stretchr/testify/require" - "testing" ) func TestStoreDerAssetAndLookupDerAsset(t *testing.T) {