Skip to content

live-mobile@4.11.0

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Jul 14:17
6c7af69

4.11.0

Minor Changes

  • #19030 9af0e8a Thanks @mitchellv-ledger! - Fix hasEnabledOsNotifications being intermittently tracked as false after the user enabled OS notifications

  • #19029 a832b69 Thanks @mateuszpalosz-ext! - selfTransfer button for Aleo (without any logic)

  • #19180 343208d Thanks @Valentin-Ledger! - Update borrow entry point copy and icon in Portfolio, and move the borrow section into the Wallet Assets group on mobile

  • #18987 98ee95c Thanks @Valentin-Ledger! - Add borrowFeature analytics property derived from the ptxBorrowLiveApp feature flag, included in identify traits and track events on both desktop and mobile.

  • #19079 b713054 Thanks @Valentin-Ledger! - Forward device safe-area insets (top/bottom/left/right) as query params to the Borrow live app webview so the embedded app can offset notches and the home indicator, and add a safe-area-aware bottom padding to the Borrow card on the Portfolio screen when the operations list owns the screen footer.

  • #19101 4b615c2 Thanks @dilaouid! - fix(lwdm): fix countervalue magnitude in the new send flow

  • #19015 a2621e2 Thanks @RobinVncnt! - feat: lwm ledger sync feature flag clean up

  • #19087 b98cce3 Thanks @YazhuEth! - Use the node's min relay fee as the minimum for manual Bitcoin-family fees in the send flow (BTC falls back to 1 sat/vB). A fee below it is now rejected in the form instead of at broadcast.

  • #19142 2abe834 Thanks @claudiiafg! - Add Lumen portfolio chart to mobile Analytics when PnL is enabled, with balance header and range-aware variation (first receive baseline for all-time).

  • #18910 b73e553 Thanks @deepyjr! - Set the Wallet 4.0 portfolio balance amount display to small for long balances.

  • #18854 f1f4094 Thanks @jiyuzhuang! - Fix analytics consent privacy policy footer link wrapping with inline Trans markup

  • #19627 8e3b521 Thanks @live-github-bot! - Merge release branch into hotfix support branch, resolving version and changelog conflicts

  • #18917 3b9ad8e Thanks @YazhuEth! - celo: deprecate the "Ledger by Figment" validator. It is no longer shown or selectable in the vote flow and is never the default — the validator list is now ranked by TVL with none selected by default. Existing delegations remain fully manageable (unvote / unlock / withdraw).

  • #18856 c0c3a63 Thanks @dilaouid! - chore(lwdm): remove all evm mention in the new send flow

  • #19231 70a706e Thanks @gre-ledger! - Remove unused USE_LEARN_STAGING_URL env var

  • #18887 8b6614e Thanks @lysyi3m! - Remove the concordiumVerifyAddress feature flag and its "address verification unavailable" fallback. On-device address verification is now the unconditional path for all Concordium accounts.

  • #19324 5c5064f Thanks @mcayuelas-ledger! - Resolve crypto counter-values by Ledger id instead of ticker, and migrate existing users' persisted crypto counterValue (BTC/ETH) to ids. Fiats keep ticker-based resolution.

  • #19256 7a3c4a5 Thanks @mateuszpalosz-ext! - private sync for mobile Aleo part 1

  • #19037 e1dfe0d Thanks @mdomanski-ext-ledger! - feat: mobile operation details parser for aleo

  • #19062 5ccd2a9 Thanks @abdurrahman-ledger! - Extract E2E test-support code out of @ledgerhq/live-common

    Moved the E2E enums, models, family helpers and speculos/device utilities that lived under
    @ledgerhq/live-common/e2e/* into a new dedicated, private package @ledgerhq/live-e2e-shared
    (located under e2e/, alongside the Desktop and Mobile E2E suites). This keeps test-only code
    out of live-common, which is in maintenance mode.

    • @ledgerhq/live-common: removed the internal ./e2e export.
    • @shared/feature-flags: now exports getAllFeatureFlags (previously in the live-common e2e
      module), so production debug tooling no longer depends on test code.
    • ledger-live-desktop: the devices reducer now derives the Speculos device model from a small
      local map instead of importing from the e2e module.
    • Desktop/Mobile apps and E2E suites now import from @ledgerhq/live-e2e-shared.
  • #19184 6400154 Thanks @francois-guerin-ledger! - Promote the EVM edit-transaction (speed-up / cancel) helpers to the bridge contract.

    AccountBridgeExtensions is now generic over the transaction type and exposes the app-facing edit-transaction methods (getEditTransactionPatch, getEditTransactionStatus, getFormattedFeeFields, hasMinimumFundsToCancel, hasMinimumFundsToSpeedUp, isStrategyDisabled, isTransactionConfirmed). The implementations move out of @ledgerhq/coin-evm into ledger-live-common (families/evm), and every app/LLC call site now reaches them through getAccountBridge(account) instead of importing @ledgerhq/coin-evm/editTransaction/*. The contract uses only base types so other families (e.g. Bitcoin RBF) can implement the same surface later.

  • #18795 fae5dd7 Thanks @dilaouid! - feat(lwm): remove step signature

  • #18630 e6566ff Thanks @Moustafa-Koterba! - [LWM] feat(mobile): add tracking part 1

  • #18934 edebe91 Thanks @dilaouid! - feat(lwdm): restore recent address store for lwdm

  • #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.

  • #19220 2ac4833 Thanks @ysitbon! - Add supported-fiats RTK slice to @domain/entity-currency-fiat; wire currencyFiatApi onQueryStarted to dispatch it; register currencyFiatApi in desktop and mobile stores with cvsApiExtra extraArgument composition.

  • #19141 2caa65c Thanks @jiyuzhuang! - Fix content card displayedPosition analytics by stripping Braze string values in sanitizeExtras and finalizing numeric indices at the tracking gateway (mobile trackContentCardEvent, desktop trackContentCard) instead of at each call site.

  • #18034 b5e3155 Thanks @philipptpunkt! - Fix the Swap history "Previous" button playing the forward (push) transition instead of the back (pop) one in Wallet 4.0. The history sub-screen is pushed on top of Main, so we now pop the parent navigator instead of resetting it, restoring the correct left-to-right back animation.

  • #18786 8d7f2b3 Thanks @jiyuzhuang! - Fix top_wallet content card canvas_name and canvas_step_name tracking

  • #18484 ed4e13f Thanks @jiyuzhuang! - Fix top_wallet content card tracking location (page/location) for contentcard click & dismiss events

  • #18996 3f92956 Thanks @deepyjr! - Add Mobile transaction history dust filtering controls behind a feature flag.

  • #19272 e2d74f7 Thanks @francois-guerin-ledger! - chore(coin-evm): raise an error if gas price is less than the network minimum

  • #19036 addef52 Thanks @mcayuelas-ledger! - remove marketbanner param from wallet4.0 FF

  • #19063 eab9b13 Thanks @dilaouid! - chore(llc): refactor useFeePresetFiatValues to use in both LWDM

  • #18931 c20552b Thanks @LucasWerey! - Global Search now surfaces testnets when developer mode is enabled, mirroring the Receive flow's DADA query logic (includeTestNetworks + staging environment). Fixes LIVE-33199.

  • #17924 b5562ca Thanks @iqbalibrahim-ledger! - [LIVE-30528] Unnest FlatList in SelectableAccountsList to fix account rows disappearing on the "Select the accounts you want to add" screen after RN 0.81 / React 19 upgrade.

  • #18953 81373c1 Thanks @RobinVncnt! - opt-in notification feature flag clean up

  • #19088 6d8f705 Thanks @vtaranushenko-ext-ledger! - Add view key warning screen to Aleo add-account flow on mobile

  • #18837 cdcbce9 Thanks @mitchellv-ledger! - Migrate DesyncOverlay to mvvm in lwm

  • #18981 ac5a7fa Thanks @koda-apps! - Fix Large Movers supply values showing duplicated ticker and missing space between value and ticker.

  • #19072 cca8dc3 Thanks @LucasWerey! - Remove the WalletTabNavigator: with the Market tab gone, the wallet tab was a navigator wrapping a single Portfolio screen. The Portfolio screen is now rendered directly under the ScreenName.Portfolio route via the new PortfolioRootScreen wrapper (which keeps the portfolio chrome — header, gradient, balance sync, scroll manager), and the route is reclassified from a NavigatorName to the existing ScreenName.Portfolio screen. Also removes the dead NavigatorName.Market references left under the wallet tab (param list, deeplink linking config, transfer drawer analytics), routes the bare market deeplink fallbacks through handleMarketBannerDeeplink, and renames the navigateToPortfolioWalletTab helper to navigateToPortfolio.

  • #18965 cc01b77 Thanks @ishaba! - perf(sui): populate staking extras at sync, drop per-drawer transaction(digest:) re-fetch

  • #19007 f495213 Thanks @ysitbon! - Inject the domain-backed crypto-currency registry (@domain/entity-currency-crypto) at app bootstrap via setCryptoCurrenciesStore, making the domain registry the runtime source of truth for currency data. The bundled data in @ledgerhq/cryptoassets stays as the fallback.

  • #18568 6ddd641 Thanks @gre-ledger! - feat(lkrp): per-application close on Wallet Sync deactivation

    Deactivating Wallet Sync now closes only the current application's stream instead of destroying the whole trustchain root, so other applications sharing the same root (e.g. wallet-cli ring) keep working. If the application being closed is the last open one, the whole trustchain is still destroyed (previous behaviour).

    • CommandStreamResolver now observes CloseStream (ResolvedCommandStream.isClosed()).
    • StreamTree.getApplicationStreams() / hasAnotherOpenApplication() enumerate application streams to detect the last open application.
    • New TrustchainSDK.destroyApplication() primitive, software-key signed (no hardware device): closes only the current application's stream, or destroys the whole trustchain when it is the last open application ({ trustchainDestroyed }).
    • restoreTrustchain throws TrustchainEjected when the application stream is closed, and getOrCreateTrustchain reopens on the next index after a close.
    • LLD/LLM useDestroyTrustchain hooks now call destroyApplication.
    • web-tools trustchain playground exposes a sdk.destroyApplication action to exercise the per-application close.
  • #19181 d23bb3e Thanks @LucasWerey! - Bump Lumen design-system dependencies to the 6/26/2026 release

  • #18960 79e28d5 Thanks @LucasWerey! - Only show the Robinhood disclaimer banner on the Wallet 4.0 asset detail screen when the user holds a positive balance for the asset, matching the desktop behaviour and the LIVE-32756 spec (LIVE-32758).

  • #17458 8a9a49b Thanks @philipptpunkt! - Add the mobile swap transaction status drawer with provider details, status tracking, and explorer links.

  • #18864 a4f9955 Thanks @philipptpunkt! - Add mobile swap transaction status drawer infrastructure.

  • #19023 3f71b7a Thanks @francois-guerin-ledger! - Monad staking: pin the Ledger validator ("Ledger by P2P.org") to the top of the validator list so it is selected by default when delegating

  • #18633 e9b1707 Thanks @dilaouid! - feat(lwdm): move the Celo "Pay fees in" selector from the Amount step to the Custom fees step using a generic, family-agnostic fee asset descriptor

  • #17564 babad68 Thanks @dilaouid! - tests(e2e): add detox for evm native staking (sei_evm) and mock smoke under apps/ledger-live-mobile/e2e and Speculos delegate flow under e2e/mobile

  • #19187 0e30cdc Thanks @sarneijim! - Persist onboardingDate in the shared post-onboarding store to power the post-onboarding upsell cooldown. It is preserved when reopening or hiding the wallet entry point for the same device, refreshed when a different device is onboarded, and backfilled to today once for legacy users on first launch.

  • #18891 b10ca6a Thanks @RobinVncnt! - flexibleContentCards feature flag cleanup

  • #19246 bfcf591 Thanks @dilaouid! - fix(lwm): fix wording signature lwm

  • #18906 df96477 Thanks @OlivierFreyssinet! - Add getProductName to @ledgerhq/devices returning the plain, canonical device product name (e.g. "Ledger Flex"), and deprecate the app-level getProductName utils that strip the "Ledger" prefix.

  • #18858 583dd79 Thanks @francois-guerin-ledger! - Remove address suggestions from the new send flow recipient screen, while keeping the first-seen-address warning

  • #18904 a84a1ca Thanks @deepyjr! - Fix slow mobile transition from Discover catalog to Wallet.

  • #19102 f559623 Thanks @sarneijim! - Fix duplicate contentcard_impression events: keep InViewContext visibility memory keyed by the stable target ref so impressions no longer re-fire when a content card re-subscribes (e.g. carousel rebuilding its items) while still in view

  • #19000 5d4cc7a Thanks @YazhuEth! - Translate the "To:" prefix label in the new Send flow recipient input

  • #19009 1f25437 Thanks @claudiiafg! - Track Funds received analytics when a new receive operation is synced on desktop and mobile.

  • #18962 cf3aad1 Thanks @jiyuzhuang! - Remove llmRebornABtest feature flag and legacy NoLedgerYetModal onboarding path

  • #18855 df6ca42 Thanks @sarneijim! - Remove the llmRebornLP feature flag (always enabled with variant A) and inline the enabled behavior

  • #19008 c572468 Thanks @LucasWerey! - Remove the marketBanner feature flag gating on mobile so the standalone Market experience and the portfolio market banner are always enabled. Also removes the now-unused walletTabNavigatorLastVisitedTab setting that only the tab-based layout relied on.

  • #18932 628f21f Thanks @LucasWerey! - Add an informational disclaimer banner on the Wallet 4.0 asset detail screen for assets supported exclusively on a Robinhood chain (e.g. tokenized stocks on robinhood_testnet). The banner is gated by the llRobinhoodDisclaimer feature flag, which is simplified to a plain boolean flag (its unused url param is removed).

  • #18778 b9ffdc9 Thanks @qperrot! - Fix: add a check for minimum staking amount on solana

  • #18928 b2e12ce Thanks @qperrot! - fix(sei): determine Sei EVM account association via on-chain RPC

    isSeiAccountUnassociated now resolves whether a Sei EVM (0x) address is linked
    on-chain to its Cosmos (sei1) address by querying the chain's address precompile
    (getSeiAddr) instead of inferring it from the local operation history. The
    function is now async and no longer takes an operations argument; the delegation
    flow screens (desktop & mobile) resolve the warning asynchronously.

  • #17606 e82ab44 Thanks @iqbalibrahim-ledger! - chore(lwm): remove deprecated SafeAreaView

  • #18884 b534149 Thanks @KVNLS! - Update MMKV to V4 and activate NitroModules

  • #17924 360cea4 Thanks @iqbalibrahim-ledger! - Upgrade React Native to 0.81.6, Expo SDK 54 for LWM; React 19.1.4 for LWM and LWD

  • #19293 41b8ed7 Thanks @YazhuEth! - Fix BTC fee rate unit label from "sat/bytes" to "sat/vByte"

  • #19176 16f7a29 Thanks @ysitbon! - Register a single crypto-assets token cache per app store, backed by the new domain token api and its persistence, and inject the legacy getCryptoAssetsStore singleton over it. This guarantees one runtime source of token data: the UI and coin-modules share the same cache.

  • #18803 00cee6f Thanks @deepyjr! - Fix PnL card title wrapping on mobile

  • #19034 696a1ee Thanks @VicAlbr! - chore(e2e): use ETH instead of SOL/XRP/XLM/SUI for smoke tests where possible (BTC kept)

  • #18085 63b9b10 Thanks @VicAlbr! - Add non-mandatory mobile smoke tests to PR CI pipeline

  • #18966 924bb83 Thanks @dilaouid! - feat(lwm): recipient step bottomsheet recent information

  • #18829 b3ffa2f Thanks @gre-ledger! - Sunset the CryptoCurrency.terminated field: remove it from the type/schema, delete the 5 currencies it marked (clubcoin, hcash, poswallet, stakenet, stratis), drop the now-unused withTerminated parameter from listCryptoCurrencies, and clean up the dead code orphaned by those deletions.

  • #18955 376915c Thanks @Moustafa-Koterba! - feat(mobile): add tracking on new send flow part 2

  • #19165 f530884 Thanks @mateuszpalosz-ext! - Added support for mobile balance component with transparent and shielded variants

  • #19044 ed6c3dd Thanks @OlivierFreyssinet! - Restore Android permission retry behavior after the React Native permission fix

  • #19257 a5afb77 Thanks @kentoforik! - Add testIDs to SwapTransactionStatus drawer components for e2e coverage

  • #19289 da6eb76 Thanks @vtaranushenko-ext-ledger! - Add Aleo view key approve screen and extend custom add-account flow API with onImportAccounts, onScanDeviceAccountsBack, and per-family CTA label support

  • #19112 8169225 Thanks @dilaouid! - chore(lwdm): refacto gas and memo in the new send flow

  • #19178 3da6b44 Thanks @LucasWerey! - Remove the balanceRefreshRework param of the wallet 4.0 feature flag everywhere; the reworked balance refresh is now always used on mobile

  • #18905 cd52815 Thanks @dilaouid! - fix(lwm): fix cosmos android layout

  • #19224 29ac004 Thanks @claudiiafg! - Extract shared Analytics chart utils into @ledgerhq/wallet-analytics

  • #19302 f9411d1 Thanks @LucasWerey! - Remove the graphRework param of the Wallet 4.0 feature flag on both platforms. The param is no longer consumed on desktop (LIVE-33502) nor mobile, so it is dropped entirely: from the lwmWallet40 / lwdWallet40 schemas, the shared Feature_Wallet40_Params type, the analytics helper, the shouldDisplayGraphRework getter in useWalletFeaturesConfig, and both platforms' debug dev-tool lists.

    On mobile the Wallet 4.0 balance hero is now always rendered: the legacy portfolio graph card is dropped from the portfolio header and read-only screens (the GraphCard / GraphCardContainer / PortfolioGraphCard components stay, still used by the Analytics screen), and the graphRework gating is removed from every mobile call site (Portfolio screen/VM, Delta, settings reducer, WalletAssets VM).

  • #19203 6eea36b Thanks @LucasWerey! - Remove the mainNavigation param of the wallet 4.0 feature flag; the wallet 4.0 main navigation is now always used on mobile and the legacy tab-bar/top-bar code paths are removed

  • #19261 35d4af9 Thanks @LucasWerey! - Wallet 4.0 Q1 cleanup on mobile:

    • Remove the quickActionCtas param of the lwmWallet40 feature flag. The quick-action CTAs are now always enabled; the shouldDisplayQuickActionCtas getter and the legacy PortfolioQuickActionsBar are removed.
    • Remove the legacy (pre-4.0) Portfolio screen. PortfolioRootScreen now always renders the MVVM Portfolio / ReadOnlyPortfolio, and the dead legacy screen files are deleted.
  • #19068 0e302a5 Thanks @dilaouid! - chore(llc): share useNetworkFee hooks through lwd and lwm in common

  • #18874 e0b2f53 Thanks @YazhuEth! - Block XRP send and show an error when the recipient requires a destination tag and none is provided (bumps @ledgerhq/coin-xrp to 7.23.5)

Patch Changes