Clients open a cell for the why, the three checks and the evidence
Spec changes and their tests newest first; each EIP commit, the EELS change that pinned it, its first release and the client runs on it
2026-11-01
dc5d5fa6Update EIP-8141: Transaction nonce check boundary proventests: not updated to this text. EELS v2.0.0 still tests the text from 2026-10-25 (7372d10a).proven a mutant undoes the change; in EELS v2.0.0 it fails 1 of 307 cases (2026-11-03)baseline307/307 passwith mutant306/307 passkilled1test_invalid_tx_fields[fork_Bogota-blockchain_test_engine_from_state_test-nonce_overflow]
EELStests-bogota-devnet@v2.0.0ca8c6094commandpython -m eipproof.cli prove 8141 dc5d5fa6 --eels <execution-specs at tests-bogota-devnet@v2.0.0> --tests tests/bogota/eip8141_frame_transactions --mutant proofs/8141-dc5d5fa6.patch -n 8- 2026-10-25
7372d10aUpdate EIP-8141: charge the EIP-8037 legacy share as extra execution gas" EELS v2.0.0 implements this texttests: EELS PR #3892 pinned this text on 2026-10-24, test files test_admission_validity.py, test_blob_introspection.py, test_block_access_lists.py and 4 more · first release v2.0.0 · run against it: Nethermind, Geth, Reth, ethrex - tests: no EELS release tests this text.
- tests: EELS PR #3892 pinned this text on 2026-10-24, test files test_admission_validity.py, test_blob_introspection.py, test_block_access_lists.py and 4 more · first release v2.0.0 · run against it: Nethermind, Geth, Reth, ethrex
- tests: no EELS release tests this text.
- tests: no EELS release tests this text.
- tests: no EELS release tests this text.
- 2026-10-09
af3a7802Update EIP-8141: define the validation prefix and execution body under Behavior older - tests: EELS PR #3757 pinned this text on 2026-10-24, test files test_frame_transactions.py, test_state_gas.py · a later EELS pin replaced it before any release, so no client ran it
- tests: no EELS release tests this text.
- tests: EELS PR #3739 pinned this text on 2026-10-24 · a later EELS pin replaced it before any release, so no client ran it
- 2026-10-06
88fa3e4dUpdate EIP-8141: deploy frames expiry verifier as standard contract (#12387) oldertests: EELS PR #3729 pinned this text on 2026-10-24, test files test_contract_deployment.py, test_expiry_verifier.py, test_fork_transition.py and 1 more · a later EELS pin replaced it before any release, so no client ran it
Open EIP PRs 22 not merged, not counted
open PRs in EIPs and execution-specs that name this EIP; shown for reference, they never change a verdict
- EIPs#12617 Update EIP-8141: exclude calldata cost from MAX_VERIFY_GAS
- EIPs#12616 Update EIP-8141: add lean sphincs
- EIPs#12596 Update EIP-8141: clarify EXTCODEHASH restrictions for precompiles
- EIPs#12506 Update EIP-8141: set code from the default code in SENDER mode
- EIPs#12588 Update EIP-8141: charge the EIP-8037 legacy share as extra execution gas
- EIPs#12559 Update EIP-8141: price frame and signature entries at the floor
- EIPs#12321 Update EIP-8141: define early rejection and payer revalidation rules
- EIPs#12537 Update EIP-8141: explain gas refunds and block limits
- EIPs#12505 Update EIP-8141: Check signer key authority
- EIPs#12494 Update EIP-8141: clarify transient storage and deploy targets in trace rules
- EIPs#12301 Update EIP-8141: define MAX_VERIFY_GAS as a shared mempool floor
- EIPs#12041 Update EIP-8141: assembled canonical paymaster reference bytecode
- EIPs#12252 Update EIP-8141: add valid_after to the expiry verifier frame
- execution-specs#3957 feat(spec-specs): add EIP-8141 LEANSPHINCS signature scheme from ethereum/EIPs#12616
- execution-specs#3956 ✨ feat(tests): EIP-8141 extend secp r coverage
- execution-specs#3954 ✨ feat(tests): EIP-8141 Extend expiry flag coverage
- execution-specs#3947 feat(tests): add EIP-8141 APPROVE edge case and balance tests
- execution-specs#3936 feat(spec-specs,test-forks,tests): implement EIP-8141 frame transactions
- execution-specs#3902 refactor(tests): price EIP-8141 state slots through a StateSlot helper
- execution-specs#3900 refactor(tests): drop the EIP-8141 signature entries the helpers derive
- execution-specs#3899 refactor(tests): fold the EIP-8141 warmth probe into one object
- execution-specs#3856 feat(test-execution, test-forks, tests): add EIP-8141 public mempool tests
Client PRs matched by title, not a verdict
open and merged PRs whose title names EIP-8141; merged ones since 2026-09-06
| Nethermind | #12612 open EIP-8141: canonical paymaster reference assembler and test suite #15462 merged fix(specs): keep an earlier EIP-8141 activation when scheduling EIP-8288 #15449 merged perf(evm): inline EIP-8141 frame opcode handlers #15296 merged test(eip8141): pin the verifying probe budget in frame gas estimation #15274 merged fix(eip8141): map frame tx decode rejections to fixture exceptions #15270 merged fix(eip8141): stop rejecting frame gas sums just below 2^64 #15200 merged EIP-8141: retry a frame-tx block sequentially when parallel BAL validation fails #15045 merged feat(eip8141): commit to elided signature lengths #14639 merged fix(eip-8141): charge APPROVE memory expansion before refusal and create an emptied sender #14378 merged feat(eip8141): deploy the expiry verifier as an ordinary contract #14374 merged feat!: add EIP-8141 max_fee budget for frame transactions #14305 merged feat(eip8141): MATCHA paymaster width for sponsored frame transactions #14221 merged perf(eip8141): compute the frame tx sig hash on first use #14205 merged perf(eip8141): recover frame tx secp256k1 signers in the parallel sender-recovery step #14135 merged test(eip8141): split the frame-tx MAX_VERIFY_GAS measurements #14000 merged refactor(eip8141): compile frame-tx tracer hooks out when not tracing #13990 merged fix(rpc): serialize EIP-8141 frame fields and frame receipts as quantities with full logs #13966 merged fix(tracing): report the derived EIP-8141 frame-tx status to tracers and keep simulate logs to the receipt's #13786 merged Merge master into eip8141-frame-txs-devnet7 #13778 merged Merge master into eip8141-frame-txs-devnet7 #13716 merged Merge master into eip8141-frame-txs-devnet7 #13689 merged Merge master into eip8141-frame-txs-devnet7 #13671 merged Merge master into eip8141-frame-txs-devnet7 #13621 merged Merge master into eip8141-frame-txs-devnet7 #13619 merged feat(eip8141): MATCHA sender width for keyed-nonce frame transactions #13559 merged Merge master into eip8141-frame-txs-devnet7 #13544 merged refactor(eip8141): give TxFrame's mode and flags their own enums #13543 merged perf(eip8141): avoid redundant stack zeroing in the frame-transaction paths #13537 merged refactor(eip8141): guard the prefix simulator with System.Threading.Lock #13513 merged EIP-8141: record what the type-6 serve path's second read costs #13510 merged EIP-8141: carry a blob-carrying frame tx's sidecar through the eth/72 response path #13508 merged EIP-8141: give the revalidation deferral counters one meaning each #13500 merged fix(eip8141): discard a frame's transient storage after it runs, not before the next #13498 merged feat(t8n): fill EIP-8141 frame transactions #13473 merged EIP-8141: revalidate blob-carrying frame transactions against the head #13466 merged test(eip8141): require a fully paid Groth16 pairing call #13463 merged Merge master into eip8141-frame-txs-devnet7 #13459 merged fix(eip8141): restore the snapshot on every frame-tx pre-flight rejection #13447 merged Merge master into eip8141-frame-txs-devnet7 #13423 merged EIP-8141: keep a pooled frame tx's reservations when its storage write throws #13418 merged EIP-8141: return every call frame the callTracer still owns #13410 merged test(eip8141): make three frame-tx regressions hold what they name #13401 merged Merge master into eip8141-frame-txs-devnet7 #13400 merged test(eip8141): say what the frame-tx pool fixtures measure, and share the pool helper #13399 merged EIP-8141: keep every executed frame in callTracer output #13379 merged Merge master into eip8141-frame-txs-devnet7 #13378 merged EIP-8141: address the P3 review threads on the frame-tx stack #13377 merged EIP-8141: tie the frame-tx eviction retry ledger to pool membership #13361 merged EIP-8141: make the pool's admission verdict agree with execution #13360 merged test(eip8141): make the atomic-batch unroll test exercise a rollback #13350 merged Merge master into eip8141-frame-txs-devnet7 #13321 merged fix(eip8141): stop the receipt codec writing frame receipts it cannot read #13306 merged EIP-8141: revalidate the fork-gated frame checks when the head specification changes #13304 merged test(eip8141): tighten the frame transaction test fixtures #13301 merged docs(eip8141): correct the frame-mode caller and document the public frame API #13299 merged Merge master into eip8141-frame-txs-devnet7 #13286 merged EIP-8141: address the P3 review round on the frame transaction tests #13284 merged test(eip8141): make four frame-transaction tests prove what they claim #13283 merged EIP-8141: correct four frame transaction admission and selection bounds #13276 merged test(eip8141): repoint the measured-pool-prefix case to 322,800 #13273 merged Merge master into eip8141-frame-txs-devnet7 #13271 merged test(eip8141): core-normalized F projection + 322,800 sweep point #13270 merged fix(eip8141): keep the block gas limit on the frame estimate's execution dimension #13265 merged test(eip8141): sweep attempts-per-head (M) alongside K_retry #13259 merged Merge master into eip8141-frame-txs-devnet7 (port EVM opcode gas API to #13189) #13245 merged EIP-8141: apply APPROVE during execution and journal its context #13244 merged test(eip8141): share frame-test setup and group independent assertions #13243 merged fix(eip8141): derive the frame signature decode guards from the block gas limit #13242 merged test(eip8141): own the flood generator's thread and wire the producer rig from production #13241 merged fix(eip8141): bound the frame-tx gas estimate per gas dimension #13237 merged fix(eip8141): stage empty return data when APPROVE is rejected #13236 merged Merge master into eip8141-frame-txs-devnet7 #13231 merged fix(eip8141): close the flood-harness gaps flagged on #13041 #13221 merged ci(eip8141): add the frame transaction-test lane #13220 merged test(eip8141): map the frame truncation wording to the format label #13213 merged Merge master into eip8141-frame-txs-devnet7 #13212 merged fix(eip8141): guard the frame-tx warm-up gas write and close the nonce_keys sequence #13193 merged Merge master into eip8141-frame-txs-devnet7 #13191 merged fix(eip8141): align the frame-tx gas estimate cap with the field validator #13157 merged Merge master into eip8141-frame-txs-devnet7 #13143 merged test(eip8141): cover frame transactions through real block production #13134 merged test(eip8141): pin why the validation prefix walks deliberately disagree #13121 merged test(eip8141): pin payer exposure, the paymaster cap and the prefix trace rules #13120 merged fix(eip8141): reject a VERIFY frame behind an unrecognized validation prefix #13118 merged test(eip8141): cover the frame expiry filter and the reloaded deadline #13117 merged test(eip8141): pin the structural and ordering rules of frame transaction admission #13096 merged Merge master into eip8141-frame-txs-devnet7 #13061 merged test(rlp): pin EIP-8141 decoder deviation caps (chain_id u64, 1024 sigs, 30MiB data) #13041 merged test(eip8141): add measurement harnesses for the MAX_VERIFY_GAS campaign #13040 merged Add EIP-8141 APPROVE authorization conformance tests #13039 merged test(eip8141): add a block-import lane for the frozen frame-transaction fixtures #13037 merged test(eip8141): close three gaps in the frame exception fragments #13030 merged test(eip8141): extract the shared frame tx payload skeleton #13029 merged test(eip8141): map the recent-root spec gate and drop the duplicated cap #13027 merged fix(eip8141): remove unreachable frame sender fallback #13022 merged Merge master into eip8141-frame-txs-devnet7 #13009 merged test(eip8141): map the frame-transaction exceptions for engine tests #13001 merged Merge master into eip8141-frame-txs-devnet7 #12997 merged Charge the EIP-8141 frame-entry account access before dispatch #12995 merged ci: add the EIP-8141 frame-fixture nethtest lane #12994 merged docs(eip8141): correct the pre-activation gap list #12989 merged Merge master into eip8141-frame-txs-devnet7 (brings EIP-7805) #12947 merged fix(eip8141): sweep expired frame txs from the persistent broadcast pool #12942 merged feat(frames): two-dimensional gas limits per EIP-8141 (devnet7) #12931 merged Merge master into eip8141-frame-txs-devnet7 #12926 merged refactor(eip8141): drop the unread payer-resolution dependency snapshot #12921 merged chore(frames): cut EIP-8141 comments down and drop stale markers #12913 merged test(eip8141): pin frame tx blob presence #12912 merged test(eip8141): cover APPROVE return data #12911 merged test(eip8141): lock frame tx decode bounds and drop stale spec-gap markers #12903 merged EIP-8141: stop re-verifying frame signatures inside the validation-prefix simulator #12902 merged Merge master into eip8141-frame-txs-devnet7 #12893 merged Merge master into eip8141-frame-txs-devnet7 #12856 merged EIP-8141: charge a frame's entry gas and its target's delegation access #12855 merged feat(txpool): enforce the EIP-8141 VERIFY-after-prefix and expiry-frame placement rules #12788 merged test(eip8141): map the frame-format exception for transaction tests #12778 merged EIP-8141: revalidate dependency-affected frame transactions on a new head #12777 merged EIP-8141: bound validation-prefix simulation work at admission #12776 merged EIP-8141: price per-payer exposure with the shared max_cost helper #12774 merged EIP-8141: cap pending frame transactions per non-canonical paymaster #12770 merged feat(eip8141): complete blob-carrying frame tx production, serve, and RPC path #12758 merged feat(eip8141): implement type-6 blob network wrapper and proof validation #12709 merged EIP-8141: blob-pool routing, sidecar, and production budget for blob-carrying frame transactions #12703 merged EIP-8141: statically reject approval scope on atomic-batch frames #12701 merged EIP-8141: support blob-carrying frame transactions (validate correctly, produce conservatively) #12700 merged EIP-8141: align SIGPARAM copy operand order with CALLDATACOPY #12637 merged feat(txpool): enforce EIP-8141 MAX_VERIFY_GAS at mempool ingress #12624 merged EIP-8141: in-pool validation-prefix simulation for opaque frame transactions (Phase 2) #12617 merged EIP-8141: per-payer mempool exposure accounting for frame transactions #12610 merged EIP-8141: resolve frame-tx payer at mempool admission #12603 merged Evict expired EIP-8141 frame transactions on new head #12602 merged Align unrolled-batch frame logs with EIP-8141 #12008 #12593 merged fix(eip8141): record zero-premium frame-tx beneficiary access in BAL #12526 merged feat(eip8141): implement frame transactions (EIP-8250 keyed nonces, EIP-8272 recent roots, blob support) |
|---|---|
| Geth | #35833 open core/state, internal/ethapi: simulate eip8141 transactions #35832 open internal/ethapi: fill eip8141 transactions #35831 open core, internal/ethapi: support eip8141 call requests #35666 open core: implement eip-8141 frames tx |
| Reth | #27640 merged feat(tracing): support EIP-8141 frame transactions #27639 merged feat(tracing): support EIP-8141 frame transactions #27439 merged chore(deps): update EIP-8141 checkouts #27153 merged feat: add EIP-8141 frame transaction support |
| ethrex | #7108 open fix(levm): ban SLOTNUM in EIP-8141 validation prefix #7075 open fix(l1): enforce the EIP-8141 post-prefix and replacement/eviction mempool rules #7061 open fix(l1): allow EIP-8141 VERIFY frame to target an approved non-sender account #7059 open test(l1): intrinsic gas accounting coverage for EIP-8141 frame transactions #7038 open feat(l1): propagate and build blob-carrying EIP-8141 frame transactions #7305 merged fix(levm): eip-8141 frame loop – clear pooled stack, access-before-balance ordering, precompile state backup |
| Besu | #11743 open [behaviour change: nodes with a frame-capable fork scheduled] Frame transaction mempool (EIP-8141, EIP-8250) #11742 open [inert] Frame transaction mempool admission policy (EIP-8141, EIP-8250) #11741 open [behaviour change: 0x06 decodes on all networks; Bogota/futureEips/experimentalEips execute frames] Execute frame transactions on Bogota (EIP-8141, EIP-8250) #11740 open [neutral for existing types] JSON-RPC rendering of frame transactions and receipts (EIP-8141, EIP-8250) #11739 open [neutral for existing types] Frame transaction validity: transaction and block rules (EIP-8141, EIP-8250) #11737 open [neutral: unscheduled forks] Frame receipts (EIP-8141) #11736 open [behaviour change: byte 0x06 maps to FRAME] Frame transaction model and wire codec (EIP-8141 + EIP-8250) |
All 307 tests for this EIP passed on v2.0.0. The EIP text changed 1 time since the version EELS implements. For each change, a spec with the change undone fails 1 case in EELS, and those cases pass here.
Three checks
dc5d5fa6 2026-11-01 Update EIP-8141: Transaction nonce check boundary proventest_invalid_tx_fields[fork_Bogota-blockchain_test_engine_from_state_test-nonce_overflow]
ca8c6094python -m eipproof.cli prove 8141 dc5d5fa6 --eels <execution-specs at tests-bogota-devnet@v2.0.0> --tests tests/bogota/eip8141_frame_transactions --mutant proofs/8141-dc5d5fa6.patch -n 8Open EIP PRs 22 not merged, not counted
- EIPs#12617 Update EIP-8141: exclude calldata cost from MAX_VERIFY_GAS
- EIPs#12616 Update EIP-8141: add lean sphincs
- EIPs#12596 Update EIP-8141: clarify EXTCODEHASH restrictions for precompiles
- EIPs#12506 Update EIP-8141: set code from the default code in SENDER mode
- EIPs#12588 Update EIP-8141: charge the EIP-8037 legacy share as extra execution gas
- EIPs#12559 Update EIP-8141: price frame and signature entries at the floor
- EIPs#12321 Update EIP-8141: define early rejection and payer revalidation rules
- EIPs#12537 Update EIP-8141: explain gas refunds and block limits
- EIPs#12505 Update EIP-8141: Check signer key authority
- EIPs#12494 Update EIP-8141: clarify transient storage and deploy targets in trace rules
- EIPs#12301 Update EIP-8141: define MAX_VERIFY_GAS as a shared mempool floor
- EIPs#12041 Update EIP-8141: assembled canonical paymaster reference bytecode
- EIPs#12252 Update EIP-8141: add valid_after to the expiry verifier frame
- execution-specs#3957 feat(spec-specs): add EIP-8141 LEANSPHINCS signature scheme from ethereum/EIPs#12616
- execution-specs#3956 ✨ feat(tests): EIP-8141 extend secp r coverage
- execution-specs#3954 ✨ feat(tests): EIP-8141 Extend expiry flag coverage
- execution-specs#3947 feat(tests): add EIP-8141 APPROVE edge case and balance tests
- execution-specs#3936 feat(spec-specs,test-forks,tests): implement EIP-8141 frame transactions
- execution-specs#3902 refactor(tests): price EIP-8141 state slots through a StateSlot helper
- execution-specs#3900 refactor(tests): drop the EIP-8141 signature entries the helpers derive
- execution-specs#3899 refactor(tests): fold the EIP-8141 warmth probe into one object
- execution-specs#3856 feat(test-execution, test-forks, tests): add EIP-8141 public mempool tests
All 307 tests for this EIP passed on v2.0.0. The EIP text changed 1 time since the version EELS implements. For each change, a spec with the change undone fails 1 case in EELS, and those cases pass here.
Three checks
dc5d5fa6 2026-11-01 Update EIP-8141: Transaction nonce check boundary proventest_invalid_tx_fields[fork_Bogota-blockchain_test_engine_from_state_test-nonce_overflow]
ca8c6094python -m eipproof.cli prove 8141 dc5d5fa6 --eels <execution-specs at tests-bogota-devnet@v2.0.0> --tests tests/bogota/eip8141_frame_transactions --mutant proofs/8141-dc5d5fa6.patch -n 8Open EIP PRs 22 not merged, not counted
- EIPs#12617 Update EIP-8141: exclude calldata cost from MAX_VERIFY_GAS
- EIPs#12616 Update EIP-8141: add lean sphincs
- EIPs#12596 Update EIP-8141: clarify EXTCODEHASH restrictions for precompiles
- EIPs#12506 Update EIP-8141: set code from the default code in SENDER mode
- EIPs#12588 Update EIP-8141: charge the EIP-8037 legacy share as extra execution gas
- EIPs#12559 Update EIP-8141: price frame and signature entries at the floor
- EIPs#12321 Update EIP-8141: define early rejection and payer revalidation rules
- EIPs#12537 Update EIP-8141: explain gas refunds and block limits
- EIPs#12505 Update EIP-8141: Check signer key authority
- EIPs#12494 Update EIP-8141: clarify transient storage and deploy targets in trace rules
- EIPs#12301 Update EIP-8141: define MAX_VERIFY_GAS as a shared mempool floor
- EIPs#12041 Update EIP-8141: assembled canonical paymaster reference bytecode
- EIPs#12252 Update EIP-8141: add valid_after to the expiry verifier frame
- execution-specs#3957 feat(spec-specs): add EIP-8141 LEANSPHINCS signature scheme from ethereum/EIPs#12616
- execution-specs#3956 ✨ feat(tests): EIP-8141 extend secp r coverage
- execution-specs#3954 ✨ feat(tests): EIP-8141 Extend expiry flag coverage
- execution-specs#3947 feat(tests): add EIP-8141 APPROVE edge case and balance tests
- execution-specs#3936 feat(spec-specs,test-forks,tests): implement EIP-8141 frame transactions
- execution-specs#3902 refactor(tests): price EIP-8141 state slots through a StateSlot helper
- execution-specs#3900 refactor(tests): drop the EIP-8141 signature entries the helpers derive
- execution-specs#3899 refactor(tests): fold the EIP-8141 warmth probe into one object
- execution-specs#3856 feat(test-execution, test-forks, tests): add EIP-8141 public mempool tests
All 307 tests for this EIP passed on v2.0.0. The EIP text changed 1 time since the version EELS implements. For each change, a spec with the change undone fails 1 case in EELS, and those cases pass here.
Three checks
dc5d5fa6 2026-11-01 Update EIP-8141: Transaction nonce check boundary proventest_invalid_tx_fields[fork_Bogota-blockchain_test_engine_from_state_test-nonce_overflow]
ca8c6094python -m eipproof.cli prove 8141 dc5d5fa6 --eels <execution-specs at tests-bogota-devnet@v2.0.0> --tests tests/bogota/eip8141_frame_transactions --mutant proofs/8141-dc5d5fa6.patch -n 8Open EIP PRs 22 not merged, not counted
- EIPs#12617 Update EIP-8141: exclude calldata cost from MAX_VERIFY_GAS
- EIPs#12616 Update EIP-8141: add lean sphincs
- EIPs#12596 Update EIP-8141: clarify EXTCODEHASH restrictions for precompiles
- EIPs#12506 Update EIP-8141: set code from the default code in SENDER mode
- EIPs#12588 Update EIP-8141: charge the EIP-8037 legacy share as extra execution gas
- EIPs#12559 Update EIP-8141: price frame and signature entries at the floor
- EIPs#12321 Update EIP-8141: define early rejection and payer revalidation rules
- EIPs#12537 Update EIP-8141: explain gas refunds and block limits
- EIPs#12505 Update EIP-8141: Check signer key authority
- EIPs#12494 Update EIP-8141: clarify transient storage and deploy targets in trace rules
- EIPs#12301 Update EIP-8141: define MAX_VERIFY_GAS as a shared mempool floor
- EIPs#12041 Update EIP-8141: assembled canonical paymaster reference bytecode
- EIPs#12252 Update EIP-8141: add valid_after to the expiry verifier frame
- execution-specs#3957 feat(spec-specs): add EIP-8141 LEANSPHINCS signature scheme from ethereum/EIPs#12616
- execution-specs#3956 ✨ feat(tests): EIP-8141 extend secp r coverage
- execution-specs#3954 ✨ feat(tests): EIP-8141 Extend expiry flag coverage
- execution-specs#3947 feat(tests): add EIP-8141 APPROVE edge case and balance tests
- execution-specs#3936 feat(spec-specs,test-forks,tests): implement EIP-8141 frame transactions
- execution-specs#3902 refactor(tests): price EIP-8141 state slots through a StateSlot helper
- execution-specs#3900 refactor(tests): drop the EIP-8141 signature entries the helpers derive
- execution-specs#3899 refactor(tests): fold the EIP-8141 warmth probe into one object
- execution-specs#3856 feat(test-execution, test-forks, tests): add EIP-8141 public mempool tests
All 307 tests for this EIP passed on v2.0.0. The EIP text changed 1 time since the version EELS implements. For each change, a spec with the change undone fails 1 case in EELS, and those cases pass here.
Three checks
dc5d5fa6 2026-11-01 Update EIP-8141: Transaction nonce check boundary proventest_invalid_tx_fields[fork_Bogota-blockchain_test_engine_from_state_test-nonce_overflow]
ca8c6094python -m eipproof.cli prove 8141 dc5d5fa6 --eels <execution-specs at tests-bogota-devnet@v2.0.0> --tests tests/bogota/eip8141_frame_transactions --mutant proofs/8141-dc5d5fa6.patch -n 8Open EIP PRs 22 not merged, not counted
- EIPs#12617 Update EIP-8141: exclude calldata cost from MAX_VERIFY_GAS
- EIPs#12616 Update EIP-8141: add lean sphincs
- EIPs#12596 Update EIP-8141: clarify EXTCODEHASH restrictions for precompiles
- EIPs#12506 Update EIP-8141: set code from the default code in SENDER mode
- EIPs#12588 Update EIP-8141: charge the EIP-8037 legacy share as extra execution gas
- EIPs#12559 Update EIP-8141: price frame and signature entries at the floor
- EIPs#12321 Update EIP-8141: define early rejection and payer revalidation rules
- EIPs#12537 Update EIP-8141: explain gas refunds and block limits
- EIPs#12505 Update EIP-8141: Check signer key authority
- EIPs#12494 Update EIP-8141: clarify transient storage and deploy targets in trace rules
- EIPs#12301 Update EIP-8141: define MAX_VERIFY_GAS as a shared mempool floor
- EIPs#12041 Update EIP-8141: assembled canonical paymaster reference bytecode
- EIPs#12252 Update EIP-8141: add valid_after to the expiry verifier frame
- execution-specs#3957 feat(spec-specs): add EIP-8141 LEANSPHINCS signature scheme from ethereum/EIPs#12616
- execution-specs#3956 ✨ feat(tests): EIP-8141 extend secp r coverage
- execution-specs#3954 ✨ feat(tests): EIP-8141 Extend expiry flag coverage
- execution-specs#3947 feat(tests): add EIP-8141 APPROVE edge case and balance tests
- execution-specs#3936 feat(spec-specs,test-forks,tests): implement EIP-8141 frame transactions
- execution-specs#3902 refactor(tests): price EIP-8141 state slots through a StateSlot helper
- execution-specs#3900 refactor(tests): drop the EIP-8141 signature entries the helpers derive
- execution-specs#3899 refactor(tests): fold the EIP-8141 warmth probe into one object
- execution-specs#3856 feat(test-execution, test-forks, tests): add EIP-8141 public mempool tests
Besu's newest run used tests v1.1.1, but the newest EELS release is v2.0.0. Old tests do not check the current spec, so the old 259/266 is shown but does not count. Next: run v2.0.0.
Failed cases 7
test_frame_and_blob_txs_against_the_block_blob_limit[fork_Bogota-blockchain_test_engine-blob_tx_last-above_limit]test_frame_and_blob_txs_against_the_block_blob_limit[fork_Bogota-blockchain_test_engine-frame_tx_last-above_limit]test_reject_frame_tx_network_wrapper_in_block[fork_Bogota-blockchain_test_engine]test_frame_constraints[fork_Bogota-blockchain_test_engine_from_state_test-frame_state_gas_above_64_bits]test_frame_constraints[fork_Bogota-blockchain_test_engine_from_state_test-frame_gas_above_64_bits]test_invalid_tx_fields[fork_Bogota-blockchain_test_engine_from_state_test-max_fee_overflow]test_invalid_tx_fields[fork_Bogota-blockchain_test_engine_from_state_test-priority_fee_overflow]
Three checks
n/a: this run used old tests, so proofs for the current tests do not apply.
Open EIP PRs 22 not merged, not counted
- EIPs#12617 Update EIP-8141: exclude calldata cost from MAX_VERIFY_GAS
- EIPs#12616 Update EIP-8141: add lean sphincs
- EIPs#12596 Update EIP-8141: clarify EXTCODEHASH restrictions for precompiles
- EIPs#12506 Update EIP-8141: set code from the default code in SENDER mode
- EIPs#12588 Update EIP-8141: charge the EIP-8037 legacy share as extra execution gas
- EIPs#12559 Update EIP-8141: price frame and signature entries at the floor
- EIPs#12321 Update EIP-8141: define early rejection and payer revalidation rules
- EIPs#12537 Update EIP-8141: explain gas refunds and block limits
- EIPs#12505 Update EIP-8141: Check signer key authority
- EIPs#12494 Update EIP-8141: clarify transient storage and deploy targets in trace rules
- EIPs#12301 Update EIP-8141: define MAX_VERIFY_GAS as a shared mempool floor
- EIPs#12041 Update EIP-8141: assembled canonical paymaster reference bytecode
- EIPs#12252 Update EIP-8141: add valid_after to the expiry verifier frame
- execution-specs#3957 feat(spec-specs): add EIP-8141 LEANSPHINCS signature scheme from ethereum/EIPs#12616
- execution-specs#3956 ✨ feat(tests): EIP-8141 extend secp r coverage
- execution-specs#3954 ✨ feat(tests): EIP-8141 Extend expiry flag coverage
- execution-specs#3947 feat(tests): add EIP-8141 APPROVE edge case and balance tests
- execution-specs#3936 feat(spec-specs,test-forks,tests): implement EIP-8141 frame transactions
- execution-specs#3902 refactor(tests): price EIP-8141 state slots through a StateSlot helper
- execution-specs#3900 refactor(tests): drop the EIP-8141 signature entries the helpers derive
- execution-specs#3899 refactor(tests): fold the EIP-8141 warmth probe into one object
- execution-specs#3856 feat(test-execution, test-forks, tests): add EIP-8141 public mempool tests
EELS v2.0.0 tests EIP commit 7372d10a; the EIP changed 1 time since, newest dc5d5fa6 on 2026-11-01.
dc5d5fa6 Update EIP-8141: Transaction nonce check boundary