[9] feat(checkout): use any route for wallet payments, EVM-only#794
[9] feat(checkout): use any route for wallet payments, EVM-only#794tomiiide wants to merge 7 commits into
Conversation
🦋 Changeset detectedLatest commit: a622864 The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
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 |
3b2e1c7 to
434a835
Compare
fb8bb22 to
9d790dc
Compare
- Wallet flow drops the Intent-Factory-only exchange override; the deposit flows (transfer/exchange/cash) keep it. - Records with no deposit address poll status by tx hash, deriving cross-chain bridge hints from the frozen route; resume opens the status page by hash. - Wallet records now always persist the frozen quote so those hints are available to the activity list and resume.
- Pre-fills the recipient with the connected account matching the destination ecosystem when the integrator leaves it user-settable; the field stays editable. - Falls back to the manual "where to send it" prompt when no connected account matches the destination chain.
Stops the seeded default (e.g. USDC) from rendering pre-highlighted; a per-flow tokenSelected flag gates it until a genuine tap.
Fixes already-connected wallets being unselectable: the old commit only fired on a new connection event, never for an existing wallet.
- Poll relayer/gasless routes by taskId, not as a txHash (distinct keys in the SDK status API), so they no longer hang on NOT_FOUND - Resume an unfinished wallet route (in flight or failed) on the execution page so the SDK re-prompts/retries, instead of the poll-only status page - Re-seed an evicted route from the 24h snapshot before resuming
- Force chains.types to EVM-only; cascades to chains, tokens, routes, wallets - Hide native gas token in transfer/exchange/cash flows (IF can't accept it) - Wallet menu now honors chains.types ecosystem allow/deny config
9d790dc to
a622864
Compare
434a835 to
08cd204
Compare
Checkout manual testing — findingsDid a first manual pass on this branch. Tested so far:
This is a first pass, not exhaustive — more testing will follow (see "Not tested yet" below). Findings so far: 🐞 Bugs (widget)1. Back from the refund screen lands in a "Transaction details" limbo 2. Cancel-from-Transak → first Back press does nothing 3. Cash flow doesn't forward amount/currency to Transak ℹ️ Known issues (not widget bugs — for reference)
🧪 Not tested yetThis branch's changes still to verify (#794):
General:
Blocked on a test account / payment method:
|
🐛 Mesh deposit flow — UI flicker on the failure→refund transitionTested the Mesh (exchange) handoff e2e with real funds. Final "Refund complete" screen is correct, but on the way there the UI briefly shows funds-received → regresses to a loading/watching spinner → then the refund screen. Root cause (IF, already known — not a new bug): the deposit-address Widget resilience gap (this is the part we can fix here): the status hook treats any const resolvedStatus = data && data.status !== 'NOT_FOUND' ? data : undefinedSo one regressive This makes the UX resilient regardless of the IF fix timeline. |
|
Which Linear task is linked to this PR?
N/A
Why was it implemented this way?
This branch builds on
checkout/08-activity-and-polishand adds the wallet-any-route work plus an EVM-only restriction for checkout.chains.typesto EVM-only, cascading to chain lists, token lists, route quotes, and the wallet menu (which now honorschains.types). The native gas token is hidden from source-token selection in the IF deposit flows, since IF cannot accept it; the wallet flow keeps full token support.Token-type filtering is handled naturally by the existing chain-type config rather than a parallel token allow-list, reusing
useTokens/useChains/useAvailableChains.Visual showcase (Screenshots or Videos)
Not included; UI changes are funding-source/token-list filtering. Recommend a manual pass in the playground to confirm non-EVM chains/wallets/tokens are hidden and an EVM to EVM quote resolves.
Checklist before requesting a review