@@ -61,7 +61,6 @@ type blockFees struct {
61
61
blobBaseFee , nextBlobBaseFee * big.Int
62
62
gasUsedRatio float64
63
63
blobGasUsedRatio float64
64
- secondsPerSlot uint64
65
64
err error
66
65
}
67
66
@@ -103,7 +102,8 @@ func (oracle *Oracle) processBlock(bf *blockFees, percentiles []float64) {
103
102
bf .err = err
104
103
return
105
104
}
106
- nextBlobBaseFee256 , err := misc .GetBlobGasPrice (chainconfig , misc .CalcExcessBlobGas (chainconfig , bf .header , bf .header .Time + bf .secondsPerSlot ), bf .header .Time + bf .secondsPerSlot )
105
+ nextBlockTime := bf .header .Time + chainconfig .SecondsPerSlot ()
106
+ nextBlobBaseFee256 , err := misc .GetBlobGasPrice (chainconfig , misc .CalcExcessBlobGas (chainconfig , bf .header , nextBlockTime ), nextBlockTime )
107
107
if err != nil {
108
108
bf .err = err
109
109
return
@@ -169,51 +169,38 @@ func (oracle *Oracle) processBlock(bf *blockFees, percentiles []float64) {
169
169
// also returned if requested and available.
170
170
// Note: an error is only returned if retrieving the head header has failed. If there are no
171
171
// retrievable blocks in the specified range then zero block count is returned with no error.
172
- func (oracle * Oracle ) resolveBlockRange (ctx context.Context , lastBlock rpc.BlockNumber , blocks , maxHistory int ) (* types.Block , []* types.Receipt , uint64 , int , uint64 , error ) {
172
+ func (oracle * Oracle ) resolveBlockRange (ctx context.Context , lastBlock rpc.BlockNumber , blocks , maxHistory int ) (* types.Block , []* types.Receipt , uint64 , int , error ) {
173
173
var (
174
174
headBlock rpc.BlockNumber
175
175
pendingBlock * types.Block
176
176
pendingReceipts types.Receipts
177
- secondsPerSlot uint64 // Time diff from parent block as an approx
178
- lastBlockTime uint64
179
177
)
180
178
// query either pending block or head header and set headBlock
181
179
if lastBlock == rpc .PendingBlockNumber {
182
180
if pendingBlock , pendingReceipts = oracle .backend .PendingBlockAndReceipts (); pendingBlock != nil {
183
181
lastBlock = rpc .BlockNumber (pendingBlock .NumberU64 ())
184
182
headBlock = lastBlock - 1
185
- lastBlockTime = pendingBlock .Time ()
186
183
} else {
187
184
// pending block not supported by backend, process until latest block
188
185
lastBlock = rpc .LatestBlockNumber
189
186
blocks --
190
187
if blocks == 0 {
191
- return nil , nil , 0 , 0 , 0 , nil
188
+ return nil , nil , 0 , 0 , nil
192
189
}
193
190
}
194
191
}
195
192
if pendingBlock == nil {
196
193
// if pending block is not fetched then we retrieve the head header to get the head block number
197
194
if latestHeader , err := oracle .backend .HeaderByNumber (ctx , rpc .LatestBlockNumber ); err == nil {
198
195
headBlock = rpc .BlockNumber (latestHeader .Number .Uint64 ())
199
- lastBlockTime = latestHeader .Time
200
196
} else {
201
- return nil , nil , 0 , 0 , 0 , err
197
+ return nil , nil , 0 , 0 , err
202
198
}
203
199
}
204
200
if lastBlock == rpc .LatestBlockNumber {
205
201
lastBlock = headBlock
206
202
} else if pendingBlock == nil && lastBlock > headBlock {
207
- return nil , nil , 0 , 0 , 0 , fmt .Errorf ("%w: requested %d, head %d" , ErrRequestBeyondHead , lastBlock , headBlock )
208
- }
209
- if lastBlock > 0 {
210
- parentHeader , err := oracle .backend .HeaderByNumber (ctx , lastBlock - 1 )
211
- if err != nil {
212
- return nil , nil , 0 , 0 , 0 , err
213
- }
214
- if parentHeader != nil {
215
- secondsPerSlot = parentHeader .Time - lastBlockTime
216
- }
203
+ return nil , nil , 0 , 0 , fmt .Errorf ("%w: requested %d, head %d" , ErrRequestBeyondHead , lastBlock , headBlock )
217
204
}
218
205
if maxHistory != 0 {
219
206
// limit retrieval to the given number of latest blocks
@@ -222,15 +209,15 @@ func (oracle *Oracle) resolveBlockRange(ctx context.Context, lastBlock rpc.Block
222
209
if int64 (blocks ) > tooOldCount {
223
210
blocks -= int (tooOldCount )
224
211
} else {
225
- return nil , nil , 0 , 0 , 0 , nil
212
+ return nil , nil , 0 , 0 , nil
226
213
}
227
214
}
228
215
}
229
216
// ensure not trying to retrieve before genesis
230
217
if rpc .BlockNumber (blocks ) > lastBlock + 1 {
231
218
blocks = int (lastBlock + 1 )
232
219
}
233
- return pendingBlock , pendingReceipts , uint64 (lastBlock ), blocks , secondsPerSlot , nil
220
+ return pendingBlock , pendingReceipts , uint64 (lastBlock ), blocks , nil
234
221
}
235
222
236
223
// FeeHistory returns data relevant for fee estimation based on the specified range of blocks.
@@ -276,7 +263,7 @@ func (oracle *Oracle) FeeHistory(ctx context.Context, blocks int, unresolvedLast
276
263
pendingReceipts []* types.Receipt
277
264
err error
278
265
)
279
- pendingBlock , pendingReceipts , lastBlock , blocks , secondsPerSlot , err := oracle .resolveBlockRange (ctx , unresolvedLastBlock , blocks , maxHistory )
266
+ pendingBlock , pendingReceipts , lastBlock , blocks , err := oracle .resolveBlockRange (ctx , unresolvedLastBlock , blocks , maxHistory )
280
267
if err != nil || blocks == 0 {
281
268
return libcommon .Big0 , nil , nil , nil , nil , nil , err
282
269
}
@@ -303,7 +290,7 @@ func (oracle *Oracle) FeeHistory(ctx context.Context, blocks int, unresolvedLast
303
290
continue
304
291
}
305
292
306
- fees := & blockFees {blockNumber : blockNumber , secondsPerSlot : secondsPerSlot }
293
+ fees := & blockFees {blockNumber : blockNumber }
307
294
if pendingBlock != nil && blockNumber >= pendingBlock .NumberU64 () {
308
295
fees .block , fees .receipts = pendingBlock , pendingReceipts
309
296
} else {
0 commit comments