Skip to content

feat(tests): adopt EIP 7708 7843 7981 7997 8024 8246 - #53

Draft
pdobacz wants to merge 32 commits into
forks/monad_ninefrom
eips/monad_next/eip-7708+7843+7981+7997+8024+8246
Draft

feat(tests): adopt EIP 7708 7843 7981 7997 8024 8246#53
pdobacz wants to merge 32 commits into
forks/monad_ninefrom
eips/monad_next/eip-7708+7843+7981+7997+8024+8246

Conversation

@pdobacz

@pdobacz pdobacz commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

#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)

pdobacz added 30 commits August 19, 2026 16:44
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
pdobacz force-pushed the eips/monad_next/eip-7708+7843+7981+7997+8024+8246 branch from 85e6fd8 to 238903e Compare August 28, 2026 15:58
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
pdobacz force-pushed the eips/monad_next/eip-7708+7843+7981+7997+8024+8246 branch from 238903e to 6d0cadc Compare August 28, 2026 16:51
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