From 5036992b0665c5b454ef7005b09a86895df63551 Mon Sep 17 00:00:00 2001 From: Martin Holst Swende <martin@swende.se> Date: Thu, 2 May 2019 14:50:23 +0200 Subject: eth, les: add error when accessing missing block state (#18346) This change makes getBalance, getCode, getStorageAt, getProof, call, getTransactionCount return an error if the block number in the request doesn't exist. getHeaderByNumber still returns null for missing headers. --- les/api_backend.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'les') diff --git a/les/api_backend.go b/les/api_backend.go index 4fe352136..589cf572d 100644 --- a/les/api_backend.go +++ b/les/api_backend.go @@ -18,6 +18,7 @@ package les import ( "context" + "errors" "math/big" "github.com/ethereum/go-ethereum/accounts" @@ -78,9 +79,12 @@ func (b *LesApiBackend) BlockByNumber(ctx context.Context, blockNr rpc.BlockNumb func (b *LesApiBackend) StateAndHeaderByNumber(ctx context.Context, blockNr rpc.BlockNumber) (*state.StateDB, *types.Header, error) { header, err := b.HeaderByNumber(ctx, blockNr) - if header == nil || err != nil { + if err != nil { return nil, nil, err } + if header == nil { + return nil, nil, errors.New("header not found") + } return light.NewState(ctx, header, b.eth.odr), header, nil } -- cgit v1.2.3