Skip to content

Conversation

@AugustoL
Copy link
Collaborator

@AugustoL AugustoL commented Dec 12, 2025

Summary

Major release with 222 files changed (+34,803 / -21,046 lines) introducing a complete UI overhaul, new features, and architectural improvements.

New Features

  • Home page search bar with ENS support
  • Subdomain routing (e.g., ethereum.openscan.io → /1)
  • ENS integration - resolve names, display records, reverse lookups
  • Profile pages for networks, apps, and organizations
  • Supporters page
  • Subscriptions page with payment contract integration
  • NFT token detail pages for ERC721/ERC1155
  • Decoded transaction input data and events for verified contracts
  • Message Signer in DevTools
  • Drag-and-drop RPC reordering with Chainlist fetch button
  • About page redesign with vision, principles, and GitHub stats

Architecture

  • New adapter system - Network-specific adapters (Arbitrum, Base, Optimism, Polygon, BNB, EVM)
  • MetadataService - Load network configs from external metadata repository
  • ENSService - Dedicated ENS resolution service
  • Refactored page structure - Pages organized into dedicated directories

Testing & Quality

  • Playwright E2E tests for blocks, transactions, addresses, and tokens
  • Biome linting integrated into CI
  • Bug report template added

UI/UX

  • CSS theme system with variables (removed .light-theme overrides)
  • Consolidated styles into base utilities
  • Theme toggle moved to navbar
  • Background animated blocks (configurable)
  • Improved settings page layout

AugustoL and others added 30 commits November 29, 2025 10:28
  Split the PR preview workflow into two separate workflows to handle
  fork PRs that don't have access to repository secrets:

  1. deploy-pr-preview.yml - Builds the PR and uploads artifacts
     (runs in fork context, no secrets needed)

  2. deploy-pr-preview-netlify.yml - Downloads artifacts and deploys
     (runs via workflow_run in base repo context with secrets access)

  This fixes: "Resource not accessible by integration" error
…ying

The networks were not showing because `getEnabledNetworks()` was called
synchronously during render before the async network data had loaded.

- Derive `enabledNetworks` from `networks` state using useMemo in AppContext
- Update Home.tsx to use `useNetworks()` hook from context
- Add loading state while networks are being fetched
- Add pay() function for subscription payments with event emission
- Add donate() function with message stored in calldata for moderation
- Add executeCall() for owner to recover funds/tokens
- Include comprehensive test suite covering all functionality
- Add contract to TestSuite ignition deployment module
Add a new tool for signing messages and transactions:
- Personal Sign (EIP-191) for plain text messages
- Typed Data (EIP-712) for structured data signing
- Send Transaction for signing and broadcasting raw transactions

Includes wallet connection status, copy buttons, and error handling.
Add toggle to switch between EIP-191 personal sign verification and
raw/pre-hashed message verification. Fixes incorrect address recovery
when verifying signatures of hex strings that were signed as messages.

Also fixes EIP-712 verification by removing EIP712Domain from types.
When viewing a verified contract address, display a Method column showing:
- Decoded function name (green) when matched against ABI
- Function selector (gray) when not decodable
- "Transfer" (blue) for plain ETH transfers

Also centers all table cells for consistent alignment.
Add subscriptions page and fix PR preview
- Add inputDecoder utility for decoding function calls and events with ABI
- Fetch contract data from Sourcify/local artifacts in TransactionDisplay
- Show decoded function name and parameters below raw input data
- Decode events from tx.to using contract ABI with fallback to standard lookup
- Add ABI badge indicator when events are decoded using contract ABI
feat(networks): load network configs from external metadata repository
- Add visual guide with collapsible help images for payment process
- Add paymentHelp1, paymentHelp2, paymentHelp3 images showing steps
- Update subscription steps (payment, sign tx, submit PR/issue, verify)
- Change navbar subscriptions icon from heart to star
- Add subscribe link in footer
- Use OPENSCAN_PAYMENT_ADDRESS constant for contract links
- Style links in help image wrappers with white color
- Resolved conflicts in AddressDisplay.tsx, SearchBox.tsx, Address.tsx
- Added ENS support to Navbar search
- Fixed TypeScript errors and linting issues
- Use container-medium for wider layout like about page
- Place Appearance and RPC Strategy sections side by side
- Move RPC Endpoints section below the top row
- Add responsive grid that stacks on mobile
RPC tags in settings can now be dragged to reorder priority and deleted
with an X button. Changes are only persisted when Save is clicked.
Adds a button next to each network's chain ID badge that fetches
privacy-friendly RPC endpoints (tracking: none) from chainlist.org
and merges them with existing RPCs.
- Remove useCallback wrappers from helper functions to avoid stale closures
- Clone arrays in getLocalRpcArray to prevent reference mutations
- Change label to div to prevent click interference with buttons
- Add stopPropagation to delete button click handler
- Use functional state updates in fetchFromChainlist
- Add vision section with 4 key commitments from project plan
- Add core principles section with 5 principles
- Fetch and display GitHub stats (commits, contributors) via API
- Show network logos instead of chain IDs using NetworkIcon
- Add centered grid layout for features and networks sections
- Update version card to 4-column layout with GitHub stats
- Add responsive CSS for new sections
Redesign About page with vision, principles, and GitHub stats
MatiasOS and others added 3 commits December 17, 2025 22:52
Netlify preview URLs (e.g., pr-95--openscan.netlify.app) were being
incorrectly parsed as having invalid subdomains, causing redirects
to netlify.app. Added early returns to skip subdomain processing
for .netlify.app and .github.io domains.
Normalize block number handling across adapters
fix: skip subdomain redirect for Netlify and GitHub Pages URLs
MatiasOS and others added 4 commits December 18, 2025 19:01
- Add CONTRIBUTING.md with setup, workflow, and code quality guidelines
- Add PR template with checklist and change type options
- Add networks.json with bundled network configurations
- Update networks.ts to import from local JSON file
- Update MetadataService.ts fetchNetworks to return local data
- Remove clearNetworksCache function (no longer needed)
refactor: use local networks.json instead of fetching from metadata
docs: add contributing guide and PR template
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.

3 participants