From 1cf96f6e129419aa643898cdb199c3c765bf2daf Mon Sep 17 00:00:00 2001 From: lightclient Date: Wed, 19 Feb 2025 07:08:28 -0700 Subject: [PATCH] internal/ethapi: reuse headers list for simulate --- internal/ethapi/simulate.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/internal/ethapi/simulate.go b/internal/ethapi/simulate.go index 0744afbee0..a8b81951d9 100644 --- a/internal/ethapi/simulate.go +++ b/internal/ethapi/simulate.go @@ -138,20 +138,16 @@ func (sim *simulator) execute(ctx context.Context, blocks []simBlock) ([]*simBlo } var ( results = make([]*simBlockResult, len(blocks)) - // prevHeaders is the header for all previously simulated blocks. - // It is "filled" compared to the barebone header available prior to execution. - // It will be used for serving the BLOCKHASH opcode. - prevHeaders = make([]*types.Header, 0, len(blocks)) - parent = sim.base + parent = sim.base ) for bi, block := range blocks { - result, callResults, err := sim.processBlock(ctx, &block, headers[bi], parent, prevHeaders, timeout) + result, callResults, err := sim.processBlock(ctx, &block, headers[bi], parent, headers[:bi], timeout) if err != nil { return nil, err } + headers[bi] = result.Header() results[bi] = &simBlockResult{fullTx: sim.fullTx, chainConfig: sim.chainConfig, Block: result, Calls: callResults} parent = result.Header() - prevHeaders = append(prevHeaders, parent) } return results, nil }