github LedgerHQ/ledger-live @ledgerhq/live-desktop@4.28.0

latest release: live-mobile@4.28.0
one hour ago

4.28.0

Minor Changes

  • #24189 711b543 Thanks @liviuciulinaru! - Let users pick the network when they swap a multi-network asset from Market or Asset Detail, also when they have no account for it. Show only the networks of the asset itself, so USDC no longer opens an extra asset step. When the drawer keeps only one network, open the account step on that network.

  • #24195 1fa3701 Thanks @LucasWerey! - Account Detail sends the events of its tracking plan, with the same names and properties on both apps

  • #24262 4bd0f62 Thanks @ovoronkov-ledger! - chore(lumen): bump ui-rnative to 0.1.72 for rn 0.86 (LIVE-39312)

    Bump lumen-ui-rnative to 0.1.72, lumen-ui-react to 0.1.69 and lumen-utils-shared to 0.1.19. The new lumen-ui-rnative peer ranges accept react-native 0.86, react-native-worklets 0.10 and expo-haptics 57. Lumen native inputs now expose their label as the TextInput accessibility label and hide the visual label from accessibility, so mobile tests query these inputs with getByLabelText.

  • #24412 39cb975 Thanks @cted-ledger! - Sample estimateFees and validateIntent successes in coin_module_call with a new preparationSampleRate param of the coinObservability flag (default 0.1): the bridge calls them on every edit of a transaction, so sending each call made them most of the volume. Their failures are still always sent, and craftTransaction, craftRawTransaction, craftTransactionData, combine and broadcast stay unsampled. Each coin_module_call now carries its tier's sampleRate and an inSample flag, so dashboards can compute unbiased failure rates and estimate volumes from the sample.

  • #23955 03cafaf Thanks @gre-ledger! - Bump @ledgerhq/zcash-utils to 2.9.0, which ships each native binary in its own optional package. The desktop app now packages only the binaries it runs on (darwin arm64/x64, win32 x64, linux x64) instead of all six.

  • #24339 eac050d Thanks @LucasWerey! - Account Detail shows the Cardano delegation and balances with the shared Lumen components

  • #24215 7185de6 Thanks @gre-ledger! - Value each operation in the fiat a query asks for, at its date, with the countervalue query

  • #24235 0ebe8ea Thanks @claudiiafg! - Hide the account detail empty state when a receive updates the balance before operations

  • #24348 cc73a3f Thanks @claudiiafg! - Widen the account delegations validator column so the validator name is shown in full

  • #24354 2c728a2 Thanks @claudiiafg! - Shrink the account asset picker dialog to its content when few assets are listed

  • #24325 be81b1c Thanks @deepyjr! - Add an account-detail DevTools tool to reset the Account Detail card that redirects to Analytics

  • #24556 e6c438d Thanks @deepyjr! - Add the native Account Analytics surface (filter chips opening a bottom sheet, status and Retry) and export AccountAnalytics from the package root for both apps.

  • #24554 e7a4d5a Thanks @deepyjr! - Share the Analytics balance, renderer status and PnL scope rules between the apps through the Account Analytics package.

  • #24553 ba1b7c4 Thanks @deepyjr! - Share the Analytics catalog rules (eligible positions, asset grouping, catalog state) between the apps through the Account Analytics package.

  • #24572 a85db5d Thanks @claudiiafg! - Asset detail "See all" transactions no longer lists the operations of the tokens held by the same account

  • #24127 1c99745 Thanks @VicAlbr! - Add a test id to the network fees fiat value on the custom fees screen

  • #24443 c842892 Thanks @LucasWerey! - Send network instead of currency and drop isTokenAccount on the account detail page events

  • #24468 f720cc5 Thanks @deepyjr! - Stop the Analytics chart from flickering when the asset, account or range changes: keep the previous curve on screen until the new one is ready instead of blanking it.

  • #24463 6ef8d46 Thanks @deepyjr! - Show the Analytics balance and chart when a held asset has no price, leaving that asset out of the total as the Portfolio does. Analytics still reports unavailable data when no held asset of the selection has a price.

  • #24226 d701bc7 Thanks @qperrot! - fix(coin-bitcoin): do not spend the inputs of pending operations

    prepareTransaction and estimateMaxSpendable exclude the UTXOs spent by the account's own
    pending operations. When the explorer does not report mempool spends, a sync listed them as
    spendable again and the next send was rejected with txn-mempool-conflict. An RBF edit keeps
    the inputs of the operation it replaces.

    addPendingOperation keeps every pending UTXO operation (those with extra.inputs) instead of
    only the latest one, and removes one only when the new operation spends one of its inputs (an RBF
    replacement). Operations of other coins are unchanged.

    isOldestBitcoinPendingOperation takes the operation instead of its date: a pending operation
    can be sped up unless it spends an output of another unconfirmed operation of the account. Pending
    sends of unrelated UTXOs no longer block each other's speed-up.

  • #24520 f781149 Thanks @ysitbon! - Brand AggregatedAssetId and MarketId, and replace both copies of dadaIdToMarketId with the typed toMarketId and parseMarketRef bridge in @domain/api-aggregated-assets

  • #24541 120e07b Thanks @LucHebrard! - Send in-progress Ledger Recover users from the Backup Hub to the Recover upsell page

  • #24318 fb3956b Thanks @vpenskyi-ledger! - Sign the Perps SwapKit withdrawal on the Ethereum app and submit it on desktop and mobile

  • #24350 d36ed0a Thanks @OlivierFreyssinet! - Remove the supportDeviceApex feature flag: Apex is always listed in onboarding device selection and BLE pairing

  • #24255 81f924e Thanks @deepyjr! - Integrate scoped Analytics filters, current balance and all-time PnL into desktop.

  • #24500 6da9b38 Thanks @gre-ledger! - Bump ts-libs packages (@ledgerhq/auth 0.2.0, @ledgerhq/devices 8.19.0, @ledgerhq/domain-service 1.10.0, @ledgerhq/evm-tools 2.1.0, @ledgerhq/hw-ledger-key-ring-protocol 1.1.0, @ledgerhq/hw-transport 6.37.0, @ledgerhq/hw-transport-mocker 6.36.0, @ledgerhq/ledger-key-ring-protocol 1.2.0, @ledgerhq/live-config 3.10.0, @ledgerhq/live-currency-format 0.17.0, @ledgerhq/live-env 4.2.0, @ledgerhq/live-network 3.3.0, @ledgerhq/live-promise 0.5.0, @ledgerhq/logs 6.20.0, @ledgerhq/psbtv2 0.7.0).

  • #24292 c6d8c4f Thanks @deepyjr! - Add the desktop Analytics catalog and scoped balance readers.

  • #24245 c533e40 Thanks @vpenskyi-ledger! - Add the Perps withdraw summary screen with an auto-refreshing SwapKit quote on desktop and mobile

  • #24472 55a43bc Thanks @claudiiafg! - Show the 1D market variation for an unchanged account balance

  • #24326 e6cf079 Thanks @mcayuelas-ledger! - Show the full all-time high and all-time low dates on the desktop asset page.

  • #24437 716dba7 Thanks @mcayuelas-ledger! - Drop the legacy currency distribution and always build the asset distribution

  • #24293 94961d4 Thanks @deepyjr! - Add the shared Analytics web surface with asset/account filters and injected chart and PnL renderers.

  • #24415 4db45b9 Thanks @LucasWerey! - Add the coin-config DevTool on desktop and mobile to override LiveConfig values. The overrides slice moves to the new @shared/live-config-overrides package, and mobile now keeps the overrides across restarts

  • #24217 298bf8d Thanks @ysitbon! - ContactDetailActionsMenu moves to the native platform entry @features/flow-contacts-detail/native and reads its bottom inset from the sheet context; ContactDetailActions becomes internal. The universal entry is one unconditioned src/index.ts, ContactAddressDetailDialog and ContactsEditSignerMismatchDialog each have one props contract, ContactDetailView takes onOpenLedgerWalletAccounts and onOpenAddressDetail, and the web address detail dialog shows a Share tile when onShareAddress is set.

  • #24370 cea0076 Thanks @ysitbon! - Add CryptoOrTokenCurrencyIdSchema and CryptoOrTokenCurrencyId to @domain/entity-currency, replacing the duplicated BalanceAssetIdSchema, ContactCurrencyIdSchema and the send flow's local union. Runtime parsing is unchanged.

  • #24591 9b95c30 Thanks @gre-ledger! - Run the desktop rspack tooling with Node's native TypeScript support instead of ts-node

  • #24515 8baa24b Thanks @gre-ledger! - Type SelectCurrency options for TypeScript 7.1

  • #24575 235a1ae Thanks @OlivierFreyssinet! - Make onExecutorStateChanged and cancelIntentRequestId optional on the device intent executor

  • #24303 e8ca231 Thanks @ysitbon! - Split device onboarding by job: @features/platform-device-onboarding runs the actor with useDeviceOnboardingActor, and @devtools/bindings builds the devtool's log, context and next states with useDeviceOnboardingToolState and useDeviceOnboardingToolProps. The mobile funnel no longer imports @devtools/*, and the desktop device onboarding code moves under DevTools

  • #24271 ef95b2e Thanks @mcayuelas-ledger! - Drop the CoinGecko market client and keep the USD chart fallback

  • #24683 d5eefc2 Thanks @ben778899! - Fake update to trigger the update test cases.

  • #24297 6464950 Thanks @ysitbon! - @features/flow-contacts exposes ContactsView and ContactsButton from a single . entry with shared ContactsViewProps and ContactsButtonProps contracts. List logic and platform contact hooks are imported from @features/flow-contacts-list and @features/platform-contacts. Desktop and mobile hosts mount feature and Ledger Sync introduction UI outside ContactsView.

  • #24487 c0c5bff Thanks @amaslakov! - Enable the Tron votes panel earn rewards and desktop vote now actions, routed like the account Earn action

  • #23539 310127f Thanks @ishaba! - Show the energy provider's terms on the Tronify rent signature step, which the user accepts by signing, and align the rent, polling and transfer step copy with the validated wording

  • #23466 ad006b9 Thanks @ishaba! - Resolve TRON TRC10 tokens by their CAL token_identifier

  • #24594 b67184a Thanks @claudiiafg! - Align desktop 1D asset and account variation with the market banner

  • #24406 3a0d8aa Thanks @mcayuelas-ledger! - Always show aggregated assets and drop the lwmWallet40 aggregatedAssets param

  • #24295 3571671 Thanks @ysitbon! - @features/flow-pay-contact exports PaySuccess and the address picker from ., with ./web and ./native platform entries for Contacts. PaySuccess shares one props contract; suffix imports are removed from the package.

  • #24449 1ca6846 Thanks @YazhuEth! - Add custom.predictions.bindAccount and custom.predictions.reportSetup: Ledger Wallet asks the user to confirm on their device that they own the account picked in Predictions, then shows the trading wallet setup the live app reports. AnimatedHeight now counts SVG children, like a loading spinner, so the dialog no longer clips its bottom

  • #24149 1c210e4 Thanks @YazhuEth! - Add a Predictions card to the portfolio services entry points and a Predictions screen that opens the live app, behind the ptxPredictionsLiveAppDesktop and ptxPredictionsLiveAppMobile flags

  • #24475 a2354b8 Thanks @OlivierFreyssinet! - Show the Device Intent Executor dialog on the Lumen sheet background

  • #24240 ae675f9 Thanks @claudiiafg! - Cover the remaining Account Detail integration scenarios on desktop and mobile

  • #23551 4a22a1d Thanks @YazhuEth! - Add the Predictions onboarding sheet behind the custom.predictions.onboard and custom.predictions.close Wallet API methods

  • #24110 7324065 Thanks @qperrot! - Remove Fantom, whose network migrated to Sonic

  • #24205 7647d9b Thanks @henri-ly! - Block sends of known non-transferable ERC-20 tokens with a TokenNonTransferable amount error

  • #24371 32be7d2 Thanks @ysitbon! - Lock the universal-components waiver list empty, remove waiver helpers from enforce-package-structure, and record the rollout as complete in the ADR.

  • #24134 b582a36 Thanks @renovate-operator-ledger! - chore(deps): update dependency @ledgerhq/crypto-icons to v2.0.7

    • Updated @ledgerhq/crypto-icons to 2.0.7
  • #24290 94df3d0 Thanks @renovate-operator-ledger! - [LWDM] chore(deps): update dependency oxfmt to v0.75.0

    • Updated oxfmt to 0.75.0
  • #24291 4fc4674 Thanks @renovate-operator-ledger! - chore(deps): update dependency oxlint to v1.90.0

    • Updated oxlint to 1.90.0
  • #24392 934970a Thanks @renovate-operator-ledger! - chore(deps): update dependency @reduxjs/toolkit to v2.13.0

    • Updated @reduxjs/toolkit to 2.13.0
  • #24400 836c45b Thanks @renovate-operator-ledger! - fix(deps): update dependency dotenv to v16.4.7

    • Updated dotenv to 16.4.7
  • #24429 0a430b8 Thanks @renovate-operator-ledger! - chore(deps): update dependency cross-env to v10

    • Updated cross-env to 10.1.0
  • #24545 dfbc33b Thanks @renovate-operator-ledger! - chore(deps): update dependency @electron/notarize to v3.1.2

    • Updated @electron/notarize to 3.1.2
  • #24157 d528ea0 Thanks @claudiiafg! - Share the account asset picker across desktop and mobile

  • #24050 6a70efc Thanks @OlivierFreyssinet! - Share the device mock server session client and URL helpers in @features/platform-device-mock-server and the legacy transport in live-dmk-shared, and use them in Ledger Wallet Desktop

  • #24196 77e21f9 Thanks @deepyjr! - Add the Account Detail Analytics introduction in a dedicated layout slot above the custom place, with dismissal persisted across desktop restarts and account entry context.

  • #24568 e7b21f8 Thanks @qperrot! - Remove Stargaze from Ledger Wallet

  • #24431 41c9607 Thanks @lysyi3m! - Count staked SUI in the account balance; spend and stake checks use the spendable balance only. Stake operations move the balance by their gas only, and an unstake also by its reward, so the balance history stays consistent.

  • #24522 e67063f Thanks @gre-ledger! - Import bignumber.js through its default export, the form bignumber.js 11 types support

  • #24462 73bd4ee Thanks @deepyjr! - Track the Analytics filters, the Analytics banner click and its visibility on the account page.

  • #24561 6d015f0 Thanks @mateuszpalosz-ext! - Add the XRP add token flow, trust limit edit and rippling state display on desktop, behind enabledTokenStandards

Patch Changes

  • Updated dependencies [0d2aead, 711b543, 39cb975, 03cafaf, 7185de6, 522d62b, 0ebe8ea, cd66cae, cc73a3f, 2c728a2, be81b1c, e6c438d, e7a4d5a, ba1b7c4, 64c16b8, cc4eced, 59280f5, c842892, b77803f, a95a6bc, d701bc7, 93aef61, ac116ba, f781149, fb3956b, 842a9a5, d02425e, d36ed0a, 81f924e, 3835bab, 6da9b38, c6d8c4f, b282f26, c533e40, 72da4b1, 55a43bc, 420409b, 716dba7, 94961d4, 498cbdd, 4db45b9, 6ab5a87, ed8d437, 360d6c9, 298bf8d, 085d781, cea0076, 31f7eba, 235a1ae, e8ca231, ef95b2e, e051c84, 6464950, 5bc9bb1, 0b3f0f2, 310127f, ad006b9, 9621949, 06c81d3, 62bdc34, b67184a, 3a0d8aa, 96fac1e, 0d83181, e186896, a6c95e2, 6196234, 2cee99e, 8777c73, 49ae0f6, 52622fa, 7282cc0, 8dae360, cc6d736, 3571671, 1ca6846, 1c210e4, 4a22a1d, 7e4dccf, e0ac369, 7324065, 7647d9b, 80b6233, b582a36, 934970a, d528ea0, 6a70efc, 77e21f9, d4bccad, e7b21f8, 0d2268d, aec9525, e67063f, 73bd4ee, 5eec368, f53d517, 9a3e7bf, d3f59ae]:
    • @ledgerhq/live-common@38.7.0
    • @features/platform-aggregated-assets@0.7.0
    • @shared/feature-flags@0.30.0
    • @ledgerhq/coin-zcash@1.2.0
    • @domain/entity-account-operation@0.2.0
    • @domain/api-market-countervalues@0.3.0
    • @devtools/bindings@0.15.0
    • @features/platform-account-source-coin-module@0.2.0
    • @features/flow-account-detail-hero@0.4.0
    • @features/flow-account-detail-delegations@0.3.0
    • @features/flow-account-detail-analytics-notice@0.3.0
    • @features/flow-account-analytics@0.2.0
    • @features/flow-account-detail@0.4.0
    • @ledgerhq/types-live@6.131.0
    • @domain/entity-currency-crypto@0.19.0
    • @ledgerhq/coin-bitcoin@1.2.0
    • @ledgerhq/ledger-wallet-framework@3.11.0
    • @domain/entity-currency-fiat@0.6.0
    • @domain/entity-aggregated-asset@0.4.0
    • @domain/api-aggregated-assets@0.7.0
    • @ledgerhq/asset-detail@0.13.0
    • @domain/api-account-data@0.5.0
    • @devtools/shell@0.14.0
    • @ledgerhq/wallet-btc@1.2.0
    • @ledgerhq/live-wallet@1.2.0
    • @ledgerhq/live-dmk-shared@0.39.0
    • @features/platform-device-onboarding@0.5.0
    • @ledgerhq/coin-cardano@3.0.0
    • @shared/env@0.13.0
    • @features/platform-feature-flags@0.12.0
    • @shared/live-config-overrides@0.2.0
    • @ledgerhq/coin-canton@1.7.0
    • @ledgerhq/coin-casper@3.8.0
    • @ledgerhq/coin-concordium@1.8.0
    • @ledgerhq/coin-filecoin@2.7.0
    • @ledgerhq/coin-stacks@0.36.0
    • @domain/entity-contact@0.13.0
    • @features/flow-contacts-detail@0.4.0
    • @domain/entity-currency@0.5.0
    • @domain/entity-account-balance@0.3.0
    • @domain/entity-account-balance-history@0.2.0
    • @features/platform-device-intent@5.4.0
    • @features/flow-contacts@0.18.0
    • @domain/api-currency-token@0.8.0
    • @features/platform-assets-table@0.3.0
    • @features/flow-portfolio-services-entry-points@0.3.0
    • @features/platform-device-mock-server@0.1.0
    • @shared/ui-info-state@0.7.0
    • @features/flow-pay-card-assets@0.7.0
    • @features/flow-pay-card-details@0.11.0
    • @features/flow-pay-card@0.9.0
    • @features/flow-pay-contact@0.9.0
    • @features/flow-predictions@0.2.0
    • @features/platform-predictions@0.4.0
    • @shared/ui-animated-height@0.3.0
    • @domain/entity-predictions@0.3.0
    • @features/flow-pay-balance@0.10.0
    • @features/flow-pay-request@0.10.0
    • @domain/api-card-management@0.9.0
    • @domain/api-currency-fiat@0.6.0
    • @domain/api-market-index-altcoin-season@0.5.0
    • @domain/api-market-index-fear-and-greed@0.5.0
    • @domain/api-push-devices@0.3.0
    • @domain/entity-account@0.3.0
    • @domain/entity-account-alias@0.2.0
    • @domain/entity-account-data@0.5.0
    • @domain/entity-account-name@0.4.0
    • @domain/entity-client-identity@0.5.0
    • @domain/entity-market-countervalues@0.5.0
    • @domain/entity-recent-addresses@0.3.0
    • @domain/entity-starred-account@0.1.0
    • @domain/entity-wallet-sync@0.2.0
    • @features/flow-large-screen-upsell@2.4.0
    • @features/flow-pay-card-auth@0.12.0
    • @features/flow-pay-card-widget@0.7.0
    • @features/flow-pay-feature-tour@0.9.0
    • @features/platform-card@0.9.0
    • @features/platform-currencies@0.13.0
    • @features/platform-market-countervalues@0.5.0
    • @shared/api-services@0.13.0
    • @shared/app-config@0.3.0
    • @shared/auth@0.9.0
    • @ledgerhq/live-dmk-desktop@0.27.0
    • @ledgerhq/live-send@0.2.0
    • @ledgerhq/wallet-pnl@0.9.0
    • @ledgerhq/asset-aggregation@0.19.0
    • @features/flow-contacts-add-address@0.9.1
    • @features/platform-contacts@0.12.2
    • @features/platform-feature-flags-firebase@0.1.4
    • @ledgerhq/live-signer-evm@0.24.5
    • @ledgerhq/transaction-observability@0.6.2
    • @ledgerhq/wallet-analytics@0.5.5
    • @domain/entity-currency-token@0.5.9
    • @features/flow-account-detail-notices@0.3.0
    • @features/flow-account-detail-settings@0.3.1
    • @features/platform-account-analytics@0.2.0
    • @ledgerhq/live-signer-tron@0.2.5
    • @features/platform-env@0.4.5
    • @features/flow-analytics-consent@0.2.13
    • @features/flow-contacts-add-contact@0.10.1
    • @features/flow-contacts-delete-address@0.4.1
    • @features/flow-contacts-delete-contact@0.5.1
    • @features/flow-contacts-edit-address@0.7.1
    • @features/flow-contacts-edit-contact@0.9.1
    • @features/flow-contacts-list@0.12.1
    • @features/platform-intent-verify-address@0.3.2
    • @features/flow-pay-card-transactions@0.7.2
    • @features/flow-fear-and-greed@0.5.2
    • @features/flow-app-availability@0.3.2
    • @features/platform-content-ab-tests@0.2.4

Don't miss a new ledger-live release

NewReleases is sending notifications on new releases.