From 5952799988ead26bae02b6bc464823895b700d6c Mon Sep 17 00:00:00 2001 From: Matthieu Vachon Date: Thu, 27 Jul 2023 16:32:03 -0400 Subject: [PATCH] Fixed wrong EVM call tracing code --- core/vm/evm.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/vm/evm.go b/core/vm/evm.go index 803c9dfb1b..c6752e03cc 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -408,10 +408,14 @@ func (evm *EVM) create(caller ContractRef, codeAndHash *codeAndHash, gas uint64, if tracer := evm.Config.Tracer; tracer != nil { if evm.depth == 0 { tracer.CaptureStart(caller.Address(), address, true, codeAndHash.code, gas, value) - defer tracer.CaptureEnd(ret, gas-leftOverGas, err) + defer func(startGas uint64) { + tracer.CaptureEnd(ret, startGas-leftOverGas, err) + }(gas) } else { tracer.CaptureEnter(typ, caller.Address(), address, codeAndHash.code, gas, value) - defer tracer.CaptureExit(ret, gas-leftOverGas, err) + defer func(startGas uint64) { + tracer.CaptureExit(ret, startGas-leftOverGas, err) + }(gas) } } @@ -486,7 +490,6 @@ func (evm *EVM) create(caller ContractRef, codeAndHash *codeAndHash, gas uint64, } } - leftOverGas = contract.Gas return ret, address, contract.Gas, err }