vm: emit OnFaultV2 with revert return data; fallback to OnFault

This commit is contained in:
GarmashAlex 2025-10-29 13:24:55 +03:00 committed by GitHub
parent 17d313747d
commit bf35a2f113
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -155,9 +155,13 @@ func (evm *EVM) Run(contract *Contract, input []byte, readOnly bool) (ret []byte
if !logged && evm.Config.Tracer.OnOpcode != nil { if !logged && evm.Config.Tracer.OnOpcode != nil {
evm.Config.Tracer.OnOpcode(pcCopy, byte(op), gasCopy, cost, callContext, evm.returnData, evm.depth, VMErrorFromErr(err)) evm.Config.Tracer.OnOpcode(pcCopy, byte(op), gasCopy, cost, callContext, evm.returnData, evm.depth, VMErrorFromErr(err))
} }
if logged && evm.Config.Tracer.OnFault != nil { if logged {
if evm.Config.Tracer.OnFaultV2 != nil {
evm.Config.Tracer.OnFaultV2(pcCopy, byte(op), gasCopy, cost, callContext, evm.returnData, evm.depth, VMErrorFromErr(err))
} else if evm.Config.Tracer.OnFault != nil {
evm.Config.Tracer.OnFault(pcCopy, byte(op), gasCopy, cost, callContext, evm.depth, VMErrorFromErr(err)) evm.Config.Tracer.OnFault(pcCopy, byte(op), gasCopy, cost, callContext, evm.depth, VMErrorFromErr(err))
} }
}
}() }()
} }
// The Interpreter main run loop (contextual). This loop runs until either an // The Interpreter main run loop (contextual). This loop runs until either an