@@ -194,6 +194,10 @@ func (sim *simulator) processBlock(ctx context.Context, block *simBlock, header,
194
194
if precompiles != nil {
195
195
evm .SetPrecompiles (precompiles )
196
196
}
197
+ if sim .chainConfig .IsPrague (header .Number , header .Time ) || sim .chainConfig .IsVerkle (header .Number , header .Time ) {
198
+ core .ProcessParentBlockHash (header .ParentHash , evm )
199
+ }
200
+ var allLogs []* types.Log
197
201
for i , call := range block .Calls {
198
202
if err := ctx .Err (); err != nil {
199
203
return nil , nil , err
@@ -234,9 +238,23 @@ func (sim *simulator) processBlock(ctx context.Context, block *simBlock, header,
234
238
}
235
239
} else {
236
240
callRes .Status = hexutil .Uint64 (types .ReceiptStatusSuccessful )
241
+ allLogs = append (allLogs , callRes .Logs ... )
237
242
}
238
243
callResults [i ] = callRes
239
244
}
245
+ var requests [][]byte
246
+ // Process EIP-7685 requests
247
+ if sim .chainConfig .IsPrague (header .Number , header .Time ) {
248
+ requests = [][]byte {}
249
+ // EIP-6110
250
+ if err := core .ParseDepositLogs (& requests , allLogs , sim .chainConfig ); err != nil {
251
+ return nil , nil , err
252
+ }
253
+ // EIP-7002
254
+ core .ProcessWithdrawalQueue (& requests , evm )
255
+ // EIP-7251
256
+ core .ProcessConsolidationQueue (& requests , evm )
257
+ }
240
258
header .Root = sim .state .IntermediateRoot (true )
241
259
header .GasUsed = gasUsed
242
260
if sim .chainConfig .IsCancun (header .Number , header .Time ) {
@@ -246,6 +264,10 @@ func (sim *simulator) processBlock(ctx context.Context, block *simBlock, header,
246
264
if sim .chainConfig .IsShanghai (header .Number , header .Time ) {
247
265
withdrawals = make ([]* types.Withdrawal , 0 )
248
266
}
267
+ if requests != nil {
268
+ reqHash := types .CalcRequestsHash (requests )
269
+ header .RequestsHash = & reqHash
270
+ }
249
271
b := types .NewBlock (header , & types.Body {Transactions : txes , Withdrawals : withdrawals }, receipts , trie .NewStackTrie (nil ))
250
272
repairLogs (callResults , b .Hash ())
251
273
return b , callResults , nil
0 commit comments