go-ethereum/core/vm/runtime
Nick Johnson 781915f183 core/vm: Refactor tracing to make Tracer the main interface
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.
2016-08-22 09:26:15 +01:00
..
doc.go core/vm/runtime: added simple execution runtime 2015-11-18 16:50:20 +01:00
env.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
runtime_example_test.go core/vm/runtime: added simple execution runtime 2015-11-18 16:50:20 +01:00
runtime_test.go core: Added EVM configuration options 2016-03-23 23:02:42 +01:00
runtime.go Revert "test, cmd/evm, core, core/vm: illegal code hash implementation" 2016-06-29 11:44:51 +03:00