aboutsummaryrefslogtreecommitdiffstats
path: root/eth
diff options
context:
space:
mode:
authorMartin Holst Swende <martin@swende.se>2019-05-02 20:50:23 +0800
committerFelix Lange <fjl@users.noreply.github.com>2019-05-02 20:50:23 +0800
commit5036992b0665c5b454ef7005b09a86895df63551 (patch)
tree0d9d1473e91a12057fb71fe1d3390e3992516dfc /eth
parent4c90efdf57ce87edf0d855c8cec10525875a6ab1 (diff)
downloadgo-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.go6
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
}