cosmos-sdk/x/genutil/legacy/v039/migrate.go

45 lines
1.7 KiB
Go

package v039
import (
"github.com/cosmos/cosmos-sdk/client"
"github.com/cosmos/cosmos-sdk/codec"
v038auth "github.com/cosmos/cosmos-sdk/x/auth/legacy/v038"
v039auth "github.com/cosmos/cosmos-sdk/x/auth/legacy/v039"
v036distr "github.com/cosmos/cosmos-sdk/x/distribution/legacy/v036"
"github.com/cosmos/cosmos-sdk/x/genutil/types"
v036gov "github.com/cosmos/cosmos-sdk/x/gov/legacy/v036"
v036params "github.com/cosmos/cosmos-sdk/x/params/legacy/v036"
v038upgrade "github.com/cosmos/cosmos-sdk/x/upgrade/legacy/v038"
)
// Migrate migrates exported state from v0.38 to a v0.39 genesis state.
//
// NOTE: No actual migration occurs since the types do not change, but JSON
// serialization of accounts do change.
func Migrate(appState types.AppMap, _ client.Context) types.AppMap {
v038Codec := codec.NewLegacyAmino()
v038auth.RegisterLegacyAminoCodec(v038Codec)
v036gov.RegisterLegacyAminoCodec(v038Codec)
v036distr.RegisterLegacyAminoCodec(v038Codec)
v036params.RegisterLegacyAminoCodec(v038Codec)
v038upgrade.RegisterLegacyAminoCodec(v038Codec)
v039Codec := codec.NewLegacyAmino()
v039auth.RegisterLegacyAminoCodec(v039Codec)
v036gov.RegisterLegacyAminoCodec(v039Codec)
v036distr.RegisterLegacyAminoCodec(v039Codec)
v036params.RegisterLegacyAminoCodec(v039Codec)
v038upgrade.RegisterLegacyAminoCodec(v039Codec)
// migrate x/auth state (JSON serialization only)
if appState[v038auth.ModuleName] != nil {
var authGenState v038auth.GenesisState
v038Codec.MustUnmarshalJSON(appState[v038auth.ModuleName], &authGenState)
delete(appState, v038auth.ModuleName) // delete old key in case the name changed
appState[v039auth.ModuleName] = v039Codec.MustMarshalJSON(v039auth.Migrate(authGenState))
}
return appState
}