Skip to content

Conversation

@AugustoL
Copy link
Collaborator

@AugustoL AugustoL commented Feb 2, 2026

Description

This PR merges release v1.2.0-alpha into dev, bringing major new features and improvements.

Type of Change

  • New feature
  • Bug fix
  • Refactoring
  • Performance improvement
  • Documentation update

Changes Made

Bitcoin Network Support

  • Add Bitcoin mainnet and Testnet4 network configurations
  • Implement BitcoinAdapter for JSON-RPC communication
  • Add Bitcoin dashboard, block, transaction, address, and mempool pages
  • Add BTC price fetching via WBTC pools on Ethereum
  • Add fee estimates (fast/medium/slow) to dashboard
  • Add Bitcoin-specific e2e tests with separate CI workflow

NetworkId Migration (CAIP-2)

  • Migrate from chainId to networkId format (e.g., "eip155:1")
  • Update RPC storage to V3 with networkId-based keys
  • Add NetworkType and slug support for URL routing

Auto-Search Recent Transactions

  • Add exponential (galloping) search algorithm for finding recent activity
  • Add semaphore-based rate limiting (max 4 concurrent RPC calls)
  • Show live progress with block range indicators during search
  • Add AbortSignal support for canceling in-flight requests on navigation

Internationalization (i18n)

  • Add react-i18next infrastructure with English and Spanish translations
  • Translate all pages: Address, Block, Transaction, Settings, DevTools, etc.

Logger Utility

  • Add environment-aware logging (dev: all, staging: info+, prod: warn+)
  • Migrate all console statements to logger utility
  • Strip console.log in production builds via Vite pure_funcs

Super User Mode

  • Add toggle to show/hide advanced features (DevTools)
  • Terminal icon in navbar for quick access

SEO & Metadata

  • Add JSON-LD structured data (WebApplication + FAQPage)
  • Improve Open Graph and Twitter Card meta tags
  • Fix manifest.json icon references

E2E Test Improvements

  • Restructure tests into eth-mainnet and evm-networks folders
  • Add separate CI workflows for different test suites
  • Fix HashRouter URL handling and test reliability

UI/UX Improvements

  • Reorganize EVM pages into evm/ subfolder
  • Simplify navbar with network dropdown
  • Fix mobile layout for Settings page RPC badges

Checklist

  • Code has been formatted with npm run format:fix
  • Code has been linted with npm run lint:fix
  • TypeScript passes with npm run typecheck
  • Tests have been run
  • Documentation updated

- Add Bitcoin network integration (Phase 1 - Dashboard only)
  - New BitcoinAdapter for JSON-RPC communication
  - Bitcoin dashboard with network stats and recent blocks
  - useBitcoinDashboard hook with 60s refresh interval
  - NetworkRouter component for network type routing

- Migrate from chainId to networkId (CAIP-2 format)
  - RPC storage now uses networkId as keys (e.g., "eip155:1")
  - Add networkResolver utility for network resolution
  - Extract chainId from networkId for EVM networks
  - Update settings page to use networkId-based storage
  - Bump RPC storage version to V3

- Add NetworkType and slug support
  - Networks now have "type" field ("evm" | "bitcoin")
  - Add "slug" field for URL routing (e.g., "btc", "eth")
  - getNetworkUrlPath prefers chainId for EVMs, slug for others

- Update all components to use networkId for RPC lookups
  - Address pages, token displays, contract interactions
  - Network dashboard, block indicator, devtools
- Add BitcoinBlockDisplay/Page with navigation, stats, and tx list
- Add BitcoinTransactionDisplay/Page with inputs/outputs two-column layout
- Add BitcoinAddressDisplay/Page with balance and UTXO display
- Add BTC price fetching via WBTC pools on Ethereum
- Add fee estimates (fast/medium/slow) to dashboard
- Add USD values alongside BTC values in transaction display
- Add mempool transaction support with multiple RPC fallbacks
- Add Bitcoin address/txid pattern recognition in search
- Update navbar to hide blocks/txs links on Bitcoin networks
- Center search bar in navbar using absolute positioning
- Simplify dashboard stats to show only price, mempool, and fees
- Unify Bitcoin page styling with EVM pages (block-display-card)
- Add network dropdown for all networks (including Bitcoin) with links
  to network home, blocks, transactions, and OpenScan home
- Remove BLOCKS and TRANSACTIONS links from navbar (now in dropdown)
- Move search bar to left side next to network logo
- Move search button inside input with smaller icon
- Fix dropdown hover gap issue with padding approach
- Clean up duplicate CSS styles and unused code
- Add BitcoinBlocksPage for /btc/blocks route with pagination
- Add BitcoinTransactionsPage for /btc/txs route showing recent txs
- Add BlocksPageRouter and TxsPageRouter for network-aware routing
- Fix navbar dropdown links to use getNetworkUrlPath for correct URLs
- Create bitcoinFormatters.ts with formatting functions
- Create bitcoinUtils.ts with business logic functions
- Create bitcoinConstants.ts with shared constants
- Update all Bitcoin components to use shared utilities
- Remove ~230 lines of duplicated code
- Add explicit /btc/* routes before :networkId catch-all
- Remove NetworkRouter component (no longer needed)
- EVM routes use LazyChain directly
- Add Bitcoin Testnet4 network configuration (slug: tbtc)
- Add /tbtc/* routes for testnet4 pages
- Update Bitcoin page components to extract network slug from URL path
  instead of useParams (required since routes don't have :networkId param)
- Add Mempool link to navbar dropdown for Bitcoin networks
- Add BitcoinMempoolPage component showing pending transactions
- Add getMempoolSummary and getMempoolTransactions methods to BitcoinAdapter
- Paginate by 100 transactions per page for faster loading
- Fetch transaction details in parallel for current page only
- Show page indicator in header and clean pagination controls
- Auto-refresh every 30 seconds
- Add pagination-info CSS class
- Fix NetworkAwareRouters to extract network from URL path segment
  instead of only useParams (which was undefined for /btc/* routes)
- Fetch block header in parallel with block data for reliable nTx count
- Use header's nTx as primary source with fallbacks
…utes

- Remove NetworkAwareRouters.tsx - no longer needed
- Use lazy components directly in App.tsx routes
- Bitcoin routes (btc/*, tbtc/*) use Bitcoin-specific components
- EVM routes (:networkId/*) use EVM components
- Simpler and more explicit routing
- Move EVM-specific pages to pages/evm/: address, block, blocks,
  tx, txs, network, gastracker, tokenDetails, mempool
- Update all imports in LazyComponents.tsx
- Fix relative imports in moved files
- Keep shared pages (about, contact, home, etc.) at pages/ root
- Mirrors existing pages/bitcoin/ organization
@github-actions
Copy link

github-actions bot commented Feb 2, 2026

🚀 Preview: https://pr-195--openscan.netlify.app
📝 Commit: b5202bd2f9800ed06f48776acd6eddc2ea1aa68d

- Add fixture data with real mainnet blocks, transactions, and addresses
- Test different eras: Genesis, SegWit (481824), Taproot (709632)
- Test all address types: Legacy (P2PKH), P2SH, SegWit (P2WPKH), Taproot (P2TR)
- Test transaction types: coinbase, legacy, SegWit, Taproot, OP_RETURN
- Add page object models for Bitcoin block, transaction, and address pages
- Add wait helpers for Bitcoin page content
- Create e2e-bitcoin.yml to run Bitcoin tests independently
- Update e2e.yml to exclude Bitcoin tests (--ignore-pattern)
Prevents 'No transactions found' flash while transactions are still loading
Update all Bitcoin pages to use truncateBlockHash for block hashes
- Add superUserMode setting to UserSettings with default false
- Add isSuperUser and toggleSuperUserMode to SettingsContext
- Add terminal icon toggle button in navbar (desktop and mobile)
- Conditionally render DevTools based on super user mode
- Add active state styling for toggle button
- Hide build warning icon in development environment

Closes #187
- Change max-width from viewport-based calc(100vw - 80px) to 100%
- Add width: 100% and overflow-x: hidden to parent container
- Reduce URL max-width on small mobile (480px) from 150px to 120px

Closes #193
chore: sync release/v1.2.0-a with dev
feat: add Super User Mode to show/hide advanced features
Hide the MetaMask button and RPC count badge on small devices (767px
and below) to prevent overflow in the settings chain header. Also add
min-width: 0 on RPC tags to allow them to shrink below content size.
Resolve merge conflicts in package.json (bump @openscan/network-connectors
to ^1.3.0) and bun.lock.
AugustoL and others added 28 commits February 5, 2026 22:39
fix(html): remove static preload content from root div
feat(search): auto-search recent transactions with exponential range finder
…ructure-with-react-i18next

130 feat implement i18n infrastructure with react i18next
- Create src/utils/logger.ts with debug, info, warn, error methods
- Environment-based filtering (dev: all, staging: info+, prod: warn+)
- Add unit tests for all log levels and environments
- Export logger from utils/index.ts
- Add pure_funcs to vite.config.ts to strip console.log in production

Closes #186
Replace console.log/warn/error with logger methods in utility files:
- artifactsStorage.ts
- devArtifacts.ts
- erc1155Metadata.ts
- erc721Metadata.ts
- rpcStorage.ts
- web3Security.ts
Replace console.log/warn/error with logger methods in:
- MetadataService.ts
- AddressTransactionSearch.ts
- All network adapters (EVM, Arbitrum, Optimism, Base, Polygon, BNB, Bitcoin)
- NetworkAdapter.ts
Replace console.log/warn/error with logger methods in:
- useENS.ts
- useProviderSelection.ts
- useSelectedData.ts
- useSourcify.ts
- useZipJsonReader.tsx
Replace console.warn/error with logger methods in:
- AppContext.tsx
- SettingsContext.tsx
Replace console.log/warn/error with logger methods in:
- ErrorBoundary.tsx
- LazyComponents.tsx
- NetworkBlockIndicator.tsx
- Address pages and displays
- Block/Transaction pages
- Token detail pages
- Bitcoin pages
- Settings page
- About page
Replace console.log with logger.debug in networks.ts
Add Logger Utility section to patterns.md with:
- Usage examples
- Log level guidelines
- Environment filtering table
- Build-time safety notes
…ity-with-environment-aware-log-levels

feat: Implement logging utility with environment aware log levels
@AugustoL AugustoL requested a review from MatiasOS February 9, 2026 11:45
@AugustoL AugustoL merged commit 0b6412f into dev Feb 9, 2026
4 of 6 checks passed
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.

2 participants