th/tracers/logger: return revert reason

The logger tracer is dropping data from a revert.
Because of error wrapping the == comparison is not sufficient.
errors.Is is needed.
This commit is contained in:
Martin 2025-01-09 15:46:58 -05:00
parent 033de2a05b
commit 4920d8127f

View file

@ -19,6 +19,7 @@ package logger
import (
"encoding/hex"
"encoding/json"
"errors"
"fmt"
"io"
"maps"
@ -350,7 +351,7 @@ func (l *StructLogger) GetResult() (json.RawMessage, error) {
returnData := common.CopyBytes(l.output)
// Return data when successful and revert reason when reverted, otherwise empty.
returnVal := fmt.Sprintf("%x", returnData)
if failed && l.err != vm.ErrExecutionReverted {
if failed && !errors.Is(l.err, vm.ErrExecutionReverted) {
returnVal = ""
}
return json.Marshal(&ExecutionResult{