Skip to content

chore(tokens): drop the unreachable sell branch from the swap success title - #1301

Merged
bmc08gt merged 1 commit into
chore/tear-out-v1-uifrom
chore/drop-dead-sell-branch
Aug 21, 2026
Merged

chore(tokens): drop the unreachable sell branch from the swap success title#1301
bmc08gt merged 1 commit into
chore/tear-out-v1-uifrom
chore/drop-dead-sell-branch

Conversation

@bmc08gt

Copy link
Copy Markdown
Collaborator

Stacked on #1290 — base it there, not code/cash. Merge that first.

#1290 guts TokenInfoScreen.kt (-404 lines), taking the v1 ButtonOptions Sell button with it. That was the only place a SwapPurpose.Sell was ever constructed; the v2 action row offers Give, Convert, and Withdraw. So the swap-processing success title can no longer be reached as a sell.

That title's else arm existed to name the reserve for exactly that case:

isSwapPurpose.Convert-> state.destinationTokenName
isSwapPurpose.BalanceIncrease-> state.tokenName
else-> stringResource(R.string.title_cashReserves)

Now it catches only a sell that can't happen and a null purpose. This makes the two reachable purposes explicit and lets the fallback go unnamed rather than claim a destination it can't have — Fiat.formatted already takes a nullable suffix, so no signature change. title_cashReserves had no other reference and goes with it.

Deliberately left alone

  • SwapPurpose.Sell and BalanceDecrease stay. Sell is unreachable but still referenced by SwapViewModel (5 sites), AppRoute.kt:226, and the still-routed TokenSellReceiptScreen, plus two tests. Deleting the type is a much wider change than this one — worth its own PR. BalanceDecrease is also implemented by Convert.
  • canSell stays — it's a computed property the Convert flow reads at TokenInfoViewModel.kt:336 to gate the "no balance yet" bottom bar.
  • action_sell stays — still used by TokenSellReceiptScreen.kt:74.

Conflict note

feat/usdc-to-dollars-conversion-graphic (commit 602ac8960) touches this same when to suppress the "of " suffix for non-Flexible Buy and reserve-bound Convert. Both changes converge on a nullable suffix, so resolution is mechanical — keep that branch's Buy/Convert arms and this branch's dropped sell fallback.

… title
Tearing out the v1 UI removed the Sell button from the token screen, which
was the only place a SwapPurpose.Sell could be constructed. The v2 action
row offers Give, Convert, and Withdraw, so nothing can reach the success
title as a sell any more.
The title's `else` arm existed to name the reserve for that case. Make the
two reachable purposes explicit and let the fallback go unnamed rather than
claim a destination it can no longer have; the suffix was already optional.
title_cashReserves had no other reference, so it goes with it.
SwapPurpose.Sell itself stays: it is unreachable but still referenced by
SwapViewModel, AppRoute, and the sell receipt screen, so removing the type
is a larger change than this one. canSell stays too — Convert reads it.
@github-actionsgithub-actionsBot added area: tokens Token accounts, balances, token info type: chore Maintenance, config, CI/CD labels Aug 21, 2026
@bmc08gt
bmc08gt merged commit f2399d4 into chore/tear-out-v1-uiAug 21, 2026
3 checks passed
@bmc08gt
bmc08gt deleted the chore/drop-dead-sell-branch branch August 21, 2026 21:47
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: tokensToken accounts, balances, token infotype: choreMaintenance, config, CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@bmc08gt