diff --git a/eth/tracers/native/call.go b/eth/tracers/native/call.go index 31f0f08cf60..f1781a06474 100644 --- a/eth/tracers/native/call.go +++ b/eth/tracers/native/call.go @@ -254,8 +254,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