Skip to content

feat(playbooks): add glamsterdam-devnet-6 network-level EIP test suite#197

Closed
qu0b wants to merge 3 commits into
ethpandaops:glamsterdam-devnet-6from
qu0b:qu0b/feat/glamsterdam-devnet-6-playbooks
Closed

feat(playbooks): add glamsterdam-devnet-6 network-level EIP test suite#197
qu0b wants to merge 3 commits into
ethpandaops:glamsterdam-devnet-6from
qu0b:qu0b/feat/glamsterdam-devnet-6-playbooks

Conversation

@qu0b

@qu0b qu0b commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

5 playbooks covering Amsterdam EIP behaviors that require a live running network — things EELS state tests cannot cover: cross-client consistency, CL/beacon API cross-validation, P2P protocol negotiation, multi-slot block accounting, and builder lifecycle flows.

EVM semantics EIPs (7708, 8246, 8038, 7954, etc.) are covered by the EELS spec test suite (see #198).

Playbook EIP(s) Why it needs a live network
glamsterdam-devnet-6-eip7778-block-gas EIP-7778 Verifies block.gasUsed diverges from sum(receipt.gasUsed) when refund txs are mined — requires real blocks across multiple slots
glamsterdam-devnet-6-eip7843-slotnum EIP-7843 Cross-validates SLOTNUM opcode return value against the CL beacon API slot
glamsterdam-devnet-6-eip7928-bal-hash EIP-7928 Reads blockAccessListHash from all EL clients simultaneously to verify cross-client consistency
glamsterdam-devnet-6-eip7975-8159-protocol EIP-7975/8159 Verifies p2p protocol version negotiation via admin_peers — not testable in state tests
glamsterdam-devnet-6-builder-lifecycle EIP-8282 Builder deposit/exit lifecycle requiring CL slot progression and execution_requests in beacon blocks

Test plan

  • Run against a live glamsterdam-devnet-6 enclave (lighthouse + geth minimum, multi-client for EIP-7928)
  • All 5 playbooks reach pass status

5 playbooks covering Amsterdam EIP behaviors that require a live running
network and cannot be covered by EELS state tests:

- EIP-7778: verifies block.gasUsed diverges from sum(receipt.gasUsed)
  when refund txs are mined (multi-slot block gas accounting)
- EIP-7843: cross-validates SLOTNUM opcode value against CL beacon API
- EIP-7928: reads blockAccessListHash from all EL clients simultaneously
  to verify cross-client consistency
- EIP-7975/8159: checks p2p protocol version negotiation via admin_peers
- EIP-8282: builder deposit/exit lifecycle requiring CL slot progression

EVM semantics EIPs (7708, 8246, 8038, 7954, etc.) are covered by the
EELS spec test suite (see glamsterdam-devnet-6-eels-tests.yaml).
@qu0b qu0b force-pushed the qu0b/feat/glamsterdam-devnet-6-playbooks branch from 5e6fc07 to 0a16427 Compare June 23, 2026 08:26
@qu0b qu0b changed the title feat(playbooks): add glamsterdam-devnet-6 EIP live test suite feat(playbooks): add glamsterdam-devnet-6 network-level EIP test suite Jun 23, 2026
qu0b and others added 2 commits June 23, 2026 21:10
The pseudo-version v0.1.4-0.20260618225213-e8d135e8cdc1 had
ExecutionRequests with 3 fields (Deposits, Withdrawals, Consolidations).
v0.1.4 adds BuilderDeposits and BuilderExits (EIP-8282), making it
5 fields. The SSZ decoder expected offset 12 (3×4) but blocks have
offset 20 (5×4), causing 'incorrect offset: first offset 20 does not
match expected 12' on every Gloas block. BUG-032.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Amsterdam state gas (EIP-8037) charges ~1530 gas/byte for code storage.
A 30KB contract costs ~47M gas; a 60KB contract costs ~94M gas.
At typical devnet gas prices (75-200 gwei), 1 ETH is insufficient to
cover gas estimation (recap_with_account_balances caps too aggressively).

Fund with 1000 ETH to allow deployment at up to ~500 gwei gas price.
@pk910 pk910 deleted the branch ethpandaops:glamsterdam-devnet-6 June 24, 2026 10:14
@pk910 pk910 closed this Jun 24, 2026
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.

2 participants