From 7a509b47321a28e36f437170a3cc5c283ee7909d Mon Sep 17 00:00:00 2001
From: Prince Sinha <sinhaprince013@gmail.com>
Date: Mon, 6 Jan 2020 16:55:38 +0530
Subject: [PATCH] internal/ethapi: fix encoding of uncle headers and pending
 blocks (#20460)

Fixes #19024
Fixes #19332
---
 internal/ethapi/api.go | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/internal/ethapi/api.go b/internal/ethapi/api.go
index 2b299d385..37433f335 100644
--- a/internal/ethapi/api.go
+++ b/internal/ethapi/api.go
@@ -642,7 +642,7 @@ func (s *PublicBlockChainAPI) GetBlockByNumber(ctx context.Context, number rpc.B
 		response, err := s.rpcMarshalBlock(block, true, fullTx)
 		if err == nil && number == rpc.PendingBlockNumber {
 			// Pending blocks need to nil out a few fields
-			for _, field := range []string{"hash", "nonce", "miner"} {
+			for _, field := range []string{"hash", "nonce", "miner", "number"} {
 				response[field] = nil
 			}
 		}
@@ -1088,7 +1088,9 @@ func (s *PublicBlockChainAPI) rpcMarshalBlock(b *types.Block, inclTx bool, fullT
 	if err != nil {
 		return nil, err
 	}
-	fields["totalDifficulty"] = (*hexutil.Big)(s.b.GetTd(b.Hash()))
+	if inclTx {
+		fields["totalDifficulty"] = (*hexutil.Big)(s.b.GetTd(b.Hash()))
+	}
 	return fields, err
 }
 
-- 
GitLab