Conversation
Add support for Avalanche C-Chain, a standard EVM-compatible chain with high throughput. Implements network configuration, RPC client initialization (via direct EthereumClient instantiation since not in ClientFactory), and adapter routing. Closes #113. - Add Avalanche C-Chain entry to networks.json with CAIP-2 identifier and metadata - Update DataService to create EthereumClient for unsupported chains - Update AdapterFactory and NetworkAdapter to handle chain 43114 - Route to EVMAdapter (standard EVM implementation)
Consolidate scattered union types (SupportedChainId | 11155111 | 97 | 31337 | 43114) into a single AppChainId type, making it easier to add new networks.
…port Update @openscan/network-connectors to v1.4.0 which includes native AvalancheClient (43114). Remove the EthereumClient workaround for unsupported chains and use ClientFactory directly. Simplify AppChainId type since 43114 is now part of SupportedChainId.
Add a reusable helper tooltip infrastructure that provides contextual explanations for blockchain data fields across all explorer pages. Infrastructure: - HelperTooltip component: hover/focus/tap with a11y support - FieldLabel wrapper: knowledge-level-aware tooltip visibility - Settings UI: enable/disable toggle + beginner/intermediate/advanced selector - Navbar quick-switcher: cycle through levels with colored border indicator - New `tooltips` i18n namespace with content in all 5 languages Coverage: - EVM transaction page: all fields including L2 (Arbitrum, OP Stack) and blob fields - EVM block page: all fields including More Details (advanced-only) and Arbitrum fields - Address/contract pages: verification, proxy, read/write, balance, nonce, ENS, EIP-7702 - Token/NFT pages: standard, decimals, supply, token ID, owner, approved, metadata URI - Bitcoin transaction/block/address pages: all fields with BTC-specific content - Settings page: knowledge-level selector tooltip
…twork feat: add Avalanche C-Chain network support
Hardhat v3 does not support Geth's callTracer or prestateTracer options for debug_traceTransaction. Add struct log conversion utilities that reconstruct call trees and state diffs from opcode-level traces.
- Fix tooltip z-index clipping by rendering bubbles via React Portal to document.body, escaping all ancestor overflow containers - Enrich tooltip descriptions with EIP-1559, EIP-4844, UTXO model, Merkle tree, and proxy pattern explanations across all 5 locales - Fix Arbitrum difficulty tooltip and circular blob definition - Add missing tooltips: tx history table headers, account type, analyser tabs, finalized badge, contract details, Bitcoin confirmations, inputs/outputs columns, network stats, state changes - Reclassify knowledge levels: beginner=all tooltips, intermediate=hides basic fields, advanced=complex/chain-specific only - Update knowledge level descriptions in all locale settings files
Move coinbase and witness to left column, RBF to right column for better visual grouping of related fields.
Fetch block height from block header when displaying confirmed transactions. Block number is shown as plain text before the clickable block hash link.
Support all four directions (top, bottom, left, right) for tooltip bubbles. Use left placement for confirmation and finalized badges in the top-right corner. Add vertical viewport clamping.
Compute final pixel position for both axes before removing transform, so vertical translation is preserved when only horizontal clamping is needed and vice versa.
Render a CSS triangle arrow inside the tooltip bubble that points toward the trigger. Arrow position is dynamically calculated after viewport clamping to always aim at the trigger center.
Move raw opcode trace to a new tab in TX Analyser with paginated view, expandable stack/storage per step, and opcode color coding. Remove the old standalone debug trace section from TransactionDisplay. Hide TX Analyser entirely when no tabs have content to show.
- workflow: add dual strategy (patch PRs to dev, release branches for minor/major) - architecture: update to NetworkAdapter/AdapterFactory pattern, add Bitcoin and Hardhat - patterns: fix paths, update "add network" steps to new adapter structure - i18n: add 5 supported languages, tooltips namespace, update checklists - code-style: reference all 5 locales in i18n verification
Add /etherscan/verify route to the Cloudflare Worker that proxies contract verification requests to Etherscan V2 API using a shared API key. Frontend now uses the worker proxy as default fallback when no user key is configured, making verification free for all users. Closes #322
Remove hasEtherscanKey gate from useContractVerification so that Etherscan verification runs for all users via the worker proxy, not just those with a configured API key.
Detect Vyper contracts from Etherscan's CompilerVersion (vyper: prefix) and Sourcify's compilation.language field. Use correct .vy file extension instead of hardcoded .sol. Add CodeBlock component with Prism.js for syntax highlighting of Solidity (.sol) and Vyper (.vy) source files. Test with CRV token (Vyper, verified on Sourcify): 0xd533a949740bb3306d119cc777fa900ba034cd52
Add hardhat Traces support
feat(tooltips): add helper tooltip system with knowledge-level support
Add EIP-4844 blob data display by fetching from the Beacon Chain API. Super user mode only. Includes BeaconService for blob sidecar fetching, KZG commitment to versioned hash matching via Web Crypto SHA-256, configurable Beacon API endpoints in Settings, and blob viewer with hex/UTF-8 toggle. Block page shows all blobs in a collapsible section, transaction page adds a Blob Data tab in the TX Analyser. Default public Beacon API endpoints provided for Ethereum and Sepolia. Blob pruning (~18 days) handled gracefully with clear user messaging. i18n translations added for all 5 supported languages. Closes #301
feat(worker): add Etherscan API proxy for free contract verification
…l CSS Rename tx-analyser-* and analyser-* CSS classes to detail-panel-* for reuse across pages. Create BlockAnalyser tabbed panel for block details (More Details, Transactions, Withdrawals, Blob Data) mirroring the TxAnalyser pattern. Simplify BlockDisplay by replacing collapsible sections with the new BlockAnalyser component.
docs(claude): update rules to reflect current architecture and workflow
Merge openscan-explorer/dev into feat/beacon-blob-data, incorporating helper tooltips, knowledge levels, raw trace tab, FieldLabel component, Hardhat adapter, and Etherscan worker proxy alongside our beacon blob and block analyser changes.
…-blob-data # Conflicts: # .claude/rules/architecture.md # .claude/rules/patterns.md # src/components/pages/evm/block/BlockDisplay.tsx # src/components/pages/evm/tx/TxAnalyser.tsx # src/components/pages/evm/tx/analyser/types.ts # src/locales/en/settings.json # src/locales/es/settings.json # src/locales/ja/settings.json # src/locales/pt-BR/settings.json # src/locales/zh/settings.json # src/types/index.ts
Adds Avalanche C-Chain RPC endpoints to the metadata service.
Store the metadata package version in the RPC cache. On startup, if the cached version doesn't match the current METADATA_VERSION, treat the cache as stale and refetch immediately. This ensures users get new RPC endpoints (e.g. Avalanche C-Chain) without waiting for the 24h TTL.
…support # Conflicts: # src/App.tsx # src/components/pages/evm/address/shared/ContractDetails.tsx # src/components/pages/evm/address/shared/ContractInfoCard.tsx
Add per-provider proxy routes to the OpenScan worker to hide API keys for Alchemy (Beacon, BTC, EVM) and Infura (EVM). Includes rate limiting, request validation with method allowlists, and CORS support for GET. Routes: - GET /beacon/alchemy/:networkId/blob_sidecars/:slot - POST /btc/alchemy - POST /evm/alchemy/:networkId - POST /evm/infura/:networkId Frontend changes: - Extract shared OPENSCAN_WORKER_URL into src/config/workerConfig.ts - Add BeaconService and useBeaconBlobs hook for blob sidecar fetching - Add worker BTC and EVM URLs to BUILTIN_RPC_DEFAULTS as fallbacks - Recognize worker-proxied URLs in settings RPC tag labels Closes #334
Add dRPC routes reusing existing rate limiting and validation middleware. dRPC supports all EVM networks plus Bitcoin via authenticated query params. Routes: - POST /evm/drpc/:networkId - POST /btc/drpc
Rename from openscan-groq-ai-proxy to reflect broader scope. Old worker remains live until all frontend builds use the new URL.
Route: POST /btc/onfinality/:networkId Supports bip122:000000000019d6689c085ae165831e93 (mainnet) and bip122:000000000933ea01ad0ee984209779ba (testnet).
Routes: - POST /evm/ankr/:networkId (all 8 EVM networks) - POST /btc/ankr
feat(address): add Vyper smart contract support and syntax highlighting
fix: invalidate metadata cache on version bump
- Input Data is now a tab in TX Analyser, not an inline section - Nonce/Position fields are in the details grid, no "Other Attributes:" header - Gas Price label uses FieldLabel with tooltip, breaking exact text match - Invalid address may show timeout or redirect to home - ERC1155 token image may show loading timeout for slow metadata - Blocks header test waits for table data before checking info text
feat(blocks/tx): Display raw blob data content via Beacon API
Restrict the EVM proxy to a curated set of read-only JSON-RPC methods, preventing callers from invoking admin, signing, or state-changing methods through the shared provider API keys.
Include worker/src in biome.json scope and fix all resulting issues: format corrections, remove useless continue, replace non-null assertions with safe alternatives.
feat(worker): add proxy routes for Beacon API, Bitcoin RPC and EVM RPC
|
🚀 Preview: https://pr-342--openscan.netlify.app |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.