|
|
@ -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
|
|
|
|
// Depending on the tracer type, format and return the output
|
|
|
|
switch tracer := tracer.(type) { |
|
|
|
switch tracer := tracer.(type) { |
|
|
|
case *vm.StructLogger: |
|
|
|
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{ |
|
|
|
return ðapi.ExecutionResult{ |
|
|
|
Gas: result.UsedGas, |
|
|
|
Gas: result.UsedGas, |
|
|
|
Failed: result.Failed(), |
|
|
|
Failed: result.Failed(), |
|
|
|
ReturnValue: fmt.Sprintf("%x", result.Return()), |
|
|
|
ReturnValue: returnVal, |
|
|
|
StructLogs: ethapi.FormatLogs(tracer.StructLogs()), |
|
|
|
StructLogs: ethapi.FormatLogs(tracer.StructLogs()), |
|
|
|
}, nil |
|
|
|
}, nil |
|
|
|
|
|
|
|
|
|
|
|