@ledgerhq/live-common 34.54.0 → 34.54.1

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.
Files changed (125) hide show
  1. package/lib/e2e/speculosCI.d.ts.map +1 -1
  2. package/lib/e2e/speculosCI.js +1 -6
  3. package/lib/e2e/speculosCI.js.map +1 -1
  4. package/lib/exchange/swap/postSwapState.d.ts.map +1 -1
  5. package/lib/exchange/swap/postSwapState.js +10 -6
  6. package/lib/exchange/swap/postSwapState.js.map +1 -1
  7. package/lib/exchange/swap/transactionStrategies.d.ts +2 -1
  8. package/lib/exchange/swap/transactionStrategies.d.ts.map +1 -1
  9. package/lib/exchange/swap/transactionStrategies.js +7 -6
  10. package/lib/exchange/swap/transactionStrategies.js.map +1 -1
  11. package/lib/exchange/swap/types.d.ts +3 -1
  12. package/lib/exchange/swap/types.d.ts.map +1 -1
  13. package/lib/hw/connectAppEventMapper.d.ts.map +1 -1
  14. package/lib/hw/connectAppEventMapper.js +21 -2
  15. package/lib/hw/connectAppEventMapper.js.map +1 -1
  16. package/lib/hw/getAppAndVersion.d.ts +3 -1
  17. package/lib/hw/getAppAndVersion.d.ts.map +1 -1
  18. package/lib/hw/getAppAndVersion.js +2 -2
  19. package/lib/hw/getAppAndVersion.js.map +1 -1
  20. package/lib/wallet-api/Exchange/SwapError.d.ts +93 -0
  21. package/lib/wallet-api/Exchange/SwapError.d.ts.map +1 -0
  22. package/lib/wallet-api/Exchange/SwapError.js +142 -0
  23. package/lib/wallet-api/Exchange/SwapError.js.map +1 -0
  24. package/lib/wallet-api/Exchange/handleSwapErrors.d.ts +40 -0
  25. package/lib/wallet-api/Exchange/handleSwapErrors.d.ts.map +1 -0
  26. package/lib/wallet-api/Exchange/handleSwapErrors.js +112 -0
  27. package/lib/wallet-api/Exchange/handleSwapErrors.js.map +1 -0
  28. package/lib/wallet-api/Exchange/index.d.ts +4 -0
  29. package/lib/wallet-api/Exchange/index.d.ts.map +1 -0
  30. package/lib/wallet-api/Exchange/index.js +27 -0
  31. package/lib/wallet-api/Exchange/index.js.map +1 -0
  32. package/lib/wallet-api/Exchange/parser.d.ts +46 -0
  33. package/lib/wallet-api/Exchange/parser.d.ts.map +1 -0
  34. package/lib/wallet-api/Exchange/parser.js +97 -0
  35. package/lib/wallet-api/Exchange/parser.js.map +1 -0
  36. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  37. package/lib/wallet-api/Exchange/server.js +227 -174
  38. package/lib/wallet-api/Exchange/server.js.map +1 -1
  39. package/lib/wallet-api/Exchange/tracking.d.ts +7 -6
  40. package/lib/wallet-api/Exchange/tracking.d.ts.map +1 -1
  41. package/lib/wallet-api/Exchange/tracking.js +52 -13
  42. package/lib/wallet-api/Exchange/tracking.js.map +1 -1
  43. package/lib/wallet-api/logic.d.ts +1 -1
  44. package/lib/wallet-api/logic.d.ts.map +1 -1
  45. package/lib/wallet-api/logic.js +5 -5
  46. package/lib/wallet-api/logic.js.map +1 -1
  47. package/lib/wallet-api/react.d.ts.map +1 -1
  48. package/lib/wallet-api/react.js +9 -6
  49. package/lib/wallet-api/react.js.map +1 -1
  50. package/lib/wallet-api/tracking.d.ts +5 -5
  51. package/lib/wallet-api/tracking.d.ts.map +1 -1
  52. package/lib/wallet-api/tracking.js +30 -10
  53. package/lib/wallet-api/tracking.js.map +1 -1
  54. package/lib-es/e2e/speculosCI.d.ts.map +1 -1
  55. package/lib-es/e2e/speculosCI.js +1 -6
  56. package/lib-es/e2e/speculosCI.js.map +1 -1
  57. package/lib-es/exchange/swap/postSwapState.d.ts.map +1 -1
  58. package/lib-es/exchange/swap/postSwapState.js +10 -6
  59. package/lib-es/exchange/swap/postSwapState.js.map +1 -1
  60. package/lib-es/exchange/swap/transactionStrategies.d.ts +2 -1
  61. package/lib-es/exchange/swap/transactionStrategies.d.ts.map +1 -1
  62. package/lib-es/exchange/swap/transactionStrategies.js +7 -6
  63. package/lib-es/exchange/swap/transactionStrategies.js.map +1 -1
  64. package/lib-es/exchange/swap/types.d.ts +3 -1
  65. package/lib-es/exchange/swap/types.d.ts.map +1 -1
  66. package/lib-es/hw/connectAppEventMapper.d.ts.map +1 -1
  67. package/lib-es/hw/connectAppEventMapper.js +23 -4
  68. package/lib-es/hw/connectAppEventMapper.js.map +1 -1
  69. package/lib-es/hw/getAppAndVersion.d.ts +3 -1
  70. package/lib-es/hw/getAppAndVersion.d.ts.map +1 -1
  71. package/lib-es/hw/getAppAndVersion.js +2 -2
  72. package/lib-es/hw/getAppAndVersion.js.map +1 -1
  73. package/lib-es/wallet-api/Exchange/SwapError.d.ts +93 -0
  74. package/lib-es/wallet-api/Exchange/SwapError.d.ts.map +1 -0
  75. package/lib-es/wallet-api/Exchange/SwapError.js +128 -0
  76. package/lib-es/wallet-api/Exchange/SwapError.js.map +1 -0
  77. package/lib-es/wallet-api/Exchange/handleSwapErrors.d.ts +40 -0
  78. package/lib-es/wallet-api/Exchange/handleSwapErrors.d.ts.map +1 -0
  79. package/lib-es/wallet-api/Exchange/handleSwapErrors.js +106 -0
  80. package/lib-es/wallet-api/Exchange/handleSwapErrors.js.map +1 -0
  81. package/lib-es/wallet-api/Exchange/index.d.ts +4 -0
  82. package/lib-es/wallet-api/Exchange/index.d.ts.map +1 -0
  83. package/lib-es/wallet-api/Exchange/index.js +7 -0
  84. package/lib-es/wallet-api/Exchange/index.js.map +1 -0
  85. package/lib-es/wallet-api/Exchange/parser.d.ts +46 -0
  86. package/lib-es/wallet-api/Exchange/parser.d.ts.map +1 -0
  87. package/lib-es/wallet-api/Exchange/parser.js +90 -0
  88. package/lib-es/wallet-api/Exchange/parser.js.map +1 -0
  89. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  90. package/lib-es/wallet-api/Exchange/server.js +224 -174
  91. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  92. package/lib-es/wallet-api/Exchange/tracking.d.ts +7 -6
  93. package/lib-es/wallet-api/Exchange/tracking.d.ts.map +1 -1
  94. package/lib-es/wallet-api/Exchange/tracking.js +52 -13
  95. package/lib-es/wallet-api/Exchange/tracking.js.map +1 -1
  96. package/lib-es/wallet-api/logic.d.ts +1 -1
  97. package/lib-es/wallet-api/logic.d.ts.map +1 -1
  98. package/lib-es/wallet-api/logic.js +5 -5
  99. package/lib-es/wallet-api/logic.js.map +1 -1
  100. package/lib-es/wallet-api/react.d.ts.map +1 -1
  101. package/lib-es/wallet-api/react.js +9 -6
  102. package/lib-es/wallet-api/react.js.map +1 -1
  103. package/lib-es/wallet-api/tracking.d.ts +5 -5
  104. package/lib-es/wallet-api/tracking.d.ts.map +1 -1
  105. package/lib-es/wallet-api/tracking.js +30 -10
  106. package/lib-es/wallet-api/tracking.js.map +1 -1
  107. package/package.json +68 -68
  108. package/src/e2e/speculosCI.ts +1 -6
  109. package/src/exchange/swap/postSwapState.ts +10 -5
  110. package/src/exchange/swap/transactionStrategies.ts +8 -7
  111. package/src/exchange/swap/types.ts +3 -1
  112. package/src/hw/connectAppEventMapper.ts +28 -4
  113. package/src/hw/getAppAndVersion.ts +2 -1
  114. package/src/wallet-api/Exchange/SwapError.test.ts +126 -0
  115. package/src/wallet-api/Exchange/SwapError.ts +159 -0
  116. package/src/wallet-api/Exchange/handleSwapErrors.test.ts +46 -0
  117. package/src/wallet-api/Exchange/handleSwapErrors.ts +161 -0
  118. package/src/wallet-api/Exchange/index.ts +26 -0
  119. package/src/wallet-api/Exchange/parser.test.ts +86 -0
  120. package/src/wallet-api/Exchange/parser.ts +119 -0
  121. package/src/wallet-api/Exchange/server.ts +289 -232
  122. package/src/wallet-api/Exchange/tracking.ts +56 -13
  123. package/src/wallet-api/logic.ts +5 -4
  124. package/src/wallet-api/react.ts +10 -5
  125. package/src/wallet-api/tracking.ts +30 -10
@@ -15,6 +15,10 @@ import { createAccounIdNotFound, createWrongSellParams, createWrongSwapParams, c
15
15
  import { getSwapStepFromError } from "../../exchange/error";
16
16
  import { postSwapCancelled } from "../../exchange/swap";
17
17
  import { setBroadcastTransaction } from "../../exchange/swap/setBroadcastTransaction";
18
+ import { padHexString } from "@ledgerhq/hw-app-eth";
19
+ import { createStepError, StepError, toError } from "./parser";
20
+ import { handleErrors } from "./handleSwapErrors";
21
+ import get from "lodash/get";
18
22
  export { ExchangeType };
19
23
  export const handlers = ({ accounts, tracking, manifest, uiHooks: { "custom.exchange.start": uiExchangeStart, "custom.exchange.complete": uiExchangeComplete, "custom.exchange.error": uiError, "custom.isReady": uiIsReady, "custom.exchange.swap": uiSwap, }, }) => ({
20
24
  "custom.exchange.start": customWrapper(async (params) => {
@@ -194,172 +198,219 @@ export const handlers = ({ accounts, tracking, manifest, uiHooks: { "custom.exch
194
198
  }));
195
199
  }),
196
200
  "custom.exchange.swap": customWrapper(async (params) => {
197
- if (!params) {
198
- tracking.startExchangeNoParams(manifest);
199
- throw new ServerError(createUnknownError({ message: "params is undefined" }));
200
- }
201
- const { provider, fromAmount, fromAmountAtomic, quoteId, toNewTokenId, customFeeConfig, swapAppVersion, sponsored, } = params;
202
- const trackingParams = {
203
- provider: params.provider,
204
- exchangeType: params.exchangeType,
205
- };
206
- tracking.startExchangeRequested(trackingParams);
207
- const exchangeStartParams = (await extractSwapStartParam(params, accounts));
208
- const { fromCurrency, fromAccount, fromParentAccount, toCurrency, toAccount, toParentAccount, } = exchangeStartParams.exchange;
209
- if (!fromAccount || !fromCurrency) {
210
- throw new ServerError(createAccountNotFound(params.fromAccountId));
211
- }
212
- const fromAccountAddress = fromParentAccount
213
- ? fromParentAccount.freshAddress
214
- : fromAccount.freshAddress;
215
- const toAccountAddress = toParentAccount
216
- ? toParentAccount.freshAddress
217
- : toAccount.freshAddress;
218
- // Step 1: Open the drawer and open exchange app
219
- const startExchange = async () => {
220
- return new Promise((resolve, reject) => {
221
- uiExchangeStart({
222
- exchangeParams: exchangeStartParams,
223
- onSuccess: (nonce, device) => {
224
- tracking.startExchangeSuccess(trackingParams);
225
- resolve({ transactionId: nonce, device });
226
- },
227
- onCancel: error => {
228
- tracking.startExchangeFail(trackingParams);
229
- reject(error);
230
- },
201
+ try {
202
+ if (!params) {
203
+ tracking.startExchangeNoParams(manifest);
204
+ throw new ServerError(createUnknownError({ message: "params is undefined" }));
205
+ }
206
+ const { provider, fromAmount, fromAmountAtomic, quoteId, toNewTokenId, customFeeConfig, swapAppVersion, sponsored, isEmbedded, } = params;
207
+ const trackingParams = {
208
+ provider: params.provider,
209
+ exchangeType: params.exchangeType,
210
+ isEmbeddedSwap: isEmbedded,
211
+ };
212
+ tracking.startExchangeRequested(trackingParams);
213
+ const exchangeStartParams = (await extractSwapStartParam(params, accounts));
214
+ const { fromCurrency, fromAccount, fromParentAccount, toCurrency, toAccount, toParentAccount, } = exchangeStartParams.exchange;
215
+ if (!fromAccount || !fromCurrency) {
216
+ throw new ServerError(createAccountNotFound(params.fromAccountId));
217
+ }
218
+ const fromAccountAddress = fromParentAccount
219
+ ? fromParentAccount.freshAddress
220
+ : fromAccount.freshAddress;
221
+ const toAccountAddress = toParentAccount
222
+ ? toParentAccount.freshAddress
223
+ : toAccount.freshAddress;
224
+ // Step 1: Open the drawer and open exchange app
225
+ const startExchange = async () => {
226
+ return new Promise((resolve, reject) => {
227
+ uiExchangeStart({
228
+ exchangeParams: exchangeStartParams,
229
+ onSuccess: (nonce, device) => {
230
+ tracking.startExchangeSuccess(trackingParams);
231
+ resolve({ transactionId: nonce, device });
232
+ },
233
+ onCancel: error => {
234
+ tracking.startExchangeFail(trackingParams);
235
+ reject(error);
236
+ },
237
+ });
231
238
  });
239
+ };
240
+ let transactionId;
241
+ let deviceInfo;
242
+ try {
243
+ const result = await startExchange();
244
+ transactionId = result.transactionId;
245
+ deviceInfo = result.device;
246
+ }
247
+ catch (error) {
248
+ const rawError = get(error, "response.data.error", error);
249
+ const wrappedError = createStepError({
250
+ error: toError(rawError),
251
+ step: StepError.NONCE,
252
+ });
253
+ throw wrappedError;
254
+ }
255
+ const { binaryPayload, signature, payinAddress, swapId, payinExtraId, extraTransactionParameters, } = await retrieveSwapPayload({
256
+ provider,
257
+ deviceTransactionId: transactionId,
258
+ fromAccountAddress,
259
+ toAccountAddress,
260
+ fromAccountCurrency: fromCurrency.id,
261
+ toAccountCurrency: toCurrency.id,
262
+ amount: fromAmount,
263
+ amountInAtomicUnit: fromAmountAtomic,
264
+ quoteId,
265
+ toNewTokenId,
266
+ }).catch((error) => {
267
+ const wrappedError = createStepError({
268
+ error: get(error, "response.data.error", error),
269
+ step: StepError.PAYLOAD,
270
+ });
271
+ throw wrappedError;
232
272
  });
233
- };
234
- const { transactionId, device: deviceInfo } = await startExchange();
235
- const { binaryPayload, signature, payinAddress, swapId, payinExtraId, extraTransactionParameters, } = await retrieveSwapPayload({
236
- provider,
237
- deviceTransactionId: transactionId,
238
- fromAccountAddress,
239
- toAccountAddress,
240
- fromAccountCurrency: fromCurrency.id,
241
- toAccountCurrency: toCurrency.id,
242
- amount: fromAmount,
243
- amountInAtomicUnit: fromAmountAtomic,
244
- quoteId,
245
- toNewTokenId,
246
- }).catch((error) => {
247
- throw error;
248
- });
249
- // Complete Swap
250
- const trackingCompleteParams = {
251
- provider: params.provider,
252
- exchangeType: params.exchangeType,
253
- };
254
- tracking.completeExchangeRequested(trackingCompleteParams);
255
- const strategyData = {
256
- recipient: payinAddress,
257
- amount: fromAmountAtomic,
258
- currency: fromCurrency,
259
- customFeeConfig: customFeeConfig ?? {},
260
- payinExtraId,
261
- extraTransactionParameters,
262
- sponsored,
263
- };
264
- const transaction = await getStrategy(strategyData, "swap").catch(async (error) => {
265
- throw error;
266
- });
267
- const mainFromAccount = getMainAccount(fromAccount, fromParentAccount);
268
- if (transaction.family !== mainFromAccount.currency.family) {
269
- return Promise.reject(new Error(`Account and transaction must be from the same family. Account family: ${mainFromAccount.currency.family}, Transaction family: ${transaction.family}`));
270
- }
271
- const accountBridge = getAccountBridge(fromAccount, fromParentAccount);
272
- /**
273
- * 'subAccountId' is used for ETH and it's ERC-20 tokens.
274
- * This field is ignored for BTC
275
- */
276
- const subAccountId = fromParentAccount && fromParentAccount.id !== fromAccount.id ? fromAccount.id : undefined;
277
- const bridgeTx = accountBridge.createTransaction(fromAccount);
278
- /**
279
- * We append the `recipient` to the tx created from `createTransaction`
280
- * to avoid having userGasLimit reset to null for ETH txs
281
- * cf. libs/ledger-live-common/src/families/ethereum/updateTransaction.ts
282
- */
283
- const tx = accountBridge.updateTransaction({
284
- ...bridgeTx,
285
- recipient: transaction.recipient,
286
- }, {
287
- ...transaction,
288
- feesStrategy: params.feeStrategy.toLowerCase(),
289
- subAccountId,
290
- });
291
- // Get amountExpectedTo and magnitudeAwareRate from binary payload
292
- const decodePayload = await decodeSwapPayload(binaryPayload);
293
- const amountExpectedTo = new BigNumber(decodePayload.amountToWallet.toString());
294
- const magnitudeAwareRate = tx.amount && amountExpectedTo.dividedBy(tx.amount);
295
- const refundAddress = decodePayload.refundAddress;
296
- const payoutAddress = decodePayload.payoutAddress;
297
- // tx.amount should be BigNumber
298
- tx.amount = new BigNumber(tx.amount);
299
- return new Promise((resolve, reject) => uiSwap({
300
- exchangeParams: {
301
- exchangeType: ExchangeType.SWAP,
273
+ // Complete Swap
274
+ const trackingCompleteParams = {
302
275
  provider: params.provider,
303
- transaction: tx,
304
- signature: signature,
305
- binaryPayload: binaryPayload,
306
- exchange: {
307
- fromAccount,
308
- fromParentAccount,
309
- toAccount,
310
- toParentAccount,
311
- fromCurrency: fromCurrency,
312
- toCurrency: toCurrency,
313
- },
314
- feesStrategy: params.feeStrategy,
315
- swapId: swapId,
316
- amountExpectedTo: amountExpectedTo.toNumber(),
317
- magnitudeAwareRate,
318
- refundAddress,
319
- payoutAddress,
276
+ exchangeType: params.exchangeType,
277
+ isEmbeddedSwap: isEmbedded,
278
+ };
279
+ tracking.completeExchangeRequested(trackingCompleteParams);
280
+ const strategyData = {
281
+ recipient: payinAddress,
282
+ amount: fromAmountAtomic,
283
+ currency: fromCurrency,
284
+ customFeeConfig: customFeeConfig ?? {},
285
+ payinExtraId,
286
+ extraTransactionParameters,
320
287
  sponsored,
321
- },
322
- onSuccess: ({ operationHash, swapId }) => {
323
- tracking.completeExchangeSuccess({
324
- ...trackingParams,
325
- currency: transaction.family,
326
- });
327
- setBroadcastTransaction({
328
- provider,
329
- result: { operation: operationHash, swapId },
330
- sourceCurrencyId: fromCurrency.id,
331
- targetCurrencyId: toCurrency?.id,
332
- hardwareWalletType: deviceInfo?.modelId,
333
- swapAppVersion,
334
- fromAccountAddress,
335
- toAccountAddress,
336
- fromAmount,
337
- });
338
- resolve({ operationHash, swapId });
339
- },
340
- onCancel: error => {
341
- postSwapCancelled({
342
- provider: provider,
288
+ };
289
+ const transaction = await getStrategy(strategyData, "swap");
290
+ const mainFromAccount = getMainAccount(fromAccount, fromParentAccount);
291
+ if (transaction.family !== mainFromAccount.currency.family) {
292
+ return Promise.reject(new Error(`Account and transaction must be from the same family. Account family: ${mainFromAccount.currency.family}, Transaction family: ${transaction.family}`));
293
+ }
294
+ const accountBridge = getAccountBridge(fromAccount, fromParentAccount);
295
+ /**
296
+ * 'subAccountId' is used for ETH and it's ERC-20 tokens.
297
+ * This field is ignored for BTC
298
+ */
299
+ const subAccountId = fromParentAccount && fromParentAccount.id !== fromAccount.id ? fromAccount.id : undefined;
300
+ const bridgeTx = accountBridge.createTransaction(fromAccount);
301
+ /**
302
+ * We append the `recipient` to the tx created from `createTransaction`
303
+ * to avoid having userGasLimit reset to null for ETH txs
304
+ * cf. libs/ledger-live-common/src/families/ethereum/updateTransaction.ts
305
+ */
306
+ const tx = accountBridge.updateTransaction({
307
+ ...bridgeTx,
308
+ recipient: transaction.recipient,
309
+ }, {
310
+ ...transaction,
311
+ feesStrategy: params.feeStrategy.toLowerCase(),
312
+ subAccountId,
313
+ });
314
+ // Get amountExpectedTo and magnitudeAwareRate from binary payload
315
+ const decodePayload = await decodeSwapPayload(binaryPayload);
316
+ const amountExpectedTo = new BigNumber(decodePayload.amountToWallet.toString());
317
+ const magnitudeAwareRate = tx.amount && amountExpectedTo.dividedBy(tx.amount);
318
+ const refundAddress = decodePayload.refundAddress;
319
+ const payoutAddress = decodePayload.payoutAddress;
320
+ // tx.amount should be BigNumber
321
+ tx.amount = new BigNumber(tx.amount);
322
+ return new Promise((resolve, reject) => uiSwap({
323
+ exchangeParams: {
324
+ exchangeType: ExchangeType.SWAP,
325
+ provider: params.provider,
326
+ transaction: tx,
327
+ signature: signature,
328
+ binaryPayload: binaryPayload,
329
+ exchange: {
330
+ fromAccount,
331
+ fromParentAccount,
332
+ toAccount,
333
+ toParentAccount,
334
+ fromCurrency: fromCurrency,
335
+ toCurrency: toCurrency,
336
+ },
337
+ feesStrategy: params.feeStrategy,
343
338
  swapId: swapId,
344
- swapStep: getSwapStepFromError(error),
345
- statusCode: error.name,
346
- errorMessage: error.message,
347
- sourceCurrencyId: fromCurrency.id,
348
- targetCurrencyId: toCurrency?.id,
349
- hardwareWalletType: deviceInfo?.modelId,
350
- swapType: quoteId ? "fixed" : "float",
351
- swapAppVersion,
352
- fromAccountAddress,
353
- toAccountAddress,
339
+ amountExpectedTo: amountExpectedTo.toNumber(),
340
+ magnitudeAwareRate,
354
341
  refundAddress,
355
342
  payoutAddress,
356
- fromAmount,
357
- seedIdFrom: mainFromAccount.seedIdentifier,
358
- seedIdTo: toParentAccount?.seedIdentifier || toAccount?.seedIdentifier,
343
+ sponsored,
344
+ },
345
+ onSuccess: ({ operationHash, swapId }) => {
346
+ tracking.completeExchangeSuccess({
347
+ ...trackingParams,
348
+ currency: transaction.family,
349
+ });
350
+ setBroadcastTransaction({
351
+ provider,
352
+ result: { operation: operationHash, swapId },
353
+ sourceCurrencyId: fromCurrency.id,
354
+ targetCurrencyId: toCurrency?.id,
355
+ hardwareWalletType: deviceInfo?.modelId,
356
+ swapAppVersion,
357
+ fromAccountAddress,
358
+ toAccountAddress,
359
+ fromAmount,
360
+ });
361
+ resolve({ operationHash, swapId });
362
+ },
363
+ onCancel: error => {
364
+ postSwapCancelled({
365
+ provider: provider,
366
+ swapId: swapId,
367
+ swapStep: getSwapStepFromError(error),
368
+ statusCode: error.name,
369
+ errorMessage: error.message,
370
+ sourceCurrencyId: fromCurrency.id,
371
+ targetCurrencyId: toCurrency?.id,
372
+ hardwareWalletType: deviceInfo?.modelId,
373
+ swapType: quoteId ? "fixed" : "float",
374
+ swapAppVersion,
375
+ fromAccountAddress,
376
+ toAccountAddress,
377
+ refundAddress,
378
+ payoutAddress,
379
+ fromAmount,
380
+ seedIdFrom: mainFromAccount.seedIdentifier,
381
+ seedIdTo: toParentAccount?.seedIdentifier || toAccount?.seedIdentifier,
382
+ data: transaction.data
383
+ ? `0x${padHexString(transaction.data?.toString("hex") || "")}`
384
+ : "0x",
385
+ });
386
+ reject(createStepError({ error, step: StepError.SIGNATURE }));
387
+ },
388
+ }));
389
+ }
390
+ catch (error) {
391
+ // Skip DrawerClosedError
392
+ // do not redirect to the error screen
393
+ if (isDrawerClosedError(error)) {
394
+ throw error;
395
+ }
396
+ // Global catch for any errors during the swap process
397
+ // moved out as sonarcloud suggested to avoid 4 level nested functions
398
+ const createErrorRejector = (error, reject) => {
399
+ return () => reject(error);
400
+ };
401
+ const displayError = (error) => new Promise((resolve, reject) => {
402
+ const rejectWithError = createErrorRejector(error, reject);
403
+ uiError({
404
+ error,
405
+ onSuccess: rejectWithError,
406
+ onCancel: rejectWithError,
359
407
  });
360
- reject(error);
361
- },
362
- }));
408
+ });
409
+ await handleErrors(error, {
410
+ onDisplayError: displayError,
411
+ });
412
+ throw error;
413
+ }
363
414
  }),
364
415
  "custom.isReady": customWrapper(async () => {
365
416
  return new Promise((resolve, reject) => uiIsReady({
@@ -503,21 +554,20 @@ async function getStrategy({ recipient, amount, currency, customFeeConfig, payin
503
554
  convertedCustomFeeConfig[key] = new BigNumber(value?.toString() || 0);
504
555
  }
505
556
  }
506
- try {
507
- return await strategy({
508
- family,
509
- amount: new BigNumber(amount),
510
- recipient,
511
- customFeeConfig: convertedCustomFeeConfig,
512
- payinExtraId,
513
- extraTransactionParameters,
514
- customErrorType,
515
- sponsored,
516
- });
517
- }
518
- catch (error) {
519
- const errorMessage = error instanceof Error ? error.message : String(error);
520
- throw new Error(`Failed to execute transaction strategy for family: ${family}. Reason: ${errorMessage}`);
521
- }
557
+ return strategy({
558
+ family,
559
+ amount: new BigNumber(amount),
560
+ recipient,
561
+ customFeeConfig: convertedCustomFeeConfig,
562
+ payinExtraId,
563
+ extraTransactionParameters,
564
+ customErrorType,
565
+ sponsored,
566
+ });
567
+ }
568
+ function isDrawerClosedError(error) {
569
+ if (!error || typeof error !== "object")
570
+ return false;
571
+ return (get(error, "name") === "DrawerClosedError" || get(error, "cause.name") === "DrawerClosedError");
522
572
  }
523
573
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/server.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ type TrackExchange = (event: string, properties: Record<string, string> | null,
8
8
  interface TrackEventPayload {
9
9
  exchangeType: "SELL" | "FUND" | "SWAP";
10
10
  provider: string;
11
+ isEmbeddedSwap?: boolean;
11
12
  }
12
13
  /**
13
14
  * Wrap call to underlying trackCall function.
@@ -15,15 +16,15 @@ interface TrackEventPayload {
15
16
  * @returns a dictionary of event to trigger.
16
17
  */
17
18
  export default function trackingWrapper(trackCall: TrackExchange): {
18
- readonly startExchangeRequested: ({ provider, exchangeType }: TrackEventPayload) => void;
19
- readonly startExchangeSuccess: ({ provider, exchangeType }: TrackEventPayload) => void;
20
- readonly startExchangeFail: ({ provider, exchangeType }: TrackEventPayload) => void;
19
+ readonly startExchangeRequested: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void;
20
+ readonly startExchangeSuccess: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void;
21
+ readonly startExchangeFail: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void;
21
22
  readonly startExchangeNoParams: (manifest: AppManifest) => void;
22
- readonly completeExchangeRequested: ({ provider, exchangeType }: TrackEventPayload) => void;
23
- readonly completeExchangeSuccess: ({ provider, exchangeType, currency, }: TrackEventPayload & {
23
+ readonly completeExchangeRequested: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void;
24
+ readonly completeExchangeSuccess: ({ provider, exchangeType, currency, isEmbeddedSwap, }: TrackEventPayload & {
24
25
  currency: string;
25
26
  }) => void;
26
- readonly completeExchangeFail: ({ provider, exchangeType }: TrackEventPayload) => void;
27
+ readonly completeExchangeFail: ({ provider, exchangeType, isEmbeddedSwap }: TrackEventPayload) => void;
27
28
  readonly completeExchangeNoParams: (manifest: AppManifest) => void;
28
29
  };
29
30
  export type TrackingAPI = ReturnType<typeof trackingWrapper>;
@@ -1 +1 @@
1
- {"version":3,"file":"tracking.d.ts","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/tracking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;GAIG;AACH,KAAK,aAAa,GAAG,CACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EACzC,SAAS,EAAE,OAAO,GAAG,IAAI,KACtB,IAAI,CAAC;AAEV,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD;;;;GAIG;AAIH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,SAAS,EAAE,aAAa;kEAOP,iBAAiB;gEAKnB,iBAAiB;6DAKpB,iBAAiB;+CAK/B,WAAW;qEAIW,iBAAiB;;kBAStC,MAAM;;gEAKU,iBAAiB;kDAK/B,WAAW;EAInD;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"tracking.d.ts","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/tracking.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;GAIG;AACH,KAAK,aAAa,GAAG,CACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,EACzC,SAAS,EAAE,OAAO,GAAG,IAAI,KACtB,IAAI,CAAC;AAEV,UAAU,iBAAiB;IACzB,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAYD;;;;GAIG;AAIH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,SAAS,EAAE,aAAa;kFAiBS,iBAAiB;gFASnB,iBAAiB;6EASpB,iBAAiB;+CAS/C,WAAW;qFAI2B,iBAAiB;;kBActD,MAAM;;gFAU0B,iBAAiB;kDAS/C,WAAW;EAInD;AAED,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Converts isEmbeddedSwap boolean to string for analytics consistency
3
+ */
4
+ const formatIsEmbeddedSwap = (isEmbeddedSwap) => isEmbeddedSwap !== undefined ? String(isEmbeddedSwap) : undefined;
1
5
  function getEventData(manifest) {
2
6
  return { walletAPI: manifest.name };
3
7
  }
@@ -11,35 +15,70 @@ function getEventData(manifest) {
11
15
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
12
16
  export default function trackingWrapper(trackCall) {
13
17
  const track = (event, properties) => {
14
- return trackCall(event, properties, null);
18
+ // Filter out undefined values before passing to trackCall
19
+ if (!properties) {
20
+ return trackCall(event, null, null);
21
+ }
22
+ const filteredProperties = {};
23
+ for (const [key, value] of Object.entries(properties)) {
24
+ if (value !== undefined) {
25
+ filteredProperties[key] = value;
26
+ }
27
+ }
28
+ return trackCall(event, filteredProperties, null);
15
29
  };
16
30
  return {
17
31
  // Generate Exchange nonce modal open
18
- startExchangeRequested: ({ provider, exchangeType }) => {
19
- track(`Starts Exchange ${exchangeType} Nonce request`, { provider, exchangeType });
32
+ startExchangeRequested: ({ provider, exchangeType, isEmbeddedSwap }) => {
33
+ track(`Starts Exchange ${exchangeType} Nonce request`, {
34
+ provider,
35
+ exchangeType,
36
+ isEmbeddedSwap: formatIsEmbeddedSwap(isEmbeddedSwap),
37
+ });
20
38
  },
21
39
  // Successfully generated an Exchange app nonce
22
- startExchangeSuccess: ({ provider, exchangeType }) => {
23
- track(`Starts Exchange ${exchangeType} Nonce success`, { provider, exchangeType });
40
+ startExchangeSuccess: ({ provider, exchangeType, isEmbeddedSwap }) => {
41
+ track(`Starts Exchange ${exchangeType} Nonce success`, {
42
+ provider,
43
+ exchangeType,
44
+ isEmbeddedSwap: formatIsEmbeddedSwap(isEmbeddedSwap),
45
+ });
24
46
  },
25
47
  // Failed to generate an Exchange app nonce
26
- startExchangeFail: ({ provider, exchangeType }) => {
27
- track(`Starts Exchange ${exchangeType} Nonce fail`, { provider, exchangeType });
48
+ startExchangeFail: ({ provider, exchangeType, isEmbeddedSwap }) => {
49
+ track(`Starts Exchange ${exchangeType} Nonce fail`, {
50
+ provider,
51
+ exchangeType,
52
+ isEmbeddedSwap: formatIsEmbeddedSwap(isEmbeddedSwap),
53
+ });
28
54
  },
29
55
  // No Params to generate an Exchange app nonce
30
56
  startExchangeNoParams: (manifest) => {
31
57
  track("Starts Exchange no params", getEventData(manifest));
32
58
  },
33
- completeExchangeRequested: ({ provider, exchangeType }) => {
34
- track(`Completes Exchange ${exchangeType} requested`, { provider, exchangeType });
59
+ completeExchangeRequested: ({ provider, exchangeType, isEmbeddedSwap }) => {
60
+ track(`Completes Exchange ${exchangeType} requested`, {
61
+ provider,
62
+ exchangeType,
63
+ isEmbeddedSwap: formatIsEmbeddedSwap(isEmbeddedSwap),
64
+ });
35
65
  },
36
66
  // Successfully completed an Exchange
37
- completeExchangeSuccess: ({ provider, exchangeType, currency, }) => {
38
- track(`Completes Exchange ${exchangeType} success`, { provider, exchangeType, currency });
67
+ completeExchangeSuccess: ({ provider, exchangeType, currency, isEmbeddedSwap, }) => {
68
+ track(`Completes Exchange ${exchangeType} success`, {
69
+ provider,
70
+ exchangeType,
71
+ currency,
72
+ isEmbeddedSwap: formatIsEmbeddedSwap(isEmbeddedSwap),
73
+ });
39
74
  },
40
75
  // Failed to complete an Exchange
41
- completeExchangeFail: ({ provider, exchangeType }) => {
42
- track(`Completes Exchange ${exchangeType} Nonce fail`, { provider, exchangeType });
76
+ completeExchangeFail: ({ provider, exchangeType, isEmbeddedSwap }) => {
77
+ track(`Completes Exchange ${exchangeType} Nonce fail`, {
78
+ provider,
79
+ exchangeType,
80
+ isEmbeddedSwap: formatIsEmbeddedSwap(isEmbeddedSwap),
81
+ });
43
82
  },
44
83
  // No Params to complete an Exchange
45
84
  completeExchangeNoParams: (manifest) => {