4.14.0
Minor Changes
-
#20129
ba20e39Thanks @gre-ledger! - MigratecheckLibsand its two callers off@ledgerhq/errorsas part of the errors sunset (LIVE-32915).checkLibsdetects duplicated npm packages by comparing class identity, sosanityChecks.tsand both app entrypoints must importNotEnoughBalancefrom the same module. All three now use@ledgerhq/ledger-wallet-framework/errors. The duplicate-package warning also names@ledgerhq/ledger-wallet-frameworkso thepnpm whyhint points at the package actually being checked. -
#20172
6dd18aaThanks @LucasWerey! - Remove the legacy GorhomQueuedDrawerimplementation (migrating the last consumer, the Cardano DRep delegation drawer, to the Lumen bottom sheet) and renameQueuedDrawerBottomSheettoQueuedBottomSheet. -
#20349
f715aa5Thanks @cted-ledger! - Fix Zcash sends failing before the device prompt when the coin being spent came from a V4-format transaction (PROD-12599).Signing a transparent Zcash transaction whose input came from a V4 (Sapling-format) transaction failed immediately: no review screen appeared on the device, and Ledger Live showed "Something went wrong" with no detail. V4 is still valid on mainnet and still emitted by exchanges and older wallets, while Ledger Live itself emits V5 — so an account funded from within Ledger Live never hit this, which is why the failure looked intermittent. It is in fact deterministic, decided by which software created the funding transaction.
serializedPreviousTransactionOverridecarries the source transaction's raw on-chain bytes so the device can compute the correct ZIP-244 txid for a V5 transaction, whose Orchard bundle the signer kit's serialization would otherwise strip. It was being set for every version. The kit chunks a V4 transaction expecting Ledger's internal serialization, whose header carries a consensus branch id absent from the on-chain bytes; given those bytes it read the input count four bytes late and threw while chunking that input. The override is now restricted to the versions that need it, and a V4 source transaction goes back through the serialization path that has always handled it, its Sapling fields travelling inextraDataas before.The decision is made per input, which is what a send spending several coins looks like from the outside: the V5 inputs are chunked and their trusted inputs obtained from the device first, then the transaction dies when the V4 input's turn comes. The device has already answered several times by then, yet no review screen is ever reached — so the failure looks like a device problem rather than a serialization one.
Untagged device action errors are also no longer flattened into a message-less
Error, so a failure inside a device action task names itself in the logs instead of surfacing only as "Something went wrong". -
#19982
f5e4e87Thanks @francois-guerin-ledger! - Display estimated pending rewards for 0G delegations; gate claim-rewards UI to chains that support it. -
#19967
56f5153Thanks @jiyuzhuang! - Fix welcome page first story looping to last on left tap -
#20099
37dac39Thanks @deepyjr! - Add contact address asset and network selection through the Modular Dialog, with shared asset
filtering across Desktop and Mobile. -
#19958
9773bd3Thanks @OlivierFreyssinet! - Propagate contextual analytics properties through Device Intent Executor events. -
#20032
dbffe41Thanks @deepyjr! - Render Me-specific contact detail actions and copy on mobile. -
#19964
86bbd1dThanks @claudiiafg! - Add the one-time Contacts feature introduction drawer on Mobile with shared native content and dismissal preference. -
#20107
54b3d2bThanks @deepyjr! - Add shared Coin Integration address validation to Contacts -
#20050
4c34536Thanks @RobinVncnt! - Remove Custom Lock Screen step from the post-onboarding widget. -
#19994
0f61d63Thanks @sarneijim! - Update large-screen upsell modal UTM attribution on mobile and desktop -
#19807
2cf4a29Thanks @sarneijim! - Reset mobile navigation state for sequential token deeplinks and redirect invalid asset deeplinks to Market -
#20033
d390840Thanks @RobinVncnt! - Loop Product Tour post-onboarding card animations and restart them when revisiting a slide -
#19374
079775cThanks @LucasWerey! - de-gate lwmWallet40.enabled in WXP-owned drawers, hooks, and screens -
#20009
341ea10Thanks @hedi-edelbloute! - Revert Cardano firmware app v8.0.4 support (hw-app-cardano bump to 8.0.0) -
#19985
808c4cdThanks @deepyjr! - Reorganize the contacts flow package around a /steps folder (List, AddContact, Introduction, Detail), promote shared helpers to src/utils, curate root barrels, and rename public views to ContactsListView and ContactDetailView. No runtime behavior change. -
#20070
52253f7Thanks @ysitbon! - Remove the now-dead@ledgerhq/cryptoassetscurrency/fiat store injection from the app bootstraps. Nothing reads the legacy currency/fiat accessors anymore (the runtime source of truth is the domain-backed wallet-framework currency resolver), sosetCryptoCurrenciesStore/setFiatCurrenciesStoreinjected a store no consumer queried. Drop the calls, drop the@ledgerhq/cryptoassetsdependency from the apps, and remove the remaining stale references to the package in comments. -
#20175
b953d34Thanks @deepyjr! - Add a reusable queued drawer flow and an embeddable Modular Drawer presentation -
#19992
452adf8Thanks @sarneijim! - Gate each existing mobile Nano S upsell banner placement through the shared large-screen upsell flag. -
#19935
7ead592Thanks @sarneijim! - Update the Mobile large-screen upsell opt-out copy and CTA. -
#20042
467578eThanks @dilaouid! - fix(lwm): fix multiple UI tweaks in the new send flow -
#19715
cf63f27Thanks @YazhuEth! - Hide Send and Receive for HyperCore accounts on mobile: HyperCore has no on-chain send on Ledger Wallet and a plain receive is misleading (deposits go through bridging). Both actions are now hidden across the account actions (FAB), the asset actions, the quick-action drawers and the no-funds empty state, reusing the sharedisSendDisabledForFamily/isReceiveDisabledForFamilypredicates from@ledgerhq/live-common. The account "Quick actions" section is also hidden entirely when it has no actions left (e.g. HyperCore), instead of showing an empty titled section. -
#20027
6131b15Thanks @deepyjr! - Add shared Add Address session state and start it from Mobile contact details -
#20035
67df284Thanks @deepyjr! - Select a native asset or token and its eligible network with the Mobile modular drawer before
entering a contact address. -
#19880
26ee89dThanks @deepyjr! - Add the shared native empty contact detail page and wire it into Mobile. -
#20091
ef5945aThanks @LucasWerey! - Bump Lumen design-system packages to latest (design-core 0.1.23, ui-react 0.1.49, ui-rnative 0.1.52, ui-react-visualization 0.1.28, ui-rnative-visualization 0.1.29).- Migrate the desktop tables to the new
TableCellContentcompound API (TableCellItem/TableCellContent/TableCellContentTitle/TableCellContentDescription/TableCellContentRow). - Migrate the interactive My Wallet avatar to the new
AvatarButtoncomponent on both apps, and fix the vertical centering of the desktop top-bar trigger. - Use the currency image fallback (
MediaImage, circular) in the market list so it matches the crypto-icon shape. - Simplify
getDotIndicatorPropsavatar sizing now that the helper is typed for the full avatar size range.
- Migrate the desktop tables to the new
-
#19805
b1d3f26Thanks @ishaba! - feat(send): add default-fee strategy to the new send flow -
#20159
534d2c5Thanks @jiyuzhuang! - Migrate engagement-scope screens to SafeAreaViewFixed for experimental header compatibility -
#20122
8677d5cThanks @LucasWerey! - Migrate the mobile Modular Drawer to Lumen components (BottomSheet, ListItem, SearchInput, Banner, CardButton, Trend, Tag, Box/Text) and drop the legacynative-uiprimitives and thepre-ldlscomposites it used. Removes the now-unusedpre-ldlsstaging components (AssetItem, NetworkItem, AccountItem, Address, Tag, Input, Search, AssetTypeList, NetworkList, MarketPriceIndicator, MarketPercentIndicator) and the orphaneduseDebouncedCallbackhook from@ledgerhq/native-ui(CryptoIcon and AddAccountButton are kept). Adds the empty-account state (header description + "Add account" CardButton) on the account step. -
#19955
0629f02Thanks @dilaouid! - feat(lwm): auto focus address input new send flow -
#20166
74ee8f9Thanks @LucasWerey! - Remove two dead navigator screens that were registered but unreachable.RegionSettings: orphaned since its only entry point (RegionRow) was removed in PR #1000 (2022). Removed the screen registration,Regionscreen,regions.json(~36 KB dropped from the bundle), theScreenName.RegionSettingsenum member, and the now-unusedsetLocaleRedux chain (action, action type, payload type, reducer handler). No behavioral change —localestill resolves from the language default and imported settings.AnalyticsAllocation: legacy allocation screen superseded by the MVVM AnalyticsDetailedAllocation. Removed the registration and the legacyAllocation/RingChart/DistributionCardcomponent cluster.
-
#20073
a534db5Thanks @jiyuzhuang! - Remove newsfeedPage feature flag (LIVE-31511) -
#20054
c622459Thanks @RobinVncnt! - Remove the disabled npsRatingsPrompt feature flag and NPS ratings dead code on mobile -
#20180
dd7758bThanks @YazhuEth! - Show 8 characters on each side of the ellipsis when truncating the recipient address in the new send flow, consistently across mobile and desktop -
#19996
c9dddf2Thanks @dilaouid! - feat(lwm): changes bottomsheet to sheet info and minor fixes on lwm -
#19945
0156224Thanks @dilaouid! - feat(lwm): new send flow add qr code scan -
#20127
e7b8ddcThanks @mdomanski-ext-ledger! - feat: aleo tokens swap incompatibility warning -
#20094
481abc3Thanks @sarneijim! - Match the large-screen upsell modal artwork to light and dark themes, use the default modal background, and adapt it to smaller screens -
#19828
f08cad1Thanks @henri-ly! - new send flow e2e mobile native send -
#19925
72969ecThanks @YazhuEth! - Track input mode (fiat or crypto) when clicking review on the new send flow amount screen -
#20164
946ab9eThanks @LucasWerey! - Fix countervalue resetting to USD after killing and restarting the app when the selected fiat (e.g. AMD) is not part of the offline fallback list. The boot-time "reset unsupported countervalue" guard ran against the fallback fiats before the CVS supported-fiats query resolved; the reset now lives in the reactive path gated onfiatsReady, so it only acts on the authoritative CVS list. -
#19497
18eaa24Thanks @lpaquet-ledger! - Update Swap Tab with New nav -
#19215
dfab01fThanks @CremaFR! - Add a Device Intent Executor based signing path for Wallet APItransaction.signandmessage.signon Ledger Wallet Mobile, gated behind the newllmWalletApiDeviceIntentSignfeature flag (per-manifest allow-list, off by default). Introduces thesignMessageIntentmodule in live-common. -
#19215
1a11c71Thanks @CremaFR! - Enrich the wallet-api Device Intent Executor deviceUxV2 analytics funnel events (deviceflow_started, app_ready, deviceflow_completed, deviceflow_aborted/failed and the drawer close button_clicked) with the calling live-app's manifestId and manifestName. This keeps sourceFlow="wallet_api" while letting dashboards distinguish the originating app (swap, earn, dApp, ...) via a generic analytics-properties bag threaded through the executor. -
#19951
123c13fThanks @dilaouid! - fix(lwm): keep Learn more visible on recipient with keyboard open -
#20190
a8d6e25Thanks @dilaouid! - fix(lwdm): new send flow wait for valid address to display memo -
#20097
7efe94eThanks @mateuszpalosz-ext! - changes to self transfer label for Aleo
Patch Changes
- Updated dependencies [
1070564,2e1aecc,ba69273,24d60d7,1af9ec9,f79de59,f5e4e87,dbffe41,86bbd1d,54b3d2b,8a6b086,281a7f3,cee41c4,2e410a6,808c4cd,8ab9e50,4148019,1e4e519,52253f7,4ce5257,91da072,e58258b,452adf8,112b63f,44798f3,d7600fb,6131b15,f334b43,67df284,18bc180,26ee89d,5de8391,66edf4d,8677d5c,a534db5,c622459,524d763,e4e009f,dbf8acf,dfab01f,aa27732,aa27732,f8b5b51]:- @ledgerhq/errors@7.0.0
- @ledgerhq/ledger-wallet-framework@2.6.0
- @ledgerhq/coin-bitcoin@0.49.0
- @ledgerhq/coin-canton@0.31.0
- @ledgerhq/coin-casper@2.17.0
- @ledgerhq/coin-concordium@0.18.0
- @ledgerhq/coin-cosmos@0.41.0
- @ledgerhq/coin-evm@4.8.0
- @ledgerhq/coin-filecoin@1.30.0
- @ledgerhq/coin-multiversx@0.22.0
- @ledgerhq/coin-stacks@0.26.0
- @ledgerhq/live-network@3.0.0
- @features/flow-contacts@0.4.0
- @domain/entity-currency-crypto@0.8.0
- @domain/entity-currency-token@0.3.0
- @domain/entity-currency@0.3.0
- @ledgerhq/live-countervalues@0.24.0
- @domain/entity-contact@0.4.0
- @shared/feature-flags@0.16.0
- @devtools/shell@0.6.0
- @ledgerhq/native-ui@0.65.0
- @ledgerhq/types-live@6.117.0
- @ledgerhq/domain-service@1.8.12
- @ledgerhq/hw-transport@6.35.7
- @ledgerhq/hw-transport-http@6.36.7
- @ledgerhq/live-dmk-mobile@0.29.1
- @ledgerhq/live-countervalues-react@0.16.4
- @ledgerhq/live-wallet@0.30.1
- @ledgerhq/wallet-analytics@0.3.1
- @ledgerhq/wallet-pnl@0.7.4
- @ledgerhq/ledger-key-ring-protocol@0.17.2
- @domain/api-currency-token@0.2.3
- @features/platform-currencies@0.4.1
- @ledgerhq/live-currency-format@0.14.1
- @devtools/bindings@0.2.2
- @features/platform-feature-flags@0.6.3
- @ledgerhq/hw-ledger-key-ring-protocol@0.11.2
- @shared/env@0.1.1
- @ledgerhq/live-dmk-shared@0.29.1
- @ledgerhq/live-dmk-speculos@0.10.3
- @features/platform-env@0.1.1