Skip to content

IExtrospectV2: address-taking verdict surface, for a new deploy #139

Description

@thedavidmeister

Ruled by thedavidmeister 2026-08-19 (on #83): make a new interface for a new deploy.

IExtrospectV1 is frozen in practice — the concrete Extrospect implementing it is deterministically deployed at 0x1BE878af679C1a0A6AC15108b0F4398de1f94506 on all seven supported networks (rain.extrospection.deploy sol-v0.1.0) and can never gain functions. The address-taking verdict surface added since the AMT campaign therefore exists only at the library level: the metamorphic pair from PR #136, and the opcode-scan pair ruled on #83 (all reverting CodelessAccount(address) on a codeless account, per the E+D class from #55).

IExtrospectV2 carries that surface at the interface level so a deployed concrete can be bound to it:

  • The address-taking entry points: checkNotMetamorphic(address), scanMetamorphicRisk(address), scanEVMOpcodesPresentInBytecode(address), scanEVMOpcodesReachableInBytecode(address), alongside the existing address-taking CBOR checks — every address-taking absence check reverting on codeless accounts.
  • Whatever the open bytes-level rulings land as by then is inherited automatically (e.g. EIP-7702 delegated accounts are reported as NOT metamorphic #54's any-0xEF fail-closed), since the concrete forwards to the libraries.
  • Interface here per the split; the concrete, its deploy record and the sol-v* release happen in rain.extrospection.deploy per its release process (deploy first, tag after).

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions