OSDN Git Service

modify consensusResult for block (#324)
[bytom/vapor.git] / protocol / state / consensus_result.go
index 53bdbeb..9fd571b 100644 (file)
@@ -251,16 +251,6 @@ func (c *ConsensusResult) DetachBlock(block *types.Block) error {
 
 // DetachCoinbaseReward detach coinbase reward
 func (c *ConsensusResult) DetachCoinbaseReward(block *types.Block) error {
-       if block.Height%consensus.ActiveNetParams.RoundVoteBlockNums == 0 {
-               for i, output := range block.Transactions[0].Outputs {
-                       if i == 0 {
-                               continue
-                       }
-                       program := output.ControlProgram()
-                       c.CoinbaseReward[hex.EncodeToString(program)] = output.AssetAmount().Amount
-               }
-       }
-
        reward, err := CalCoinbaseReward(block)
        if err != nil {
                return err
@@ -275,6 +265,17 @@ func (c *ConsensusResult) DetachCoinbaseReward(block *types.Block) error {
        if c.CoinbaseReward[program] == 0 {
                delete(c.CoinbaseReward, program)
        }
+
+       if block.Height%consensus.ActiveNetParams.RoundVoteBlockNums == 1 {
+               c.CoinbaseReward = map[string]uint64{}
+               for i, output := range block.Transactions[0].Outputs {
+                       if i == 0 {
+                               continue
+                       }
+                       program := output.ControlProgram()
+                       c.CoinbaseReward[hex.EncodeToString(program)] = output.AssetAmount().Amount
+               }
+       }
        return nil
 }