Skip to content

Commit 8be8349

Browse files
Replace ctx deadline hack with err check (ava-labs#828)
* Replace ctx deadline hack with err check * Remove deadcode
1 parent 51fda40 commit 8be8349

1 file changed

Lines changed: 19 additions & 22 deletions

File tree

eth/api_backend.go

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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
5855
type EthAPIBackend struct {
@@ -80,8 +77,8 @@ func (b *EthAPIBackend) LastAcceptedBlock() *types.Block {
8077
}
8178

8279
func (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

119116
func (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

126123
func (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

146143
func (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

222219
func (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

229226
func (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

291288
func (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

Comments
 (0)