Skip to content

feat(dora): EIP-7778 gas delta, EIP-7928 BAL hash, EIP-7843 slot_number display#758

Open
qu0b wants to merge 8 commits into
glamsterdam-devnet-6from
qu0b/dora/glamsterdam-devnet-6-eip7778-gasdelta
Open

feat(dora): EIP-7778 gas delta, EIP-7928 BAL hash, EIP-7843 slot_number display#758
qu0b wants to merge 8 commits into
glamsterdam-devnet-6from
qu0b/dora/glamsterdam-devnet-6-eip7778-gasdelta

Conversation

@qu0b

@qu0b qu0b commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

  • EIP-7778: shows gas refund delta in slot overview (block.gasUsed vs sum(receipt.gasUsed)) — visible when refund txs are in a block
  • EIP-7928: computes and displays blockAccessListHash in the slot execution payload section with a tooltip noting EIP-4788 system writes guarantee it is never empty
  • EIP-7843: shows slot_number field from the execution payload in the slot overview
  • Fixes SLOTNUM opcode tooltip (0x49 → 0x4b) and two other Amsterdam-specific UI corrections

Test plan

  • Open a slot with SSTORE refund transactions — confirm gas delta badge appears
  • Confirm blockAccessListHash is shown and non-empty on all slots including empty blocks
  • Confirm slot_number field renders correctly in the execution payload section

qu0b and others added 8 commits June 22, 2026 22:39
When EL indexing is enabled, compute delta = block.gasUsed - sum(receipt.gasUsed).
In Amsterdam, block.gasUsed is pre-refund (EIP-7778): gas refunds from SSTORE clears
are not subtracted from block space, but are credited to tx.origin (EIP-8037).

The delta row appears in the slot execution data section only when all tx receipts
in the block have been enriched by the EL indexer, ensuring the sum is complete.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ction

The Amsterdam execution payload includes slot_number (EIP-7843 SLOTNUM opcode).
Show it in the slot overview next to Block Number, with an EIP-7843 badge.
The value should always equal the containing CL slot; any mismatch indicates
a client bug in slot_number embedding.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…oltip

Only display the EIP-7778 gas refund delta badge when block.gasUsed > sum(receipts).
In Amsterdam, the 2D gas formula can also produce block.gasUsed < sum(receipts)
(when state gas dimension dominates), so a >=0 check was misleading.

Also update the tooltip to accurately describe the max(sum_regular, sum_state) formula.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Previously the badge only appeared when block.gasUsed > sum(receipts).
In Amsterdam the two counters ALWAYS diverge — in both directions:
  +delta (▲): regular gas dominates (block > receipts, refunds not counted)
  −delta (▼): state gas dominates (block < receipts, 2D max picks state)

Changes:
- Add GasRefundDeltaExcess bool to model (true = block > sum)
- Always compute delta when all txs have EL data (not just when positive)
- Template: green +delta with EIP-7778 ▲ badge or yellow −delta with EIP-7778 ▼
- Update tooltip text to explain both cases

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…verview

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- process_transactions.go: filter EIP-7708 system address (0xff..fe) from
  token transfer detection; EIP-7708 emits Transfer(from,to,value) logs
  from this address for native ETH transfers, which dora would otherwise
  incorrectly index as ERC20 token transfers from a spurious token contract
- slot/overview.html: correct EIP-7778 gas delta tooltip — counters diverge
  when blocks have storage-write refunds (not "ALWAYS"), removing misleading
  claim that was inaccurate for empty or ETH-only blocks

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…overview

The block access list hash (EIP-7928) was defined in the model but never
populated. This computes it as keccak256(raw RLP bytes) — the same value
the EL puts in the block header — so dora can now display and verify it.

Template improvements: expanded tooltip explaining the hash derivation,
copy-to-clipboard button, and EIP-7928 badge for discoverability.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@qu0b

qu0b commented Jun 23, 2026

Copy link
Copy Markdown
Member Author

glamsterdam-devnet-6 test: EIP-7843 slot_number + EIP-7928 BAL hash + EIP-7778 gas delta ✅

Tested on glamsterdam-devnet-6. All three execution payload fields are visible in the slot overview:

EIP-7843 Slot Number, EIP-7778 Gas Refund Delta, EIP-7928 BAL Hash

EIP-7843: Slot Number — The Slot Number: 2864 row in the Execution Payload section shows the beacon slot number with its EIP badge.

EIP-7778: Gas Refund Delta — The Gas Refund Delta: +0 EIP-7778 ▲ (receipts sum: 300912) row shows the difference between block-level gasUsed and the sum of individual receipt gasUsed values, with an arrow indicating direction.

EIP-7928: BAL Hash — The BAL Hash row shows the keccak256 of the RLP-encoded Block Access List with its EIP badge.

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