aboutsummaryrefslogtreecommitdiffstats
path: root/les
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 /les
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 'les')
-rw-r--r--les/api_backend.go6
1 files changed, 5 insertions, 1 deletions
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
}