• Nick Johnson's avatar
    core/vm: Refactor tracing to make Tracer the main interface · 781915f1
    Nick Johnson authored
    This CL makes several refactors:
     - Define a Tracer interface, implementing the `CaptureState` method
     - Add the VM environment as the first argument of
       `Tracer.CaptureState`
     - Rename existing functionality `StructLogger` an make it an
       implementation of `Tracer`
     - Delete `StructLogCollector` and make `StructLogger` collect the logs
       directly
     - Change all callers to use the new `StructLogger` where necessary and
       extract logs from that.
     - Deletes the apparently obsolete and likely nonfunctional 'TraceCall'
       from the eth API.
    
    Callers that only wish accumulated logs can use the `StructLogger`
    implementation straightforwardly. Callers that wish to efficiently
    capture VM traces and operate on them without excessive copying can now
    implement the `Tracer` interface to receive VM state at each step and
    do with it as they wish.
    
    This CL also removes the accumulation of logs from the vm.Environment;
    this was necessary as part of the refactor, but also simplifies it by
    removing a responsibility that doesn't directly belong to the
    Environment.
    781915f1
Name
Last commit
Last update
..
abigen Loading commit data...
bootnode Loading commit data...
disasm Loading commit data...
ethtest Loading commit data...
evm Loading commit data...
geth Loading commit data...
gethrpctest Loading commit data...
rlpdump Loading commit data...
utils Loading commit data...