Repository navigation
feat(wallet): wallet 3.0 cleanup — gating, coming soon, back nav, alias error - #70
Merged
Merged
Conversation
Carry origin (home/profile/card) and list flag through account routes; back no longer bounces through the single-account redirect.
Alias lookup throws a 404 instead of resolving empty, so the not-found branch never ran and the raw E_ALIAS_NOT_FOUND code reached the toast.
US options in send, top-up and add-product are disabled with a coming soon badge; the US routes render a coming soon screen when opened directly, and the US section is dropped from legal fees.
Top-up, send and BRE-B are gated by layout routes (direct URLs included), home quick actions, card creation and add-product are disabled until the user holds an active pocket.
Product pickers only offer active pockets; a single pocket is used by default, several prompt a choice, and a ledgerId from the URL is only honored when it belongs to one of the user's pockets.
Top-up destinations, send sources, BRE-B payout sources, own-account transfer destinations and BRE-B deposit keys only consider active pockets.
A single pocket is selected by default; with several, the user must choose one before sending.
Bloque Friends defaults to COP with USD disabled, own-account transfers are disabled while a USD balance is selected, and cards can't switch their preferred asset to USD.
Card tab and card details render a coming soon screen (direct URLs included) and the card option in add-product is disabled.
Send and top-up list a Mexico group with SPEI as a disabled, coming soon method.
This was referenced Sep 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The wallet exposed flows the backend can't serve yet (US rails, Plaid, USD movements, cards) and flows that fail without a virtual account. The back button on account detail looked dead, and an unknown alias in Bloque Friends surfaced the raw
E_ALIAS_NOT_FOUNDcode.Linear: https://linear.app/bloque/issue/BQE-2713/cambios-en-la-wallet-30
How it works
from: home/profile/card, pluslist), so back returns to where the user came from instead of bouncing through the single-account redirect on/accounts.topup/route.tsx,send/route.tsx,breb-keys/route.tsx) wrap every child inRequireVirtualAccount, which only renders the flow once the user holds an active pocket. Direct URLs are covered.useAccountPicker({ requireVirtualAccount: true })restricts every product and money-movement picker to active pockets. With one pocket it is used by default; with several the user picks.src/config/features.ts:US_RAILS_ENABLED,USD_MOVEMENTS_ENABLED,CARDS_ENABLED, allfalse.status/code/message) rather thaninstanceof, and rawE_*codes never reach a toast.Changes
ledgerIdfrom the URL is only honored if it's one of the user's pockets.CARDS_ENABLEDis false.Dev requirements
bun install: the SDK must resolve to 0.13.3 perpackage.jsonoverrides.routeTree.gen.tsregenerated for the new layout routes.Risk
active(the gate polls every 3s while one is pending).CARDS_ENABLEDis false./convertis still reachable by direct URL (no UI entry point); left as is on purpose.