Skip to content

Add token bridge UI for Ethereum to Arc/Robinhood Chain#2

Open
opengrid1 wants to merge 70 commits into
claude/relaxed-mayer-ln64imfrom
claude/eth-robinhood-bridge-ui-518u9u
Open

Add token bridge UI for Ethereum to Arc/Robinhood Chain#2
opengrid1 wants to merge 70 commits into
claude/relaxed-mayer-ln64imfrom
claude/eth-robinhood-bridge-ui-518u9u

Conversation

@opengrid1

Copy link
Copy Markdown
Owner

Summary

This PR adds a comprehensive token bridge interface allowing users to transfer assets from Ethereum Mainnet to Arc Network (chain ID 5042) or Robinhood Chain (chain ID 1996). Two implementations are included: a standalone bridge app and an integrated bridge page within the main application.

Key Changes

New Bridge Applications

  • bridge-app/: Standalone bridge application with custom styling

    • App.tsx: Main bridge component with amount input, chain selection, and transaction progress tracking
    • wagmiConfig.ts: Wagmi configuration for Ethereum mainnet and Arc Network
    • ArcLogo.tsx: Custom canvas-based Arc logo component
    • Complete Vite + React + TypeScript setup with Tailwind CSS
  • app/src/pages/Bridge.tsx: Integrated bridge page for the main application

    • Token selector supporting ETH, USDC, and USDT
    • Balance display with MAX button
    • Multi-step bridge progress tracking (Approve → Initiate → Relay → Done)
    • Responsive design using Tailwind CSS

Configuration & Infrastructure

  • app/src/lib/chains.ts: Chain definitions and token configuration

    • Robinhood L2 chain configuration (ID 1996)
    • Bridge token definitions with metadata (symbol, decimals, logo URIs)
    • Support for ETH, USDC, and USDT
  • app/src/lib/wagmiConfig.ts: Wagmi configuration for main app

    • Configured for Ethereum mainnet and Robinhood Chain

Integration

  • Updated app/src/App.tsx to include Bridge route
  • Updated app/src/components/Header.tsx to add Bridge navigation link
  • Updated app/package.json with wagmi and viem dependencies
  • Updated app/src/main.tsx to wrap app with WagmiProvider and QueryClientProvider

Notable Implementation Details

  • Wallet Integration: Uses wagmi hooks (useAccount, useConnect, useDisconnect, useSwitchChain) for wallet management
  • Balance Fetching: Reads token balances using useReadContract with ERC20 ABI
  • Progress Tracking: Simulates bridge steps with visual progress indicators and transaction hash display
  • Responsive Design: Both implementations use Tailwind CSS with mobile-first approach
  • Design System: Standalone app includes custom color tokens and global CSS animations (spin, fadeUp)
  • Token Support: Main app supports multiple tokens with dropdown selector and balance validation

https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY

claude added 30 commits June 26, 2026 01:05
- New Bridge page with token selector (ETH/USDC/USDT), amount input,
  balance display, and step-by-step progress tracker
- wagmi v3 + viem + @tanstack/react-query for wallet connection and
  on-chain reads; injected connector for MetaMask/browser wallets
- Chain configs for Ethereum Mainnet and Robinhood Chain (ID 1996)
- Automatic prompt to switch to Mainnet when wrong chain is active
- Bridge route added to app nav alongside Explore and Create
- Fix root .gitignore to allow app/src/lib/ (was caught by Foundry lib/ rule)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
…ires v2)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
Separate Vite + React + Tailwind site dedicated to the bridge UI.
Includes wallet connection, token selector (ETH/USDC/USDT),
amount input with balance display, chain-switch prompt, and
step-by-step bridge progress tracker.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
Full visual overhaul following a privacy-first, engineer-built design philosophy:
- Pure black (#050505) background with subtle scanline texture
- Monospace type hierarchy (JetBrains Mono) for all labels/metadata
- 1px strokes, tight borders, zero glassmorphism or gradients
- Token selector, chain route display, data rows, progress steps
- Tab navigation: Bridge / Activity feed
- Compact nav with network status indicator

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
Complete visual rebuild: card-based layout with clear from/to panels,
pill-shaped token selector, smooth step progress with spinner, proper
type hierarchy (Inter + JetBrains Mono for data only), geometric
grid logo, green network status pill, fade-in animations. No gimmicks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
Built entirely with divs, border-radius, clip-path, and CSS transforms:
- Two asymmetric vane halves form the feather body
- Tapered rachis (stem) with clip-path polygon
- Pointed tip piece at top
- Split notch at base via ::after pseudo-element
- Scale prop drives all sizes via CSS --s custom property

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
Pure JavaScript canvas drawing: bezierCurveTo() for the two vane halves,
lineTo() for the rachis stem, arc() for the tip highlight, and a
filled wedge polygon for the base notch. Linear gradients give
depth. Retina-ready via devicePixelRatio scaling.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
- Chain ID: 5042, RPC: thirdweb, Explorer: explorer.arc.io
- Native token: USDC (6 decimals)
- Accent color updated to ARC purple (#6c63ff)
- ARC logo drawn with Canvas (ring + A letterform)
- All Robinhood branding removed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
- Black background, dark card, hero 'Bridge Assets' heading
- FROM/TO network rows with chain icons (Canvas-drawn ETH + ARC)
- Monospace detail rows: NETWORK FEE, CIRCLE MINTER CAP, ESTIMATED TIME, ROUTER
- Blue accent labels, green fee value, muted USDC amounts
- White 'Connect Wallet' button, blue active bridge button
- ArcBridge wordmark in cyan, centered Bridge nav underline

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
Remove ETH/USDT token options — this is a USDC-only CCTP bridge.
Fetch real USDC balance via useReadContract (balanceOf ERC-20 call).
Progress steps updated: Submit CCTP → Relay → Minted on Arc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
claude added 30 commits June 27, 2026 04:25
Dark + yellow-green (#CAFF00) design matching robinbridge.xyz aesthetic.
Deposit/Withdraw tabs, ETH bridge flow, liquidity card, how-it-works section.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxdmCFYReSEWBS97oB8hSY
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