Skip to content

Commit 6fdd5c8

Browse files
committed
feat(events): replace symbolic execution with structural classify-resolve pipeline
Replace the old multi-round symbolic execution engine with a two-phase Classify→Resolve pipeline for event selector extraction. Phase 1 (Classify): Build CFG, collect LOG sites, run single-block symbolic execution to determine topic0 source type (Push32/PushN/MloadCodecopy/CrossBlock). Phase 2 (Resolve): Extract event hashes per class — direct bytecode read for Push32/PushN, CODECOPY argument analysis for MloadCodecopy, BFS backward traversal through predecessor blocks for CrossBlock. Additional improvements: - ContinuationCache + BlockStateCache for CrossBlock resolution - Precise CODECOPY resolver with size=32 validation - Known non-event constants blocklist (27 entries, e.g. role hashes, EIP-712) - Forward reachability validation using function entry contexts Code reduced from ~5,700 lines to ~950 lines.
1 parent 6f3bb09 commit 6fdd5c8

6 files changed

Lines changed: 1010 additions & 3392 deletions

File tree

0 commit comments

Comments
 (0)