diff options
author | Maran <maran.hidskes@gmail.com> | 2014-05-28 21:54:56 +0800 |
---|---|---|
committer | Maran <maran.hidskes@gmail.com> | 2014-05-28 21:54:56 +0800 |
commit | a453b5514da21c021394b42fae23d3b9c229a03a (patch) | |
tree | 7e6bc59ab71ed6a33155b03eaa754af18032dd70 | |
parent | 8601604a09a5995525ea5604bfbb1f15b0d09c59 (diff) | |
parent | b695c82520548f62f65937731def1224c72dce48 (diff) | |
download | go-tangerine-a453b5514da21c021394b42fae23d3b9c229a03a.tar go-tangerine-a453b5514da21c021394b42fae23d3b9c229a03a.tar.gz go-tangerine-a453b5514da21c021394b42fae23d3b9c229a03a.tar.bz2 go-tangerine-a453b5514da21c021394b42fae23d3b9c229a03a.tar.lz go-tangerine-a453b5514da21c021394b42fae23d3b9c229a03a.tar.xz go-tangerine-a453b5514da21c021394b42fae23d3b9c229a03a.tar.zst go-tangerine-a453b5514da21c021394b42fae23d3b9c229a03a.zip |
Merge branch 'develop' of github.com:ethereum/eth-go into develop
-rw-r--r-- | ethchain/state_manager.go | 7 | ||||
-rw-r--r-- | ethchain/transaction_pool.go | 4 |
2 files changed, 7 insertions, 4 deletions
diff --git a/ethchain/state_manager.go b/ethchain/state_manager.go index 1a9e9f601..a57377bee 100644 --- a/ethchain/state_manager.go +++ b/ethchain/state_manager.go @@ -105,8 +105,11 @@ func (sm *StateManager) ApplyTransactions(state *State, block *Block, txs []*Tra for _, tx := range txs { usedGas, err := sm.ApplyTransaction(state, block, tx) if err != nil { + if IsNonceErr(err) { + continue + } + ethutil.Config.Log.Infoln(err) - //continue } accumelative := new(big.Int).Set(totalUsedGas.Add(totalUsedGas, usedGas)) @@ -116,7 +119,7 @@ func (sm *StateManager) ApplyTransactions(state *State, block *Block, txs []*Tra validTxs = append(validTxs, tx) } - return receipts, txs + return receipts, validTxs } func (sm *StateManager) ApplyTransaction(state *State, block *Block, tx *Transaction) (totalGasUsed *big.Int, err error) { diff --git a/ethchain/transaction_pool.go b/ethchain/transaction_pool.go index 7198026a8..ba2ffcef5 100644 --- a/ethchain/transaction_pool.go +++ b/ethchain/transaction_pool.go @@ -106,7 +106,7 @@ func (pool *TxPool) ProcessTransaction(tx *Transaction, state *State, toContract sender := state.GetAccount(tx.Sender()) if sender.Nonce != tx.Nonce { - err = fmt.Errorf("[TXPL] Invalid account nonce, state nonce is %d transaction nonce is %d instead", sender.Nonce, tx.Nonce) + err = NonceError(tx.Nonce, sender.Nonce) return } @@ -235,7 +235,7 @@ func (pool *TxPool) RemoveInvalid(state *State) { tx := e.Value.(*Transaction) sender := state.GetAccount(tx.Sender()) err := pool.ValidateTransaction(tx) - if err != nil || sender.Nonce != tx.Nonce { + if err != nil || sender.Nonce >= tx.Nonce { pool.pool.Remove(e) } } |