Original release notes
4.12.0
Minor Changes
- #19309
27da624Thanks @mateuszpalosz-ext! - Private sync flow for Aleo (mobile)
- #19393
4a9eadeThanks @mdomanski-ext-ledger! - test: e2e test aleo add account flow on mobile
- #19373
1f34a90Thanks @jiyuzhuang! - Fix GAM CTA visibility and empty-link click behavior on desktop and mobile
- #19396
25fd71bThanks @amaslakov! - Hide the "Compound" claim-rewards option for Cosmos-family chains that use epoching (wrapped) staking messages, such as Babylon. Compound restaking is not supported on those chains yet - its embedded delegate is not epoching-wrapped - so only "Cash in" (claim rewards) is offered, preventing the "claimRewardCompound is not supported" error.
- #19319
484b715Thanks @LucasWerey! - Fix market category resetting to entry value when navigating back from asset detail
- #19674
12614f3Thanks @LucasWerey! - Fix extra spacing between experimental header and wallet 4.0 top bar
- #19628
8df21c9Thanks @qperrot! - Fix coin control not showing selected coins after entering an amount, and refine the coin control screen layout (subheader sizing, header spacing, and scrollbar gutter)
- #19252
c75213bThanks @dilaouid! - feat(lwm): switch to deviceaction instead of die with FF on new send flow
- #19525
859b960Thanks @sarneijim! - Add large screen upsell modal analytics tracking
- #19548
3934168Thanks @deepyjr! - Fix asset favourites to preserve canonical Market identifiers and migrate DAI V2 favourites.
- #19279
2c28696Thanks @deepyjr! - Fix the dust filter option copy and wrapping on mobile transaction history, and share the dust threshold formatter across apps.
- #19568
45584e4Thanks @liviuciulinaru! - Show an estimated label for configured providers on completed mobile swaps.
- #19672
d7ce552Thanks @claudiiafg! - Fix mobile Jest resolution for @features/flow-contacts via a logic-onlyjest.native.tsstub, Lumen RN source mappings, and updated integration testing docs.
- #19217
e26e68eThanks @qperrot! - families/bitcoin/bridgeExtensions.ts now implements the full edit-transaction contract: getEditTransactionPatch, getEditTransactionStatus, getFormattedFeeFields, hasMinimumFundsToCancel, hasMinimumFundsToSpeedUp, isStrategyDisabled, isTransactionConfirmed.
The Bitcoin edit-transaction helpers (RBF replace/cancel, fee formatting, strategy validation) live under ledger-live-common/src/families/bitcoin/editTransaction/, with unit tests. Desktop & mobile Bitcoin edit flows (Body.tsx, StepFees, StepMethod, MethodSelection, EditTransactionSummary) reach these helpers through getAccountBridge(account) instead of importing them directly.
hasMinimumFundsToCancel / hasMinimumFundsToSpeedUp now return Promise<boolean>. Bitcoin's minimum-funds checks are inherently async (RBF fee lookup) and all call sites already await them; EVM's implementations were updated accordingly.
Bitcoin's isStrategyDisabled uses a slightly different shape than the generic contract, adapted via a thin wrapper (same pattern as EVM): it maps the contract's feeData to Bitcoin's feesStrategy, and its transaction param was widened to accept the real (nullable) feePerByte with a guard. isTransactionConfirmed follows the { account, hash } contract signature directly.
- #19614
8998c72Thanks @jeportie! - Expose the swap transaction-details provider link URL via test/accessibility attributes so E2E can conditionally verify the provider link only when a provider URL exists (QAA-721)
- #19549
195c4e2Thanks @RobinVncnt! - feat(LLM): add large-screen upsell debug tool
- #19621
bc0573eThanks @francois-guerin-ledger! - Fix EVM staking operation history showing the user's own address instead of the staking contract as recipient
- #19264
821c926Thanks @LucasWerey! - test(mobile): remove mocked Detox e2e suite
- #19572
1513e87Thanks @YazhuEth! - Refine coin control screen UI: set the header title to "Coin control" and force its balance to crypto, move strategy/amount labels into their components, add info icon on "Coin to send", disable coin selection when no amount is entered, and fix the custom fees selection failing silently from the coin control screen
- #19362
5b3187aThanks @RobinVncnt! - feat(lwm): upsell eligibility gate (audience + cooldown)
- #19532
12cdc19Thanks @mdomanski-ext-ledger! - feat: aleo tokens support in mobile send flows
- #19220
996c76bThanks @ysitbon! - Make the@ledgerhq/cryptoassetsfiat registry injectable (setFiatCurrenciesStore) and inject the@domain/entity-currency-fiatregistry at each app's bootstrap, so the domain registry is the single runtime source of truth for fiat currency data. The bundled fiat list stays as the fallback and is kept in sync by the existing parity test.
- #19331
71884d7Thanks @ysitbon! - Activate the RTK Query supported-fiats flow and retire the legacy CVS polling path: boot-time query populates the Redux slice; settings and countervalue selectors read from the slice synchronously.
- #19553
68dffc1Thanks @mateuszpalosz-ext! - Aleo UI changes for mobile
- #18924
b2f4ae6Thanks @philipptpunkt! - Fix the endless loading state when navigating back from the Swap success screen. React Navigation v7 pushed a new SwapPendingOperation on top of SwapLoading instead of reusing the existing one, leaving SwapLoading beneath the success screen. Any back gesture - Android system back, iOS swipe-back, or the close (X) button - would pop to SwapLoading and get stuck. The fix replaces the SwapSubScreensNavigator via BaseNavigator so the success screen always starts with a clean [SwapPendingOperation] stack, making all back paths (back button, close button, and via Swap history) return correctly to the Swap input.
- #19414
05a5f76Thanks @tonykhaov! - Stabilize large screen upsell eligibility integration test.
- #19536
f854c29Thanks @amaslakov! - Warn and explain when Tezos staking is blocked by an unfinalizable unstake to another validator: translate the raw fee-estimation error into a clear message, and show an inline warning on the change-validator summary while a pending unstake is still unfinalizable
- #18901
78efe69Thanks @amaslakov! - Add test ids to the Tezos staking-section rows (staked and unstaking) so e2e can target them distinctly from the delegation card
- #19589
9479c28Thanks @sarneijim! - Keep large-screen upsell eligibility read-only and align the fallback CTA link
- #19452
5fb2345Thanks @LucasWerey! - fix multi-network asset countervalues and Asset Detail CTA placement
- #19199
446e2b8Thanks @tonykhaov! - Persist the large-screen upsell modal's frequency state (retries,lastSeenAt) across app restarts on mobile, via a new shared@ledgerhq/live-engagementRedux slice
- #19718
b5540fbThanks @vtaranushenko-ext-ledger! - Fix Aleo mobile send summary to reuse shared UI components and show the Records used / Signing time rows for private transactions

