0g-chain/migrate/v0_17/migrate.go
Draco Li a21d16f297
e2e test for kava 9 -> kava 10 migration (#1232)
* e2e test for kava9 export

* fix bad chain id
2022-04-29 10:08:04 -06:00

53 lines
1.2 KiB
Go

package v0_17
import (
"encoding/json"
"fmt"
"time"
"github.com/cosmos/cosmos-sdk/client"
sdk "github.com/cosmos/cosmos-sdk/types"
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
"github.com/kava-labs/kava/app"
tmtypes "github.com/tendermint/tendermint/types"
)
var (
// TODO: needs verification before release
GenesisTime = time.Date(2022, 5, 10, 17, 0, 0, 0, time.UTC)
ChainID = "kava_2222-10"
)
func setConfigIfUnsealed() {
config := sdk.GetConfig()
if config.GetBech32AccountAddrPrefix() == "kava" {
return
}
app.SetSDKConfig()
}
// Migrate converts v16 genesis doc to v17 genesis doc
func Migrate(genDoc *tmtypes.GenesisDoc, ctx client.Context) (*tmtypes.GenesisDoc, error) {
setConfigIfUnsealed()
var appState genutiltypes.AppMap
var err error
if err := json.Unmarshal(genDoc.AppState, &appState); err != nil {
return nil, fmt.Errorf("failed to unmarshal app state from genesis doc: %w", err)
}
MigrateCosmosAppState(appState, ctx, GenesisTime)
migrateAppState(appState, ctx)
genDoc.AppState, err = json.Marshal(appState)
if err != nil {
return nil, err
}
genDoc.GenesisTime = GenesisTime
genDoc.ChainID = ChainID
genDoc.InitialHeight = 1
return genDoc, nil
}