diff --git a/types/validator_set.go b/types/validator_set.go index 83d066ec1..3885369d3 100644 --- a/types/validator_set.go +++ b/types/validator_set.go @@ -60,13 +60,14 @@ func (valSet *ValidatorSet) IncrementAccum(times int) { // Decrement the validator with most accum times times for i := 0; i < times; i++ { mostest := validatorsHeap.Peek().(*Validator) + // mind underflow + mostest.Accum = safeSubClip(mostest.Accum, valSet.TotalVotingPower()) + if i == times-1 { valSet.Proposer = mostest + } else { + validatorsHeap.Update(mostest, accumComparable{mostest}) } - - // mind underflow - mostest.Accum = safeSubClip(mostest.Accum, valSet.TotalVotingPower()) - validatorsHeap.Update(mostest, accumComparable{mostest}) } }