Skip to content

feat(tests): EIP-8037 - no refill for failed creates onto alive accounts - #3529

Merged
LouisTsai-Csie merged 1 commit into
ethereum:forks/amsterdamfrom
spencer-tb:tests/amsterdam/eip-8037-closeout
Sep 22, 2026
Merged

LouisTsai-Csie merged 1 commit into
ethereum:forks/amsterdamfrom
spencer-tb:tests/amsterdam/eip-8037-closeout

Conversation

@spencer-tb

@spencer-tb spencer-tb commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

Description

Close out the EIP-8037 testing-checklist evidence.

  • Add a regression test proving that a create frame failing on an alive destination refills no NEW_ACCOUNT state gas. The factory's gas is tuned so its probe SSTORE only fits when the reservoir funds it; making the refill in generic_create unconditional fails all twelve no_reservoir fixtures and none of the twelve reservoir_covers ones.
  • Correct the collision-test docstring: an alive target is never charged, so nothing is refunded.
  • Record EELS line coverage for the checklist (general/code_coverage/eels and missed_lines). Filling the directory (2179 fixtures) executes every EIP-8037 line; the misses in the touched files are pre-existing branches, classified in eip_checklist_external_coverage.txt. The top-frame NEW_ACCOUNT charge for a value transfer to a non-alive recipient is exercised by the EIP-2780 directory.

The reference pin was refreshed to the current eip-8037.md blob by #3582, so this PR no longer touches spec.py. uv run checklist --eip 8037 reports 28/29 on this branch (26/29 on forks/amsterdam); the remaining item is second_client.

Related Issues or PRs

Part of #3217; follows #3478, #3524, #3525 and #3582.

Checklist

  • Ran fast static checks to avoid CI fails, see Code Standards & Verifying Changes: just static
  • PR title has the form <type>(<area>): <title>, where <type> and <area> come from an appropriate C-<type>, respectively A-<area>, label. The title should match the target squash commit message.

@spencer-tb spencer-tb added C-chore Category: chore A-tests Area: Consensus tests. labels Sep 4, 2026
@codecov

codecov Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.49%. Comparing base (c335bc4) to head (3f01d32).

Additional details and impacted files
@@               Coverage Diff                @@
##           forks/amsterdam    #3529   +/-   ##
================================================
  Coverage            94.49%   94.49%           
================================================
  Files                  624      624           
  Lines                36964    36964           
  Branches              3331     3331           
================================================
  Hits                 34930    34930           
  Misses                1435     1435           
  Partials               599      599           
Flag Coverage Δ
unittests 94.49% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@spencer-tb
spencer-tb force-pushed the tests/amsterdam/eip-8037-closeout branch 2 times, most recently from 96d5d17 to d261b09 Compare September 4, 2026 13:59
@spencer-tb
spencer-tb marked this pull request as ready for review September 21, 2026 13:14
Add a regression test proving that a create frame failing on an alive destination refills no NEW_ACCOUNT state gas: the factory's gas is tuned so its probe SSTORE only fits when the reservoir funds it, and removing the refill guard fails all twelve no_reservoir fixtures.

Correct the collision-test docstring (an alive target is never charged, so nothing is refunded) and record the EELS line-coverage evidence for the checklist: every EIP-8037 line is executed, with the remaining misses classified as pre-existing code.
@spencer-tb
spencer-tb force-pushed the tests/amsterdam/eip-8037-closeout branch from d261b09 to 3f01d32 Compare September 21, 2026 14:15
@spencer-tb spencer-tb changed the title chore(tests): refresh EIP-8037 reference pin and coverage evidence feat(tests): EIP-8037 - no refill for failed creates onto alive accounts Sep 21, 2026
@LouisTsai-Csie
LouisTsai-Csie merged commit 80354f6 into ethereum:forks/amsterdam Sep 22, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-tests Area: Consensus tests. C-chore Category: chore

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants