From dcfecebe1fbd977e4c6bd95e2ba14dd4d26f9532 Mon Sep 17 00:00:00 2001
From: obscuren <geffobscura@gmail.com>
Date: Thu, 7 May 2015 17:27:17 +0200
Subject: [PATCH] core: get transaction by hash from transaction pool

---
 core/transaction_pool.go | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/core/transaction_pool.go b/core/transaction_pool.go
index bac6b7f0b..6898a4bda 100644
--- a/core/transaction_pool.go
+++ b/core/transaction_pool.go
@@ -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) {
 	self.mu.RLock()
 	defer self.mu.RUnlock()
-- 
GitLab