@ledgerhq/live-common 34.40.0 → 34.41.0-nightly.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 (192) hide show
  1. package/lib/__tests__/test-helpers/bridge.d.ts.map +1 -1
  2. package/lib/__tests__/test-helpers/bridge.js +0 -4
  3. package/lib/__tests__/test-helpers/bridge.js.map +1 -1
  4. package/lib/bridge/impl.d.ts.map +1 -1
  5. package/lib/bridge/impl.js +45 -4
  6. package/lib/bridge/impl.js.map +1 -1
  7. package/lib/bridge/useBridgeTransaction.test.js +9 -0
  8. package/lib/bridge/useBridgeTransaction.test.js.map +1 -1
  9. package/lib/e2e/enum/Account.d.ts +1 -0
  10. package/lib/e2e/enum/Account.d.ts.map +1 -1
  11. package/lib/e2e/enum/Account.js +1 -0
  12. package/lib/e2e/enum/Account.js.map +1 -1
  13. package/lib/e2e/enum/Provider.d.ts +3 -0
  14. package/lib/e2e/enum/Provider.d.ts.map +1 -1
  15. package/lib/e2e/enum/Provider.js +3 -0
  16. package/lib/e2e/enum/Provider.js.map +1 -1
  17. package/lib/e2e/index.d.ts +1 -2
  18. package/lib/e2e/index.d.ts.map +1 -1
  19. package/lib/e2e/speculos.d.ts.map +1 -1
  20. package/lib/e2e/speculos.js +2 -0
  21. package/lib/e2e/speculos.js.map +1 -1
  22. package/lib/env.react.d.ts +1 -1
  23. package/lib/env.react.d.ts.map +1 -1
  24. package/lib/exchange/error.d.ts +1 -0
  25. package/lib/exchange/error.d.ts.map +1 -1
  26. package/lib/exchange/error.js +11 -1
  27. package/lib/exchange/error.js.map +1 -1
  28. package/lib/exchange/swap/api/v5/actions.d.ts +3 -0
  29. package/lib/exchange/swap/api/v5/actions.d.ts.map +1 -0
  30. package/lib/exchange/swap/api/v5/actions.js +36 -0
  31. package/lib/exchange/swap/api/v5/actions.js.map +1 -0
  32. package/lib/exchange/swap/completeExchange.d.ts.map +1 -1
  33. package/lib/exchange/swap/completeExchange.js +13 -0
  34. package/lib/exchange/swap/completeExchange.js.map +1 -1
  35. package/lib/exchange/swap/getCompleteSwapHistory.js +1 -1
  36. package/lib/exchange/swap/getCompleteSwapHistory.js.map +1 -1
  37. package/lib/exchange/swap/postSwapState.d.ts.map +1 -1
  38. package/lib/exchange/swap/postSwapState.js +19 -9
  39. package/lib/exchange/swap/postSwapState.js.map +1 -1
  40. package/lib/exchange/swap/setBroadcastTransaction.d.ts +3 -2
  41. package/lib/exchange/swap/setBroadcastTransaction.d.ts.map +1 -1
  42. package/lib/exchange/swap/setBroadcastTransaction.js +4 -2
  43. package/lib/exchange/swap/setBroadcastTransaction.js.map +1 -1
  44. package/lib/exchange/swap/transactionStrategies.d.ts +25 -0
  45. package/lib/exchange/swap/transactionStrategies.d.ts.map +1 -0
  46. package/lib/exchange/swap/transactionStrategies.js +152 -0
  47. package/lib/exchange/swap/transactionStrategies.js.map +1 -0
  48. package/lib/exchange/swap/types.d.ts +59 -0
  49. package/lib/exchange/swap/types.d.ts.map +1 -1
  50. package/lib/families/cardano/signerSerializer.js +4 -2
  51. package/lib/families/cardano/signerSerializer.js.map +1 -1
  52. package/lib/families/evm/bridge/mock.js +2 -2
  53. package/lib/families/evm/platformAdapter.js +2 -2
  54. package/lib/families/evm/platformAdapter.js.map +1 -1
  55. package/lib/families/evm/platformAdapter.test.js +4 -4
  56. package/lib/families/evm/platformAdapter.test.js.map +1 -1
  57. package/lib/families/evm/react.js +1 -1
  58. package/lib/families/evm/react.js.map +1 -1
  59. package/lib/families/evm/react.test.js +2 -2
  60. package/lib/families/evm/react.test.js.map +1 -1
  61. package/lib/families/evm/walletApiAdapter.js +1 -1
  62. package/lib/families/evm/walletApiAdapter.js.map +1 -1
  63. package/lib/featureFlags/defaultFeatures.js +1 -1
  64. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  65. package/lib/featureFlags/useFeature.d.ts +1 -1
  66. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  67. package/lib/hw/extractOnboardingState.d.ts.map +1 -1
  68. package/lib/hw/extractOnboardingState.js +8 -6
  69. package/lib/hw/extractOnboardingState.js.map +1 -1
  70. package/lib/hw/extractOnboardingState.test.js +7 -0
  71. package/lib/hw/extractOnboardingState.test.js.map +1 -1
  72. package/lib/mock/account.d.ts.map +1 -1
  73. package/lib/mock/account.js +1 -0
  74. package/lib/mock/account.js.map +1 -1
  75. package/lib/wallet-api/Exchange/server.d.ts +29 -10
  76. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  77. package/lib/wallet-api/Exchange/server.js +204 -7
  78. package/lib/wallet-api/Exchange/server.js.map +1 -1
  79. package/lib/wallet-api/Exchange/server.test.js +3 -1
  80. package/lib/wallet-api/Exchange/server.test.js.map +1 -1
  81. package/lib/wallet-api/useDappLogic.js +2 -2
  82. package/lib-es/__tests__/test-helpers/bridge.d.ts.map +1 -1
  83. package/lib-es/__tests__/test-helpers/bridge.js +0 -4
  84. package/lib-es/__tests__/test-helpers/bridge.js.map +1 -1
  85. package/lib-es/bridge/impl.d.ts.map +1 -1
  86. package/lib-es/bridge/impl.js +43 -2
  87. package/lib-es/bridge/impl.js.map +1 -1
  88. package/lib-es/bridge/useBridgeTransaction.test.js +9 -0
  89. package/lib-es/bridge/useBridgeTransaction.test.js.map +1 -1
  90. package/lib-es/e2e/enum/Account.d.ts +1 -0
  91. package/lib-es/e2e/enum/Account.d.ts.map +1 -1
  92. package/lib-es/e2e/enum/Account.js +1 -0
  93. package/lib-es/e2e/enum/Account.js.map +1 -1
  94. package/lib-es/e2e/enum/Provider.d.ts +3 -0
  95. package/lib-es/e2e/enum/Provider.d.ts.map +1 -1
  96. package/lib-es/e2e/enum/Provider.js +3 -0
  97. package/lib-es/e2e/enum/Provider.js.map +1 -1
  98. package/lib-es/e2e/index.d.ts +1 -2
  99. package/lib-es/e2e/index.d.ts.map +1 -1
  100. package/lib-es/e2e/speculos.d.ts.map +1 -1
  101. package/lib-es/e2e/speculos.js +2 -0
  102. package/lib-es/e2e/speculos.js.map +1 -1
  103. package/lib-es/env.react.d.ts +1 -1
  104. package/lib-es/env.react.d.ts.map +1 -1
  105. package/lib-es/exchange/error.d.ts +1 -0
  106. package/lib-es/exchange/error.d.ts.map +1 -1
  107. package/lib-es/exchange/error.js +9 -0
  108. package/lib-es/exchange/error.js.map +1 -1
  109. package/lib-es/exchange/swap/api/v5/actions.d.ts +3 -0
  110. package/lib-es/exchange/swap/api/v5/actions.d.ts.map +1 -0
  111. package/lib-es/exchange/swap/api/v5/actions.js +29 -0
  112. package/lib-es/exchange/swap/api/v5/actions.js.map +1 -0
  113. package/lib-es/exchange/swap/completeExchange.d.ts.map +1 -1
  114. package/lib-es/exchange/swap/completeExchange.js +13 -0
  115. package/lib-es/exchange/swap/completeExchange.js.map +1 -1
  116. package/lib-es/exchange/swap/getCompleteSwapHistory.js +1 -1
  117. package/lib-es/exchange/swap/getCompleteSwapHistory.js.map +1 -1
  118. package/lib-es/exchange/swap/postSwapState.d.ts.map +1 -1
  119. package/lib-es/exchange/swap/postSwapState.js +17 -7
  120. package/lib-es/exchange/swap/postSwapState.js.map +1 -1
  121. package/lib-es/exchange/swap/setBroadcastTransaction.d.ts +3 -2
  122. package/lib-es/exchange/swap/setBroadcastTransaction.d.ts.map +1 -1
  123. package/lib-es/exchange/swap/setBroadcastTransaction.js +4 -2
  124. package/lib-es/exchange/swap/setBroadcastTransaction.js.map +1 -1
  125. package/lib-es/exchange/swap/transactionStrategies.d.ts +25 -0
  126. package/lib-es/exchange/swap/transactionStrategies.d.ts.map +1 -0
  127. package/lib-es/exchange/swap/transactionStrategies.js +140 -0
  128. package/lib-es/exchange/swap/transactionStrategies.js.map +1 -0
  129. package/lib-es/exchange/swap/types.d.ts +59 -0
  130. package/lib-es/exchange/swap/types.d.ts.map +1 -1
  131. package/lib-es/families/cardano/signerSerializer.js +4 -2
  132. package/lib-es/families/cardano/signerSerializer.js.map +1 -1
  133. package/lib-es/families/evm/bridge/mock.js +1 -1
  134. package/lib-es/families/evm/platformAdapter.js +1 -1
  135. package/lib-es/families/evm/platformAdapter.js.map +1 -1
  136. package/lib-es/families/evm/platformAdapter.test.js +1 -1
  137. package/lib-es/families/evm/platformAdapter.test.js.map +1 -1
  138. package/lib-es/families/evm/react.js +1 -1
  139. package/lib-es/families/evm/react.js.map +1 -1
  140. package/lib-es/families/evm/react.test.js +2 -2
  141. package/lib-es/families/evm/react.test.js.map +1 -1
  142. package/lib-es/families/evm/walletApiAdapter.js +1 -1
  143. package/lib-es/families/evm/walletApiAdapter.js.map +1 -1
  144. package/lib-es/featureFlags/defaultFeatures.js +1 -1
  145. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  146. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  147. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  148. package/lib-es/hw/extractOnboardingState.d.ts.map +1 -1
  149. package/lib-es/hw/extractOnboardingState.js +8 -6
  150. package/lib-es/hw/extractOnboardingState.js.map +1 -1
  151. package/lib-es/hw/extractOnboardingState.test.js +7 -0
  152. package/lib-es/hw/extractOnboardingState.test.js.map +1 -1
  153. package/lib-es/mock/account.d.ts.map +1 -1
  154. package/lib-es/mock/account.js +1 -0
  155. package/lib-es/mock/account.js.map +1 -1
  156. package/lib-es/wallet-api/Exchange/server.d.ts +29 -10
  157. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  158. package/lib-es/wallet-api/Exchange/server.js +206 -9
  159. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  160. package/lib-es/wallet-api/Exchange/server.test.js +3 -1
  161. package/lib-es/wallet-api/Exchange/server.test.js.map +1 -1
  162. package/lib-es/wallet-api/useDappLogic.js +1 -1
  163. package/package.json +40 -40
  164. package/src/__tests__/test-helpers/bridge.ts +0 -4
  165. package/src/bridge/impl.ts +70 -3
  166. package/src/bridge/useBridgeTransaction.test.ts +10 -0
  167. package/src/e2e/enum/Account.ts +6 -0
  168. package/src/e2e/enum/Provider.ts +3 -0
  169. package/src/e2e/speculos.ts +2 -0
  170. package/src/exchange/error.ts +10 -0
  171. package/src/exchange/swap/api/v5/actions.ts +36 -0
  172. package/src/exchange/swap/completeExchange.ts +14 -0
  173. package/src/exchange/swap/getCompleteSwapHistory.ts +1 -1
  174. package/src/exchange/swap/postSwapState.ts +24 -6
  175. package/src/exchange/swap/setBroadcastTransaction.ts +6 -2
  176. package/src/exchange/swap/transactionStrategies.ts +234 -0
  177. package/src/exchange/swap/types.ts +64 -0
  178. package/src/families/cardano/__snapshots__/bridge.integration.test.ts.snap +1 -0
  179. package/src/families/cardano/signerSerializer.ts +4 -2
  180. package/src/families/evm/bridge/mock.ts +1 -1
  181. package/src/families/evm/platformAdapter.test.ts +1 -1
  182. package/src/families/evm/platformAdapter.ts +1 -1
  183. package/src/families/evm/react.test.ts +3 -3
  184. package/src/families/evm/react.ts +1 -1
  185. package/src/families/evm/walletApiAdapter.ts +1 -1
  186. package/src/featureFlags/defaultFeatures.ts +1 -1
  187. package/src/hw/extractOnboardingState.test.ts +9 -0
  188. package/src/hw/extractOnboardingState.ts +12 -8
  189. package/src/mock/account.ts +1 -0
  190. package/src/wallet-api/Exchange/server.test.ts +7 -5
  191. package/src/wallet-api/Exchange/server.ts +344 -32
  192. package/src/wallet-api/useDappLogic.ts +1 -1
@@ -1,17 +1,22 @@
1
1
  /* eslint-disable no-console */
2
- import { customWrapper } from "@ledgerhq/wallet-api-server";
3
- import { createAccountNotFound, createCurrencyNotFound, deserializeTransaction, ServerError, } from "@ledgerhq/wallet-api-core";
4
- import { getParentAccount, getMainAccount, makeEmptyTokenAccount, } from "@ledgerhq/coin-framework/account/index";
5
- import { getCurrencyForAccount } from "@ledgerhq/types-live";
2
+ import { getMainAccount, getParentAccount, makeEmptyTokenAccount, } from "@ledgerhq/coin-framework/account/index";
6
3
  import { findTokenById, listTokensForCryptoCurrency } from "@ledgerhq/cryptoassets";
7
- import { ExchangeType, } from "@ledgerhq/wallet-api-exchange-module";
8
4
  import { decodeSwapPayload } from "@ledgerhq/hw-app-exchange";
9
- import { getAccountIdFromWalletAccountId, getWalletAPITransactionSignFlowInfos, } from "../converters";
5
+ import { getCurrencyForAccount } from "@ledgerhq/types-live";
6
+ import { createAccountNotFound, createCurrencyNotFound, createUnknownError, deserializeTransaction, ServerError, } from "@ledgerhq/wallet-api-core";
7
+ import { ExchangeType, } from "@ledgerhq/wallet-api-exchange-module";
8
+ import { customWrapper } from "@ledgerhq/wallet-api-server";
9
+ import { BigNumber } from "bignumber.js";
10
10
  import { getAccountBridge } from "../../bridge";
11
- import { ExchangeError, createAccounIdNotFound, createWrongSellParams, createWrongSwapParams, } from "./error";
11
+ import { retrieveSwapPayload } from "../../exchange/swap/api/v5/actions";
12
+ import { transactionStrategy } from "../../exchange/swap/transactionStrategies";
13
+ import { getAccountIdFromWalletAccountId, getWalletAPITransactionSignFlowInfos, } from "../converters";
14
+ import { createAccounIdNotFound, createWrongSellParams, createWrongSwapParams, ExchangeError, } from "./error";
15
+ import { getSwapStepFromError } from "../../exchange/error";
16
+ import { postSwapCancelled } from "../../exchange/swap";
17
+ import { setBroadcastTransaction } from "../../exchange/swap/setBroadcastTransaction";
12
18
  export { ExchangeType };
13
- import { BigNumber } from "bignumber.js";
14
- export const handlers = ({ accounts, tracking, manifest, uiHooks: { "custom.exchange.start": uiExchangeStart, "custom.exchange.complete": uiExchangeComplete, "custom.exchange.error": uiError, "custom.isReady": uiIsReady, }, }) => ({
19
+ 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, }, }) => ({
15
20
  "custom.exchange.start": customWrapper(async (params) => {
16
21
  if (!params) {
17
22
  tracking.startExchangeNoParams(manifest);
@@ -192,6 +197,164 @@ export const handlers = ({ accounts, tracking, manifest, uiHooks: { "custom.exch
192
197
  },
193
198
  }));
194
199
  }),
200
+ "custom.exchange.swap": customWrapper(async (params) => {
201
+ if (!params) {
202
+ tracking.startExchangeNoParams(manifest);
203
+ throw new ServerError(createUnknownError({ message: "params is undefined" }));
204
+ }
205
+ const { provider, fromAmount, fromAmountAtomic, quoteId, toNewTokenId, customFeeConfig, swapAppVersion, } = params;
206
+ const trackingParams = {
207
+ provider: params.provider,
208
+ exchangeType: params.exchangeType,
209
+ };
210
+ tracking.startExchangeRequested(trackingParams);
211
+ const exchangeStartParams = extractSwapStartParam(params, accounts);
212
+ const { fromCurrency, fromAccount, fromParentAccount, toCurrency, toAccount, toParentAccount, } = exchangeStartParams.exchange;
213
+ if (!fromAccount || !fromCurrency) {
214
+ throw new ServerError(createAccountNotFound(params.fromAccountId));
215
+ }
216
+ const fromAccountAddress = fromParentAccount
217
+ ? fromParentAccount.freshAddress
218
+ : fromAccount.freshAddress;
219
+ const toAccountAddress = toParentAccount
220
+ ? toParentAccount.freshAddress
221
+ : toAccount.freshAddress;
222
+ // Step 1: Open the drawer and open exchange app
223
+ const startExchange = async () => {
224
+ console.log("LLD custom.exchange.swap uiExchangeStart", exchangeStartParams);
225
+ return new Promise((resolve, reject) => {
226
+ uiExchangeStart({
227
+ exchangeParams: exchangeStartParams,
228
+ onSuccess: (nonce, device) => {
229
+ tracking.startExchangeSuccess(trackingParams);
230
+ resolve({ transactionId: nonce, device });
231
+ },
232
+ onCancel: error => {
233
+ tracking.startExchangeFail(trackingParams);
234
+ reject(error);
235
+ },
236
+ });
237
+ });
238
+ };
239
+ const { transactionId, device: deviceInfo } = await startExchange();
240
+ const { binaryPayload, signature, payinAddress, swapId, payinExtraId, extraTransactionParameters, } = await retrieveSwapPayload({
241
+ provider,
242
+ deviceTransactionId: transactionId,
243
+ fromAccountAddress,
244
+ toAccountAddress,
245
+ fromAccountCurrency: fromCurrency.id,
246
+ toAccountCurrency: toCurrency.id,
247
+ amount: fromAmount,
248
+ amountInAtomicUnit: fromAmountAtomic,
249
+ quoteId,
250
+ toNewTokenId,
251
+ }).catch((error) => {
252
+ throw error;
253
+ });
254
+ // Complete Swap
255
+ const trackingCompleteParams = {
256
+ provider: params.provider,
257
+ exchangeType: params.exchangeType,
258
+ };
259
+ tracking.completeExchangeRequested(trackingCompleteParams);
260
+ const strategyData = {
261
+ recipient: payinAddress,
262
+ amount: fromAmountAtomic,
263
+ currency: fromCurrency,
264
+ customFeeConfig: customFeeConfig ?? {},
265
+ payinExtraId,
266
+ extraTransactionParameters,
267
+ };
268
+ const transaction = await getStrategy(strategyData, "swap").catch(async (error) => {
269
+ throw error;
270
+ });
271
+ const mainFromAccount = getMainAccount(fromAccount, fromParentAccount);
272
+ const mainFromAccountFamily = mainFromAccount.currency.family;
273
+ if (transaction.family !== mainFromAccountFamily) {
274
+ return Promise.reject(new Error(`Account and transaction must be from the same family. Account family: ${mainFromAccountFamily}, Transaction family: ${transaction.family}`));
275
+ }
276
+ const accountBridge = getAccountBridge(fromAccount, fromParentAccount);
277
+ /**
278
+ * 'subAccountId' is used for ETH and it's ERC-20 tokens.
279
+ * This field is ignored for BTC
280
+ */
281
+ const subAccountId = fromParentAccount && fromParentAccount.id !== fromAccount.id ? fromAccount.id : undefined;
282
+ const bridgeTx = accountBridge.createTransaction(fromAccount);
283
+ /**
284
+ * We append the `recipient` to the tx created from `createTransaction`
285
+ * to avoid having userGasLimit reset to null for ETH txs
286
+ * cf. libs/ledger-live-common/src/families/ethereum/updateTransaction.ts
287
+ */
288
+ const tx = accountBridge.updateTransaction({
289
+ ...bridgeTx,
290
+ recipient: transaction.recipient,
291
+ }, {
292
+ ...transaction,
293
+ feesStrategy: params.feeStrategy.toLowerCase(),
294
+ subAccountId,
295
+ });
296
+ // Get amountExpectedTo and magnitudeAwareRate from binary payload
297
+ const decodePayload = await decodeSwapPayload(binaryPayload);
298
+ const amountExpectedTo = new BigNumber(decodePayload.amountToWallet.toString());
299
+ const magnitudeAwareRate = tx.amount && amountExpectedTo.dividedBy(tx.amount);
300
+ const refundAddress = decodePayload.refundAddress;
301
+ const payoutAddress = decodePayload.payoutAddress;
302
+ // tx.amount should be BigNumber
303
+ tx.amount = new BigNumber(tx.amount);
304
+ return new Promise((resolve, reject) => uiSwap({
305
+ exchangeParams: {
306
+ exchangeType: ExchangeType.SWAP,
307
+ provider: params.provider,
308
+ transaction: tx,
309
+ signature: signature,
310
+ binaryPayload: binaryPayload,
311
+ exchange: {
312
+ fromAccount,
313
+ fromParentAccount,
314
+ toAccount,
315
+ toParentAccount,
316
+ fromCurrency: fromCurrency,
317
+ toCurrency: toCurrency,
318
+ },
319
+ feesStrategy: params.feeStrategy,
320
+ swapId: swapId,
321
+ amountExpectedTo: amountExpectedTo.toNumber(),
322
+ magnitudeAwareRate,
323
+ refundAddress,
324
+ payoutAddress,
325
+ },
326
+ onSuccess: ({ operationHash, swapId }) => {
327
+ tracking.completeExchangeSuccess({
328
+ ...trackingParams,
329
+ currency: transaction.family,
330
+ });
331
+ setBroadcastTransaction({
332
+ provider,
333
+ result: { operation: operationHash, swapId },
334
+ sourceCurrencyId: fromCurrency.id,
335
+ targetCurrencyId: toCurrency?.id,
336
+ hardwareWalletType: deviceInfo?.modelId,
337
+ swapAppVersion,
338
+ });
339
+ resolve({ operationHash, swapId });
340
+ },
341
+ onCancel: error => {
342
+ postSwapCancelled({
343
+ provider: provider,
344
+ swapId: swapId,
345
+ swapStep: getSwapStepFromError(error),
346
+ statusCode: error.name,
347
+ errorMessage: error.message,
348
+ sourceCurrencyId: fromCurrency.id,
349
+ targetCurrencyId: toCurrency?.id,
350
+ hardwareWalletType: deviceInfo?.modelId,
351
+ swapType: quoteId ? "fixed" : "float",
352
+ swapAppVersion,
353
+ });
354
+ reject(error);
355
+ },
356
+ }));
357
+ }),
195
358
  "custom.isReady": customWrapper(async () => {
196
359
  return new Promise((resolve, reject) => uiIsReady({
197
360
  onSuccess: () => {
@@ -236,8 +399,10 @@ function extractSwapStartParam(params, accounts) {
236
399
  exchange: {
237
400
  fromAccount,
238
401
  fromParentAccount,
402
+ fromCurrency: getCurrencyForAccount(fromAccount),
239
403
  toAccount: newTokenAccount ? newTokenAccount : toAccount,
240
404
  toParentAccount: newTokenAccount ? toAccount : toParentAccount,
405
+ toCurrency: getCurrencyForAccount(toAccount),
241
406
  },
242
407
  };
243
408
  }
@@ -280,4 +445,36 @@ async function getToCurrency(binaryPayload, toAccount, newTokenAccount) {
280
445
  }
281
446
  return newTokenAccount?.token ?? getCurrencyForAccount(toAccount);
282
447
  }
448
+ async function getStrategy({ recipient, amount, currency, customFeeConfig, payinExtraId, extraTransactionParameters, }, customErrorType) {
449
+ const family = currency.type === "TokenCurrency"
450
+ ? currency.parentCurrency?.family
451
+ : currency.family;
452
+ if (!family) {
453
+ throw new Error(`TokenCurrency missing parentCurrency family: ${currency.id}`);
454
+ }
455
+ // Remove unsupported utxoStrategy for now
456
+ if (customFeeConfig?.utxoStrategy) {
457
+ delete customFeeConfig.utxoStrategy;
458
+ }
459
+ // Normalize family key for strategy lookup
460
+ const familyKey = family === "evm" ? "ethereum" : family;
461
+ const strategy = transactionStrategy?.[familyKey];
462
+ if (!strategy) {
463
+ throw new Error(`No transaction strategy found for family: ${familyKey}`);
464
+ }
465
+ try {
466
+ return await strategy({
467
+ family,
468
+ amount,
469
+ recipient,
470
+ customFeeConfig: customFeeConfig || {},
471
+ payinExtraId,
472
+ extraTransactionParameters,
473
+ customErrorType,
474
+ });
475
+ }
476
+ catch (error) {
477
+ throw new Error(`Failed to execute transaction strategy for family: ${familyKey}. Reason: ${error.message}`);
478
+ }
479
+ }
283
480
  //# 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":"AAAA,+BAA+B;AAC/B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAwB,qBAAqB,EAAgB,MAAM,sBAAsB,CAAC;AACjG,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,GACZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAQL,YAAY,GAGb,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAc,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAIhF,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,GACrC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAEtF,OAAO,EAAE,YAAY,EAAE,CAAC;AA+ExB,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EAAE,EACP,uBAAuB,EAAE,eAAe,EACxC,0BAA0B,EAAE,kBAAkB,EAC9C,uBAAuB,EAAE,OAAO,EAChC,gBAAgB,EAAE,SAAS,EAC3B,sBAAsB,EAAE,MAAM,GAC/B,GAMF,EAAE,EAAE,CACH,CAAC;IACC,uBAAuB,EAAE,aAAa,CACpC,KAAK,EAAC,MAAM,EAAC,EAAE;QACb,IAAI,CAAC,MAAM,EAAE;YACX,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;SAC9B;QAED,MAAM,cAAc,GAAG;YACrB,0IAA0I;YAC1I,yCAAyC;YACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;QAEF,QAAQ,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAEhD,IAAI,cAA4C,CAAC;QAEjD,+FAA+F;QAC/F,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE;YACjC,cAAc,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC1D;aAAM,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,EAAE;YACxC,cAAc,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SAC1D;aAAM;YACL,cAAc,GAAG;gBACf,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC;SACH;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,eAAe,CAAC;YACd,cAAc;YACd,SAAS,EAAE,CAAC,KAAa,EAAE,MAAM,EAAE,EAAE;gBACnC,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;gBAC9C,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAChB,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;gBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CACF;IACD,0BAA0B,EAAE,aAAa,CACvC,KAAK,EAAC,MAAM,EAAC,EAAE;QACb,IAAI,CAAC,MAAM,EAAE;YACX,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAC5C,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;SAChC;QACD,MAAM,cAAc,GAAG;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;QACF,QAAQ,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;QAEnD,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAChF,IAAI,CAAC,iBAAiB,EAAE;YACtB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,aAAa,UAAU,CAAC,CAAC,CAAC;SAC/E;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC;QAEvE,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;SACpE;QAED,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAElE,IAAI,QAAkB,CAAC;QAEvB,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,EAAE;YAClC,MAAM,eAAe,GAAG,+BAA+B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC5E,IAAI,CAAC,eAAe,EAAE;gBACpB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,aAAa,MAAM,CAAC,WAAW,UAAU,CAAC,CAAC,CAAC;aAC7E;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC;YAE/D,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;aAClE;YAED,0CAA0C;YAC1C,IAAI,eAAe,GAAG,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC5D,IAAI,eAAyC,CAAC;YAC9C,IAAI,MAAM,CAAC,aAAa,EAAE;gBACxB,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBACrD,IAAI,CAAC,QAAQ,EAAE;oBACb,MAAM,IAAI,WAAW,CAAC,sBAAsB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;iBACrE;gBACD,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE;oBAChC,eAAe,GAAG,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;oBAC7D,eAAe,GAAG,SAAS,CAAC;iBAC7B;qBAAM;oBACL,eAAe,GAAG,qBAAqB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;iBACpE;aACF;YAED,MAAM,UAAU,GAAG,MAAM,aAAa,CACpC,MAAM,CAAC,gBAAgB,EACvB,SAAS,EACT,eAAe,CAChB,CAAC;YAEF,QAAQ,GAAG;gBACT,WAAW;gBACX,iBAAiB;gBACjB,YAAY,EAAE,qBAAqB,CAAC,WAAW,CAAC;gBAChD,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;gBACxD,eAAe;gBACf,UAAU;aACX,CAAC;SACH;aAAM;YACL,QAAQ,GAAG;gBACT,WAAW;gBACX,iBAAiB;gBACjB,YAAY,EAAE,qBAAqB,CAAC,WAAW,CAAC;aACjD,CAAC;SACH;QAED,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACvE,MAAM,qBAAqB,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE9D,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAElE,MAAM,EAAE,MAAM,EAAE,GAAG,oCAAoC,CAAC;YACtD,oBAAoB,EAAE,WAAW;YACjC,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,KAAK,qBAAqB,EAAE;YAC3C,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,yEAAyE,qBAAqB,yBAAyB,MAAM,CAAC,MAAM,EAAE,CACvI,CACF,CAAC;SACH;QAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAEvE;;;WAGG;QACH,MAAM,YAAY,GAChB,iBAAiB,IAAI,iBAAiB,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5F,MAAM,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC9D;;;;WAIG;QACH,MAAM,EAAE,GAAG,aAAa,CAAC,iBAAiB,CACxC;YACE,GAAG,QAAQ;YACX,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,EACD;YACE,GAAG,MAAM;YACT,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE;YAC9C,YAAY;SACb,CACF,CAAC;QAEF,IAAI,gBAAgB,CAAC;QACrB,IAAI,kBAAkB,CAAC;QACvB,IAAI,aAAa,CAAC;QAClB,IAAI,aAAa,CAAC;QAClB,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,EAAE;YAClC,kEAAkE;YAClE,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACvE,gBAAgB,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1E,kBAAkB,GAAG,EAAE,CAAC,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACxE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;YAC5C,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;SAC7C;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,kBAAkB,CAAC;YACjB,cAAc,EAAE;gBACd,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC/C,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE,MAAM,CAAC,YAAY;gBAC9B,aAAa,EAAE,MAAM,CAAC,gBAAgB;gBACtC,QAAQ;gBACR,YAAY,EAAE,MAAM,CAAC,WAAW;gBAChC,MAAM,EAAE,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAClE,gBAAgB;gBAChB,kBAAkB;gBAClB,aAAa;gBACb,aAAa;aACd;YACD,SAAS,EAAE,CAAC,eAAuB,EAAE,EAAE;gBACrC,QAAQ,CAAC,uBAAuB,CAAC;oBAC/B,GAAG,cAAc;oBACjB,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM;iBACvC,CAAC,CAAC;gBACH,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;YAC/B,CAAC;YACD,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAChB,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;gBAC9C,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CACF;IACD,uBAAuB,EAAE,aAAa,CAAsB,KAAK,EAAC,MAAM,EAAC,EAAE;QACzE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,OAAO,CAAC;YACN,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,GAAG,EAAE;gBACd,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,EAAE,CAAC;YACX,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IACF,sBAAsB,EAAE,aAAa,CAAiC,KAAK,EAAC,MAAM,EAAC,EAAE;QACnF,IAAI,CAAC,MAAM,EAAE;YACX,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,IAAI,WAAW,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;SAC/E;QAED,MAAM,EACJ,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,GACf,GAAG,MAAM,CAAC;QAEX,MAAM,cAAc,GAAG;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;QAEF,QAAQ,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QAEhD,MAAM,mBAAmB,GAAiC,qBAAqB,CAC7E,MAAM,EACN,QAAQ,CACmB,CAAC;QAE9B,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,eAAe,GAChB,GAAG,mBAAmB,CAAC,QAAQ,CAAC;QAEjC,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE;YACjC,MAAM,IAAI,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;SACpE;QAED,MAAM,kBAAkB,GAAG,iBAAiB;YAC1C,CAAC,CAAC,iBAAiB,CAAC,YAAY;YAChC,CAAC,CAAE,WAAuB,CAAC,YAAY,CAAC;QAE1C,MAAM,gBAAgB,GAAG,eAAe;YACtC,CAAC,CAAC,eAAe,CAAC,YAAY;YAC9B,CAAC,CAAE,SAAqB,CAAC,YAAY,CAAC;QAExC,gDAAgD;QAChD,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE,mBAAmB,CAAC,CAAC;YAE/E,OAAO,IAAI,OAAO,CAChB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAClB,eAAe,CAAC;oBACd,cAAc,EAAE,mBAAmB;oBACnC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;wBAC3B,QAAQ,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;wBAC9C,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC5C,CAAC;oBACD,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAChB,QAAQ,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;wBAC3C,MAAM,CAAC,KAAK,CAAC,CAAC;oBAChB,CAAC;iBACF,CAAC,CAAC;YACL,CAAC,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;QAEpE,MAAM,EACJ,aAAa,EACb,SAAS,EACT,YAAY,EACZ,MAAM,EACN,YAAY,EACZ,0BAA0B,GAC3B,GAAG,MAAM,mBAAmB,CAAC;YAC5B,QAAQ;YACR,mBAAmB,EAAE,aAAa;YAClC,kBAAkB;YAClB,gBAAgB;YAChB,mBAAmB,EAAE,YAAa,CAAC,EAAE;YACrC,iBAAiB,EAAE,UAAW,CAAC,EAAE;YACjC,MAAM,EAAE,UAAU;YAClB,kBAAkB,EAAE,gBAAgB;YACpC,OAAO;YACP,YAAY;SACb,CAAC,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;YACxB,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,gBAAgB;QAChB,MAAM,sBAAsB,GAAG;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;QACF,QAAQ,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,CAAC;QAE3D,MAAM,YAAY,GAAG;YACnB,SAAS,EAAE,YAAY;YACvB,MAAM,EAAE,gBAAgB;YACxB,QAAQ,EAAE,YAAqC;YAC/C,eAAe,EAAE,eAAe,IAAI,EAAE;YACtC,YAAY;YACZ,0BAA0B;SAC3B,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;YAC9E,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,cAAc,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QACvE,MAAM,qBAAqB,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE9D,IAAI,WAAW,CAAC,MAAM,KAAK,qBAAqB,EAAE;YAChD,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,yEAAyE,qBAAqB,yBAAyB,WAAW,CAAC,MAAM,EAAE,CAC5I,CACF,CAAC;SACH;QAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAEvE;;;WAGG;QACH,MAAM,YAAY,GAChB,iBAAiB,IAAI,iBAAiB,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5F,MAAM,QAAQ,GAAG,aAAa,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC9D;;;;WAIG;QACH,MAAM,EAAE,GAAG,aAAa,CAAC,iBAAiB,CACxC;YACE,GAAG,QAAQ;YACX,SAAS,EAAE,WAAW,CAAC,SAAS;SACjC,EACD;YACE,GAAG,WAAW;YACd,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE;YAC9C,YAAY;SACb,CACF,CAAC;QAEF,kEAAkE;QAClE,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChF,MAAM,kBAAkB,GAAG,EAAE,CAAC,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;QAClD,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC;QAElD,gCAAgC;QAChC,EAAE,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAErC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,MAAM,CAAC;YACL,cAAc,EAAE;gBACd,YAAY,EAAE,YAAY,CAAC,IAAI;gBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,aAAa;gBAC5B,QAAQ,EAAE;oBACR,WAAW;oBACX,iBAAiB;oBACjB,SAAS;oBACT,eAAe;oBACf,YAAY,EAAE,YAAa;oBAC3B,UAAU,EAAE,UAAW;iBACxB;gBACD,YAAY,EAAE,MAAM,CAAC,WAAW;gBAChC,MAAM,EAAE,MAAM;gBACd,gBAAgB,EAAE,gBAAgB,CAAC,QAAQ,EAAE;gBAC7C,kBAAkB;gBAClB,aAAa;gBACb,aAAa;aACd;YACD,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAA6C,EAAE,EAAE;gBAClF,QAAQ,CAAC,uBAAuB,CAAC;oBAC/B,GAAG,cAAc;oBACjB,QAAQ,EAAE,WAAW,CAAC,MAAM;iBAC7B,CAAC,CAAC;gBAEH,uBAAuB,CAAC;oBACtB,QAAQ;oBACR,MAAM,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE;oBAC5C,gBAAgB,EAAE,YAAY,CAAC,EAAE;oBACjC,gBAAgB,EAAE,UAAU,EAAE,EAAE;oBAChC,kBAAkB,EAAE,UAAU,EAAE,OAAwB;oBACxD,cAAc;iBACf,CAAC,CAAC;gBAEH,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;YACrC,CAAC;YACD,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAChB,iBAAiB,CAAC;oBAChB,QAAQ,EAAE,QAAQ;oBAClB,MAAM,EAAE,MAAM;oBACd,QAAQ,EAAE,oBAAoB,CAAC,KAAK,CAAC;oBACrC,UAAU,EAAE,KAAK,CAAC,IAAI;oBACtB,YAAY,EAAE,KAAK,CAAC,OAAO;oBAC3B,gBAAgB,EAAE,YAAY,CAAC,EAAE;oBACjC,gBAAgB,EAAE,UAAU,EAAE,EAAE;oBAChC,kBAAkB,EAAE,UAAU,EAAE,OAAwB;oBACxD,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;oBACrC,cAAc;iBACf,CAAC,CAAC;gBAEH,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,gBAAgB,EAAE,aAAa,CAAa,KAAK,IAAI,EAAE;QACrD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACrC,SAAS,CAAC;YACR,SAAS,EAAE,GAAG,EAAE;gBACd,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,EAAE,CAAC;YACX,CAAC;SACF,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;CACH,CAA6B,CAAC;AAEjC,SAAS,qBAAqB,CAC5B,MAA+B,EAC/B,QAAuB;IAEvB,IAAI,CAAC,CAAC,eAAe,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,CAAC,EAAE;QAC3D,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;KACxD;IAED,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChF,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;KACvE;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC;IACvE,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;KACpE;IAED,IAAI,SAAS,CAAC;IAEd,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;QACxD,MAAM,eAAe,GAAG,+BAA+B,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC5E,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;SACrE;QAED,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC;QAEzD,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,IAAI,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;SAClE;KACF;IAED,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEtF,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErF,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE;YACR,WAAW;YACX,iBAAiB;YACjB,YAAY,EAAE,qBAAqB,CAAC,WAAW,CAAC;YAChD,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;YACxD,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;YAC9D,UAAU,EAAE,qBAAqB,CAAC,SAAS,CAAC;SAC7C;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAC5B,MAA+B,EAC/B,QAAuB;IAEvB,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,EAAE;QAC3B,MAAM,IAAI,aAAa,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;KACxD;IAED,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;QACzB,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;SACM,CAAC;KACnC;IAED,MAAM,iBAAiB,GAAG,+BAA+B,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEjF,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,IAAI,aAAa,CAAC,sBAAsB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;KACvE;IAED,MAAM,WAAW,GAAG,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC;IAExE,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,WAAW,CAAC,qBAAqB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;KACpE;IAED,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAElE,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE;YACR,WAAW;YACX,iBAAiB;SAClB;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,aAAqB,EACrB,SAAsB,EACtB,eAA8B;IAE9B,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAE3F,gEAAgE;IAChE,IACE,SAAS,CAAC,IAAI,KAAK,cAAc,IAAI,4BAA4B;QACjE,SAAS,CAAC,QAAQ,CAAC,EAAE,KAAK,QAAQ,IAAI,2CAA2C;QACjF,YAAY,KAAK,SAAS,CAAC,YAAY,EACvC;QACA,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC3E,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,KAAK,IAAI,EAAE,CAAC,MAAM,KAAK,UAAU,CACxD,CAAC;QACH,OAAO,gBAAgB,CAAC;KACzB;IAED,OAAO,eAAe,EAAE,KAAK,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAWD,KAAK,UAAU,WAAW,CACxB,EACE,SAAS,EACT,MAAM,EACN,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,0BAA0B,GACX,EACjB,eAAqB;IAErB,MAAM,MAAM,GACV,QAAQ,CAAC,IAAI,KAAK,eAAe;QAC/B,CAAC,CAAE,QAAQ,CAAC,cAAc,EAAE,MAAgC;QAC5D,CAAC,CAAE,QAAQ,CAAC,MAAgC,CAAC;IAEjD,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,gDAAgD,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;KAChF;IAED,0CAA0C;IAC1C,IAAI,eAAe,EAAE,YAAY,EAAE;QACjC,OAAO,eAAe,CAAC,YAAY,CAAC;KACrC;IAED,2CAA2C;IAC3C,MAAM,SAAS,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IACzD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC;IAElD,IAAI,CAAC,QAAQ,EAAE;QACb,MAAM,IAAI,KAAK,CAAC,6CAA6C,SAAS,EAAE,CAAC,CAAC;KAC3E;IAED,IAAI;QACF,OAAO,MAAM,QAAQ,CAAC;YACpB,MAAM;YACN,MAAM;YACN,SAAS;YACT,eAAe,EAAE,eAAe,IAAI,EAAE;YACtC,YAAY;YACZ,0BAA0B;YAC1B,eAAe;SAChB,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CACb,sDAAsD,SAAS,aAAc,KAAe,CAAC,OAAO,EAAE,CACvG,CAAC;KACH;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
- import { handlers } from "./server";
2
1
  import { of } from "rxjs";
3
2
  import { genAccount } from "../../mock/account";
3
+ import { handlers } from "./server";
4
4
  const mockTracking = {
5
5
  startExchangeRequested: jest.fn(),
6
6
  startExchangeSuccess: jest.fn(),
@@ -36,6 +36,7 @@ const testAppManifest = {
36
36
  };
37
37
  const mockUiStartExchange = jest.fn();
38
38
  const mockUiCompleteExchange = jest.fn();
39
+ const mockUiSwap = jest.fn();
39
40
  const mockUiError = jest.fn();
40
41
  const mockIsReady = jest.fn();
41
42
  const mockUiHooks = {
@@ -43,6 +44,7 @@ const mockUiHooks = {
43
44
  "custom.exchange.complete": mockUiCompleteExchange,
44
45
  "custom.exchange.error": mockUiError,
45
46
  "custom.isReady": mockIsReady,
47
+ "custom.exchange.swap": mockUiSwap,
46
48
  };
47
49
  // Mock converter id to send back the id received in params.
48
50
  jest.mock("../converters", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.test.js","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/server.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.test.js","sourceRoot":"","sources":["../../../src/wallet-api/Exchange/server.test.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { findTokenByAddress, getCryptoCurrencyById } from "@ledgerhq/cryptoasset
9
9
  import { prepareMessageToSign } from "../hw/signMessage/index";
10
10
  import { usePermission } from "./react";
11
11
  import BigNumber from "bignumber.js";
12
- import { safeEncodeEIP55 } from "@ledgerhq/coin-evm/logic";
12
+ import { safeEncodeEIP55 } from "@ledgerhq/coin-evm/utils";
13
13
  import { SmartWebsocket } from "./SmartWebsocket";
14
14
  import { stripHexPrefix } from "./helpers";
15
15
  import { getTxType } from "./utils/txTrackingHelper";
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.40.0",
4
+ "version": "34.41.0-nightly.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/LedgerHQ/ledger-live.git"
@@ -162,43 +162,43 @@
162
162
  "xstate": "^5.19.2",
163
163
  "yargs": "^17.0.0",
164
164
  "zod": "^3.22.4",
165
- "@ledgerhq/coin-algorand": "^0.9.12",
166
- "@ledgerhq/coin-aptos": "^2.5.0",
167
- "@ledgerhq/coin-bitcoin": "^0.16.3",
168
- "@ledgerhq/coin-cardano": "^0.8.12",
169
- "@ledgerhq/coin-casper": "^2.0.3",
170
- "@ledgerhq/coin-celo": "^1.1.10",
171
- "@ledgerhq/coin-cosmos": "^0.16.1",
172
- "@ledgerhq/coin-evm": "^2.22.6",
173
- "@ledgerhq/coin-filecoin": "^1.9.12",
174
- "@ledgerhq/coin-framework": "^5.5.0",
175
- "@ledgerhq/coin-hedera": "^1.8.1",
176
- "@ledgerhq/coin-icon": "^0.10.12",
177
- "@ledgerhq/coin-internet_computer": "^1.7.12",
178
- "@ledgerhq/coin-mina": "^1.1.11",
179
- "@ledgerhq/coin-multiversx": "^0.4.12",
180
- "@ledgerhq/coin-near": "^0.11.12",
181
- "@ledgerhq/coin-polkadot": "^6.3.0",
182
- "@ledgerhq/coin-solana": "^0.27.1",
183
- "@ledgerhq/coin-stacks": "^0.8.12",
184
- "@ledgerhq/coin-stellar": "^5.3.0",
185
- "@ledgerhq/coin-sui": "^0.6.0",
186
- "@ledgerhq/coin-tezos": "^5.5.0",
187
- "@ledgerhq/coin-ton": "^0.13.1",
188
- "@ledgerhq/coin-tron": "^4.4.0",
189
- "@ledgerhq/coin-vechain": "^2.7.12",
190
- "@ledgerhq/coin-xrp": "^6.3.0",
191
- "@ledgerhq/crypto-icons-ui": "^1.15.0",
165
+ "@ledgerhq/coin-algorand": "^0.9.13-nightly.1",
166
+ "@ledgerhq/coin-aptos": "^2.5.1-nightly.1",
167
+ "@ledgerhq/coin-bitcoin": "^0.17.0-nightly.1",
168
+ "@ledgerhq/coin-cardano": "^0.9.0-nightly.1",
169
+ "@ledgerhq/coin-casper": "^2.0.4-nightly.1",
170
+ "@ledgerhq/coin-celo": "^1.1.11-nightly.1",
171
+ "@ledgerhq/coin-cosmos": "^0.16.2-nightly.1",
172
+ "@ledgerhq/coin-evm": "^2.23.0-nightly.1",
173
+ "@ledgerhq/coin-filecoin": "^1.9.13-nightly.1",
174
+ "@ledgerhq/coin-framework": "^5.6.0-nightly.1",
175
+ "@ledgerhq/coin-hedera": "^1.8.2-nightly.1",
176
+ "@ledgerhq/coin-icon": "^0.10.13-nightly.1",
177
+ "@ledgerhq/coin-internet_computer": "^1.7.13-nightly.1",
178
+ "@ledgerhq/coin-mina": "^1.1.12-nightly.1",
179
+ "@ledgerhq/coin-multiversx": "^0.4.13-nightly.1",
180
+ "@ledgerhq/coin-near": "^0.11.13-nightly.1",
181
+ "@ledgerhq/coin-polkadot": "^6.3.1-nightly.1",
182
+ "@ledgerhq/coin-solana": "^0.27.2-nightly.1",
183
+ "@ledgerhq/coin-stacks": "^0.8.13-nightly.1",
184
+ "@ledgerhq/coin-stellar": "^5.3.1-nightly.1",
185
+ "@ledgerhq/coin-sui": "^0.6.1-nightly.1",
186
+ "@ledgerhq/coin-tezos": "^5.6.0-nightly.1",
187
+ "@ledgerhq/coin-ton": "^0.13.2-nightly.1",
188
+ "@ledgerhq/coin-tron": "^4.4.1-nightly.1",
189
+ "@ledgerhq/coin-vechain": "^2.7.13-nightly.1",
190
+ "@ledgerhq/coin-xrp": "^6.3.1-nightly.1",
191
+ "@ledgerhq/crypto-icons-ui": "^1.16.0-nightly.0",
192
192
  "@ledgerhq/cryptoassets": "^13.21.0",
193
- "@ledgerhq/device-core": "^0.5.1",
193
+ "@ledgerhq/device-core": "^0.5.2-nightly.0",
194
194
  "@ledgerhq/devices": "8.4.7",
195
195
  "@ledgerhq/errors": "^6.22.0",
196
196
  "@ledgerhq/hw-app-algorand": "^6.31.3",
197
197
  "@ledgerhq/hw-app-aptos": "^6.34.3",
198
198
  "@ledgerhq/hw-app-btc": "^10.9.3",
199
- "@ledgerhq/hw-app-celo": "^6.33.8",
199
+ "@ledgerhq/hw-app-celo": "^6.33.9-nightly.0",
200
200
  "@ledgerhq/hw-app-cosmos": "^6.32.3",
201
- "@ledgerhq/hw-app-eth": "^6.45.10",
201
+ "@ledgerhq/hw-app-eth": "^6.45.11-nightly.0",
202
202
  "@ledgerhq/hw-app-exchange": "^0.10.3",
203
203
  "@ledgerhq/hw-app-hedera": "^1.2.3",
204
204
  "@ledgerhq/hw-app-icon": "^1.3.3",
@@ -215,21 +215,21 @@
215
215
  "@ledgerhq/hw-transport-mocker": "^6.29.7",
216
216
  "@ledgerhq/ledger-cal-service": "^1.2.0",
217
217
  "@ledgerhq/live-config": "^3.1.0",
218
- "@ledgerhq/live-countervalues": "^0.5.12",
219
- "@ledgerhq/live-countervalues-react": "^0.2.41",
218
+ "@ledgerhq/live-countervalues": "^0.5.13-nightly.1",
219
+ "@ledgerhq/live-countervalues-react": "^0.2.42-nightly.1",
220
220
  "@ledgerhq/live-dmk-shared": "^0.10.0",
221
221
  "@ledgerhq/live-env": "^2.11.0",
222
222
  "@ledgerhq/live-hooks": "0.1.0",
223
223
  "@ledgerhq/live-network": "^2.0.12",
224
- "@ledgerhq/live-nft": "^0.8.12",
224
+ "@ledgerhq/live-nft": "^0.8.13-nightly.1",
225
225
  "@ledgerhq/live-promise": "^0.1.1",
226
- "@ledgerhq/live-signer-evm": "^0.5.5",
227
- "@ledgerhq/live-signer-solana": "^0.4.0",
228
- "@ledgerhq/live-wallet": "^0.11.3",
226
+ "@ledgerhq/live-signer-evm": "^0.5.6-nightly.1",
227
+ "@ledgerhq/live-signer-solana": "^0.4.1-nightly.1",
228
+ "@ledgerhq/live-wallet": "^0.11.4-nightly.1",
229
229
  "@ledgerhq/logs": "^6.13.0",
230
230
  "@ledgerhq/speculos-transport": "^0.2.5",
231
231
  "@ledgerhq/wallet-api-acre-module": "^0.5.0",
232
- "@ledgerhq/wallet-api-exchange-module": "^0.13.0"
232
+ "@ledgerhq/wallet-api-exchange-module": "^0.14.0-nightly.1"
233
233
  },
234
234
  "devDependencies": {
235
235
  "@solana/web3.js": "1.95.4",
@@ -277,10 +277,10 @@
277
277
  "undici": "6.19.2",
278
278
  "uuid": "^8.3.2",
279
279
  "ws": "7",
280
- "@ledgerhq/device-react": "^0.2.36",
280
+ "@ledgerhq/device-react": "^0.2.37-nightly.0",
281
281
  "@ledgerhq/types-cryptoassets": "^7.23.0",
282
282
  "@ledgerhq/types-devices": "^6.25.3",
283
- "@ledgerhq/types-live": "^6.76.0"
283
+ "@ledgerhq/types-live": "^6.77.0-nightly.0"
284
284
  },
285
285
  "scripts": {
286
286
  "build": "zx ./scripts/build-ts.mjs",
@@ -382,10 +382,6 @@ export function testBridge<T extends TransactionCommon>(data: DatasetTest<T>): v
382
382
  });
383
383
  }
384
384
  }
385
- makeTest("bridge ref equality", async () => {
386
- const account = await getSynced();
387
- expect(bridge).toBe(getAccountBridge(account, null)); // Original strict equality check
388
- });
389
385
  makeTest("account have no NaN values", async () => {
390
386
  const account = await getSynced();
391
387
  [account, ...(account.subAccounts || [])].forEach(a => {
@@ -1,3 +1,7 @@
1
+ import {
2
+ isAddressSanctioned,
3
+ isCheckSanctionedAddressEnabled,
4
+ } from "@ledgerhq/coin-framework/sanction/index";
1
5
  import { CurrencyNotSupported } from "@ledgerhq/errors";
2
6
  import { decodeAccountId, getMainAccount } from "../account";
3
7
  import { getEnv } from "@ledgerhq/live-env";
@@ -5,9 +9,17 @@ import { checkAccountSupported } from "../account/index";
5
9
  import jsBridges from "../generated/bridge/js";
6
10
  import mockBridges from "../generated/bridge/mock";
7
11
  import type { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
8
- import { Account, AccountBridge, AccountLike, CurrencyBridge } from "@ledgerhq/types-live";
12
+ import {
13
+ Account,
14
+ AccountBridge,
15
+ AccountLike,
16
+ CurrencyBridge,
17
+ TransactionCommon,
18
+ TransactionStatusCommon,
19
+ } from "@ledgerhq/types-live";
9
20
  import { getAlpacaAccountBridge } from "./generic-alpaca/accountBridge";
10
21
  import { getAlpacaCurrencyBridge } from "./generic-alpaca/currencyBridge";
22
+ import { AddressesSanctionedError } from "@ledgerhq/coin-framework/sanction/errors";
11
23
 
12
24
  const alpacaized = {
13
25
  xrp: true,
@@ -70,7 +82,7 @@ export function getAccountBridgeByFamily(family: string, accountId?: string): Ac
70
82
 
71
83
  if (type === "mock") {
72
84
  const mockBridge = mockBridges[family];
73
- if (mockBridge) return mockBridge.accountBridge;
85
+ if (mockBridge) return wrapAccountBridge(mockBridge.accountBridge);
74
86
  }
75
87
  }
76
88
 
@@ -85,5 +97,60 @@ export function getAccountBridgeByFamily(family: string, accountId?: string): Ac
85
97
  if (!jsBridge) {
86
98
  throw new CurrencyNotSupported("account bridge not found " + family);
87
99
  }
88
- return jsBridge.accountBridge;
100
+ return wrapAccountBridge(jsBridge.accountBridge);
101
+ }
102
+
103
+ function wrapAccountBridge<T extends TransactionCommon>(
104
+ bridge: AccountBridge<T>,
105
+ ): AccountBridge<T> {
106
+ return {
107
+ ...bridge,
108
+ getTransactionStatus: async (...args) => {
109
+ const blockchainTransactionStatus = await bridge.getTransactionStatus(...args);
110
+
111
+ const account = args[0];
112
+ if (!isCheckSanctionedAddressEnabled(account.currency)) {
113
+ return blockchainTransactionStatus;
114
+ }
115
+
116
+ const commonTransactionStatus = await commonGetTransactionStatus(...args);
117
+ return mergeResults(blockchainTransactionStatus, commonTransactionStatus);
118
+ },
119
+ };
120
+ }
121
+
122
+ function mergeResults(
123
+ blockchainTransactionStatus: TransactionStatusCommon,
124
+ commonTransactionStatus: Partial<TransactionStatusCommon>,
125
+ ): TransactionStatusCommon {
126
+ const errors = { ...blockchainTransactionStatus.errors, ...commonTransactionStatus.errors };
127
+ const warnings = { ...blockchainTransactionStatus.warnings, ...commonTransactionStatus.warnings };
128
+ return { ...blockchainTransactionStatus, errors, warnings };
129
+ }
130
+
131
+ async function commonGetTransactionStatus(
132
+ account: Account,
133
+ transaction: TransactionCommon,
134
+ ): Promise<Partial<TransactionStatusCommon>> {
135
+ const errors: Record<string, Error> = {};
136
+ const warnings: Record<string, Error> = {};
137
+
138
+ let isRecipientSanctioned = false;
139
+ if (transaction.recipient && transaction.recipient !== "") {
140
+ isRecipientSanctioned = await isAddressSanctioned(account.currency, transaction.recipient);
141
+ if (isRecipientSanctioned) {
142
+ errors.recipient = new AddressesSanctionedError("AddressesSanctionedError", {
143
+ addresses: [transaction.recipient],
144
+ });
145
+ }
146
+ }
147
+
148
+ const isSenderSanctioned = await isAddressSanctioned(account.currency, account.freshAddress);
149
+ if (isSenderSanctioned) {
150
+ errors.sender = new AddressesSanctionedError("AddressesSanctionedError", {
151
+ addresses: [account.freshAddress],
152
+ });
153
+ }
154
+
155
+ return { errors, warnings };
89
156
  }
@@ -11,11 +11,21 @@ import useBridgeTransaction, {
11
11
  getGlobalOnBridgeError,
12
12
  } from "./useBridgeTransaction";
13
13
  import { setSupportedCurrencies } from "../currencies";
14
+ import { LiveConfig } from "@ledgerhq/live-config/lib/LiveConfig";
14
15
 
15
16
  const BTC = getCryptoCurrencyById("bitcoin");
16
17
 
17
18
  setSupportedCurrencies(["bitcoin"]);
18
19
 
20
+ LiveConfig.setConfig({
21
+ config_currency_bitcoin: {
22
+ type: "object",
23
+ default: {
24
+ checkSanctionedAddress: false,
25
+ },
26
+ },
27
+ });
28
+
19
29
  describe("useBridgeTransaction", () => {
20
30
  test("initialize with a BTC account settles the transaction", async () => {
21
31
  const mainAccount = genAccount("mocked-account-1", { currency: BTC });
@@ -277,6 +277,12 @@ export class Account {
277
277
  "0x50F293e4C3815F5214dac1Bae8F8FC3F24b8BA59",
278
278
  3,
279
279
  );
280
+ static readonly SANCTIONED_ETH = new Account(
281
+ Currency.ETH,
282
+ "Sanctioned Ethereum",
283
+ "0x04DBA1194ee10112fE6C3207C0687DEf0e78baCf",
284
+ 0,
285
+ );
280
286
 
281
287
  static readonly INJ_1 = new Account(
282
288
  Currency.INJ,