Skip to content

explorer: resolve DuskEVM parent-chain links#286

Draft
HDauven wants to merge 1 commit into
mainfrom
feat/duskevm-transaction-links
Draft

explorer: resolve DuskEVM parent-chain links#286
HDauven wants to merge 1 commit into
mainfrom
feat/duskevm-transaction-links

Conversation

@HDauven

@HDauven HDauven commented Jul 19, 2026

Copy link
Copy Markdown
Member

Summary

  • add Blockscout-compatible /tx/<hash> links that resolve adapter-canonical transaction hashes to native Dusk transaction IDs
  • add /block/<height-or-hash> links that resolve Dusk block heights before opening the existing block page
  • add a same-origin development proxy for the adapter resolver and document the production reverse-proxy boundary

This lets DuskEVM Blockscout use the official Dusk explorer as its parent-chain explorer instead of linking synthetic EVM transaction hashes to an EVM L1 explorer. It consumes duskevm_getDuskTransactionIdByHash, added in dusk-network/dusk-duskevm-adapter#154.

Validation

  • npm run checks (90 files, 367 tests)
  • VITE_BASE_PATH=/explorer VITE_DUSKEVM_ADAPTER_URL=/duskevm-rpc npm run build
  • browser E2E against a fresh local Rusk and adapter index:
    • canonical hash 0x2f3af4dbbd5a847d8c869a3a85e5707566053fc9fc42f95ad02878a64d61ea6b opened native transaction a27cbf8b4ceae6f456c3d213de820e8b5f2b7f6aeab80a4ce0333fb885cf605a
    • a direct native transaction ID opened without an adapter request
    • an unmapped canonical hash stayed on the compatibility page and showed an unavailable state
    • block height 6738 resolved through Rusk and rendered the native Dusk block page

Deployment notes

  1. Deploy an adapter containing dusk-network/dusk-duskevm-adapter#152 and Fix Retry on ChainInfo Tables  #154.
  2. Reindex Blockscout from a fresh database. Delay fetching market data if the current data is not stale #152 changes the canonical block and transaction hashes produced for existing Dusk history, so a stale Blockscout index contains links the new inverse resolver cannot recognize.
  3. Reverse proxy the explorer /duskevm-rpc path to the adapter JSON-RPC endpoint. The production proxy should allow only the read method required here (duskevm_getDuskTransactionIdByHash).
  4. Set the Blockscout parent-chain explorer base URL to the corresponding official Dusk explorer base URL.

Blockscout also constructs parent-chain address links. Generic synthetic 20-byte adapter addresses are not reversibly mappable to arbitrary Dusk accounts, so this PR deliberately does not pretend those links identify a native Dusk account.

@HDauven
HDauven marked this pull request as draft July 19, 2026 19:36
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