feat(tests): adopt EIP 7708 7843 7981 7997 8024 8246 - #53
Draft
pdobacz wants to merge 32 commits into
Draft
Conversation
Emit LOG3/LOG2 from SYSTEM_ADDRESS for value transfers, selfdestruct beneficiary transfers/burns, and finalization burns of deleted accounts. Co-Authored-By: Claude <claude-opus-4-8>
Add SLOTNUM (0x4b, gas BASE) pushing the block slot number, a slot_number U64 field on the header and block environment, and fork.py plumbing. Co-Authored-By: Claude <claude-opus-4-8>
Add DUPN (0xe6), SWAPN (0xe7), EXCHANGE (0xe8) stack instructions with a 1-byte immediate, gas VERY_LOW, plus immediate-aware jumpdest analysis. Co-Authored-By: Claude <claude-opus-4-8>
Inherit MONAD_NEXT from Amsterdam, taking only EIP-7708/7843/8024 changes (opcodes, slot number header) and pinning EIP-7928/7954/7976/7981 members back to MONAD_TEN. Relocated after Amsterdam to resolve the base reference. Co-Authored-By: Claude <claude-opus-4-8>
Single-fork (--fork MONAD_NEXT) feature covering only the adopted Amsterdam EIP dirs (7708/7843/8024); released via tag tests-monad_amsterdam@v0.1.0. Co-Authored-By: Claude <claude-opus-4-8>
Disable collection of non-adopted Amsterdam EIP tests on Monad forks. Co-Authored-By: Claude <claude-fable-5>
Header field sits between requests_hash and slot_number and must be zero. Co-Authored-By: Claude <claude-fable-5>
Inheriting Amsterdam routed its gas schedule and unadopted EIPs into MONAD_NEXT through the MRO; `follows` keeps the fork order without the behavior. Co-Authored-By: Claude <claude-opus-5>
MONAD_NEXT follows Amsterdam, so its `valid_from` suites select the fork; the seven EIPs it does not adopt now exclude Monad like the rest. Co-Authored-By: Claude <claude-opus-5>
MONAD_NEXT clears selfdestructed accounts in place, ordered after Amsterdam by succession, and releases as the monad_eip8246 feature. Co-Authored-By: Claude <claude-opus-5>
A fork can enable EIP-7708 without EIP-8246 and still burn a swept or stranded balance, which the sweep helper now accounts for. Co-Authored-By: Claude <claude-opus-5>
MONAD_NEXT charges access list bytes at its own floor token rate, ordered after Amsterdam by succession, and releases as the monad_eip7981 feature. Co-Authored-By: Claude <claude-opus-5>
MONAD_NEXT carries the factory in its pre-allocation, ordered after Amsterdam by succession, and releases as the monad_eip7997 feature. Co-Authored-By: Claude <claude-opus-5>
`follows()` sits with the other fork traits, so `__init_subclass__` is untouched and a successor fork inherits the order without restating it. Co-Authored-By: Claude <claude-opus-5>
`follows()` sits with the other fork traits, so `__init_subclass__` is untouched and a successor fork inherits the order without restating it. Co-Authored-By: Claude <claude-opus-5>
`follows()` sits with the other fork traits, so `__init_subclass__` is untouched and a successor fork inherits the order without restating it. Co-Authored-By: Claude <claude-opus-5>
`follows()` sits with the other fork traits, so `__init_subclass__` is untouched and a successor fork inherits the order without restating it. Co-Authored-By: Claude <claude-opus-5>
A fork builds the lists when EIP-7928 is enabled, so the trait needs no abstract declaration, no genesis default and no mixin override. Co-Authored-By: Claude <claude-opus-5>
Collect and fill each feature on PRs, `from-upstream` and `eips/**`. Co-Authored-By: Claude <claude-opus-5>
# Conflicts: # .github/configs/feature.yaml # packages/testing/src/execution_testing/forks/forks/forks.py
# Conflicts: # .github/configs/feature.yaml # packages/testing/src/execution_testing/forks/forks/forks.py
EIP-8246 removes the balance burn EIP-7708 logged, so the merged fork emits the transfer log alone and clears deleted accounts while preserving their balance. Co-Authored-By: Claude <claude-opus-5>
The merged fork adopts EIP-7708, EIP-7843, EIP-7997, EIP-8024 and EIP-8246, so their suites lose the Monad exclusion; the EIP-7976 hook lands once. Co-Authored-By: Claude <claude-opus-5>
EIP-8246 keeps the balance a swept account holds, so the sweep emits a Transfer log or nothing at all. Co-Authored-By: Claude <claude-opus-5>
Name the six adopted EIPs in the fork docstring and the release feature. Co-Authored-By: Claude <claude-opus-5>
Record how the single-EIP adoption branches consolidate onto one fork. Co-Authored-By: Claude <claude-opus-5>
The fork-named marker skipped every fork that adopts EIP-7997 on its own. Co-Authored-By: Claude <claude-opus-5>
Filling without a path never reaches tests/benchmark, so neither hook was load-bearing. Co-Authored-By: Claude <claude-opus-5>
Keep the header call as it stands and merge the field in as a mapping. Co-Authored-By: Claude <claude-opus-5>
pdobacz
force-pushed
the
eips/monad_next/eip-7708+7843+7981+7997+8024+8246
branch
from
August 28, 2026 15:58
85e6fd8 to
238903e
Compare
Cover the reserve balance sweep against a SELFDESTRUCT to the destructing account, keep MONAD_NEXT out of the deployed fork range, and stop fork succession from implying membership of the followed fork's EIPs. Co-Authored-By: Claude <claude-opus-5>
A push to a branch with an open pull request fired both triggers, and the two events land in different concurrency groups, so neither run cancelled the other. Co-Authored-By: Claude <claude-opus-5>
pdobacz
force-pushed
the
eips/monad_next/eip-7708+7843+7981+7997+8024+8246
branch
from
August 28, 2026 16:51
238903e to
6d0cadc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#29 + #45 + #46 + #47 🪄
also including some tack-on tests for edge cases only appearing on Monad - amended in monad_eight/monad_nine tests, or, those which didn't belong there, in a special monad_amsterdam dir (probably will move to another structure once we have the monad revision pinned)