@ledgerhq/live-common 34.38.1 → 34.38.2-nightly.0

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 (256) hide show
  1. package/lib/__tests__/hw/getLatestFirmwareForDevice.js +4 -0
  2. package/lib/__tests__/hw/getLatestFirmwareForDevice.js.map +1 -1
  3. package/lib/__tests__/test-helpers/deviceInfos.d.ts.map +1 -1
  4. package/lib/__tests__/test-helpers/deviceInfos.js +5 -0
  5. package/lib/__tests__/test-helpers/deviceInfos.js.map +1 -1
  6. package/lib/apps/mock.d.ts +2 -32
  7. package/lib/apps/mock.d.ts.map +1 -1
  8. package/lib/apps/mock.js +3 -0
  9. package/lib/apps/mock.js.map +1 -1
  10. package/lib/apps/polyfill.d.ts +4 -1
  11. package/lib/apps/polyfill.d.ts.map +1 -1
  12. package/lib/bridge/cache.d.ts.map +1 -1
  13. package/lib/bridge/cache.js +2 -2
  14. package/lib/bridge/cache.js.map +1 -1
  15. package/lib/bridge/cache.test.d.ts +2 -0
  16. package/lib/bridge/cache.test.d.ts.map +1 -0
  17. package/lib/bridge/cache.test.js +63 -0
  18. package/lib/bridge/cache.test.js.map +1 -0
  19. package/lib/deposit/deposit.test.js +418 -74
  20. package/lib/deposit/deposit.test.js.map +1 -1
  21. package/lib/deposit/helper.d.ts +1 -0
  22. package/lib/deposit/helper.d.ts.map +1 -1
  23. package/lib/deposit/helper.js +19 -6
  24. package/lib/deposit/helper.js.map +1 -1
  25. package/lib/deviceSDK/tasks/getDeviceInfo.d.ts.map +1 -1
  26. package/lib/deviceSDK/tasks/getDeviceInfo.js +3 -1
  27. package/lib/deviceSDK/tasks/getDeviceInfo.js.map +1 -1
  28. package/lib/e2e/enum/Provider.d.ts +1 -1
  29. package/lib/e2e/enum/Provider.d.ts.map +1 -1
  30. package/lib/e2e/enum/Provider.js +1 -1
  31. package/lib/e2e/enum/Provider.js.map +1 -1
  32. package/lib/e2e/index.d.ts +5 -0
  33. package/lib/e2e/index.d.ts.map +1 -1
  34. package/lib/e2e/swap.d.ts.map +1 -1
  35. package/lib/e2e/swap.js +10 -7
  36. package/lib/e2e/swap.js.map +1 -1
  37. package/lib/env.react.d.ts +1 -1
  38. package/lib/env.react.d.ts.map +1 -1
  39. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  40. package/lib/featureFlags/defaultFeatures.js +35 -0
  41. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  42. package/lib/featureFlags/useFeature.d.ts +1 -1
  43. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  44. package/lib/hooks/useAppVersionBlockCheck.d.ts +11 -0
  45. package/lib/hooks/useAppVersionBlockCheck.d.ts.map +1 -0
  46. package/lib/hooks/useAppVersionBlockCheck.js +32 -0
  47. package/lib/hooks/useAppVersionBlockCheck.js.map +1 -0
  48. package/lib/hooks/useAppVersionBlockCheck.test.d.ts +2 -0
  49. package/lib/hooks/useAppVersionBlockCheck.test.d.ts.map +1 -0
  50. package/lib/hooks/useAppVersionBlockCheck.test.js +133 -0
  51. package/lib/hooks/useAppVersionBlockCheck.test.js.map +1 -0
  52. package/lib/hw/connectAppEventMapper.d.ts.map +1 -1
  53. package/lib/hw/connectAppEventMapper.js +3 -1
  54. package/lib/hw/connectAppEventMapper.js.map +1 -1
  55. package/lib/hw/connectManager.d.ts.map +1 -1
  56. package/lib/hw/connectManager.js +9 -0
  57. package/lib/hw/connectManager.js.map +1 -1
  58. package/lib/hw/customLockScreenLoad.d.ts.map +1 -1
  59. package/lib/hw/customLockScreenLoad.js +22 -18
  60. package/lib/hw/customLockScreenLoad.js.map +1 -1
  61. package/lib/hw/customLockScreenLoad.test.d.ts +2 -0
  62. package/lib/hw/customLockScreenLoad.test.d.ts.map +1 -0
  63. package/lib/hw/customLockScreenLoad.test.js +63 -0
  64. package/lib/hw/customLockScreenLoad.test.js.map +1 -0
  65. package/lib/hw/extractOnboardingState.d.ts +15 -2
  66. package/lib/hw/extractOnboardingState.d.ts.map +1 -1
  67. package/lib/hw/extractOnboardingState.js +67 -19
  68. package/lib/hw/extractOnboardingState.js.map +1 -1
  69. package/lib/hw/extractOnboardingState.test.js +96 -1
  70. package/lib/hw/extractOnboardingState.test.js.map +1 -1
  71. package/lib/hw/getDeviceInfo.d.ts.map +1 -1
  72. package/lib/hw/getDeviceInfo.js +3 -1
  73. package/lib/hw/getDeviceInfo.js.map +1 -1
  74. package/lib/hw/getGenuineCheckFromDeviceId.test.js +1 -0
  75. package/lib/hw/getGenuineCheckFromDeviceId.test.js.map +1 -1
  76. package/lib/hw/getOnboardingStatePolling.js +1 -1
  77. package/lib/hw/getOnboardingStatePolling.js.map +1 -1
  78. package/lib/hw/getOnboardingStatePolling.test.js +2 -0
  79. package/lib/hw/getOnboardingStatePolling.test.js.map +1 -1
  80. package/lib/hw/isFirmwareUpdateVersionSupported.test.js +2 -1
  81. package/lib/hw/isFirmwareUpdateVersionSupported.test.js.map +1 -1
  82. package/lib/mock/fixtures/aDeviceInfo.d.ts.map +1 -1
  83. package/lib/mock/fixtures/aDeviceInfo.js +1 -0
  84. package/lib/mock/fixtures/aDeviceInfo.js.map +1 -1
  85. package/lib/modularDrawer/__test__/useModularDrawerVisibility.test.d.ts +2 -0
  86. package/lib/modularDrawer/__test__/useModularDrawerVisibility.test.d.ts.map +1 -0
  87. package/lib/modularDrawer/__test__/useModularDrawerVisibility.test.js +107 -0
  88. package/lib/modularDrawer/__test__/useModularDrawerVisibility.test.js.map +1 -0
  89. package/lib/modularDrawer/enums.d.ts +8 -0
  90. package/lib/modularDrawer/enums.d.ts.map +1 -0
  91. package/lib/modularDrawer/enums.js +12 -0
  92. package/lib/modularDrawer/enums.js.map +1 -0
  93. package/lib/modularDrawer/useModularDrawerVisibility.d.ts +9 -0
  94. package/lib/modularDrawer/useModularDrawerVisibility.d.ts.map +1 -0
  95. package/lib/modularDrawer/useModularDrawerVisibility.js +18 -0
  96. package/lib/modularDrawer/useModularDrawerVisibility.js.map +1 -0
  97. package/lib/onboarding/hooks/useOnboardingStatePolling.test.js +2 -0
  98. package/lib/onboarding/hooks/useOnboardingStatePolling.test.js.map +1 -1
  99. package/lib/wallet-api/types.d.ts +1 -1
  100. package/lib/wallet-api/types.d.ts.map +1 -1
  101. package/lib/wallet-api/useDappLogic.d.ts.map +1 -1
  102. package/lib/wallet-api/useDappLogic.js +3 -24
  103. package/lib/wallet-api/useDappLogic.js.map +1 -1
  104. package/lib/wallet-api/utils/txTrackingHelper.d.ts +3 -0
  105. package/lib/wallet-api/utils/txTrackingHelper.d.ts.map +1 -0
  106. package/lib/wallet-api/utils/txTrackingHelper.js +16 -0
  107. package/lib/wallet-api/utils/txTrackingHelper.js.map +1 -0
  108. package/lib/wallet-api/utils/txTrackingHelper.test.d.ts +2 -0
  109. package/lib/wallet-api/utils/txTrackingHelper.test.d.ts.map +1 -0
  110. package/lib/wallet-api/utils/txTrackingHelper.test.js +70 -0
  111. package/lib/wallet-api/utils/txTrackingHelper.test.js.map +1 -0
  112. package/lib-es/__tests__/hw/getLatestFirmwareForDevice.js +4 -0
  113. package/lib-es/__tests__/hw/getLatestFirmwareForDevice.js.map +1 -1
  114. package/lib-es/__tests__/test-helpers/deviceInfos.d.ts.map +1 -1
  115. package/lib-es/__tests__/test-helpers/deviceInfos.js +5 -0
  116. package/lib-es/__tests__/test-helpers/deviceInfos.js.map +1 -1
  117. package/lib-es/apps/mock.d.ts +2 -32
  118. package/lib-es/apps/mock.d.ts.map +1 -1
  119. package/lib-es/apps/mock.js +3 -0
  120. package/lib-es/apps/mock.js.map +1 -1
  121. package/lib-es/apps/polyfill.d.ts +4 -1
  122. package/lib-es/apps/polyfill.d.ts.map +1 -1
  123. package/lib-es/bridge/cache.d.ts.map +1 -1
  124. package/lib-es/bridge/cache.js +2 -2
  125. package/lib-es/bridge/cache.js.map +1 -1
  126. package/lib-es/bridge/cache.test.d.ts +2 -0
  127. package/lib-es/bridge/cache.test.d.ts.map +1 -0
  128. package/lib-es/bridge/cache.test.js +38 -0
  129. package/lib-es/bridge/cache.test.js.map +1 -0
  130. package/lib-es/deposit/deposit.test.js +419 -75
  131. package/lib-es/deposit/deposit.test.js.map +1 -1
  132. package/lib-es/deposit/helper.d.ts +1 -0
  133. package/lib-es/deposit/helper.d.ts.map +1 -1
  134. package/lib-es/deposit/helper.js +18 -6
  135. package/lib-es/deposit/helper.js.map +1 -1
  136. package/lib-es/deviceSDK/tasks/getDeviceInfo.d.ts.map +1 -1
  137. package/lib-es/deviceSDK/tasks/getDeviceInfo.js +3 -1
  138. package/lib-es/deviceSDK/tasks/getDeviceInfo.js.map +1 -1
  139. package/lib-es/e2e/enum/Provider.d.ts +1 -1
  140. package/lib-es/e2e/enum/Provider.d.ts.map +1 -1
  141. package/lib-es/e2e/enum/Provider.js +1 -1
  142. package/lib-es/e2e/enum/Provider.js.map +1 -1
  143. package/lib-es/e2e/index.d.ts +5 -0
  144. package/lib-es/e2e/index.d.ts.map +1 -1
  145. package/lib-es/e2e/swap.d.ts.map +1 -1
  146. package/lib-es/e2e/swap.js +10 -7
  147. package/lib-es/e2e/swap.js.map +1 -1
  148. package/lib-es/env.react.d.ts +1 -1
  149. package/lib-es/env.react.d.ts.map +1 -1
  150. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  151. package/lib-es/featureFlags/defaultFeatures.js +35 -0
  152. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  153. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  154. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  155. package/lib-es/hooks/useAppVersionBlockCheck.d.ts +11 -0
  156. package/lib-es/hooks/useAppVersionBlockCheck.d.ts.map +1 -0
  157. package/lib-es/hooks/useAppVersionBlockCheck.js +25 -0
  158. package/lib-es/hooks/useAppVersionBlockCheck.js.map +1 -0
  159. package/lib-es/hooks/useAppVersionBlockCheck.test.d.ts +2 -0
  160. package/lib-es/hooks/useAppVersionBlockCheck.test.d.ts.map +1 -0
  161. package/lib-es/hooks/useAppVersionBlockCheck.test.js +131 -0
  162. package/lib-es/hooks/useAppVersionBlockCheck.test.js.map +1 -0
  163. package/lib-es/hw/connectAppEventMapper.d.ts.map +1 -1
  164. package/lib-es/hw/connectAppEventMapper.js +3 -1
  165. package/lib-es/hw/connectAppEventMapper.js.map +1 -1
  166. package/lib-es/hw/connectManager.d.ts.map +1 -1
  167. package/lib-es/hw/connectManager.js +9 -0
  168. package/lib-es/hw/connectManager.js.map +1 -1
  169. package/lib-es/hw/customLockScreenLoad.d.ts.map +1 -1
  170. package/lib-es/hw/customLockScreenLoad.js +22 -18
  171. package/lib-es/hw/customLockScreenLoad.js.map +1 -1
  172. package/lib-es/hw/customLockScreenLoad.test.d.ts +2 -0
  173. package/lib-es/hw/customLockScreenLoad.test.d.ts.map +1 -0
  174. package/lib-es/hw/customLockScreenLoad.test.js +58 -0
  175. package/lib-es/hw/customLockScreenLoad.test.js.map +1 -0
  176. package/lib-es/hw/extractOnboardingState.d.ts +15 -2
  177. package/lib-es/hw/extractOnboardingState.d.ts.map +1 -1
  178. package/lib-es/hw/extractOnboardingState.js +66 -18
  179. package/lib-es/hw/extractOnboardingState.js.map +1 -1
  180. package/lib-es/hw/extractOnboardingState.test.js +97 -2
  181. package/lib-es/hw/extractOnboardingState.test.js.map +1 -1
  182. package/lib-es/hw/getDeviceInfo.d.ts.map +1 -1
  183. package/lib-es/hw/getDeviceInfo.js +3 -1
  184. package/lib-es/hw/getDeviceInfo.js.map +1 -1
  185. package/lib-es/hw/getGenuineCheckFromDeviceId.test.js +1 -0
  186. package/lib-es/hw/getGenuineCheckFromDeviceId.test.js.map +1 -1
  187. package/lib-es/hw/getOnboardingStatePolling.js +1 -1
  188. package/lib-es/hw/getOnboardingStatePolling.js.map +1 -1
  189. package/lib-es/hw/getOnboardingStatePolling.test.js +2 -0
  190. package/lib-es/hw/getOnboardingStatePolling.test.js.map +1 -1
  191. package/lib-es/hw/isFirmwareUpdateVersionSupported.test.js +2 -1
  192. package/lib-es/hw/isFirmwareUpdateVersionSupported.test.js.map +1 -1
  193. package/lib-es/mock/fixtures/aDeviceInfo.d.ts.map +1 -1
  194. package/lib-es/mock/fixtures/aDeviceInfo.js +1 -0
  195. package/lib-es/mock/fixtures/aDeviceInfo.js.map +1 -1
  196. package/lib-es/modularDrawer/__test__/useModularDrawerVisibility.test.d.ts +2 -0
  197. package/lib-es/modularDrawer/__test__/useModularDrawerVisibility.test.d.ts.map +1 -0
  198. package/lib-es/modularDrawer/__test__/useModularDrawerVisibility.test.js +105 -0
  199. package/lib-es/modularDrawer/__test__/useModularDrawerVisibility.test.js.map +1 -0
  200. package/lib-es/modularDrawer/enums.d.ts +8 -0
  201. package/lib-es/modularDrawer/enums.d.ts.map +1 -0
  202. package/lib-es/modularDrawer/enums.js +9 -0
  203. package/lib-es/modularDrawer/enums.js.map +1 -0
  204. package/lib-es/modularDrawer/useModularDrawerVisibility.d.ts +9 -0
  205. package/lib-es/modularDrawer/useModularDrawerVisibility.d.ts.map +1 -0
  206. package/lib-es/modularDrawer/useModularDrawerVisibility.js +14 -0
  207. package/lib-es/modularDrawer/useModularDrawerVisibility.js.map +1 -0
  208. package/lib-es/onboarding/hooks/useOnboardingStatePolling.test.js +2 -0
  209. package/lib-es/onboarding/hooks/useOnboardingStatePolling.test.js.map +1 -1
  210. package/lib-es/wallet-api/types.d.ts +1 -1
  211. package/lib-es/wallet-api/types.d.ts.map +1 -1
  212. package/lib-es/wallet-api/useDappLogic.d.ts.map +1 -1
  213. package/lib-es/wallet-api/useDappLogic.js +3 -24
  214. package/lib-es/wallet-api/useDappLogic.js.map +1 -1
  215. package/lib-es/wallet-api/utils/txTrackingHelper.d.ts +3 -0
  216. package/lib-es/wallet-api/utils/txTrackingHelper.d.ts.map +1 -0
  217. package/lib-es/wallet-api/utils/txTrackingHelper.js +12 -0
  218. package/lib-es/wallet-api/utils/txTrackingHelper.js.map +1 -0
  219. package/lib-es/wallet-api/utils/txTrackingHelper.test.d.ts +2 -0
  220. package/lib-es/wallet-api/utils/txTrackingHelper.test.d.ts.map +1 -0
  221. package/lib-es/wallet-api/utils/txTrackingHelper.test.js +68 -0
  222. package/lib-es/wallet-api/utils/txTrackingHelper.test.js.map +1 -0
  223. package/package.json +49 -49
  224. package/src/__tests__/hw/getLatestFirmwareForDevice.ts +8 -3
  225. package/src/__tests__/test-helpers/deviceInfos.ts +5 -0
  226. package/src/apps/mock.ts +5 -2
  227. package/src/bridge/cache.test.ts +46 -0
  228. package/src/bridge/cache.ts +5 -2
  229. package/src/deposit/deposit.test.ts +611 -136
  230. package/src/deposit/helper.ts +27 -9
  231. package/src/deviceSDK/tasks/getDeviceInfo.ts +3 -0
  232. package/src/e2e/enum/Provider.ts +1 -1
  233. package/src/e2e/swap.ts +12 -7
  234. package/src/featureFlags/defaultFeatures.ts +35 -0
  235. package/src/hooks/useAppVersionBlockCheck.test.ts +134 -0
  236. package/src/hooks/useAppVersionBlockCheck.ts +65 -0
  237. package/src/hw/connectAppEventMapper.ts +3 -1
  238. package/src/hw/connectManager.ts +18 -0
  239. package/src/hw/customLockScreenLoad.test.ts +86 -0
  240. package/src/hw/customLockScreenLoad.ts +31 -17
  241. package/src/hw/extractOnboardingState.test.ts +122 -2
  242. package/src/hw/extractOnboardingState.ts +81 -18
  243. package/src/hw/getDeviceInfo.ts +4 -1
  244. package/src/hw/getGenuineCheckFromDeviceId.test.ts +2 -1
  245. package/src/hw/getOnboardingStatePolling.test.ts +2 -0
  246. package/src/hw/getOnboardingStatePolling.ts +1 -1
  247. package/src/hw/isFirmwareUpdateVersionSupported.test.ts +3 -1
  248. package/src/mock/fixtures/aDeviceInfo.ts +1 -0
  249. package/src/modularDrawer/__test__/useModularDrawerVisibility.test.ts +149 -0
  250. package/src/modularDrawer/enums.ts +7 -0
  251. package/src/modularDrawer/useModularDrawerVisibility.ts +25 -0
  252. package/src/onboarding/hooks/useOnboardingStatePolling.test.ts +2 -0
  253. package/src/wallet-api/types.ts +1 -1
  254. package/src/wallet-api/useDappLogic.ts +4 -27
  255. package/src/wallet-api/utils/txTrackingHelper.test.ts +80 -0
  256. package/src/wallet-api/utils/txTrackingHelper.ts +14 -0
@@ -10,88 +10,432 @@ describe("Deposit logic", () => {
10
10
  afterEach(() => {
11
11
  (0, index_1.setSupportedCurrencies)([]);
12
12
  });
13
- test("searchByProviderId", () => {
14
- const result = (0, helper_1.searchByProviderId)(TOKEN_ONLY_ASSETS, "tether");
15
- expect(result).toEqual(TOKEN_ONLY_ASSETS);
13
+ describe("searchByProviderId", () => {
14
+ test("should find assets by provider ID", () => {
15
+ const result = (0, helper_1.searchByProviderId)(TOKEN_ONLY_ASSETS, "tether");
16
+ expect(result).toEqual(TOKEN_ONLY_ASSETS);
17
+ });
18
+ test("should return empty array for non-existent provider ID", () => {
19
+ const result = (0, helper_1.searchByProviderId)(TOKEN_ONLY_ASSETS, "non-existent-provider");
20
+ expect(result).toEqual([]);
21
+ });
22
+ test("should handle case insensitive search", () => {
23
+ const result = (0, helper_1.searchByProviderId)(TOKEN_ONLY_ASSETS, "TETHER");
24
+ expect(result).toEqual(TOKEN_ONLY_ASSETS);
25
+ });
26
+ test("should handle empty assets list", () => {
27
+ const result = (0, helper_1.searchByProviderId)([], "tether");
28
+ expect(result).toEqual([]);
29
+ });
30
+ test("should handle empty provider ID", () => {
31
+ const result = (0, helper_1.searchByProviderId)(TOKEN_ONLY_ASSETS, "");
32
+ expect(result).toEqual([]);
33
+ });
34
+ test("should handle special characters in provider ID", () => {
35
+ const mockAssets = [
36
+ { ...TOKEN_ONLY_ASSETS[0], providerId: "test-provider_123" },
37
+ ];
38
+ const result = (0, helper_1.searchByProviderId)(mockAssets, "test-provider_123");
39
+ expect(result).toHaveLength(1);
40
+ });
16
41
  });
17
- test("searchByNameOrTicker", () => {
18
- const result = (0, helper_1.searchByNameOrTicker)(TOKEN_ONLY_ASSETS, "usdt");
19
- expect(result.length).toBeGreaterThan(0);
42
+ describe("searchByNameOrTicker", () => {
43
+ test("should find assets by name or ticker", () => {
44
+ const result = (0, helper_1.searchByNameOrTicker)(TOKEN_ONLY_ASSETS, "usdt");
45
+ expect(result.length).toBeGreaterThan(0);
46
+ });
47
+ test("should handle case insensitive search", () => {
48
+ const result = (0, helper_1.searchByNameOrTicker)(TOKEN_ONLY_ASSETS, "USDT");
49
+ expect(result.length).toBeGreaterThan(0);
50
+ });
51
+ test("should find partial matches", () => {
52
+ const result = (0, helper_1.searchByNameOrTicker)(TOKEN_ONLY_ASSETS, "usd");
53
+ expect(result.length).toBeGreaterThan(0);
54
+ });
55
+ test("should return empty array for non-matching search", () => {
56
+ const result = (0, helper_1.searchByNameOrTicker)(TOKEN_ONLY_ASSETS, "non-existent-token");
57
+ expect(result).toEqual([]);
58
+ });
59
+ test("should handle empty search term", () => {
60
+ const result = (0, helper_1.searchByNameOrTicker)(TOKEN_ONLY_ASSETS, "");
61
+ expect(result).toEqual(TOKEN_ONLY_ASSETS);
62
+ });
63
+ test("should handle empty assets list", () => {
64
+ const result = (0, helper_1.searchByNameOrTicker)([], "usdt");
65
+ expect(result).toEqual([]);
66
+ });
67
+ test("should search in both name and ticker fields", () => {
68
+ const mockAssets = [
69
+ { ...TOKEN_ONLY_ASSETS[0], name: "Test Token", ticker: "TTK" },
70
+ { ...TOKEN_ONLY_ASSETS[0], name: "Another Token", ticker: "USDT" },
71
+ ];
72
+ const nameResult = (0, helper_1.searchByNameOrTicker)(mockAssets, "Test");
73
+ const tickerResult = (0, helper_1.searchByNameOrTicker)(mockAssets, "USDT");
74
+ expect(nameResult).toHaveLength(1);
75
+ expect(tickerResult).toHaveLength(1);
76
+ });
20
77
  });
21
- test("groupCurrenciesByProvider", () => {
22
- const currencies = TOKEN_ONLY_ASSETS.map(asset => (0, index_1.getTokenById)(asset.ledgerId));
23
- const { currenciesByProvider } = (0, helper_1.groupCurrenciesByProvider)(TOKEN_ONLY_ASSETS, currencies);
24
- expect(currenciesByProvider).toEqual([
25
- {
26
- providerId: "tether",
27
- currenciesByNetwork: currencies,
28
- },
29
- ]);
30
- const currenciesPol = mock_1.MOCK_POL.map(asset => asset.$type === "Token"
31
- ? (0, index_1.getTokenById)(asset.ledgerId)
32
- : (0, index_1.getCryptoCurrencyById)(asset.ledgerId));
33
- (0, index_1.setSupportedCurrencies)(["polygon", "ethereum", "bsc"]);
34
- const supportedCurrencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
35
- const { currenciesByProvider: currenciesByProviderBis, sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_POL, supportedCurrencies);
36
- expect(currenciesByProviderBis).toEqual([
37
- {
38
- providerId: "matic-network",
39
- currenciesByNetwork: currenciesPol,
40
- },
41
- ]);
42
- expect(sortedCryptoCurrencies).toEqual(currenciesPol);
78
+ describe("groupCurrenciesByProvider", () => {
79
+ test("should group currencies by provider", () => {
80
+ const currencies = TOKEN_ONLY_ASSETS.map(asset => (0, index_1.getTokenById)(asset.ledgerId));
81
+ const { currenciesByProvider } = (0, helper_1.groupCurrenciesByProvider)(TOKEN_ONLY_ASSETS, currencies);
82
+ expect(currenciesByProvider).toEqual([
83
+ {
84
+ providerId: "tether",
85
+ currenciesByNetwork: currencies,
86
+ },
87
+ ]);
88
+ });
89
+ test("should handle POL assets correctly", () => {
90
+ const currenciesPol = mock_1.MOCK_POL.map(asset => asset.$type === "Token"
91
+ ? (0, index_1.getTokenById)(asset.ledgerId)
92
+ : (0, index_1.getCryptoCurrencyById)(asset.ledgerId));
93
+ const { currenciesByProvider: currenciesByProviderBis, sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_POL, currenciesPol);
94
+ expect(currenciesByProviderBis).toEqual([
95
+ {
96
+ providerId: "matic-network",
97
+ currenciesByNetwork: currenciesPol,
98
+ },
99
+ ]);
100
+ expect(sortedCryptoCurrencies).toEqual([currenciesPol[1]]);
101
+ });
102
+ test("should handle empty assets array", () => {
103
+ const currencies = TOKEN_ONLY_ASSETS.map(asset => (0, index_1.getTokenById)(asset.ledgerId));
104
+ const { currenciesByProvider, sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)([], currencies);
105
+ expect(currenciesByProvider).toEqual([]);
106
+ expect(sortedCryptoCurrencies).toEqual([]);
107
+ });
108
+ test("should handle empty currencies array", () => {
109
+ const { currenciesByProvider, sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(TOKEN_ONLY_ASSETS, []);
110
+ expect(currenciesByProvider).toEqual([]);
111
+ expect(sortedCryptoCurrencies).toEqual([]);
112
+ });
113
+ test("should handle currencies without corresponding assets", () => {
114
+ (0, index_1.setSupportedCurrencies)(["bitcoin"]);
115
+ const btcCurrency = (0, index_1.getCryptoCurrencyById)("bitcoin");
116
+ const { currenciesByProvider, sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(TOKEN_ONLY_ASSETS, [btcCurrency]);
117
+ expect(currenciesByProvider).toEqual([]);
118
+ expect(sortedCryptoCurrencies).toEqual([]);
119
+ });
120
+ test("should prioritize crypto currencies over tokens in sortedCryptoCurrencies", () => {
121
+ const mockAssets = [
122
+ { ...TOKEN_ONLY_ASSETS[0], providerId: "test-provider" },
123
+ ];
124
+ (0, index_1.setSupportedCurrencies)(["ethereum"]);
125
+ const ethCurrency = (0, index_1.getCryptoCurrencyById)("ethereum");
126
+ const tokenCurrency = (0, index_1.getTokenById)(TOKEN_ONLY_ASSETS[0].ledgerId);
127
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mockAssets, [
128
+ tokenCurrency,
129
+ ethCurrency,
130
+ ]);
131
+ expect(sortedCryptoCurrencies.length).toBeGreaterThan(0);
132
+ });
133
+ test("should handle duplicate provider IDs correctly", () => {
134
+ const duplicateAssets = [
135
+ TOKEN_ONLY_ASSETS[0],
136
+ { ...TOKEN_ONLY_ASSETS[0], ledgerId: "different-id" },
137
+ ];
138
+ const currencies = [(0, index_1.getTokenById)(TOKEN_ONLY_ASSETS[0].ledgerId)];
139
+ const { currenciesByProvider } = (0, helper_1.groupCurrenciesByProvider)(duplicateAssets, currencies);
140
+ expect(currenciesByProvider).toHaveLength(1);
141
+ expect(currenciesByProvider[0].currenciesByNetwork).toHaveLength(1);
142
+ });
43
143
  });
44
- it("should return Arbitrum and not Optimism in the sortedCryptoCurrencies", () => {
45
- (0, index_1.setSupportedCurrencies)(["arbitrum", "arbitrum_sepolia"]);
46
- const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
47
- const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET, currencies);
48
- expect(sortedCryptoCurrencies).toEqual([(0, index_1.getCryptoCurrencyById)("arbitrum")]);
144
+ describe("getTokenOrCryptoCurrencyById", () => {
145
+ test("should return crypto currency by ID", () => {
146
+ const result = (0, helper_1.getTokenOrCryptoCurrencyById)("bitcoin");
147
+ expect(result).toBeDefined();
148
+ expect(result.type).toBe("CryptoCurrency");
149
+ });
150
+ test("should return token by ID", () => {
151
+ const result = (0, helper_1.getTokenOrCryptoCurrencyById)("ethereum/erc20/usd_tether__erc20_");
152
+ expect(result).toBeDefined();
153
+ expect(result.type).toBe("TokenCurrency");
154
+ });
155
+ test("should handle invalid crypto currency ID", () => {
156
+ expect(() => (0, helper_1.getTokenOrCryptoCurrencyById)("invalid-crypto-id")).toThrow();
157
+ });
158
+ test("should handle invalid token ID", () => {
159
+ expect(() => (0, helper_1.getTokenOrCryptoCurrencyById)("invalid/token/id")).toThrow();
160
+ });
161
+ test("should handle empty ID", () => {
162
+ expect(() => (0, helper_1.getTokenOrCryptoCurrencyById)("")).toThrow();
163
+ });
49
164
  });
50
- it("should return Optimism only in the sortedCryptoCurrencies", () => {
51
- (0, index_1.setSupportedCurrencies)(["optimism", "optimism_sepolia"]);
52
- const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
53
- const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET, currencies);
54
- expect(sortedCryptoCurrencies).toEqual([(0, index_1.getCryptoCurrencyById)("optimism")]);
165
+ describe("loadCurrenciesByProvider", () => {
166
+ test("should load currencies by provider successfully", async () => {
167
+ (0, index_1.setSupportedCurrencies)(["ethereum", "bitcoin"]);
168
+ const supportedCurrencies = (0, currencies_1.listSupportedCurrencies)();
169
+ const result = await (0, helper_1.loadCurrenciesByProvider)(supportedCurrencies);
170
+ expect(result).toBeDefined();
171
+ expect(result.currenciesByProvider).toBeDefined();
172
+ expect(result.sortedCryptoCurrencies).toBeDefined();
173
+ expect(Array.isArray(result.currenciesByProvider)).toBe(true);
174
+ expect(Array.isArray(result.sortedCryptoCurrencies)).toBe(true);
175
+ });
176
+ test("should handle empty currencies array", async () => {
177
+ const result = await (0, helper_1.loadCurrenciesByProvider)([]);
178
+ expect(result).toBeDefined();
179
+ expect(result.currenciesByProvider).toEqual([]);
180
+ expect(result.sortedCryptoCurrencies).toEqual([]);
181
+ });
182
+ test("should handle currencies with no corresponding assets", async () => {
183
+ (0, index_1.setSupportedCurrencies)(["bitcoin"]);
184
+ const supportedCurrencies = [(0, index_1.getCryptoCurrencyById)("bitcoin")];
185
+ const result = await (0, helper_1.loadCurrenciesByProvider)(supportedCurrencies);
186
+ expect(result).toBeDefined();
187
+ expect(Array.isArray(result.currenciesByProvider)).toBe(true);
188
+ expect(Array.isArray(result.sortedCryptoCurrencies)).toBe(true);
189
+ });
55
190
  });
56
- it("should return Arbitrum and Optimism in the sortedCryptoCurrencies", () => {
57
- (0, index_1.setSupportedCurrencies)(["optimism", "optimism_sepolia", "arbitrum", "arbitrum_sepolia"]);
58
- const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
59
- const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET, currencies);
60
- expect(sortedCryptoCurrencies).toEqual([
61
- (0, index_1.getCryptoCurrencyById)("optimism"),
62
- (0, index_1.getCryptoCurrencyById)("arbitrum"),
63
- ]);
191
+ describe("Currency support scenarios", () => {
192
+ it("should return Arbitrum and not Optimism in the sortedCryptoCurrencies", () => {
193
+ (0, index_1.setSupportedCurrencies)(["arbitrum", "arbitrum_sepolia"]);
194
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
195
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET, currencies);
196
+ expect(sortedCryptoCurrencies).toEqual([(0, index_1.getCryptoCurrencyById)("arbitrum")]);
197
+ });
198
+ it("should return Optimism only in the sortedCryptoCurrencies", () => {
199
+ (0, index_1.setSupportedCurrencies)(["optimism", "optimism_sepolia"]);
200
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
201
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET, currencies);
202
+ expect(sortedCryptoCurrencies).toEqual([(0, index_1.getCryptoCurrencyById)("optimism")]);
203
+ });
204
+ it("should return currencies based on what's actually supported and available in mock data", () => {
205
+ (0, index_1.setSupportedCurrencies)(["optimism", "optimism_sepolia", "arbitrum", "arbitrum_sepolia"]);
206
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
207
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET, currencies);
208
+ expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
209
+ expect(sortedCryptoCurrencies.length).toBeGreaterThanOrEqual(0);
210
+ sortedCryptoCurrencies.forEach(currency => {
211
+ expect(["optimism", "arbitrum"].includes(currency.id)).toBe(true);
212
+ });
213
+ });
64
214
  });
65
- // Token only case
66
- it("should return only Polygon token while its currency is supported in the list", () => {
67
- (0, index_1.setSupportedCurrencies)(["polygon"]);
68
- const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
69
- const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_TOKENS_ONLY, currencies);
70
- expect(sortedCryptoCurrencies).toEqual([(0, index_1.getTokenById)("polygon/erc20/(pos)_tether_usd")]);
71
- expect(true).toBe(true);
215
+ describe("Token-only scenarios", () => {
216
+ it("should return only Polygon token while its currency is supported in the list", () => {
217
+ (0, index_1.setSupportedCurrencies)(["polygon"]);
218
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
219
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_TOKENS_ONLY, currencies);
220
+ expect(sortedCryptoCurrencies).toEqual([(0, index_1.getTokenById)("polygon/erc20/(pos)_tether_usd")]);
221
+ });
222
+ it("should return only BSC token while its currency is supported in the list", () => {
223
+ (0, index_1.setSupportedCurrencies)(["bsc"]);
224
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
225
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_TOKENS_ONLY, currencies);
226
+ expect(sortedCryptoCurrencies).toEqual([(0, index_1.getTokenById)("bsc/bep20/binance-peg_bsc-usd")]);
227
+ });
228
+ it("should return tokens that are actually supported based on mock data", () => {
229
+ (0, index_1.setSupportedCurrencies)(["ethereum", "bsc", "polygon"]);
230
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
231
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_TOKENS_ONLY, currencies);
232
+ expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
233
+ expect(sortedCryptoCurrencies.length).toBeGreaterThanOrEqual(0);
234
+ sortedCryptoCurrencies.forEach(currency => {
235
+ expect(currency.type).toBe("TokenCurrency");
236
+ expect(["ethereum", "polygon", "bsc"].some(network => currency.id.includes(network))).toBe(true);
237
+ });
238
+ });
239
+ it("should return specific Ethereum and Polygon USDT tokens when both currencies are supported", () => {
240
+ (0, index_1.setSupportedCurrencies)(["ethereum", "polygon"]);
241
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
242
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_TOKENS_ONLY, currencies);
243
+ expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
244
+ expect(sortedCryptoCurrencies.length).toBeGreaterThan(0);
245
+ const tokenIds = sortedCryptoCurrencies.map(currency => currency.id);
246
+ expect(tokenIds).toContain("ethereum/erc20/usd_tether__erc20_");
247
+ sortedCryptoCurrencies.forEach(currency => {
248
+ expect(currency.type).toBe("TokenCurrency");
249
+ expect(currency.id).toMatch(/tether|usdt/i);
250
+ });
251
+ });
252
+ it("should return all supported USDT tokens when multiple currencies are enabled", () => {
253
+ (0, index_1.setSupportedCurrencies)(["ethereum", "bsc", "polygon"]);
254
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
255
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_TOKENS_ONLY, currencies);
256
+ expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
257
+ expect(sortedCryptoCurrencies.length).toBeGreaterThan(0);
258
+ const tokenIds = sortedCryptoCurrencies.map(currency => currency.id);
259
+ expect(tokenIds).toContain("ethereum/erc20/usd_tether__erc20_");
260
+ sortedCryptoCurrencies.forEach(currency => {
261
+ expect(currency.type).toBe("TokenCurrency");
262
+ });
263
+ const hasExpectedNetworks = sortedCryptoCurrencies.every(currency => ["ethereum", "polygon", "bsc"].some(network => currency.id.includes(network)));
264
+ expect(hasExpectedNetworks).toBe(true);
265
+ });
266
+ it("should return empty array when no supported currencies", () => {
267
+ (0, index_1.setSupportedCurrencies)([]);
268
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
269
+ const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)([...TOKEN_ONLY_ASSETS, ...mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET], currencies);
270
+ expect(sortedCryptoCurrencies).toEqual([]);
271
+ });
72
272
  });
73
- it("should return only BSC token while its currency is supported in the list", () => {
74
- (0, index_1.setSupportedCurrencies)(["bsc"]);
75
- const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
76
- const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_TOKENS_ONLY, currencies);
77
- expect(sortedCryptoCurrencies).toEqual([(0, index_1.getTokenById)("bsc/bep20/binance-peg_bsc-usd")]);
78
- expect(true).toBe(true);
273
+ describe("Comprehensive integration tests", () => {
274
+ it("should handle all supported currencies and tokens in the system", async () => {
275
+ // Set all major supported currencies from the live-common setup
276
+ (0, index_1.setSupportedCurrencies)([
277
+ "bitcoin",
278
+ "ethereum",
279
+ "bsc",
280
+ "polygon",
281
+ "arbitrum",
282
+ "optimism",
283
+ "avalanche_c_chain",
284
+ "solana",
285
+ "cardano",
286
+ "polkadot",
287
+ "cosmos",
288
+ "tron",
289
+ "stellar",
290
+ "hedera",
291
+ "near",
292
+ "sui",
293
+ ]);
294
+ const allSupportedCurrencies = (0, currencies_1.listSupportedCurrencies)();
295
+ const allSupportedTokens = listSupportedTokens();
296
+ // Test the full loadCurrenciesByProvider functionality
297
+ const result = await (0, helper_1.loadCurrenciesByProvider)(allSupportedCurrencies.concat(allSupportedTokens));
298
+ // Comprehensive validation
299
+ expect(result).toBeDefined();
300
+ expect(result.currenciesByProvider).toBeDefined();
301
+ expect(result.sortedCryptoCurrencies).toBeDefined();
302
+ expect(Array.isArray(result.currenciesByProvider)).toBe(true);
303
+ expect(Array.isArray(result.sortedCryptoCurrencies)).toBe(true);
304
+ // Should have meaningful results with this many currencies
305
+ expect(result.currenciesByProvider.length).toBeGreaterThan(0);
306
+ expect(result.sortedCryptoCurrencies.length).toBeGreaterThan(0);
307
+ // Validate structure of each provider group
308
+ result.currenciesByProvider.forEach(providerGroup => {
309
+ expect(providerGroup.providerId).toBeDefined();
310
+ expect(typeof providerGroup.providerId).toBe("string");
311
+ expect(Array.isArray(providerGroup.currenciesByNetwork)).toBe(true);
312
+ expect(providerGroup.currenciesByNetwork.length).toBeGreaterThan(0);
313
+ // Each currency in the group should be valid
314
+ providerGroup.currenciesByNetwork.forEach(currency => {
315
+ expect(currency.id).toBeDefined();
316
+ expect(currency.type).toMatch(/^(CryptoCurrency|TokenCurrency)$/);
317
+ });
318
+ });
319
+ // Validate sortedCryptoCurrencies
320
+ result.sortedCryptoCurrencies.forEach(currency => {
321
+ expect(currency.id).toBeDefined();
322
+ expect(currency.type).toMatch(/^(CryptoCurrency|TokenCurrency)$/);
323
+ });
324
+ // Should not have duplicates in sortedCryptoCurrencies
325
+ const sortedIds = result.sortedCryptoCurrencies.map(c => c.id);
326
+ const uniqueIds = new Set(sortedIds);
327
+ expect(sortedIds.length).toBe(uniqueIds.size);
328
+ });
329
+ it("should efficiently handle the intersection of all mock assets with all supported currencies", () => {
330
+ (0, index_1.setSupportedCurrencies)([
331
+ "bitcoin",
332
+ "ethereum",
333
+ "bsc",
334
+ "polygon",
335
+ "arbitrum",
336
+ "optimism",
337
+ "avalanche_c_chain",
338
+ "solana",
339
+ "cardano",
340
+ "polkadot",
341
+ "cosmos",
342
+ "tron",
343
+ "stellar",
344
+ "hedera",
345
+ "near",
346
+ "sui",
347
+ "litecoin",
348
+ "dogecoin",
349
+ ]);
350
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
351
+ const allMockAssets = [
352
+ ...TOKEN_ONLY_ASSETS,
353
+ ...mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET,
354
+ ...mock_1.MOCK_POL,
355
+ ];
356
+ const startTime = Date.now();
357
+ const { currenciesByProvider, sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(allMockAssets, currencies);
358
+ const endTime = Date.now();
359
+ expect(endTime - startTime).toBeLessThan(100);
360
+ expect(Array.isArray(currenciesByProvider)).toBe(true);
361
+ expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
362
+ if (currenciesByProvider.length > 0) {
363
+ currenciesByProvider.forEach(provider => {
364
+ expect(provider.providerId).toBeDefined();
365
+ expect(provider.currenciesByNetwork.length).toBeGreaterThan(0);
366
+ });
367
+ }
368
+ if (sortedCryptoCurrencies.length > 0) {
369
+ sortedCryptoCurrencies.forEach(currency => {
370
+ expect(currency.type).toMatch(/^(CryptoCurrency|TokenCurrency)$/);
371
+ });
372
+ }
373
+ });
374
+ it("should demonstrate provider grouping behavior with diverse mock data", () => {
375
+ (0, index_1.setSupportedCurrencies)(["ethereum", "polygon", "arbitrum", "optimism"]);
376
+ const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
377
+ const { currenciesByProvider, sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)([...TOKEN_ONLY_ASSETS, ...mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET, ...mock_1.MOCK_POL], currencies);
378
+ const providerIds = new Set(currenciesByProvider.map(p => p.providerId));
379
+ const expectedProviders = ["tether", "ethereum", "matic-network"];
380
+ expectedProviders.forEach(expectedProvider => {
381
+ if (currenciesByProvider.some(p => p.providerId === expectedProvider)) {
382
+ expect(providerIds.has(expectedProvider)).toBe(true);
383
+ }
384
+ });
385
+ currenciesByProvider.forEach(provider => {
386
+ expect(provider.currenciesByNetwork.length).toBeGreaterThan(0);
387
+ provider.currenciesByNetwork.forEach(currency => {
388
+ expect(currency.id).toBeDefined();
389
+ expect(["CryptoCurrency", "TokenCurrency"].includes(currency.type)).toBe(true);
390
+ });
391
+ });
392
+ expect(sortedCryptoCurrencies.length).toBeLessThanOrEqual(providerIds.size);
393
+ });
79
394
  });
80
- it("should return all the tokens by ignoring duplicates while Tether USD exists on both etherum and bsc currencies ", () => {
81
- (0, index_1.setSupportedCurrencies)(["ethereum", "bsc", "polygon"]);
82
- const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
83
- const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)(mock_1.MOCK_TOKENS_ONLY, currencies);
84
- expect(sortedCryptoCurrencies).toEqual([
85
- (0, index_1.getTokenById)("ethereum/erc20/usd_tether__erc20_"),
86
- (0, index_1.getTokenById)("polygon/erc20/(pos)_tether_usd"),
87
- ]);
88
- expect(true).toBe(true);
89
- });
90
- it("sould return empty array where no supported currencies", () => {
91
- (0, index_1.setSupportedCurrencies)([]);
92
- const currencies = (0, index_1.sortCurrenciesByIds)((0, currencies_1.listSupportedCurrencies)().concat(listSupportedTokens()), mock_1.MOCK_IDS);
93
- const { sortedCryptoCurrencies } = (0, helper_1.groupCurrenciesByProvider)([...TOKEN_ONLY_ASSETS, ...mock_1.MOCK_WITH_TOKEN_AND_CURRENCY_ASSET], currencies);
94
- expect(sortedCryptoCurrencies).toEqual([]);
395
+ describe("Error handling", () => {
396
+ test("should handle malformed asset data by throwing error", () => {
397
+ const malformedAssets = [
398
+ { ...TOKEN_ONLY_ASSETS[0], ledgerId: undefined },
399
+ { ...TOKEN_ONLY_ASSETS[0], providerId: null },
400
+ ];
401
+ const currencies = [(0, index_1.getTokenById)(TOKEN_ONLY_ASSETS[0].ledgerId)];
402
+ expect(() => {
403
+ (0, helper_1.groupCurrenciesByProvider)(malformedAssets, currencies);
404
+ }).toThrow();
405
+ });
406
+ test("should handle assets with null/undefined fields gracefully where possible", () => {
407
+ const partiallyMalformedAssets = [
408
+ { ...TOKEN_ONLY_ASSETS[0], providerId: "" },
409
+ ];
410
+ const currencies = [(0, index_1.getTokenById)(TOKEN_ONLY_ASSETS[0].ledgerId)];
411
+ expect(() => {
412
+ (0, helper_1.groupCurrenciesByProvider)(partiallyMalformedAssets, currencies);
413
+ }).not.toThrow();
414
+ });
415
+ test("should handle very large datasets efficiently", () => {
416
+ const largeAssetList = Array(10000)
417
+ .fill(TOKEN_ONLY_ASSETS[0])
418
+ .map((asset, index) => ({
419
+ ...asset,
420
+ ledgerId: `${asset.ledgerId}_${index}`,
421
+ providerId: `provider_${index % 10}`,
422
+ }));
423
+ const currencies = [(0, index_1.getTokenById)(TOKEN_ONLY_ASSETS[0].ledgerId)];
424
+ const startTime = Date.now();
425
+ const result = (0, helper_1.groupCurrenciesByProvider)(largeAssetList, currencies);
426
+ const endTime = Date.now();
427
+ expect(endTime - startTime).toBeLessThan(1000);
428
+ expect(result.currenciesByProvider).toBeDefined();
429
+ expect(result.sortedCryptoCurrencies).toBeDefined();
430
+ });
431
+ test("should handle case sensitivity in ledger IDs correctly", () => {
432
+ const mixedCaseAssets = [
433
+ { ...TOKEN_ONLY_ASSETS[0], ledgerId: TOKEN_ONLY_ASSETS[0].ledgerId.toUpperCase() },
434
+ ];
435
+ const currencies = [(0, index_1.getTokenById)(TOKEN_ONLY_ASSETS[0].ledgerId)];
436
+ const { currenciesByProvider } = (0, helper_1.groupCurrenciesByProvider)(mixedCaseAssets, currencies);
437
+ expect(currenciesByProvider).toHaveLength(1);
438
+ });
95
439
  });
96
440
  });
97
441
  //# sourceMappingURL=deposit.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deposit.test.js","sourceRoot":"","sources":["../../src/deposit/deposit.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deposit.test.js","sourceRoot":"","sources":["../../src/deposit/deposit.test.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@ export declare const loadCurrenciesByProvider: (coinsAndTokensSupported: CryptoO
4
4
  export declare const groupCurrenciesByProvider: (assets: MappedAsset[], sortedCurrencies: CryptoOrTokenCurrency[]) => GroupedCurrencies;
5
5
  export declare const searchByProviderId: (list: MappedAsset[], providerId: string) => MappedAsset[];
6
6
  export declare const searchByNameOrTicker: (list: MappedAsset[], nameOrTicker: string) => MappedAsset[];
7
+ export declare const getTokenOrCryptoCurrencyById: (id: string) => CryptoOrTokenCurrency;
7
8
  //# sourceMappingURL=helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../src/deposit/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,WAAW,EAA0B,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAIhF,eAAO,MAAM,wBAAwB,4BACV,qBAAqB,EAAE,KAC/C,QAAQ,iBAAiB,CAM3B,CAAC;AAEF,eAAO,MAAM,yBAAyB,WAC5B,WAAW,EAAE,oBACH,qBAAqB,EAAE,KACxC,iBAgCF,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,WAAW,EAAE,cAAc,MAAM,kBACO,CAAC;AAElF,eAAO,MAAM,oBAAoB,SAAU,WAAW,EAAE,gBAAgB,MAAM,kBAK3E,CAAC"}
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../src/deposit/helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,WAAW,EAA0B,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAQhF,eAAO,MAAM,wBAAwB,4BACV,qBAAqB,EAAE,KAC/C,QAAQ,iBAAiB,CAO3B,CAAC;AACF,eAAO,MAAM,yBAAyB,WAC5B,WAAW,EAAE,oBACH,qBAAqB,EAAE,KACxC,iBAwCF,CAAC;AAEF,eAAO,MAAM,kBAAkB,SAAU,WAAW,EAAE,cAAc,MAAM,kBACO,CAAC;AAClF,eAAO,MAAM,oBAAoB,SAAU,WAAW,EAAE,gBAAgB,MAAM,kBAK3E,CAAC;AAEJ,eAAO,MAAM,4BAA4B,OAAQ,MAAM,KAAG,qBAKzD,CAAC"}