eth: returned revert reason in traceTx (#21195)

* eth: returned revert reason in traceTx

* eth: return result data
This commit is contained in:
Marius van der Wijden 2020-06-26 10:19:31 +00:00 committed by GitHub
parent 413358abb9
commit 02cea2330d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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 &ethapi.ExecutionResult{
Gas: result.UsedGas,
Failed: result.Failed(),
ReturnValue: fmt.Sprintf("%x", result.Return()),
ReturnValue: returnVal,
StructLogs: ethapi.FormatLogs(tracer.StructLogs()),
}, nil