4.10.0
Minor Changes
-
#18943
d60474cThanks @francois-guerin-ledger! - fix(llc): use Arc native USDC's ERC20 token CAL descriptor for the exchange config, so the device shows the correct (6-decimal) swap amount -
#18641
104d174Thanks @claudiiafg! - Fix Asset Detail favourites for tokens opened from Market or Assets by resolving market data via the /v3/marketsledgerIdsfilter while keeping backward compatibility with the legacyidsfilter. -
#18363
26be121Thanks @sarneijim! - Add Ledger Recover Backup Hub feature intro bottom-sheet with backup-hub deeplink -
#18492
8a8b22fThanks @RobinVncnt! - fix: large mover currency -
#18614
e636885Thanks @Valentin-Ledger! - Add acustom.bottomSheet.errorwallet-api method for the mobile Borrow Live App. The embedded webview can now open an error-toned bottom sheet that resolves with{ confirmed: true }when the CTA is pressed and{ confirmed: false }when the sheet is closed or dragged down, mirroring thecustom.dialog.confirmationcontract.Shared param validation lives in
@ledgerhq/live-common/wallet-api/Borrow/errorBottomSheetParams. On mobile the sheet is driven by a Redux Toolkit slice (borrow.errorBottomSheet) and a module-level resolver store, and its UI is rendered via the sharedInfoStatecomponent withpreset="error", which both tints the parentQueuedDrawerBottomSheetwith the error gradient (viauseBottomSheetBackgroundTone) and renders the icon, title, description and CTA.The legacy vanilla-redux
borrowreducer (actions/borrow.ts,BorrowActionTypes) has been migrated tocreateSlice; the slice now exportssetInfoBottomSheetandsetErrorBottomSheetactions directly. -
#18977
f832e06Thanks @Valentin-Ledger! - AddborrowFeatureanalytics property derived from theptxBorrowLiveAppfeature flag, included in identify traits and track events on both desktop and mobile. -
#18757
36200f9Thanks @deepyjr! - Fix zero-balance asset trend display -
#18832
52a9ddbThanks @LucasWerey! - Add the bottom fade gradient (same as the transactions history) at the bottom of the Assets, Stablecoins and Stocks lists so content fades out at the bottom of the screen -
#18586
6304f4fThanks @tonykhaov! - Fix missing displayedPosition on Wallet Braze carousel content card analytics (impression, click, dismiss) -
#18774
ca99ba2Thanks @deepyjr! - Fix mobile market countervalue fallback and formatting for unsupported fiats and crypto units. -
#18603
669d2c3Thanks @YazhuEth! - feat(broadcast): add isTestnet and isSendMax to telemetryAdds two fields to the
broadcast_successandbroadcast_failureDatadog events, on both success and failure paths:isTestnet: derived from the currency model (isTestnetFor)isSendMax: derived fromtransaction.useAllAmount
Existing fields are left unchanged.
-
#18627
7fcf623Thanks @OlivierFreyssinet! - Bump Device Management Kit to 1.7.1 -
#18627
7fcf623Thanks @OlivierFreyssinet! - Bump React Native HID transport to 1.0.4 -
#18612
0ffa53eThanks @claudiiafg! - Fix asset detail chart transaction marker clustering with per-timeframe spacing (wider gaps on 5y/all) via shared@ledgerhq/asset-detailutils. -
#18741
913f4a8Thanks @qperrot! - Fix: handle the "RBF requires an additional sats fee" error and show it in the frontend -
#18771
9a5d4d5Thanks @OlivierFreyssinet! - Track Device Intent Executor drawer close clicks only from explicit header close and backdrop press interactions -
#18767
01cf3a8Thanks @LucasWerey! - Disable the Mood index (Fear & Greed) for users in the UK on both mobile and desktop, based on the device region (same mechanism as the Earn APY). Adds a sharedisMoodIndexAvailablehelper and hides the Mood index card/tile from the Market screen and the Market banner when the region is "GB". -
#18273
862198fThanks @dilaouid! - feat(lwm): signature screen new send flow -
#18478
636a4cbThanks @henri-ly! - Add withdraw flow for Monad EVM staking -
#18744
1bc567cThanks @beths-ledger! - Ensure navigation header is set correctly when navigating between earn simulator and earn deposit flows via deeplinks. -
#18552
0fe1b2dThanks @claudiiafg! - Fix desktop asset detail all-time price variation to derive from chart endpoints instead of the 1y market change, and correct the 6m range mapping. Extract shared market chart and variation helpers to live-common for desktop and mobile. -
#18848
88c89b0Thanks @dilaouid! - fix(lwdm): new send flow fix no more unit hardcoding for btc fees -
#18807
5363ac7Thanks @ishaba! - fix(lwm): polyfill structuredClone for Hermes to fix SUI send crash -
#18681
ad68778Thanks @mitchellv-ledger! - Remove llmAnalyticsOptInPrompt feature flag and unused variant B code -
#18599
20d2876Thanks @qperrot! - Fix: respect safe areas in Swap history operation rows -
#18678
aa7896eThanks @amaslakov! - Update Tezos unstake-required modal copy -
#18776
b7a676dThanks @RobinVncnt! - fix: lwm top wallet cards spacing, lwd bottom cards radius -
#18743
e963396Thanks @claudiiafg! - Rename the global search crypto category label from "Cryptos" to "Crypto" on mobile and desktop. -
#18758
44a3254Thanks @deepyjr! - Fix global search stocks placeholder wording -
#18411
229b30aThanks @RobinVncnt! - feat: lwm backup hub -
#18660
1f41eeeThanks @mitchellv-ledger! - Remove "llmHomescreen" feature flag and legacy code in lwm -
#18811
cbfdde5Thanks @koda-apps! - Fix lazy onboarding analytics back navigation -
#18683
5ec842bThanks @LucasWerey! - Fix the Market screen "Total market cap" highlight card overflowing in locales with longer compact-number suffixes (e.g. French "billions"). The value now shrinks to fit the card width while the trend indicator keeps its size. -
#18665
1dff6faThanks @LucasWerey! - Share the Asset Detail trade-availability gating between mobile and desktop. ExtracteduseTradeAvailabilityand the ramp ledger-id resolution helpers (resolveRampLedgerIds,ledgerIdsFromLedgerCurrency,isAvailableOnBuy,isAvailableOnSwap) into@ledgerhq/asset-detail, and refactored desktop to consume them. Mobile now gates the Asset Detail CTAs (Buy/Swap/Receive) on the same logic: a currency that is not supported by the build or deactivated by a feature flag exposes no transfer actions (footer and in-page), while supported assets without buy/swap show the existing "Swap and Buy are not supported for this asset." banner. -
#18645
6dc80faThanks @LucasWerey! - Update asset discovery analytics on mobile: addsource(previous page) to the Global Searchasset_clickedevent, enrich thePage Marketevent withsortVolume/sortMarketCap/sortChange/timeframe/category, add the selectedcategoryto the market assetbutton_clickedevent, and reshapesort_market_listto report each sort column independently. -
#18635
57bc639Thanks @LucasWerey! - Bump Lumen (design-core 0.1.17 / ui-react 0.1.41 / ui-react-visualization 0.1.20 / ui-rnative 0.1.42 / ui-rnative-visualization 0.1.19) and adapt the asset-detail price chart to its new four-state rendering. The chart now drives its loading and empty states through the LumenLineChartloading/emptyLabelprops instead of bespoke skeleton/error components, derives loading from the chart query's fetching state so changing the timeframe shows a loading state (not "No data"), and keeps the previous timeframe's line while the next one loads — scoped to the current asset so switching to an asset with no data shows the empty state rather than the previous asset's graph. -
#18587
8ae43d1Thanks @deepyjr! - Fix missing footer spinner in the mobile Market list while loading the next page on scroll -
#18575
c7dea47Thanks @LucasWerey! - Animate the global search placeholder: it now cycles through suggested phrases ("Search crypto", "Search stablecoins", "Search stock", "Search addresses") with a parallel vertical slide + fade transition (400ms, ease-out, 4s interval). The first phrase is shown at rest on screen entry, and the placeholder hides instantly while the field has a value. -
#18742
f7f8e76Thanks @LucasWerey! - Fix the Market filters drawer content spacing. The inner container added its ownpaddingHorizontal: 16on top of the drawer's built-in 16px padding, double-padding the content. The redundant padding is removed so the sorting and timeframe sections sit at the expected 16px left & right. -
#18637
1b4fc82Thanks @deepyjr! - Improve readability of the Market filters drawer by clarifying the sorting and timeframe labels and adding a divider to visually separate the two sections -
#18805
663e374Thanks @mcayuelas-ledger! - Fix the Market list "% change" sort (top gainers/losers) being stuck on the first page: the global, unfiltered gainers/losers request no longer sendstop=100, so the list now paginates through all coins like the market-cap and stocks lists. The Market Banner top performers are unaffected (they use the separategetMarketPerformersendpoint with its owntopcap). -
#18716
5a8fc01Thanks @LucasWerey! - Fix the analytics event fired when opening the average entry price definition drawer. It now emits abutton_clickedevent withbutton: market_stat_definition, matching the market stat tooltip convention, instead of an event namedmarket_stat_definition. -
#18705
9946d76Thanks @RobinVncnt! - feat: lwm q2 tour on portfolio -
#18572
93a84fbThanks @hedi-edelbloute! - feat: add new evm chain -
#18890
bcca8abThanks @ishaba! - fix(coin-sui): swap/sell from Sui failing on-device with UNKNOWN_ERROR (0x6e05) -
#18676
5bdf3f9Thanks @RobinVncnt! - Add the Q2 Wallet V4 Tour image carousel drawer on mobile, gated bylwmWallet40.params.q2Tour. -
#18604
1f11587Thanks @RobinVncnt! - Add foundation for the image-based Q2 Wallet V4 Tour: newq2Tourparameter on thelwmWallet40feature flag and a persistedhasSeenQ2WalletV4Tourmobile settings flag -
#18653
3466d5bThanks @YazhuEth! - feat(lwm): add the confirmation step to the new send flow- Add the confirmation screen shown after the device signature: a single screen that renders success or error based on the send flow status.
- Success: full-screen "Transaction signed" with "View transaction" / "Close".
- Error: a guard on top of the device flow (e.g. broadcast failure) showing the failure reason, "Save logs" and "Try again" / "Close".
-
#18520
4ace552Thanks @gre-ledger! - Move the dummy fee-estimation recipient out of@ledgerhq/cryptoassets(abandonseed.ts, now deleted) into each coin family. Every account bridge now exposes a requiredgetEstimationRecipient(account)returning a valid recipient (or throwing for an unmapped currency, like the formergetAbandonSeedAddress), and the swap layer dispatches through it instead of the central address map. -
#18853
e369e66Thanks @henri-ly! - Allow passing an explicit device model to the Speculos DMK transport. The underlying transport cannot infer the emulated device and defaults to Stax, so the e2e setups now forward the real model (e.g. nanoX) when opening the transport. -
#18659
d8df1a0Thanks @OlivierFreyssinet! - Fix known devices reducer test transport mocking -
#18724
f0cbd72Thanks @LucasWerey! - Fix the assets list screen title showing "Crypto" instead of "Stocks" when navigating to the stocks list from the portfolio. The Crypto screen header now resolves its title from the route variant, including thestockscase. -
#18821
7ba0613Thanks @RobinVncnt! - fix: backup hub tracking, feature intro scrollview and copy -
#18694
1888882Thanks @dilaouid! - feat(lwdm): remove isEvmTransaction from the new send flow -
#18678
d499ee2Thanks @amaslakov! - Fix Tezos staking amount banner breaking the layout when the keyboard opens -
#18639
27840c4Thanks @tonykhaov! - Speed up NotificationsPromptStakeFlow integration tests by registering only the stake flow under test in each parametrized case instead of all ~37 family flow screens. -
#18816
d5f19eaThanks @LucasWerey! - Add a bottom fade gradient behind the "Add account" CTA on the Wallet 4.0 accounts screen so the button stands out from the list, via a new reusableBottomGradientFootercomponent (also adopted by the asset detail footer) -
#18654
25101e2Thanks @deepyjr! - Display a 1D variation for held assets instead of "-": when an asset's 24h portfolio value change is unavailable (e.g. freshly-acquired positions whose 24h-ago balance was zero), fall back to the asset's 1D price change computed locally from countervalues, expressed in the user's counter-value currency. This applies uniformly to crypto, stablecoins and stocks, and is handled in the shared trend hooks so generic display components stay decoupled from any asset category. A flat price now renders a real 0% (instead of "-"), and the fallback stays neutral when a rate is missing. -
#18847
37eba10Thanks @semeano! - Rename the native TON cryptocurrency to Gram -
#18818
9519838Thanks @LucasWerey! - Open the "See all" accounts drawer on the asset detail screen at full height and lock its size so it can no longer be resized -
#18788
e620b15Thanks @LucasWerey! - feat(market-banner): back the "Trending" ranking with the countervalues/v3/currencies/trendingendpointThe market banner "Trending" filter (desktop and mobile) now fetches the dedicated trending
currencies list (hydrated via/v3/markets, preserving trending order and keeping only supported
entries) instead of reusing the gainers performers query. Adds agetTrendingPerformersendpoint
anduseTrendingPerformershook in live-common. -
#18750
4a6056cThanks @RobinVncnt! - feat: lwm backup hub tracking, red dot and copy update -
#18011
ca20506Thanks @hhumphrey-ledger! - Forward on the currencyId to the earn deposit screen to support the swap to earn feature -
#18549
cbc874eThanks @dilaouid! - feat(llc): effects contracts architecture for new send flow -
#18825
e441ffeThanks @ishaba! - fix: re-adding a previously onboarded canton account
Patch Changes
- Updated dependencies [
36200f9,7fcf623,7fcf623,dd0be79,913f4a8,30cfdb1,636a4cb,48dbd53,98eb6d6,ad68778,13aeeb6,1f41eee,7817aff,64b8071,9bf46c3,b8a0765,93a84fb,e32e372,798081d,1f11587,9dc9a1f,84837e9,e93a936,b383bd5,ebda9d8,4ace552,e369e66,25101e2,37eba10,94923e3,ca20506,e441ffe,ab76877]:- @ledgerhq/live-countervalues@0.21.0
- @ledgerhq/device-intent@4.0.0
- @ledgerhq/live-dmk-mobile@0.27.0
- @ledgerhq/live-dmk-shared@0.27.0
- @ledgerhq/live-dmk-speculos@0.10.0
- @shared/feature-flags@0.12.0
- @features/platform-feature-flags@0.5.0
- @ledgerhq/coin-bitcoin@0.45.0
- @ledgerhq/types-live@6.113.0
- @ledgerhq/coin-evm@4.4.0
- @ledgerhq/errors@6.37.0
- @ledgerhq/live-env@2.40.0
- @ledgerhq/client-ids@0.11.0
- @ledgerhq/coin-cosmos@0.37.0
- @ledgerhq/live-currency-format@0.11.0
- @ledgerhq/cryptoassets@13.53.0
- @ledgerhq/wallet-pnl@0.7.0
- @ledgerhq/live-countervalues-react@0.16.0
- @ledgerhq/devices@8.16.0
- @ledgerhq/coin-canton@0.27.0
- @ledgerhq/coin-casper@2.14.0
- @ledgerhq/coin-concordium@0.14.0
- @ledgerhq/coin-filecoin@1.26.0
- @ledgerhq/coin-multiversx@0.18.0
- @ledgerhq/coin-stacks@0.22.0
- @ledgerhq/ledger-wallet-framework@2.2.1
- @ledgerhq/domain-service@1.8.8
- @ledgerhq/live-wallet@0.27.4
- @ledgerhq/ledger-key-ring-protocol@0.15.2
- @ledgerhq/hw-transport@6.35.5
- @ledgerhq/hw-transport-http@6.36.5
- @ledgerhq/live-network@2.6.6
- @ledgerhq/hw-ledger-key-ring-protocol@0.10.7