Skip to content

feat(bridge): USDG on Robinhood Chain, both directions - #119

Closed
Vasanthdev2004 wants to merge 2 commits into
fix/bridge-relay-routerfrom
feat/bridge-routes
Closed

Vasanthdev2004 wants to merge 2 commits into
fix/bridge-relay-routerfrom
feat/bridge-routes

Conversation

@Vasanthdev2004

Copy link
Copy Markdown
Collaborator

Stacked on #118 (Relay router v3.2 fix). Base is fix/bridge-relay-router so this diff shows only the USDG change; GitHub retargets it to main once #118 merges.

What

Robinhood Chain's dollar is USDG (Global Dollar, issued by Paxos, 6 decimals, 0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168, checked on-chain). The launch form already prices Robinhood tokens in it, but the bridge could only move ETH there. Now USDG is a send and receive asset on Robinhood Chain:

  • Base USDC -> Robinhood USDG, and back
  • Arc USDC -> Robinhood USDG, and back
  • ETH <-> USDG conversions across chains

How

  • types.ts: one asset table per chain; USDG added for 4663. New bridgeTokenAsset() (the chain's one ERC-20) and isDollarAsset().
  • validation.ts: no rule loosened. Symbols now come from the chain table. A new bound for dollar-to-dollar routes (USDC <-> USDG): the quoted minimum and the expected output must sit within 95%..105% of the amount sent, on top of the existing fee and impact limits.
  • approval.ts, client.ts, useBridge.ts, BridgeDialog.tsx: token-generic wording ("exact token approval"). Switching chains keeps a dollar as a dollar (USDC <-> USDG). The picker shows "Global Dollar · Gas in ETH".
  • docs/bridge.md: USDG section.

Checks

  • tsc clean, eslint 0 errors
  • Bridge unit tests: all pass. New tests cover USDG routes both ways, a swapped-in token being refused, and the dollar bound
  • Full suite: no new failures (the only failures on Windows are the existing CRLF regex ones)
  • Live Relay suite (RUN_BRIDGE_LIVE_TESTS=1, unsigned, example address): 16/16 routes verify, including all USDG routes
  • Browser: Robinhood receive menu lists ETH and USDG; picking USDG shows "ETH -> USDG Converted by Relay"

Robinhood Chain's dollar is USDG (Global Dollar, Paxos, 6 decimals,
0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168), and the launch form already
prices Robinhood tokens in it. The bridge now offers it as a send and
receive asset on Robinhood Chain next to ETH.

- types: per-chain asset table; USDG added for 4663; asset names,
  bridgeTokenAsset() for the chain's one ERC-20, isDollarAsset()
- validation: symbols come from the chain table; dollar-to-dollar
  routes (USDC <-> USDG) must quote within 95%..105% of the amount sent,
  on top of the existing fee and impact limits
- approval, client, useBridge, BridgeDialog: token-generic wording,
  dollar asset is kept when switching chains (USDC <-> USDG)
- tests: USDG routes both ways, token substitution refused, dollar
  bound enforced; live suite sizes amounts by decimals (16/16 routes)
- docs/bridge.md: USDG section
@coderabbitai

coderabbitai Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Essentials
  • Run ID: 0881ed9a-01a1-41a8-9374-74b06c28fd39

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@Vasanthdev2004

Copy link
Copy Markdown
Collaborator Author

Closed in favour of #135, which holds the whole bridge update in one PR. The commits from this PR are in it unchanged.

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.

1 participant