From 098a448cd8a1b1111c45a0a1fc47d344760ebd3a Mon Sep 17 00:00:00 2001 From: Martin Holst Swende Date: Thu, 5 Sep 2024 12:39:19 +0200 Subject: [PATCH] internal/ethapi: abort when context is cancelled --- internal/ethapi/simulate.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/ethapi/simulate.go b/internal/ethapi/simulate.go index 996f600d77..bccf87f8ef 100644 --- a/internal/ethapi/simulate.go +++ b/internal/ethapi/simulate.go @@ -96,6 +96,9 @@ type simulator struct { // execute runs the simulation of a series of blocks. func (sim *simulator) execute(ctx context.Context, blocks []simBlock) ([]map[string]interface{}, error) { + if err := ctx.Err(); err != nil { + return nil, err + } var ( cancel context.CancelFunc timeout = sim.b.RPCEVMTimeout() @@ -194,6 +197,9 @@ func (sim *simulator) processBlock(ctx context.Context, block *simBlock, header, evm.SetPrecompiles(precompiles) } for i, call := range block.Calls { + if err := ctx.Err(); err != nil { + return nil, nil, err + } if err := sim.sanitizeCall(&call, sim.state, header, blockContext, &gasUsed); err != nil { return nil, nil, err }