diff options
author | Péter Szilágyi <peterke@gmail.com> | 2016-07-01 23:59:55 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2016-09-02 19:12:03 +0800 |
commit | 0ef327bbee79c01a69ba59258acc6ce3a48bc288 (patch) | |
tree | 1d43179977d96c5ca7de85e0727cfa69dbb230ed /eth/helper_test.go | |
parent | 795b70423eac7180ab85b735f64aae9d6a10449d (diff) | |
download | dexon-0ef327bbee79c01a69ba59258acc6ce3a48bc288.tar dexon-0ef327bbee79c01a69ba59258acc6ce3a48bc288.tar.gz dexon-0ef327bbee79c01a69ba59258acc6ce3a48bc288.tar.bz2 dexon-0ef327bbee79c01a69ba59258acc6ce3a48bc288.tar.lz dexon-0ef327bbee79c01a69ba59258acc6ce3a48bc288.tar.xz dexon-0ef327bbee79c01a69ba59258acc6ce3a48bc288.tar.zst dexon-0ef327bbee79c01a69ba59258acc6ce3a48bc288.zip |
core, eth, internal, miner: optimize txpool for quick ops
Diffstat (limited to 'eth/helper_test.go')
-rw-r--r-- | eth/helper_test.go | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/eth/helper_test.go b/eth/helper_test.go index 28ff69b17..732fe89ee 100644 --- a/eth/helper_test.go +++ b/eth/helper_test.go @@ -23,6 +23,7 @@ import ( "crypto/ecdsa" "crypto/rand" "math/big" + "sort" "sync" "testing" @@ -89,9 +90,9 @@ type testTxPool struct { lock sync.RWMutex // Protects the transaction pool } -// AddTransactions appends a batch of transactions to the pool, and notifies any +// AddBatch appends a batch of transactions to the pool, and notifies any // listeners if the addition channel is non nil -func (p *testTxPool) AddTransactions(txs []*types.Transaction) { +func (p *testTxPool) AddBatch(txs []*types.Transaction) { p.lock.Lock() defer p.lock.Unlock() @@ -101,15 +102,20 @@ func (p *testTxPool) AddTransactions(txs []*types.Transaction) { } } -// GetTransactions returns all the transactions known to the pool -func (p *testTxPool) GetTransactions() types.Transactions { +// Pending returns all the transactions known to the pool +func (p *testTxPool) Pending() map[common.Address]types.Transactions { p.lock.RLock() defer p.lock.RUnlock() - txs := make([]*types.Transaction, len(p.pool)) - copy(txs, p.pool) - - return txs + batches := make(map[common.Address]types.Transactions) + for _, tx := range p.pool { + from, _ := tx.From() + batches[from] = append(batches[from], tx) + } + for _, batch := range batches { + sort.Sort(types.TxByNonce(batch)) + } + return batches } // newTestTransaction create a new dummy transaction. |