fix(l1): report status 2 for skipped EIP-8141 frames - #7048
Draft
AnkushinDaniil wants to merge 1 commit into
Draft
fix(l1): report status 2 for skipped EIP-8141 frames#7048AnkushinDaniil wants to merge 1 commit into
AnkushinDaniil wants to merge 1 commit into
Conversation
This was referenced Jul 28, 2026
AnkushinDaniil
force-pushed
the
daniil/eip8141-skipped-frame-status
branch
from
July 29, 2026 06:12
4d9b8bb to
9d33c46
Compare
Contributor
|
Confirmed, and main is the one that's wrong here. Current EIP-8141 specifies |
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.
Problem
EIP-8141 Receipt Encoding: "A new code
0x2is introduced for frames which are skipped due to failed atomic batch." The same code is surfaced to the EVM: FRAMEPARAMparam = 0x05"returns0for failure,1for success, or2for a frame skipped due to a failed atomic batch."ethrex used
0x3for skipped frames (FRAME_RECEIPT_STATUS_SKIPPED = 3), a value from an earlier draft. That changes the consensus receipt bytes (and therefore the receipt root) of any block containing a frame transaction with a failed atomic batch, and FRAMEPARAM(0x05) returns 3 where a conformant client returns 2.Change
FRAME_RECEIPT_STATUS_SKIPPED: 3 -> 2, plus the doc comments anddocs/eip-8141.mdthat repeat the code.[0xc3, 0x02, 0x80, 0xc0]), so a status regression fails at the encoding layer.frame_resultsstatus is 2 and that FRAMEPARAM(0x05) observed from a later frame reads 2.Evidence
Commands run on this branch:
Stack
Targets
frames-devnet-0. Part of a series of independent EIP-8141 fixes, one PR per logical change, each standing alone against the same base. Siblings: #7040 (canonical low-s), #7043 (recovery id at ecrecover boundary), #7044 (intrinsic gas over payload bytes), #7045 (arbitrary-scheme verification gas), #7046 (frame gas refunds), #7047 (frame receipt storage encoding), #7049 (EIP-7623 calldata floor).Consensus risk / limits
Consensus-affecting: the skipped-frame status byte is part of the receipt encoding, so it changes receipt roots for blocks with failed atomic batches, and FRAMEPARAM(0x05) results change EVM-visible behavior. Covered by unit and levm end-to-end tests; no cross-client conformance fixture yet.