mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-09 09:36:40 +00:00
The mux tracer fanned out every standard hook to its children but never
forwarded OnSystemCall{Start,End}. Tracers that rely on these - like
`logger.jsonLogger`, which uses the start hook to silence its opcode
hook for the duration of a system call - never got the signal when
wrapped behind a mux.
In evm t8n, combining `--trace` with `--opcode-count` (default for geth
with exec specs) produces exactly that wrapping. The first system call
(e.g. `ProcessBeaconBlockRoot`) then fires `OnOpcode` on the json logger
before any `OnTxStart` has run, dereferencing a nil env and crashing
t8n.
Forward both hooks through the mux. The V2 fan-out falls back to V1 for
children that only implement the legacy hook, mirroring the precedence
already used in `core/state_processor.go`.
|
||
|---|---|---|
| .. | ||
| 4byte.go | ||
| call.go | ||
| call_flat.go | ||
| call_flat_test.go | ||
| erc7562.go | ||
| gen_account_json.go | ||
| gen_callframe_json.go | ||
| gen_callframewithopcodes_json.go | ||
| gen_flatcallaction_json.go | ||
| gen_flatcallresult_json.go | ||
| keccak256_preimage.go | ||
| keccak256_preimage_test.go | ||
| mux.go | ||
| noop.go | ||
| opcode_counter.go | ||
| prestate.go | ||