781915f183
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. |
||
---|---|---|
.. | ||
runtime | ||
analysis.go | ||
asm.go | ||
common.go | ||
contract.go | ||
contracts.go | ||
disasm.go | ||
doc.go | ||
environment.go | ||
errors.go | ||
gas.go | ||
instructions.go | ||
jit_optimiser.go | ||
jit_test.go | ||
jit_util_test.go | ||
jit_util.go | ||
jit.go | ||
jump_table_test.go | ||
jump_table.go | ||
log.go | ||
logger_test.go | ||
logger.go | ||
memory.go | ||
opcodes.go | ||
segments.go | ||
stack.go | ||
util_test.go | ||
virtual_machine.go | ||
vm_jit_fake.go | ||
vm_jit.go | ||
vm.go |