@ledgerhq/live-common 34.53.0-nightly.20251115023630 → 34.53.0-nightly.20251119023741

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 (601) 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/generic-alpaca/getAccountShape.d.ts.map +1 -1
  5. package/lib/bridge/generic-alpaca/getAccountShape.js +12 -10
  6. package/lib/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  7. package/lib/currencies/helpers.d.ts +1 -3
  8. package/lib/currencies/helpers.d.ts.map +1 -1
  9. package/lib/currencies/helpers.js +1 -27
  10. package/lib/currencies/helpers.js.map +1 -1
  11. package/lib/dada-client/hooks/useAssetsData.d.ts +1 -0
  12. package/lib/dada-client/hooks/useAssetsData.d.ts.map +1 -1
  13. package/lib/dada-client/hooks/useAssetsData.js +1 -0
  14. package/lib/dada-client/hooks/useAssetsData.js.map +1 -1
  15. package/lib/deposit/type.d.ts +0 -17
  16. package/lib/deposit/type.d.ts.map +1 -1
  17. package/lib/deposit/type.js.map +1 -1
  18. package/lib/deviceSDK/actions/getBatteryStatuses.d.ts +2 -1
  19. package/lib/deviceSDK/actions/getBatteryStatuses.d.ts.map +1 -1
  20. package/lib/deviceSDK/actions/getBatteryStatuses.js +2 -2
  21. package/lib/deviceSDK/actions/getBatteryStatuses.js.map +1 -1
  22. package/lib/deviceSDK/actions/getDeviceInfo.d.ts +2 -1
  23. package/lib/deviceSDK/actions/getDeviceInfo.d.ts.map +1 -1
  24. package/lib/deviceSDK/actions/getDeviceInfo.js +2 -2
  25. package/lib/deviceSDK/actions/getDeviceInfo.js.map +1 -1
  26. package/lib/deviceSDK/actions/getLatestAvailableFirmware.d.ts +2 -1
  27. package/lib/deviceSDK/actions/getLatestAvailableFirmware.d.ts.map +1 -1
  28. package/lib/deviceSDK/actions/getLatestAvailableFirmware.js +6 -3
  29. package/lib/deviceSDK/actions/getLatestAvailableFirmware.js.map +1 -1
  30. package/lib/deviceSDK/actions/toggleOnboardingEarlyCheck.d.ts +2 -1
  31. package/lib/deviceSDK/actions/toggleOnboardingEarlyCheck.d.ts.map +1 -1
  32. package/lib/deviceSDK/actions/toggleOnboardingEarlyCheck.js +2 -2
  33. package/lib/deviceSDK/actions/toggleOnboardingEarlyCheck.js.map +1 -1
  34. package/lib/deviceSDK/actions/updateFirmware.d.ts +2 -1
  35. package/lib/deviceSDK/actions/updateFirmware.d.ts.map +1 -1
  36. package/lib/deviceSDK/actions/updateFirmware.js +4 -3
  37. package/lib/deviceSDK/actions/updateFirmware.js.map +1 -1
  38. package/lib/deviceSDK/hooks/useBatteryStatuses.d.ts +2 -1
  39. package/lib/deviceSDK/hooks/useBatteryStatuses.d.ts.map +1 -1
  40. package/lib/deviceSDK/hooks/useBatteryStatuses.js +3 -2
  41. package/lib/deviceSDK/hooks/useBatteryStatuses.js.map +1 -1
  42. package/lib/deviceSDK/hooks/useGetDeviceInfo.d.ts +2 -1
  43. package/lib/deviceSDK/hooks/useGetDeviceInfo.d.ts.map +1 -1
  44. package/lib/deviceSDK/hooks/useGetDeviceInfo.js +3 -3
  45. package/lib/deviceSDK/hooks/useGetDeviceInfo.js.map +1 -1
  46. package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts +2 -1
  47. package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts.map +1 -1
  48. package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.js +2 -1
  49. package/lib/deviceSDK/hooks/useGetLatestAvailableFirmware.js.map +1 -1
  50. package/lib/deviceSDK/hooks/useToggleOnboardingEarlyChecks.d.ts +2 -1
  51. package/lib/deviceSDK/hooks/useToggleOnboardingEarlyChecks.d.ts.map +1 -1
  52. package/lib/deviceSDK/hooks/useToggleOnboardingEarlyChecks.js +3 -2
  53. package/lib/deviceSDK/hooks/useToggleOnboardingEarlyChecks.js.map +1 -1
  54. package/lib/deviceSDK/hooks/useUpdateFirmware.d.ts +2 -1
  55. package/lib/deviceSDK/hooks/useUpdateFirmware.d.ts.map +1 -1
  56. package/lib/deviceSDK/hooks/useUpdateFirmware.js +3 -2
  57. package/lib/deviceSDK/hooks/useUpdateFirmware.js.map +1 -1
  58. package/lib/deviceSDK/tasks/core.d.ts +1 -1
  59. package/lib/deviceSDK/tasks/core.d.ts.map +1 -1
  60. package/lib/deviceSDK/tasks/core.js +1 -1
  61. package/lib/deviceSDK/tasks/core.js.map +1 -1
  62. package/lib/deviceSDK/tasks/getBatteryStatuses.d.ts +1 -0
  63. package/lib/deviceSDK/tasks/getBatteryStatuses.d.ts.map +1 -1
  64. package/lib/deviceSDK/tasks/getBatteryStatuses.js +2 -2
  65. package/lib/deviceSDK/tasks/getBatteryStatuses.js.map +1 -1
  66. package/lib/deviceSDK/tasks/getDeviceInfo.d.ts +2 -1
  67. package/lib/deviceSDK/tasks/getDeviceInfo.d.ts.map +1 -1
  68. package/lib/deviceSDK/tasks/getDeviceInfo.js +2 -2
  69. package/lib/deviceSDK/tasks/getDeviceInfo.js.map +1 -1
  70. package/lib/deviceSDK/tasks/getLatestFirmware.d.ts +1 -0
  71. package/lib/deviceSDK/tasks/getLatestFirmware.d.ts.map +1 -1
  72. package/lib/deviceSDK/tasks/getLatestFirmware.js +2 -2
  73. package/lib/deviceSDK/tasks/getLatestFirmware.js.map +1 -1
  74. package/lib/deviceSDK/tasks/toggleOnboardingEarlyCheck.d.ts +1 -0
  75. package/lib/deviceSDK/tasks/toggleOnboardingEarlyCheck.d.ts.map +1 -1
  76. package/lib/deviceSDK/tasks/toggleOnboardingEarlyCheck.js +2 -2
  77. package/lib/deviceSDK/tasks/toggleOnboardingEarlyCheck.js.map +1 -1
  78. package/lib/deviceSDK/tasks/updateFirmware.d.ts +1 -0
  79. package/lib/deviceSDK/tasks/updateFirmware.d.ts.map +1 -1
  80. package/lib/deviceSDK/tasks/updateFirmware.js +2 -2
  81. package/lib/deviceSDK/tasks/updateFirmware.js.map +1 -1
  82. package/lib/deviceSDK/transports/core.d.ts +1 -0
  83. package/lib/deviceSDK/transports/core.d.ts.map +1 -1
  84. package/lib/deviceSDK/transports/core.js +2 -2
  85. package/lib/deviceSDK/transports/core.js.map +1 -1
  86. package/lib/e2e/enum/Account.d.ts +0 -1
  87. package/lib/e2e/enum/Account.d.ts.map +1 -1
  88. package/lib/e2e/enum/Account.js +0 -1
  89. package/lib/e2e/enum/Account.js.map +1 -1
  90. package/lib/e2e/enum/Currency.d.ts +0 -1
  91. package/lib/e2e/enum/Currency.d.ts.map +1 -1
  92. package/lib/e2e/enum/Currency.js +1 -5
  93. package/lib/e2e/enum/Currency.js.map +1 -1
  94. package/lib/e2e/enum/ReceiveFundsOptions.d.ts +6 -0
  95. package/lib/e2e/enum/ReceiveFundsOptions.d.ts.map +1 -0
  96. package/lib/e2e/enum/ReceiveFundsOptions.js +8 -0
  97. package/lib/e2e/enum/ReceiveFundsOptions.js.map +1 -0
  98. package/lib/exchange/providers/swap.d.ts +1 -0
  99. package/lib/exchange/providers/swap.d.ts.map +1 -1
  100. package/lib/exchange/providers/swap.js +5 -1
  101. package/lib/exchange/providers/swap.js.map +1 -1
  102. package/lib/exchange/swap/hooks/v5/useFetchCurrencyAll.d.ts.map +1 -1
  103. package/lib/exchange/swap/hooks/v5/useFetchCurrencyAll.js +2 -3
  104. package/lib/exchange/swap/hooks/v5/useFetchCurrencyAll.js.map +1 -1
  105. package/lib/exchange/swap/hooks/v5/useFilteredProviders.d.ts.map +1 -1
  106. package/lib/exchange/swap/hooks/v5/useFilteredProviders.js +15 -10
  107. package/lib/exchange/swap/hooks/v5/useFilteredProviders.js.map +1 -1
  108. package/lib/hw/actions/app.d.ts.map +1 -1
  109. package/lib/hw/actions/app.js +2 -1
  110. package/lib/hw/actions/app.js.map +1 -1
  111. package/lib/hw/actions/customLockScreenLoad.d.ts +1 -1
  112. package/lib/hw/actions/customLockScreenLoad.d.ts.map +1 -1
  113. package/lib/hw/actions/customLockScreenLoad.js +2 -0
  114. package/lib/hw/actions/customLockScreenLoad.js.map +1 -1
  115. package/lib/hw/actions/implementations.d.ts +1 -0
  116. package/lib/hw/actions/implementations.d.ts.map +1 -1
  117. package/lib/hw/actions/implementations.js +12 -2
  118. package/lib/hw/actions/implementations.js.map +1 -1
  119. package/lib/hw/connectApp.d.ts +2 -1
  120. package/lib/hw/connectApp.d.ts.map +1 -1
  121. package/lib/hw/connectApp.js +4 -4
  122. package/lib/hw/connectApp.js.map +1 -1
  123. package/lib/hw/connectManager.d.ts +2 -1
  124. package/lib/hw/connectManager.d.ts.map +1 -1
  125. package/lib/hw/connectManager.js +4 -4
  126. package/lib/hw/connectManager.js.map +1 -1
  127. package/lib/hw/customLockScreenFetch.d.ts +2 -1
  128. package/lib/hw/customLockScreenFetch.d.ts.map +1 -1
  129. package/lib/hw/customLockScreenFetch.js +2 -2
  130. package/lib/hw/customLockScreenFetch.js.map +1 -1
  131. package/lib/hw/customLockScreenLoad.d.ts +2 -1
  132. package/lib/hw/customLockScreenLoad.d.ts.map +1 -1
  133. package/lib/hw/customLockScreenLoad.js +2 -2
  134. package/lib/hw/customLockScreenLoad.js.map +1 -1
  135. package/lib/hw/deviceAccess.d.ts +3 -3
  136. package/lib/hw/deviceAccess.d.ts.map +1 -1
  137. package/lib/hw/deviceAccess.js +2 -1
  138. package/lib/hw/deviceAccess.js.map +1 -1
  139. package/lib/hw/getGenuineCheckFromDeviceId.d.ts +2 -1
  140. package/lib/hw/getGenuineCheckFromDeviceId.d.ts.map +1 -1
  141. package/lib/hw/getGenuineCheckFromDeviceId.js +2 -2
  142. package/lib/hw/getGenuineCheckFromDeviceId.js.map +1 -1
  143. package/lib/hw/getOnboardingStatePolling.d.ts +2 -1
  144. package/lib/hw/getOnboardingStatePolling.d.ts.map +1 -1
  145. package/lib/hw/getOnboardingStatePolling.js +5 -2
  146. package/lib/hw/getOnboardingStatePolling.js.map +1 -1
  147. package/lib/hw/hooks/useGenuineCheck.d.ts +2 -1
  148. package/lib/hw/hooks/useGenuineCheck.d.ts.map +1 -1
  149. package/lib/hw/hooks/useGenuineCheck.js +3 -1
  150. package/lib/hw/hooks/useGenuineCheck.js.map +1 -1
  151. package/lib/hw/index.d.ts +6 -2
  152. package/lib/hw/index.d.ts.map +1 -1
  153. package/lib/hw/index.js +6 -6
  154. package/lib/hw/index.js.map +1 -1
  155. package/lib/hw/installLanguage.d.ts +2 -1
  156. package/lib/hw/installLanguage.d.ts.map +1 -1
  157. package/lib/hw/installLanguage.js +2 -2
  158. package/lib/hw/installLanguage.js.map +1 -1
  159. package/lib/market/hooks/useMarketDataProvider.js +1 -0
  160. package/lib/market/hooks/useMarketDataProvider.js.map +1 -1
  161. package/lib/market/utils/types.d.ts +1 -0
  162. package/lib/market/utils/types.d.ts.map +1 -1
  163. package/lib/market/utils/types.js.map +1 -1
  164. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  165. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +2 -0
  166. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  167. package/lib/modularDrawer/hooks/useNetworkAccountCounts.d.ts +1 -5
  168. package/lib/modularDrawer/hooks/useNetworkAccountCounts.d.ts.map +1 -1
  169. package/lib/modularDrawer/hooks/useNetworkAccountCounts.js +2 -2
  170. package/lib/modularDrawer/hooks/useNetworkAccountCounts.js.map +1 -1
  171. package/lib/modularDrawer/modules/createNetworkConfiguration.d.ts +1 -1
  172. package/lib/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
  173. package/lib/modularDrawer/modules/createNetworkConfiguration.js +1 -2
  174. package/lib/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
  175. package/lib/modularDrawer/utils/{groupCurrenciesByProvider.d.ts → groupCurrenciesByAsset.d.ts} +2 -2
  176. package/lib/modularDrawer/utils/groupCurrenciesByAsset.d.ts.map +1 -0
  177. package/lib/modularDrawer/utils/{groupCurrenciesByProvider.js → groupCurrenciesByAsset.js} +7 -7
  178. package/lib/modularDrawer/utils/groupCurrenciesByAsset.js.map +1 -0
  179. package/lib/modularDrawer/utils/index.d.ts +1 -1
  180. package/lib/modularDrawer/utils/index.d.ts.map +1 -1
  181. package/lib/modularDrawer/utils/index.js +3 -3
  182. package/lib/modularDrawer/utils/index.js.map +1 -1
  183. package/lib/modularDrawer/utils/type.d.ts +0 -5
  184. package/lib/modularDrawer/utils/type.d.ts.map +1 -1
  185. package/lib/onboarding/hooks/useOnboardingStatePolling.d.ts.map +1 -1
  186. package/lib/onboarding/hooks/useOnboardingStatePolling.js +1 -0
  187. package/lib/onboarding/hooks/useOnboardingStatePolling.js.map +1 -1
  188. package/lib/platform/filters.d.ts +1 -2
  189. package/lib/platform/filters.d.ts.map +1 -1
  190. package/lib/platform/filters.js +1 -17
  191. package/lib/platform/filters.js.map +1 -1
  192. package/lib/platform/helpers.d.ts +1 -5
  193. package/lib/platform/helpers.d.ts.map +1 -1
  194. package/lib/platform/helpers.js +1 -33
  195. package/lib/platform/helpers.js.map +1 -1
  196. package/lib/platform/react.d.ts +2 -3
  197. package/lib/platform/react.d.ts.map +1 -1
  198. package/lib/platform/react.js +66 -16
  199. package/lib/platform/react.js.map +1 -1
  200. package/lib/platform/types.d.ts +3 -3
  201. package/lib/platform/types.d.ts.map +1 -1
  202. package/lib/utils/getAccountTuplesForCurrency.d.ts +1 -1
  203. package/lib/utils/getAccountTuplesForCurrency.d.ts.map +1 -1
  204. package/lib/utils/getAccountTuplesForCurrency.js +2 -3
  205. package/lib/utils/getAccountTuplesForCurrency.js.map +1 -1
  206. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  207. package/lib/wallet-api/Exchange/server.js +5 -4
  208. package/lib/wallet-api/Exchange/server.js.map +1 -1
  209. package/lib/wallet-api/converters.d.ts +1 -0
  210. package/lib/wallet-api/converters.d.ts.map +1 -1
  211. package/lib/wallet-api/converters.js +7 -2
  212. package/lib/wallet-api/converters.js.map +1 -1
  213. package/lib/wallet-api/react.d.ts +6 -11
  214. package/lib/wallet-api/react.d.ts.map +1 -1
  215. package/lib/wallet-api/react.js +291 -135
  216. package/lib/wallet-api/react.js.map +1 -1
  217. package/lib/wallet-api/tracking.d.ts +6 -0
  218. package/lib/wallet-api/tracking.d.ts.map +1 -1
  219. package/lib/wallet-api/tracking.js +20 -0
  220. package/lib/wallet-api/tracking.js.map +1 -1
  221. package/lib/wallet-api/types.d.ts +3 -0
  222. package/lib/wallet-api/types.d.ts.map +1 -1
  223. package/lib/wallet-api/useDappLogic.d.ts.map +1 -1
  224. package/lib/wallet-api/useDappLogic.js +65 -80
  225. package/lib/wallet-api/useDappLogic.js.map +1 -1
  226. package/lib/wallet-api/utils/deriveAccountIdForManifest.d.ts +6 -0
  227. package/lib/wallet-api/utils/deriveAccountIdForManifest.d.ts.map +1 -1
  228. package/lib/wallet-api/utils/deriveAccountIdForManifest.js +13 -3
  229. package/lib/wallet-api/utils/deriveAccountIdForManifest.js.map +1 -1
  230. package/lib-es/__tests__/test-helpers/bridge.d.ts.map +1 -1
  231. package/lib-es/__tests__/test-helpers/bridge.js +0 -4
  232. package/lib-es/__tests__/test-helpers/bridge.js.map +1 -1
  233. package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  234. package/lib-es/bridge/generic-alpaca/getAccountShape.js +13 -11
  235. package/lib-es/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  236. package/lib-es/currencies/helpers.d.ts +1 -3
  237. package/lib-es/currencies/helpers.d.ts.map +1 -1
  238. package/lib-es/currencies/helpers.js +0 -24
  239. package/lib-es/currencies/helpers.js.map +1 -1
  240. package/lib-es/dada-client/hooks/useAssetsData.d.ts +1 -0
  241. package/lib-es/dada-client/hooks/useAssetsData.d.ts.map +1 -1
  242. package/lib-es/dada-client/hooks/useAssetsData.js +1 -0
  243. package/lib-es/dada-client/hooks/useAssetsData.js.map +1 -1
  244. package/lib-es/deposit/type.d.ts +0 -17
  245. package/lib-es/deposit/type.d.ts.map +1 -1
  246. package/lib-es/deposit/type.js.map +1 -1
  247. package/lib-es/deviceSDK/actions/getBatteryStatuses.d.ts +2 -1
  248. package/lib-es/deviceSDK/actions/getBatteryStatuses.d.ts.map +1 -1
  249. package/lib-es/deviceSDK/actions/getBatteryStatuses.js +2 -2
  250. package/lib-es/deviceSDK/actions/getBatteryStatuses.js.map +1 -1
  251. package/lib-es/deviceSDK/actions/getDeviceInfo.d.ts +2 -1
  252. package/lib-es/deviceSDK/actions/getDeviceInfo.d.ts.map +1 -1
  253. package/lib-es/deviceSDK/actions/getDeviceInfo.js +2 -2
  254. package/lib-es/deviceSDK/actions/getDeviceInfo.js.map +1 -1
  255. package/lib-es/deviceSDK/actions/getLatestAvailableFirmware.d.ts +2 -1
  256. package/lib-es/deviceSDK/actions/getLatestAvailableFirmware.d.ts.map +1 -1
  257. package/lib-es/deviceSDK/actions/getLatestAvailableFirmware.js +6 -3
  258. package/lib-es/deviceSDK/actions/getLatestAvailableFirmware.js.map +1 -1
  259. package/lib-es/deviceSDK/actions/toggleOnboardingEarlyCheck.d.ts +2 -1
  260. package/lib-es/deviceSDK/actions/toggleOnboardingEarlyCheck.d.ts.map +1 -1
  261. package/lib-es/deviceSDK/actions/toggleOnboardingEarlyCheck.js +2 -2
  262. package/lib-es/deviceSDK/actions/toggleOnboardingEarlyCheck.js.map +1 -1
  263. package/lib-es/deviceSDK/actions/updateFirmware.d.ts +2 -1
  264. package/lib-es/deviceSDK/actions/updateFirmware.d.ts.map +1 -1
  265. package/lib-es/deviceSDK/actions/updateFirmware.js +4 -3
  266. package/lib-es/deviceSDK/actions/updateFirmware.js.map +1 -1
  267. package/lib-es/deviceSDK/hooks/useBatteryStatuses.d.ts +2 -1
  268. package/lib-es/deviceSDK/hooks/useBatteryStatuses.d.ts.map +1 -1
  269. package/lib-es/deviceSDK/hooks/useBatteryStatuses.js +3 -2
  270. package/lib-es/deviceSDK/hooks/useBatteryStatuses.js.map +1 -1
  271. package/lib-es/deviceSDK/hooks/useGetDeviceInfo.d.ts +2 -1
  272. package/lib-es/deviceSDK/hooks/useGetDeviceInfo.d.ts.map +1 -1
  273. package/lib-es/deviceSDK/hooks/useGetDeviceInfo.js +3 -3
  274. package/lib-es/deviceSDK/hooks/useGetDeviceInfo.js.map +1 -1
  275. package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts +2 -1
  276. package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.d.ts.map +1 -1
  277. package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.js +2 -1
  278. package/lib-es/deviceSDK/hooks/useGetLatestAvailableFirmware.js.map +1 -1
  279. package/lib-es/deviceSDK/hooks/useToggleOnboardingEarlyChecks.d.ts +2 -1
  280. package/lib-es/deviceSDK/hooks/useToggleOnboardingEarlyChecks.d.ts.map +1 -1
  281. package/lib-es/deviceSDK/hooks/useToggleOnboardingEarlyChecks.js +3 -2
  282. package/lib-es/deviceSDK/hooks/useToggleOnboardingEarlyChecks.js.map +1 -1
  283. package/lib-es/deviceSDK/hooks/useUpdateFirmware.d.ts +2 -1
  284. package/lib-es/deviceSDK/hooks/useUpdateFirmware.d.ts.map +1 -1
  285. package/lib-es/deviceSDK/hooks/useUpdateFirmware.js +3 -2
  286. package/lib-es/deviceSDK/hooks/useUpdateFirmware.js.map +1 -1
  287. package/lib-es/deviceSDK/tasks/core.d.ts +1 -1
  288. package/lib-es/deviceSDK/tasks/core.d.ts.map +1 -1
  289. package/lib-es/deviceSDK/tasks/core.js +1 -1
  290. package/lib-es/deviceSDK/tasks/core.js.map +1 -1
  291. package/lib-es/deviceSDK/tasks/getBatteryStatuses.d.ts +1 -0
  292. package/lib-es/deviceSDK/tasks/getBatteryStatuses.d.ts.map +1 -1
  293. package/lib-es/deviceSDK/tasks/getBatteryStatuses.js +2 -2
  294. package/lib-es/deviceSDK/tasks/getBatteryStatuses.js.map +1 -1
  295. package/lib-es/deviceSDK/tasks/getDeviceInfo.d.ts +2 -1
  296. package/lib-es/deviceSDK/tasks/getDeviceInfo.d.ts.map +1 -1
  297. package/lib-es/deviceSDK/tasks/getDeviceInfo.js +2 -2
  298. package/lib-es/deviceSDK/tasks/getDeviceInfo.js.map +1 -1
  299. package/lib-es/deviceSDK/tasks/getLatestFirmware.d.ts +1 -0
  300. package/lib-es/deviceSDK/tasks/getLatestFirmware.d.ts.map +1 -1
  301. package/lib-es/deviceSDK/tasks/getLatestFirmware.js +2 -2
  302. package/lib-es/deviceSDK/tasks/getLatestFirmware.js.map +1 -1
  303. package/lib-es/deviceSDK/tasks/toggleOnboardingEarlyCheck.d.ts +1 -0
  304. package/lib-es/deviceSDK/tasks/toggleOnboardingEarlyCheck.d.ts.map +1 -1
  305. package/lib-es/deviceSDK/tasks/toggleOnboardingEarlyCheck.js +2 -2
  306. package/lib-es/deviceSDK/tasks/toggleOnboardingEarlyCheck.js.map +1 -1
  307. package/lib-es/deviceSDK/tasks/updateFirmware.d.ts +1 -0
  308. package/lib-es/deviceSDK/tasks/updateFirmware.d.ts.map +1 -1
  309. package/lib-es/deviceSDK/tasks/updateFirmware.js +2 -2
  310. package/lib-es/deviceSDK/tasks/updateFirmware.js.map +1 -1
  311. package/lib-es/deviceSDK/transports/core.d.ts +1 -0
  312. package/lib-es/deviceSDK/transports/core.d.ts.map +1 -1
  313. package/lib-es/deviceSDK/transports/core.js +2 -2
  314. package/lib-es/deviceSDK/transports/core.js.map +1 -1
  315. package/lib-es/e2e/enum/Account.d.ts +0 -1
  316. package/lib-es/e2e/enum/Account.d.ts.map +1 -1
  317. package/lib-es/e2e/enum/Account.js +0 -1
  318. package/lib-es/e2e/enum/Account.js.map +1 -1
  319. package/lib-es/e2e/enum/Currency.d.ts +0 -1
  320. package/lib-es/e2e/enum/Currency.d.ts.map +1 -1
  321. package/lib-es/e2e/enum/Currency.js +1 -5
  322. package/lib-es/e2e/enum/Currency.js.map +1 -1
  323. package/lib-es/e2e/enum/ReceiveFundsOptions.d.ts +6 -0
  324. package/lib-es/e2e/enum/ReceiveFundsOptions.d.ts.map +1 -0
  325. package/lib-es/e2e/enum/ReceiveFundsOptions.js +5 -0
  326. package/lib-es/e2e/enum/ReceiveFundsOptions.js.map +1 -0
  327. package/lib-es/exchange/providers/swap.d.ts +1 -0
  328. package/lib-es/exchange/providers/swap.d.ts.map +1 -1
  329. package/lib-es/exchange/providers/swap.js +3 -0
  330. package/lib-es/exchange/providers/swap.js.map +1 -1
  331. package/lib-es/exchange/swap/hooks/v5/useFetchCurrencyAll.d.ts.map +1 -1
  332. package/lib-es/exchange/swap/hooks/v5/useFetchCurrencyAll.js +2 -3
  333. package/lib-es/exchange/swap/hooks/v5/useFetchCurrencyAll.js.map +1 -1
  334. package/lib-es/exchange/swap/hooks/v5/useFilteredProviders.d.ts.map +1 -1
  335. package/lib-es/exchange/swap/hooks/v5/useFilteredProviders.js +17 -12
  336. package/lib-es/exchange/swap/hooks/v5/useFilteredProviders.js.map +1 -1
  337. package/lib-es/hw/actions/app.d.ts.map +1 -1
  338. package/lib-es/hw/actions/app.js +2 -1
  339. package/lib-es/hw/actions/app.js.map +1 -1
  340. package/lib-es/hw/actions/customLockScreenLoad.d.ts +1 -1
  341. package/lib-es/hw/actions/customLockScreenLoad.d.ts.map +1 -1
  342. package/lib-es/hw/actions/customLockScreenLoad.js +2 -0
  343. package/lib-es/hw/actions/customLockScreenLoad.js.map +1 -1
  344. package/lib-es/hw/actions/implementations.d.ts +1 -0
  345. package/lib-es/hw/actions/implementations.d.ts.map +1 -1
  346. package/lib-es/hw/actions/implementations.js +12 -2
  347. package/lib-es/hw/actions/implementations.js.map +1 -1
  348. package/lib-es/hw/connectApp.d.ts +2 -1
  349. package/lib-es/hw/connectApp.d.ts.map +1 -1
  350. package/lib-es/hw/connectApp.js +4 -4
  351. package/lib-es/hw/connectApp.js.map +1 -1
  352. package/lib-es/hw/connectManager.d.ts +2 -1
  353. package/lib-es/hw/connectManager.d.ts.map +1 -1
  354. package/lib-es/hw/connectManager.js +4 -4
  355. package/lib-es/hw/connectManager.js.map +1 -1
  356. package/lib-es/hw/customLockScreenFetch.d.ts +2 -1
  357. package/lib-es/hw/customLockScreenFetch.d.ts.map +1 -1
  358. package/lib-es/hw/customLockScreenFetch.js +2 -2
  359. package/lib-es/hw/customLockScreenFetch.js.map +1 -1
  360. package/lib-es/hw/customLockScreenLoad.d.ts +2 -1
  361. package/lib-es/hw/customLockScreenLoad.d.ts.map +1 -1
  362. package/lib-es/hw/customLockScreenLoad.js +2 -2
  363. package/lib-es/hw/customLockScreenLoad.js.map +1 -1
  364. package/lib-es/hw/deviceAccess.d.ts +3 -3
  365. package/lib-es/hw/deviceAccess.d.ts.map +1 -1
  366. package/lib-es/hw/deviceAccess.js +2 -1
  367. package/lib-es/hw/deviceAccess.js.map +1 -1
  368. package/lib-es/hw/getGenuineCheckFromDeviceId.d.ts +2 -1
  369. package/lib-es/hw/getGenuineCheckFromDeviceId.d.ts.map +1 -1
  370. package/lib-es/hw/getGenuineCheckFromDeviceId.js +2 -2
  371. package/lib-es/hw/getGenuineCheckFromDeviceId.js.map +1 -1
  372. package/lib-es/hw/getOnboardingStatePolling.d.ts +2 -1
  373. package/lib-es/hw/getOnboardingStatePolling.d.ts.map +1 -1
  374. package/lib-es/hw/getOnboardingStatePolling.js +5 -2
  375. package/lib-es/hw/getOnboardingStatePolling.js.map +1 -1
  376. package/lib-es/hw/hooks/useGenuineCheck.d.ts +2 -1
  377. package/lib-es/hw/hooks/useGenuineCheck.d.ts.map +1 -1
  378. package/lib-es/hw/hooks/useGenuineCheck.js +3 -1
  379. package/lib-es/hw/hooks/useGenuineCheck.js.map +1 -1
  380. package/lib-es/hw/index.d.ts +6 -2
  381. package/lib-es/hw/index.d.ts.map +1 -1
  382. package/lib-es/hw/index.js +6 -6
  383. package/lib-es/hw/index.js.map +1 -1
  384. package/lib-es/hw/installLanguage.d.ts +2 -1
  385. package/lib-es/hw/installLanguage.d.ts.map +1 -1
  386. package/lib-es/hw/installLanguage.js +2 -2
  387. package/lib-es/hw/installLanguage.js.map +1 -1
  388. package/lib-es/market/hooks/useMarketDataProvider.js +1 -0
  389. package/lib-es/market/hooks/useMarketDataProvider.js.map +1 -1
  390. package/lib-es/market/utils/types.d.ts +1 -0
  391. package/lib-es/market/utils/types.d.ts.map +1 -1
  392. package/lib-es/market/utils/types.js.map +1 -1
  393. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  394. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +2 -0
  395. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  396. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.d.ts +1 -5
  397. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.d.ts.map +1 -1
  398. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.js +2 -2
  399. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.js.map +1 -1
  400. package/lib-es/modularDrawer/modules/createNetworkConfiguration.d.ts +1 -1
  401. package/lib-es/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
  402. package/lib-es/modularDrawer/modules/createNetworkConfiguration.js +1 -2
  403. package/lib-es/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
  404. package/lib-es/modularDrawer/utils/{groupCurrenciesByProvider.d.ts → groupCurrenciesByAsset.d.ts} +2 -2
  405. package/lib-es/modularDrawer/utils/groupCurrenciesByAsset.d.ts.map +1 -0
  406. package/lib-es/modularDrawer/utils/{groupCurrenciesByProvider.js → groupCurrenciesByAsset.js} +5 -5
  407. package/lib-es/modularDrawer/utils/groupCurrenciesByAsset.js.map +1 -0
  408. package/lib-es/modularDrawer/utils/index.d.ts +1 -1
  409. package/lib-es/modularDrawer/utils/index.d.ts.map +1 -1
  410. package/lib-es/modularDrawer/utils/index.js +1 -1
  411. package/lib-es/modularDrawer/utils/index.js.map +1 -1
  412. package/lib-es/modularDrawer/utils/type.d.ts +0 -5
  413. package/lib-es/modularDrawer/utils/type.d.ts.map +1 -1
  414. package/lib-es/onboarding/hooks/useOnboardingStatePolling.d.ts.map +1 -1
  415. package/lib-es/onboarding/hooks/useOnboardingStatePolling.js +1 -0
  416. package/lib-es/onboarding/hooks/useOnboardingStatePolling.js.map +1 -1
  417. package/lib-es/platform/filters.d.ts +1 -2
  418. package/lib-es/platform/filters.d.ts.map +1 -1
  419. package/lib-es/platform/filters.js +0 -15
  420. package/lib-es/platform/filters.js.map +1 -1
  421. package/lib-es/platform/helpers.d.ts +1 -5
  422. package/lib-es/platform/helpers.d.ts.map +1 -1
  423. package/lib-es/platform/helpers.js +1 -30
  424. package/lib-es/platform/helpers.js.map +1 -1
  425. package/lib-es/platform/react.d.ts +2 -3
  426. package/lib-es/platform/react.d.ts.map +1 -1
  427. package/lib-es/platform/react.js +67 -16
  428. package/lib-es/platform/react.js.map +1 -1
  429. package/lib-es/platform/types.d.ts +3 -3
  430. package/lib-es/platform/types.d.ts.map +1 -1
  431. package/lib-es/utils/getAccountTuplesForCurrency.d.ts +1 -1
  432. package/lib-es/utils/getAccountTuplesForCurrency.d.ts.map +1 -1
  433. package/lib-es/utils/getAccountTuplesForCurrency.js +2 -3
  434. package/lib-es/utils/getAccountTuplesForCurrency.js.map +1 -1
  435. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  436. package/lib-es/wallet-api/Exchange/server.js +5 -4
  437. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  438. package/lib-es/wallet-api/converters.d.ts +1 -0
  439. package/lib-es/wallet-api/converters.d.ts.map +1 -1
  440. package/lib-es/wallet-api/converters.js +5 -1
  441. package/lib-es/wallet-api/converters.js.map +1 -1
  442. package/lib-es/wallet-api/react.d.ts +6 -11
  443. package/lib-es/wallet-api/react.d.ts.map +1 -1
  444. package/lib-es/wallet-api/react.js +289 -131
  445. package/lib-es/wallet-api/react.js.map +1 -1
  446. package/lib-es/wallet-api/tracking.d.ts +6 -0
  447. package/lib-es/wallet-api/tracking.d.ts.map +1 -1
  448. package/lib-es/wallet-api/tracking.js +20 -0
  449. package/lib-es/wallet-api/tracking.js.map +1 -1
  450. package/lib-es/wallet-api/types.d.ts +3 -0
  451. package/lib-es/wallet-api/types.d.ts.map +1 -1
  452. package/lib-es/wallet-api/useDappLogic.d.ts.map +1 -1
  453. package/lib-es/wallet-api/useDappLogic.js +62 -77
  454. package/lib-es/wallet-api/useDappLogic.js.map +1 -1
  455. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.d.ts +6 -0
  456. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.d.ts.map +1 -1
  457. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.js +11 -2
  458. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.js.map +1 -1
  459. package/package.json +56 -56
  460. package/src/__tests__/test-helpers/bridge.ts +0 -2
  461. package/src/bridge/generic-alpaca/getAccountShape.ts +15 -12
  462. package/src/bridge/generic-alpaca/tests/getAccountShape.test.ts +142 -101
  463. package/src/currencies/helpers.ts +1 -42
  464. package/src/dada-client/hooks/useAssetsData.ts +1 -0
  465. package/src/deposit/type.ts +0 -21
  466. package/src/deviceSDK/actions/getBatteryStatuses.ts +3 -1
  467. package/src/deviceSDK/actions/getDeviceInfo.ts +3 -2
  468. package/src/deviceSDK/actions/getLatestAvailableFirmware.test.ts +31 -0
  469. package/src/deviceSDK/actions/getLatestAvailableFirmware.ts +7 -2
  470. package/src/deviceSDK/actions/toggleOnboardingEarlyCheck.ts +3 -1
  471. package/src/deviceSDK/actions/updateFirmware.ts +5 -2
  472. package/src/deviceSDK/hooks/useBatteryStatuses.test.ts +3 -1
  473. package/src/deviceSDK/hooks/useBatteryStatuses.ts +4 -1
  474. package/src/deviceSDK/hooks/useGetDeviceInfo.ts +4 -2
  475. package/src/deviceSDK/hooks/useGetLatestAvailableFirmware.ts +3 -0
  476. package/src/deviceSDK/hooks/useToggleOnboardingEarlyChecks.test.ts +2 -0
  477. package/src/deviceSDK/hooks/useToggleOnboardingEarlyChecks.ts +4 -1
  478. package/src/deviceSDK/hooks/useUpdateFirmware.ts +4 -1
  479. package/src/deviceSDK/tasks/core.test.ts +20 -0
  480. package/src/deviceSDK/tasks/core.ts +2 -1
  481. package/src/deviceSDK/tasks/getBatteryStatuses.ts +6 -1
  482. package/src/deviceSDK/tasks/getDeviceInfo.ts +6 -2
  483. package/src/deviceSDK/tasks/getLatestFirmware.ts +6 -1
  484. package/src/deviceSDK/tasks/toggleOnboardingEarlyCheck.test.ts +3 -0
  485. package/src/deviceSDK/tasks/toggleOnboardingEarlyCheck.ts +6 -1
  486. package/src/deviceSDK/tasks/updateFirmware.ts +6 -1
  487. package/src/deviceSDK/transports/core.ts +6 -3
  488. package/src/e2e/enum/Account.ts +0 -6
  489. package/src/e2e/enum/Currency.ts +1 -5
  490. package/src/e2e/enum/ReceiveFundsOptions.ts +7 -0
  491. package/src/exchange/providers/swap.ts +4 -0
  492. package/src/exchange/swap/hooks/v5/useFetchCurrencyAll.ts +2 -3
  493. package/src/exchange/swap/hooks/v5/useFilteredProviders.ts +37 -12
  494. package/src/families/stellar/__snapshots__/bridge.integration.test.ts.snap +84 -12
  495. package/src/hw/actions/app.ts +2 -1
  496. package/src/hw/actions/customLockScreenLoad.ts +6 -2
  497. package/src/hw/actions/implementations.ts +17 -3
  498. package/src/hw/connectApp.ts +12 -5
  499. package/src/hw/connectManager.ts +13 -6
  500. package/src/hw/customLockScreenFetch.ts +10 -2
  501. package/src/hw/customLockScreenLoad.test.ts +28 -3
  502. package/src/hw/customLockScreenLoad.ts +10 -2
  503. package/src/hw/deviceAccess.ts +4 -3
  504. package/src/hw/getGenuineCheckFromDeviceId.test.ts +4 -0
  505. package/src/hw/getGenuineCheckFromDeviceId.ts +6 -1
  506. package/src/hw/getOnboardingStatePolling.test.ts +34 -0
  507. package/src/hw/getOnboardingStatePolling.ts +6 -3
  508. package/src/hw/hooks/useGenuineCheck.test.ts +37 -0
  509. package/src/hw/hooks/useGenuineCheck.ts +4 -0
  510. package/src/hw/index.test.ts +27 -6
  511. package/src/hw/index.ts +15 -8
  512. package/src/hw/installLanguage.ts +6 -1
  513. package/src/market/hooks/useMarketDataProvider.ts +1 -0
  514. package/src/market/utils/types.ts +1 -0
  515. package/src/modularDrawer/hooks/__test__/useAssetAccountCounts.test.ts +0 -5
  516. package/src/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.ts +2 -0
  517. package/src/modularDrawer/hooks/useNetworkAccountCounts.tsx +1 -6
  518. package/src/modularDrawer/modules/__test__/createAssetConfiguration.test.tsx +2 -2
  519. package/src/modularDrawer/modules/createNetworkConfiguration.ts +1 -2
  520. package/src/modularDrawer/utils/__tests__/{groupCurrenciesByProvider.test.ts → groupCurrenciesByAsset.test.ts} +6 -6
  521. package/src/modularDrawer/utils/{groupCurrenciesByProvider.ts → groupCurrenciesByAsset.ts} +4 -4
  522. package/src/modularDrawer/utils/index.ts +1 -1
  523. package/src/modularDrawer/utils/type.ts +0 -5
  524. package/src/onboarding/hooks/useOnboardingStatePolling.ts +1 -0
  525. package/src/platform/filters.ts +1 -23
  526. package/src/platform/helpers.ts +2 -49
  527. package/src/platform/react.ts +86 -22
  528. package/src/platform/types.ts +1 -1
  529. package/src/utils/__tests__/getAccountTuplesForCurrency.test.ts +0 -30
  530. package/src/utils/getAccountTuplesForCurrency.ts +1 -6
  531. package/src/wallet-api/Exchange/server.test.ts +0 -5
  532. package/src/wallet-api/Exchange/server.ts +7 -6
  533. package/src/wallet-api/converters.ts +6 -1
  534. package/src/wallet-api/react.ts +310 -137
  535. package/src/wallet-api/tracking.ts +22 -0
  536. package/src/wallet-api/types.ts +5 -0
  537. package/src/wallet-api/useDappLogic.ts +91 -106
  538. package/src/wallet-api/utils/deriveAccountIdForManifest.ts +14 -2
  539. package/lib/deposit/helper.d.ts +0 -8
  540. package/lib/deposit/helper.d.ts.map +0 -1
  541. package/lib/deposit/helper.js +0 -125
  542. package/lib/deposit/helper.js.map +0 -1
  543. package/lib/deposit/index.d.ts +0 -3
  544. package/lib/deposit/index.d.ts.map +0 -1
  545. package/lib/deposit/index.js +0 -6
  546. package/lib/deposit/index.js.map +0 -1
  547. package/lib/deposit/mock.d.ts +0 -75
  548. package/lib/deposit/mock.d.ts.map +0 -1
  549. package/lib/deposit/mock.js +0 -15111
  550. package/lib/deposit/mock.js.map +0 -1
  551. package/lib/deposit/useGroupedCurrenciesByProvider.hook.d.ts +0 -3
  552. package/lib/deposit/useGroupedCurrenciesByProvider.hook.d.ts.map +0 -1
  553. package/lib/deposit/useGroupedCurrenciesByProvider.hook.js +0 -40
  554. package/lib/deposit/useGroupedCurrenciesByProvider.hook.js.map +0 -1
  555. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts +0 -22
  556. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts.map +0 -1
  557. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +0 -41
  558. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +0 -1
  559. package/lib/modularDrawer/utils/currencyUtils.d.ts +0 -10
  560. package/lib/modularDrawer/utils/currencyUtils.d.ts.map +0 -1
  561. package/lib/modularDrawer/utils/currencyUtils.js +0 -74
  562. package/lib/modularDrawer/utils/currencyUtils.js.map +0 -1
  563. package/lib/modularDrawer/utils/groupCurrenciesByProvider.d.ts.map +0 -1
  564. package/lib/modularDrawer/utils/groupCurrenciesByProvider.js.map +0 -1
  565. package/lib-es/deposit/helper.d.ts +0 -8
  566. package/lib-es/deposit/helper.d.ts.map +0 -1
  567. package/lib-es/deposit/helper.js +0 -117
  568. package/lib-es/deposit/helper.js.map +0 -1
  569. package/lib-es/deposit/index.d.ts +0 -3
  570. package/lib-es/deposit/index.d.ts.map +0 -1
  571. package/lib-es/deposit/index.js +0 -3
  572. package/lib-es/deposit/index.js.map +0 -1
  573. package/lib-es/deposit/mock.d.ts +0 -75
  574. package/lib-es/deposit/mock.d.ts.map +0 -1
  575. package/lib-es/deposit/mock.js +0 -15108
  576. package/lib-es/deposit/mock.js.map +0 -1
  577. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.d.ts +0 -3
  578. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.d.ts.map +0 -1
  579. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.js +0 -36
  580. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.js.map +0 -1
  581. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts +0 -22
  582. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts.map +0 -1
  583. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +0 -38
  584. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +0 -1
  585. package/lib-es/modularDrawer/utils/currencyUtils.d.ts +0 -10
  586. package/lib-es/modularDrawer/utils/currencyUtils.d.ts.map +0 -1
  587. package/lib-es/modularDrawer/utils/currencyUtils.js +0 -65
  588. package/lib-es/modularDrawer/utils/currencyUtils.js.map +0 -1
  589. package/lib-es/modularDrawer/utils/groupCurrenciesByProvider.d.ts.map +0 -1
  590. package/lib-es/modularDrawer/utils/groupCurrenciesByProvider.js.map +0 -1
  591. package/src/currencies/helpers.test.ts +0 -20
  592. package/src/deposit/deposit.integration.test.ts +0 -88
  593. package/src/deposit/deposit.test.ts +0 -684
  594. package/src/deposit/helper.ts +0 -143
  595. package/src/deposit/index.ts +0 -3
  596. package/src/deposit/mock.ts +0 -15112
  597. package/src/deposit/useGroupedCurrenciesByProvider.hook.ts +0 -46
  598. package/src/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.ts +0 -49
  599. package/src/modularDrawer/modules/__test__/createNetworkConfiguration.test.ts +0 -342
  600. package/src/modularDrawer/utils/__tests__/currencyUtils.test.ts +0 -126
  601. package/src/modularDrawer/utils/currencyUtils.ts +0 -95
@@ -1,684 +0,0 @@
1
- import {
2
- groupCurrenciesByProvider,
3
- searchByNameOrTicker,
4
- searchByProviderId,
5
- loadCurrenciesByProvider,
6
- getTokenOrCryptoCurrencyById,
7
- } from "./helper";
8
- import { MOCK_TOKENS_ONLY, MOCK_WITH_TOKEN_AND_CURRENCY_ASSET, MOCK_IDS, MOCK_POL } from "./mock";
9
- import { MappedAsset } from "./type";
10
- import {
11
- getCryptoCurrencyById,
12
- setSupportedCurrencies,
13
- sortCurrenciesByIds,
14
- } from "../currencies/index";
15
- import { isCurrencySupported, listSupportedCurrencies, listTokens } from "../currencies";
16
- import { CryptoOrTokenCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
17
- import { getCryptoAssetsStore } from "../bridge/crypto-assets/index";
18
- import { initializeLegacyTokens } from "@ledgerhq/cryptoassets/legacy/legacy-data";
19
- import { addTokens } from "@ledgerhq/cryptoassets/legacy/legacy-utils";
20
-
21
- const TOKEN_ONLY_ASSETS = MOCK_TOKENS_ONLY as MappedAsset[];
22
-
23
- const listSupportedTokens = () => listTokens().filter(t => isCurrencySupported(t.parentCurrency));
24
-
25
- describe("Deposit logic", () => {
26
- beforeAll(() => {
27
- initializeLegacyTokens(addTokens);
28
- });
29
-
30
- afterEach(() => {
31
- setSupportedCurrencies([]);
32
- });
33
-
34
- describe("searchByProviderId", () => {
35
- test("should find assets by provider ID", () => {
36
- const result = searchByProviderId(TOKEN_ONLY_ASSETS, "tether");
37
- expect(result).toEqual(TOKEN_ONLY_ASSETS);
38
- });
39
-
40
- test("should return empty array for non-existent provider ID", () => {
41
- const result = searchByProviderId(TOKEN_ONLY_ASSETS, "non-existent-provider");
42
- expect(result).toEqual([]);
43
- });
44
-
45
- test("should handle case insensitive search", () => {
46
- const result = searchByProviderId(TOKEN_ONLY_ASSETS, "TETHER");
47
- expect(result).toEqual(TOKEN_ONLY_ASSETS);
48
- });
49
-
50
- test("should handle empty assets list", () => {
51
- const result = searchByProviderId([], "tether");
52
- expect(result).toEqual([]);
53
- });
54
-
55
- test("should handle empty provider ID", () => {
56
- const result = searchByProviderId(TOKEN_ONLY_ASSETS, "");
57
- expect(result).toEqual([]);
58
- });
59
-
60
- test("should handle special characters in provider ID", () => {
61
- const mockAssets = [
62
- { ...TOKEN_ONLY_ASSETS[0], providerId: "test-provider_123" },
63
- ] as MappedAsset[];
64
- const result = searchByProviderId(mockAssets, "test-provider_123");
65
- expect(result).toHaveLength(1);
66
- });
67
- });
68
-
69
- describe("searchByNameOrTicker", () => {
70
- test("should find assets by name or ticker", () => {
71
- const result = searchByNameOrTicker(TOKEN_ONLY_ASSETS, "usdt");
72
- expect(result.length).toBeGreaterThan(0);
73
- });
74
-
75
- test("should handle case insensitive search", () => {
76
- const result = searchByNameOrTicker(TOKEN_ONLY_ASSETS, "USDT");
77
- expect(result.length).toBeGreaterThan(0);
78
- });
79
-
80
- test("should find partial matches", () => {
81
- const result = searchByNameOrTicker(TOKEN_ONLY_ASSETS, "usd");
82
- expect(result.length).toBeGreaterThan(0);
83
- });
84
-
85
- test("should return empty array for non-matching search", () => {
86
- const result = searchByNameOrTicker(TOKEN_ONLY_ASSETS, "non-existent-token");
87
- expect(result).toEqual([]);
88
- });
89
-
90
- test("should handle empty search term", () => {
91
- const result = searchByNameOrTicker(TOKEN_ONLY_ASSETS, "");
92
- expect(result).toEqual(TOKEN_ONLY_ASSETS);
93
- });
94
-
95
- test("should handle empty assets list", () => {
96
- const result = searchByNameOrTicker([], "usdt");
97
- expect(result).toEqual([]);
98
- });
99
-
100
- test("should search in both name and ticker fields", () => {
101
- const mockAssets = [
102
- { ...TOKEN_ONLY_ASSETS[0], name: "Test Token", ticker: "TTK" },
103
- { ...TOKEN_ONLY_ASSETS[0], name: "Another Token", ticker: "USDT" },
104
- ] as MappedAsset[];
105
-
106
- const nameResult = searchByNameOrTicker(mockAssets, "Test");
107
- const tickerResult = searchByNameOrTicker(mockAssets, "USDT");
108
-
109
- expect(nameResult).toHaveLength(1);
110
- expect(tickerResult).toHaveLength(1);
111
- });
112
- });
113
-
114
- describe("groupCurrenciesByProvider", () => {
115
- test("should group currencies by provider", async () => {
116
- const currencies = (
117
- await Promise.all(
118
- TOKEN_ONLY_ASSETS.map(asset => getCryptoAssetsStore().findTokenById(asset.ledgerId)),
119
- )
120
- ).filter((t): t is TokenCurrency => t !== undefined);
121
- const { currenciesByProvider } = groupCurrenciesByProvider(TOKEN_ONLY_ASSETS, currencies);
122
- expect(currenciesByProvider).toEqual([
123
- {
124
- providerId: "tether",
125
- currenciesByNetwork: currencies,
126
- },
127
- ]);
128
- });
129
-
130
- test("should handle POL assets correctly", async () => {
131
- const currenciesPol = (
132
- await Promise.all(
133
- MOCK_POL.map(asset =>
134
- asset.$type === "Token"
135
- ? getCryptoAssetsStore().findTokenById(asset.ledgerId)
136
- : Promise.resolve(getCryptoCurrencyById(asset.ledgerId)),
137
- ),
138
- )
139
- ).filter((c): c is CryptoOrTokenCurrency => c !== undefined);
140
- const { currenciesByProvider: currenciesByProviderBis, sortedCryptoCurrencies } =
141
- groupCurrenciesByProvider(MOCK_POL as MappedAsset[], currenciesPol);
142
- expect(currenciesByProviderBis).toEqual([
143
- {
144
- providerId: "matic-network",
145
- currenciesByNetwork: currenciesPol,
146
- },
147
- ]);
148
-
149
- expect(sortedCryptoCurrencies).toEqual([currenciesPol[1]]);
150
- });
151
-
152
- test("should handle empty assets array", async () => {
153
- const currencies = (
154
- await Promise.all(
155
- TOKEN_ONLY_ASSETS.map(asset => getCryptoAssetsStore().findTokenById(asset.ledgerId)),
156
- )
157
- ).filter((t): t is TokenCurrency => t !== undefined);
158
- const { currenciesByProvider, sortedCryptoCurrencies } = groupCurrenciesByProvider(
159
- [],
160
- currencies,
161
- );
162
- expect(currenciesByProvider).toEqual([]);
163
- expect(sortedCryptoCurrencies).toEqual([]);
164
- });
165
-
166
- test("should handle empty currencies array", () => {
167
- const { currenciesByProvider, sortedCryptoCurrencies } = groupCurrenciesByProvider(
168
- TOKEN_ONLY_ASSETS,
169
- [],
170
- );
171
- expect(currenciesByProvider).toEqual([]);
172
- expect(sortedCryptoCurrencies).toEqual([]);
173
- });
174
-
175
- test("should handle currencies without corresponding assets", () => {
176
- setSupportedCurrencies(["bitcoin"]);
177
- const btcCurrency = getCryptoCurrencyById("bitcoin");
178
- const { currenciesByProvider, sortedCryptoCurrencies } = groupCurrenciesByProvider(
179
- TOKEN_ONLY_ASSETS,
180
- [btcCurrency],
181
- );
182
- expect(currenciesByProvider).toEqual([]);
183
- expect(sortedCryptoCurrencies).toEqual([]);
184
- });
185
-
186
- test("should prioritize crypto currencies over tokens in sortedCryptoCurrencies", async () => {
187
- const mockAssets = [
188
- { ...TOKEN_ONLY_ASSETS[0], providerId: "test-provider" },
189
- ] as MappedAsset[];
190
-
191
- setSupportedCurrencies(["ethereum"]);
192
- const ethCurrency = getCryptoCurrencyById("ethereum");
193
- const tokenCurrency = await getCryptoAssetsStore().findTokenById(
194
- TOKEN_ONLY_ASSETS[0].ledgerId,
195
- );
196
- if (!tokenCurrency) throw new Error("Token not found");
197
-
198
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(mockAssets, [
199
- tokenCurrency,
200
- ethCurrency,
201
- ]);
202
-
203
- expect(sortedCryptoCurrencies.length).toBeGreaterThan(0);
204
- });
205
-
206
- test("should handle duplicate provider IDs correctly", async () => {
207
- const duplicateAssets = [
208
- TOKEN_ONLY_ASSETS[0],
209
- { ...TOKEN_ONLY_ASSETS[0], ledgerId: "different-id" },
210
- ] as MappedAsset[];
211
-
212
- const token = await getCryptoAssetsStore().findTokenById(TOKEN_ONLY_ASSETS[0].ledgerId);
213
- if (!token) throw new Error("Token not found");
214
- const currencies = [token];
215
- const { currenciesByProvider } = groupCurrenciesByProvider(duplicateAssets, currencies);
216
-
217
- expect(currenciesByProvider).toHaveLength(1);
218
- expect(currenciesByProvider[0].currenciesByNetwork).toHaveLength(1);
219
- });
220
- });
221
-
222
- describe("getTokenOrCryptoCurrencyById", () => {
223
- test("should return crypto currency by ID", async () => {
224
- const result = await getTokenOrCryptoCurrencyById("bitcoin");
225
- expect(result).toBeDefined();
226
- expect(result.type).toBe("CryptoCurrency");
227
- });
228
-
229
- test("should return token by ID", async () => {
230
- const result = await getTokenOrCryptoCurrencyById("ethereum/erc20/usd_tether__erc20_");
231
- expect(result).toBeDefined();
232
- expect(result.type).toBe("TokenCurrency");
233
- });
234
-
235
- test("should handle invalid crypto currency ID", async () => {
236
- await expect(getTokenOrCryptoCurrencyById("invalid-crypto-id")).rejects.toThrow();
237
- });
238
-
239
- test("should handle invalid token ID", async () => {
240
- await expect(getTokenOrCryptoCurrencyById("invalid/token/id")).rejects.toThrow();
241
- });
242
-
243
- test("should handle empty ID", async () => {
244
- await expect(getTokenOrCryptoCurrencyById("")).rejects.toThrow();
245
- });
246
- });
247
-
248
- describe("loadCurrenciesByProvider", () => {
249
- test("should load currencies by provider successfully", async () => {
250
- setSupportedCurrencies(["ethereum", "bitcoin"]);
251
- const supportedCurrencies = listSupportedCurrencies() as CryptoOrTokenCurrency[];
252
-
253
- const result = await loadCurrenciesByProvider(supportedCurrencies);
254
-
255
- expect(result).toBeDefined();
256
- expect(result.currenciesByProvider).toBeDefined();
257
- expect(result.sortedCryptoCurrencies).toBeDefined();
258
- expect(Array.isArray(result.currenciesByProvider)).toBe(true);
259
- expect(Array.isArray(result.sortedCryptoCurrencies)).toBe(true);
260
- });
261
-
262
- test("should handle empty currencies array", async () => {
263
- const result = await loadCurrenciesByProvider([]);
264
-
265
- expect(result).toBeDefined();
266
- expect(result.currenciesByProvider).toEqual([]);
267
- expect(result.sortedCryptoCurrencies).toEqual([]);
268
- });
269
-
270
- test("should handle currencies with no corresponding assets", async () => {
271
- setSupportedCurrencies(["bitcoin"]);
272
- const supportedCurrencies = [getCryptoCurrencyById("bitcoin")];
273
-
274
- const result = await loadCurrenciesByProvider(supportedCurrencies);
275
-
276
- expect(result).toBeDefined();
277
-
278
- expect(Array.isArray(result.currenciesByProvider)).toBe(true);
279
- expect(Array.isArray(result.sortedCryptoCurrencies)).toBe(true);
280
- });
281
- });
282
-
283
- describe("Currency support scenarios", () => {
284
- it("should return Arbitrum and not Optimism in the sortedCryptoCurrencies", () => {
285
- setSupportedCurrencies(["arbitrum", "arbitrum_sepolia"]);
286
- const currencies = sortCurrenciesByIds(
287
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
288
- MOCK_IDS,
289
- );
290
-
291
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(
292
- MOCK_WITH_TOKEN_AND_CURRENCY_ASSET as MappedAsset[],
293
- currencies,
294
- );
295
- expect(sortedCryptoCurrencies).toEqual([getCryptoCurrencyById("arbitrum")]);
296
- });
297
-
298
- it("should return Optimism only in the sortedCryptoCurrencies", () => {
299
- setSupportedCurrencies(["optimism", "optimism_sepolia"]);
300
- const currencies = sortCurrenciesByIds(
301
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
302
- MOCK_IDS,
303
- );
304
-
305
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(
306
- MOCK_WITH_TOKEN_AND_CURRENCY_ASSET as MappedAsset[],
307
- currencies,
308
- );
309
- expect(sortedCryptoCurrencies).toEqual([getCryptoCurrencyById("optimism")]);
310
- });
311
-
312
- it("should return currencies based on what's actually supported and available in mock data", () => {
313
- setSupportedCurrencies(["optimism", "optimism_sepolia", "arbitrum", "arbitrum_sepolia"]);
314
- const currencies = sortCurrenciesByIds(
315
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
316
- MOCK_IDS,
317
- );
318
-
319
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(
320
- MOCK_WITH_TOKEN_AND_CURRENCY_ASSET as MappedAsset[],
321
- currencies,
322
- );
323
-
324
- expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
325
- expect(sortedCryptoCurrencies.length).toBeGreaterThanOrEqual(0);
326
-
327
- sortedCryptoCurrencies.forEach(currency => {
328
- expect(["optimism", "arbitrum"].includes(currency.id)).toBe(true);
329
- });
330
- });
331
- });
332
-
333
- describe("Token-only scenarios", () => {
334
- it("should return only Polygon token while its currency is supported in the list", async () => {
335
- setSupportedCurrencies(["polygon"]);
336
-
337
- const currencies = sortCurrenciesByIds(
338
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
339
- MOCK_IDS,
340
- );
341
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(
342
- MOCK_TOKENS_ONLY as MappedAsset[],
343
- currencies,
344
- );
345
- expect(sortedCryptoCurrencies).toEqual([
346
- await getCryptoAssetsStore().findTokenById("polygon/erc20/(pos)_tether_usd"),
347
- ]);
348
- });
349
-
350
- it("should return only BSC token while its currency is supported in the list", async () => {
351
- setSupportedCurrencies(["bsc"]);
352
-
353
- const currencies = sortCurrenciesByIds(
354
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
355
- MOCK_IDS,
356
- );
357
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(
358
- MOCK_TOKENS_ONLY as MappedAsset[],
359
- currencies,
360
- );
361
- expect(sortedCryptoCurrencies).toEqual([
362
- await getCryptoAssetsStore().findTokenById("bsc/bep20/binance-peg_bsc-usd"),
363
- ]);
364
- });
365
-
366
- it("should return tokens that are actually supported based on mock data", () => {
367
- setSupportedCurrencies(["ethereum", "bsc", "polygon"]);
368
-
369
- const currencies = sortCurrenciesByIds(
370
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
371
- MOCK_IDS,
372
- );
373
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(
374
- MOCK_TOKENS_ONLY as MappedAsset[],
375
- currencies,
376
- );
377
-
378
- expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
379
- expect(sortedCryptoCurrencies.length).toBeGreaterThanOrEqual(0);
380
-
381
- sortedCryptoCurrencies.forEach(currency => {
382
- expect(currency.type).toBe("TokenCurrency");
383
- expect(["ethereum", "polygon", "bsc"].some(network => currency.id.includes(network))).toBe(
384
- true,
385
- );
386
- });
387
- });
388
-
389
- it("should return specific Ethereum and Polygon USDT tokens when both currencies are supported", () => {
390
- setSupportedCurrencies(["ethereum", "polygon"]);
391
-
392
- const currencies = sortCurrenciesByIds(
393
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
394
- MOCK_IDS,
395
- );
396
-
397
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(
398
- MOCK_TOKENS_ONLY as MappedAsset[],
399
- currencies,
400
- );
401
-
402
- expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
403
- expect(sortedCryptoCurrencies.length).toBeGreaterThan(0);
404
-
405
- const tokenIds = sortedCryptoCurrencies.map(currency => currency.id);
406
-
407
- expect(tokenIds).toContain("ethereum/erc20/usd_tether__erc20_");
408
-
409
- sortedCryptoCurrencies.forEach(currency => {
410
- expect(currency.type).toBe("TokenCurrency");
411
- expect(currency.id).toMatch(/tether|usdt/i);
412
- });
413
- });
414
-
415
- it("should return all supported USDT tokens when multiple currencies are enabled", () => {
416
- setSupportedCurrencies(["ethereum", "bsc", "polygon"]);
417
-
418
- const currencies = sortCurrenciesByIds(
419
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
420
- MOCK_IDS,
421
- );
422
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(
423
- MOCK_TOKENS_ONLY as MappedAsset[],
424
- currencies,
425
- );
426
-
427
- expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
428
- expect(sortedCryptoCurrencies.length).toBeGreaterThan(0);
429
-
430
- const tokenIds = sortedCryptoCurrencies.map(currency => currency.id);
431
-
432
- expect(tokenIds).toContain("ethereum/erc20/usd_tether__erc20_");
433
-
434
- sortedCryptoCurrencies.forEach(currency => {
435
- expect(currency.type).toBe("TokenCurrency");
436
- });
437
-
438
- const hasExpectedNetworks = sortedCryptoCurrencies.every(currency =>
439
- ["ethereum", "polygon", "bsc"].some(network => currency.id.includes(network)),
440
- );
441
- expect(hasExpectedNetworks).toBe(true);
442
- });
443
-
444
- it("should return empty array when no supported currencies", () => {
445
- setSupportedCurrencies([]);
446
- const currencies = sortCurrenciesByIds(
447
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
448
- MOCK_IDS,
449
- );
450
-
451
- const { sortedCryptoCurrencies } = groupCurrenciesByProvider(
452
- [...TOKEN_ONLY_ASSETS, ...MOCK_WITH_TOKEN_AND_CURRENCY_ASSET] as MappedAsset[],
453
- currencies,
454
- );
455
- expect(sortedCryptoCurrencies).toEqual([]);
456
- });
457
- });
458
-
459
- describe("Comprehensive integration tests", () => {
460
- it("should handle all supported currencies and tokens in the system", async () => {
461
- // Set all major supported currencies from the live-common setup
462
- setSupportedCurrencies([
463
- "bitcoin",
464
- "ethereum",
465
- "bsc",
466
- "polygon",
467
- "arbitrum",
468
- "optimism",
469
- "avalanche_c_chain",
470
- "solana",
471
- "cardano",
472
- "polkadot",
473
- "cosmos",
474
- "tron",
475
- "stellar",
476
- "hedera",
477
- "near",
478
- "sui",
479
- ]);
480
-
481
- const allSupportedCurrencies = listSupportedCurrencies() as CryptoOrTokenCurrency[];
482
- const allSupportedTokens = listSupportedTokens();
483
-
484
- // Test the full loadCurrenciesByProvider functionality
485
- const result = await loadCurrenciesByProvider(
486
- allSupportedCurrencies.concat(allSupportedTokens),
487
- );
488
-
489
- // Comprehensive validation
490
- expect(result).toBeDefined();
491
- expect(result.currenciesByProvider).toBeDefined();
492
- expect(result.sortedCryptoCurrencies).toBeDefined();
493
- expect(Array.isArray(result.currenciesByProvider)).toBe(true);
494
- expect(Array.isArray(result.sortedCryptoCurrencies)).toBe(true);
495
-
496
- // Should have meaningful results with this many currencies
497
- expect(result.currenciesByProvider.length).toBeGreaterThan(0);
498
- expect(result.sortedCryptoCurrencies.length).toBeGreaterThan(0);
499
-
500
- // Validate structure of each provider group
501
- result.currenciesByProvider.forEach(providerGroup => {
502
- expect(providerGroup.providerId).toBeDefined();
503
- expect(typeof providerGroup.providerId).toBe("string");
504
- expect(Array.isArray(providerGroup.currenciesByNetwork)).toBe(true);
505
- expect(providerGroup.currenciesByNetwork.length).toBeGreaterThan(0);
506
-
507
- // Each currency in the group should be valid
508
- providerGroup.currenciesByNetwork.forEach(currency => {
509
- expect(currency.id).toBeDefined();
510
- expect(currency.type).toMatch(/^(CryptoCurrency|TokenCurrency)$/);
511
- });
512
- });
513
-
514
- // Validate sortedCryptoCurrencies
515
- result.sortedCryptoCurrencies.forEach(currency => {
516
- expect(currency.id).toBeDefined();
517
- expect(currency.type).toMatch(/^(CryptoCurrency|TokenCurrency)$/);
518
- });
519
-
520
- // Should not have duplicates in sortedCryptoCurrencies
521
- const sortedIds = result.sortedCryptoCurrencies.map(c => c.id);
522
- const uniqueIds = new Set(sortedIds);
523
- expect(sortedIds.length).toBe(uniqueIds.size);
524
- });
525
-
526
- it("should efficiently handle the intersection of all mock assets with all supported currencies", () => {
527
- setSupportedCurrencies([
528
- "bitcoin",
529
- "ethereum",
530
- "bsc",
531
- "polygon",
532
- "arbitrum",
533
- "optimism",
534
- "avalanche_c_chain",
535
- "solana",
536
- "cardano",
537
- "polkadot",
538
- "cosmos",
539
- "tron",
540
- "stellar",
541
- "hedera",
542
- "near",
543
- "sui",
544
- "litecoin",
545
- "dogecoin",
546
- ]);
547
-
548
- const currencies = sortCurrenciesByIds(
549
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
550
- MOCK_IDS,
551
- );
552
-
553
- const allMockAssets = [
554
- ...TOKEN_ONLY_ASSETS,
555
- ...MOCK_WITH_TOKEN_AND_CURRENCY_ASSET,
556
- ...MOCK_POL,
557
- ] as MappedAsset[];
558
-
559
- const startTime = Date.now();
560
- const { currenciesByProvider, sortedCryptoCurrencies } = groupCurrenciesByProvider(
561
- allMockAssets,
562
- currencies,
563
- );
564
- const endTime = Date.now();
565
-
566
- expect(endTime - startTime).toBeLessThan(100);
567
-
568
- expect(Array.isArray(currenciesByProvider)).toBe(true);
569
- expect(Array.isArray(sortedCryptoCurrencies)).toBe(true);
570
-
571
- if (currenciesByProvider.length > 0) {
572
- currenciesByProvider.forEach(provider => {
573
- expect(provider.providerId).toBeDefined();
574
- expect(provider.currenciesByNetwork.length).toBeGreaterThan(0);
575
- });
576
- }
577
-
578
- if (sortedCryptoCurrencies.length > 0) {
579
- sortedCryptoCurrencies.forEach(currency => {
580
- expect(currency.type).toMatch(/^(CryptoCurrency|TokenCurrency)$/);
581
- });
582
- }
583
- });
584
-
585
- it("should demonstrate provider grouping behavior with diverse mock data", () => {
586
- setSupportedCurrencies(["ethereum", "polygon", "arbitrum", "optimism"]);
587
-
588
- const currencies = sortCurrenciesByIds(
589
- (listSupportedCurrencies() as CryptoOrTokenCurrency[]).concat(listSupportedTokens()),
590
- MOCK_IDS,
591
- );
592
-
593
- const { currenciesByProvider, sortedCryptoCurrencies } = groupCurrenciesByProvider(
594
- [...TOKEN_ONLY_ASSETS, ...MOCK_WITH_TOKEN_AND_CURRENCY_ASSET, ...MOCK_POL] as MappedAsset[],
595
- currencies,
596
- );
597
-
598
- const providerIds = new Set(currenciesByProvider.map(p => p.providerId));
599
-
600
- const expectedProviders = ["tether", "ethereum", "matic-network"];
601
- expectedProviders.forEach(expectedProvider => {
602
- if (currenciesByProvider.some(p => p.providerId === expectedProvider)) {
603
- expect(providerIds.has(expectedProvider)).toBe(true);
604
- }
605
- });
606
-
607
- currenciesByProvider.forEach(provider => {
608
- expect(provider.currenciesByNetwork.length).toBeGreaterThan(0);
609
- provider.currenciesByNetwork.forEach(currency => {
610
- expect(currency.id).toBeDefined();
611
- expect(["CryptoCurrency", "TokenCurrency"].includes(currency.type)).toBe(true);
612
- });
613
- });
614
-
615
- expect(sortedCryptoCurrencies.length).toBeLessThanOrEqual(providerIds.size);
616
- });
617
- });
618
-
619
- describe("Error handling", () => {
620
- test("should handle malformed asset data by throwing error", async () => {
621
- const malformedAssets = [
622
- { ...TOKEN_ONLY_ASSETS[0], ledgerId: undefined as any },
623
- { ...TOKEN_ONLY_ASSETS[0], providerId: null as any },
624
- ] as MappedAsset[];
625
-
626
- const token = await getCryptoAssetsStore().findTokenById(TOKEN_ONLY_ASSETS[0].ledgerId);
627
- if (!token) throw new Error("Token not found");
628
- const currencies = [token];
629
-
630
- expect(() => {
631
- groupCurrenciesByProvider(malformedAssets, currencies);
632
- }).toThrow();
633
- });
634
-
635
- test("should handle assets with null/undefined fields gracefully where possible", async () => {
636
- const partiallyMalformedAssets = [
637
- { ...TOKEN_ONLY_ASSETS[0], providerId: "" },
638
- ] as MappedAsset[];
639
-
640
- const token = await getCryptoAssetsStore().findTokenById(TOKEN_ONLY_ASSETS[0].ledgerId);
641
- if (!token) throw new Error("Token not found");
642
- const currencies = [token];
643
-
644
- expect(() => {
645
- groupCurrenciesByProvider(partiallyMalformedAssets, currencies);
646
- }).not.toThrow();
647
- });
648
-
649
- test("should handle very large datasets efficiently", async () => {
650
- const largeAssetList = Array(10000)
651
- .fill(TOKEN_ONLY_ASSETS[0])
652
- .map((asset, index) => ({
653
- ...asset,
654
- ledgerId: `${asset.ledgerId}_${index}`,
655
- providerId: `provider_${index % 10}`,
656
- })) as MappedAsset[];
657
-
658
- const token = await getCryptoAssetsStore().findTokenById(TOKEN_ONLY_ASSETS[0].ledgerId);
659
- if (!token) throw new Error("Token not found");
660
- const currencies = [token];
661
-
662
- const startTime = Date.now();
663
- const result = groupCurrenciesByProvider(largeAssetList, currencies);
664
- const endTime = Date.now();
665
-
666
- expect(endTime - startTime).toBeLessThan(1000);
667
- expect(result.currenciesByProvider).toBeDefined();
668
- expect(result.sortedCryptoCurrencies).toBeDefined();
669
- });
670
-
671
- test("should handle case sensitivity in ledger IDs correctly", async () => {
672
- const mixedCaseAssets = [
673
- { ...TOKEN_ONLY_ASSETS[0], ledgerId: TOKEN_ONLY_ASSETS[0].ledgerId.toUpperCase() },
674
- ] as MappedAsset[];
675
-
676
- const token = await getCryptoAssetsStore().findTokenById(TOKEN_ONLY_ASSETS[0].ledgerId);
677
- if (!token) throw new Error("Token not found");
678
- const currencies = [token];
679
- const { currenciesByProvider } = groupCurrenciesByProvider(mixedCaseAssets, currencies);
680
-
681
- expect(currenciesByProvider).toHaveLength(1);
682
- });
683
- });
684
- });