Skip to content

✨ app: send funds to any network - #1292

Open
dieguezguille wants to merge 12 commits into
mainfrom
lifi
Open

✨ app: send funds to any network#1292
dieguezguille wants to merge 12 commits into
mainfrom
lifi

Conversation

@dieguezguille

@dieguezguille dieguezguille commented Sep 4, 2026

Copy link
Copy Markdown
Member

closes #1205 , closes #92

Summary by CodeRabbit

  • New Features

    • Redesigned the send flow with asset selection, amount entry, recipient details, review, and confirmation screens.
    • Added cross-chain sending, swaps, network filtering, ENS resolution, QR scanning, and network-specific address validation.
    • Added network badges, chain-aware token logos, logo fallbacks, and improved transaction details.
    • Added clearer send labels, fee information, and hold-to-send confirmation on mobile.
  • Bug Fixes

    • Activity data now refreshes when returning to the screen.
    • Improved unsupported-network, route-error, logo, gas-reserve, and amount-calculation handling.

@dieguezguille dieguezguille self-assigned this Sep 4, 2026
@dieguezguille dieguezguille added the enhancement New feature or request label Sep 4, 2026
@changeset-bot

changeset-bot Bot commented Sep 4, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: f9ba0d3

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

This PR includes changesets to release 1 package
Name Type
@exactly/mobile Patch

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

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown

Review Change Stack

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

The mobile send flow was redesigned for asset-first selection, cross-chain routing, ENS and multi-chain receiver validation, amount entry, confirmation, and transaction status handling. Shared asset displays, translations, automation steps, and release metadata were updated.

Changes

Cross-chain send flow

Layer / File(s) Summary
Routing and validation foundation
src/utils/lifi.ts, src/utils/ensOptions.ts, src/utils/executionOptions.ts, src/utils/deployedOptions.ts
LiFi now supports multiple chain types, reachability, route status, bridge denial, native-fee avoidance, and chain-specific receiver validation. ENS resolution and proposal execution polling were added.
Asset and amount selection
src/components/send-funds/Asset.tsx, src/components/send-funds/Amount.tsx, src/components/send-funds/PaySheet.tsx, src/components/send-funds/SwapSheet.tsx, src/components/send-funds/NetworkFilter.tsx
The flow now selects assets and amounts before the receiver. It supports network filters, payment assets, routed amounts, balance checks, and swap confirmation.
Receiver and confirmation flow
src/components/send-funds/Receiver.tsx, src/components/send-funds/QR.tsx, src/components/send-funds/Confirm.tsx, src/app/(main)/send-funds/*
Receiver entry now supports ENS, QR payloads, recent contacts, and non-EVM validation. The confirmation screen prepares, sends, tracks, and renders routed or direct transfers.
Shared display and flow support
src/components/shared/*, src/components/activity/Activity.tsx, src/components/swaps/SelectorModal.tsx, src/i18n/*, .maestro/subflows/send.yaml
Shared components now show chain-aware logos, network details, image fallbacks, and Android text spacing. Localizations and Maestro steps match the redesigned flow.

Estimated code review effort: 5 (Critical) | ~120 minutes

Merge Risk: 🟡 Moderate · up to f9496

The send flow still has a potential non-EVM crash and broken automation coverage, alongside several bounded UI regressions. These should be addressed or explicitly accepted before merge.

Sequence Diagram(s)

sequenceDiagram
  participant Sender
  participant Asset
  participant Amount
  participant Receiver
  participant Confirm
  participant LiFi
  participant Wallet
  Sender->>Asset: select digital asset and network
  Asset->>Amount: open amount screen
  Amount->>Receiver: pass amount and destination token
  Receiver->>Confirm: submit validated receiver
  Confirm->>LiFi: fetch route and fee data
  Confirm->>Wallet: simulate and submit transfer
  Wallet-->>Confirm: return transaction state
  Confirm-->>Sender: show pending, success, or failure result
Loading
🚥 Pre-merge checks | ✅ 3 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning Most changes support cross-network sending or ENS resolution. However, the Activity focus-refresh behavior and the global Android Text font-padding change are unrelated to the linked issue objectives. Remove the unrelated Activity refresh and global Text styling changes, or move them to separate pull requests with appropriate linked issues.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the primary change: enabling sends to any network. It is concise and specific.
Linked Issues check ✅ Passed The changes implement cross-network sending through new asset, receiver, routing, confirmation, chain validation, fee, and status flows [#1205]. They also add ENS name normalization and address resolu…
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch lifi
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch lifi

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 7

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/components/send-funds/SendFunds.tsx (1)

179-179: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Redirect type=crypto to the asset route.

The app’s deep-link flow can navigate to /send-funds?type=crypto, and SendFunds still recognizes this type. The content condition excludes it, while the provider branch handles only "fiat", so the screen renders empty. Redirect type === "crypto" to /send-funds/asset or restore the crypto content branch.


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Team

Run ID: fce624f4-19e3-4928-931b-1ee4971872a4

📥 Commits

Reviewing files that changed from the base of the PR and between 4eaad34 and ca556a6.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (47)
  • .changeset/bold-eagles-design.md
  • .changeset/brave-pandas-listen.md
  • .changeset/calm-deer-return.md
  • .changeset/fresh-owls-divide.md
  • .changeset/keen-swans-review.md
  • .changeset/neat-crabs-paint.md
  • .changeset/shiny-mice-speak.md
  • .changeset/soft-lions-count.md
  • .changeset/warm-bats-share.md
  • .changeset/wise-moths-travel.md
  • .maestro/subflows/send.yaml
  • cspell.json
  • package.json
  • src/app/(main)/send-funds/_layout.tsx
  • src/app/(main)/send-funds/confirm.tsx
  • src/components/activity/Activity.tsx
  • src/components/add-funds/Bridge.tsx
  • src/components/home/AssetList.tsx
  • src/components/home/ExternalAssets.tsx
  • src/components/send-funds/Amount.tsx
  • src/components/send-funds/Asset.tsx
  • src/components/send-funds/Confirm.tsx
  • src/components/send-funds/Contact.tsx
  • src/components/send-funds/Contacts.tsx
  • src/components/send-funds/NetworkFilter.tsx
  • src/components/send-funds/PaySheet.tsx
  • src/components/send-funds/QR.tsx
  • src/components/send-funds/Receiver.tsx
  • src/components/send-funds/RecentContacts.tsx
  • src/components/send-funds/ReviewSheet.tsx
  • src/components/send-funds/SendFunds.tsx
  • src/components/send-funds/SwapSheet.tsx
  • src/components/shared/AssetLogo.tsx
  • src/components/shared/ChainLogo.tsx
  • src/components/shared/SelectSheet.tsx
  • src/components/shared/Text.tsx
  • src/components/shared/TransactionDetails.tsx
  • src/components/shared/UnsupportedNetworksSheet.tsx
  • src/i18n/es-AR.json
  • src/i18n/es.json
  • src/i18n/pt.json
  • src/utils/deployedOptions.ts
  • src/utils/ensOptions.ts
  • src/utils/executionOptions.ts
  • src/utils/lifi.ts
  • src/utils/queryClient.ts
  • src/utils/receiverSchema.ts
💤 Files with no reviewable changes (4)
  • src/components/send-funds/RecentContacts.tsx
  • src/components/send-funds/Contacts.tsx
  • src/components/send-funds/Contact.tsx
  • src/components/send-funds/ReviewSheet.tsx

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

Comment thread .maestro/subflows/send.yaml
Comment thread src/components/send-funds/Asset.tsx Outdated
Comment thread src/components/send-funds/NetworkFilter.tsx
Comment thread src/components/send-funds/Receiver.tsx Outdated
Comment thread src/components/send-funds/SwapSheet.tsx
Comment thread src/components/shared/TransactionDetails.tsx Outdated
Comment thread src/utils/lifi.ts Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Team

Run ID: a5299863-b726-4ef5-8301-bf835f1fe556

📥 Commits

Reviewing files that changed from the base of the PR and between ca556a6 and f728a5e.

📒 Files selected for processing (4)
  • .changeset/swift-otters-index.md
  • src/components/shared/AssetLogo.tsx
  • src/components/swaps/SelectorModal.tsx
  • src/utils/assetLogos.ts

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

Comment thread src/utils/assetLogos.ts Outdated

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

Copy link
Copy Markdown

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: 27fb05e553

ℹ️ 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".

Comment thread src/components/send-funds/Confirm.tsx
Comment thread src/components/send-funds/Confirm.tsx Outdated
Comment thread src/utils/lifi.ts
Comment thread src/components/send-funds/Confirm.tsx
Comment thread src/components/send-funds/Amount.tsx
Comment thread src/components/send-funds/Confirm.tsx Outdated
Comment thread src/components/send-funds/Confirm.tsx Outdated
@codecov

codecov Bot commented Sep 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 70.68966% with 340 lines in your changes missing coverage. Please review.
✅ Project coverage is 73.82%. Comparing base (7acdfff) to head (f9ba0d3).
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
src/components/send-funds/Confirm.tsx 63.29% 185 Missing ⚠️
src/utils/lifi.ts 36.84% 48 Missing ⚠️
src/components/send-funds/Amount.tsx 83.15% 31 Missing ⚠️
src/components/send-funds/Asset.tsx 74.79% 31 Missing ⚠️
src/components/send-funds/Receiver.tsx 84.61% 16 Missing ⚠️
src/components/send-funds/PaySheet.tsx 78.57% 12 Missing ⚠️
src/components/shared/TransactionDetails.tsx 63.63% 4 Missing ⚠️
src/components/shared/AssetLogo.tsx 81.81% 2 Missing ⚠️
src/utils/assetLogos.ts 83.33% 2 Missing ⚠️
src/utils/deployedOptions.ts 0.00% 2 Missing ⚠️
... and 7 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1292      +/-   ##
==========================================
+ Coverage   73.40%   73.82%   +0.41%     
==========================================
  Files         276      280       +4     
  Lines       13463    14299     +836     
  Branches     4711     5265     +554     
==========================================
+ Hits         9883    10556     +673     
- Misses       3241     3404     +163     
  Partials      339      339              
Flag Coverage Δ
e2e 73.82% <70.68%> (+0.41%) ⬆️

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

☔ View full report in Codecov by Harness.
📢 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.

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

Copy link
Copy Markdown

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: fec10f7cdb

ℹ️ 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".

Comment thread src/components/send-funds/Confirm.tsx Outdated
Comment thread src/components/send-funds/Confirm.tsx
Comment thread src/components/send-funds/Confirm.tsx Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Team

Run ID: 8c146abd-c433-46f0-8f55-d234e6755770

📥 Commits

Reviewing files that changed from the base of the PR and between 27fb05e and fec10f7.

📒 Files selected for processing (8)
  • src/components/send-funds/Amount.tsx
  • src/components/send-funds/Asset.tsx
  • src/components/send-funds/Confirm.tsx
  • src/components/send-funds/QR.tsx
  • src/components/send-funds/Receiver.tsx
  • src/components/shared/TransactionDetails.tsx
  • src/utils/assetLogos.ts
  • src/utils/lifi.ts

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

Comment thread src/components/send-funds/Amount.tsx
Comment thread src/components/send-funds/Confirm.tsx Outdated
Comment thread src/components/send-funds/Confirm.tsx Outdated
Comment thread src/components/shared/TransactionDetails.tsx

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Team

Run ID: 5db2f0cd-7df5-4d41-8a6d-4638ca5dbb5d

📥 Commits

Reviewing files that changed from the base of the PR and between fec10f7 and 13584fb.

📒 Files selected for processing (4)
  • src/components/send-funds/Amount.tsx
  • src/components/send-funds/Confirm.tsx
  • src/i18n/es.json
  • src/i18n/pt.json

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.

Comment thread src/components/send-funds/Amount.tsx Outdated
Comment thread src/components/send-funds/Confirm.tsx

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

Copy link
Copy Markdown

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: 13584fbb38

ℹ️ 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".

Comment thread src/components/send-funds/Confirm.tsx Outdated
Comment thread src/components/send-funds/Asset.tsx

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

Copy link
Copy Markdown

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: 76a111f75c

ℹ️ 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".

Comment thread src/components/send-funds/Receiver.tsx Outdated
Comment thread src/components/send-funds/Receiver.tsx Outdated

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

Copy link
Copy Markdown

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: f4718bd014

ℹ️ 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".

Comment thread src/components/send-funds/Confirm.tsx Outdated
Comment thread src/components/send-funds/QR.tsx Outdated
Comment thread src/components/send-funds/Asset.tsx Outdated

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

// #region liquid staked ETH

P1 Badge Remove the prohibited region marker comments

Remove this region marker and the matching markers around both token groups below. The repository explicitly prohibits region markers and all non-static-analysis comments, so these newly added organizational comments violate the applicable project convention.

AGENTS.md reference: AGENTS.md:L94-L96

ℹ️ 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".

Comment thread src/components/send-funds/Confirm.tsx Outdated
Comment thread src/utils/executionOptions.ts
Comment thread src/components/send-funds/Amount.tsx Outdated
@chatgpt-codex-connector

Copy link
Copy Markdown

💡 Codex Review

const found = chains?.find((item) => item.id === chainId);
return found && { name: found.name, explorer: found.metamask.blockExplorerUrls[0] };

P2 Badge Fall back to source-chain metadata for direct sends

When a held asset is sent directly from an Alchemy-supported chain that LI.FI does not return, this lookup leaves network undefined even though the asset selector deliberately permits that send. The completed transaction then has no network name and its explorer action silently does nothing, preventing the user from inspecting the transfer; fall back to alchemyChainById metadata for the source chain.


function Back() {

P1 Badge Inline the single-use back component

The new Back component has exactly one call site—the chain-metadata error branch—and does not encapsulate a project-wide invariant, so inline it at that call site rather than adding a standalone component. The repository explicitly requires single-use functions to remain at their point of consumption.

AGENTS.md reference: AGENTS.md:L115-L120


- runFlow:
file: ../subflows/send.yaml
env: { asset: USDC, to: "${output.owner}", amount: "5", pay: EXA }

P1 Badge Make the Anvil EXA balance visible before selecting it

This new critical-flow case mints EXA directly to the account and then asks send.yaml to select EXA in the pay picker, but balancesOptions is disabled on anvil.id (src/utils/lifi.ts:140) and usePortfolio builds external assets exclusively from that query (src/utils/usePortfolio.ts:49,100-109). Because the mint does not create a protocol deposit, the picker never renders the expected EXA, … available row and the local flow stalls; provide an Anvil balance source/mock before exercising this case.

ℹ️ 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".

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

Copy link
Copy Markdown

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: c19056da76

ℹ️ 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".

}
if (!destinationToken) return;
const family = correlate(destinationToken.symbol);
return candidates.find((item) => correlate(item.symbol) === family) ?? candidates[0];

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Skip unpriced assets during automatic pay selection

When the destination is selected first and an owned asset with a correlated symbol has a missing or zero price, this selects that asset before considering a priced fallback. The subsequent conversion makes fromAmount zero, leaving Continue disabled without an error even when another eligible priced asset could fund the send; choose a correlated candidate with a usable price or fall back to a priced candidate.

Useful? React with 👍 / 👎.

Comment thread src/components/send-funds/Confirm.tsx
Comment on lines +182 to +185
const fromAmount = routed
? payPrice > 0n
? (usdAmount * 10n ** BigInt(payDecimals)) / payPrice
: 0n

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Quote the entered destination amount exactly

For every routed send, this derives the source amount only from the two tokens' USD prices and then requests an exact-input quote. Because the quote applies the 0.25% integrator fee plus bridge or swap costs, entering 100 destination tokens can produce less than 100 tokens for the recipient even though that was the amount selected on this screen. Request an exact-output route using destinationAmount, or gross up the source amount so the quoted minimum preserves the entered transfer amount.

Useful? React with 👍 / 👎.

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

Copy link
Copy Markdown

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: f9ba0d3faa

ℹ️ 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".

Comment thread src/utils/lifi.ts
Comment on lines +81 to +85
for (const { supportedChains } of bridges) {
for (const { fromChainId, toChainId } of supportedChains) {
origins.add(fromChainId);
if (fromChainId === (chain.id as ChainId)) destinations.add(toChainId);
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Include destinations reachable from held source chains

When a user holds funds on an external chain, a destination reachable from that chain is omitted unless the home chain can also reach it, because destinations only collects pairs whose source is chain.id. Asset.tsx uses this set for its popular destination assets even though Amount.tsx permits deployed external assets as payment sources, so a valid route such as external chain A → destination B cannot be started when home → B is unsupported. Preserve source/destination pairs or include destinations reachable from eligible held origins.

Useful? React with 👍 / 👎.

Comment on lines +105 to +108
: action === undefined
? recipient
: action === "transfer"
? (new URLSearchParams(query).get("address") ?? "")

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reject payment QRs with mismatched token or amount

When scanning an EIP-681 ERC-20 request such as ethereum:<token>@<chain>/transfer?address=<recipient>&uint256=<amount>, this branch extracts only the recipient while the router retains the asset and amount selected before scanning. A token payment request can therefore proceed with a different token or amount unless the user catches the mismatch on the review screen. Validate the encoded contract and amount against the selected transfer, apply them, or reject payment-request QRs and accept only address locators.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

app: send funds to any network ui: add ens domain resolution on withdraw addresses

1 participant