github.com/cosmos/cosmos-sdk@v0.50.10/x/genutil/migrations/v047/migrate.go (about) 1 package v047 2 3 import ( 4 "github.com/cosmos/cosmos-sdk/client" 5 v1auth "github.com/cosmos/cosmos-sdk/x/auth/migrations/v1" 6 authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" 7 bankv4 "github.com/cosmos/cosmos-sdk/x/bank/migrations/v4" 8 banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" 9 v1distr "github.com/cosmos/cosmos-sdk/x/distribution/migrations/v1" 10 v3distr "github.com/cosmos/cosmos-sdk/x/distribution/migrations/v3" 11 distrtypes "github.com/cosmos/cosmos-sdk/x/distribution/types" 12 "github.com/cosmos/cosmos-sdk/x/genutil/types" 13 v4gov "github.com/cosmos/cosmos-sdk/x/gov/migrations/v4" 14 govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1" 15 groupv2 "github.com/cosmos/cosmos-sdk/x/group/migrations/v2" 16 ) 17 18 // Migrate migrates exported state from v0.46 to a v0.47 genesis state. 19 func Migrate(appState types.AppMap, clientCtx client.Context) (types.AppMap, error) { 20 // Migrate x/bank. 21 bankState := appState[banktypes.ModuleName] 22 if len(bankState) > 0 { 23 var oldBankState banktypes.GenesisState 24 clientCtx.Codec.MustUnmarshalJSON(bankState, &oldBankState) 25 newBankState := bankv4.MigrateGenState(&oldBankState) 26 appState[banktypes.ModuleName] = clientCtx.Codec.MustMarshalJSON(newBankState) 27 } 28 29 if govOldState, ok := appState[v4gov.ModuleName]; ok { 30 // unmarshal relative source genesis application state 31 var old govv1.GenesisState 32 clientCtx.Codec.MustUnmarshalJSON(govOldState, &old) 33 34 // delete deprecated x/gov genesis state 35 delete(appState, v4gov.ModuleName) 36 37 // set the x/gov genesis state with new state. 38 new, err := v4gov.MigrateJSON(&old) 39 if err != nil { 40 return nil, err 41 } 42 appState[v4gov.ModuleName] = clientCtx.Codec.MustMarshalJSON(new) 43 } 44 45 // Migrate x/auth group policy accounts 46 if authOldState, ok := appState[v1auth.ModuleName]; ok { 47 var old authtypes.GenesisState 48 clientCtx.Codec.MustUnmarshalJSON(authOldState, &old) 49 newAuthState := groupv2.MigrateGenState(&old) 50 appState[v1auth.ModuleName] = clientCtx.Codec.MustMarshalJSON(newAuthState) 51 } 52 53 // Migrate x/distribution params (reset unused) 54 if oldDistState, ok := appState[v1distr.ModuleName]; ok { 55 var old distrtypes.GenesisState 56 clientCtx.Codec.MustUnmarshalJSON(oldDistState, &old) 57 newDistState := v3distr.MigrateJSON(&old) 58 appState[v1distr.ModuleName] = clientCtx.Codec.MustMarshalJSON(newDistState) 59 } 60 61 return appState, nil 62 }