@@ -603,6 +603,17 @@ func (api *API) traceBlock(ctx context.Context, block *types.Block, config *Trac
603
603
return nil , err
604
604
}
605
605
defer release ()
606
+
607
+ blockCtx := core .NewEVMBlockContext (block .Header (), api .chainContext (ctx ), nil )
608
+ if beaconRoot := block .BeaconRoot (); beaconRoot != nil {
609
+ vmenv := vm .NewEVM (blockCtx , vm.TxContext {}, statedb , api .backend .ChainConfig (), vm.Config {})
610
+ core .ProcessBeaconBlockRoot (* beaconRoot , vmenv , statedb )
611
+ }
612
+ if api .backend .ChainConfig ().IsPrague (block .Number (), block .Time ()) {
613
+ vmenv := vm .NewEVM (blockCtx , vm.TxContext {}, statedb , api .backend .ChainConfig (), vm.Config {})
614
+ core .ProcessParentBlockHash (block .ParentHash (), vmenv , statedb )
615
+ }
616
+
606
617
// JS tracers have high overhead. In this case run a parallel
607
618
// process that generates states in one thread and traces txes
608
619
// in separate worker threads.
@@ -615,18 +626,9 @@ func (api *API) traceBlock(ctx context.Context, block *types.Block, config *Trac
615
626
var (
616
627
txs = block .Transactions ()
617
628
blockHash = block .Hash ()
618
- blockCtx = core .NewEVMBlockContext (block .Header (), api .chainContext (ctx ), nil )
619
629
signer = types .MakeSigner (api .backend .ChainConfig (), block .Number (), block .Time ())
620
630
results = make ([]* txTraceResult , len (txs ))
621
631
)
622
- if beaconRoot := block .BeaconRoot (); beaconRoot != nil {
623
- vmenv := vm .NewEVM (blockCtx , vm.TxContext {}, statedb , api .backend .ChainConfig (), vm.Config {})
624
- core .ProcessBeaconBlockRoot (* beaconRoot , vmenv , statedb )
625
- }
626
- if api .backend .ChainConfig ().IsPrague (block .Number (), block .Time ()) {
627
- vmenv := vm .NewEVM (blockCtx , vm.TxContext {}, statedb , api .backend .ChainConfig (), vm.Config {})
628
- core .ProcessParentBlockHash (block .ParentHash (), vmenv , statedb )
629
- }
630
632
for i , tx := range txs {
631
633
// Generate the next state snapshot fast without tracing
632
634
msg , _ := core .TransactionToMessage (tx , signer , block .BaseFee ())
0 commit comments