From 4d02fdd0880704f6d912f6cef633e9d3a48b587b Mon Sep 17 00:00:00 2001 From: Aman Sanghi Date: Mon, 6 Jan 2025 18:36:17 +0530 Subject: [PATCH 1/2] fix flatCallTracer onexit out of bound --- eth/tracers/native/call_flat.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eth/tracers/native/call_flat.go b/eth/tracers/native/call_flat.go index a51af560d..06e10f76d 100644 --- a/eth/tracers/native/call_flat.go +++ b/eth/tracers/native/call_flat.go @@ -195,6 +195,9 @@ func (t *flatCallTracer) OnExit(depth int, output []byte, gasUsed uint64, err er if t.config.IncludePrecompiles { return } + if len(t.tracer.callstack[len(t.tracer.callstack)-1].Calls) > 0 { + return + } var ( // call has been nested in parent parent = t.tracer.callstack[len(t.tracer.callstack)-1] From bd8e6ed8f6693ddb00537a422fb88f84bcefdee2 Mon Sep 17 00:00:00 2001 From: Aman Sanghi Date: Mon, 6 Jan 2025 18:37:32 +0530 Subject: [PATCH 2/2] fix --- eth/tracers/native/call_flat.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eth/tracers/native/call_flat.go b/eth/tracers/native/call_flat.go index 06e10f76d..b1baf0ade 100644 --- a/eth/tracers/native/call_flat.go +++ b/eth/tracers/native/call_flat.go @@ -195,7 +195,7 @@ func (t *flatCallTracer) OnExit(depth int, output []byte, gasUsed uint64, err er if t.config.IncludePrecompiles { return } - if len(t.tracer.callstack[len(t.tracer.callstack)-1].Calls) > 0 { + if len(t.tracer.callstack[len(t.tracer.callstack)-1].Calls) == 0 { return } var (