Skip to content

feat(tests): Add EIP-8163 EXTENSION opcode test - #3454

Merged
LouisTsai-Csie merged 4 commits into
ethereum:eips/bogota/eip-8163from
monad-developers:eips/bogota/eip-8163
Oct 7, 2026
Merged

LouisTsai-Csie merged 4 commits into
ethereum:eips/bogota/eip-8163from
monad-developers:eips/bogota/eip-8163

Conversation

@pdobacz

@pdobacz pdobacz commented Aug 26, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds a minimal spec test for EIP-8163: Reserve EXTENSION (0xae) opcode. Test only confirms same execution as INVALID (0xfe) and jumpdest analysis neutrality.

These tests are intended to pass both on Ethereum L1 EVM which must not define any 0xae extensions, as well as EVMs which do define 0xae extensions.

There are 4 tests and 721 state_test test cases generated, if this is too much for a no-op spec change, LMK.

Related Issues or PRs

#3453, issue #3691

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.

@codecov

codecov Bot commented Aug 26, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.91%. Comparing base (53ec7a8) to head (2dab627).

Additional details and impacted files
@@                  Coverage Diff                  @@
##           eips/bogota/eip-8163    #3454   +/-   ##
=====================================================
  Coverage                 94.91%   94.91%           
=====================================================
  Files                       672      672           
  Lines                     40846    40846           
  Branches                   3775     3775           
=====================================================
  Hits                      38767    38767           
  Misses                     1445     1445           
  Partials                    634      634           
Flag Coverage Δ
unittests 94.91% <ø> (ø)

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.

@pdobacz
pdobacz force-pushed the eips/bogota/eip-8163 branch 2 times, most recently from 019619a to 769a77d Compare October 2, 2026 08:50

@LouisTsai-Csie LouisTsai-Csie left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for implementing this EIP. I leave several comment, please take a look, and could you help with a couple things?

  • Change the base branch to eips/bogota/eip-8163. There should be a dedicated test folder for the bogota fork (see PR #3113).
  • Merge the changes from #3453 into this PR.

Thank you!

Comment thread tests/bogota/eip8163_extension/test_extension.py Outdated
Comment thread tests/bogota/eip8163_extension/test_extension.py Outdated
Comment thread tests/bogota/eip8163_extension/test_extension.py Outdated
Comment thread tests/bogota/eip8163_extension/test_extension.py
Comment thread tests/bogota/eip8163_extension/test_extension.py
pdobacz and others added 3 commits October 6, 2026 12:19
EIP8163 mixin adopted by a Bogota fork, EXTENSION (0xae) in execution_testing, tests in tests/bogota/eip8163_extension.

Co-Authored-By: Claude <claude-fable-5-1>
bytes(opcode) is the opcode's encoding whatever its length.

Co-Authored-By: Claude <claude-fable-5-1>
Derive the top-level call gas limit from the fork, sweep the solo following byte with a filled stack only, cut the jumpdest analysis sweep to the bytes it can distinguish, and drop the test the solo sweep subsumes.

Co-Authored-By: Louis Tsai <72684086+LouisTsai-Csie@users.noreply.github.com>
@pdobacz
pdobacz force-pushed the eips/bogota/eip-8163 branch from 769a77d to 27cdb0e Compare October 6, 2026 13:29
@pdobacz
pdobacz changed the base branch from forks/amsterdam to eips/bogota/eip-8163 October 6, 2026 13:30
@pdobacz
pdobacz requested a review from LouisTsai-Csie October 6, 2026 13:32
Register 0xAE in the pending and proposed opcode lists.

Co-Authored-By: Claude Opus 5
@pdobacz
pdobacz force-pushed the eips/bogota/eip-8163 branch from 27cdb0e to 2dab627 Compare October 6, 2026 13:45
@LouisTsai-Csie
LouisTsai-Csie merged commit 165b3e5 into ethereum:eips/bogota/eip-8163 Oct 7, 2026
26 checks passed
@pdobacz
pdobacz deleted the eips/bogota/eip-8163 branch October 7, 2026 10:22
pdobacz added a commit to monad-developers/execution-specs that referenced this pull request Oct 7, 2026
* Add EIP-8163 EXTENSION opcode test support

EIP8163 mixin adopted by a Bogota fork, EXTENSION (0xae) in execution_testing, tests in tests/bogota/eip8163_extension.

Co-Authored-By: Claude <claude-fable-5-1>

* encode the opcode under test with bytes() in the evm_bytes round trip

bytes(opcode) is the opcode's encoding whatever its length.

Co-Authored-By: Claude <claude-fable-5-1>

* Address review comments

Derive the top-level call gas limit from the fork, sweep the solo following byte with a filled stack only, cut the jumpdest analysis sweep to the bytes it can distinguish, and drop the test the solo sweep subsumes.

Co-Authored-By: Louis Tsai <72684086+LouisTsai-Csie@users.noreply.github.com>

* chore(doc): add EIP-8163 EXTENSION opcode to the EVM lists

Register 0xAE in the pending and proposed opcode lists.

Co-Authored-By: Claude Opus 5

---------

Co-authored-by: Louis Tsai <72684086+LouisTsai-Csie@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants