forked from forks/go-ethereum
This change introduces 2 new optional methods; `enter()` and `exit()` for js tracers, and makes `step()` optiona. The two new methods are invoked when entering and exiting a call frame (but not invoked for the outermost scope, which has it's own methods). Currently these are the data fields passed to each of them:
enter: type (opcode), from, to, input, gas, value
exit: output, gasUsed, error
The PR also comes with a re-write of the callTracer. As a backup we keep the previous tracing script under the name `callTracerLegacy`. Behaviour of both tracers are equivalent for the most part, although there are some small differences (improvements), where the new tracer is more correct / has more information.
|
||
|---|---|---|
| .. | ||
| runtime | ||
| testdata | ||
| access_list_tracer.go | ||
| analysis.go | ||
| analysis_test.go | ||
| common.go | ||
| contract.go | ||
| contracts.go | ||
| contracts_test.go | ||
| doc.go | ||
| eips.go | ||
| errors.go | ||
| evm.go | ||
| gas.go | ||
| gas_table.go | ||
| gas_table_test.go | ||
| gen_structlog.go | ||
| instructions.go | ||
| instructions_test.go | ||
| interface.go | ||
| interpreter.go | ||
| jump_table.go | ||
| logger.go | ||
| logger_json.go | ||
| logger_test.go | ||
| memory.go | ||
| memory_table.go | ||
| opcodes.go | ||
| operations_acl.go | ||
| stack.go | ||
| stack_table.go | ||