Skip to content

bal-devnet-3: Update EIP-8024: switch to new decoding algo#9851

Merged
daniellehrner merged 3 commits into
besu-eth:mainfrom
daniellehrner:feat/issue-9827/eip8024_branchless_normalization
Feb 23, 2026
Merged

bal-devnet-3: Update EIP-8024: switch to new decoding algo#9851
daniellehrner merged 3 commits into
besu-eth:mainfrom
daniellehrner:feat/issue-9827/eip8024_branchless_normalization

Conversation

@daniellehrner
Copy link
Copy Markdown
Contributor

PR description

EIP-8024 decoding changed to the new spec: ethereum/EIPs#11306

Fixed Issue(s)

fixes #9827

Thanks for sending a pull request! Have you done the following?

  • Checked out our contribution guidelines?
  • Considered documentation and added the doc-change-required label to this PR if updates are required.
  • Considered the changelog and included an update if required.
  • For database changes (e.g. KeyValueSegmentIdentifier) considered compatibility and performed forwards and backwards compatibility tests

Locally, you can run these tests to catch failures early:

  • spotless: ./gradlew spotlessApply
  • unit tests: ./gradlew build
  • acceptance tests: ./gradlew acceptanceTest
  • integration tests: ./gradlew integrationTest
  • reference tests: ./gradlew ethereum:referenceTests:referenceTests
  • hive tests: Engine or other RPCs modified?

Copilot AI review requested due to automatic review settings February 19, 2026 16:31
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates Besu’s EIP-8024 immediate decoding to match the revised spec (new branchless decoding), and adjusts unit/acceptance tests plus devnet fixtures accordingly.

Changes:

  • Updated EIP-8024 decoder tables to use the new branchless formulas for decode_single and decode_pair.
  • Updated DUPN/SWAPN/EXCHANGE unit tests to reflect new immediate→operand mappings and end-of-code behavior.
  • Updated acceptance-test dev fixtures and test documentation to use the new immediates used by the updated spec vectors.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
evm/src/main/java/org/hyperledger/besu/evm/operation/Eip8024Decoder.java Implements the new EIP-8024 decoding formulas and updates validity ranges.
evm/src/test/java/org/hyperledger/besu/evm/operation/SwapNOperationTest.java Updates SWAPN decoding/behavior expectations to match the new mapping.
evm/src/test/java/org/hyperledger/besu/evm/operation/DupNOperationTest.java Updates DUPN decoding/behavior expectations to match the new mapping.
evm/src/test/java/org/hyperledger/besu/evm/operation/ExchangeOperationTest.java Updates EXCHANGE decoding/behavior expectations and spec vectors for the new mapping.
acceptance-tests/tests/src/acceptanceTest/resources/dev/dev_amsterdam.json Updates embedded EIP-8024 test bytecode/decompilation strings to the new immediates.
acceptance-tests/tests/src/acceptanceTest/java/org/hyperledger/besu/tests/acceptance/ethereum/EIP8024StackOpcodeAcceptanceTest.java Updates explanatory comments for acceptance tests to match new spec/immediates.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread evm/src/test/java/org/hyperledger/besu/evm/operation/SwapNOperationTest.java Outdated
Comment thread evm/src/test/java/org/hyperledger/besu/evm/operation/DupNOperationTest.java Outdated
@daniellehrner daniellehrner force-pushed the feat/issue-9827/eip8024_branchless_normalization branch from a73e4b6 to ed965c2 Compare February 20, 2026 09:08
Signed-off-by: daniellehrner <daniel.lehrner@consensys.net>
Signed-off-by: daniellehrner <daniel.lehrner@consensys.net>
@daniellehrner daniellehrner force-pushed the feat/issue-9827/eip8024_branchless_normalization branch from ed965c2 to 5a85796 Compare February 20, 2026 10:05
@macfarla macfarla added the amsterdam relating to Glamsterdam fork label Feb 23, 2026
@daniellehrner daniellehrner enabled auto-merge (squash) February 23, 2026 13:32
@daniellehrner daniellehrner merged commit 65e5988 into besu-eth:main Feb 23, 2026
46 checks passed
@daniellehrner daniellehrner deleted the feat/issue-9827/eip8024_branchless_normalization branch February 23, 2026 14:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

amsterdam relating to Glamsterdam fork

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update EIP-8024: Switch to branchless normalization and extend EXCHANGE

3 participants