From 49b0efb36307a999699705e095a963526ed6bb0d Mon Sep 17 00:00:00 2001 From: wighawag Date: Mon, 11 Sep 2017 11:42:38 +0100 Subject: [PATCH] eth : return an error when block specified is not present --- eth/api_backend.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/eth/api_backend.go b/eth/api_backend.go index 91f392f94f..38534ee381 100644 --- a/eth/api_backend.go +++ b/eth/api_backend.go @@ -18,7 +18,9 @@ package eth import ( "context" + "errors" "math/big" + "strconv" "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/common" @@ -89,9 +91,13 @@ func (b *EthApiBackend) StateAndHeaderByNumber(ctx context.Context, blockNr rpc. } // Otherwise resolve the block number and return its state header, err := b.HeaderByNumber(ctx, blockNr) - if header == nil || err != nil { + if err != nil { return nil, nil, err } + // If can't find specified block return an error + if header == nil { + return nil, nil, errors.New("block " + strconv.FormatInt(int64(blockNr), 10) + " not found") + } stateDb, err := b.eth.BlockChain().StateAt(header.Root) return stateDb, header, err }