aboutsummaryrefslogtreecommitdiffstats
path: root/eth/helper_test.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2016-09-02 19:44:23 +0800
committerGitHub <noreply@github.com>2016-09-02 19:44:23 +0800
commita42b7355f40fbc58893ca074db818d461083912c (patch)
tree1217ca54edf4fc72734dc00bf09d4a827106bd82 /eth/helper_test.go
parent49227f65ff5ae42d47dfb65eaf88d38790543b06 (diff)
parentb4a52513915d5a39ac055fc38cafed70098eb698 (diff)
downloaddexon-a42b7355f40fbc58893ca074db818d461083912c.tar
dexon-a42b7355f40fbc58893ca074db818d461083912c.tar.gz
dexon-a42b7355f40fbc58893ca074db818d461083912c.tar.bz2
dexon-a42b7355f40fbc58893ca074db818d461083912c.tar.lz
dexon-a42b7355f40fbc58893ca074db818d461083912c.tar.xz
dexon-a42b7355f40fbc58893ca074db818d461083912c.tar.zst
dexon-a42b7355f40fbc58893ca074db818d461083912c.zip
Merge pull request #2742 from karalabe/tx-spam-protection
Transaction pool optimizations
Diffstat (limited to 'eth/helper_test.go')
-rw-r--r--eth/helper_test.go22
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.