Skip to content

Commit

Permalink
ethclient: fix panic when requesting missing blocks
Browse files Browse the repository at this point in the history
This fixes a regression introduced by ethereum#26723.
Fixes ethereum#26816.
  • Loading branch information
fjl committed Mar 6, 2023
1 parent 8718614 commit b4a6d73
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions ethclient/ethclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -113,15 +113,19 @@ func (ec *Client) getBlock(ctx context.Context, method string, args ...interface
err := ec.c.CallContext(ctx, &raw, method, args...)
if err != nil {
return nil, err
} else if len(raw) == 0 {
return nil, ethereum.NotFound
}

// Decode header and transactions.
var head *types.Header
var body rpcBlock
if err := json.Unmarshal(raw, &head); err != nil {
return nil, err
}
// When the block is not found, the API returns JSON null.
if head == nil {
return nil, ethereum.NotFound
}

var body rpcBlock
if err := json.Unmarshal(raw, &body); err != nil {
return nil, err
}
Expand Down

0 comments on commit b4a6d73

Please sign in to comment.