diff --git a/eth/tracers/native/call.go b/eth/tracers/native/call.go index ba929b2920e..da866627f3e 100644 --- a/eth/tracers/native/call.go +++ b/eth/tracers/native/call.go @@ -251,8 +251,13 @@ func (t *callTracer) CaptureExit(output []byte, gasUsed uint64, err error) { return } precompilesLastIdx := len(t.precompiles) - 1 - if !t.config.IncludePrecompiles && precompilesLastIdx > -1 && t.precompiles[precompilesLastIdx] { - t.precompiles = t.precompiles[:precompilesLastIdx] + if precompilesLastIdx < 0 { + return + } + // pop precompile + precompile := t.precompiles[precompilesLastIdx] + t.precompiles = t.precompiles[:precompilesLastIdx] + if precompile && !t.config.IncludePrecompiles { return } // pop call