forked from cerc-io/plugeth
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 | ||