Repository navigation
4.28.0
Minor Changes
-
#24189
711b543Thanks @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
1fa3701Thanks @LucasWerey! - Account Detail sends the events of its tracking plan, with the same names and properties on both apps -
#24262
4bd0f62Thanks @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
39cb975Thanks @cted-ledger! - SampleestimateFeesandvalidateIntentsuccesses incoin_module_callwith a newpreparationSampleRateparam of thecoinObservabilityflag (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, andcraftTransaction,craftRawTransaction,craftTransactionData,combineandbroadcaststay unsampled. Eachcoin_module_callnow carries its tier'ssampleRateand aninSampleflag, so dashboards can compute unbiased failure rates and estimate volumes from the sample. -
#24339
eac050dThanks @LucasWerey! - Account Detail shows the Cardano delegation and balances with the shared Lumen components -
#24215
7185de6Thanks @gre-ledger! - Value each operation in the fiat a query asks for, at its date, with thecountervaluequery -
#24235
0ebe8eaThanks @claudiiafg! - Hide the account detail empty state when a receive updates the balance before operations -
#24557
5fda2a0Thanks @deepyjr! - Let the mobile Analytics chart and PnL sections take their data as props, keeping the Portfolio-wide screen unchanged, and keep room above a flat chart for its value label. -
#24352
64c16b8Thanks @deepyjr! - Show the Analytics introduction on mobile Account Detail: the package exposes the introduction from a universal entry with a native view, and mobile persists its dismissal locally and passes the account scope (account, native asset, Balance) to Analytics. -
#24393
cc4ecedThanks @deepyjr! - Add the account-detail DevTools tool on mobile to reset the Account Detail Analytics card -
#24230
e0ca3f0Thanks @valeriiboiko-ext-ops! - Add test ids to the unlock screen Log in button and the post-onboarding hub step descriptions -
#24443
c842892Thanks @LucasWerey! - Sendnetworkinstead ofcurrencyand dropisTokenAccounton the account detail page events -
#24226
d701bc7Thanks @qperrot! - fix(coin-bitcoin): do not spend the inputs of pending operationsprepareTransactionandestimateMaxSpendableexclude 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 withtxn-mempool-conflict. An RBF edit keeps
the inputs of the operation it replaces.addPendingOperationkeeps every pending UTXO operation (those withextra.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.isOldestBitcoinPendingOperationtakes 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
f781149Thanks @ysitbon! - BrandAggregatedAssetIdandMarketId, and replace both copies ofdadaIdToMarketIdwith the typedtoMarketIdandparseMarketRefbridge in@domain/api-aggregated-assets -
#24318
fb3956bThanks @vpenskyi-ledger! - Sign the Perps SwapKit withdrawal on the Ethereum app and submit it on desktop and mobile -
#24320
d02425eThanks @LucasWerey! - Align the native devtools with Lumen and the desktop: tiles for the categories, kind and owner tags, one icon per tool, Lumen inputs, one horizontal gutter -
#24411
74beafcThanks @tonykhaov! - Dev, nightly and RC builds get push notifications from Braze staging: each build now uses its own Braze staging app ("Dev", "Nightly", "RC"), and the iOS simulator always asks for an APNs token -
#24350
d36ed0aThanks @OlivierFreyssinet! - Remove the supportDeviceApex feature flag: Apex is always listed in onboarding device selection and BLE pairing -
#24469
34b5e47Thanks @RobinVncnt! - Show a success screen at the end of the seeded Ledger Sync offer -
#24278
6a9a001Thanks @ovoronkov-ledger! - chore(mobile): bump react-native-video to 6.19.3 (LIVE-40457) -
#24500
6da9b38Thanks @gre-ledger! - Bump ts-libs packages (@ledgerhq/auth0.2.0,@ledgerhq/devices8.19.0,@ledgerhq/domain-service1.10.0,@ledgerhq/evm-tools2.1.0,@ledgerhq/hw-ledger-key-ring-protocol1.1.0,@ledgerhq/hw-transport6.37.0,@ledgerhq/hw-transport-mocker6.36.0,@ledgerhq/ledger-key-ring-protocol1.2.0,@ledgerhq/live-config3.10.0,@ledgerhq/live-currency-format0.17.0,@ledgerhq/live-env4.2.0,@ledgerhq/live-network3.3.0,@ledgerhq/live-promise0.5.0,@ledgerhq/logs6.20.0,@ledgerhq/psbtv20.7.0). -
#24167
cf6fb55Thanks @ovoronkov-ledger! - fix(rn-upgrade): restore native startup time with @shared/native-performance (LIVE-40286) -
#24607
b282f26Thanks @benruseau! - Bump@ledgerhq/device-management-kitto 1.11.1 and@ledgerhq/dmk-ledger-walletto 0.9.0, so the OS update restore ends with an out-of-memory status when the app storage restore (0x6733) or the custom lock screen upload (0x5102) runs out of memory -
#24345
9edfe90Thanks @dgreen-ledger! - Fix the empty screen when theledgerlive://sync-onboardingdeep link opens the Bluetooth pairing screen before the app onboarding is complete. -
#24245
c533e40Thanks @vpenskyi-ledger! - Add the Perps withdraw summary screen with an auto-refreshing SwapKit quote on desktop and mobile -
#24346
72da4b1Thanks @RobinVncnt! - Confirm before leaving an unseeded device setup, and keep onboarding incomplete until the end -
#24472
55a43bcThanks @claudiiafg! - Show the 1D market variation for an unchanged account balance -
#24437
716dba7Thanks @mcayuelas-ledger! - Drop the legacy currency distribution and always build the asset distribution -
#24298
498cbddThanks @mcayuelas-ledger! - Always show mobile transaction history and drop the lwmWallet40 operationsList param -
#24415
4db45b9Thanks @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
298bf8dThanks @ysitbon! -ContactDetailActionsMenumoves to the native platform entry@features/flow-contacts-detail/nativeand reads its bottom inset from the sheet context;ContactDetailActionsbecomes internal. The universal entry is one unconditionedsrc/index.ts,ContactAddressDetailDialogandContactsEditSignerMismatchDialogeach have one props contract,ContactDetailViewtakesonOpenLedgerWalletAccountsandonOpenAddressDetail, and the web address detail dialog shows a Share tile whenonShareAddressis set. -
#24419
13609b7Thanks @francois-guerin-ledger! - Fix Cosmos staking amount screen enabling Continue with stale fees -
#24370
cea0076Thanks @ysitbon! - AddCryptoOrTokenCurrencyIdSchemaandCryptoOrTokenCurrencyIdto@domain/entity-currency, replacing the duplicatedBalanceAssetIdSchema,ContactCurrencyIdSchemaand the send flow's local union. Runtime parsing is unchanged. -
#24575
235a1aeThanks @OlivierFreyssinet! - MakeonExecutorStateChangedandcancelIntentRequestIdoptional on the device intent executor -
#24237
57b51f5Thanks @tonykhaov! - Device onboarding: the close button on Check your device and Sync your wallet is at the same height as on Connect new device. The Sync your wallet buttons stay above the Android bottom bar. -
#24303
e8ca231Thanks @ysitbon! - Split device onboarding by job:@features/platform-device-onboardingruns the actor withuseDeviceOnboardingActor, and@devtools/bindingsbuilds the devtool's log, context and next states withuseDeviceOnboardingToolStateanduseDeviceOnboardingToolProps. The mobile funnel no longer imports@devtools/*, and the desktop device onboarding code moves under DevTools -
#24271
ef95b2eThanks @mcayuelas-ledger! - Drop the CoinGecko market client and keep the USD chart fallback -
#24297
6464950Thanks @ysitbon! -@features/flow-contactsexposesContactsViewandContactsButtonfrom a single.entry with sharedContactsViewPropsandContactsButtonPropscontracts. List logic and platform contact hooks are imported from@features/flow-contacts-listand@features/platform-contacts. Desktop and mobile hosts mount feature and Ledger Sync introduction UI outsideContactsView. -
#24487
c0c5bffThanks @amaslakov! - Enable the Tron votes panel earn rewards and desktop vote now actions, routed like the account Earn action -
#23539
310127fThanks @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
ad006b9Thanks @ishaba! - Resolve TRON TRC10 tokens by their CAL token_identifier -
#24406
3a0d8aaThanks @mcayuelas-ledger! - Always show aggregated assets and drop the lwmWallet40 aggregatedAssets param -
#24448
96fac1eThanks @mcayuelas-ledger! - Always show asset discoverability and drop the lwmWallet40 assetDiscoverability param -
#24347
0d83181Thanks @mcayuelas-ledger! - Always show the mobile asset section and drop the lwmWallet40 assetSection param -
#24202
e186896Thanks @mcayuelas-ledger! - Always show mobile My Wallet and drop the lwmWallet40 myWallet param -
#24499
7228545Thanks @ovoronkov-ledger! - fix(settings): ignore empty stored settings on import (LIVE-39321)On a fresh install no settings are stored, so
getSettingsreturnsnull(AsyncStorage) orundefined(MMKV). TheSETTINGS_IMPORTreducer now treats that as an empty import instead of throwingCannot convert null value to objectduring startup. -
#24279
579165eThanks @OlivierFreyssinet! - Join a mock server session from a ledgerlive://mockserver/config deeplink, after a warning that mock devices have no security -
#24250
a6c95e2Thanks @OlivierFreyssinet! - Add a floating bar to Ledger Wallet Mobile's mock server mode, with the mock server overlay and the live screen of each mocked device -
#23473
6196234Thanks @ishaba! - Keep a paid Tronify rental in mind after Send is closed: a reopened USDT send no longer offers a second rental while the energy is arriving, tells the user it is on its way, and re-estimates the fee on the amount step once it lands. Add the mobile E2E for the Tronify sponsored send. InfoState gives its description a testID derived from its own -
#24310
2cee99eThanks @benruseau! - Show when the existing backup was saved in the OS update backup selection sheet, and update its wording and icon -
#24301
8777c73Thanks @benruseau! - Offer to restart the OS update or send a report once the device has stayed disconnected for 60 seconds, and track the connection timeout -
#24451
49ae0f6Thanks @benruseau! - Align the OS update screens with the latest designs and add an OS update screen gallery to the debug menu -
#24355
52622faThanks @benruseau! - Show the OS update success screen for full, partial and out-of-memory restores, with the installed OS version and a banner about what was not reinstalled, drop the backup in every case, and track an out-of-memory restore with its ownoutOfMemoryrestore status -
#24277
7282cc0Thanks @benruseau! - Let the user retry the OS update install after refusing it on the device, track the retry, and take the progress bar back to where an install, flash or restore starts when it restarts -
#24273
8dae360Thanks @RobinVncnt! - Keep polling the device through seed entry before treating the transport as lost -
#24295
3571671Thanks @ysitbon! -@features/flow-pay-contactexportsPaySuccessand the address picker from., with./weband./nativeplatform entries forContacts.PaySuccessshares one props contract; suffix imports are removed from the package. -
#24081
54191e9Thanks @jiyuzhuang! - Show Synchronizing instead of Connecting once onboarding is past the connection, and hide the firmware offer while the device is locked -
#24512
2be7893Thanks @gre-ledger! - Render polkadot nomination addresses in the nominations drawer -
#24449
1ca6846Thanks @YazhuEth! - Addcustom.predictions.bindAccountandcustom.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.AnimatedHeightnow counts SVG children, like a loading spinner, so the dialog no longer clips its bottom -
#24149
1c210e4Thanks @YazhuEth! - Add a Predictions card to the portfolio services entry points and a Predictions screen that opens the live app, behind theptxPredictionsLiveAppDesktopandptxPredictionsLiveAppMobileflags -
#24407
9c375d0Thanks @tonykhaov! - Fix "Cancel set up" in the device onboarding Genuine Check error drawer so it leaves onboarding -
#24240
ae675f9Thanks @claudiiafg! - Cover the remaining Account Detail integration scenarios on desktop and mobile -
#24432
5730f10Thanks @gre-ledger! - Drop the unused Intl.RelativeTimeFormat and Intl.Locale polyfills; keep Intl.PluralRules for i18next plurals -
#24047
34df591Thanks @cunhabruno! - Add animportLocalManifestse2e bridge message that adds local live app manifests under Detox, so mobile e2e can load buy-sell-ui fromBUY_SELL_UI_URL -
#23551
4a22a1dThanks @YazhuEth! - Add the Predictions onboarding sheet behind the custom.predictions.onboard and custom.predictions.close Wallet API methods -
#24050
6a70efcThanks @OlivierFreyssinet! - Run Ledger Wallet Mobile on the device mock server from Settings > Debug > Connectivity > Mock server, with mock devices in DIE, SelectDevice2 and legacy flows -
#24441
e0ac369Thanks @RobinVncnt! - Show the unlock sheet when a device locks during onboarding checks -
#24110
7324065Thanks @qperrot! - Remove Fantom, whose network migrated to Sonic -
#24205
7647d9bThanks @henri-ly! - Block sends of known non-transferable ERC-20 tokens with a TokenNonTransferable amount error -
#24371
32be7d2Thanks @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
b582a36Thanks @renovate-operator-ledger! - chore(deps): update dependency @ledgerhq/crypto-icons to v2.0.7- Updated
@ledgerhq/crypto-iconsto2.0.7
- Updated
-
#24290
94df3d0Thanks @renovate-operator-ledger! - [LWDM] chore(deps): update dependency oxfmt to v0.75.0- Updated
oxfmtto0.75.0
- Updated
-
#24291
4fc4674Thanks @renovate-operator-ledger! - chore(deps): update dependency oxlint to v1.90.0- Updated
oxlintto1.90.0
- Updated
-
#24392
934970aThanks @renovate-operator-ledger! - chore(deps): update dependency @reduxjs/toolkit to v2.13.0- Updated
@reduxjs/toolkitto2.13.0
- Updated
-
#24438
bc1d1a6Thanks @renovate-operator-ledger! - chore(deps): update repack to v5.4.2- Updated
@callstack/repack-plugin-expo-modulesto5.4.2 - Updated
@callstack/repack-plugin-reanimatedto5.4.2 - Updated
@callstack/repackto5.4.2
- Updated
-
#24480
351b230Thanks @ishaba! - Restore the Intl.Locale polyfill: the Intl.PluralRules polyfill needs it, and without it Sui crashed the app on Hermes -
#24112
e2223f5Thanks @ovoronkov-ledger! - chore(firebase): bump react-native-firebase to 26.4.1 (LIVE-37320) -
#24157
d528ea0Thanks @claudiiafg! - Share the account asset picker across desktop and mobile -
#24568
e7b21f8Thanks @qperrot! - Remove Stargaze from Ledger Wallet -
#24362
8639f2bThanks @RobinVncnt! - Keep the pairing success screen up until onboarding knows the next screen -
#24351
ce88f08Thanks @LL782! - TheStorageMigrationanalytics event now reports the correcttostorage: migration events go from AsyncStorage to MMKV, and rollback events go from MMKV to AsyncStorage. -
#24431
41c9607Thanks @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. -
#23599
0d2268dThanks @CremaFR! - Run the custom.exchange device steps (nonce, Exchange app confirmation, signature) and their errors of wallet-api live apps in the Device Intent Executor drawer, behind the llmWalletApiDeviceIntentExchange flag, and send its A/B assignment to analytics and the swap live app. Keep the httpdebug compat device id of HTTP proxy devices instead of prefixing it with usb| -
#24522
e67063fThanks @gre-ledger! - Import bignumber.js through its default export, the form bignumber.js 11 types support -
#24509
aeb64c8Thanks @RobinVncnt! - Open the old onboarding checks above the previous screen when an unseeded device falls back, so back returns to it -
#24199
f53d517Thanks @RobinVncnt! - Open the unseeded device funnel from Set up your Ledger, and skip Ledger Sync after setup
Patch Changes
- Updated dependencies [
711b543,39cb975,7185de6,522d62b,0ebe8ea,cd66cae,cc73a3f,2c728a2,be81b1c,64c16b8,cc4eced,59280f5,c842892,b77803f,a95a6bc,d701bc7,93aef61,ac116ba,f781149,842a9a5,d02425e,d36ed0a,3835bab,6da9b38,cf6fb55,b282f26,72da4b1,55a43bc,420409b,498cbdd,4db45b9,6ab5a87,ed8d437,360d6c9,298bf8d,cea0076,31f7eba,235a1ae,e8ca231,ef95b2e,e051c84,6464950,ad006b9,62bdc34,b67184a,3a0d8aa,96fac1e,0d83181,e186896,579165e,a6c95e2,6196234,2cee99e,8777c73,49ae0f6,52622fa,7282cc0,8dae360,cc6d736,3571671,1ca6846,1c210e4,4a22a1d,6a70efc,e0ac369,7324065,80b6233,b582a36,934970a,d528ea0,77e21f9,e7b21f8,0d2268d,e67063f,73bd4ee,6f71acd,f53d517,d3f59ae]:- @features/platform-aggregated-assets@0.7.0
- @shared/feature-flags@0.30.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-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/api-aggregated-assets@0.7.0
- @domain/api-account-data@0.5.0
- @devtools/shell@0.14.0
- @ledgerhq/live-wallet@1.2.0
- @shared/native-performance@0.1.0
- @ledgerhq/live-dmk-shared@0.39.0
- @features/platform-device-onboarding@0.5.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-multiversx@1.6.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/flow-portfolio-services-entry-points@0.3.0
- @features/flow-device-mock-server@0.1.0
- @features/platform-device-mock-server@0.1.0
- @ledgerhq/live-dmk-mobile@0.34.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
- @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-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-app-lock@0.8.0
- @features/platform-card@0.9.0
- @features/platform-currencies@0.13.0
- @features/platform-market-countervalues@0.5.0
- @ledgerhq/live-engagement@0.2.0
- @shared/api-services@0.13.0
- @shared/app-config@0.3.0
- @shared/auth@0.9.0
- @ledgerhq/live-send@0.2.0
- @ledgerhq/wallet-pnl@0.9.0
- @features/flow-contacts-add-address@0.9.1
- @features/platform-contacts@0.12.2
- @features/platform-feature-flags-firebase@0.1.4
- @ledgerhq/device-core@0.11.23
- @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-app-longer-password@0.1.3
- @features/flow-app-password-removal@0.2.1
- @features/flow-app-protection-prompt@0.1.3
- @features/flow-app-unlock@0.2.1
- @features/flow-pay-card-transactions@0.7.2
- @features/flow-fear-and-greed@0.5.2
- @features/flow-app-availability@0.3.2
- @features/flow-app-password-setup@0.2.1
- @features/platform-content-ab-tests@0.2.4