Skip to content

feat(tests): EIP-2780 warm/cold-aware top-frame delegation#3045

Open
chfast wants to merge 1 commit into
ethereum:devnets/glamsterdam/6from
chfast:probe/eip2780-warm-delegation
Open

feat(tests): EIP-2780 warm/cold-aware top-frame delegation#3045
chfast wants to merge 1 commit into
ethereum:devnets/glamsterdam/6from
chfast:probe/eip2780-warm-delegation

Conversation

@chfast

@chfast chfast commented Jun 24, 2026

Copy link
Copy Markdown
Member

🗒️ Description

Assert that an EIP-7702 delegation target already made warm via the access list is resolved at the WARM_ACCESS rate at the top transaction frame, per the EIP-2780 Interactions note (the EIP-2929 accessed_addresses model).

EIP-2780 is internally inconsistent here: its normative top-level gas-cost bullet and reference-cases table charge an unconditional COLD_ACCOUNT_ACCESS, whereas the Interactions note specifies warm/cold-aware accounting. This probe pins the Interactions-note reading; test_warmth_invariants.py pins the unconditional-cold one.

Marked xfail(strict=True): the implementation currently charges cold unconditionally, so the probe is CI-green today and a strict XPASS forces the marker's removal once the spec is disambiguated in favor of warm/cold-aware accounting and EELS adopts it.

🔗 Related Issues or PRs

N/A.

✅ Checklist

  • All: Ran fast static checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    just static
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Considered updating the online docs in the ./docs/ directory.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).
  • Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.
  • Tests: For PRs implementing a missed test case, update the post-mortem document to add an entry the list.
  • Ported Tests: All converted JSON/YML tests from ethereum/tests or tests/static have been assigned @ported_from marker.

Cute Animal Picture

Put a link to a cute animal picture inside the parenthesis-->

Assert that an EIP-7702 delegation target already made warm via the access list is resolved at the WARM_ACCESS rate at the top transaction frame, per the EIP-2780 Interactions note (the EIP-2929 accessed_addresses model).

EIP-2780 is internally inconsistent here: its normative top-level gas-cost bullet and reference-cases table charge an unconditional COLD_ACCOUNT_ACCESS, whereas the Interactions note specifies warm/cold-aware accounting. This probe pins the Interactions-note reading; test_warmth_invariants.py pins the unconditional-cold one.

Marked xfail(strict=True): the implementation currently charges cold unconditionally, so the probe is CI-green today and a strict XPASS forces the marker's removal once the spec is disambiguated in favor of warm/cold-aware accounting and EELS adopts it.
@gurukamath

Copy link
Copy Markdown
Contributor

The scenario is already covered in this test. If we decide to update the spec and the implementation, could we just adapt that test?

@chfast

chfast commented Jun 24, 2026

Copy link
Copy Markdown
Member Author

The scenario is already covered in this test. If we decide to update the spec and the implementation, could we just adapt that test?

Yes, we can.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants