4.8.0
Minor Changes
-
#18144
efa2686Thanks @deepyjr! - Add altcoin season index market card on mobile -
#17999
ffdc9eaThanks @LucasWerey! - Adapt the Asset Detail balance graph skeleton to match the Figma design, preventing the screen from jumping when market data finishes loading. -
#17978
b4f9fa8Thanks @LucasWerey! - Asset Detail: make the available balance card fully pressable to open its tooltip, instead of only the small info icon. -
#18026
cf0239dThanks @mcayuelas-ledger! - Improve asset detail graph scrubbing: show the scrubbed date and price in the market header while dragging, hide the floating tooltip, and keep the chart subtree stable for smoother gestures -
#18087
2c51ffbThanks @deepyjr! - Show an infinite symbol (∞) instead of a dash for the Asset Detail max supply when a coin is uncapped but has market data -
#18173
6095ec9Thanks @claudiiafg! - Fix Asset Detail mobile timeframe options to expose only 1D, 1W, 1M, 1Y, and ALL. -
#18130
774fef1Thanks @deepyjr! - Show empty (zero-balance) accounts in the Asset Detail accounts/addresses section -
#17784
4170470Thanks @Valentin-Ledger! - Addgo-to-swapaction to the Borrow live appcustom.navigatewallet API handler so the embedded webview can deep-link users into the Swap flow with prefilled currency, token, account, amount and affiliate parameters. Unify the desktop handler naming with mobile (custom.borrow.navigate→custom.navigate), share the handler implementation across apps via a new@ledgerhq/live-common/wallet-api/Borrow/navigatemodule, and drop the redundant desktopPageHeadernow that navigation is driven from the webview. -
#18097
9353c7dThanks @deepyjr! - Fix Buy close navigation from Asset Detail -
#18027
c606898Thanks @tonykhaov! - Add notification drawer prompt target contracts -
#17907
9901502Thanks @deepyjr! - Add assetDiscoverability param to lwmWallet40 and expose shouldDisplayAssetDiscoverability in usePortfolioViewModel and MainAppLayout -
#18086
538f011Thanks @deepyjr! - Improve mobile asset detail balance sizing. -
#18075
422c258Thanks @claudiiafg! - Update Mood Index fear/greed scale labels (Fear+, Fear, Neutral, Greed, Greed+) with CMC disclaimer in the desktop dialog, and refine Asset Detail price performance copy. -
#17940
2f90a10Thanks @dilaouid! - fix(lwm): apply bottom safe area on Cardano delegation flows -
#18239
cb3d141Thanks @LucasWerey! - Align asset chart point granularity per date range with the product spec (LIVE-31777). Adds a shared per-range resampler in live-common and wires it into both apps: desktop targets finer intervals (e.g. 1D 5min, 1M 2h, All 7d) while mobile uses coarser ones (e.g. 1D 10min, 1M 6h, All 1mo) for render performance. The resampler only coarsens, so ranges where the API serves coarser data than requested (desktop 6M) gracefully fall back to the available resolution. -
#18113
ef3789fThanks @mitchellv-ledger! - Update snap points for tour drawers -
#18000
bb1ce17Thanks @OlivierFreyssinet! - Add Connect App phase (Layer B) Device UX V2 analytics: aConnect App - *page event per EnsureAppReady state (with a 250ms dwell gate on loading) andbutton_clickedwith canonical values, all carryingsourceFlow,source,deviceUxV2andmodelId. -
#18012
d149f27Thanks @mdomanski-ext-ledger! - feat: add hedera_testnet -
#17813
8d78462Thanks @qperrot! - Fix: warn user that delegation will fail if their Sei account has not yet been linked on-chain (no prior outbound transaction) -
#17944
9c6c20dThanks @brit-ledger! - added missing reference to MoonPay Trade explorer link on LWM -
#18162
94bd9a9Thanks @OlivierFreyssinet! - Add missing Device Intent Executor button tracking events. -
#18233
5a82c90Thanks @OlivierFreyssinet! - Add Device Intent Executor bottom sheet header overrides on mobile. -
#17901
fd81ba0Thanks @lysyi3m! - Implements the Celo fee currency selection plugin across mobile and desktop. Users can now select a fee currency (CELO or supported tokens) to pay transaction fees. Updates include UI integration, gas estimation adjustments, and descriptor enhancements for Celo transactions. -
#18090
14c87eaThanks @amaslakov! - Earning-choice modal on Tezos LWM: tap "Stake" now routes via the shared getTezosEarnFlow helper to NoFunds / EarnRewards (delegate or stake) / DelegationStarted / DelegationSummary depending on funds, delegation state and the llmTezosStaking flag. Helper hoisted to live-common. -
#18174
7584ec2Thanks @ysitbon! - Pass the current app language to the feature-flags middleware (getAppLanguageselector inconfigureStore) so it can apply language filtering during resolution, making language-gated remote flags (languages_whitelisted/languages_blacklisted) resolve correctly. -
#18152
c49b7a5Thanks @LucasWerey! - Fix Asset Detail graph showing all-time high/low values that differed from the market stats table. On the "All" range, the graph's min/max markers are now anchored to the market all-time high/low, so both surfaces stay consistent. -
#18175
c32dafeThanks @claudiiafg! - Fix asset detail market price hover date formatting by range to match spec without changing chart axis formatting. -
#17952
2694121Thanks @LucasWerey! - Fix incorrect analytics on the Asset Detail screen to match the tracking plan: the address button now reportsAccount, the favourite/hide toggles reportfavourite/hide_asset, the market-stat info bubble fires abutton_clicked(market_stat_definition) event with tracking added on the available-balance bubble, and the Transactions header reportsTransactions. -
#17947
1df71edThanks @LucasWerey! - Fix earn banner card to be fully interactive instead of icon-only -
#18109
ef35323Thanks @claudiiafg! - Exclude hidden-from-portfolio assets from the global wallet balance and portfolio graph on desktop and mobile -
#17956
4f55522Thanks @LucasWerey! - Fix transaction-history analytics: the top-bar transaction-history icon now emits abutton_clickedevent withbutton: "operation_list", and thePage OperationListscreen event now reports the missinghas_pending_operationsproperty. For consistency, all top-bar entries (My Ledger, My Wallet, Discover, Notifications, Settings, transaction history) now emitbutton_clickedinstead ofmenuentry_clicked. -
#18217
7661060Thanks @mitchellv-ledger! - Migrate TwoStepSyncOnboardingCompanion to mvvm in lwm -
#18198
48e2aa9Thanks @dilaouid! - feat(lwm): bottomsheet steps for the new send flow -
#18096
ebb0d91Thanks @deepyjr! - Fix Asset Detail market stat tooltip definitions on Android -
#18197
7d0a074Thanks @deepyjr! - Add W4 Market asset search with one-character API filtering -
#17926
d30362bThanks @tonykhaov! - Add prompt layout support for generic awareness modals -
#18046
473d990Thanks @OlivierFreyssinet! - Add generic Device UX V2 error page tracking and surface disconnected device data from the device intent executor. -
#18236
3417f25Thanks @deepyjr! - Add mobile market category deeplink handling -
#18281
9b92503Thanks @dilaouid! - feat(lwm): send flow layout lwm display account name and avalaible balance -
#17872
9f2ffedThanks @mitchellv-ledger! - migrate lwm SeedCompanionStep to mvvm -
#17973
cb1adf8Thanks @gre-ledger! - Fix duplicate transaction broadcast in the send flow. The broadcast was triggered from a render prop, so any re-render of the device action result state re-submitted the same signed transaction (e.g. Hedera DUPLICATE_TRANSACTION). The broadcast now fires only once per device-action result. -
#17937
1d43b92Thanks @dilaouid! - fix(lwm): apply bottom safe area on Cosmos delegation flow -
#18138
89a4da3Thanks @jiyuzhuang! - Add prompt logic for tx alerts -
#18077
7c145a8Thanks @dilaouid! - feat(lwm): align evm validator selection and e2e stability -
#17779
43f1f63Thanks @dilaouid! - feat(lwm): update to lumen-ui-rnative 0.1.37 and fix breaking changes -
#17931
230581fThanks @mcayuelas-ledger! - Replace the Asset Detail BalanceGraph SVG placeholder with a real Lumen LineChart. Adds a 1D / 1W / 1M / 1Y range selector whose change drives the chart line color (success / error / muted), and extracts a reusableLineChartcomponent (chart plot + segmented control) undermvvm/components/. -
#18247
411d82dThanks @sarneijim! - Fix Android crash on revamped analytics opt-in Lottie animation completion -
#18142
c004237Thanks @deepyjr! - Add expanded mood index market card on mobile -
#18188
9164970Thanks @LucasWerey! - Bump Lumen design-system packages:lumen-design-core0.1.16,lumen-ui-react0.1.37,lumen-ui-rnative0.1.38,lumen-ui-react-visualization0.1.16,lumen-ui-rnative-visualization0.1.15, andcrypto-icons2.0.4.Migrations required by the breaking changes in the range:
- Menu (Radix UI → Base UI, react 0.1.36): migrated
MenuTrigger asChild→render={...}andMenuItem onSelect→onClick(Base UI firesonClick, notonSelect) in the AssetDetail options/chart menus and the Send network-fees / fee-asset selectors. - NavBar (react 0.1.36): renamed
NavBarCoinCapsule'siconprop toleadingContenton the desktop asset header. - DotIndicator (rnative/react): size scale was renamed and rescaled. Remapped consumers to preserve the rendered size (
xs→lg, default→xl) on the desktop unread indicators and mobile top-bar unread indicator. - Select removal (rnative 0.1.38): removed the now-deleted
GlobalSelectBottomSheetfrom the mobile providers (noSelectconsumers remained).
- Menu (Radix UI → Base UI, react 0.1.36): migrated
-
#18204
d649cf3Thanks @RobinVncnt! - AddlwmBackupHub/lwdBackupHubEngagement feature flags (default disabled) for the Recover Backup Hub initiative, and reserve CODEOWNERS ownership of the upcoming BackupHub MVVM folders. -
#18145
06ba394Thanks @deepyjr! - Open the Modular Drawer from the Asset Detail "Add account" button so multi-network assets (e.g. USDT, ETH) show a network-selection step, while single-network assets (e.g. BTC) go straight to the device flow -
#18023
7a523dfThanks @LucasWerey! - Update Asset detail and Mood index copy: refresh market stats labels and add the CoinGecko disclaimer, rename the addresses list to "Accounts", update the PnL detail drawer wording, refresh the Mood index scale labels (Fear+/Fear/Neutral/Greed/Greed+) and add the CoinMarketCap disclaimer, with minor spacing fixes. -
#18167
83dcf4aThanks @LucasWerey! - Add a chart options menu on the asset detail price chart letting users hide/show transaction (activity) markers. A new settings icon next to the range selector opens a menu (desktop) / bottom sheet (mobile) with a "Hide activity on price chart" toggle. The preference is persisted in the market store and applied across assets; when enabled, transaction markers are omitted from the chart while the all-time high/low markers remain. -
#18051
d5afcbaThanks @ysitbon! - Fix Firebase remote config keys for FeatureIds whosesnake_case ↔ camelCaseround-trip is lossy via lodash (llmAccountListUI,llmRebornLP,web3hub,ptxSwapReceiveTRC20WithoutTrx).fetchRemoteFlagsnow uses a forwardfeature_${snakeCase(id)} → FeatureIdlookup built fromFeatureIdSchema.options, so these flags resolve to their Firebase values instead of silently falling back to defaults. -
#17988
b83808bThanks @mcayuelas-ledger! - Enhance the shared mobileLineChartwith high/low value point markers, a touch scrubber showing a formatted date/price tooltip, and configurable area fill (showArea) and X/Y axes (showXAxis/showYAxisplus passthroughxAxis/yAxisconfig), and apply them to the AssetDetail balance chart. -
#18250
c984d17Thanks @deepyjr! - Add CVS-backed Stocks category to the mobile Market screen. -
#17827
d039a1aThanks @ysitbon! - Migrate all in-app feature-flag hook imports to@features/platform-feature-flags(Redux-backed) and decouple from@ledgerhq/live-common/featureFlags/*+@ledgerhq/types-livefor feature-flag types/constants. -
#18038
65d6fa2Thanks @LucasWerey! - Update the Analytics page Profit and loss section: replace the cost basis card with a realised return card (Unrealised + Realised), add a tappable "Profit and loss" subheader that opens the detail drawer, and refresh the detail drawer copy. -
#18137
a46db93Thanks @ysitbon! - Repoint the live-common FeatureFlags Context bridge to read feature-flag values from the Redux slice (@shared/feature-flags), gate app boot on theremoteFlagsReadyselector, and remove the now-redundant app-side Firebase RTK Query fetch layer (useFirebaseRemoteConfig,firebaseRemoteConfigApi). TheLiveConfigprovider install moves tofirebase/remoteConfig.tssoconfig_*keys stay populated. No user-facing behaviour change. -
#18231
764cc18Thanks @LucasWerey! - Enable magnetic points on the asset line chart so the touch cursor snaps to the nearest data point -
#18146
8528176Thanks @deepyjr! - Add total market cap market insight card on mobile -
#18210
98928b5Thanks @deepyjr! - Add the Wallet 4.0 Market category switcher with favorites support. -
#18211
3fce7f6Thanks @deepyjr! - Add the Wallet 4.0 Market filter bottom sheet. -
#18147
dd0faa9Thanks @deepyjr! - Add isolated market insight card error placeholders on mobile -
#18186
ff7a673Thanks @LucasWerey! - Add the v4marketListConfigRTK slice (sorting, timeframe, network, category) shared by the Market screen and the modular asset drawer. Persisted as a user preference (never reset). Gated by the asset discoverability feature flag. -
#18182
2d12107Thanks @LucasWerey! - Add the v4 Market screen assets list (Block 3): a reusableAssetListItemmarket variant, loading skeletons, an error banner, an end-of-list pagination spinner and a bottom fade gradient. Gated by the asset discoverability feature flag. -
#18258
3624b3dThanks @francois-guerin-ledger! - Support Monad native staking claim rewards: add the per-chainclaimRewardoperation (keyed by the numeric validator id) and thread the validator id from the delegation through the claim flow on mobile and desktop. Always sourcevalidatorIdfrom the delegation so claiming no longer fails with "monad staking requires valId" when the matched validator from the loaded list lacks an id. -
#18205
21227bbThanks @dilaouid! - fix(lwm): fix mobile code check CI change mock test -
#18257
fe3bfb8Thanks @OlivierFreyssinet! - Bump Lumen UI packages:@ledgerhq/lumen-ui-reactto 0.1.38,@ledgerhq/lumen-ui-react-visualizationto 0.1.17,@ledgerhq/lumen-ui-rnativeto 0.1.39, and@ledgerhq/lumen-ui-rnative-visualizationto 0.1.16. -
#18062
56e3314Thanks @jiyuzhuang! - Add migration script -
#17979
9c62b0cThanks @mcayuelas-ledger! - Plug real price-history data into the mobile Asset Detail balance graph. The chart now renders the actual range-driven price curve fetched from the market chart endpoint instead of placeholder data, and refetches/redraws when switching range (1D/1W/1M/1Y). -
#18098
9b82f1cThanks @LucasWerey! - Add PnL drawer page tracking and button spam guard -
#17987
6bd2223Thanks @RobinVncnt! - feat: lwm counterfeit warning -
#18068
fb56998Thanks @francois-guerin-ledger! - Support Monad native staking delegation: add the per-chain delegate operation (keyed by the numeric validator id) and thread the validator id from the delegate flow through to the transaction -
#18084
842726fThanks @mcayuelas-ledger! - Add transaction markers, 6m/all timeframes, point tooltips and series downsampling to the asset-detail balance graph -
#18039
4cf7c6bThanks @deepyjr! - Add empty Market screen shell shown behind the asset discoverability feature flag, with a navigator switch between MarketScreen and MarketList -
#18163
ddfb84cThanks @vcluzeau-ledger! - Make Recover URI templating actually replaceprotectId, drop unusedprotectServicesDesktop/protectServicesMobileparams, and replacecompatibleDeviceswith a hardcoded Nano S exclusion inisRecoverDisplayed.useReplacedURIpreviously only rewrote the placeholdersprotect-simu,protect-local-devandprotect-staging, so any URI hard-coded withprotect-prod(e.g. the values shipped to PROD via Firebase Remote Config) was never re-templated whenprotectIdchanged. Switching the active Recover environment therefore required a manual find-and-replace across every URI in the feature flag. The regex now matches anyprotect-<env>segment, which is a no-op whenprotectIdalready equals that segment and a true substitution otherwise.compatibleDevicesis replaced by a hardcoded check inisRecoverDisplayed— Nano S is the only device that does not support Recover and the rule is not expected to change. Dropping the array from the schema keeps the FF lean and removes the need to update Remote Config when a new device is supported.Also remove keys that have no consumer in either app —
isNew,ledgerliveStorageState,onboardingCompleted.alreadySubscribedURI, and the entireonboardingRestoreblock on desktop;ledgerliveStorageState,restoreInfoDrawer.manualStepsURI,managerStatesData.NEW.learnMoreURIandmanagerStatesData.NEW.alreadySubscribedURIon mobile.usePostOnboardingURIis narrowed toFeature_ProtectServicesMobilesince it is only called from the mobile app. Unknown keys still in Firebase are silently stripped by Zod, so this is forward-compatible with existing Remote Config payloads. -
#18100
5d663fcThanks @mcayuelas-ledger! - Refresh stale DADA-sourced asset prices by enabling polling: discovery/default rows in the desktop Assets section and the market price on the Asset Detail page (desktop & mobile) now refetch periodically instead of showing a one-time snapshot -
#18025
19dbe4cThanks @gre-ledger! - chore: upgrade the Rsbuild/Rspack build stack to v2Bump
@rsbuild/coreto 2.x,@rspack/core/@rspack/cli/@rspack/dev-server/@rspack/plugin-react-refreshto 2.x,@rslib/coreto 0.22,@rsdoctor/rspack-pluginto 2.0.0-alpha.0, related plugins, andstorybook-react-rsbuildto 3.3.4 (with the Storybook 10.x catalog bumped to 10.4).@swc/helpersis aligned to 0.5.23 so the_wrap_reg_expruntime helper emitted by@swc/coreresolves under Rspack v2's stricterexportsenforcement (mobile bundle). Desktop rspack config updated for the v2ReactRefreshRspackPluginnamed export and a@sentry/typesv6 resolution alias required by Rspack v2's stricter ESM linking. Rsdoctor loader analysis is disabled on mobile (its loader interceptor is not yet Rspack-v2 compatible); bundle analysis is unaffected. -
#18178
53ed593Thanks @sergiubreban! - fix: bottom sheet drawer when closing before animation end -
#18218
8333f85Thanks @YazhuEth! - Fix SEI_EVM validator total stake decimals: scale usei (6 decimals) to the native 18-decimal unit so displayed amounts are correct. Also fix the mobile EVM validator row to show the total staked amount instead of a hardcoded "0.00 % APR". -
#17946
b2e3154Thanks @OlivierFreyssinet! - Add Connect Device Layer B analytics events on mobile and expose the selected device on connection-error UI states. -
#18018
80e1f82Thanks @sergiubreban! - fix: QueuedDrawerBottomSheet when closing via X button -
#18265
8f9160cThanks @LucasWerey! - Market Stat definition padding -
#18195
d32b48bThanks @jiyuzhuang! - Add content card completeness verification -
#18248
57c6a77Thanks @KVNLS! - LWM: Add Ledger Sync entrypoint in accounts v4 page -
#18136
6d58638Thanks @RobinVncnt! - feat: lwm-lwd counterfeit warning tracking -
#18185
ac6a48fThanks @tonykhaov! - Fix generic awareness modal auto-open on focused mobile screens -
#18047
115763dThanks @jiyuzhuang! - Filter out content cards sync errors -
#18260
b2a31f9Thanks @mitchellv-ledger! - Update lotties and copy in lwd and lwm product tours -
#18229
bbc72feThanks @francois-guerin-ledger! - fix(coin-evm): fetch missing validator names -
#18024
79933a7Thanks @philipptpunkt! - LIVE-30737: Fix Swap opening on the legacy (pre-Wallet 4.0) navigation stack from several entry points. When the Wallet 4.0 main navigation is enabled, the SwapNavigator is a tab inside the Main navigator (with the top header and bottom tab bar); navigating to the base-level SwapNavigator instead lands on the legacy stack with no header and no tab bar. A sharednavigateToSwapTabhelper now centralises the Wallet 4.0-aware routing, and the No-funds drawer and the staking "not enough balance" swap CTA route through it (previously they always opened the legacy stack). -
#17773
4ea3354Thanks @liviuciulinaru! - Clean up legacy Swap code paths now that the Wallet 4.0 swap experience is the
default. The Wallet 4.0 feature-config gating (useWalletFeaturesConfig/
shouldDisplayWallet40MainNav) has been dropped from the swap surfaces, keeping
only the v4 path:- Mobile: every Swap entry point (the
ledgerlive://swapdeeplink, no-funds
drawers, staking error CTAs, …) now routes throughMain → Swap → SwapTab,
and the swap live-app handlers (pending operation, custom error, loading,
history) always navigate via theSwapSubScreensnavigator. The legacy
top-level Swap navigator routing and its reset action have been removed. - Mobile:
SwapTabalways rendersSwapLiveAppWallet40(the legacy
SwapLiveAppscreen branch is gone) and its header stays hidden, since the
Wallet 4.0MainNavigatortab owns the chrome. - Desktop: the Swap2 page always renders with the Wallet 4.0
PageHeader
layout, andSwapWebViewEmbeddedno longer takes anisWallet40prop (it
always uses the v4 bordered container). - Mobile + Desktop: the
lwm40enabled/lwd40enabledwebview inputs sent to
the swap live-app are now hardcoded to"true"instead of being derived from
the wallet-features config. - Removed dead swap code left over from the v4 migration: the
SwapLiveApp
screen, the legacyWebView.tsx, theuseSwapHeaderNavigation/
useSwapNavigationHelperhooks, theScreenName.SwapLiveAppenum entry, and
theSwapLiveAppNavigationParamstype.
- Mobile: every Swap entry point (the
-
#18079
1774bd6Thanks @deepyjr! - Filter the Asset Detail "Send crypto" flow by the asset's networks: the "Account to debit" screen now lists only accounts holding the asset across all of its networks (e.g. both USDT accounts on Ethereum and Algorand), reusing the multi-networkledgerIdsresolved for the Receive flow, instead of showing the full unfiltered account list. -
#17932
5842a85Thanks @Valentin-Ledger! - AddearnUpsellingandearnSimulatoras Wallet 4.0 feature flag params, expose them in the Wallet 4.0 analytics attributes, and surface them in the desktop and mobile developer settings toggles. -
#17864
0e8a93bThanks @amaslakov! - Add a Tezos balance breakdown footer to the account screen (mirrors desktop): shows Available and Delegated balances, plus Staked, Pending withdrawable, and Withdrawable amounts when Tezos staking (llmTezosStaking) is enabled, each with an info tooltip. -
#18189
865913bThanks @amaslakov! - Add the Tezos staking flow to Ledger Live Mobile (LIVE-31185). Users can stake XTZ from a delegated account; undelegated accounts are chained delegate→stake. Includes crypto/fiat amount entry, device signing, and success/error screens. -
#17672
14fbee8Thanks @LucasWerey! - Wire mobile asset entry points (Market list, Market banner, Portfolio asset rows, Crypto/Stablecoin lists, Analytics distribution cards) to the new MVVM AssetDetail screen when shouldDisplayAggregatedAssets is true; fall back to the legacy MarketDetail / Accounts > Asset routes otherwise. Add a sharedresolveAssetMarketInputshelper in@ledgerhq/asset-aggregationto derivemarketApiId/knownLedgerIds/knownMarketIdconsistently across desktop and mobile, fixing the BNB-style ledger-id ≠ market-id mismatch that caused empty market data on the asset detail screen. -
#17710
2e42f3aThanks @YazhuEth! - Wire EVM claim rewards flow on mobile, emit fees-exceed-rewards bridge warning, and mapclaimRewardstaking operations to theREWARDtype (optimistic and confirmed) so claimed rewards show as incoming in the operation history. Bump@ledgerhq/coin-module-frameworkto 3.2.0 so'claimReward'is part of the framework'sStakingOperationunion. -
#17868
18f7c47Thanks @deepyjr! - Expose resolved multi-networkledgerIdsfromuseAssetMarketDataso consumers (mobile Asset Detail → Receive flow) get the full CoinGecko list instead of the single idmarketCurrencyData.ledgerIdscollapses to when the DADA market entry wins.Add
useReceiveNetworkLedgerIds, which resolves a token's complete network list from DADA so the Receive flow can offer every network (including ones not held yet). CoinGecko'sledgerIdsis unreliable for tokens — it can collapse to a single network or expose only a partial subset (e.g. WETH surfaces just Ethereum + Neon while DADA knows 11 networks) — so we always query DADA and only keep its list when it is strictly more complete than the CoinGecko fallback. -
#18006
27a6979Thanks @amaslakov! - Fix Tezos transaction validation to gate on the spendable (liquid) balance instead of the total balance. Delegate, undelegate, send, stake, unstake, and finalize now correctly block when staked or unstaked-frozen funds leave too little liquid XTZ to cover fees, instead of passing client-side and failing at broadcast. Also consolidateuseTezosStakingInfo's available balance onto the single source of truth (account.spendableBalance). On desktop, the staking flow's validator step now blocks before signing the initial delegation when the spendable balance can't cover the delegation fee, instead of letting it broadcast and fail. The displayed spendable/delegated balance now derives the unstaked-frozen total from the account-level field (the same source as the validation gate), so a failedunstake_requestsfetch no longer transiently overstates spendable. The staking flow's "Use Max" / maximum-spendable amount now also excludes unstaked-frozen funds (not stakeable until finalized), matching the validation gate — previously it overstated the stakeable amount and produced an unsendable value.Also on desktop: show the staking and unstaking panels before the delegation panel; show the staked principal instead of the fee for stake, unstake, and finalize operations in the operations list and details drawer; and reword the stake insufficient-funds error to reference the balance instead of delegation.
Patch Changes
- Updated dependencies [
c606898,4695b68,9901502,0af4c92,0ebf28c,fe67b0a,d149f27,2437b0d,8d78462,1b89031,b14d5cc,2977361,36f16ea,7eb1ec7,7584ec2,473d990,4e8ba32,f1334e7,d649cf3,d081ef1,3624b3d,16694d5,95c31f8,2670997,d19f9de,fb56998,ddfb84c,8269fe2,3e71e65,8333f85,b2e3154,6f84bbf,ec38133,cf90292,8c0f5f2,cc4dd4d,bbc72fe,8c9596d,5842a85,2e42f3a]:- @ledgerhq/types-live@6.111.0
- @shared/feature-flags@0.10.0
- @ledgerhq/wallet-pnl@0.5.0
- @ledgerhq/coin-bitcoin@0.44.0
- @ledgerhq/cryptoassets@13.51.0
- @ledgerhq/coin-filecoin@1.25.0
- @ledgerhq/ledger-wallet-framework@2.1.0
- @ledgerhq/live-countervalues-react@0.15.0
- @ledgerhq/live-countervalues@0.19.0
- @ledgerhq/coin-evm@4.2.0
- @ledgerhq/device-intent@3.2.0
- @ledgerhq/live-env@2.38.0
- @ledgerhq/live-config@3.8.0
- @features/platform-feature-flags@0.3.0
- @ledgerhq/coin-cosmos@0.35.0
- @ledgerhq/live-dmk-shared@0.26.0
- @ledgerhq/ledger-key-ring-protocol@0.15.0
- @ledgerhq/live-dmk-mobile@0.25.0
- @ledgerhq/coin-concordium@0.13.0
- @ledgerhq/errors@6.36.0
- @ledgerhq/coin-canton@0.26.1
- @ledgerhq/coin-casper@2.13.6
- @ledgerhq/coin-multiversx@0.17.3
- @ledgerhq/coin-stacks@0.21.6
- @ledgerhq/domain-service@1.8.6
- @ledgerhq/live-wallet@0.27.2
- @ledgerhq/live-currency-format@0.9.2
- @ledgerhq/client-ids@0.10.2
- @ledgerhq/hw-ledger-key-ring-protocol@0.10.5
- @ledgerhq/live-dmk-speculos@0.9.1
- @ledgerhq/live-network@2.6.4
- @ledgerhq/devices@8.15.1
- @ledgerhq/hw-transport@6.35.4
- @ledgerhq/hw-transport-http@6.36.4