Feature Requests

Feature requests related to Blockscout - open source block explorer. If you face any issues with your txs, contact the chain team directly.
add ETH Swarm support for token metadata
PR: https://github.com/blockscout/blockscout/pull/14290 ## Summary Adds first-class support for ETH Swarm hashes in the token metadata pipeline, mirroring the existing Arweave integration. The implementation works with any content stored on Swarm , not just /bzz uploads — because the entry point is the 64-character keccak-256 hash (content address), which is shared by: /bzz/<hash> — regular chunk uploads SOC (Single Owner Chunks) references Feed manifests (which resolve to a content-address under the hood) A 200 response from the Swarm gateway is therefore sufficient proof that the content exists, regardless of how it was originally uploaded. --- ## Changes ### apps/explorer/lib/explorer/token/metadata_retriever.ex | Addition | Purpose | |---|---| | @invalid_swarm_path | Error constant (mirrors @invalid_ipfs_path ) | | swarm_link/1 | Builds <gateway>/bzz/<hash>/ ; defaults to https://gateway.ethswarm.org ; overridable via config :indexer, :swarm, gateway_url: | | swarm_headers/0 | Returns Authorization: Bearer <token> when config :indexer, :swarm, bearer_token: is set — supports private / paid gateway nodes | | valid_swarm_hash?/1 | Validates 64-char lowercase hex Swarm hash | | bzz:// clause in fetch_from_ipfs_or_ar?/5 | Routes bzz://<hash>[/path] URIs | | /bzz/<hash> clause in fetch_from_ipfs_or_ar?/5 | Routes plain HTTPS Swarm gateway URLs | | fetch_from_swarm/2 + fetch_from_swarm_if_valid_hash/2 | Fetcher (mirrors fetch_from_arweave/2 ) | | swarm?/1 predicate | Threaded through host-filtering bypass, header selection, and process_result/3 | ### apps/explorer/test/explorer/token/metadata_retriever_test.exs New describe blocks: swarm_link/1 — default gateway, custom gateway, trailing-slash stripping swarm_headers/0 — no token, bearer token configured valid_swarm_hash?/1 — valid, embedded path, uppercase, too short/long, empty, non-binary ETH Swarm URI routing — bzz:// scheme, plain HTTPS /bzz/ , invalid hash error --- ## Configuration (optional) ```elixir config/runtime.exs (or config.exs) config :indexer, :swarm, gateway_url: System.get_env("INDEXER_SWARM_GATEWAY_URL", " https://gateway.ethswarm.org "), bearer_token: System.get_env("INDEXER_SWARM_GATEWAY_BEARER_TOKEN") ``` Both keys are optional — the module works with zero configuration using the public Swarm gateway. --- ## Related Closes #<issue> (if any) Follows the same pattern as the Arweave integration introduced in this commit . <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * New Features * Added Swarm network support for token metadata retrieval * Support for bzz:// URI scheme and HTTP gateway-style paths * Automatic metadata validation and fetching from Swarm storage * Tests * Added comprehensive test coverage for Swarm metadata retrieval and URL handling <!-- end of auto-generated comment: release notes by coderabbit.ai -->
0
ArcNS name resolution integration for ArcScan
## Summary ArcNS is a decentralized naming protocol for Arc Testnet. It maps .arc and .circle names to EVM addresses, with on-chain resolution, reverse lookup with forward-confirmation, and ERC-721 name ownership. The v3 protocol is deployed on Arc Testnet (Chain ID: 5042002). We are requesting ArcNS support in ArcScan. ## Requested features * Search bar: accept .arc / .circle names and resolve to addresses * Address pages: display verified primary ArcNS name when set * Token/NFT pages: display human-readable domain name for ArcNS NFTs * Name detail pages: registration status, expiry, owner, resolved address ## What is already available * v3 contract addresses and ABIs * Subgraph URL and recommended GraphQL queries * Namehash algorithm and pseudocode * Reverse node computation and forward-confirmation rule * Expiry state logic (Active / Grace / Expired) * Edge case handling guide * Public resolution API: https://arcns-app.vercel.app/api/v1/ * Start block for indexing: 38856377 * Test names on Arc Testnet available on request ## References * Public repo: https://github.com/khenzarr/arcns * Integration package: docs/integration/arcscan-integration-package.md * API reference: docs/integration/public-adapter-api.md * Deployment status: docs/integration/TIER2_PUBLIC_ADAPTER_STATUS.md * Live API health: https://arcns-app.vercel.app/api/v1/health ## Implementation notes Forward-confirmation is required for reverse resolution; the reverse record should not be trusted on its own. The integration package documents this with step-by-step pseudocode and edge-case handling. The public API includes basic rate limiting; higher-volume use can be coordinated directly with the ArcNS team. We’re happy to answer integration questions, clarify ABIs, provide test names, or help with pre-launch review.
0
Load More