Skip to main content

Module validation_observer

Module validation_observer 

Source
Expand description

EIP-8141 mempool validation-trace observer.

A lightweight, opt-in observer attached to VM that enforces the ERC-7562-style validation-trace rules during mempool simulation of a frame transaction’s validation prefix (the verify/pay/deploy frames that must run before the transaction’s payer is established). It is a local peer policy, never a consensus rule: it is active ONLY behind LEVM::simulate_frame_validation_prefix (the mempool entry point) and is constructed with ValidationObserver::disabled everywhere else, so normal block execution and block building pay a single if active branch in the dispatch loop and nothing more (mirrors LevmOpcodeTracer).

§OQ4 — SETDELEGATE is vacuous

The draft EIP’s validation-trace rules reference a SETDELEGATE operation used by deploy frames to install an EIP-7702 delegation for the sender. There is no SETDELEGATE opcode in opcodes.rs (the ethrex LEVM opcode set), so the deploy-frame delegation allowance reduces to what the actual opcode set can express: CREATE/CREATE2 plus SSTORE writing to the sender’s own storage. The observer therefore permits exactly those state effects inside the deploy frame and bans all other state writes; there is no separate SETDELEGATE allowance to model.

§Canonical-pay-frame exemption

ERC-7562 exempts the canonical paymaster’s pay frame from the storage/call access restrictions (a canonical paymaster is trusted to touch shared reservation state). ethrex cannot resolve the canonical paymaster bytecode (OQ1: not pinned in the draft EIP or any reference implementation), so canonical_paymaster_pay_frame is always None here and the exemption never fires. The field and the current_frame_index == canonical_paymaster_pay_frame skip are wired up so the exemption flips on for free once the canonical code hash is pinned.

Structs§

ValidationObserver
EIP-8141 validation-trace observer. Inert (active == false) in every VM construction except mempool prefix simulation.

Enums§

FrameSimViolation
A validation-trace rule violation detected during prefix simulation.