70 lines
5.4 KiB
Markdown
70 lines
5.4 KiB
Markdown
|
|
# SolaceScanScout — Additional Recommendations
|
|||
|
|
|
|||
|
|
This document lists **further improvements** beyond the upgrades already implemented (Tier 1–3 frontend, API docs, watchlist, labels, i18n, etc.). Items are grouped by effort and dependency (frontend-only vs backend).
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Frontend-only (quick wins)
|
|||
|
|
|
|||
|
|
| Recommendation | Description | Effort |
|
|||
|
|
|----------------|-------------|--------|
|
|||
|
|
| **Event log decoding** | On transaction detail, decode log topics/data using contract ABI when available (fetch ABI from Blockscout for log address, match by topic0 signature). | Medium |
|
|||
|
|
| **Address labels in more tables** | Use `formatAddressWithLabel()` in latest transactions (home), block detail (miner), and transaction detail (from/to) so labels appear wherever addresses are shown. | Low |
|
|||
|
|
| **More i18n keys** | Add translations for common UI strings (e.g. "Back", "Export CSV", "Token Balances", "Internal Txns", "Read contract", "Write contract") and optionally add another language (e.g. French). | Low |
|
|||
|
|
| **Failed tx rate in Gas widget** | If Blockscout stats expose a failed-transaction metric, show it in the Gas & Network card (e.g. "Failed (24h): 0.1%"). | Low |
|
|||
|
|
| **Copy-to-clipboard on hashes** | Add a small copy icon next to transaction hash, block hash, and address in detail views; onClick copy full value and show toast "Copied". | Low |
|
|||
|
|
| **Pagination on list views** | Blocks and Transactions list views currently load a fixed page (e.g. 50). Add "Next / Prev" or infinite scroll using Blockscout's `page` and `page_size`. | Medium |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Frontend + existing API
|
|||
|
|
|
|||
|
|
| Recommendation | Description | Effort |
|
|||
|
|
|----------------|-------------|--------|
|
|||
|
|
| **Contract creation tx** | On address detail for contracts, if Blockscout returns `creation_tx_hash` or similar, show "Contract created in tx 0x…" with link. | Low |
|
|||
|
|
| **First / last tx (address age)** | If the API exposes first and last transaction timestamp or block, show "First seen" / "Last seen" on address detail. | Low |
|
|||
|
|
| **Search results list** | Instead of navigating to the first search result only, show a small list of matches (addresses, txs, blocks, tokens) and let the user pick. | Medium |
|
|||
|
|
| **Token list / filters** | A dedicated "Tokens" page that lists verified tokens (if Blockscout has a tokens index) with search and optional filter by type (ERC-20 / ERC-721). | Medium |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Security & compliance (plan §9)
|
|||
|
|
|
|||
|
|
| Recommendation | Description | Effort |
|
|||
|
|
|----------------|-------------|--------|
|
|||
|
|
| **Known-address labels** | Curated list of known addresses (e.g. bridge contracts, WETH, CCIP) with fixed labels (not user-editable). Could be a small JSON in the repo or fetched from a config endpoint. | Low–Medium |
|
|||
|
|
| **Token approval scanner** | Link to an external approval-checker (e.g. revoke.cash style) for Chain 138, or a simple "Check approvals" that deep-links to a tool with the address. No backend required for a link-only approach. | Low (link) / High (actual scanner) |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Backend or new services
|
|||
|
|
|
|||
|
|
| Recommendation | Description | Effort |
|
|||
|
|
|----------------|-------------|--------|
|
|||
|
|
| **Watchlist email alerts** | Notify users when an address has new transactions (or balance change). Requires backend storage and email/sendgrid. | High |
|
|||
|
|
| **Portfolio view** | Multi-address aggregation, historical balance, simple PnL. Requires historical index or third-party API. | High |
|
|||
|
|
| **API keys & rate limits** | Tiered API access with keys and rate limits. Requires backend (e.g. Go API) in front of Blockscout or a proxy. | Medium (backend) |
|
|||
|
|
| **Cross-chain unified view** | One view for an address across Chain 138 and other chains (e.g. Ethereum mainnet). Requires multi-chain indexer or aggregator. | High |
|
|||
|
|
| **Analytics / Operator content** | Fill Analytics (Track 3) and Operator (Track 4) views with real features: e.g. network stats, bridge volume, config toggles. Depends on what the backend exposes (stats API, admin API). | Medium–High |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Operational & documentation
|
|||
|
|
|
|||
|
|
| Recommendation | Description |
|
|||
|
|
|----------------|-------------|
|
|||
|
|
| **Health/readiness endpoint** | A simple `/api/health` or `/api/ready` that returns 200 when Blockscout is up, for load balancers and monitoring. |
|
|||
|
|
| **OpenAPI/Swagger** | If Blockscout serves OpenAPI, document the link in [EXPLORER_API_REFERENCE.md](EXPLORER_API_REFERENCE.md) so developers can discover parameters and response shapes. |
|
|||
|
|
| **Changelog** | Keep a short `CHANGELOG.md` or "Recent changes" section in the explorer docs when you ship new features (e.g. "Token balances CSV", "Write contract", "Watchlist"). |
|
|||
|
|
| **E2E tests** | Add or extend E2E tests (e.g. Playwright) for critical paths: search → address detail, block list → block detail, export CSV, theme toggle, watchlist add/remove. |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Summary
|
|||
|
|
|
|||
|
|
- **Already done:** Tier 1–2 (tx/address/contract/token/NFT, gas widget, read/write contract, CSV exports, permalinks, dark mode, i18n), Tier 3 frontend (watchlist, address labels), API reference, Analytics/Operator view fix, token balances CSV, address labels in tables.
|
|||
|
|
- **Highest-value next (no new backend):** Event log decoding, address labels in all tables, copy-on-click for hashes, pagination on blocks/transactions, known-address labels, and a "Check approvals" link for token approvals.
|
|||
|
|
- **With backend:** Email alerts for watchlist, API keys/rate limits, portfolio, and richer Analytics/Operator content.
|
|||
|
|
|
|||
|
|
Use this list to prioritize the next sprint or backlog.
|