Eckelj/migrate der (#500)

* aligning imports
* added config/upgrade-v0.13.0.json upgrade description to make upgrades to v0.13.0 more flexible
content should look as

{ "der-upgrade-height": 2198251 }



Signed-off-by: Jürgen Eckel <juergen@riddleandcode.com>
This commit is contained in:
Jürgen Eckel 2025-05-27 00:38:54 +02:00 committed by GitHub
parent 03211743fc
commit 27b0a69b34
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 37 additions and 1 deletions

View File

@ -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
}

View File

@ -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) {