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 }