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  }