From e1ec82493d3e7bf52c74a4a1b9fa7363ccafc548 Mon Sep 17 00:00:00 2001 From: Vasanth T Date: Tue, 10 Nov 2026 20:39:47 +0530 Subject: [PATCH] feat(bridge): guide funds in from an exchange The bridge panel gains a "Funds on an exchange?" link that swaps the form for a four-step guide: the wallet's address with a copy button, the four networks to withdraw to (Base, Ethereum, Arbitrum, Optimism), a read-only watch for the funds to land, and a button that opens the bridge on that route with the token amount filled in. A token that lands with no ETH beside it gets a gas warning. Funds that land on the destination itself are reported as ready. The watch reads ETH and Circle's USDC on those networks every 15 seconds, paused while the tab is hidden, and measures arrivals from the lowest balance seen since it began, so funds already there never count. The watch and the open guide are kept in session storage for two hours, so closing the panel or connecting a wallet resumes it without taking focus. Relay deposit addresses were evaluated for this and stay off: production addresses are Lit-derived accounts whose derivation inputs are not returned, so an address cannot be tied to its order. docs/bridge.md records the findings and the on-chain evidence. --- app/src/app/bridge/page.tsx | 1 + app/src/app/ui-review-bridge/BridgeReview.tsx | 27 ++- .../components/bridge/BridgeDialog.module.css | 26 ++- app/src/components/bridge/BridgeDialog.tsx | 157 +++++++++++++++++- app/src/components/bridge/bridge-ui.test.ts | 27 +++ app/src/components/bridge/useExchangeWatch.ts | 73 ++++++++ app/src/lib/bridge/exchange.test.ts | 101 +++++++++++ app/src/lib/bridge/exchange.ts | 124 ++++++++++++++ app/src/lib/bridge/fund.ts | 10 +- docs/bridge.md | 23 ++- 10 files changed, 557 insertions(+), 12 deletions(-) create mode 100644 app/src/components/bridge/useExchangeWatch.ts create mode 100644 app/src/lib/bridge/exchange.test.ts create mode 100644 app/src/lib/bridge/exchange.ts diff --git a/app/src/app/bridge/page.tsx b/app/src/app/bridge/page.tsx index a5940dc7..cf55e98c 100644 --- a/app/src/app/bridge/page.tsx +++ b/app/src/app/bridge/page.tsx @@ -79,6 +79,7 @@ export default async function BridgePage({ searchParams }: { searchParams: Promi

Good to know