return err
}
+ if detachBlockHeader.Height%consensus.RoundVoteBlockNums == 0 {
+ hash := detachBlockHeader.Hash()
+ consensusResult, err = c.GetConsensusResultByHash(&hash)
+ if err != nil {
+ return err
+ }
+ }
+
if err := consensusResult.DetachBlock(b); err != nil {
return err
}
}
rewards := []validation.CoinbaseReward{}
- if (parent.Height+1)%consensus.RoundVoteBlockNums == 0 {
+ if block.Height%consensus.RoundVoteBlockNums == 0 {
consensusResult, err := c.getBestConsensusResult()
if err != nil {
return err
return err
}
+ if c.IsFinalize() {
+ c.RewardOfCoinbase = map[string]uint64{}
+ }
+
program := hex.EncodeToString(reward.ControlProgram)
c.RewardOfCoinbase[program], ok = checked.AddUint64(c.RewardOfCoinbase[program], reward.Amount)
if !ok {