package v038 import ( v038dist "github.com/cosmos/cosmos-sdk/x/distribution" v18de63dist "github.com/kava-labs/kava/migrate/v0_8/sdk/distribution/v18de63" ) func Migrate(oldGenState v18de63dist.GenesisState) v038dist.GenesisState { // Changes: some fields moved into a params struct, some changes in json tags params := v038dist.Params{ CommunityTax: oldGenState.CommunityTax, BaseProposerReward: oldGenState.BaseProposerReward, BonusProposerReward: oldGenState.BonusProposerReward, WithdrawAddrEnabled: oldGenState.WithdrawAddrEnabled, } withdrawInfos := []v038dist.DelegatorWithdrawInfo{} for _, v := range oldGenState.DelegatorWithdrawInfos { withdrawInfos = append(withdrawInfos, v038dist.DelegatorWithdrawInfo(v)) } outstandingRewards := []v038dist.ValidatorOutstandingRewardsRecord{} for _, v := range oldGenState.OutstandingRewards { outstandingRewards = append(outstandingRewards, v038dist.ValidatorOutstandingRewardsRecord(v)) } accumulatedComs := []v038dist.ValidatorAccumulatedCommissionRecord{} for _, v := range oldGenState.ValidatorAccumulatedCommissions { accumulatedComs = append(accumulatedComs, v038dist.ValidatorAccumulatedCommissionRecord(v)) } histRewards := []v038dist.ValidatorHistoricalRewardsRecord{} for _, v := range oldGenState.ValidatorHistoricalRewards { histRewards = append(histRewards, v038dist.ValidatorHistoricalRewardsRecord{ ValidatorAddress: v.ValidatorAddress, Period: v.Period, Rewards: v038dist.NewValidatorHistoricalRewards( v.Rewards.CumulativeRewardRatio, v.Rewards.ReferenceCount, ), }) } currRewards := []v038dist.ValidatorCurrentRewardsRecord{} for _, v := range oldGenState.ValidatorCurrentRewards { currRewards = append(currRewards, v038dist.ValidatorCurrentRewardsRecord{ ValidatorAddress: v.ValidatorAddress, Rewards: v038dist.NewValidatorCurrentRewards( v.Rewards.Rewards, v.Rewards.Period, ), }) } startInfos := []v038dist.DelegatorStartingInfoRecord{} for _, v := range oldGenState.DelegatorStartingInfos { startInfos = append(startInfos, v038dist.DelegatorStartingInfoRecord{ DelegatorAddress: v.DelegatorAddress, ValidatorAddress: v.ValidatorAddress, StartingInfo: v038dist.NewDelegatorStartingInfo( v.StartingInfo.PreviousPeriod, v.StartingInfo.Stake, v.StartingInfo.Height, ), }) } slashEvents := []v038dist.ValidatorSlashEventRecord{} for _, v := range oldGenState.ValidatorSlashEvents { slashEvents = append(slashEvents, v038dist.ValidatorSlashEventRecord{ ValidatorAddress: v.ValidatorAddress, Height: v.Height, Period: v.Period, Event: v038dist.NewValidatorSlashEvent( v.Event.ValidatorPeriod, v.Event.Fraction, ), }) } newGenState := v038dist.NewGenesisState( params, v038dist.FeePool(oldGenState.FeePool), withdrawInfos, oldGenState.PreviousProposer, outstandingRewards, accumulatedComs, histRewards, currRewards, startInfos, slashEvents, ) return newGenState }