OSDN Git Service

modify utxo pending number and consensus node vote restrict (#285)
[bytom/vapor.git] / proposal / proposal.go
index a4c51e4..35c021f 100644 (file)
@@ -108,6 +108,11 @@ func NewBlockTemplate(c *protocol.Chain, txPool *protocol.TxPool, accountManager
        txs := txPool.GetTransactions()
        sort.Sort(byTime(txs))
 
+       consensusResult, err := c.GetConsensusResultByHash(&preBlockHash)
+       if err != nil {
+               return nil, err
+       }
+
        entriesTxs := []*bc.Tx{}
        for _, txDesc := range txs {
                entriesTxs = append(entriesTxs, txDesc.Tx.Tx)
@@ -142,6 +147,11 @@ func NewBlockTemplate(c *protocol.Chain, txPool *protocol.TxPool, accountManager
                        continue
                }
 
+               if err := consensusResult.ApplyTransaction(txDesc.Tx); err != nil {
+                       blkGenSkipTxForErr(txPool, &tx.ID, err)
+                       continue
+               }
+
                if err := txStatus.SetStatus(len(b.Transactions), gasOnlyTx); err != nil {
                        return nil, err
                }
@@ -161,11 +171,6 @@ func NewBlockTemplate(c *protocol.Chain, txPool *protocol.TxPool, accountManager
                return nil, errors.Wrap(err, "fail on createCoinbaseTx")
        }
 
-       consensusResult, err := c.GetConsensusResultByHash(&preBlockHash)
-       if err != nil {
-               return nil, err
-       }
-
        if err := consensusResult.AttachCoinbaseReward(b); err != nil {
                return nil, err
        }