Skip to content

live-mobile@4.12.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Jul 08:50
4ded632

4.12.0

Minor Changes

  • #19309 27da624 Thanks @mateuszpalosz-ext! - Private sync flow for Aleo (mobile)

  • #19411 ca37cfe Thanks @dilaouid! - fix(algorand): not opt in asa error message

  • #19393 4a9eade Thanks @mdomanski-ext-ledger! - test: e2e test aleo add account flow on mobile

  • #19373 1f34a90 Thanks @jiyuzhuang! - Fix GAM CTA visibility and empty-link click behavior on desktop and mobile

  • #19396 25fd71b Thanks @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 484b715 Thanks @LucasWerey! - Fix market category resetting to entry value when navigating back from asset detail

  • #19674 12614f3 Thanks @LucasWerey! - Fix extra spacing between experimental header and wallet 4.0 top bar

  • #19628 8df21c9 Thanks @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)

  • #19469 a8a1e70 Thanks @deepyjr! - Fix Contacts entry config test expectations

  • #19252 c75213b Thanks @dilaouid! - feat(lwm): switch to deviceaction instead of die with FF on new send flow

  • #19525 859b960 Thanks @sarneijim! - Add large screen upsell modal analytics tracking

  • #19548 3934168 Thanks @deepyjr! - Fix asset favourites to preserve canonical Market identifiers and migrate DAI V2 favourites.

  • #19279 2c28696 Thanks @deepyjr! - Fix the dust filter option copy and wrapping on mobile transaction history, and share the dust threshold formatter across apps.

  • #19568 45584e4 Thanks @liviuciulinaru! - Show an estimated label for configured providers on completed mobile swaps.

  • #19672 d7ce552 Thanks @claudiiafg! - Fix mobile Jest resolution for @features/flow-contacts via a logic-only jest.native.ts stub, Lumen RN source mappings, and updated integration testing docs.

  • #19217 e26e68e Thanks @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. 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 8998c72 Thanks @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 195c4e2 Thanks @RobinVncnt! - feat(LLM): add large-screen upsell debug tool

  • #19621 bc0573e Thanks @francois-guerin-ledger! - Fix EVM staking operation history showing the user's own address instead of the staking contract as recipient

  • #19264 821c926 Thanks @LucasWerey! - test(mobile): remove mocked Detox e2e suite

  • #19572 1513e87 Thanks @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 5b3187a Thanks @RobinVncnt! - feat(lwm): upsell eligibility gate (audience + cooldown)

  • #19532 12cdc19 Thanks @mdomanski-ext-ledger! - feat: aleo tokens support in mobile send flows

  • #19519 63792ba Thanks @cfloume! - fix: prevent Q2 tour from showing to users who haven't onboarded

  • #19220 996c76b Thanks @ysitbon! - Make the @ledgerhq/cryptoassets fiat registry injectable (setFiatCurrenciesStore) and inject the @domain/entity-currency-fiat registry 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 71884d7 Thanks @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 68dffc1 Thanks @mateuszpalosz-ext! - Aleo UI changes for mobile

  • #19486 b3557c0 Thanks @deepyjr! - Filter incoming and outgoing dust transactions in history.

  • #18924 b2f4ae6 Thanks @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 05a5f76 Thanks @tonykhaov! - Stabilize large screen upsell eligibility integration test.

  • #19419 0040b67 Thanks @deepyjr! - Filter incoming native dust transactions in operation histories.

  • #19536 f854c29 Thanks @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 78efe69 Thanks @amaslakov! - Add test ids to the Tezos staking-section rows (staked and unstaking) so e2e can target them distinctly from the delegation card

  • #19589 9479c28 Thanks @sarneijim! - Keep large-screen upsell eligibility read-only and align the fallback CTA link

  • #19452 5fb2345 Thanks @LucasWerey! - fix multi-network asset countervalues and Asset Detail CTA placement

  • #19199 446e2b8 Thanks @tonykhaov! - Persist the large-screen upsell modal's frequency state (retries, lastSeenAt) across app restarts on mobile, via a new shared @ledgerhq/live-engagement Redux slice

  • #19718 b5540fb Thanks @vtaranushenko-ext-ledger! - Fix Aleo mobile send summary to reuse shared UI components and show the Records used / Signing time rows for private transactions

  • #19228 3fc5836 Thanks @lysyi3m! - Fix Tezos account.getPublicKey (Wallet API): resolve the account public key from xpub instead of seedIdentifier, which is derived from a different path (44'/1729'/0') and returned the same wrong address for every Tezos account. When xpub does not contain a valid base58 Tezos public key (edpk/sppk/p2pk), the request is rejected with a dedicated AccountPublicKeyUnavailable error and Ledger Live surfaces it natively (error modal on desktop, bottom modal on mobile), prompting the user to re-add the account instead of failing silently. The per-family resolver map is retained for chains that need bespoke retrieval. Also stop seeding xpub with the address on Tezos QR import.

  • #19370 cd43e66 Thanks @pawell24! - Rename "Ledger by Chorus One" to "Ledger by Bitwise" following Bitwise's acquisition of Chorus One

  • #19397 b95ee6f Thanks @mcayuelas-ledger! - Add ledgerlive://paytab deeplink to open the Pay Tab when the lwmPayTab feature flag is enabled. Falls back to the Card page when the flag is off.

  • #19606 65999f4 Thanks @cfloume! - chore: update copy for large screen upsell

  • #19593 821dcb1 Thanks @claudiiafg! - Fix Analytics chart header to show Total balance label, scaled cents, scrub-driven balance and date updates, and remove the chart scrubber tooltip.

  • #19478 96bcef8 Thanks @claudiiafg! - Add Contacts feature flag debug controls in Settings > Debug.

  • #19672 2b676ff Thanks @claudiiafg! - Add My Wallet Contacts entry and gated empty Contacts page shell backed by domain contacts state.

  • #19390 7a59137 Thanks @claudiiafg! - Add Mobile Contacts MVVM feature flag gate for lwmContacts entry configuration.

  • #19349 b3651ff Thanks @claudiiafg! - Display percentage evolution alongside absolute values in the LWM PnL detail drawer on Asset Detail and Analytics pages.

  • #19429 4668086 Thanks @LucasWerey! - Add sell button to asset detail footer — expose availableOnSell in useTradeAvailability and wire sell CTA through useFooterViewModel and MoreOptionsBottomSheet

  • #19611 85f1dc1 Thanks @mateuszpalosz-ext! - updated useAleoPrivateSync wrapper for mobile Aleo

  • #19074 dcacbc9 Thanks @Moustafa-Koterba! - feat(solana): add a cause to network error

  • #19569 fcc75ef Thanks @deepyjr! - Add the routed Mobile empty Contacts list.

  • #19665 c023e46 Thanks @qperrot! - Block the send Summary CTA on any transaction-status error.

    The Summary screen previously gated its Continue button on a named allowlist of error keys (transaction, NotEnoughGas, NotEnoughBalance, sender/recipient) that omitted others such as gasLimit. As a result a FeeNotLoaded error — raised by getTransactionStatus when gas estimation fails (e.g. an EVM eth_estimateGas revert leaving gasLimit = 0) — was not enforced, letting the user proceed to sign an unexecutable transaction. Desktop already disables on any error; the Summary CTA now does the same, so every current and future status error blocks the flow by default.

  • #19277 77c8a26 Thanks @ishaba! - Celo Custom-fees "Pay fees in" options now show a currency icon and held balance for native CELO and each allowlisted fee token, on desktop and mobile. The generic FeeAssetOption contract gains two optional fields (currency, balance); the UI formats the raw balance with the user's locale. Coins that don't set them render exactly as before.

  • #19285 5266e9e Thanks @qperrot! - Fix: double error when edit transaction is failing, and show the correct "Invalid transaction" error (instead of "Transaction already validated") when editing an EVM or Bitcoin transaction fails at broadcast, to match the desktop behavior

  • #19504 4318712 Thanks @RobinVncnt! - fix(mobile): product tour sheet cut off on small screens

  • #19653 5bd897e Thanks @mateuszpalosz-ext! - added balance summary header for Aleo tokens

  • #19685 c9f7d49 Thanks @koda-apps! - BUmp to lumen latest versions

  • #19552 279b755 Thanks @gre-ledger! - Migrate @ledgerhq/client-ids to DDD domain packages: @domain/entity-client-identity and @domain/api-push-devices

  • #19406 eefaded Thanks @mcayuelas-ledger! - migrate cmc-client from @ledgerhq/live-common to DDD architecture, introducing dedicated domain packages for market-sentiment and altcoins-sentiment entities, APIs, and fear-and-greed flow utilities

  • #19682 eb2a360 Thanks @cfloume! - Include LWD and LWM product tour feature flags in analytics attributes.

  • #19499 54c5680 Thanks @jiyuzhuang! - Fix duplicate contentcard_clicked events by deduping in-flight click tracking and isolating top-wallet banner dismiss from CTA presses

  • #19586 82732bd Thanks @sarneijim! - Fix a typecheck failure in large-screen upsell modal content tests by replacing optional-call resolver invocation with a safely narrowed function reference.

  • #19650 ee5241c Thanks @vtaranushenko-ext-ledger! - Add the Aleo private-send quick amount selector (Fast/Balanced/Full record tiers and spendable balance summary) to the mobile Amount screen, matching desktop.

  • #19554 c07faa6 Thanks @sarneijim! - Align large-screen upsell app-start modal tracking names with the corrected plan while keeping retries and throttling analytics properties.

  • #19566 4bd171f Thanks @sarneijim! - Fix large-screen upsell CTA to reset retries only after successful URL navigation

  • #19442 6893f21 Thanks @qperrot! - Fix: solana amount when withdraw from a desactivated delegation

  • #19307 36ffa3a Thanks @RobinVncnt! - fix: post onboarding hub auto dismiss

  • #19641 a2b1a97 Thanks @LucasWerey! - Add card domain entity with dedicated Redux slice plugged into the store

  • #19522 9972485 Thanks @LucasWerey! - Add testIDs to CryptoAddressesListItem, AddressAccountItem, CryptoAddressesButton, OperationsListItem, and CryptoAddressesEmptyState for e2e test targeting

  • #19391 8e9d34c Thanks @vtaranushenko-ext-ledger! - Fix the Aleo add-account Cancel confirmation not navigating away once confirmed, and add the same confirm-before-quit modal to the ViewKeyApprove screen's Cancel button

  • #19475 d2c3ffa Thanks @VicAlbr! - Add SUI delegate and undelegate e2e tests for LWD and LWM, with supporting testIds

  • #19306 fe81e9a Thanks @vtaranushenko-ext-ledger! - Add a "No Accounts Added" screen to the Aleo mobile add-account flow, shown when view-key approval resolves zero accounts to add

  • #19518 1452ab7 Thanks @dilaouid! - feat(lwm): open MAD on send on asset detail page

  • #18831 17a58a8 Thanks @deepyjr! - Add Wallet 4.0 asset aggregation and detail mobile E2E coverage.

  • #19535 aad4488 Thanks @mdomanski-ext-ledger! - refactor: navigation and route from hooks in aleo mobile screens

  • #19496 0b48c73 Thanks @deepyjr! - Move Contacts feature flag parameter normalization and updates into the shared flow package for both debug tools.

  • #19526 03c1e65 Thanks @sarneijim! - Fix Recover intro bottomsheet button tracking to use stable analytics identifiers.

  • #19495 c9aec57 Thanks @YazhuEth! - Fix Stellar "Issuer is invalid" (and wrong lowercase asset code) when adding an asset. The add-asset screens parsed the case-sensitive Stellar code and issuer out of the CAL token id, which CAL lowercases; read them from the case-preserved token fields (name and contractAddress) instead. Also disable the desktop "Continue" button until an asset is selected.

  • #19221 090ed18 Thanks @Sebastien-Dav1d! - Add a new page in the debug menu to open DevTools

  • #19345 6777c99 Thanks @mdomanski-ext-ledger! - feat: aleo public send flow

  • #19449 65e8b15 Thanks @philipptpunkt! - Fix minor UI issues on the Swap transaction status dialog on Desktop (canvas-sheet background and spacing below the main button). Forward a swapId from the swapRedirectToHistory handler to the Swap History screen on both Desktop and Mobile so the transaction status dialog/drawer opens automatically for the matching operation.

  • #19232 91771ee Thanks @beths-ledger! - Pass the swapToEarn feature flag to the Earn app as a { enabled, params? } object, consistent with how other flags are forwarded

  • #19458 a9f802d Thanks @ysitbon! - Repoint mobile currency reads to @features/platform-currencies, @domain/entity-currency-crypto and @domain/entity-currency-fiat

  • #19479 b2fb16f Thanks @vtaranushenko-ext-ledger! - Wire real private sync into the Aleo mandatory private sync screen, replacing the fixed 2s mock delay with an actual refresh of unspentPrivateRecords before a private send

  • #19571 436ca20 Thanks @sarneijim! - Backfill missing onboarding date to enforce large-screen upsell cooldown

  • #19513 6e7c51a Thanks @mcayuelas-ledger! - Add @features/flow-card package with CardScreen component integrated into the PayTab on desktop and mobile.

  • #19275 2c79418 Thanks @sarneijim! - Support token asset detail deeplinks safely: parse and sanitize market/asset deeplink URLs (preserving token id case and avoiding ReDoS)

  • #19350 39fd558 Thanks @mdomanski-ext-ledger! - fix: aleo fmt

  • #19363 e2beecc Thanks @mateuszpalosz-ext! - Fix iOS errors by polyfilling AbortSignal.throwIfAborted

  • #19381 d3ae2f5 Thanks @mcayuelas-ledger! - feat(mobile): add Pay tab to main navigation bar (Wallet 4.0) behind lwmPayTab feature flag

  • #19298 43d4872 Thanks @mdomanski-ext-ledger! - feat: aleo mobile send flow customization

  • #19265 3de7f74 Thanks @tonykhaov! - Improve mobile content card QA diagnostics and debug card handling

  • #19354 0ed0273 Thanks @mateuszpalosz-ext! - add a private/public transaction type badge to Aleo operation status icons on mobile

Patch Changes