github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/staking/legacy/v0_36/migrate.go (about)

     1  // DONTCOVER
     2  // nolint
     3  package v0_36
     4  
     5  import (
     6  	v034staking "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/staking/legacy/v0_34"
     7  )
     8  
     9  // Migrate accepts exported genesis state from v0.34 and migrates it to v0.36
    10  // genesis state. All entries are identical except for validator slashing events
    11  // which now include the period.
    12  func Migrate(oldGenState v034staking.GenesisState) GenesisState {
    13  	return NewGenesisState(
    14  		oldGenState.Params,
    15  		oldGenState.LastTotalPower,
    16  		oldGenState.LastValidatorPowers,
    17  		migrateValidators(oldGenState.Validators),
    18  		oldGenState.Delegations,
    19  		oldGenState.UnbondingDelegations,
    20  		oldGenState.Redelegations,
    21  		oldGenState.Exported,
    22  	)
    23  }
    24  
    25  func migrateValidators(oldValidators v034staking.Validators) Validators {
    26  	validators := make(Validators, len(oldValidators))
    27  
    28  	for i, val := range oldValidators {
    29  		validators[i] = Validator{
    30  			OperatorAddress:         val.OperatorAddress,
    31  			ConsPubKey:              val.ConsPubKey,
    32  			Jailed:                  val.Jailed,
    33  			Status:                  val.Status,
    34  			Tokens:                  val.Tokens,
    35  			DelegatorShares:         val.DelegatorShares,
    36  			Description:             val.Description,
    37  			UnbondingHeight:         val.UnbondingHeight,
    38  			UnbondingCompletionTime: val.UnbondingCompletionTime,
    39  			Commission: Commission{
    40  				CommissionRates: CommissionRates{
    41  					Rate:          val.Commission.Rate,
    42  					MaxRate:       val.Commission.MaxRate,
    43  					MaxChangeRate: val.Commission.MaxChangeRate,
    44  				},
    45  				UpdateTime: val.Commission.UpdateTime,
    46  			},
    47  			MinSelfDelegation: val.MinSelfDelegation,
    48  		}
    49  	}
    50  
    51  	return validators
    52  }