github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/genutil/legacy/v0_36/migrate.go (about) 1 package v036 2 3 import ( 4 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 5 v034auth "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/legacy/v0_34" 6 v036auth "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/legacy/v0_36" 7 v034distr "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/distribution/legacy/v0_34" 8 v036distr "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/distribution/legacy/v0_36" 9 v034genAccounts "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/genaccounts/legacy/v0_34" 10 v036genAccounts "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/genaccounts/legacy/v0_36" 11 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/genutil" 12 v034gov "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/gov/legacy/v0_34" 13 v036gov "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/gov/legacy/v0_36" 14 v034staking "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/staking/legacy/v0_34" 15 v036staking "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/staking/legacy/v0_36" 16 v036supply "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/supply/legacy/v0_36" 17 ) 18 19 // Migrate migrates exported state from v0.34 to a v0.36 genesis state. 20 func Migrate(appState genutil.AppMap) genutil.AppMap { 21 v034Codec := codec.New() 22 codec.RegisterCrypto(v034Codec) 23 v034gov.RegisterCodec(v034Codec) 24 25 v036Codec := codec.New() 26 codec.RegisterCrypto(v036Codec) 27 v036gov.RegisterCodec(v036Codec) 28 29 // migrate genesis accounts state 30 if appState[v034genAccounts.ModuleName] != nil { 31 var genAccs v034genAccounts.GenesisState 32 v034Codec.MustUnmarshalJSON(appState[v034genAccounts.ModuleName], &genAccs) 33 34 var authGenState v034auth.GenesisState 35 v034Codec.MustUnmarshalJSON(appState[v034auth.ModuleName], &authGenState) 36 37 var govGenState v034gov.GenesisState 38 v034Codec.MustUnmarshalJSON(appState[v034gov.ModuleName], &govGenState) 39 40 var distrGenState v034distr.GenesisState 41 v034Codec.MustUnmarshalJSON(appState[v034distr.ModuleName], &distrGenState) 42 43 var stakingGenState v034staking.GenesisState 44 v034Codec.MustUnmarshalJSON(appState[v034staking.ModuleName], &stakingGenState) 45 46 delete(appState, v034genAccounts.ModuleName) // delete old key in case the name changed 47 appState[v036genAccounts.ModuleName] = v036Codec.MustMarshalJSON( 48 v036genAccounts.Migrate( 49 genAccs, authGenState.CollectedFees, distrGenState.FeePool.CommunityPool, govGenState.Deposits, 50 stakingGenState.Validators, stakingGenState.UnbondingDelegations, distrGenState.OutstandingRewards, 51 stakingGenState.Params.BondDenom, v036distr.ModuleName, v036gov.ModuleName, 52 ), 53 ) 54 } 55 56 // migrate auth state 57 if appState[v034auth.ModuleName] != nil { 58 var authGenState v034auth.GenesisState 59 v034Codec.MustUnmarshalJSON(appState[v034auth.ModuleName], &authGenState) 60 61 delete(appState, v034auth.ModuleName) // delete old key in case the name changed 62 appState[v036auth.ModuleName] = v036Codec.MustMarshalJSON(v036auth.Migrate(authGenState)) 63 } 64 65 // migrate gov state 66 if appState[v034gov.ModuleName] != nil { 67 var govGenState v034gov.GenesisState 68 v034Codec.MustUnmarshalJSON(appState[v034gov.ModuleName], &govGenState) 69 70 delete(appState, v034gov.ModuleName) // delete old key in case the name changed 71 appState[v036gov.ModuleName] = v036Codec.MustMarshalJSON(v036gov.Migrate(govGenState)) 72 } 73 74 // migrate distribution state 75 if appState[v034distr.ModuleName] != nil { 76 var slashingGenState v034distr.GenesisState 77 v034Codec.MustUnmarshalJSON(appState[v034distr.ModuleName], &slashingGenState) 78 79 delete(appState, v034distr.ModuleName) // delete old key in case the name changed 80 appState[v036distr.ModuleName] = v036Codec.MustMarshalJSON(v036distr.Migrate(slashingGenState)) 81 } 82 83 // migrate staking state 84 if appState[v034staking.ModuleName] != nil { 85 var stakingGenState v034staking.GenesisState 86 v034Codec.MustUnmarshalJSON(appState[v034staking.ModuleName], &stakingGenState) 87 88 delete(appState, v034staking.ModuleName) // delete old key in case the name changed 89 appState[v036staking.ModuleName] = v036Codec.MustMarshalJSON(v036staking.Migrate(stakingGenState)) 90 } 91 92 // migrate supply state 93 appState[v036supply.ModuleName] = v036Codec.MustMarshalJSON(v036supply.EmptyGenesisState()) 94 95 return appState 96 }