diff options
author | obscuren <geffobscura@gmail.com> | 2015-04-21 17:27:12 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2015-04-21 17:27:12 +0800 |
commit | 093d6d507465263fb9721aa0758b12a31b126c0b (patch) | |
tree | 8fcad14601691477757b6fd69611c54214817229 /core | |
parent | 1d6d42919e3bd3e24cd9ff2f1534efb41cb5a216 (diff) | |
download | dexon-093d6d507465263fb9721aa0758b12a31b126c0b.tar.gz dexon-093d6d507465263fb9721aa0758b12a31b126c0b.tar.zst dexon-093d6d507465263fb9721aa0758b12a31b126c0b.zip |
core: removed nonce resetting from the block processor.
All nonce error handling has been moved to the worker
Diffstat (limited to 'core')
-rw-r--r-- | core/block_processor.go | 4 | ||||
-rw-r--r-- | core/state/managed_state.go | 1 | ||||
-rw-r--r-- | core/transaction_pool.go | 6 |
3 files changed, 7 insertions, 4 deletions
diff --git a/core/block_processor.go b/core/block_processor.go index 4c70872ac..28636a725 100644 --- a/core/block_processor.go +++ b/core/block_processor.go @@ -85,8 +85,8 @@ func (self *BlockProcessor) ApplyTransaction(coinbase *state.StateObject, stated _, gas, err := ApplyMessage(NewEnv(statedb, self.bc, tx, block), tx, cb) if err != nil && (IsNonceErr(err) || state.IsGasLimitErr(err) || IsInvalidTxErr(err)) { // If the account is managed, remove the invalid nonce. - from, _ := tx.From() - self.bc.TxState().RemoveNonce(from, tx.Nonce()) + //from, _ := tx.From() + //self.bc.TxState().RemoveNonce(from, tx.Nonce()) return nil, nil, err } diff --git a/core/state/managed_state.go b/core/state/managed_state.go index 9e6be9980..5114f7a7a 100644 --- a/core/state/managed_state.go +++ b/core/state/managed_state.go @@ -62,6 +62,7 @@ func (ms *ManagedState) NewNonce(addr common.Address) uint64 { } } account.nonces = append(account.nonces, true) + return uint64(len(account.nonces)-1) + account.nstart } diff --git a/core/transaction_pool.go b/core/transaction_pool.go index 94a94f93d..eaddcfa09 100644 --- a/core/transaction_pool.go +++ b/core/transaction_pool.go @@ -28,6 +28,8 @@ const txPoolQueueSize = 50 type TxPoolHook chan *types.Transaction type TxMsg struct{ Tx *types.Transaction } +type stateFn func() *state.StateDB + const ( minGasPrice = 1000000 ) @@ -47,7 +49,7 @@ type TxPool struct { // Quiting channel quit chan bool // The state function which will allow us to do some pre checkes - currentState func() *state.StateDB + currentState stateFn // The actual pool txs map[common.Hash]*types.Transaction invalidHashes *set.Set @@ -57,7 +59,7 @@ type TxPool struct { eventMux *event.TypeMux } -func NewTxPool(eventMux *event.TypeMux, currentStateFn func() *state.StateDB) *TxPool { +func NewTxPool(eventMux *event.TypeMux, currentStateFn stateFn) *TxPool { return &TxPool{ txs: make(map[common.Hash]*types.Transaction), queueChan: make(chan *types.Transaction, txPoolQueueSize), |