github.com/cosmos/cosmos-sdk@v0.50.10/x/genutil/migrations/v046/migrate.go (about) 1 package v046 2 3 import ( 4 "github.com/cosmos/cosmos-sdk/client" 5 "github.com/cosmos/cosmos-sdk/x/genutil/types" 6 v2gov "github.com/cosmos/cosmos-sdk/x/gov/migrations/v2" 7 v3gov "github.com/cosmos/cosmos-sdk/x/gov/migrations/v3" 8 govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" 9 stakingv2 "github.com/cosmos/cosmos-sdk/x/staking/migrations/v2" 10 stakingv3 "github.com/cosmos/cosmos-sdk/x/staking/migrations/v3" 11 stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" 12 ) 13 14 // Migrate migrates exported state from v0.43 to a v0.46 genesis state. 15 func Migrate(appState types.AppMap, clientCtx client.Context) (types.AppMap, error) { 16 // Migrate x/gov. 17 if appState[v2gov.ModuleName] != nil { 18 // unmarshal relative source genesis application state 19 var old govv1beta1.GenesisState 20 clientCtx.Codec.MustUnmarshalJSON(appState[v2gov.ModuleName], &old) 21 22 // delete deprecated x/gov genesis state 23 delete(appState, v2gov.ModuleName) 24 25 // Migrate relative source genesis application state and marshal it into 26 // the respective key. 27 new, err := v3gov.MigrateJSON(&old) 28 if err != nil { 29 return nil, err 30 } 31 appState[v3gov.ModuleName] = clientCtx.Codec.MustMarshalJSON(new) 32 } 33 34 // Migrate x/staking. 35 if appState[stakingv2.ModuleName] != nil { 36 // unmarshal relative source genesis application state 37 var old stakingtypes.GenesisState 38 clientCtx.Codec.MustUnmarshalJSON(appState[stakingv2.ModuleName], &old) 39 40 // delete deprecated x/staking genesis state 41 delete(appState, stakingv2.ModuleName) 42 43 // Migrate relative source genesis application state and marshal it into 44 // the respective key. 45 new, err := stakingv3.MigrateJSON(old) 46 if err != nil { 47 return nil, err 48 } 49 appState[stakingv3.ModuleName] = clientCtx.Codec.MustMarshalJSON(&new) 50 } 51 52 return appState, nil 53 }