diff options
author | Martin Holst Swende <martin@swende.se> | 2019-05-02 20:50:23 +0800 |
---|---|---|
committer | Felix Lange <fjl@users.noreply.github.com> | 2019-05-02 20:50:23 +0800 |
commit | 5036992b0665c5b454ef7005b09a86895df63551 (patch) | |
tree | 0d9d1473e91a12057fb71fe1d3390e3992516dfc /eth | |
parent | 4c90efdf57ce87edf0d855c8cec10525875a6ab1 (diff) | |
download | go-tangerine-5036992b0665c5b454ef7005b09a86895df63551.tar go-tangerine-5036992b0665c5b454ef7005b09a86895df63551.tar.gz go-tangerine-5036992b0665c5b454ef7005b09a86895df63551.tar.bz2 go-tangerine-5036992b0665c5b454ef7005b09a86895df63551.tar.lz go-tangerine-5036992b0665c5b454ef7005b09a86895df63551.tar.xz go-tangerine-5036992b0665c5b454ef7005b09a86895df63551.tar.zst go-tangerine-5036992b0665c5b454ef7005b09a86895df63551.zip |
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.
Diffstat (limited to 'eth')
-rw-r--r-- | eth/api_backend.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/eth/api_backend.go b/eth/api_backend.go index 00424caed..9ac06ffa4 100644 --- a/eth/api_backend.go +++ b/eth/api_backend.go @@ -18,6 +18,7 @@ package eth import ( "context" + "errors" "math/big" "github.com/ethereum/go-ethereum/accounts" @@ -95,9 +96,12 @@ 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 header == nil { + return nil, nil, errors.New("header not found") + } stateDb, err := b.eth.BlockChain().StateAt(header.Root) return stateDb, header, err } |