core: renamed txs to pending

This commit is contained in:
obscuren 2015-06-04 12:47:46 +02:00
parent 9b27fb91c0
commit 9dd12a64a7
2 changed files with 24 additions and 24 deletions

View File

@ -44,14 +44,14 @@ type TxPool struct {
eventMux *event.TypeMux eventMux *event.TypeMux
events event.Subscription events event.Subscription
mu sync.RWMutex mu sync.RWMutex
txs map[common.Hash]*types.Transaction // processable transactions pending map[common.Hash]*types.Transaction // processable transactions
queue map[common.Address]map[common.Hash]*types.Transaction queue map[common.Address]map[common.Hash]*types.Transaction
} }
func NewTxPool(eventMux *event.TypeMux, currentStateFn stateFn, gasLimitFn func() *big.Int) *TxPool { func NewTxPool(eventMux *event.TypeMux, currentStateFn stateFn, gasLimitFn func() *big.Int) *TxPool {
return &TxPool{ return &TxPool{
txs: make(map[common.Hash]*types.Transaction), pending: make(map[common.Hash]*types.Transaction),
queue: make(map[common.Address]map[common.Hash]*types.Transaction), queue: make(map[common.Address]map[common.Hash]*types.Transaction),
quit: make(chan bool), quit: make(chan bool),
eventMux: eventMux, eventMux: eventMux,
@ -67,7 +67,7 @@ func (pool *TxPool) Start() {
pool.mu.Lock() pool.mu.Lock()
pool.state = state.ManageState(pool.currentState()) pool.state = state.ManageState(pool.currentState())
for _, tx := range pool.txs { for _, tx := range pool.pending {
if addr, err := tx.From(); err == nil { if addr, err := tx.From(); err == nil {
pool.state.SetNonce(addr, tx.Nonce()) pool.state.SetNonce(addr, tx.Nonce())
} }
@ -79,7 +79,7 @@ func (pool *TxPool) Start() {
} }
func (pool *TxPool) Stop() { func (pool *TxPool) Stop() {
pool.txs = make(map[common.Hash]*types.Transaction) pool.pending = make(map[common.Hash]*types.Transaction)
close(pool.quit) close(pool.quit)
pool.events.Unsubscribe() pool.events.Unsubscribe()
glog.V(logger.Info).Infoln("TX Pool stopped") glog.V(logger.Info).Infoln("TX Pool stopped")
@ -143,7 +143,7 @@ func (self *TxPool) add(tx *types.Transaction) error {
return fmt.Errorf("Invalid transaction (%x)", hash[:4]) return fmt.Errorf("Invalid transaction (%x)", hash[:4])
} }
*/ */
if self.txs[hash] != nil { if self.pending[hash] != nil {
return fmt.Errorf("Known transaction (%x)", hash[:4]) return fmt.Errorf("Known transaction (%x)", hash[:4])
} }
err := self.validateTx(tx) err := self.validateTx(tx)
@ -199,7 +199,7 @@ func (self *TxPool) AddTransactions(txs []*types.Transaction) {
// and nil otherwise. // and nil otherwise.
func (tp *TxPool) GetTransaction(hash common.Hash) *types.Transaction { func (tp *TxPool) GetTransaction(hash common.Hash) *types.Transaction {
// check the txs first // check the txs first
if tx, ok := tp.txs[hash]; ok { if tx, ok := tp.pending[hash]; ok {
return tx return tx
} }
// check queue // check queue
@ -221,9 +221,9 @@ func (self *TxPool) GetTransactions() (txs types.Transactions) {
// invalidate any txs // invalidate any txs
self.validatePool() self.validatePool()
txs = make(types.Transactions, len(self.txs)) txs = make(types.Transactions, len(self.pending))
i := 0 i := 0
for _, tx := range self.txs { for _, tx := range self.pending {
txs[i] = tx txs[i] = tx
i++ i++
} }
@ -263,8 +263,8 @@ func (self *TxPool) queueTx(hash common.Hash, tx *types.Transaction) {
} }
func (pool *TxPool) addTx(hash common.Hash, addr common.Address, tx *types.Transaction) { func (pool *TxPool) addTx(hash common.Hash, addr common.Address, tx *types.Transaction) {
if _, ok := pool.txs[hash]; !ok { if _, ok := pool.pending[hash]; !ok {
pool.txs[hash] = tx pool.pending[hash] = tx
pool.state.SetNonce(addr, tx.AccountNonce) pool.state.SetNonce(addr, tx.AccountNonce)
// Notify the subscribers. This event is posted in a goroutine // Notify the subscribers. This event is posted in a goroutine
@ -311,7 +311,7 @@ func (pool *TxPool) checkQueue() {
func (pool *TxPool) removeTx(hash common.Hash) { func (pool *TxPool) removeTx(hash common.Hash) {
// delete from pending pool // delete from pending pool
delete(pool.txs, hash) delete(pool.pending, hash)
// delete from queue // delete from queue
for address, txs := range pool.queue { for address, txs := range pool.queue {
if _, ok := txs[hash]; ok { if _, ok := txs[hash]; ok {
@ -328,12 +328,12 @@ func (pool *TxPool) removeTx(hash common.Hash) {
// validatePool removes invalid and processed transactions from the main pool. // validatePool removes invalid and processed transactions from the main pool.
func (pool *TxPool) validatePool() { func (pool *TxPool) validatePool() {
for hash, tx := range pool.txs { for hash, tx := range pool.pending {
if err := pool.validateTx(tx); err != nil { if err := pool.validateTx(tx); err != nil {
if glog.V(logger.Info) { if glog.V(logger.Core) {
glog.Infof("removed tx (%x) from pool: %v\n", hash[:4], err) glog.Infof("removed tx (%x) from pool: %v\n", hash[:4], err)
} }
delete(pool.txs, hash) delete(pool.pending, hash)
} }
} }
} }

View File

@ -71,8 +71,8 @@ func TestTransactionQueue(t *testing.T) {
pool.queueTx(tx.Hash(), tx) pool.queueTx(tx.Hash(), tx)
pool.checkQueue() pool.checkQueue()
if len(pool.txs) != 1 { if len(pool.pending) != 1 {
t.Error("expected valid txs to be 1 is", len(pool.txs)) t.Error("expected valid txs to be 1 is", len(pool.pending))
} }
tx = transaction() tx = transaction()
@ -82,7 +82,7 @@ func TestTransactionQueue(t *testing.T) {
pool.state.SetNonce(from, 2) pool.state.SetNonce(from, 2)
pool.queueTx(tx.Hash(), tx) pool.queueTx(tx.Hash(), tx)
pool.checkQueue() pool.checkQueue()
if _, ok := pool.txs[tx.Hash()]; ok { if _, ok := pool.pending[tx.Hash()]; ok {
t.Error("expected transaction to be in tx pool") t.Error("expected transaction to be in tx pool")
} }
@ -104,7 +104,7 @@ func TestTransactionQueue(t *testing.T) {
pool.checkQueue() pool.checkQueue()
if len(pool.txs) != 1 { if len(pool.pending) != 1 {
t.Error("expected tx pool to be 1 =") t.Error("expected tx pool to be 1 =")
} }
if len(pool.queue[from]) != 2 { if len(pool.queue[from]) != 2 {
@ -124,8 +124,8 @@ func TestRemoveTx(t *testing.T) {
t.Error("expected queue to be 1, got", len(pool.queue)) t.Error("expected queue to be 1, got", len(pool.queue))
} }
if len(pool.txs) != 1 { if len(pool.pending) != 1 {
t.Error("expected txs to be 1, got", len(pool.txs)) t.Error("expected txs to be 1, got", len(pool.pending))
} }
pool.removeTx(tx.Hash()) pool.removeTx(tx.Hash())
@ -134,8 +134,8 @@ func TestRemoveTx(t *testing.T) {
t.Error("expected queue to be 0, got", len(pool.queue)) t.Error("expected queue to be 0, got", len(pool.queue))
} }
if len(pool.txs) > 0 { if len(pool.pending) > 0 {
t.Error("expected txs to be 0, got", len(pool.txs)) t.Error("expected txs to be 0, got", len(pool.pending))
} }
} }