github LedgerHQ/ledger-live live-mobile@3.105.0

8 hours ago

3.105.0

Minor Changes

  • #13994 7aeb7bb Thanks @tonykhaov! - feat: update wording notifications prompt drawer

  • #14016 eb89e1a Thanks @LucasWerey! - FearAndGreed add an early return in the animation to avoid infinite re renders with jest

  • #14028 0225aac Thanks @mcayuelas-ledger! - Bump lumen-ui libraries (lumen-ui-react 0.0.71 → 0.0.73, lumen-ui-rnative 0.0.58 → 0.0.60)

  • #14030 8388db4 Thanks @LucasWerey! - Bump lumen rnative to latest so it uses react 19

  • #14155 16da950 Thanks @CremaFR! - feat: removed navbar from perps

  • #14019 009c0cd Thanks @LucasWerey! - Add dev tools for the wallet 4.0

  • #14072 cdb1567 Thanks @LucasWerey! - Adjust market banner tiles to match design

  • #14045 e32bd06 Thanks @LucasWerey! - Fix market deeplink when the market banner ff is enabled

  • #14104 638e2af Thanks @LucasWerey! - Realign fear and greed tile with the other tiles

  • #13951 a8fd790 Thanks @deepyjr! - Add PortfolioBalanceSection component for wallet balance display with three states (normal, noFund, noSigner) behind graph_rework feature flag.

    Unify currency formatting across mobile and desktop:

    • Mobile: Use formatCurrencyUnitFragment with AmountDisplay from lumen-ui-rnative
    • Desktop: Migrate BalanceView to use AmountDisplay from lumen-ui-react, remove formatBalanceParts utility
    • Both platforms now use the same formatter callback pattern with Lumen components handling currency positioning
  • #14054 da660cc Thanks @CremaFR! - feat: perps ff and entry points

  • #14167 fee8081 Thanks @francois-guerin-ledger! - chore(LWD, LWM): update EthAppPleaseEnableContractData error message

  • #14105 93cfcb0 Thanks @thesan! - Stop the incessant re-saving of countervalues

  • #14147 b425b53 Thanks @tonykhaov! - Rename notifications prompt illustrations (NotificationsBell, NotificationsPerformanceChart) and show by drawer source

  • #14130 2d750da Thanks @mcayuelas-ledger! - Add mainNavigation FF for Wallet4.0

  • #14037 be39926 Thanks @LucasWerey! - Add analytics pill to the portfolio balance

  • #14314 50da5ec Thanks @Justkant! - fix: prevent double-firing of close animation callbacks in QueuedDrawer and DeviceConnect

    Use refs instead of local variables in QueuedDrawer's closeAnim to
    deduplicate callbacks across rapid successive calls. Add a guard ref
    in DeviceConnect to prevent handleSuccess from executing twice.

  • #13830 a90b9df Thanks @ysitbon! - upgrade react-native-reanimated from v3 to v4

    • Add new required dependency react-native-worklets (0.7.2)
    • Migrate babel plugin from react-native-reanimated/plugin to react-native-worklets/plugin
    • Migrate runOnJS API to scheduleOnRN from react-native-worklets
    • Add missing dependency arrays to useAnimatedStyle hooks (required for Reanimated 4 without Babel plugin)
    • Update test mocks for compatibility with Reanimated 4
  • #14039 96acd67 Thanks @RobinVncnt! - feat: ContentDrawer - add tour parameter to lwmWallet40 ff, new hasSeenWalletV4Tour flag, add debug row

  • #14236 3325156 Thanks @LucasWerey! - Fix a race condition with the bottomsheet

  • #14029 44e0119 Thanks @deepyjr! - Add Quick Actions CTAs with new Transfer drawer for Wallet 4.0

    • New Quick Actions CTAs (Transfer, Swap, Buy) displayed when quick_action_ctas feature flag is enabled
    • Transfer action opens a bottom sheet with Receive, Send, and Bank transfer options
    • Swap action navigates to Swap Live app
    • Buy action navigates to Buy Live app
    • Built with Lumen UI components (TileButton, ListItem, Box, Subheader)
    • Full MVVM architecture with integration tests
  • #14040 59b4d7e Thanks @vcluzeau-ledger! - feat(recover): pass hasConnectedNanoS and countryCode params to Recover webapp

    • Add new getCountryCodeFromLocale utility in @ledgerhq/live-common/locale
    • Pass hasConnectedNanoS boolean to indicate if user has ever connected a Nano S
    • Pass countryCode (ISO 3166-1 alpha-2, lowercase) extracted from user's locale setting
  • #14198 0fec915 Thanks @cunhabruno! - remove jotai-scope import from PerpsWebView

  • #13847 a8ef145 Thanks @ishaba! - fix Canton stale screen and error handling on add account mobile

  • #14134 64a32d2 Thanks @Justkant! - fix(mobile): resolve webview state interference and staking drawer double-open

    • Replace single currentAccountAtom with atomFamily (currentAccountAtomFamily) to provide manifest-scoped account state isolation between webviews
    • Remove ScopeProvider wrappers from webview components (no longer needed)
    • Use refs for staking drawer callbacks in EarnLiveAppNavigator to prevent useEffect re-runs when callbacks change
    • Update jotai from 2.12.4 to 2.17.0, remove jotai-scope, add jotai-family

    This fixes two related issues:

    1. Account state bleeding between EarnWebview and WebPlatformPlayer when both are mounted simultaneously
    2. Staking drawer opening multiple times due to unstable callback dependencies in the useEffect
  • #13859 c36a6b1 Thanks @OlivierFreyssinet! - Remove legacy React Native BLE transport code

    Since the ldmkTransport feature flag is now enabled by default in all environments, the Device Management Kit (DMK) transport is always used. This removes all dead code related to the legacy BLE transport:

    • Removed @ledgerhq/react-native-hw-transport-ble dependency from LLM
    • Removed PairDevices screen and related components
    • Removed DebugBLE and DebugBLEBenchmark debug screens
    • Removed legacy BLE hooks (useBleDevicePairing, useBleDevicesScanning) from live-common
    • Removed legacy BLE types from live-common

    Note: The @ledgerhq/react-native-hw-transport-ble package itself (in libs/ledgerjs/) is not removed — it will be deprecated in a separate PR.

  • #14126 c9f56c4 Thanks @mcayuelas-ledger! - Split market API into market and countervalues RTK Query APIs

  • #14086 bf34cf5 Thanks @gre-ledger! - Stop persisting Account#lastSyncDate to optimize need to resave accounts

  • #14013 7524c14 Thanks @gre-ledger! - cleanup old fields in settings reducers

  • #14157 080cd87 Thanks @LucasWerey! - Hide bank transfer option in transfer drawer when Noah feature flag is disabled

  • #14033 8e07e63 Thanks @deepyjr! - Add tap to toggle discreet mode on portfolio balance

  • #14217 67c7dc5 Thanks @mcayuelas-ledger! - Retrigger new builds with hotfix stuffs

  • #14097 d5b273b Thanks @LucasWerey! - Reduce polling state to 3 minutes

Patch Changes

  • Updated dependencies [a155cdf, d7b6d27, da660cc, 62f9834, 2d750da, a90b9df, 96acd67, 34cf993, 7dbe08b, 982a7e9, 65f0757, bf34cf5, 7a75642, a774b49]:
    • @ledgerhq/coin-canton@0.16.0
    • @ledgerhq/types-live@6.96.0
    • @ledgerhq/live-wallet@0.21.0
    • @ledgerhq/native-ui@0.55.0
    • @ledgerhq/coin-cosmos@0.24.0
    • @ledgerhq/coin-evm@2.42.0
    • @ledgerhq/coin-framework@6.15.0
    • @ledgerhq/live-env@2.27.0
    • @ledgerhq/coin-filecoin@1.18.3
    • @ledgerhq/coin-multiversx@0.10.3
    • @ledgerhq/coin-stacks@0.15.2
    • @ledgerhq/domain-service@1.6.3
    • @ledgerhq/cryptoassets@13.38.1
    • @ledgerhq/live-countervalues@0.12.1
    • @ledgerhq/live-countervalues-react@0.9.2
    • @ledgerhq/client-ids@0.5.1
    • @ledgerhq/hw-ledger-key-ring-protocol@0.7.2
    • @ledgerhq/ledger-key-ring-protocol@0.11.2
    • @ledgerhq/live-dmk-mobile@0.18.2
    • @ledgerhq/live-network@2.2.2

Don't miss a new ledger-live release

NewReleases is sending notifications on new releases.