diff --git a/eth/tracers/js/goja.go b/eth/tracers/js/goja.go index 9e687a72d3..a7db4d127a 100644 --- a/eth/tracers/js/goja.go +++ b/eth/tracers/js/goja.go @@ -274,7 +274,9 @@ func (t *jsTracer) OnTxEnd(receipt *types.Receipt, err error) { } return } - t.ctx["gasUsed"] = t.vm.ToValue(receipt.GasUsed) + if receipt != nil { + t.ctx["gasUsed"] = t.vm.ToValue(receipt.GasUsed) + } } // onStart implements the Tracer interface to initialize the tracing operation. diff --git a/eth/tracers/logger/logger.go b/eth/tracers/logger/logger.go index ede929fa64..022a9a83ab 100644 --- a/eth/tracers/logger/logger.go +++ b/eth/tracers/logger/logger.go @@ -268,7 +268,9 @@ func (l *StructLogger) OnTxEnd(receipt *types.Receipt, err error) { } return } - l.usedGas = receipt.GasUsed + if receipt != nil { + l.usedGas = receipt.GasUsed + } } // StructLogs returns the captured log entries. diff --git a/eth/tracers/native/call.go b/eth/tracers/native/call.go index f492c2ee79..d9530c0582 100644 --- a/eth/tracers/native/call.go +++ b/eth/tracers/native/call.go @@ -225,7 +225,9 @@ func (t *callTracer) OnTxEnd(receipt *types.Receipt, err error) { if err != nil { return } - t.callstack[0].GasUsed = receipt.GasUsed + if receipt != nil { + t.callstack[0].GasUsed = receipt.GasUsed + } if t.config.WithLog { // Logs are not emitted when the call fails clearFailedLogs(&t.callstack[0], false)