diff --git a/eth/api_tracer.go b/eth/api_tracer.go index 68a61bea0..125c6fd70 100644 --- a/eth/api_tracer.go +++ b/eth/api_tracer.go @@ -765,10 +765,15 @@ func (api *PrivateDebugAPI) traceTx(ctx context.Context, message core.Message, v // Depending on the tracer type, format and return the output switch tracer := tracer.(type) { case *vm.StructLogger: + // If the result contains a revert reason, return it. + returnVal := fmt.Sprintf("%x", result.Return()) + if len(result.Revert()) > 0 { + returnVal = fmt.Sprintf("%x", result.Revert()) + } return ðapi.ExecutionResult{ Gas: result.UsedGas, Failed: result.Failed(), - ReturnValue: fmt.Sprintf("%x", result.Return()), + ReturnValue: returnVal, StructLogs: ethapi.FormatLogs(tracer.StructLogs()), }, nil