@@ -49,10 +49,7 @@ import (
4949 "github.com/ethereum/go-ethereum/event"
5050)
5151
52- var (
53- ErrUnfinalizedData = errors .New ("cannot query unfinalized data" )
54- errExpired = errors .New ("request expired" )
55- )
52+ var ErrUnfinalizedData = errors .New ("cannot query unfinalized data" )
5653
5754// EthAPIBackend implements ethapi.Backend for full nodes
5855type EthAPIBackend struct {
@@ -80,8 +77,8 @@ func (b *EthAPIBackend) LastAcceptedBlock() *types.Block {
8077}
8178
8279func (b * EthAPIBackend ) HeaderByNumber (ctx context.Context , number rpc.BlockNumber ) (* types.Header , error ) {
83- if deadline , exists := ctx .Deadline (); exists && time . Until ( deadline ) < 0 {
84- return nil , errExpired
80+ if err := ctx .Err (); err != nil {
81+ return nil , err
8582 }
8683 // Treat requests for the pending, latest, or accepted block
8784 // identically.
@@ -117,15 +114,15 @@ func (b *EthAPIBackend) HeaderByNumberOrHash(ctx context.Context, blockNrOrHash
117114}
118115
119116func (b * EthAPIBackend ) HeaderByHash (ctx context.Context , hash common.Hash ) (* types.Header , error ) {
120- if deadline , exists := ctx .Deadline (); exists && time . Until ( deadline ) < 0 {
121- return nil , errExpired
117+ if err := ctx .Err (); err != nil {
118+ return nil , err
122119 }
123120 return b .eth .blockchain .GetHeaderByHash (hash ), nil
124121}
125122
126123func (b * EthAPIBackend ) BlockByNumber (ctx context.Context , number rpc.BlockNumber ) (* types.Block , error ) {
127- if deadline , exists := ctx .Deadline (); exists && time . Until ( deadline ) < 0 {
128- return nil , errExpired
124+ if err := ctx .Err (); err != nil {
125+ return nil , err
129126 }
130127 // Treat requests for the pending, latest, or accepted block
131128 // identically.
@@ -144,8 +141,8 @@ func (b *EthAPIBackend) BlockByNumber(ctx context.Context, number rpc.BlockNumbe
144141}
145142
146143func (b * EthAPIBackend ) BlockByHash (ctx context.Context , hash common.Hash ) (* types.Block , error ) {
147- if deadline , exists := ctx .Deadline (); exists && time . Until ( deadline ) < 0 {
148- return nil , errExpired
144+ if err := ctx .Err (); err != nil {
145+ return nil , err
149146 }
150147 return b .eth .blockchain .GetBlockByHash (hash ), nil
151148}
@@ -154,8 +151,8 @@ func (b *EthAPIBackend) BlockByNumberOrHash(ctx context.Context, blockNrOrHash r
154151 if blockNr , ok := blockNrOrHash .Number (); ok {
155152 return b .BlockByNumber (ctx , blockNr )
156153 }
157- if deadline , exists := ctx .Deadline (); exists && time . Until ( deadline ) < 0 {
158- return nil , errExpired
154+ if err := ctx .Err (); err != nil {
155+ return nil , err
159156 }
160157 if hash , ok := blockNrOrHash .Hash (); ok {
161158 header := b .eth .blockchain .GetHeaderByHash (hash )
@@ -199,8 +196,8 @@ func (b *EthAPIBackend) StateAndHeaderByNumberOrHash(ctx context.Context, blockN
199196 if blockNr , ok := blockNrOrHash .Number (); ok {
200197 return b .StateAndHeaderByNumber (ctx , blockNr )
201198 }
202- if deadline , exists := ctx .Deadline (); exists && time . Until ( deadline ) < 0 {
203- return nil , nil , errExpired
199+ if err := ctx .Err (); err != nil {
200+ return nil , nil , err
204201 }
205202 if hash , ok := blockNrOrHash .Hash (); ok {
206203 header , err := b .HeaderByHash (ctx , hash )
@@ -220,15 +217,15 @@ func (b *EthAPIBackend) StateAndHeaderByNumberOrHash(ctx context.Context, blockN
220217}
221218
222219func (b * EthAPIBackend ) GetReceipts (ctx context.Context , hash common.Hash ) (types.Receipts , error ) {
223- if deadline , exists := ctx .Deadline (); exists && time . Until ( deadline ) < 0 {
224- return nil , errExpired
220+ if err := ctx .Err (); err != nil {
221+ return nil , err
225222 }
226223 return b .eth .blockchain .GetReceiptsByHash (hash ), nil
227224}
228225
229226func (b * EthAPIBackend ) GetLogs (ctx context.Context , hash common.Hash ) ([][]* types.Log , error ) {
230- if deadline , exists := ctx .Deadline (); exists && time . Until ( deadline ) < 0 {
231- return nil , errExpired
227+ if err := ctx .Err (); err != nil {
228+ return nil , err
232229 }
233230 db := b .eth .ChainDb ()
234231 number := rawdb .ReadHeaderNumber (db , hash )
@@ -289,8 +286,8 @@ func (b *EthAPIBackend) SubscribeAcceptedTransactionEvent(ch chan<- core.NewTxsE
289286}
290287
291288func (b * EthAPIBackend ) SendTx (ctx context.Context , signedTx * types.Transaction ) error {
292- if deadline , exists := ctx .Deadline (); exists && time . Until ( deadline ) < 0 {
293- return errExpired
289+ if err := ctx .Err (); err != nil {
290+ return err
294291 }
295292 return b .eth .txPool .AddLocal (signedTx )
296293}
0 commit comments