go-ethereum/core/vm
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
..
runtime core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
analysis.go all: fix license headers one more time 2015-07-23 18:35:11 +02:00
asm.go all: fix go vet warnings 2016-04-15 11:17:27 +02:00
common.go core: Added EVM configuration options 2016-03-23 23:02:42 +01:00
contract.go all: update license information 2016-04-15 09:48:05 +02:00
contracts.go core/vm: hide ecrecover error message 2016-08-05 23:12:52 +02:00
disasm.go all: fix license headers one more time 2015-07-23 18:35:11 +02:00
doc.go all: update license information 2016-04-15 09:48:05 +02:00
environment.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
errors.go parmas, crypto, core, core/vm: homestead consensus protocol changes 2016-02-18 10:08:11 +01:00
gas.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
instructions.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
jit_optimiser.go all: update license information 2016-04-15 09:48:05 +02:00
jit_test.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
jit_util_test.go all: fix go vet warnings 2016-04-15 11:17:27 +02:00
jit_util.go all: update license information 2016-04-15 09:48:05 +02:00
jit.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
jump_table_test.go all: update license information 2016-04-15 09:48:05 +02:00
jump_table.go all: update license information 2016-04-15 09:48:05 +02:00
log.go rpc: new RPC implementation with pub/sub support 2015-12-14 16:34:05 +01:00
logger_test.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
logger.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
memory.go cmd/geth, cmd/utils, core, rpc: renamed to blockchain 2015-10-04 01:13:56 +02:00
opcodes.go core, core/vm, crypto: fixes for homestead 2016-02-18 10:11:48 +01:00
segments.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
stack.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00
util_test.go all: update license information 2016-04-15 09:48:05 +02:00
virtual_machine.go core: Added EVM configuration options 2016-03-23 23:02:42 +01:00
vm_jit_fake.go core: added basic chain configuration 2016-04-01 01:01:10 +02:00
vm_jit.go core: various typos 2016-03-15 11:08:18 -07:00
vm.go core/vm: Refactor tracing to make Tracer the main interface 2016-08-22 09:26:15 +01:00