Skip to content

feat(specs,tests): reject an occupied EIP-8250 nonce manager address at the fork block - #3725

Closed
spencer-tb wants to merge 5 commits into
ethereum:eips/bogota/eip-8250from
spencer-tb:eip-8250-occupied-address
Closed

spencer-tb wants to merge 5 commits into
ethereum:eips/bogota/eip-8250from
spencer-tb:eip-8250-occupied-address

Conversation

@spencer-tb

@spencer-tb spencer-tb commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Description

Merge order: after #3557, #3722 and ethereum/EIPs#12440, which itself follows ethereum/EIPs#12406.

Implements ethereum/EIPs#12440 for EIP-8250: code or storage at NONCE_MANAGER in the fork block's parent state makes that block invalid, checked before the install writes anything. Adds PreState.account_has_storage so the spec can query storage emptiness, and BlockException.SYSTEM_CONTRACT_ADDRESS_OCCUPIED for the fixtures.

Stacked on #3722, only the last two commits belong to this PR.

Related Issues or PRs

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.

Cute Animal Picture

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

@codecov

codecov Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (eips/bogota/eip-8250@ae5c566). Learn more about missing BASE report.

Additional details and impacted files
@@                   Coverage Diff                   @@
##             eips/bogota/eip-8250    #3725   +/-   ##
=======================================================
  Coverage                        ?   94.94%           
=======================================================
  Files                           ?      677           
  Lines                           ?    41934           
  Branches                        ?     3964           
=======================================================
  Hits                            ?    39813           
  Misses                          ?     1467           
  Partials                        ?      654           
Flag Coverage Δ
unittests 94.94% <100.00%> (?)

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 eip-8250-occupied-address branch from 9669e0e to 2c8b13b Compare October 6, 2026 17:01
gurukamath added a commit to gurukamath/execution-specs that referenced this pull request Oct 7, 2026
Review follow-up for ethereum#3729. EIP-8250 installs its nonce manager through
`activation_code_installs` on `eips/bogota/eip-8250`, and ethereum#3722 and
ethereum#3725 build on it, so removing the hook here would break that install
when the branches merge.

Restore the hook, Frontier's empty implementation, both blockchain
filler call sites, the Hive genesis builder, the pre-allocation group
builder, and `Alloc.with_installed_code`, all as they are on the base
branch. Only the EIP-8141 override stays removed: the expiry verifier
is a predeploy, not an activation install. The `with_installed_code`
docstring no longer names an EIP as its example.

Reword the `EXPIRY_VERIFIER` docstring and the fork transition test
module docstring as suggested in review.
@spencer-tb

Copy link
Copy Markdown
Contributor Author

Superseded by #3736.

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.

1 participant