Skip to content

feat(dora): EIP-8037 BAL origin/coinbase badges + EIP-8246 SELFDESTRUCT detection#754

Open
qu0b wants to merge 2 commits into
glamsterdam-devnet-6from
qu0b/dora/glamsterdam-devnet-6-bal-js
Open

feat(dora): EIP-8037 BAL origin/coinbase badges + EIP-8246 SELFDESTRUCT detection#754
qu0b wants to merge 2 commits into
glamsterdam-devnet-6from
qu0b/dora/glamsterdam-devnet-6-bal-js

Conversation

@qu0b

@qu0b qu0b commented Jun 23, 2026

Copy link
Copy Markdown
Member

Summary

  • Adds BAL origin/coinbase badges to transaction detail to indicate whether state gas refunds route to tx.origin or coinbase (EIP-8037)
  • Detects and flags SELFDESTRUCT-to-self transactions where ETH is no longer burned (EIP-8246)

Test plan

  • Inspect a transaction with SELFDESTRUCT on a glamsterdam-devnet-6 dora instance
  • Confirm BAL routing badges appear and SELFDESTRUCT no-burn is flagged correctly

…CT detection

- Make transactionDetails window-scoped; build txOriginByBAI index (block_access_index → tx origin hex)
- Inject window.doraFeeRecipient from Go template (block fee recipient)
- renderBalanceChanges: accept entryAddress param, emit yellow "origin" badge when entry addr matches tx sender, green "coinbase" badge when entry addr matches fee recipient
- renderCodeChanges: detect empty-code entries (SELFDESTRUCT), check whether address(0) received ETH at same block_access_index to distinguish pre-EIP-8246 burn vs EIP-8246 no-burn, emit red/yellow badge accordingly

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

qu0b commented Jun 23, 2026

Copy link
Copy Markdown
Member Author

Screenshot: origin badge (EIP-8037)

Slot 694 — root wallet 0x4d1CB4eB…8C8ec413 expanded in the Access List tab.
The origin badge (yellow) appears on the balance change entry at Tx 7, where a storage-clearing refund was routed back to tx.origin per EIP-8037.

PR #754 origin badge


Bug found and fixed in this demo: txOriginByBAI was comparing a hex string against a base64-encoded address (tx.from in TransactionDetails JSON is base64). Added base64ToHex() call (already present in the template) to decode it first — this commit is on the same branch.

tx.from in TransactionDetails JSON is base64-encoded, not a hex string.
The existing code passed it through as-is (lowercased base64), which
never matched entryAddrHex (hex). Use base64ToHex() — already present
in the template — to decode it correctly, so the EIP-8037 "origin" badge
renders when a balance change belongs to the tx origin.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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