4.6.0
Minor Changes
-
#17499
d7c5ad3Thanks @LucasWerey! - Add @ledgerhq/lumen-ui-rnative-visualization dependency and expose a standalone Settings → Debug → "Lumen Visualization" preview screen rendering a sample LineChart. -
#17676
7f11be9Thanks @deepyjr! - Display the addresses count next to the section title on Asset Detail and add a "See all" action when an asset has more than 5 accounts. -
#17532
72347d3Thanks @LucasWerey! - Display PnL metric cards (Unrealised return, Cost basis) on the Analytics screen for the Wallet 4.0 release. Pressing the Unrealised card opens the PnL detail drawer (Unrealised / Realised / Total return); pressing the Cost basis card opens an info drawer. Portfolio data is sourced from@ledgerhq/wallet-pnl, visibility is gated by thepnlfeature param and values respect discreet mode. -
#17678
2b37eadThanks @deepyjr! - Open the "See all" addresses entry from the Asset Detail screen in a bottom-sheet drawer instead of navigating to the CryptoAddresses screen. The portfolio-wide entry to the CryptoAddresses screen is unchanged. -
#17433
bdcd8f0Thanks @deepyjr! - Add asset detail coin options (NavBar trailing button + bottom sheet) to favourite/unfavourite a coin and hide/show it from the portfolio, with state persisted across sessions -
#17644
193ff3eThanks @LucasWerey! - Use interactive Card type for Asset Detail Earn banner and deposit card -
#17586
2fda0b0Thanks @deepyjr! - Update Asset Detail v4 loading state to render animatedSkeletonplaceholders (from@ledgerhq/lumen-ui-rnative) for the BalanceGraph header (Market price), BalanceDetails, Addresses, Transactions, MarketStats and PricePerformance sections. Section titles are also skeletoned during loading for visual consistency. -
#17402
5c6c279Thanks @gre-ledger! - Make formatAccount and formatOperation async to forward-compatibly await getAccountBridge -
#17284
446020dThanks @gre-ledger! - chore: async prep — toOperationRaw, toSignedOperationRaw and remaining bridge callers (LIVE-29186)Make
toOperationRaw,toSignedOperationRawandtoSignOperationEventRawasync in@ledgerhq/live-common,
widenWalletSyncDataManagerResolutionContext.getAccountBridgein@ledgerhq/live-walletto accept a Promise,
and update remaining callers (apps/cli, apps/wallet-cli, apps/web-tools, mobile concordium, coin-tester-evm/solana,
coin-modules-monitoring) toawaitthe bridge. -
#16892
a361e56Thanks @qperrot! - Feat: evm delegation table lwm -
#17338
19b82d1Thanks @gre-ledger! - Remove the 6 deprecated top-level helpers from @ledgerhq/live-common:isAccountEmpty,clearAccount,getVotesCount,isEditableOperation,isStuckOperation,getStuckAccountAndOperation. Consumers must now resolve anAccountBridgefirst (viauseAccountBridge/useAccountBridgeManyin React, orgetAccountBridge/getAccountBridgeByFamilyelsewhere) and call the corresponding method on the bridge. Desktop and mobile apps have been migrated. -
#17436
74e82f8Thanks @OlivierFreyssinet! - Add final device initializer UI states on mobile -
#17498
20920deThanks @LucasWerey! - Bump d3-array, d3-scale and d3-shape to their latest majors (and matching @types) in preparation for adopting @ledgerhq/lumen-ui-rnative-visualization. -
#17537
6a0a6beThanks @deepyjr! - Cap the Asset Detail addresses section to 5 items and add a "See all" button that opens the CryptoAddresses screen filtered by the current asset (with the "Add account" footer hidden). The portfolio-wide entry to CryptoAddresses is unchanged. -
#17621
af015b3Thanks @benruseau! - Add Lumen UI for DIE discovery and connection errors -
#17704
e278291Thanks @gre-ledger! - Gate the device-ids push middleware behind theanalyticsOptInfeature flag in addition to the user analytics consent. Device IDs are now only sent to/v2/pushdeviceswhen the FF is enabled AND the user has opted in. -
#17504
76ac9d9Thanks @benruseau! - Fix duplicated known devices Redux slice -
#17592
efbc7eeThanks @OlivierFreyssinet! - Tighten the Device Intent Executor error model:- Replace the catch-all
connectionErrorexecutor state with a focuseddeviceDisconnectedstate entered only via theDEVICE_DISCONNECTEDevent. TheDeviceConnectionComponentno longer receivesonError, andExecutorPlatformConfigurationrequires aDeviceDisconnectedComponentin place of the previousConnectionErrorComponent. - Funnel any unexpected error escaping the inner connect-device state machine into a new terminal
UnknownErrorConnectDeviceUIStatevia acatchErrorwrapper inconnectDeviceUseCase, so the observable's error channel is never reached in normal operation. - Add a
UnknownErrorStatecomponent in the LWM connection view that renders the sharedintentErrorwording for this terminal state.
- Replace the catch-all
-
#17295
0c205fbThanks @cfloume! - Default analytics sharing to off until you explicitly opt in via the consent prompt. Existing preferences are preserved for returning users. -
#17489
00b7cb9Thanks @LucasWerey! - Fix asset detail addresses showing parent account balance instead of token balance -
#17480
f6e40beThanks @LucasWerey! - Fix discreet mode not hiding balances on Asset Detail screen -
#17572
bf16e7eThanks @deepyjr! - Fix the APY percentage shown in the Asset Detail Earn banner. The interest rate value is a decimal fraction (e.g.0.04for 4%) and was rendered as-is, which made every banner display "0.0% APY". The value is now converted to a percentage before formatting, and the parameterized banner is only shown when the rounded display percentage is greater than zero (the generic banner is used otherwise). -
#17571
cd6a9efThanks @deepyjr! - Fix Earn redirection from the Asset Detail page. The Earn banner and the Earn deposit card now open the stake drawer filtered on the current asset, leading the user to the coin-specific Earn page instead of the generic Earn entry point. -
#17548
f2bd7c9Thanks @LucasWerey! - Fix transfer bottom sheet opening on Portfolio instead of Asset Detail screen -
#17637
809a266Thanks @LucasWerey! - Fix Android crash on clear cache flow. DispatchingwipeCountervaluesinsideuseCleanCachecaused every mountedCounterValueconsumer to re-render against the wiped state in a separate React commit from the subsequentreboot(); under Fabric this produced anIllegalStateException: The specified child already has a parent. Wipe is now dispatched from the reboot middleware in the same synchronous tick as the reboot action so React batches both updates and theRebootProviderkey change unmounts the subtree before any countervalue consumer re-renders. -
#17478
3fc6c42Thanks @LucasWerey! - Add safe area bottom padding to AssetDetail tooltip content -
#17591
4e9a077Thanks @cfloume! - Make sure push notifications data is initialized even if the user is not onboarded -
#17406
256801cThanks @tonykhaov! - Fix mobile swiper gesture resistance and single-card swipe handling -
#17693
00445f8Thanks @mcayuelas-ledger! - fix default values for wallet v4 params related to Q2 -
#17656
847ed47Thanks @LucasWerey! - Add hidden asset banner on the Asset Detail screen with a quick action to unhide the asset -
#17554
295c8afThanks @YazhuEth! - Fix memo tag drawer briefly flashing on the device selection step when ignoring the memo prompt -
#17662
bb25536Thanks @mcayuelas-ledger! - Centralize price formatting with consistent digit rules (2/6 fractional digits) and threshold marker for tiny variations -
#17663
b294262Thanks @aussedatlo! - Show a stuck-loader hint after 10s on mobile device-action loading screens to invite users to check their device -
#17617
6cbcbddThanks @OlivierFreyssinet! - Improve console log readability when debugging via Chrome / React Native DevTools: mobile'sConsoleLoggernow usesconsole.groupCollapsedwith raw objects instead of stringifying everything to JSON, and the DMK logger emits a clearerDMK[tag]log type (with backward-compatible filtering in the logs viewer) instead of the genericlive-dmk-logger. -
#17542
a04a4c0Thanks @mitchellv-ledger! - Add lwmAnalyticsConsentOnboarding feature flag (default disabled) for mobile -
#17589
a5caa23Thanks @qperrot! - feat (lwm): add undelegate flow on evm native staking -
#17493
13749a8Thanks @gre-ledger! - Per-family mobile accountActions (bitcoin, celo, evm, tron) now receive the resolved AccountBridge as a parameter and use bridge.isAccountEmpty instead of the deprecated top-level helper; useAccountActions resolves the bridge via useAccountBridge and passes it through. -
#17491
703084eThanks @gre-ledger! - Replace the CLEAN_CACHE reducer handler with a thunk in useCleanCache that resolves the AccountBridge per account and dispatches replaceAccounts. -
#17494
427d8c0Thanks @gre-ledger! - Migrate mobile empty-account checks (account/portfolio screens, asset screen, select-account, quick-actions, transfer drawer, analytics operations list, device-scan add-account flow) from the deprecated isAccountEmpty top-level helper to bridge-resolved equivalents. Replace areAccountsEmptySelector with the new useAreAccountsEmpty hook.Also fix the Operations list empty/no-op state when filtered on token accounts whose parent is not in the filtered slice, and stabilize useAreAccountsEmpty by selecting through the existing memoized shallow accounts selector to avoid re-rendering consumers on irrelevant account updates.
-
#17492
c5d36d3Thanks @gre-ledger! - Migrate the mobile operations layer (OperationRow, OperationDetails, SendFunds recipient stuck-tx detection, account screen header) from deprecated isEditableOperation / isStuckOperation / getStuckAccountAndOperation top-level helpers to AccountBridgeExtensions via useAccountBridge / useAccountBridgeOrNull. -
#17238
e82e99bThanks @ysitbon! - Move@features/market-bannerto@features/flow-market-bannerunderfeatures/flow/per the Iteration 5 Data Layer ADR. LIVE-30363 -
#17530
c7b92c1Thanks @LucasWerey! - Add PnlCard shared component undersrc/mvvm/features/Pnlwith interactive (trend + chevron) and info (ⓘ icon) variants, gated byshouldDisplayPnland respecting discreet mode. -
#17531
0f6217bThanks @LucasWerey! - Add PnlDetailDrawer shared component undersrc/mvvm/features/Pnl, a Lumen bottom sheet that displays per-asset or portfolio PnL detail rows (title, value, optional definition) and respects discreet mode. Items prop is optional, so the drawer can also be used as a header-only info drawer. -
#17640
f4a57a8Thanks @LucasWerey! - Add address row press handler on Asset Detail to navigate to the corresponding account -
#17513
1577356Thanks @deepyjr! - Routeasset/:currencyIdandmarket/:currencyIddeeplinks to the new Asset Detail screen when the Wallet 4.0aggregatedAssetsfeature flag is enabled, with tracking source"deeplink_asset"/"deeplink_market". -
#17503
f799d7fThanks @LucasWerey! - Aggregate AssetDetail total balance and addresses across every network of an asset on mobile (W4.0), and extractresolveDistributionItem/parentAccountLookupfrom desktop into@ledgerhq/asset-aggregationso both apps share one source. -
#17557
3603d91Thanks @OlivierFreyssinet! - Add generic error UI for the DeviceIntentExecutor (LWM) covering connection, intent and invalid-operation failures, and wire the executor'sonUserCancelcallback to every phase as a uniformonCloseprop so platform and intent components can offer a close action. -
#17679
6b9e437Thanks @deepyjr! - Fix "Hide from portfolio" not hiding parent CryptoCurrencies (e.g. Ethereum) in the new portfolio asset lists -
#17616
d8d05daThanks @deepyjr! - Fix Asset Detail transactions filtering so token assets (e.g. USDC, USDT) only show their own operations on both the preview and the "See all" history list, instead of bleeding parent-network and sibling-token operations. -
#17517
2eabd7fThanks @LucasWerey! - Remove debug Asset Detail FAB and itsDEBUG_ASSET_DETAIL_FABenv toggle. Asset/market detail is now reachable from regular navigation entry points. -
#17560
9ccd154Thanks @lysyi3m! - Move Concordium ID App store links (App Store / Google Play) to a newconcordiumIdAppLinksfeature flag with runtime override support via Firebase -
#17635
603f343Thanks @RobinVncnt! - feat: lwm feature flag for new notification opt in -
#17682
07a9a91Thanks @deepyjr! - Display currency ticker instead of name in asset details coin capsule -
#17639
c2dd827Thanks @deepyjr! - Fix Asset Detail showing the Receive CTA on top of the balance graph for token assets the user already holds (e.g. ERC-20 stablecoins). The funds check now walks token sub-accounts in addition to parent accounts. -
#17556
cc9c784Thanks @tonykhaov! - Add generic awareness modal drawer on mobile -
#17523
9d8f0c2Thanks @LucasWerey! - Fix MyWallet top bar avatar size to match Figma design -
#17685
fbda1dcThanks @qperrot! - fix(mobile): guard EVM AccountBalanceSummaryFooter against TokenAccountMove the
account.type !== "Account"early return beforeaccount.currency.id
is accessed in AccountBalanceFooter. TokenAccount objects have nocurrency
property, causing a crash ("Cannot read property 'id' of undefined") when
navigating to any EVM token account (e.g. USDT). -
#17584
3a5a8d6Thanks @mcayuelas-ledger! - Fix asset detail favorites to use Coingecko market ids so starring tokens matches the Market list -
#17655
524c7c0Thanks @deepyjr! - Adjust asset detail page UI: show Earn entry point on non-owned stakeable assets, replace plus with chevron icon in the Earn banner, and resize the Transfer CTA. -
#16745
21290f4Thanks @Moustafa-Koterba! - [LWM] Delegated balance in account summary -
#17293
a98c300Thanks @mitchellv-ledger! - Add lotties and tracking calls to lwm product tour -
#17626
574f1daThanks @cunhabruno! - Dedupe staking summary rotate animation into a shareduseChangeValidatorRotateAnimhook and stop leaking the loopingAnimated.loopon unmount. -
#17445
dd293feThanks @benruseau! - Add connect device state machine
Patch Changes
- Updated dependencies [
839537d,446020d,e278291,efbc7ee,157ec37,d1e22fc,00445f8,483bc1c,b2ee27c,ef47541,bb25536,6cbcbdd,a04a4c0,9b75461,822bc92,2188360,fe04e44,dd293fe,40f9d3b,3603d91,74e82f8,2eabd7f,62ec3e5,9ccd154,c4d44f6,603f343,c9ec82a,59c2b56,73e9f74,a61f904,5de991c,d35f56c,d15fc5d,21290f4,75b3b3c]:- @ledgerhq/cryptoassets@13.49.0
- @ledgerhq/types-cryptoassets@7.37.0
- @ledgerhq/live-wallet@0.27.0
- @ledgerhq/client-ids@0.10.0
- @ledgerhq/device-intent@3.0.0
- @ledgerhq/live-dmk-mobile@0.23.0
- @ledgerhq/live-dmk-shared@0.25.0
- @ledgerhq/coin-bitcoin@0.42.0
- @shared/feature-flags@0.8.0
- @ledgerhq/coin-evm@4.0.0
- @ledgerhq/types-live@6.109.0
- @ledgerhq/live-currency-format@0.9.0
- @ledgerhq/ledger-wallet-framework@1.6.0
- @ledgerhq/coin-cosmos@0.34.0
- @ledgerhq/coin-concordium@0.12.0
- @ledgerhq/coin-canton@0.25.0
- @ledgerhq/live-env@2.36.0
- @ledgerhq/wallet-pnl@0.3.0
- @ledgerhq/coin-casper@2.13.4
- @ledgerhq/coin-filecoin@1.24.4
- @ledgerhq/coin-multiversx@0.17.1
- @ledgerhq/coin-stacks@0.21.4
- @ledgerhq/live-countervalues@0.18.5
- @ledgerhq/live-countervalues-react@0.14.4
- @ledgerhq/domain-service@1.8.4
- @ledgerhq/hw-ledger-key-ring-protocol@0.10.3
- @ledgerhq/ledger-key-ring-protocol@0.13.3
- @ledgerhq/live-dmk-speculos@0.8.8
- @ledgerhq/live-network@2.6.2