4.17.0
Minor Changes
-
#20611
5a87153Thanks @mcayuelas-ledger! - Mount the first-time Pay tab FeatureTour on the PayTab screen in both apps. Visibility is self-gated by the payCard slice (shown on first visit, hidden after dismissal), copy is injected from app-owned i18n keys (payTab.featureTour.*), and analytics are wired through the view-model. Adds unit and integration coverage for the conditional rendering. -
#20713
a3164d8Thanks @mcayuelas-ledger! - Add the mobile Pay hero for the aggregated stablecoin balance. The@features/flow-pay-card-balancepackage gains props-only native empty and funded states, and both apps now share the portfolio aggregation throughaggregatePayCardBalance(LIVE-34898). The hero is mounted at the top of the mobile Pay tab, which tracksPage Paywith the activebalance_filteron view. -
#20807
aac2ee0Thanks @LucasWerey! - Force a dark background on the Android 12+ system splash screen shown between the launcher tap and the splash screen. It followed the device theme, showing a white background in light mode, because thewindowSplashScreenBackgroundit was configured with belongs tocore-splashscreenand never reached the platform. -
#20840
72c8fbfThanks @deepyjr! - Add a Contacts feature introduction toggle to Mobile Debug settings. -
#20735
c3b8717Thanks @mcayuelas-ledger! - Add a stablecoin balance filter picker to the Pay card hero. -
#20704
d83149cThanks @tonykhaov! - Fix Segment analytics flush on AppState background, show delivery status in analytics console, log Segment flushes to the analytics overlay, and warn once in Datadog when events are skipped with no Segment client -
#20581
8ae48eeThanks @liviuciulinaru! - Fix the Pay tab navigator route name collision -
#20702
e07e0baThanks @mcayuelas-ledger! - Scaffold the Card API on a single endpoint-lesscardApiservice (DDD, CMC/DADA pattern): add theservices/cardtransport in@shared/api-serviceswith Bearer +x-client-key(CARD_BAANX_CLIENT_KEY) + one 401-refresh, the@domain/api-card-managementendpoint injector, the@features/platform-cardin-memory session andgetCardSessionToken/refreshCardSessionaccessors, theCARD_API_URL/CARD_BAANX_CLIENT_KEYenvs, and registercardApiin both apps. The legacypayCardApiCard Auth holdout is left untouched pending its migration ontocardApi(LIVE-33829). -
#20674
81a708dThanks @sarneijim! - Expose lazyOnboardingBanner flag enabled state and mode on Segment identify -
#20571
7c8d5dfThanks @live-github-bot! - Thread the coin-moduleContext(ADR-019) explicitly through the coin-evm, coin-vechain and coin-near api and logic layers instead of resolving configuration from the module-levelgetCoinConfigsingleton. Exported logic functions now take the context as their first argument, resolveconfigfrom it (await context.config(currencyId)), and pass an explicit, requiredconfigdown to the network layer — noconfig?optionals and no singleton reads on the data path.getCoinConfig/setCoinConfigremain only as the compatibility surface for the classic account bridge. Ledger Live consumers (live-common, desktop, mobile and coin-celo) are updated to resolve and pass config/context explicitly. Also fixes a coin-polkadot type-inference issue wheregetTransactionMaterialWithMetadata's cache-key extractor narrowed the cached signature and dropped theconfigargument. -
#20077
89171eaThanks @jiyuzhuang! - Drop legacy ticker lookup from Large Mover landing page (LIVE-34635) -
#20856
d0ac51cThanks @mcayuelas-ledger! - Wire the Pay tab "Add stablecoin" tile to the shared Deposit options overlay on both platforms: pressing it opens the dialog (desktop) or bottom sheet (mobile), and each option routes to its platform flow (bank transfer, swap, buy) or the receive flow filtered to stablecoins.Extract a shared
useDepositOptionsAdapterhook in@features/flow-pay-card-depositso desktop and mobile no longer duplicate the deposit options open/close state and props shape. -
#20907
da0a5ceThanks @fAnselmi-Ledger! - Add Solana TXC flag -
#20784
19e578aThanks @mcayuelas-ledger! - Move the Pay Card UI Redux state out of the removed@domain/entity-pay-cardpackage into the owning feature flows: the balance filter goes to@features/flow-pay-card-balanceand the feature-tour seen flag to@features/flow-pay-card-feature-tour. The apps keep persisting it under the existingpayCardkey (no data migration). Both flows expose a UI-free./stateentry so store, persistence and test setup can use the slice without pulling in the flow UI. -
#20778
eecf99aThanks @francois-guerin-ledger! - chore(coin-evm): replaceCryptoCurrencywithcurrencyId -
#20724
8eb38c0Thanks @deepyjr! - Fixed reopening an address after cancelling its edit drawer in Contacts. -
#20745
ec6fa1bThanks @claudiiafg! - Fixed reopening the delete contact confirmation sheet after cancelling it by opening delete only after the actions menu sheet has fully dismissed. -
#20744
c65ca3eThanks @RobinVncnt! - Fix "Close all" link color in the top-wallet hardware carousel small cards to match the muted gray used elsewhere on the screen -
#20589
bad0305Thanks @sarneijim! - Add the Lazy Onboarding Tour drawer to the lazy onboarding banner, with updated banner/tour copy and imagery -
#20751
7ed4ee1Thanks @sarneijim! - Refresh lazy onboarding tour slide assets, follow app theme in the tour drawer, and track banner press/dismiss. -
#20679
a635bb4Thanks @dilaouid! - feat(lwm): show empty contacts state on recipient screen -
#20794
29347c9Thanks @LL782! - Replace the useTrack hook with the module-level track functionInternal refactor ahead of the analytics package migration. Every event keeps the properties it emits today: desktop reads the
drawername from the drawer context (or passes the custom-lock-screen constant directly) at each call site, and mobile's swap entry point rebuilds its router-derivedpagewithusePageNameFromRoute. -
#20743
ac097e6Thanks @VicAlbr! - Fix scroll targeting and silent failures in the Ledger Wallet Mobile E2E suite: target leaf rows
instead of viewport-tall wrappers so assertions reach the default 75% visibility honestly, delete the
visibilityPercentageparameter so no site can lower the gate, name the scroll container at every
call site that used to let the engine guess one, replace the unexplained pixel steps with the default,
count rows by existence rather than by what fits the screen, log the scroll errorsscrollOnce
used to swallow and correct its"bottom"fallback direction, make theisIdVisible/isIdPresent
probes index-safe so a shared id stops being reported as invisible, and assert visibility where the
suite previously only proved an element existed in the tree. On the app side, the accounts list
scrollable now carries a stableaccounts-listtestID instead of one keyed on the account count. -
#19581
6a437fdThanks @Moustafa-Koterba! - feat(lwdm): improve error context on datadog -
#20750
352c6a3Thanks @francois-guerin-ledger! - chore(coin-evm): movegetDefaultFeeUnitandgetMessagePropertiesto llc -
#20806
eb4d29eThanks @mcayuelas-ledger! - Drop the redundantPayCardprefix from the public API of@features/flow-pay-card-balance. The package path already scopes the feature, matching sibling flows (FeatureTour,CardLogin). The hero is now exported asBalance, withuseBalanceData,aggregateBalance,buildBalanceDataandBalance*types. -
#20642
a61f702Thanks @mcayuelas-ledger! - Persist the pay card hero balance filter across app restarts -
#20755
e291645Thanks @mcayuelas-ledger! - Add the mobile stable balance filter (native select under the hero + queued bottom-sheet picker) and share the filter option and stablecoin logic between desktop and mobile -
#20096
e54d98bThanks @liviuciulinaru! - Integrate the Card API and give its endpoints a domain owner@domain/api-card-managementgains the Card Auth contract: authorize initiation, authorization-code
exchange, session refresh, logout and the user read, with their zod wire schemas and inferred types.
They inject into the sharedcardApiservice, so one reducer, one middleware and one cache serve the
Card backend, and the base query supplies the base URL,x-client-keyand theAuthorization: Bearer
header from the@features/platform-cardsession.@features/flow-pay-card-authowns no network contract any more. It keeps the auth-onlypayCardAuth
slice and theCardLogincomponent;useCardLoginViewModelimports its hook from
@domain/api-card-management, and that import is what triggers the injection.@domain/api-pay-card
and its in-process mock transport are removed, along with the Pay Card mocks.Pay Card UI Redux state is owned by the feature flows that use it: the balance filter by
@features/flow-pay-card-balanceand the feature-tour flag by@features/flow-pay-card-feature-tour.Only the login step ships here. The callback code exchange and the card status read stay behind until
the session has an owner that can store and refresh it. -
#20867
b7476f4Thanks @mcayuelas-ledger! - Skip the Noah receive funds options drawer when depositing from Pay so users are not asked to choose crypto vs bank transfer twice -
#20433
481bc40Thanks @ooke-ledger! - Hand a perps deposit requested by the live app over to the wallet, and let the asset and account pickers word themselves after the role the selection plays: the account funds land in, the account they are taken from, or the perps pick that predates both -
#20753
560b8d6Thanks @LL782! - Replace the useAnalytics hook with the module-level track functionInternal refactor ahead of the analytics package migration. Event property values are unchanged; duplicate
send_modal"step review device" emissions caused by the hook's route-keyed callback identity no longer fire, so counts for that event may fall slightly. -
#20645
dd3baf3Thanks @claudiiafg! - Add shared edit contact signer validation state with mocked signer mismatch handling and wire Desktop and Mobile contact edit flows. -
#19909
311e79fThanks @henri-ly! - add new send flow tokens test, and type the amount in crypto (the step opens in fiat) by tagging
the amount fiat/crypto toggle with aamount-mode-toggletestID -
#20800
c8adec3Thanks @mcayuelas-ledger! - Add Deposit and Request action tiles to the mobile Pay screen hero -
#20699
e9e2a48Thanks @deepyjr! - Fix the Contacts network search drawer crash -
#20440
541de50Thanks @vpenskyi-ledger! - Change swap pending operation CTA from "Go to history" to "See details" -
#20700
999305dThanks @vtaranushenko-ext-ledger! - Keep memo, tag and comment edits made from the send summary when navigating back to the recipient or amount step, instead of reverting them.
Patch Changes
- Updated dependencies [
ec8baad,a3164d8,9accbb8,841f7a0,5ff320a,e4e8d08,14cf5b8,0dc2509,8605089,c3b8717,1a2df41,55768ad,696f871,e07e0ba,45dc82e,a7b0bae,7c8d5df,f2f3ec9,526ca7b,d0ac51c,840de0d,3c36af2,46eb674,da0a5ce,19e578a,eecf99a,d43f03d,21323c6,f040998,030fc67,a781abe,bad0305,5b39a67,0807eca,e72d6ff,352c6a3,68448cd,75d0c9b,eb4d29e,42fca4a,a61f702,e291645,4faf5cd,2edf614,9e45705,e54d98b,b6da6b1,ca74f9d,3dd9308,fae92bf,8153370,dd3baf3,7c20f72,0fc43c1,c8adec3,b2896a9,79882e2,5a96e09,a20805c,030b427]:- @features/flow-pay-card-balance@0.2.0
- @features/flow-pay-card-deposit@0.2.0
- @shared/feature-flags@0.19.0
- @domain/api-aggregated-assets@0.4.0
- @features/platform-contacts@0.3.0
- @domain/entity-contact@0.7.0
- @features/flow-contacts@0.7.0
- @ledgerhq/live-dmk-shared@0.31.0
- @ledgerhq/ledger-auth@0.4.0
- @ledgerhq/ledger-key-ring-protocol@0.20.0
- @shared/auth@0.5.0
- @shared/api-services@0.4.0
- @features/platform-card@0.2.0
- @shared/env@0.3.0
- @features/flow-contacts-add-contact@0.3.0
- @ledgerhq/types-devices@7.0.0
- @ledgerhq/coin-concordium@1.0.0
- @ledgerhq/coin-multiversx@1.0.0
- @ledgerhq/coin-filecoin@2.0.0
- @ledgerhq/coin-canton@1.0.0
- @ledgerhq/coin-casper@3.0.0
- @ledgerhq/coin-cosmos@1.0.0
- @ledgerhq/coin-evm@5.0.0
- @features/flow-contacts-introduction@0.2.0
- @ledgerhq/types-live@6.120.0
- @features/flow-pay-card-feature-tour@0.3.0
- @features/flow-pay-card-auth@0.3.0
- @devtools/bindings@0.4.0
- @ledgerhq/ledger-wallet-framework@3.0.0
- @features/flow-lazy-onboarding-banner@0.3.0
- @features/platform-aggregated-assets@0.4.0
- @devtools/transport-panel@0.5.0
- @devtools/wire@0.4.0
- @domain/entity-currency-token@0.5.0
- @domain/api-currency-token@0.5.0
- @ledgerhq/coin-bitcoin@0.51.1
- @features/platform-currencies@0.6.1
- @features/platform-feature-flags@0.6.6
- @ledgerhq/live-dmk-mobile@0.29.4
- @domain/api-altcoins-sentiment@0.3.2
- @domain/api-currency-fiat@0.4.1
- @domain/api-market-sentiment@0.3.2
- @domain/api-push-devices@0.2.2
- @features/platform-env@0.2.1
- @ledgerhq/live-dmk-speculos@0.10.5
- @ledgerhq/wallet-analytics@0.3.4
- @ledgerhq/wallet-pnl@0.7.7
- @ledgerhq/device-intent@6.0.0
- @ledgerhq/coin-stacks@0.28.1
- @ledgerhq/device-core@0.11.12
- @ledgerhq/domain-service@1.8.15
- @ledgerhq/live-countervalues@0.24.3
- @ledgerhq/live-countervalues-react@0.16.7
- @ledgerhq/live-wallet@1.0.1
- @devtools/shell@0.8.1
- @domain/entity-currency@0.4.1
- @features/flow-analytics-consent@0.2.2