From 60e27b51bc5643bc6a76151020a9e1a245340b70 Mon Sep 17 00:00:00 2001
From: Jim McDonald <Jim@mcdee.net>
Date: Wed, 21 Jun 2017 08:53:50 +0100
Subject: ethclient: fix TransactionByHash pending return value. (#14663)

As per #14661 TransactionByHash always returns false for pending.
This uses blockNumber rather than blockHash to ensure that it returns
the correct value for pending and will not suffer side-effects if
eth_getTransactionByHash is fixed in future.
---
 ethclient/ethclient.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'ethclient')

diff --git a/ethclient/ethclient.go b/ethclient/ethclient.go
index 59f60d659..45bb87322 100644
--- a/ethclient/ethclient.go
+++ b/ethclient/ethclient.go
@@ -167,11 +167,11 @@ func (ec *Client) TransactionByHash(ctx context.Context, hash common.Hash) (tx *
 	} else if _, r, _ := tx.RawSignatureValues(); r == nil {
 		return nil, false, fmt.Errorf("server returned transaction without signature")
 	}
-	var block struct{ BlockHash *common.Hash }
+	var block struct{ BlockNumber *string }
 	if err := json.Unmarshal(raw, &block); err != nil {
 		return nil, false, err
 	}
-	return tx, block.BlockHash == nil, nil
+	return tx, block.BlockNumber == nil, nil
 }
 
 // TransactionCount returns the total number of transactions in the given block.
-- 
cgit v1.2.3