@ledgerhq/live-common 34.53.0-nightly.20251112023812 → 34.53.0-nightly.20251113023835

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,6 +4,7 @@ import { log } from "@ledgerhq/logs";
4
4
  import { getAccountBridge } from ".";
5
5
  import { getMainAccount } from "../account";
6
6
  import { delay } from "../promise";
7
+ import { LiveConfig } from "@ledgerhq/live-config/LiveConfig";
7
8
  const initial = {
8
9
  account: null,
9
10
  parentAccount: null,
@@ -18,6 +19,18 @@ const initial = {
18
19
  statusOnTransaction: null,
19
20
  errorAccount: null,
20
21
  errorStatus: null,
22
+ syncing: false,
23
+ synced: false,
24
+ };
25
+ export const shouldSyncBeforeTx = (currency) => {
26
+ const currencyConfig = LiveConfig.getValueByKey(`config_currency_${currency.id}`);
27
+ const sharedConfig = LiveConfig.getValueByKey("config_currency");
28
+ if (currencyConfig && "syncBeforeTx" in currencyConfig) {
29
+ return currencyConfig.syncBeforeTx === true;
30
+ }
31
+ else {
32
+ return sharedConfig && "syncBeforeTx" in sharedConfig && sharedConfig.syncBeforeTx === true;
33
+ }
21
34
  };
22
35
  const makeInit = (optionalInit) => () => {
23
36
  let s = initial;
@@ -67,6 +80,8 @@ const reducer = (state, action) => {
67
80
  account,
68
81
  parentAccount,
69
82
  transaction: t,
83
+ syncing: false,
84
+ synced: false,
70
85
  };
71
86
  }
72
87
  catch (e) {
@@ -75,6 +90,8 @@ const reducer = (state, action) => {
75
90
  account,
76
91
  parentAccount,
77
92
  errorAccount: e,
93
+ syncing: false,
94
+ synced: false,
78
95
  };
79
96
  }
80
97
  }
@@ -102,6 +119,10 @@ const reducer = (state, action) => {
102
119
  if (action.error === state.errorStatus)
103
120
  return state;
104
121
  return { ...state, errorStatus: action.error };
122
+ case "onStartSync":
123
+ return { ...state, syncing: true, synced: false };
124
+ case "onSync":
125
+ return { ...state, syncing: false, synced: true };
105
126
  default:
106
127
  return state;
107
128
  }
@@ -110,7 +131,7 @@ const INITIAL_ERROR_RETRY_DELAY = 1000;
110
131
  const ERROR_RETRY_DELAY_MULTIPLIER = 1.5;
111
132
  const DEBOUNCE_STATUS_DELAY = 300;
112
133
  const useBridgeTransaction = (optionalInit) => {
113
- const [{ account, parentAccount, transaction, status, statusOnTransaction, errorAccount, errorStatus }, dispatch,] = useReducer(reducer, undefined, makeInit(optionalInit));
134
+ const [{ account, parentAccount, transaction, status, statusOnTransaction, syncing, synced, errorAccount, errorStatus, }, dispatch,] = useReducer(reducer, undefined, makeInit(optionalInit));
114
135
  const setAccount = useCallback((account, parentAccount) => dispatch({
115
136
  type: "setAccount",
116
137
  account,
@@ -127,6 +148,27 @@ const useBridgeTransaction = (optionalInit) => {
127
148
  const mainAccount = account ? getMainAccount(account, parentAccount) : null;
128
149
  const errorDelay = useRef(INITIAL_ERROR_RETRY_DELAY);
129
150
  const statusIsPending = useRef(false); // Stores if status already being processed
151
+ const shouldSync = mainAccount && shouldSyncBeforeTx(mainAccount.currency);
152
+ useEffect(() => {
153
+ if (mainAccount === null || synced || syncing)
154
+ return;
155
+ if (!shouldSync)
156
+ return; // skip sync if not required by currency config
157
+ dispatch({ type: "onStartSync" });
158
+ const bridge = getAccountBridge(mainAccount, null);
159
+ const sub = bridge.sync(mainAccount, { paginationConfig: {} }).subscribe({
160
+ error: (_) => {
161
+ // we do not block the user in case of error for now but it should be the case
162
+ dispatch({ type: "onSync" });
163
+ },
164
+ complete: () => {
165
+ dispatch({ type: "onSync" });
166
+ },
167
+ });
168
+ return () => {
169
+ sub.unsubscribe();
170
+ };
171
+ }, [mainAccount, synced, syncing, shouldSync]);
130
172
  const bridgePending = transaction !== statusOnTransaction;
131
173
  // when transaction changes, prepare the transaction
132
174
  useEffect(() => {
@@ -134,7 +176,7 @@ const useBridgeTransaction = (optionalInit) => {
134
176
  let errorTimeout;
135
177
  // If bridge is not pending, transaction change is due to
136
178
  // the last onStatus dispatch (prepareTransaction changed original transaction) and must be ignored
137
- if (!bridgePending)
179
+ if (!bridgePending && !synced)
138
180
  return;
139
181
  if (mainAccount && transaction) {
140
182
  // We don't debounce first status refresh, but any subsequent to avoid multiple calls
@@ -200,7 +242,7 @@ const useBridgeTransaction = (optionalInit) => {
200
242
  errorTimeout = null;
201
243
  }
202
244
  };
203
- }, [transaction, mainAccount, bridgePending, dispatch]);
245
+ }, [transaction, mainAccount, bridgePending, dispatch, synced]);
204
246
  const bridgeError = errorAccount || errorStatus;
205
247
  useEffect(() => {
206
248
  if (bridgeError && globalOnBridgeError) {
@@ -216,7 +258,7 @@ const useBridgeTransaction = (optionalInit) => {
216
258
  parentAccount,
217
259
  setAccount,
218
260
  bridgeError,
219
- bridgePending,
261
+ bridgePending: bridgePending && (shouldSync ? !synced : true),
220
262
  };
221
263
  };
222
264
  let globalOnBridgeError = null;
@@ -1 +1 @@
1
- {"version":3,"file":"useBridgeTransaction.js","sourceRoot":"","sources":["../../src/bridge/useBridgeTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useBridgeTransaction.js","sourceRoot":"","sources":["../../src/bridge/useBridgeTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,171 @@
1
1
  import { EnvName } from "@ledgerhq/live-env";
2
2
  import { Feature, FeatureId } from "@ledgerhq/types-live";
3
- export declare const getAllFeatureFlags: (appLanguage?: string) => Partial<{
3
+ export declare const getAllFeatureFlags: (appLanguage?: string, localOverrides?: {
4
+ currencyAvalancheCChain?: Feature | undefined;
5
+ currencyStacks?: Feature | undefined;
6
+ currencyOptimism?: Feature | undefined;
7
+ currencyOptimismSepolia?: Feature | undefined;
8
+ currencyArbitrum?: Feature | undefined;
9
+ currencyArbitrumSepolia?: Feature | undefined;
10
+ currencyRsk?: Feature | undefined;
11
+ currencyBittorrent?: Feature | undefined;
12
+ currencyEnergyWeb?: Feature | undefined;
13
+ currencyAstar?: Feature | undefined;
14
+ currencyMetis?: Feature | undefined;
15
+ currencyBoba?: Feature | undefined;
16
+ currencyMoonriver?: Feature | undefined;
17
+ currencyVelasEvm?: Feature | undefined;
18
+ currencySyscoin?: Feature | undefined;
19
+ currencyAptos?: Feature | undefined;
20
+ currencyAptosTestnet?: Feature | undefined;
21
+ currencyAxelar?: Feature | undefined;
22
+ currencySecretNetwork?: Feature | undefined;
23
+ currencySeiNetwork?: Feature | undefined;
24
+ currencyDesmos?: Feature | undefined;
25
+ currencyDydx?: Feature | undefined;
26
+ currencyUmee?: Feature | undefined;
27
+ currencyStargaze?: Feature | undefined;
28
+ currencyOnomy?: Feature | undefined;
29
+ currencyPersistence?: Feature | undefined;
30
+ currencyQuicksilver?: Feature | undefined;
31
+ currencyInternetComputer?: Feature | undefined;
32
+ currencyInjective?: Feature | undefined;
33
+ currencyTelosEvm?: Feature | undefined;
34
+ currencyCoreum?: Feature | undefined;
35
+ currencyPolygonZkEvm?: Feature | undefined;
36
+ currencyPolygonZkEvmTestnet?: Feature | undefined;
37
+ currencyBase?: Feature | undefined;
38
+ currencyBaseSepolia?: Feature | undefined;
39
+ currencyKlaytn?: Feature | undefined;
40
+ currencyVechain?: Feature | undefined;
41
+ currencyCasper?: Feature | undefined;
42
+ currencyNeonEvm?: Feature | undefined;
43
+ currencyLukso?: Feature | undefined;
44
+ currencyLinea?: Feature | undefined;
45
+ currencyLineaSepolia?: Feature | undefined;
46
+ currencyBlast?: Feature | undefined;
47
+ currencyBlastSepolia?: Feature | undefined;
48
+ currencyScroll?: Feature | undefined;
49
+ currencyScrollSepolia?: Feature | undefined;
50
+ currencyIcon?: Feature | undefined;
51
+ currencyTon?: Feature | undefined;
52
+ currencyEtherlink?: Feature | undefined;
53
+ currencyZkSync?: Feature | undefined;
54
+ currencyZkSyncSepolia?: Feature | undefined;
55
+ currencyMantra?: Feature | undefined;
56
+ currencyXion?: Feature | undefined;
57
+ currencyZenrock?: Feature | undefined;
58
+ currencySonic?: Feature | undefined;
59
+ currencySonicBlaze?: Feature | undefined;
60
+ currencySui?: Feature | undefined;
61
+ currencyMina?: Feature | undefined;
62
+ currencyBabylon?: Feature | undefined;
63
+ currencySeiNetworkEvm?: Feature | undefined;
64
+ currencyBerachain?: Feature | undefined;
65
+ currencyHyperevm?: Feature | undefined;
66
+ currencyCantonNetwork?: Feature | undefined;
67
+ currencyCantonNetworkDevnet?: Feature | undefined;
68
+ currencyCantonNetworkTestnet?: Feature | undefined;
69
+ currencyKaspa?: Feature | undefined;
70
+ currencyEthereumHoodi?: Feature | undefined;
71
+ currencyCore?: Feature | undefined;
72
+ currencyWestend?: Feature | undefined;
73
+ currencyAssetHubWestend?: Feature | undefined;
74
+ currencyAssetHubPolkadot?: Feature | undefined;
75
+ currencyPolkadot?: Feature | undefined;
76
+ currencyMonad?: Feature | undefined;
77
+ nanoOnboardingFundWallet?: Feature | undefined;
78
+ mixpanelAnalytics?: Feature | undefined;
79
+ welcomeScreenVideoCarousel?: Feature | undefined;
80
+ brazePushNotifications?: Feature | undefined;
81
+ ratingsPrompt?: Feature | undefined;
82
+ npsRatingsPrompt?: Feature | undefined;
83
+ counterValue?: Feature | undefined;
84
+ deviceInitialApps?: Feature | undefined;
85
+ buyDeviceFromLive?: Feature | undefined;
86
+ mockFeature?: Feature | undefined;
87
+ buySellUi?: Feature | undefined;
88
+ buySellLoader?: Feature | undefined;
89
+ buySellShortcut?: Feature | undefined;
90
+ referralProgramDesktopSidebar?: Feature | undefined;
91
+ disableNftSend?: Feature | undefined;
92
+ disableNftLedgerMarket?: Feature | undefined;
93
+ disableNftRaribleOpensea?: Feature | undefined;
94
+ receiveStakingFlowConfigDesktop?: Feature | undefined;
95
+ ethStakingModalWithFilters?: Feature | undefined;
96
+ ethStakingProviders?: Feature | undefined;
97
+ storyly?: Feature | undefined;
98
+ postOnboardingAssetsTransfer?: Feature | undefined;
99
+ firebaseEnvironmentReadOnly?: Feature | undefined;
100
+ protectServicesMobile?: Feature | undefined;
101
+ protectServicesDesktop?: Feature | undefined;
102
+ ptxServiceCtaExchangeDrawer?: Feature | undefined;
103
+ ptxServiceCtaScreens?: Feature | undefined;
104
+ swapWalletApiPartnerList?: Feature | undefined;
105
+ stakePrograms?: Feature | undefined;
106
+ portfolioExchangeBanner?: Feature | undefined;
107
+ editEvmTx?: Feature | undefined;
108
+ stakeAccountBanner?: Feature | undefined;
109
+ newsfeedPage?: Feature | undefined;
110
+ domainInputResolution?: Feature | undefined;
111
+ discover?: Feature | undefined;
112
+ transactionsAlerts?: Feature | undefined;
113
+ fetchAdditionalCoins?: Feature | undefined;
114
+ ptxCard?: Feature | undefined;
115
+ ptxSwapLiveAppMobile?: Feature | undefined;
116
+ ptxSwapLiveAppKycWarning?: Feature | undefined;
117
+ ptxSwapLiveApp?: Feature | undefined;
118
+ ptxSwapDetailedView?: Feature | undefined;
119
+ ptxEarnLiveApp?: Feature | undefined;
120
+ ptxEarnDrawerConfiguration?: Feature | undefined;
121
+ ptxSwapReceiveTRC20WithoutTrx?: Feature | undefined;
122
+ flexibleContentCards?: Feature | undefined;
123
+ llmAnalyticsOptInPrompt?: Feature | undefined;
124
+ ptxSwapMoonpayProvider?: Feature | undefined;
125
+ ptxSwapExodusProvider?: Feature | undefined;
126
+ lldAnalyticsOptInPrompt?: Feature | undefined;
127
+ lldChatbotSupport?: Feature | undefined;
128
+ llmChatbotSupport?: Feature | undefined;
129
+ myLedgerDisplayAppDeveloperName?: Feature | undefined;
130
+ lldActionCarousel?: Feature | undefined;
131
+ marketperformanceWidgetDesktop?: Feature | undefined;
132
+ lldRefreshMarketData?: Feature | undefined;
133
+ llmRefreshMarketData?: Feature | undefined;
134
+ lldWalletSync?: Feature | undefined;
135
+ llmWalletSync?: Feature | undefined;
136
+ enableAppsBackup?: Feature | undefined;
137
+ web3hub?: Feature | undefined;
138
+ llmMemoTag?: Feature | undefined;
139
+ lldMemoTag?: Feature | undefined;
140
+ ldmkTransport?: Feature | undefined;
141
+ llMevProtection?: Feature | undefined;
142
+ llCounterValueGranularitiesRates?: Feature | undefined;
143
+ llmRebornLP?: Feature | undefined;
144
+ llmAccountListUI?: Feature | undefined;
145
+ llmLedgerSyncEntryPoints?: Feature | undefined;
146
+ lldLedgerSyncEntryPoints?: Feature | undefined;
147
+ lldNanoSUpsellBanners?: Feature | undefined;
148
+ llmNanoSUpsellBanners?: Feature | undefined;
149
+ llmThai?: Feature | undefined;
150
+ lldThai?: Feature | undefined;
151
+ largemoverLandingpage?: Feature | undefined;
152
+ llmMmkvMigration?: Feature | undefined;
153
+ lldModularDrawer?: Feature | undefined;
154
+ llmModularDrawer?: Feature | undefined;
155
+ llNftEntryPoint?: Feature | undefined;
156
+ ldmkConnectApp?: Feature | undefined;
157
+ lldNetworkBasedAddAccount?: Feature | undefined;
158
+ llmDatadog?: Feature | undefined;
159
+ llmSentry?: Feature | undefined;
160
+ onboardingIgnoredOsUpdates?: Feature | undefined;
161
+ llmHomescreen?: Feature | undefined;
162
+ supportDeviceApex?: Feature | undefined;
163
+ llmSyncOnboardingIncr1?: Feature | undefined;
164
+ lldSyncOnboardingIncr1?: Feature | undefined;
165
+ noah?: Feature | undefined;
166
+ newSendFlow?: Feature | undefined;
167
+ lldSessionReplay?: Feature | undefined;
168
+ } | undefined) => Partial<{
4
169
  currencyAvalancheCChain: Feature;
5
170
  currencyStacks: Feature;
6
171
  currencyOptimism: Feature;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/e2e/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG1D,eAAO,MAAM,kBAAkB,iBACf,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASrB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6B3B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAMzB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/e2e/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG1D,eAAO,MAAM,kBAAkB,iBACf,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6B3B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAMzB,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { getFeature, DEFAULT_FEATURES } from "../featureFlags";
2
- export const getAllFeatureFlags = (appLanguage) => {
2
+ export const getAllFeatureFlags = (appLanguage, localOverrides) => {
3
3
  const res = {};
4
4
  Object.keys(DEFAULT_FEATURES).forEach(k => {
5
5
  const key = k;
6
- const value = getFeature({ key, appLanguage });
6
+ const value = getFeature({ key, appLanguage, localOverrides });
7
7
  if (value !== null)
8
8
  res[key] = value;
9
9
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/e2e/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAoB,EACsB,EAAE;IAC5C,MAAM,GAAG,GAA6C,EAAE,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACxC,MAAM,GAAG,GAAG,CAAkC,CAAC;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAA8C,EAAE,EAAE;IAChF,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC/C,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,SAAS;QAC7B,UAAU,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,IAAI,CAAC;QAE/C,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,kCAAkC,EAAE,KAAK,CAAC,kCAAkC;YAC5E,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC;YAC9D,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC;YAC9D,mCAAmC,EAAE,KAAK,CAAC,mCAAmC;YAC9E,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SAChE,CAAC;QAEF,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzD,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,UAAU,IAAI,MAAM,GAAG,IAAI,KAAK,MAAM,UAAU;qBAC7C,QAAQ,EAAE;qBACV,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACvB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC;aAC3B;SACF;KACF;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAmC,EAAE,EAAE;IACnE,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC/C,UAAU,IAAI,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;KACzC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/e2e/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAoB,EACpB,cAA6D,EACnB,EAAE;IAC5C,MAAM,GAAG,GAA6C,EAAE,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACxC,MAAM,GAAG,GAAG,CAAkC,CAAC;QAC/C,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;QAC/D,IAAI,KAAK,KAAK,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAA8C,EAAE,EAAE;IAChF,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC/C,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,SAAS;QAC7B,UAAU,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,IAAI,CAAC;QAE/C,MAAM,OAAO,GAAG;YACd,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,kCAAkC,EAAE,KAAK,CAAC,kCAAkC;YAC5E,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC;YAC9D,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC;YAC9D,mCAAmC,EAAE,KAAK,CAAC,mCAAmC;YAC9E,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SAChE,CAAC;QAEF,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACzD,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,UAAU,IAAI,MAAM,GAAG,IAAI,KAAK,MAAM,UAAU;qBAC7C,QAAQ,EAAE;qBACV,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACvB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC;aAC3B;SACF;KACF;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAmC,EAAE,EAAE;IACnE,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC/C,UAAU,IAAI,OAAO,GAAG,MAAM,KAAK,IAAI,CAAC;KACzC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ledgerhq/live-common",
3
3
  "description": "Common ground for the Ledger Live apps",
4
- "version": "34.53.0-nightly.20251112023812",
4
+ "version": "34.53.0-nightly.20251113023835",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/LedgerHQ/ledger-live.git"
@@ -168,45 +168,45 @@
168
168
  "yargs": "^17.0.0",
169
169
  "zod": "^3.22.4",
170
170
  "react-redux": "7.2.9",
171
- "@ledgerhq/coin-algorand": "^0.13.0-nightly.20251112023812",
172
- "@ledgerhq/coin-aptos": "^3.6.0-nightly.20251112023812",
173
- "@ledgerhq/coin-bitcoin": "^0.25.0-nightly.20251112023812",
174
- "@ledgerhq/coin-canton": "^0.10.0-nightly.20251112023812",
175
- "@ledgerhq/coin-cardano": "^0.15.0-nightly.20251112023812",
176
- "@ledgerhq/coin-casper": "^2.3.1-nightly.20251112023812",
177
- "@ledgerhq/coin-celo": "^1.7.1-nightly.20251112023812",
178
- "@ledgerhq/coin-cosmos": "^0.20.0-nightly.20251112023812",
179
- "@ledgerhq/coin-evm": "^2.35.0-nightly.20251112023812",
180
- "@ledgerhq/coin-filecoin": "^1.14.1-nightly.20251112023812",
181
- "@ledgerhq/coin-framework": "^6.9.0-nightly.20251112023812",
182
- "@ledgerhq/coin-hedera": "^1.14.0-nightly.20251112023812",
183
- "@ledgerhq/coin-icon": "^0.15.0-nightly.20251112023812",
184
- "@ledgerhq/coin-internet_computer": "^1.10.1-nightly.20251112023812",
185
- "@ledgerhq/coin-kaspa": "^1.4.1-nightly.20251112023812",
186
- "@ledgerhq/coin-mina": "^1.4.1-nightly.20251112023812",
187
- "@ledgerhq/coin-multiversx": "^0.8.0-nightly.20251112023812",
188
- "@ledgerhq/coin-near": "^0.16.0-nightly.20251112023812",
189
- "@ledgerhq/coin-polkadot": "^6.13.0-nightly.20251112023812",
190
- "@ledgerhq/coin-solana": "^0.37.0-nightly.20251112023812",
191
- "@ledgerhq/coin-stellar": "^6.7.0-nightly.20251112023812",
192
- "@ledgerhq/coin-stacks": "^0.12.0-nightly.20251112023812",
193
- "@ledgerhq/coin-sui": "^0.18.0-nightly.20251112023812",
194
- "@ledgerhq/coin-tezos": "^6.9.0-nightly.20251112023812",
195
- "@ledgerhq/coin-ton": "^0.17.0-nightly.20251112023812",
196
- "@ledgerhq/coin-tron": "^5.7.0-nightly.20251112023812",
197
- "@ledgerhq/coin-vechain": "^2.12.1-nightly.20251112023812",
198
- "@ledgerhq/coin-xrp": "^7.8.0-nightly.20251112023812",
199
- "@ledgerhq/crypto-icons-ui": "^1.23.0-nightly.20251112023812",
200
- "@ledgerhq/cryptoassets": "^13.33.0-nightly.20251112023812",
201
- "@ledgerhq/device-core": "^0.6.8-nightly.20251112023812",
171
+ "@ledgerhq/coin-algorand": "^0.13.0-nightly.20251113023835",
172
+ "@ledgerhq/coin-aptos": "^3.6.0-nightly.20251113023835",
173
+ "@ledgerhq/coin-bitcoin": "^0.25.0-nightly.20251113023835",
174
+ "@ledgerhq/coin-canton": "^0.10.0-nightly.20251113023835",
175
+ "@ledgerhq/coin-cardano": "^0.15.0-nightly.20251113023835",
176
+ "@ledgerhq/coin-casper": "^2.3.1-nightly.20251113023835",
177
+ "@ledgerhq/coin-celo": "^1.7.1-nightly.20251113023835",
178
+ "@ledgerhq/coin-cosmos": "^0.20.0-nightly.20251113023835",
179
+ "@ledgerhq/coin-evm": "^2.35.0-nightly.20251113023835",
180
+ "@ledgerhq/coin-filecoin": "^1.14.1-nightly.20251113023835",
181
+ "@ledgerhq/coin-framework": "^6.9.0-nightly.20251113023835",
182
+ "@ledgerhq/coin-hedera": "^1.14.0-nightly.20251113023835",
183
+ "@ledgerhq/coin-icon": "^0.15.0-nightly.20251113023835",
184
+ "@ledgerhq/coin-internet_computer": "^1.10.1-nightly.20251113023835",
185
+ "@ledgerhq/coin-kaspa": "^1.4.1-nightly.20251113023835",
186
+ "@ledgerhq/coin-mina": "^1.4.1-nightly.20251113023835",
187
+ "@ledgerhq/coin-multiversx": "^0.8.0-nightly.20251113023835",
188
+ "@ledgerhq/coin-near": "^0.16.0-nightly.20251113023835",
189
+ "@ledgerhq/coin-polkadot": "^6.13.0-nightly.20251113023835",
190
+ "@ledgerhq/coin-solana": "^0.37.0-nightly.20251113023835",
191
+ "@ledgerhq/coin-stacks": "^0.12.0-nightly.20251113023835",
192
+ "@ledgerhq/coin-stellar": "^6.7.0-nightly.20251113023835",
193
+ "@ledgerhq/coin-sui": "^0.18.0-nightly.20251113023835",
194
+ "@ledgerhq/coin-tezos": "^6.9.0-nightly.20251113023835",
195
+ "@ledgerhq/coin-ton": "^0.17.0-nightly.20251113023835",
196
+ "@ledgerhq/coin-tron": "^5.7.0-nightly.20251113023835",
197
+ "@ledgerhq/coin-vechain": "^2.12.1-nightly.20251113023835",
198
+ "@ledgerhq/coin-xrp": "^7.8.0-nightly.20251113023835",
199
+ "@ledgerhq/crypto-icons-ui": "^1.23.0-nightly.20251113023835",
200
+ "@ledgerhq/cryptoassets": "^13.33.0-nightly.20251113023835",
201
+ "@ledgerhq/device-core": "^0.6.8-nightly.20251113023835",
202
202
  "@ledgerhq/devices": "8.7.0",
203
203
  "@ledgerhq/errors": "^6.27.0",
204
204
  "@ledgerhq/hw-app-algorand": "^6.31.9",
205
205
  "@ledgerhq/hw-app-aptos": "^6.34.9",
206
206
  "@ledgerhq/hw-app-btc": "^10.12.0",
207
- "@ledgerhq/hw-app-celo": "^6.35.3-nightly.20251112023812",
207
+ "@ledgerhq/hw-app-celo": "^6.35.3-nightly.20251113023835",
208
208
  "@ledgerhq/hw-app-cosmos": "^6.32.9",
209
- "@ledgerhq/hw-app-eth": "^6.47.1-nightly.20251112023812",
209
+ "@ledgerhq/hw-app-eth": "^6.47.1-nightly.20251113023835",
210
210
  "@ledgerhq/hw-app-exchange": "^0.17.0",
211
211
  "@ledgerhq/hw-app-hedera": "^1.2.9",
212
212
  "@ledgerhq/hw-app-icon": "^1.3.9",
@@ -218,27 +218,27 @@
218
218
  "@ledgerhq/hw-app-sui": "^1.4.0",
219
219
  "@ledgerhq/hw-app-tezos": "^6.31.9",
220
220
  "@ledgerhq/hw-app-trx": "^6.31.9",
221
- "@ledgerhq/hw-app-xrp": "^6.32.7",
222
221
  "@ledgerhq/hw-app-vet": "^0.7.0",
222
+ "@ledgerhq/hw-app-xrp": "^6.32.7",
223
223
  "@ledgerhq/hw-bolos": "^6.32.9",
224
224
  "@ledgerhq/hw-transport": "6.31.13",
225
225
  "@ledgerhq/hw-transport-mocker": "^6.29.13",
226
- "@ledgerhq/ledger-cal-service": "^1.9.0-nightly.20251112023812",
227
- "@ledgerhq/ledger-trust-service": "^0.4.2-nightly.20251112023812",
226
+ "@ledgerhq/ledger-cal-service": "^1.9.0-nightly.20251113023835",
227
+ "@ledgerhq/ledger-trust-service": "^0.4.2-nightly.20251113023835",
228
228
  "@ledgerhq/live-config": "^3.2.0",
229
- "@ledgerhq/live-countervalues": "^0.10.0-nightly.20251112023812",
230
- "@ledgerhq/live-countervalues-react": "^0.7.2-nightly.20251112023812",
229
+ "@ledgerhq/live-countervalues": "^0.10.0-nightly.20251113023835",
230
+ "@ledgerhq/live-countervalues-react": "^0.7.2-nightly.20251113023835",
231
231
  "@ledgerhq/live-dmk-shared": "^0.15.0",
232
- "@ledgerhq/live-env": "^2.21.0-nightly.20251112023812",
232
+ "@ledgerhq/live-env": "^2.21.0-nightly.20251113023835",
233
233
  "@ledgerhq/live-hooks": "0.2.0",
234
- "@ledgerhq/live-network": "^2.1.1-nightly.20251112023812",
234
+ "@ledgerhq/live-network": "^2.1.1-nightly.20251113023835",
235
235
  "@ledgerhq/live-promise": "^0.1.1",
236
- "@ledgerhq/live-signer-canton": "^0.5.1-nightly.20251112023812",
237
- "@ledgerhq/live-signer-evm": "^0.10.1-nightly.20251112023812",
238
- "@ledgerhq/live-signer-solana": "^0.6.1-nightly.20251112023812",
239
- "@ledgerhq/live-wallet": "^0.16.0-nightly.20251112023812",
236
+ "@ledgerhq/live-signer-canton": "^0.5.1-nightly.20251113023835",
237
+ "@ledgerhq/live-signer-evm": "^0.10.1-nightly.20251113023835",
238
+ "@ledgerhq/live-signer-solana": "^0.6.1-nightly.20251113023835",
239
+ "@ledgerhq/live-wallet": "^0.16.0-nightly.20251113023835",
240
240
  "@ledgerhq/logs": "^6.13.0",
241
- "@ledgerhq/speculos-transport": "^0.2.15-nightly.20251112023812",
241
+ "@ledgerhq/speculos-transport": "^0.2.15-nightly.20251113023835",
242
242
  "@ledgerhq/wallet-api-acre-module": "^0.9.0",
243
243
  "@ledgerhq/wallet-api-exchange-module": "^0.18.0"
244
244
  },
@@ -288,10 +288,10 @@
288
288
  "undici": "6.19.2",
289
289
  "uuid": "^8.3.2",
290
290
  "ws": "7",
291
+ "@ledgerhq/device-react": "^0.3.2-nightly.20251113023835",
291
292
  "@ledgerhq/types-cryptoassets": "^7.30.0",
292
293
  "@ledgerhq/types-devices": "^6.27.0",
293
- "@ledgerhq/types-live": "^6.89.0-nightly.20251112023812",
294
- "@ledgerhq/device-react": "^0.3.2-nightly.20251112023812"
294
+ "@ledgerhq/types-live": "^6.89.0-nightly.20251113023835"
295
295
  },
296
296
  "scripts": {
297
297
  "build": "zx ./scripts/build-ts.mjs",
@@ -534,4 +534,70 @@ describe("mergeSubAccounts", () => {
534
534
  },
535
535
  ]);
536
536
  });
537
+
538
+ it("prevents duplicates when token account ID changes but token.id stays the same", () => {
539
+ const oldSubAccounts = [
540
+ {
541
+ id: "accountId+stellar:USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
542
+ type: "TokenAccount",
543
+ parentId: "accountId",
544
+ token: {
545
+ id: "stellar/asset/USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
546
+ },
547
+ balance: new BigNumber(100),
548
+ spendableBalance: new BigNumber(100),
549
+ operations: [
550
+ {
551
+ id: "old-op-1",
552
+ type: "IN",
553
+ senders: ["sender1"],
554
+ recipients: ["owner"],
555
+ date: new Date("2019-01-01"),
556
+ },
557
+ {
558
+ id: "old-op-2",
559
+ type: "OUT",
560
+ senders: ["owner"],
561
+ recipients: ["recipient1"],
562
+ date: new Date("2019-01-02"),
563
+ },
564
+ ],
565
+ operationsCount: 2,
566
+ },
567
+ ] as Array<TokenAccount>;
568
+
569
+ const newSubAccounts = [
570
+ {
571
+ id: "accountId+stellar/asset/USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
572
+ type: "TokenAccount",
573
+ parentId: "accountId",
574
+ token: {
575
+ id: "stellar/asset/USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5",
576
+ },
577
+ balance: new BigNumber(150),
578
+ spendableBalance: new BigNumber(150),
579
+ operations: [
580
+ {
581
+ id: "new-op-1",
582
+ type: "IN",
583
+ senders: ["sender2"],
584
+ recipients: ["owner"],
585
+ date: new Date("2019-01-03"),
586
+ },
587
+ ],
588
+ operationsCount: 1,
589
+ },
590
+ ] as Array<TokenAccount>;
591
+
592
+ const merged = mergeSubAccounts(oldSubAccounts, newSubAccounts);
593
+
594
+ expect(merged).toHaveLength(1);
595
+ expect(merged[0]).toMatchObject({
596
+ token: { id: "stellar/asset/USDC-GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5" },
597
+ balance: new BigNumber(150),
598
+ spendableBalance: new BigNumber(150),
599
+ operationsCount: 3,
600
+ });
601
+ expect(merged[0].operations).toHaveLength(3);
602
+ });
537
603
  });
@@ -106,14 +106,14 @@ export function mergeSubAccounts(
106
106
  return newSubAccounts;
107
107
  }
108
108
 
109
- const oldSubAccountsById = Object.fromEntries(
110
- oldSubAccounts.map(account => [account.id, account]),
109
+ const oldSubAccountsByTokenId = Object.fromEntries(
110
+ oldSubAccounts.map(account => [account.token.id, account]),
111
111
  );
112
112
 
113
113
  const newSubAccountsToAdd: Array<TokenAccount> = [];
114
114
 
115
115
  for (const newSubAccount of newSubAccounts) {
116
- const existingSubAccount = oldSubAccountsById[newSubAccount.id];
116
+ const existingSubAccount = oldSubAccountsByTokenId[newSubAccount.token.id];
117
117
 
118
118
  if (!existingSubAccount) {
119
119
  // New sub account does not exist yet. Just add it as is.
@@ -123,7 +123,7 @@ export function mergeSubAccounts(
123
123
 
124
124
  // New sub account is already known, probably outdated
125
125
  const operations = mergeOps(existingSubAccount.operations, newSubAccount.operations);
126
- oldSubAccountsById[newSubAccount.id] = {
126
+ oldSubAccountsByTokenId[newSubAccount.token.id] = {
127
127
  ...existingSubAccount,
128
128
  balance: newSubAccount.balance,
129
129
  spendableBalance: newSubAccount.spendableBalance,
@@ -132,7 +132,7 @@ export function mergeSubAccounts(
132
132
  };
133
133
  }
134
134
 
135
- const updatedOldSubAccounts = Object.values(oldSubAccountsById);
135
+ const updatedOldSubAccounts = Object.values(oldSubAccountsByTokenId);
136
136
 
137
137
  return [...updatedOldSubAccounts, ...newSubAccountsToAdd];
138
138
  }