core: get transaction by hash from transaction pool

This commit is contained in:
obscuren 2015-05-07 17:27:17 +02:00
parent 258a7b9a93
commit dcfecebe1f
1 changed files with 21 additions and 0 deletions

View File

@ -204,6 +204,27 @@ func (self *TxPool) AddTransactions(txs []*types.Transaction) {
} }
} }
// GetTransaction allows you to check the pending and queued transaction in the
// transaction pool.
// It has two stategies, first check the pool (map) then check the queue
func (tp *TxPool) GetTransaction(hash common.Hash) *types.Transaction {
// check the txs first
if tx, ok := tp.txs[hash]; ok {
return tx
}
// check queue
for _, txs := range tp.queue {
for _, tx := range txs {
if tx.Hash() == hash {
return tx
}
}
}
return nil
}
func (self *TxPool) GetTransactions() (txs types.Transactions) { func (self *TxPool) GetTransactions() (txs types.Transactions) {
self.mu.RLock() self.mu.RLock()
defer self.mu.RUnlock() defer self.mu.RUnlock()