Skip to content

✨ app: add bridge support#885

Merged
cruzdanilo merged 1 commit intomainfrom
bridge-ui
Apr 1, 2026
Merged

✨ app: add bridge support#885
cruzdanilo merged 1 commit intomainfrom
bridge-ui

Conversation

@franm91
Copy link
Copy Markdown
Member

@franm91 franm91 commented Mar 13, 2026


Open with Devin

Summary by CodeRabbit

  • New Features

    • Bridge support for deposits, provider-aware funding flows, and Terms-of-Service gating.
    • Multi-deposit selection with PIX/BR QR code support and per-deposit detail views.
    • New ramp provider buttons and a streamlined type-driven Add Funds flow.
    • Added EUR, GBP, and MXN currency options.
  • Improvements

    • Improved deposit UI: clearer network/asset labels, full-address display, dynamic copy/share behavior, and per-deposit copy actions.
    • Locale-aware disclaimers and expanded Spanish and Portuguese translations for onboarding and deposit flows.

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 13, 2026

🦋 Changeset detected

Latest commit: 1ee521f

The changes in this PR will be included in the next version bump.

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 13, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds provider-aware bridge support across the add-funds flow: new UI components, provider/network URL params, provider-specific onboarding/KYC (bridge vs manteca), multi-deposit ramp quoting (including PIX/BR), server/client API updates, i18n entries, and related utilities/resources.

Changes

Cohort / File(s) Summary
New bridge UI components
src/components/add-funds/AddRampButton.tsx, src/components/add-funds/BridgeDisclaimer.tsx
New components to surface provider-aware funding options and a localized bridge disclaimer with external link handling.
Add-funds pages (provider-aware)
src/components/add-funds/AddCrypto.tsx, src/components/add-funds/AddFunds.tsx, src/components/add-funds/Onboard.tsx, src/components/add-funds/KYC.tsx, src/components/add-funds/Status.tsx
Introduce provider & network URL params, provider-specific flows (bridge vs manteca), TOS handling and redirect capture, and conditional UI/routing changes across onboarding/KYC/status screens.
Ramp deposit UI refactor
src/components/add-funds/Ramp.tsx
Major refactor to support provider-aware quotes, multi-deposit responses, per-deposit detail rows, PIX/BR QR handling, animated deposit toggle, and provider-specific messaging/limits.
AddFunds option components
src/components/add-funds/AddFundsOption.tsx, src/components/add-funds/AddRampButton.tsx, src/components/add-funds/AddFiatButton.tsx
Add disabled prop to option component, add AddRampButton, and remove legacy AddFiatButton.
Shared copy/address sheet API change
src/components/shared/CopyAddressSheet.tsx
Expanded component signature to accept override address, network, networkLogo, and assets; network logo rendering and asset list made conditional.
Onboarding utilities & persona/server
src/utils/completeOnboarding.ts, src/utils/persona.ts, src/utils/server.ts
Generalize onboarding/KYC signatures and flows for provider types; add startAddressKYC; update server client signatures and startRampOnboarding error handling (recognize "invalid address"); adjust persisted token key names.
Resources & config
src/utils/currencies.ts, src/utils/networkLogos.ts, src/utils/queryClient.ts, cspell.json
Add EUR/GBP/MXN currencies, add networkLogos mapping, change dehydrate exclusion to ramp/kyc-tokens, and add CLABE/IBAN to dictionary.
i18n & changeset
.changeset/modern-jeans-write.md, src/i18n/es.json, src/i18n/pt.json
Add changeset and many Spanish/Portuguese translations for deposit/onramp, network, and account copy.
Disclaimer locale tweak
src/components/add-funds/MantecaDisclaimer.tsx
Make terms link locale-aware; conditional disclaimer rendering across flows.
Removed file
src/components/add-funds/AddFiatButton.tsx
Legacy AddFiatButton component deleted.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Client as AddFunds/Onboard/KYC UI
    participant Server
    participant Provider as Bridge/Manteca
    participant KYC as Persona

    User->>Client: Select currency + provider (+network)
    Client->>Server: Fetch ramp providers & tosLink (country, redirectURL)
    Client->>User: Show TOS if bridge / show onboarding UI
    alt Bridge flow (TOS)
        User->>Client: Accept TOS (redirect with signed_agreement_id)
        Client->>Server: startRampOnboarding(provider=bridge, acceptedTermsId, network)
    else Manteca flow
        Client->>Server: startRampOnboarding(provider=manteca)
    end
    Server->>Provider: Initiate onboarding request
    Provider-->>Server: Return inquiryId/sessionToken or none
    alt inquiry present
        Server-->>Client: Tokens (inquiryId, sessionToken)
        Client->>KYC: startAddressKYC or startMantecaKYC (type-based)
        KYC-->>Client: KYC result (complete/cancel/error)
        Client->>Client: Redirect to /add-funds/kyc or /add-funds/status with provider/network
    else no inquiry
        Server-->>Client: No inquiry → redirect to status (pending)
    end
Loading
sequenceDiagram
    participant User
    participant RampUI as Ramp
    participant Server
    participant Provider as Bridge/Manteca
    participant QRModal

    User->>RampUI: Open deposit view (provider, currency, network)
    RampUI->>Server: Request quote + deposits (provider-aware)
    Server->>Provider: Request deposit details
    Provider-->>Server: Return deposits list (PIX/BR/bank/crypto)
    Server-->>RampUI: Deliver quote + deposits
    RampUI->>User: Render deposits + toggle
    alt PIX/BR deposit selected
        User->>QRModal: Open QR modal
        QRModal-->>User: Display QR/BR code
    else bank/crypto deposit
        RampUI->>User: Show account/address rows with copy/share
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • franm91
  • dieguezguille
  • nfmelendez
🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title '✨ app: add bridge support' clearly summarizes the main change—introducing bridge functionality to the app. It is concise, specific, and directly reflects the core purpose of this comprehensive changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bridge-ui

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the add funds functionality by introducing Bridge support and refactoring the fiat onboarding flow. It includes UI improvements, new asset and network logos, and a TOS view for Bridge. The changes allow users to deposit funds from various networks and bank accounts, providing a more seamless and user-friendly experience.

Highlights

  • Bridge Support: This PR introduces support for adding funds via Bridge, allowing users to deposit funds from various networks and receive USDC in their Exa account.
  • Fiat Onboarding: The PR refactors the fiat onboarding flow, enabling users to add funds from their bank accounts and automatically receive USDC in their Exa account.
  • UI Improvements: Several UI enhancements were made, including adding new asset logos, network logos, and a toggle component for selecting deposit networks.
  • Terms of Service: The PR adds a TOS view for Bridge, ensuring users accept the terms and conditions before proceeding with the onboarding process.
Changelog
  • .changeset/modern-jeans-write.md
    • Added changeset to track the addition of bridge support.
  • src/assets/images/ars-back.svg
    • Added the ars-back.svg image for the Argentine Peso.
  • src/assets/images/ars-usdc.svg
    • Removed the ars-usdc.svg image.
  • src/assets/images/background.svg
    • Added the background.svg image.
  • src/assets/images/brl-back.svg
    • Added the brl-back.svg image for the Brazilian Real.
  • src/assets/images/brl-usdc.svg
    • Removed the brl-usdc.svg image.
  • src/assets/images/euro-back.svg
    • Added the euro-back.svg image for the Euro.
  • src/assets/images/pounds-back.svg
    • Added the pounds-back.svg image for the British Pound.
  • src/assets/images/solana-network.svg
    • Added the solana-network.svg image for the Solana network.
  • src/assets/images/stellar-network.svg
    • Added the stellar-network.svg image for the Stellar network.
  • src/assets/images/tron-network.svg
    • Added the tron-network.svg image for the Tron network.
  • src/assets/images/usd-back.svg
    • Added the usd-back.svg image for the US Dollar.
  • src/assets/images/usd-usdc.svg
    • Removed the usd-usdc.svg image.
  • src/assets/images/usdc-centered.svg
    • Added the usdc-centered.svg image.
  • src/assets/images/usdc-front.svg
    • Added the usdc-front.svg image.
  • src/assets/images/usdt-centered.svg
    • Added the usdt-centered.svg image.
  • src/components/add-funds/AddCrypto.tsx
    • Modified AddCrypto component to support bridge deposits and display deposit addresses.
  • src/components/add-funds/AddFiatButton.tsx
    • Removed AddFiatButton component.
  • src/components/add-funds/AddFunds.tsx
    • Refactored AddFunds component to support crypto and fiat deposit options.
  • src/components/add-funds/AddFundsOption.tsx
    • Modified AddFundsOption component to support disabled state.
  • src/components/add-funds/AddRampButton.tsx
    • Added AddRampButton component to handle fiat and crypto ramp options.
  • src/components/add-funds/BridgeDisclaimer.tsx
    • Added BridgeDisclaimer component to display disclaimer for Bridge deposits.
  • src/components/add-funds/KYC.tsx
    • Modified KYC component to support bridge and manteca KYC flows.
  • src/components/add-funds/MantecaDisclaimer.tsx
    • Modified MantecaDisclaimer component to update disclaimer text.
  • src/components/add-funds/Onboard.tsx
    • Modified Onboard component to support bridge onboarding and display terms of service.
  • src/components/add-funds/Ramp.tsx
    • Modified Ramp component to support bridge and manteca ramp flows.
  • src/components/add-funds/Status.tsx
    • Modified Status component to support bridge and manteca status updates.
  • src/components/shared/AssetLogo.tsx
    • Modified AssetLogo component to use chain ID 10.
  • src/components/shared/CopyAddressSheet.tsx
    • Modified CopyAddressSheet component to support bridge deposit addresses and network logos.
  • src/i18n/es.json
    • Added translations for new features and components.
  • src/i18n/pt.json
    • Added translations for new features and components.
  • src/utils/networkLogos.ts
    • Added network logos for Solana, Stellar, and Tron.
  • src/utils/persona.ts
    • Modified persona functions to support bridge and manteca KYC flows.
  • src/utils/queryClient.ts
    • Modified queryClient to persist kyc-tokens.
  • src/utils/server.ts
    • Modified server functions to support bridge and manteca ramp flows.
Activity
  • Added changeset to track the addition of bridge support.
  • Added the ars-back.svg image for the Argentine Peso.
  • Removed the ars-usdc.svg image.
  • Added the background.svg image.
  • Added the brl-back.svg image for the Brazilian Real.
  • Removed the brl-usdc.svg image.
  • Added the euro-back.svg image for the Euro.
  • Added the pounds-back.svg image for the British Pound.
  • Added the solana-network.svg image for the Solana network.
  • Added the stellar-network.svg image for the Stellar network.
  • Added the tron-network.svg image for the Tron network.
  • Added the usd-back.svg image for the US Dollar.
  • Removed the usd-usdc.svg image.
  • Added the usdc-centered.svg image.
  • Added the usdc-front.svg image.
  • Added the usdt-centered.svg image.
  • Modified AddCrypto component to support bridge deposits and display deposit addresses.
  • Removed AddFiatButton component.
  • Refactored AddFunds component to support crypto and fiat deposit options.
  • Modified AddFundsOption component to support disabled state.
  • Added AddRampButton component to handle fiat and crypto ramp options.
  • Added BridgeDisclaimer component to display disclaimer for Bridge deposits.
  • Modified KYC component to support bridge and manteca KYC flows.
  • Modified MantecaDisclaimer component to update disclaimer text.
  • Modified Onboard component to support bridge onboarding and display terms of service.
  • Modified Ramp component to support bridge and manteca ramp flows.
  • Modified Status component to support bridge and manteca status updates.
  • Modified AssetLogo component to use chain ID 10.
  • Modified CopyAddressSheet component to support bridge deposit addresses and network logos.
  • Added translations for new features and components.
  • Added network logos for Solana, Stellar, and Tron.
  • Modified persona functions to support bridge and manteca KYC flows.
  • Modified queryClient to persist kyc-tokens.
  • Modified server functions to support bridge and manteca ramp flows.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

gemini-code-assist[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@sentry
Copy link
Copy Markdown

sentry bot commented Mar 13, 2026

Codecov Report

❌ Patch coverage is 32.25806% with 21 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.62%. Comparing base (587c3bb) to head (1ee521f).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
src/utils/persona.ts 0.00% 15 Missing ⚠️
src/utils/server.ts 16.66% 5 Missing ⚠️
src/components/shared/CopyAddressSheet.tsx 88.88% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #885      +/-   ##
==========================================
+ Coverage   71.60%   71.62%   +0.02%     
==========================================
  Files         228      228              
  Lines        8229     8233       +4     
  Branches     2637     2642       +5     
==========================================
+ Hits         5892     5897       +5     
+ Misses       2107     2106       -1     
  Partials      230      230              
Flag Coverage Δ
e2e 71.61% <32.25%> (+19.23%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

sentry[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

sentry[bot]

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

chatgpt-codex-connector[bot]

This comment was marked as resolved.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6a6936765a

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

sentry[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@franm91 franm91 force-pushed the bridge-ui branch 2 times, most recently from 930c4f8 to 952544f Compare March 31, 2026 19:55
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 952544f668

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 new potential issues.

View 19 additional findings in Devin Review.

Open in Devin Review

@cruzdanilo cruzdanilo merged commit 1ee521f into main Apr 1, 2026
15 of 16 checks passed
@cruzdanilo cruzdanilo deleted the bridge-ui branch April 1, 2026 00:35
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