@ledgerhq/live-desktop@4.12.0
4.12.0
Minor Changes
-
#19411
ca37cfeThanks @dilaouid! - fix(algorand): not opt in asa error message -
#19373
1f34a90Thanks @jiyuzhuang! - Fix GAM CTA visibility and empty-link click behavior on desktop and mobile -
#19396
25fd71bThanks @amaslakov! - Hide the "Compound" claim-rewards option for Cosmos-family chains that use epoching (wrapped) staking messages, such as Babylon. Compound restaking is not supported on those chains yet — its embedded delegate is not epoching-wrapped — so only "Cash in" (claim rewards) is offered, preventing the "claimRewardCompound is not supported" error. -
#19501
9824fc8Thanks @amaslakov! - Fix the Cosmos-family "Undelegating" tooltip in the desktop account summary footer, which hardcoded a 21-day timelock for every chain. It now uses each chain's actual unbonding period (e.g. ~2 days for Babylon, 14 for Osmosis, 30 for dYdX), matching the value already shown in the delegation section.Also make the Cosmos chain factory alias the crypto_org_croeseid testnet to crypto_org, so it resolves chain params instead of throwing (previously only the osmosis alias was handled).
-
#19628
8df21c9Thanks @qperrot! - Fix coin control not showing selected coins after entering an amount, and refine the coin control screen layout (subheader sizing, header spacing, and scrollbar gutter) -
#19667
40a231eThanks @tonykhaov! - Add Segment analytics for the large-screen upsell modal (LIVE-33163): flow dismiss/CTA lifecycle ports and desktop trackPage/track wiring. -
#19468
6daa358Thanks @claudiiafg! - Add Desktop Developer settings debug controls for thelwdContactsrollout flag. -
#19365
40903c6Thanks @Sebastien-Dav1d! - Add new page to lwd that opens devtools -
#19469
a8a1e70Thanks @deepyjr! - Fix Contacts entry config test expectations -
#19643
1cc6fffThanks @tonykhaov! - Add large-screen upsell modal UI on desktop (LIVE-33162). -
#19577
a96b7c8Thanks @gre-ledger! - Fix Reset App to fully reboot Electron so user identities are regenerated on next launch -
#19217
e26e68eThanks @qperrot! - families/bitcoin/bridgeExtensions.ts now implements the full edit-transaction contract: getEditTransactionPatch, getEditTransactionStatus, getFormattedFeeFields, hasMinimumFundsToCancel, hasMinimumFundsToSpeedUp, isStrategyDisabled, isTransactionConfirmed.
The Bitcoin edit-transaction helpers (RBF replace/cancel, fee formatting, strategy validation) live under ledger-live-common/src/families/bitcoin/editTransaction/, with unit tests.
Desktop & mobile Bitcoin edit flows (Body.tsx, StepFees, StepMethod, MethodSelection, EditTransactionSummary) reach these helpers through getAccountBridge(account) instead of importing them directly.hasMinimumFundsToCancel / hasMinimumFundsToSpeedUp now return Promise. Bitcoin's minimum-funds checks are inherently async (RBF fee lookup) and all call sites already await them; EVM's implementations were updated accordingly.
Bitcoin's isStrategyDisabled uses a slightly different shape than the generic contract, adapted via a thin wrapper (same pattern as EVM): it maps the contract's feeData to Bitcoin's feesStrategy, and its transaction param was widened to accept the real (nullable) feePerByte with a guard. isTransactionConfirmed follows the { account, hash } contract signature directly.
-
#19614
8998c72Thanks @jeportie! - Expose the swap transaction-details provider link URL via test/accessibility attributes so E2E can conditionally verify the provider link only when a provider URL exists (QAA-721) -
#19621
bc0573eThanks @francois-guerin-ledger! - Fix EVM staking operation history showing the user's own address instead of the staking contract as recipient -
#19582
97f30e4Thanks @gre-ledger! - Drop settings.supportedCounterValues — now derived at runtime from @domain/entity-currency-fiat -
#19565
293720fThanks @deepyjr! - Add the Contacts page shell with an empty list to the Desktop Contacts page. -
#19388
c7d0489Thanks @mcayuelas-ledger! - Addledgerlive://paytabdeeplink that navigates to the Pay Tab screen when thelwdPayTabfeature flag is enabled, falling back to the default handler otherwise. -
#19340
5feb402Thanks @deepyjr! - Add dust filter tracking and active-state copy. -
#19445
57e7569Thanks @ypolishchuk-ledger! - Add stabledata-testidattributes to the operation details drawer amount and identifier labels to make E2E selectors robust against duplicate on-page text. -
#19519
63792baThanks @cfloume! - fix: prevent Q2 tour from showing to users who haven't onboarded -
#19342
1ee03bdThanks @qperrot! - Fix EVM native staking delegation row not always showing the validator name on the account page. The moniker is now resolved from the reactive validators hook (the same source as the Delegate modal) instead ofaccount.stakingResources.validators, which was only populated by a successful, non-empty account sync and could leave the raw validator address showing until the next sync. -
#19220
996c76bThanks @ysitbon! - Make the@ledgerhq/cryptoassetsfiat registry injectable (setFiatCurrenciesStore) and inject the@domain/entity-currency-fiatregistry at each app's bootstrap, so the domain registry is the single runtime source of truth for fiat currency data. The bundled fiat list stays as the fallback and is kept in sync by the existing parity test. -
#19331
71884d7Thanks @ysitbon! - Activate the RTK Query supported-fiats flow and retire the legacy CVS polling path: boot-time query populates the Redux slice; settings and countervalue selectors read from the slice synchronously. -
#19486
b3557c0Thanks @deepyjr! - Filter incoming and outgoing dust transactions in history. -
#19560
76049c2Thanks @gre-ledger! - Fix logger.critical not capturing non-Error thrown values -
#19419
0040b67Thanks @deepyjr! - Filter incoming native dust transactions in operation histories. -
#19536
f854c29Thanks @amaslakov! - Warn and explain when Tezos staking is blocked by an unfinalizable unstake to another validator: translate the raw fee-estimation error into a clear message, and show an inline warning on the change-validator summary while a pending unstake is still unfinalizable -
#19642
465ebecThanks @tonykhaov! - Wire the large-screen upsell modal frequency state into desktop (LIVE-33160 / LIVE-33161): register the reducer and hydrate/persist it via storage. Composition hook and UI land in a later slice. -
#19228
3fc5836Thanks @lysyi3m! - Fix Tezosaccount.getPublicKey(Wallet API): resolve the account public key fromxpubinstead ofseedIdentifier, which is derived from a different path (44'/1729'/0') and returned the same wrong address for every Tezos account. Whenxpubdoes not contain a valid base58 Tezos public key (edpk/sppk/p2pk), the request is rejected with a dedicatedAccountPublicKeyUnavailableerror and Ledger Live surfaces it natively (error modal on desktop, bottom modal on mobile), prompting the user to re-add the account instead of failing silently. The per-family resolver map is retained for chains that need bespoke retrieval. Also stop seedingxpubwith the address on Tezos QR import. -
#19370
cd43e66Thanks @pawell24! - Rename "Ledger by Chorus One" to "Ledger by Bitwise" following Bitwise's acquisition of Chorus One -
#19379
16be920Thanks @mcayuelas-ledger! - Add Pay Tab to the desktop sidebar, replacing the Card entry when thelwdPayTabfeature flag is enabled -
#19594
569d68aThanks @claudiiafg! - Fix Analytics chart header to show Total balance label, md trend sizing, scrub-driven balance and date updates, and hide the chart scrubber tooltip. -
#19551
16edbeaThanks @claudiiafg! - Add My Wallet Contact entry and gated empty Contacts page shell backed by domain contacts state. -
#19389
c363a8cThanks @claudiiafg! - Add Desktop Contacts MVVM feature flag gate forlwdContactsentry configuration. -
#19277
77c8a26Thanks @ishaba! - Celo Custom-fees "Pay fees in" options now show a currency icon and held balance for native CELO and each allowlisted fee token, on desktop and mobile. The genericFeeAssetOptioncontract gains two optional fields (currency,balance); the UI formats the raw balance with the user's locale. Coins that don't set them render exactly as before. -
#19425
35f0138Thanks @dilaouid! - feat(xion): rebrand Xion to Verona (display name/ticker XION -> VERONA, main unit code XION -> VERONA, base denom uxion unchanged) and backport the coin-cosmos default LCD to verona-api.polkachu.com -
#19685
c9f7d49Thanks @koda-apps! - BUmp to lumen latest versions -
#19552
279b755Thanks @gre-ledger! - Migrate @ledgerhq/client-ids to DDD domain packages: @domain/entity-client-identity and @domain/api-push-devices -
#19406
eefadedThanks @mcayuelas-ledger! - migrate cmc-client from @ledgerhq/live-common to DDD architecture, introducing dedicated domain packages for market-sentiment and altcoins-sentiment entities, APIs, and fear-and-greed flow utilities -
#19682
eb2a360Thanks @cfloume! - Include LWD and LWM product tour feature flags in analytics attributes. -
#19451
a440904Thanks @tonykhaov! - Fix desktop pre-release and nightly builds using the wrong Braze API key. Pre-release (RC) now correctly shares the production Braze app withrelease(validating the real integration before shipping, matching mobile's convention), and nightly now uses the staging Braze app (internal-only, safe for CRM to test canvases against), instead of both silently falling back to production -
#19541
1c77aa0Thanks @gre-ledger! - Reduce console.error usage in main process and Datadog config to lower monitoring noise -
#19459
11b78fbThanks @ysitbon! - Repoint desktop UI currency reads from@ledgerhq/cryptoassetsand the@ledgerhq/live-common/currenciesbarrel to@domain/entity-currency-{crypto,fiat}and@features/platform-currencieshooks directly. -
#19475
d2c3ffaThanks @VicAlbr! - Add SUI delegate and undelegate e2e tests for LWD and LWM, with supporting testIds -
#19662
26e7fbdThanks @vtaranushenko-ext-ledger! - Extract the Aleo private-send quick amount tier selection logic (Fast/Balanced/Full record boundaries) into@ledgerhq/coin-aleoand a shareduseAleoQuickAmountSelectorhook in@ledgerhq/live-common, and refactor the desktop QuickAmountSelector to consume it instead of duplicating the logic locally. -
#19376
22062feThanks @qperrot! - Fix: scroll list for Sei redelegation -
#19496
0b48c73Thanks @deepyjr! - Move Contacts feature flag parameter normalization and updates into the shared flow package for both debug tools. -
#19495
c9aec57Thanks @YazhuEth! - Fix Stellar "Issuer is invalid" (and wrong lowercase asset code) when adding an asset. The add-asset screens parsed the case-sensitive Stellar code and issuer out of the CAL token id, which CAL lowercases; read them from the case-preserved token fields (name and contractAddress) instead. Also disable the desktop "Continue" button until an asset is selected. -
#19421
1f79bd4Thanks @mcayuelas-ledger! - Fix CryptoAddresses asset cell showing blacklisted tokens -
#19449
65e8b15Thanks @philipptpunkt! - Fix minor UI issues on the Swap transaction status dialog on Desktop (canvas-sheet background and spacing below the main button). Forward aswapIdfrom theswapRedirectToHistoryhandler to the Swap History screen on both Desktop and Mobile so the transaction status dialog/drawer opens automatically for the matching operation. -
#19232
91771eeThanks @beths-ledger! - Pass theswapToEarnfeature flag to the Earn app as a{ enabled, params? }object, consistent with how other flags are forwarded -
#19513
6e7c51aThanks @mcayuelas-ledger! - Add@features/flow-cardpackage withCardScreencomponent integrated into the PayTab on desktop and mobile. -
#19275
2c79418Thanks @sarneijim! - Support token asset detail deeplinks safely: parse and sanitize market/asset deeplink URLs (preserving token id case and avoiding ReDoS) -
#19298
43d4872Thanks @mdomanski-ext-ledger! - feat: aleo mobile send flow customization -
#19255
a399c13Thanks @jiyuzhuang! - Wire Welcome analytics opt-in screen v2 as variant B behind lwdAnalyticsOptInScreenV2
Patch Changes
- Updated dependencies [
4b73f23,8f30c75,ca37cfe,1f34a90,25fd71b,9824fc8,0f85077,8df21c9,40a231e,e478b6e,c75213b,e379f4d,a15b864,681cd06,5bada3c,2c28696,1cc6fff,45584e4,d7ce552,39ed467,e26e68e,bc0573e,fad98a1,293720f,e89bc86,5890c95,ea792bc,75a33a8,2d58d35,47b8889,bde85a7,2b4a016,bae43dd,d3862bb,07c4724,47b8889,996c76b,71884d7,68dffc1,b3557c0,8fd4f90,b48b348,0040b67,9479c28,682c34b,dccffa5,93da625,6627cb7,083452c,3fc5836,cd43e66,47b8889,2ee5ac1,2f7619d,07bfc2c,16edbea,2b676ff,4668086,fcc75ef,77c8a26,3e127f7,35f0138,279b755,452be85,eefaded,d9dc6e6,ad38c6d,50660af,94b454b,a952f84,edc897d,ff9d1d2,fc44f1e,d631f0d,44a08fa,26e7fbd,ddc6499,92b234f,fd9da5e,0b48c73,deaa7ba,f2de6f4,6e7c51a,f7d68bb,2c79418,e56f1b5,c12485a,6ef44af,6ef44af,8238860]:- @ledgerhq/coin-bitcoin@0.47.0
- @ledgerhq/coin-canton@0.29.0
- @ledgerhq/coin-cardano@0.30.0
- @ledgerhq/coin-casper@2.16.0
- @ledgerhq/coin-concordium@0.16.0
- @ledgerhq/coin-cosmos@0.39.0
- @ledgerhq/coin-evm@4.6.0
- @ledgerhq/coin-filecoin@1.28.0
- @ledgerhq/ledger-wallet-framework@2.4.0
- @ledgerhq/live-common@36.5.0
- @ledgerhq/cryptoassets@13.55.0
- @features/flow-large-screen-upsell@0.2.0
- @shared/feature-flags@0.14.0
- @features/flow-contacts@0.2.0
- @ledgerhq/live-env@2.42.0
- @domain/api-pay-card@0.2.0
- @domain/entity-pay-card@0.2.0
- @features/flow-card@0.2.0
- @domain/entity-contact@0.2.0
- @ledgerhq/types-live@6.115.0
- @domain/entity-currency-crypto@0.6.0
- @domain/entity-currency-fiat@0.3.0
- @ledgerhq/live-wallet@0.29.0
- @domain/entity-large-screen-upsell-modal@0.2.0
- @ledgerhq/ledger-key-ring-protocol@0.17.0
- @devtools/bindings@0.2.0
- @ledgerhq/asset-detail@0.9.0
- @ledgerhq/live-currency-format@0.13.0
- @domain/entity-market-sentiment@0.2.0
- @domain/api-altcoins-sentiment@0.2.0
- @features/flow-fear-and-greed@0.2.0
- @domain/api-market-sentiment@0.2.0
- @features/platform-currencies@0.3.0
- @ledgerhq/asset-aggregation@0.11.0
- @ledgerhq/live-countervalues@0.22.1
- @ledgerhq/live-countervalues-react@0.16.2
- @ledgerhq/wallet-analytics@0.2.1
- @ledgerhq/wallet-pnl@0.7.2
- @ledgerhq/live-dmk-desktop@0.20.1
- @features/platform-feature-flags@0.6.1
- @ledgerhq/hw-ledger-key-ring-protocol@0.11.1
- @ledgerhq/live-dmk-speculos@0.10.2
- @ledgerhq/live-network@2.6.8
- @ledgerhq/domain-service@1.8.10
- @domain/api-currency-token@0.2.1
- @domain/api-currency-fiat@0.2.1
- @devtools/shell@0.5.1