@ledgerhq/live-common 34.53.0 → 34.54.0-nightly.20251126023856

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 (841) 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/__tests__/test-helpers/environment.js +3 -0
  5. package/lib/__tests__/test-helpers/environment.js.map +1 -1
  6. package/lib/__tests__/test-helpers/setup.integration.d.ts +2 -0
  7. package/lib/__tests__/test-helpers/setup.integration.d.ts.map +1 -0
  8. package/lib/__tests__/test-helpers/{setup.js → setup.integration.js} +4 -8
  9. package/lib/__tests__/test-helpers/setup.integration.js.map +1 -0
  10. package/lib/account/helpers.d.ts.map +1 -1
  11. package/lib/account/helpers.js +21 -17
  12. package/lib/account/helpers.js.map +1 -1
  13. package/lib/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  14. package/lib/bridge/generic-alpaca/getAccountShape.js +12 -10
  15. package/lib/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  16. package/lib/bridge/generic-alpaca/utils.js +1 -1
  17. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  18. package/lib/bridge/impl.d.ts +0 -2
  19. package/lib/bridge/impl.d.ts.map +1 -1
  20. package/lib/bridge/impl.js +4 -8
  21. package/lib/bridge/impl.js.map +1 -1
  22. package/lib/currencies/helpers.d.ts +1 -3
  23. package/lib/currencies/helpers.d.ts.map +1 -1
  24. package/lib/currencies/helpers.js +1 -27
  25. package/lib/currencies/helpers.js.map +1 -1
  26. package/lib/currencies/index.d.ts +1 -1
  27. package/lib/currencies/index.d.ts.map +1 -1
  28. package/lib/currencies/index.js +1 -4
  29. package/lib/currencies/index.js.map +1 -1
  30. package/lib/dada-client/hooks/useAssetsData.d.ts +1 -0
  31. package/lib/dada-client/hooks/useAssetsData.d.ts.map +1 -1
  32. package/lib/dada-client/hooks/useAssetsData.js +1 -0
  33. package/lib/dada-client/hooks/useAssetsData.js.map +1 -1
  34. package/lib/deposit/type.d.ts +0 -17
  35. package/lib/deposit/type.d.ts.map +1 -1
  36. package/lib/deposit/type.js.map +1 -1
  37. package/lib/device/use-cases/getDeviceHasBattery.d.ts +2 -0
  38. package/lib/device/use-cases/getDeviceHasBattery.d.ts.map +1 -0
  39. package/lib/device/use-cases/getDeviceHasBattery.js +6 -0
  40. package/lib/device/use-cases/getDeviceHasBattery.js.map +1 -0
  41. package/lib/deviceSDK/hooks/useBatteryStatuses.d.ts +2 -1
  42. package/lib/deviceSDK/hooks/useBatteryStatuses.d.ts.map +1 -1
  43. package/lib/deviceSDK/hooks/useBatteryStatuses.js +4 -2
  44. package/lib/deviceSDK/hooks/useBatteryStatuses.js.map +1 -1
  45. package/lib/deviceSDK/tasks/core.d.ts +1 -1
  46. package/lib/deviceSDK/tasks/core.d.ts.map +1 -1
  47. package/lib/deviceSDK/tasks/core.js +1 -1
  48. package/lib/deviceSDK/tasks/core.js.map +1 -1
  49. package/lib/deviceSDK/tasks/getDeviceInfo.d.ts.map +1 -1
  50. package/lib/deviceSDK/tasks/getDeviceInfo.js +2 -0
  51. package/lib/deviceSDK/tasks/getDeviceInfo.js.map +1 -1
  52. package/lib/deviceSDK/tasks/getLatestFirmware.d.ts.map +1 -1
  53. package/lib/deviceSDK/tasks/getLatestFirmware.js +2 -2
  54. package/lib/deviceSDK/tasks/getLatestFirmware.js.map +1 -1
  55. package/lib/deviceSDK/tasks/updateFirmware.d.ts.map +1 -1
  56. package/lib/deviceSDK/tasks/updateFirmware.js +1 -0
  57. package/lib/deviceSDK/tasks/updateFirmware.js.map +1 -1
  58. package/lib/e2e/data/assetsDrawer.d.ts +9 -0
  59. package/lib/e2e/data/assetsDrawer.d.ts.map +1 -0
  60. package/lib/e2e/data/assetsDrawer.js +12 -0
  61. package/lib/e2e/data/assetsDrawer.js.map +1 -0
  62. package/lib/e2e/deviceInteraction/DeviceController.d.ts +41 -0
  63. package/lib/e2e/deviceInteraction/DeviceController.d.ts.map +1 -0
  64. package/lib/e2e/deviceInteraction/DeviceController.js +68 -0
  65. package/lib/e2e/deviceInteraction/DeviceController.js.map +1 -0
  66. package/lib/e2e/enum/Account.d.ts +0 -1
  67. package/lib/e2e/enum/Account.d.ts.map +1 -1
  68. package/lib/e2e/enum/Account.js +0 -1
  69. package/lib/e2e/enum/Account.js.map +1 -1
  70. package/lib/e2e/enum/Currency.d.ts +0 -1
  71. package/lib/e2e/enum/Currency.d.ts.map +1 -1
  72. package/lib/e2e/enum/Currency.js +2 -6
  73. package/lib/e2e/enum/Currency.js.map +1 -1
  74. package/lib/e2e/enum/ReceiveFundsOptions.d.ts +6 -0
  75. package/lib/e2e/enum/ReceiveFundsOptions.d.ts.map +1 -0
  76. package/lib/e2e/enum/ReceiveFundsOptions.js +8 -0
  77. package/lib/e2e/enum/ReceiveFundsOptions.js.map +1 -0
  78. package/lib/e2e/families/algorand.d.ts +1 -1
  79. package/lib/e2e/families/algorand.d.ts.map +1 -1
  80. package/lib/e2e/families/algorand.js +5 -5
  81. package/lib/e2e/families/algorand.js.map +1 -1
  82. package/lib/e2e/families/aptos.d.ts +2 -2
  83. package/lib/e2e/families/aptos.d.ts.map +1 -1
  84. package/lib/e2e/families/aptos.js +9 -9
  85. package/lib/e2e/families/aptos.js.map +1 -1
  86. package/lib/e2e/families/bitcoin.d.ts +2 -2
  87. package/lib/e2e/families/bitcoin.d.ts.map +1 -1
  88. package/lib/e2e/families/bitcoin.js +11 -11
  89. package/lib/e2e/families/bitcoin.js.map +1 -1
  90. package/lib/e2e/families/cardano.d.ts +6 -0
  91. package/lib/e2e/families/cardano.d.ts.map +1 -1
  92. package/lib/e2e/families/cardano.js +28 -26
  93. package/lib/e2e/families/cardano.js.map +1 -1
  94. package/lib/e2e/families/celo.d.ts +1 -1
  95. package/lib/e2e/families/celo.d.ts.map +1 -1
  96. package/lib/e2e/families/celo.js +5 -5
  97. package/lib/e2e/families/celo.js.map +1 -1
  98. package/lib/e2e/families/cosmos.d.ts +2 -2
  99. package/lib/e2e/families/cosmos.d.ts.map +1 -1
  100. package/lib/e2e/families/cosmos.js +9 -9
  101. package/lib/e2e/families/cosmos.js.map +1 -1
  102. package/lib/e2e/families/evm.d.ts +2 -0
  103. package/lib/e2e/families/evm.d.ts.map +1 -1
  104. package/lib/e2e/families/evm.js +13 -12
  105. package/lib/e2e/families/evm.js.map +1 -1
  106. package/lib/e2e/families/hedera.d.ts +1 -1
  107. package/lib/e2e/families/hedera.d.ts.map +1 -1
  108. package/lib/e2e/families/hedera.js +5 -5
  109. package/lib/e2e/families/hedera.js.map +1 -1
  110. package/lib/e2e/families/kaspa.d.ts +2 -2
  111. package/lib/e2e/families/kaspa.d.ts.map +1 -1
  112. package/lib/e2e/families/kaspa.js +9 -9
  113. package/lib/e2e/families/kaspa.js.map +1 -1
  114. package/lib/e2e/families/multiversX.d.ts +1 -1
  115. package/lib/e2e/families/multiversX.d.ts.map +1 -1
  116. package/lib/e2e/families/multiversX.js +5 -5
  117. package/lib/e2e/families/multiversX.js.map +1 -1
  118. package/lib/e2e/families/near.d.ts +1 -1
  119. package/lib/e2e/families/near.d.ts.map +1 -1
  120. package/lib/e2e/families/near.js +6 -6
  121. package/lib/e2e/families/near.js.map +1 -1
  122. package/lib/e2e/families/osmosis.d.ts +1 -1
  123. package/lib/e2e/families/osmosis.d.ts.map +1 -1
  124. package/lib/e2e/families/osmosis.js +5 -5
  125. package/lib/e2e/families/osmosis.js.map +1 -1
  126. package/lib/e2e/families/polkadot.d.ts +1 -1
  127. package/lib/e2e/families/polkadot.d.ts.map +1 -1
  128. package/lib/e2e/families/polkadot.js +5 -5
  129. package/lib/e2e/families/polkadot.js.map +1 -1
  130. package/lib/e2e/families/solana.d.ts +2 -2
  131. package/lib/e2e/families/solana.d.ts.map +1 -1
  132. package/lib/e2e/families/solana.js +9 -9
  133. package/lib/e2e/families/solana.js.map +1 -1
  134. package/lib/e2e/families/stellar.d.ts +1 -1
  135. package/lib/e2e/families/stellar.d.ts.map +1 -1
  136. package/lib/e2e/families/stellar.js +5 -5
  137. package/lib/e2e/families/stellar.js.map +1 -1
  138. package/lib/e2e/families/sui.d.ts +1 -1
  139. package/lib/e2e/families/sui.d.ts.map +1 -1
  140. package/lib/e2e/families/sui.js +5 -5
  141. package/lib/e2e/families/sui.js.map +1 -1
  142. package/lib/e2e/families/tezos.d.ts +1 -1
  143. package/lib/e2e/families/tezos.d.ts.map +1 -1
  144. package/lib/e2e/families/tezos.js +7 -8
  145. package/lib/e2e/families/tezos.js.map +1 -1
  146. package/lib/e2e/families/tron.d.ts +1 -1
  147. package/lib/e2e/families/tron.d.ts.map +1 -1
  148. package/lib/e2e/families/tron.js +5 -5
  149. package/lib/e2e/families/tron.js.map +1 -1
  150. package/lib/e2e/families/xrp.d.ts +1 -1
  151. package/lib/e2e/families/xrp.d.ts.map +1 -1
  152. package/lib/e2e/families/xrp.js +5 -5
  153. package/lib/e2e/families/xrp.js.map +1 -1
  154. package/lib/e2e/index.d.ts +22 -0
  155. package/lib/e2e/index.d.ts.map +1 -1
  156. package/lib/e2e/speculos.d.ts +11 -11
  157. package/lib/e2e/speculos.d.ts.map +1 -1
  158. package/lib/e2e/speculos.js +87 -80
  159. package/lib/e2e/speculos.js.map +1 -1
  160. package/lib/env.react.d.ts +1 -1
  161. package/lib/env.react.d.ts.map +1 -1
  162. package/lib/exchange/providers/swap.d.ts +1 -0
  163. package/lib/exchange/providers/swap.d.ts.map +1 -1
  164. package/lib/exchange/providers/swap.js +5 -1
  165. package/lib/exchange/providers/swap.js.map +1 -1
  166. package/lib/exchange/swap/getCompleteSwapHistory.js +2 -2
  167. package/lib/exchange/swap/getCompleteSwapHistory.js.map +1 -1
  168. package/lib/exchange/swap/hooks/useSelectableCurrencies.js +2 -2
  169. package/lib/exchange/swap/hooks/useSelectableCurrencies.js.map +1 -1
  170. package/lib/exchange/swap/hooks/v5/useFetchCurrencyAll.d.ts.map +1 -1
  171. package/lib/exchange/swap/hooks/v5/useFetchCurrencyAll.js +2 -3
  172. package/lib/exchange/swap/hooks/v5/useFetchCurrencyAll.js.map +1 -1
  173. package/lib/exchange/swap/hooks/v5/useFilteredProviders.d.ts.map +1 -1
  174. package/lib/exchange/swap/hooks/v5/useFilteredProviders.js +15 -10
  175. package/lib/exchange/swap/hooks/v5/useFilteredProviders.js.map +1 -1
  176. package/lib/families/canton/bridge/mock.d.ts.map +1 -1
  177. package/lib/families/canton/bridge/mock.js +1 -0
  178. package/lib/families/canton/bridge/mock.js.map +1 -1
  179. package/lib/families/canton/react.d.ts +15 -0
  180. package/lib/families/canton/react.d.ts.map +1 -0
  181. package/lib/families/canton/react.js +14 -0
  182. package/lib/families/canton/react.js.map +1 -0
  183. package/lib/families/cosmos/datasets/dydx.integration.FIXME.d.ts +1 -1
  184. package/lib/families/cosmos/datasets/dydx.integration.FIXME.d.ts.map +1 -1
  185. package/lib/families/cosmos/datasets/dydx.integration.FIXME.js +1 -1
  186. package/lib/families/cosmos/datasets/dydx.integration.FIXME.js.map +1 -1
  187. package/lib/families/cosmos/datasets/secretNetwork.integration.FIXME.d.ts +1 -1
  188. package/lib/families/cosmos/datasets/secretNetwork.integration.FIXME.d.ts.map +1 -1
  189. package/lib/families/cosmos/datasets/secretNetwork.integration.FIXME.js +1 -1
  190. package/lib/families/cosmos/datasets/secretNetwork.integration.FIXME.js.map +1 -1
  191. package/lib/families/evm/config.d.ts.map +1 -1
  192. package/lib/families/evm/config.js +49 -0
  193. package/lib/families/evm/config.js.map +1 -1
  194. package/lib/families/evm/setup.d.ts.map +1 -1
  195. package/lib/families/evm/setup.js +1 -11
  196. package/lib/families/evm/setup.js.map +1 -1
  197. package/lib/families/solana/bridge/mock.d.ts.map +1 -1
  198. package/lib/families/solana/bridge/mock.js +10 -8
  199. package/lib/families/solana/bridge/mock.js.map +1 -1
  200. package/lib/families/solana/config.d.ts.map +1 -1
  201. package/lib/families/solana/config.js +0 -1
  202. package/lib/families/solana/config.js.map +1 -1
  203. package/lib/families/solana/setup.d.ts +8 -0
  204. package/lib/families/solana/setup.d.ts.map +1 -1
  205. package/lib/families/solana/setup.js +29 -16
  206. package/lib/families/solana/setup.js.map +1 -1
  207. package/lib/families/tron/data.mock.d.ts.map +1 -1
  208. package/lib/families/tron/data.mock.js +3 -6
  209. package/lib/families/tron/data.mock.js.map +1 -1
  210. package/lib/featureFlags/defaultFeatures.d.ts +3 -0
  211. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  212. package/lib/featureFlags/defaultFeatures.js +10 -0
  213. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  214. package/lib/featureFlags/stakePrograms/index.d.ts +1 -0
  215. package/lib/featureFlags/stakePrograms/index.d.ts.map +1 -1
  216. package/lib/featureFlags/stakePrograms/index.js +16 -1
  217. package/lib/featureFlags/stakePrograms/index.js.map +1 -1
  218. package/lib/featureFlags/useFeature.d.ts +1 -1
  219. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  220. package/lib/market/hooks/useMarketDataProvider.js +1 -0
  221. package/lib/market/hooks/useMarketDataProvider.js.map +1 -1
  222. package/lib/market/utils/types.d.ts +1 -0
  223. package/lib/market/utils/types.d.ts.map +1 -1
  224. package/lib/market/utils/types.js.map +1 -1
  225. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  226. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +11 -0
  227. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  228. package/lib/modularDrawer/hooks/useNetworkAccountCounts.d.ts +1 -5
  229. package/lib/modularDrawer/hooks/useNetworkAccountCounts.d.ts.map +1 -1
  230. package/lib/modularDrawer/hooks/useNetworkAccountCounts.js +2 -2
  231. package/lib/modularDrawer/hooks/useNetworkAccountCounts.js.map +1 -1
  232. package/lib/modularDrawer/modules/createNetworkConfiguration.d.ts +1 -1
  233. package/lib/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
  234. package/lib/modularDrawer/modules/createNetworkConfiguration.js +1 -2
  235. package/lib/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
  236. package/lib/modularDrawer/utils/{groupCurrenciesByProvider.d.ts → groupCurrenciesByAsset.d.ts} +2 -2
  237. package/lib/modularDrawer/utils/groupCurrenciesByAsset.d.ts.map +1 -0
  238. package/lib/modularDrawer/utils/groupCurrenciesByAsset.js +21 -0
  239. package/lib/modularDrawer/utils/groupCurrenciesByAsset.js.map +1 -0
  240. package/lib/modularDrawer/utils/index.d.ts +1 -1
  241. package/lib/modularDrawer/utils/index.d.ts.map +1 -1
  242. package/lib/modularDrawer/utils/index.js +3 -3
  243. package/lib/modularDrawer/utils/index.js.map +1 -1
  244. package/lib/modularDrawer/utils/type.d.ts +0 -5
  245. package/lib/modularDrawer/utils/type.d.ts.map +1 -1
  246. package/lib/platform/filters.d.ts +1 -2
  247. package/lib/platform/filters.d.ts.map +1 -1
  248. package/lib/platform/filters.js +1 -17
  249. package/lib/platform/filters.js.map +1 -1
  250. package/lib/platform/helpers.d.ts +1 -5
  251. package/lib/platform/helpers.d.ts.map +1 -1
  252. package/lib/platform/helpers.js +1 -33
  253. package/lib/platform/helpers.js.map +1 -1
  254. package/lib/platform/react.d.ts +2 -3
  255. package/lib/platform/react.d.ts.map +1 -1
  256. package/lib/platform/react.js +66 -16
  257. package/lib/platform/react.js.map +1 -1
  258. package/lib/platform/types.d.ts +3 -3
  259. package/lib/platform/types.d.ts.map +1 -1
  260. package/lib/postOnboarding/reducer.d.ts +2 -0
  261. package/lib/postOnboarding/reducer.d.ts.map +1 -1
  262. package/lib/test-helpers/cryptoAssetsStore.d.ts +2 -0
  263. package/lib/test-helpers/cryptoAssetsStore.d.ts.map +1 -0
  264. package/lib/test-helpers/cryptoAssetsStore.js +8 -0
  265. package/lib/test-helpers/cryptoAssetsStore.js.map +1 -0
  266. package/lib/utils/getAccountTuplesForCurrency.d.ts +1 -1
  267. package/lib/utils/getAccountTuplesForCurrency.d.ts.map +1 -1
  268. package/lib/utils/getAccountTuplesForCurrency.js +2 -3
  269. package/lib/utils/getAccountTuplesForCurrency.js.map +1 -1
  270. package/lib/wallet-api/ACRE/server.js +5 -5
  271. package/lib/wallet-api/ACRE/server.js.map +1 -1
  272. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  273. package/lib/wallet-api/Exchange/server.js +8 -7
  274. package/lib/wallet-api/Exchange/server.js.map +1 -1
  275. package/lib/wallet-api/converters.d.ts +1 -0
  276. package/lib/wallet-api/converters.d.ts.map +1 -1
  277. package/lib/wallet-api/converters.js +7 -2
  278. package/lib/wallet-api/converters.js.map +1 -1
  279. package/lib/wallet-api/logic.js +8 -8
  280. package/lib/wallet-api/logic.js.map +1 -1
  281. package/lib/wallet-api/react.d.ts +6 -11
  282. package/lib/wallet-api/react.d.ts.map +1 -1
  283. package/lib/wallet-api/react.js +293 -135
  284. package/lib/wallet-api/react.js.map +1 -1
  285. package/lib/wallet-api/tracking.d.ts +6 -0
  286. package/lib/wallet-api/tracking.d.ts.map +1 -1
  287. package/lib/wallet-api/tracking.js +20 -0
  288. package/lib/wallet-api/tracking.js.map +1 -1
  289. package/lib/wallet-api/types.d.ts +3 -0
  290. package/lib/wallet-api/types.d.ts.map +1 -1
  291. package/lib/wallet-api/useDappLogic.d.ts.map +1 -1
  292. package/lib/wallet-api/useDappLogic.js +65 -80
  293. package/lib/wallet-api/useDappLogic.js.map +1 -1
  294. package/lib/wallet-api/utils/deriveAccountIdForManifest.d.ts +6 -0
  295. package/lib/wallet-api/utils/deriveAccountIdForManifest.d.ts.map +1 -1
  296. package/lib/wallet-api/utils/deriveAccountIdForManifest.js +13 -3
  297. package/lib/wallet-api/utils/deriveAccountIdForManifest.js.map +1 -1
  298. package/lib-es/__tests__/test-helpers/bridge.d.ts.map +1 -1
  299. package/lib-es/__tests__/test-helpers/bridge.js +0 -4
  300. package/lib-es/__tests__/test-helpers/bridge.js.map +1 -1
  301. package/lib-es/__tests__/test-helpers/environment.js +3 -0
  302. package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
  303. package/lib-es/__tests__/test-helpers/setup.integration.d.ts +2 -0
  304. package/lib-es/__tests__/test-helpers/setup.integration.d.ts.map +1 -0
  305. package/lib-es/__tests__/test-helpers/setup.integration.js +14 -0
  306. package/lib-es/__tests__/test-helpers/setup.integration.js.map +1 -0
  307. package/lib-es/account/helpers.d.ts.map +1 -1
  308. package/lib-es/account/helpers.js +5 -1
  309. package/lib-es/account/helpers.js.map +1 -1
  310. package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  311. package/lib-es/bridge/generic-alpaca/getAccountShape.js +13 -11
  312. package/lib-es/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  313. package/lib-es/bridge/generic-alpaca/utils.js +1 -1
  314. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  315. package/lib-es/bridge/impl.d.ts +0 -2
  316. package/lib-es/bridge/impl.d.ts.map +1 -1
  317. package/lib-es/bridge/impl.js +3 -6
  318. package/lib-es/bridge/impl.js.map +1 -1
  319. package/lib-es/currencies/helpers.d.ts +1 -3
  320. package/lib-es/currencies/helpers.d.ts.map +1 -1
  321. package/lib-es/currencies/helpers.js +0 -24
  322. package/lib-es/currencies/helpers.js.map +1 -1
  323. package/lib-es/currencies/index.d.ts +1 -1
  324. package/lib-es/currencies/index.d.ts.map +1 -1
  325. package/lib-es/currencies/index.js +1 -1
  326. package/lib-es/currencies/index.js.map +1 -1
  327. package/lib-es/dada-client/hooks/useAssetsData.d.ts +1 -0
  328. package/lib-es/dada-client/hooks/useAssetsData.d.ts.map +1 -1
  329. package/lib-es/dada-client/hooks/useAssetsData.js +1 -0
  330. package/lib-es/dada-client/hooks/useAssetsData.js.map +1 -1
  331. package/lib-es/deposit/type.d.ts +0 -17
  332. package/lib-es/deposit/type.d.ts.map +1 -1
  333. package/lib-es/deposit/type.js.map +1 -1
  334. package/lib-es/device/use-cases/getDeviceHasBattery.d.ts +2 -0
  335. package/lib-es/device/use-cases/getDeviceHasBattery.d.ts.map +1 -0
  336. package/lib-es/device/use-cases/getDeviceHasBattery.js +2 -0
  337. package/lib-es/device/use-cases/getDeviceHasBattery.js.map +1 -0
  338. package/lib-es/deviceSDK/hooks/useBatteryStatuses.d.ts +2 -1
  339. package/lib-es/deviceSDK/hooks/useBatteryStatuses.d.ts.map +1 -1
  340. package/lib-es/deviceSDK/hooks/useBatteryStatuses.js +4 -2
  341. package/lib-es/deviceSDK/hooks/useBatteryStatuses.js.map +1 -1
  342. package/lib-es/deviceSDK/tasks/core.d.ts +1 -1
  343. package/lib-es/deviceSDK/tasks/core.d.ts.map +1 -1
  344. package/lib-es/deviceSDK/tasks/core.js +1 -1
  345. package/lib-es/deviceSDK/tasks/core.js.map +1 -1
  346. package/lib-es/deviceSDK/tasks/getDeviceInfo.d.ts.map +1 -1
  347. package/lib-es/deviceSDK/tasks/getDeviceInfo.js +2 -0
  348. package/lib-es/deviceSDK/tasks/getDeviceInfo.js.map +1 -1
  349. package/lib-es/deviceSDK/tasks/getLatestFirmware.d.ts.map +1 -1
  350. package/lib-es/deviceSDK/tasks/getLatestFirmware.js +2 -2
  351. package/lib-es/deviceSDK/tasks/getLatestFirmware.js.map +1 -1
  352. package/lib-es/deviceSDK/tasks/updateFirmware.d.ts.map +1 -1
  353. package/lib-es/deviceSDK/tasks/updateFirmware.js +2 -1
  354. package/lib-es/deviceSDK/tasks/updateFirmware.js.map +1 -1
  355. package/lib-es/e2e/data/assetsDrawer.d.ts +9 -0
  356. package/lib-es/e2e/data/assetsDrawer.d.ts.map +1 -0
  357. package/lib-es/e2e/data/assetsDrawer.js +9 -0
  358. package/lib-es/e2e/data/assetsDrawer.js.map +1 -0
  359. package/lib-es/e2e/deviceInteraction/DeviceController.d.ts +41 -0
  360. package/lib-es/e2e/deviceInteraction/DeviceController.d.ts.map +1 -0
  361. package/lib-es/e2e/deviceInteraction/DeviceController.js +63 -0
  362. package/lib-es/e2e/deviceInteraction/DeviceController.js.map +1 -0
  363. package/lib-es/e2e/enum/Account.d.ts +0 -1
  364. package/lib-es/e2e/enum/Account.d.ts.map +1 -1
  365. package/lib-es/e2e/enum/Account.js +0 -1
  366. package/lib-es/e2e/enum/Account.js.map +1 -1
  367. package/lib-es/e2e/enum/Currency.d.ts +0 -1
  368. package/lib-es/e2e/enum/Currency.d.ts.map +1 -1
  369. package/lib-es/e2e/enum/Currency.js +2 -6
  370. package/lib-es/e2e/enum/Currency.js.map +1 -1
  371. package/lib-es/e2e/enum/ReceiveFundsOptions.d.ts +6 -0
  372. package/lib-es/e2e/enum/ReceiveFundsOptions.d.ts.map +1 -0
  373. package/lib-es/e2e/enum/ReceiveFundsOptions.js +5 -0
  374. package/lib-es/e2e/enum/ReceiveFundsOptions.js.map +1 -0
  375. package/lib-es/e2e/families/algorand.d.ts +1 -1
  376. package/lib-es/e2e/families/algorand.d.ts.map +1 -1
  377. package/lib-es/e2e/families/algorand.js +5 -4
  378. package/lib-es/e2e/families/algorand.js.map +1 -1
  379. package/lib-es/e2e/families/aptos.d.ts +2 -2
  380. package/lib-es/e2e/families/aptos.d.ts.map +1 -1
  381. package/lib-es/e2e/families/aptos.js +9 -7
  382. package/lib-es/e2e/families/aptos.js.map +1 -1
  383. package/lib-es/e2e/families/bitcoin.d.ts +2 -2
  384. package/lib-es/e2e/families/bitcoin.d.ts.map +1 -1
  385. package/lib-es/e2e/families/bitcoin.js +11 -9
  386. package/lib-es/e2e/families/bitcoin.js.map +1 -1
  387. package/lib-es/e2e/families/cardano.d.ts +6 -0
  388. package/lib-es/e2e/families/cardano.d.ts.map +1 -1
  389. package/lib-es/e2e/families/cardano.js +23 -21
  390. package/lib-es/e2e/families/cardano.js.map +1 -1
  391. package/lib-es/e2e/families/celo.d.ts +1 -1
  392. package/lib-es/e2e/families/celo.d.ts.map +1 -1
  393. package/lib-es/e2e/families/celo.js +5 -4
  394. package/lib-es/e2e/families/celo.js.map +1 -1
  395. package/lib-es/e2e/families/cosmos.d.ts +2 -2
  396. package/lib-es/e2e/families/cosmos.d.ts.map +1 -1
  397. package/lib-es/e2e/families/cosmos.js +9 -7
  398. package/lib-es/e2e/families/cosmos.js.map +1 -1
  399. package/lib-es/e2e/families/evm.d.ts +2 -0
  400. package/lib-es/e2e/families/evm.d.ts.map +1 -1
  401. package/lib-es/e2e/families/evm.js +10 -9
  402. package/lib-es/e2e/families/evm.js.map +1 -1
  403. package/lib-es/e2e/families/hedera.d.ts +1 -1
  404. package/lib-es/e2e/families/hedera.d.ts.map +1 -1
  405. package/lib-es/e2e/families/hedera.js +5 -4
  406. package/lib-es/e2e/families/hedera.js.map +1 -1
  407. package/lib-es/e2e/families/kaspa.d.ts +2 -2
  408. package/lib-es/e2e/families/kaspa.d.ts.map +1 -1
  409. package/lib-es/e2e/families/kaspa.js +9 -7
  410. package/lib-es/e2e/families/kaspa.js.map +1 -1
  411. package/lib-es/e2e/families/multiversX.d.ts +1 -1
  412. package/lib-es/e2e/families/multiversX.d.ts.map +1 -1
  413. package/lib-es/e2e/families/multiversX.js +5 -4
  414. package/lib-es/e2e/families/multiversX.js.map +1 -1
  415. package/lib-es/e2e/families/near.d.ts +1 -1
  416. package/lib-es/e2e/families/near.d.ts.map +1 -1
  417. package/lib-es/e2e/families/near.js +6 -5
  418. package/lib-es/e2e/families/near.js.map +1 -1
  419. package/lib-es/e2e/families/osmosis.d.ts +1 -1
  420. package/lib-es/e2e/families/osmosis.d.ts.map +1 -1
  421. package/lib-es/e2e/families/osmosis.js +5 -4
  422. package/lib-es/e2e/families/osmosis.js.map +1 -1
  423. package/lib-es/e2e/families/polkadot.d.ts +1 -1
  424. package/lib-es/e2e/families/polkadot.d.ts.map +1 -1
  425. package/lib-es/e2e/families/polkadot.js +5 -4
  426. package/lib-es/e2e/families/polkadot.js.map +1 -1
  427. package/lib-es/e2e/families/solana.d.ts +2 -2
  428. package/lib-es/e2e/families/solana.d.ts.map +1 -1
  429. package/lib-es/e2e/families/solana.js +9 -7
  430. package/lib-es/e2e/families/solana.js.map +1 -1
  431. package/lib-es/e2e/families/stellar.d.ts +1 -1
  432. package/lib-es/e2e/families/stellar.d.ts.map +1 -1
  433. package/lib-es/e2e/families/stellar.js +5 -4
  434. package/lib-es/e2e/families/stellar.js.map +1 -1
  435. package/lib-es/e2e/families/sui.d.ts +1 -1
  436. package/lib-es/e2e/families/sui.d.ts.map +1 -1
  437. package/lib-es/e2e/families/sui.js +5 -4
  438. package/lib-es/e2e/families/sui.js.map +1 -1
  439. package/lib-es/e2e/families/tezos.d.ts +1 -1
  440. package/lib-es/e2e/families/tezos.d.ts.map +1 -1
  441. package/lib-es/e2e/families/tezos.js +8 -8
  442. package/lib-es/e2e/families/tezos.js.map +1 -1
  443. package/lib-es/e2e/families/tron.d.ts +1 -1
  444. package/lib-es/e2e/families/tron.d.ts.map +1 -1
  445. package/lib-es/e2e/families/tron.js +5 -4
  446. package/lib-es/e2e/families/tron.js.map +1 -1
  447. package/lib-es/e2e/families/xrp.d.ts +1 -1
  448. package/lib-es/e2e/families/xrp.d.ts.map +1 -1
  449. package/lib-es/e2e/families/xrp.js +5 -4
  450. package/lib-es/e2e/families/xrp.js.map +1 -1
  451. package/lib-es/e2e/index.d.ts +22 -0
  452. package/lib-es/e2e/index.d.ts.map +1 -1
  453. package/lib-es/e2e/speculos.d.ts +11 -11
  454. package/lib-es/e2e/speculos.d.ts.map +1 -1
  455. package/lib-es/e2e/speculos.js +63 -45
  456. package/lib-es/e2e/speculos.js.map +1 -1
  457. package/lib-es/env.react.d.ts +1 -1
  458. package/lib-es/env.react.d.ts.map +1 -1
  459. package/lib-es/exchange/providers/swap.d.ts +1 -0
  460. package/lib-es/exchange/providers/swap.d.ts.map +1 -1
  461. package/lib-es/exchange/providers/swap.js +3 -0
  462. package/lib-es/exchange/providers/swap.js.map +1 -1
  463. package/lib-es/exchange/swap/getCompleteSwapHistory.js +1 -1
  464. package/lib-es/exchange/swap/getCompleteSwapHistory.js.map +1 -1
  465. package/lib-es/exchange/swap/hooks/useSelectableCurrencies.js +1 -1
  466. package/lib-es/exchange/swap/hooks/useSelectableCurrencies.js.map +1 -1
  467. package/lib-es/exchange/swap/hooks/v5/useFetchCurrencyAll.d.ts.map +1 -1
  468. package/lib-es/exchange/swap/hooks/v5/useFetchCurrencyAll.js +2 -3
  469. package/lib-es/exchange/swap/hooks/v5/useFetchCurrencyAll.js.map +1 -1
  470. package/lib-es/exchange/swap/hooks/v5/useFilteredProviders.d.ts.map +1 -1
  471. package/lib-es/exchange/swap/hooks/v5/useFilteredProviders.js +17 -12
  472. package/lib-es/exchange/swap/hooks/v5/useFilteredProviders.js.map +1 -1
  473. package/lib-es/families/canton/bridge/mock.d.ts.map +1 -1
  474. package/lib-es/families/canton/bridge/mock.js +1 -0
  475. package/lib-es/families/canton/bridge/mock.js.map +1 -1
  476. package/lib-es/families/canton/react.d.ts +15 -0
  477. package/lib-es/families/canton/react.d.ts.map +1 -0
  478. package/lib-es/families/canton/react.js +10 -0
  479. package/lib-es/families/canton/react.js.map +1 -0
  480. package/lib-es/families/cosmos/datasets/dydx.integration.FIXME.d.ts +1 -1
  481. package/lib-es/families/cosmos/datasets/dydx.integration.FIXME.d.ts.map +1 -1
  482. package/lib-es/families/cosmos/datasets/dydx.integration.FIXME.js +1 -1
  483. package/lib-es/families/cosmos/datasets/dydx.integration.FIXME.js.map +1 -1
  484. package/lib-es/families/cosmos/datasets/secretNetwork.integration.FIXME.d.ts +1 -1
  485. package/lib-es/families/cosmos/datasets/secretNetwork.integration.FIXME.d.ts.map +1 -1
  486. package/lib-es/families/cosmos/datasets/secretNetwork.integration.FIXME.js +1 -1
  487. package/lib-es/families/cosmos/datasets/secretNetwork.integration.FIXME.js.map +1 -1
  488. package/lib-es/families/evm/config.d.ts.map +1 -1
  489. package/lib-es/families/evm/config.js +49 -0
  490. package/lib-es/families/evm/config.js.map +1 -1
  491. package/lib-es/families/evm/setup.d.ts.map +1 -1
  492. package/lib-es/families/evm/setup.js +1 -11
  493. package/lib-es/families/evm/setup.js.map +1 -1
  494. package/lib-es/families/solana/bridge/mock.d.ts.map +1 -1
  495. package/lib-es/families/solana/bridge/mock.js +11 -9
  496. package/lib-es/families/solana/bridge/mock.js.map +1 -1
  497. package/lib-es/families/solana/config.d.ts.map +1 -1
  498. package/lib-es/families/solana/config.js +0 -1
  499. package/lib-es/families/solana/config.js.map +1 -1
  500. package/lib-es/families/solana/setup.d.ts +8 -0
  501. package/lib-es/families/solana/setup.d.ts.map +1 -1
  502. package/lib-es/families/solana/setup.js +28 -17
  503. package/lib-es/families/solana/setup.js.map +1 -1
  504. package/lib-es/families/tron/data.mock.d.ts.map +1 -1
  505. package/lib-es/families/tron/data.mock.js +3 -6
  506. package/lib-es/families/tron/data.mock.js.map +1 -1
  507. package/lib-es/featureFlags/defaultFeatures.d.ts +3 -0
  508. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  509. package/lib-es/featureFlags/defaultFeatures.js +10 -0
  510. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  511. package/lib-es/featureFlags/stakePrograms/index.d.ts +1 -0
  512. package/lib-es/featureFlags/stakePrograms/index.d.ts.map +1 -1
  513. package/lib-es/featureFlags/stakePrograms/index.js +14 -0
  514. package/lib-es/featureFlags/stakePrograms/index.js.map +1 -1
  515. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  516. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  517. package/lib-es/market/hooks/useMarketDataProvider.js +1 -0
  518. package/lib-es/market/hooks/useMarketDataProvider.js.map +1 -1
  519. package/lib-es/market/utils/types.d.ts +1 -0
  520. package/lib-es/market/utils/types.d.ts.map +1 -1
  521. package/lib-es/market/utils/types.js.map +1 -1
  522. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  523. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +11 -0
  524. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  525. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.d.ts +1 -5
  526. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.d.ts.map +1 -1
  527. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.js +2 -2
  528. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.js.map +1 -1
  529. package/lib-es/modularDrawer/modules/createNetworkConfiguration.d.ts +1 -1
  530. package/lib-es/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
  531. package/lib-es/modularDrawer/modules/createNetworkConfiguration.js +1 -2
  532. package/lib-es/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
  533. package/lib-es/modularDrawer/utils/{groupCurrenciesByProvider.d.ts → groupCurrenciesByAsset.d.ts} +2 -2
  534. package/lib-es/modularDrawer/utils/groupCurrenciesByAsset.d.ts.map +1 -0
  535. package/lib-es/modularDrawer/utils/{groupCurrenciesByProvider.js → groupCurrenciesByAsset.js} +6 -6
  536. package/lib-es/modularDrawer/utils/groupCurrenciesByAsset.js.map +1 -0
  537. package/lib-es/modularDrawer/utils/index.d.ts +1 -1
  538. package/lib-es/modularDrawer/utils/index.d.ts.map +1 -1
  539. package/lib-es/modularDrawer/utils/index.js +1 -1
  540. package/lib-es/modularDrawer/utils/index.js.map +1 -1
  541. package/lib-es/modularDrawer/utils/type.d.ts +0 -5
  542. package/lib-es/modularDrawer/utils/type.d.ts.map +1 -1
  543. package/lib-es/platform/filters.d.ts +1 -2
  544. package/lib-es/platform/filters.d.ts.map +1 -1
  545. package/lib-es/platform/filters.js +0 -15
  546. package/lib-es/platform/filters.js.map +1 -1
  547. package/lib-es/platform/helpers.d.ts +1 -5
  548. package/lib-es/platform/helpers.d.ts.map +1 -1
  549. package/lib-es/platform/helpers.js +1 -30
  550. package/lib-es/platform/helpers.js.map +1 -1
  551. package/lib-es/platform/react.d.ts +2 -3
  552. package/lib-es/platform/react.d.ts.map +1 -1
  553. package/lib-es/platform/react.js +67 -16
  554. package/lib-es/platform/react.js.map +1 -1
  555. package/lib-es/platform/types.d.ts +3 -3
  556. package/lib-es/platform/types.d.ts.map +1 -1
  557. package/lib-es/postOnboarding/reducer.d.ts +2 -0
  558. package/lib-es/postOnboarding/reducer.d.ts.map +1 -1
  559. package/lib-es/test-helpers/cryptoAssetsStore.d.ts +2 -0
  560. package/lib-es/test-helpers/cryptoAssetsStore.d.ts.map +1 -0
  561. package/lib-es/test-helpers/cryptoAssetsStore.js +2 -0
  562. package/lib-es/test-helpers/cryptoAssetsStore.js.map +1 -0
  563. package/lib-es/utils/getAccountTuplesForCurrency.d.ts +1 -1
  564. package/lib-es/utils/getAccountTuplesForCurrency.d.ts.map +1 -1
  565. package/lib-es/utils/getAccountTuplesForCurrency.js +2 -3
  566. package/lib-es/utils/getAccountTuplesForCurrency.js.map +1 -1
  567. package/lib-es/wallet-api/ACRE/server.js +1 -1
  568. package/lib-es/wallet-api/ACRE/server.js.map +1 -1
  569. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  570. package/lib-es/wallet-api/Exchange/server.js +6 -5
  571. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  572. package/lib-es/wallet-api/converters.d.ts +1 -0
  573. package/lib-es/wallet-api/converters.d.ts.map +1 -1
  574. package/lib-es/wallet-api/converters.js +5 -1
  575. package/lib-es/wallet-api/converters.js.map +1 -1
  576. package/lib-es/wallet-api/logic.js +1 -1
  577. package/lib-es/wallet-api/logic.js.map +1 -1
  578. package/lib-es/wallet-api/react.d.ts +6 -11
  579. package/lib-es/wallet-api/react.d.ts.map +1 -1
  580. package/lib-es/wallet-api/react.js +291 -131
  581. package/lib-es/wallet-api/react.js.map +1 -1
  582. package/lib-es/wallet-api/tracking.d.ts +6 -0
  583. package/lib-es/wallet-api/tracking.d.ts.map +1 -1
  584. package/lib-es/wallet-api/tracking.js +20 -0
  585. package/lib-es/wallet-api/tracking.js.map +1 -1
  586. package/lib-es/wallet-api/types.d.ts +3 -0
  587. package/lib-es/wallet-api/types.d.ts.map +1 -1
  588. package/lib-es/wallet-api/useDappLogic.d.ts.map +1 -1
  589. package/lib-es/wallet-api/useDappLogic.js +62 -77
  590. package/lib-es/wallet-api/useDappLogic.js.map +1 -1
  591. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.d.ts +6 -0
  592. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.d.ts.map +1 -1
  593. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.js +11 -2
  594. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.js.map +1 -1
  595. package/package.json +74 -60
  596. package/src/DataModel.test.ts +2 -8
  597. package/src/__tests__/__snapshots__/csvExport.ts.snap +0 -718
  598. package/src/__tests__/accounts/groupPerDay.ts +2 -4
  599. package/src/__tests__/csvExport.ts +3 -3
  600. package/src/__tests__/currencies.ts +5 -38
  601. package/src/__tests__/migration/account-migration.ts +3 -0
  602. package/src/__tests__/test-helpers/bridge.ts +0 -2
  603. package/src/__tests__/test-helpers/environment.ts +3 -0
  604. package/src/__tests__/test-helpers/setup.integration.ts +17 -0
  605. package/src/__tests__/test-helpers/setup.ts +3 -8
  606. package/src/account/helpers.test.ts +2 -2
  607. package/src/account/helpers.ts +5 -1
  608. package/src/account/serialization.test.ts +2 -2
  609. package/src/bridge/crypto-assets/index.test.ts +15 -44
  610. package/src/bridge/generic-alpaca/getAccountShape.ts +15 -12
  611. package/src/bridge/generic-alpaca/tests/getAccountShape.test.ts +142 -101
  612. package/src/bridge/generic-alpaca/utils.test.ts +1 -2
  613. package/src/bridge/generic-alpaca/utils.ts +1 -1
  614. package/src/bridge/impl.ts +3 -7
  615. package/src/currencies/cryptoIcons.test.ts +23 -4
  616. package/src/currencies/helpers.test.ts +4 -11
  617. package/src/currencies/helpers.ts +1 -42
  618. package/src/currencies/index.ts +0 -3
  619. package/src/currencies/sortByMarketcap.test.ts +0 -26
  620. package/src/dada-client/hooks/useAssetsData.ts +1 -0
  621. package/src/deposit/type.ts +0 -21
  622. package/src/device/use-cases/getDeviceHasBattery.ts +1 -0
  623. package/src/deviceSDK/hooks/useBatteryStatuses.test.ts +3 -1
  624. package/src/deviceSDK/hooks/useBatteryStatuses.ts +4 -1
  625. package/src/deviceSDK/tasks/core.test.ts +20 -0
  626. package/src/deviceSDK/tasks/core.ts +2 -1
  627. package/src/deviceSDK/tasks/getDeviceInfo.ts +2 -0
  628. package/src/deviceSDK/tasks/getLatestFirmware.ts +4 -4
  629. package/src/deviceSDK/tasks/updateFirmware.ts +2 -0
  630. package/src/domain/getTokensWithFunds.test.ts +32 -3
  631. package/src/e2e/data/assetsDrawer.ts +8 -0
  632. package/src/e2e/deviceInteraction/DeviceController.ts +85 -0
  633. package/src/e2e/enum/Account.ts +0 -6
  634. package/src/e2e/enum/Currency.ts +2 -6
  635. package/src/e2e/enum/ReceiveFundsOptions.ts +7 -0
  636. package/src/e2e/families/algorand.ts +20 -13
  637. package/src/e2e/families/aptos.ts +28 -16
  638. package/src/e2e/families/bitcoin.ts +53 -39
  639. package/src/e2e/families/cardano.ts +47 -36
  640. package/src/e2e/families/celo.ts +18 -12
  641. package/src/e2e/families/cosmos.ts +35 -23
  642. package/src/e2e/families/evm.ts +24 -13
  643. package/src/e2e/families/hedera.ts +6 -4
  644. package/src/e2e/families/kaspa.ts +28 -16
  645. package/src/e2e/families/multiversX.ts +16 -10
  646. package/src/e2e/families/near.ts +23 -17
  647. package/src/e2e/families/osmosis.ts +19 -13
  648. package/src/e2e/families/polkadot.ts +19 -13
  649. package/src/e2e/families/solana.ts +35 -23
  650. package/src/e2e/families/stellar.ts +18 -13
  651. package/src/e2e/families/sui.ts +15 -9
  652. package/src/e2e/families/tezos.ts +25 -18
  653. package/src/e2e/families/tron.ts +19 -13
  654. package/src/e2e/families/xrp.ts +19 -13
  655. package/src/e2e/speculos.ts +174 -139
  656. package/src/exchange/providers/swap.ts +4 -0
  657. package/src/exchange/swap/getCompleteSwapHistory.ts +1 -1
  658. package/src/exchange/swap/hooks/useSelectableCurrencies.test.ts +4 -0
  659. package/src/exchange/swap/hooks/useSelectableCurrencies.ts +1 -1
  660. package/src/exchange/swap/hooks/v5/useFetchCurrencyAll.ts +2 -3
  661. package/src/exchange/swap/hooks/v5/useFilteredProviders.ts +37 -12
  662. package/src/families/algorand/bridge.integration.test.ts +1 -1
  663. package/src/families/aptos/__snapshots__/bridge.integration.test.ts.snap +111 -1
  664. package/src/families/aptos/bridge.integration.test.ts +1 -1
  665. package/src/families/bitcoin/bridge.integration.test.ts +1 -1
  666. package/src/families/bitcoin/satstack.test.ts +5 -8
  667. package/src/families/canton/bridge/mock.ts +1 -0
  668. package/src/families/canton/react.ts +50 -0
  669. package/src/families/cardano/__snapshots__/bridge.integration.test.ts.snap +2 -2
  670. package/src/families/cardano/bridge.integration.test.ts +1 -1
  671. package/src/families/casper/bridge.integration.test.ts +1 -1
  672. package/src/families/celo/bridge.integration.test.ts +1 -1
  673. package/src/families/cosmos/datasets/__snapshots__/cosmos.integration.test.ts.snap +1 -1
  674. package/src/families/cosmos/datasets/axelar.integration.test.ts +1 -1
  675. package/src/families/cosmos/datasets/babylon.integration.test.ts +1 -1
  676. package/src/families/cosmos/datasets/coreum.integration.test.ts +1 -1
  677. package/src/families/cosmos/datasets/cosmos.integration.test.ts +1 -1
  678. package/src/families/cosmos/datasets/cryptoOrg.integration.test.ts +1 -1
  679. package/src/families/cosmos/datasets/desmos.integration.test.ts +1 -1
  680. package/src/families/cosmos/datasets/dydx.integration.FIXME.ts +1 -1
  681. package/src/families/cosmos/datasets/injective.integration.test.ts +1 -1
  682. package/src/families/cosmos/datasets/mantra.integration.test.ts +1 -1
  683. package/src/families/cosmos/datasets/onomy.integration.test.ts +1 -1
  684. package/src/families/cosmos/datasets/osmosis.integration.test.ts +1 -1
  685. package/src/families/cosmos/datasets/persistence.integration.test.ts +1 -1
  686. package/src/families/cosmos/datasets/quicksilver.integration.test.ts +1 -1
  687. package/src/families/cosmos/datasets/secretNetwork.integration.FIXME.ts +1 -1
  688. package/src/families/cosmos/datasets/seiNetwork.integration.test.ts +1 -1
  689. package/src/families/cosmos/datasets/stargaze.integration.test.ts +1 -1
  690. package/src/families/cosmos/datasets/umee.integration.test.ts +1 -1
  691. package/src/families/cosmos/datasets/xion.integration.test.ts +1 -1
  692. package/src/families/cosmos/datasets/zenrock.integration.test.ts +1 -1
  693. package/src/families/evm/bridge.integration.test.ts +1 -1
  694. package/src/families/evm/config.ts +49 -0
  695. package/src/families/evm/setup.ts +0 -12
  696. package/src/families/filecoin/bridge.integration.test.ts +1 -1
  697. package/src/families/hedera/__snapshots__/bridge.integration.test.ts.snap +191 -596
  698. package/src/families/hedera/bridge.integration.test.ts +1 -1
  699. package/src/families/icon/bridge.integration.test.ts +1 -1
  700. package/src/families/internet_computer/bridge.integration.test.ts +1 -1
  701. package/src/families/kaspa/bridge.integration.test.ts +1 -1
  702. package/src/families/mina/bridge.integration.test.ts +1 -1
  703. package/src/families/multiversx/bridge.integration.test.ts +1 -1
  704. package/src/families/multiversx/synchronisation.integration.test.ts +1 -1
  705. package/src/families/near/bridge.integration.test.ts +1 -1
  706. package/src/families/polkadot/bridge.integration.test.ts +1 -1
  707. package/src/families/solana/bridge/mock.ts +13 -23
  708. package/src/families/solana/bridge.integration.test.ts +1 -1
  709. package/src/families/solana/config.ts +0 -1
  710. package/src/families/solana/setup.ts +37 -24
  711. package/src/families/stacks/__tests__/sync.integration.test.ts +1 -1
  712. package/src/families/stacks/bridge.integration.test.ts +1 -1
  713. package/src/families/stellar/__snapshots__/bridge.integration.test.ts.snap +279 -15
  714. package/src/families/stellar/bridge.integration.test.ts +1 -1
  715. package/src/families/sui/bridge.integration.test.ts +1 -1
  716. package/src/families/tezos/bridge.integration.test.ts +1 -1
  717. package/src/families/ton/bridge.integration.test.ts +1 -1
  718. package/src/families/tron/bridge.integration.test.ts +1 -1
  719. package/src/families/tron/data.mock.ts +4 -8
  720. package/src/families/vechain/bridge.integration.test.ts +1 -1
  721. package/src/families/xrp/bridge.integration.test.ts +1 -1
  722. package/src/featureFlags/defaultFeatures.ts +11 -0
  723. package/src/featureFlags/stakePrograms/index.ts +18 -0
  724. package/src/market/hooks/useMarketDataProvider.ts +1 -0
  725. package/src/market/utils/types.ts +1 -0
  726. package/src/modularDrawer/hooks/__test__/useAssetAccountCounts.test.ts +0 -5
  727. package/src/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.ts +11 -0
  728. package/src/modularDrawer/hooks/useNetworkAccountCounts.tsx +1 -6
  729. package/src/modularDrawer/modules/__test__/createAssetConfiguration.test.tsx +2 -2
  730. package/src/modularDrawer/modules/createNetworkConfiguration.ts +1 -2
  731. package/src/modularDrawer/utils/__tests__/groupCurrenciesByAsset.test.ts +88 -0
  732. package/src/modularDrawer/utils/{groupCurrenciesByProvider.ts → groupCurrenciesByAsset.ts} +5 -5
  733. package/src/modularDrawer/utils/index.ts +1 -1
  734. package/src/modularDrawer/utils/type.ts +0 -5
  735. package/src/platform/filters.ts +1 -23
  736. package/src/platform/helpers.ts +2 -49
  737. package/src/platform/react.ts +86 -22
  738. package/src/platform/types.ts +1 -1
  739. package/src/test-helpers/cryptoAssetsStore.ts +5 -0
  740. package/src/utils/__tests__/getAccountTuplesForCurrency.test.ts +3 -33
  741. package/src/utils/getAccountTuplesForCurrency.ts +1 -6
  742. package/src/wallet-api/ACRE/server.test.ts +3 -4
  743. package/src/wallet-api/ACRE/server.ts +1 -1
  744. package/src/wallet-api/Exchange/server.test.ts +0 -5
  745. package/src/wallet-api/Exchange/server.ts +8 -7
  746. package/src/wallet-api/converters.ts +6 -1
  747. package/src/wallet-api/logic.test.ts +3 -3
  748. package/src/wallet-api/logic.ts +1 -1
  749. package/src/wallet-api/react.ts +312 -137
  750. package/src/wallet-api/tracking.ts +22 -0
  751. package/src/wallet-api/types.ts +5 -0
  752. package/src/wallet-api/useDappLogic.ts +91 -106
  753. package/src/wallet-api/utils/deriveAccountIdForManifest.ts +14 -2
  754. package/lib/__tests__/test-helpers/setup.d.ts +0 -2
  755. package/lib/__tests__/test-helpers/setup.d.ts.map +0 -1
  756. package/lib/__tests__/test-helpers/setup.js.map +0 -1
  757. package/lib/bridge/crypto-assets/index.d.ts +0 -4
  758. package/lib/bridge/crypto-assets/index.d.ts.map +0 -1
  759. package/lib/bridge/crypto-assets/index.js +0 -22
  760. package/lib/bridge/crypto-assets/index.js.map +0 -1
  761. package/lib/deposit/helper.d.ts +0 -8
  762. package/lib/deposit/helper.d.ts.map +0 -1
  763. package/lib/deposit/helper.js +0 -125
  764. package/lib/deposit/helper.js.map +0 -1
  765. package/lib/deposit/index.d.ts +0 -3
  766. package/lib/deposit/index.d.ts.map +0 -1
  767. package/lib/deposit/index.js +0 -6
  768. package/lib/deposit/index.js.map +0 -1
  769. package/lib/deposit/mock.d.ts +0 -75
  770. package/lib/deposit/mock.d.ts.map +0 -1
  771. package/lib/deposit/mock.js +0 -15111
  772. package/lib/deposit/mock.js.map +0 -1
  773. package/lib/deposit/useGroupedCurrenciesByProvider.hook.d.ts +0 -3
  774. package/lib/deposit/useGroupedCurrenciesByProvider.hook.d.ts.map +0 -1
  775. package/lib/deposit/useGroupedCurrenciesByProvider.hook.js +0 -40
  776. package/lib/deposit/useGroupedCurrenciesByProvider.hook.js.map +0 -1
  777. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts +0 -3
  778. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts.map +0 -1
  779. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.js +0 -26
  780. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.js.map +0 -1
  781. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts +0 -22
  782. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts.map +0 -1
  783. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +0 -41
  784. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +0 -1
  785. package/lib/modularDrawer/utils/currencyUtils.d.ts +0 -10
  786. package/lib/modularDrawer/utils/currencyUtils.d.ts.map +0 -1
  787. package/lib/modularDrawer/utils/currencyUtils.js +0 -74
  788. package/lib/modularDrawer/utils/currencyUtils.js.map +0 -1
  789. package/lib/modularDrawer/utils/groupCurrenciesByProvider.d.ts.map +0 -1
  790. package/lib/modularDrawer/utils/groupCurrenciesByProvider.js +0 -21
  791. package/lib/modularDrawer/utils/groupCurrenciesByProvider.js.map +0 -1
  792. package/lib-es/__tests__/test-helpers/setup.d.ts +0 -2
  793. package/lib-es/__tests__/test-helpers/setup.d.ts.map +0 -1
  794. package/lib-es/__tests__/test-helpers/setup.js +0 -18
  795. package/lib-es/__tests__/test-helpers/setup.js.map +0 -1
  796. package/lib-es/bridge/crypto-assets/index.d.ts +0 -4
  797. package/lib-es/bridge/crypto-assets/index.d.ts.map +0 -1
  798. package/lib-es/bridge/crypto-assets/index.js +0 -17
  799. package/lib-es/bridge/crypto-assets/index.js.map +0 -1
  800. package/lib-es/deposit/helper.d.ts +0 -8
  801. package/lib-es/deposit/helper.d.ts.map +0 -1
  802. package/lib-es/deposit/helper.js +0 -117
  803. package/lib-es/deposit/helper.js.map +0 -1
  804. package/lib-es/deposit/index.d.ts +0 -3
  805. package/lib-es/deposit/index.d.ts.map +0 -1
  806. package/lib-es/deposit/index.js +0 -3
  807. package/lib-es/deposit/index.js.map +0 -1
  808. package/lib-es/deposit/mock.d.ts +0 -75
  809. package/lib-es/deposit/mock.d.ts.map +0 -1
  810. package/lib-es/deposit/mock.js +0 -15108
  811. package/lib-es/deposit/mock.js.map +0 -1
  812. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.d.ts +0 -3
  813. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.d.ts.map +0 -1
  814. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.js +0 -36
  815. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.js.map +0 -1
  816. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts +0 -3
  817. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts.map +0 -1
  818. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.js +0 -18
  819. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.js.map +0 -1
  820. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts +0 -22
  821. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts.map +0 -1
  822. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +0 -38
  823. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +0 -1
  824. package/lib-es/modularDrawer/utils/currencyUtils.d.ts +0 -10
  825. package/lib-es/modularDrawer/utils/currencyUtils.d.ts.map +0 -1
  826. package/lib-es/modularDrawer/utils/currencyUtils.js +0 -65
  827. package/lib-es/modularDrawer/utils/currencyUtils.js.map +0 -1
  828. package/lib-es/modularDrawer/utils/groupCurrenciesByProvider.d.ts.map +0 -1
  829. package/lib-es/modularDrawer/utils/groupCurrenciesByProvider.js.map +0 -1
  830. package/src/bridge/crypto-assets/index.ts +0 -23
  831. package/src/deposit/deposit.integration.test.ts +0 -88
  832. package/src/deposit/deposit.test.ts +0 -684
  833. package/src/deposit/helper.ts +0 -143
  834. package/src/deposit/index.ts +0 -3
  835. package/src/deposit/mock.ts +0 -15112
  836. package/src/deposit/useGroupedCurrenciesByProvider.hook.ts +0 -46
  837. package/src/e2e/deviceInteraction/ButtonDeviceSimulator.ts +0 -23
  838. package/src/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.ts +0 -49
  839. package/src/modularDrawer/modules/__test__/createNetworkConfiguration.test.ts +0 -342
  840. package/src/modularDrawer/utils/__tests__/currencyUtils.test.ts +0 -126
  841. package/src/modularDrawer/utils/currencyUtils.ts +0 -95
@@ -1,78 +1,45 @@
1
1
  import { useMemo, useState, useEffect, useRef, useCallback } from "react";
2
+ import { useDispatch } from "react-redux";
2
3
  import semver from "semver";
3
4
  import { intervalToDuration } from "date-fns";
4
- import { useWalletAPIServer as useWalletAPIServerRaw } from "@ledgerhq/wallet-api-server/lib/react";
5
- import { firstValueFrom } from "rxjs";
5
+ import { useWalletAPIServer as useWalletAPIServerRaw, } from "@ledgerhq/wallet-api-server";
6
6
  import { first } from "rxjs/operators";
7
- import { accountToWalletAPIAccount, currencyToWalletAPICurrency, getAccountIdFromWalletAccountId, } from "./converters";
7
+ import { getEnv } from "@ledgerhq/live-env";
8
+ import { UserRefusedOnDevice } from "@ledgerhq/errors";
9
+ import { endpoints as calEndpoints } from "@ledgerhq/cryptoassets/cal-client/state-manager/api";
10
+ import { accountToWalletAPIAccount, currencyToWalletAPICurrency, setWalletApiIdForAccountId, } from "./converters";
8
11
  import { isWalletAPISupportedCurrency } from "./helpers";
9
12
  import { getMainAccount, getParentAccount } from "../account";
10
- import { listCurrencies, findCryptoCurrencyById, getCryptoCurrencyById } from "../currencies";
11
- import { getCryptoAssetsStore } from "../bridge/crypto-assets/index";
13
+ import { listSupportedCurrencies } from "../currencies";
14
+ import { getCryptoAssetsStore } from "@ledgerhq/cryptoassets/state";
12
15
  import { bitcoinFamilyAccountGetXPubLogic, broadcastTransactionLogic, startExchangeLogic, completeExchangeLogic, receiveOnAccountLogic, signMessageLogic, signTransactionLogic, bitcoinFamilyAccountGetAddressLogic, bitcoinFamilyAccountGetPublicKeyLogic, signRawTransactionLogic, } from "./logic";
13
16
  import { getAccountBridge } from "../bridge";
14
- import { getEnv } from "@ledgerhq/live-env";
15
17
  import openTransportAsSubject from "../hw/openTransportAsSubject";
16
- import { UserRefusedOnDevice } from "@ledgerhq/errors";
17
18
  import { DISCOVER_INITIAL_CATEGORY, INITIAL_PLATFORM_STATE, MAX_RECENTLY_USED_LENGTH, } from "./constants";
19
+ import { useCurrenciesUnderFeatureFlag } from "../modularDrawer/hooks/useCurrenciesUnderFeatureFlag";
18
20
  export function safeGetRefValue(ref) {
19
21
  if (!ref.current) {
20
22
  throw new Error("Ref objects doesn't have a current value");
21
23
  }
22
24
  return ref.current;
23
25
  }
24
- export function useWalletAPIAccounts(walletState, accounts) {
25
- return useMemo(() => {
26
- return accounts.map(account => {
27
- const parentAccount = getParentAccount(account, accounts);
28
- return accountToWalletAPIAccount(walletState, account, parentAccount);
26
+ export function useSetWalletAPIAccounts(accounts) {
27
+ useEffect(() => {
28
+ accounts.forEach(account => {
29
+ setWalletApiIdForAccountId(account.id);
29
30
  });
30
- }, [walletState, accounts]);
31
+ }, [accounts]);
31
32
  }
32
- export function useWalletAPICurrencies() {
33
- return useMemo(() => {
34
- return listCurrencies(true).reduce((filtered, currency) => {
35
- if (isWalletAPISupportedCurrency(currency)) {
36
- filtered.push(currencyToWalletAPICurrency(currency));
37
- }
38
- return filtered;
39
- }, []);
40
- }, []);
41
- }
42
- export function useManifestCurrencies(manifest) {
33
+ export function useDAppManifestCurrencyIds(manifest) {
43
34
  return useMemo(() => {
44
35
  return (manifest.dapp?.networks.map(network => {
45
- return getCryptoCurrencyById(network.currency);
36
+ return network.currency;
46
37
  }) ?? []);
47
38
  }, [manifest.dapp?.networks]);
48
39
  }
49
- export function useGetAccountIds(accounts$) {
50
- const [accounts, setAccounts] = useState([]);
51
- useEffect(() => {
52
- if (!accounts$) {
53
- return undefined;
54
- }
55
- const subscription = accounts$.subscribe(walletAccounts => {
56
- setAccounts(walletAccounts);
57
- });
58
- return () => {
59
- subscription.unsubscribe();
60
- };
61
- }, [accounts$]);
62
- return useMemo(() => {
63
- if (!accounts$) {
64
- return undefined;
65
- }
66
- return accounts.reduce((accountIds, account) => {
67
- accountIds.set(getAccountIdFromWalletAccountId(account.id), true);
68
- return accountIds;
69
- }, new Map());
70
- }, [accounts, accounts$]);
71
- }
72
40
  export function usePermission(manifest) {
73
41
  return useMemo(() => ({
74
- currencyIds: manifest.currencies === "*" ? ["**"] : manifest.currencies,
75
- methodIds: manifest.permissions, // TODO remove when using the correct manifest type
42
+ methodIds: manifest.permissions,
76
43
  }), [manifest]);
77
44
  }
78
45
  function useTransport(postMessage) {
@@ -90,7 +57,7 @@ export function useConfig({ appId, userId, tracking, wallet, mevProtected, }) {
90
57
  tracking,
91
58
  wallet,
92
59
  mevProtected,
93
- }), [appId, tracking, userId, wallet]);
60
+ }), [appId, mevProtected, tracking, userId, wallet]);
94
61
  }
95
62
  function useDeviceTransport({ manifest, tracking }) {
96
63
  const ref = useRef();
@@ -140,73 +107,259 @@ function useDeviceTransport({ manifest, tracking }) {
140
107
  return useMemo(() => ({ ref, subscribe, close, exchange }), [close, exchange, subscribe]);
141
108
  }
142
109
  export function useWalletAPIServer({ walletState, manifest, accounts, tracking, config, webviewHook, uiHook: { "account.request": uiAccountRequest, "account.receive": uiAccountReceive, "message.sign": uiMessageSign, "storage.get": uiStorageGet, "storage.set": uiStorageSet, "transaction.sign": uiTxSign, "transaction.signRaw": uiTxSignRaw, "transaction.broadcast": uiTxBroadcast, "device.transport": uiDeviceTransport, "device.select": uiDeviceSelect, "exchange.start": uiExchangeStart, "exchange.complete": uiExchangeComplete, }, customHandlers, }) {
110
+ const dispatch = useDispatch();
111
+ const { deactivatedCurrencyIds } = useCurrenciesUnderFeatureFlag();
143
112
  const permission = usePermission(manifest);
144
113
  const transport = useTransport(webviewHook.postMessage);
145
114
  const [widgetLoaded, setWidgetLoaded] = useState(false);
146
- const walletAPIAccounts = useWalletAPIAccounts(walletState, accounts);
147
- const walletAPICurrencies = useWalletAPICurrencies();
115
+ // We need to set the wallet API account IDs mapping upfront
116
+ // If we don't want the map to be empty when requesting an account
117
+ useSetWalletAPIAccounts(accounts);
148
118
  const { server, onMessage } = useWalletAPIServerRaw({
149
119
  transport,
150
120
  config,
151
- accounts: walletAPIAccounts,
152
- currencies: walletAPICurrencies,
153
121
  permission,
154
122
  customHandlers,
155
123
  });
156
124
  useEffect(() => {
157
125
  tracking.load(manifest);
158
126
  }, [tracking, manifest]);
127
+ // TODO: refactor each handler into its own logic function for clarity
128
+ useEffect(() => {
129
+ server.setHandler("currency.list", async ({ currencyIds }) => {
130
+ tracking.currencyListRequested(manifest);
131
+ try {
132
+ // 1. Parse manifest currency patterns to determine what to include
133
+ const manifestCurrencyIds = manifest.currencies === "*" ? ["**"] : manifest.currencies;
134
+ // 2. Apply query filter early - intersect with manifest patterns
135
+ const queryCurrencyIdsSet = currencyIds ? new Set(currencyIds) : undefined;
136
+ let effectiveCurrencyIds = manifestCurrencyIds;
137
+ if (queryCurrencyIdsSet) {
138
+ // If we have a query filter, narrow down what we need to fetch
139
+ effectiveCurrencyIds = manifestCurrencyIds.flatMap(manifestId => {
140
+ if (manifestId === "**") {
141
+ // Query can ask for anything, so use the query list
142
+ return [...queryCurrencyIdsSet];
143
+ }
144
+ else if (manifestId.endsWith("/**")) {
145
+ // Pattern like "ethereum/**" - keep tokens from query that match this family
146
+ const family = manifestId.slice(0, -3);
147
+ return [...queryCurrencyIdsSet].filter(qId => qId.startsWith(`${family}/`));
148
+ }
149
+ else if (queryCurrencyIdsSet.has(manifestId)) {
150
+ // Specific currency/token that's in the query
151
+ return [manifestId];
152
+ }
153
+ // Not in query, skip it
154
+ return [];
155
+ });
156
+ }
157
+ // 3. Parse effective currency IDs to determine what to fetch
158
+ const includeAllCurrencies = effectiveCurrencyIds.includes("**");
159
+ const specificCurrencies = new Set();
160
+ const tokenFamilies = new Set();
161
+ const specificTokenIds = new Set();
162
+ for (const id of effectiveCurrencyIds) {
163
+ if (id === "**") {
164
+ // Already handled above
165
+ continue;
166
+ }
167
+ else if (id.endsWith("/**")) {
168
+ // Pattern like "ethereum/**" or "solana/**" - include tokens for this family
169
+ const family = id.slice(0, -3);
170
+ tokenFamilies.add(family);
171
+ // Additionally include the parent currency itself
172
+ specificCurrencies.add(family);
173
+ }
174
+ else if (id.includes("/")) {
175
+ // Specific token ID like "ethereum/erc20/usd__coin"
176
+ specificTokenIds.add(id);
177
+ }
178
+ else {
179
+ // Specific currency like "bitcoin" or "ethereum"
180
+ specificCurrencies.add(id);
181
+ }
182
+ }
183
+ // 4. Gather all supported parent currencies
184
+ const allCurrencies = listSupportedCurrencies().reduce((acc, c) => {
185
+ if (isWalletAPISupportedCurrency(c) && !deactivatedCurrencyIds.has(c.id))
186
+ acc.push(currencyToWalletAPICurrency(c));
187
+ return acc;
188
+ }, []);
189
+ // 5. Determine which currencies to include based on patterns
190
+ let includedCurrencies = [];
191
+ if (includeAllCurrencies) {
192
+ includedCurrencies = allCurrencies;
193
+ }
194
+ else {
195
+ includedCurrencies = allCurrencies.filter(c => specificCurrencies.has(c.id));
196
+ }
197
+ // 6. Fetch specific tokens by ID if any
198
+ const specificTokens = [];
199
+ if (specificTokenIds.size > 0) {
200
+ const tokenPromises = [...specificTokenIds].map(async (tokenId) => {
201
+ const token = await getCryptoAssetsStore().findTokenById(tokenId);
202
+ return token ? currencyToWalletAPICurrency(token) : null;
203
+ });
204
+ const resolvedTokens = await Promise.all(tokenPromises);
205
+ specificTokens.push(...resolvedTokens.filter((t) => t !== null));
206
+ }
207
+ // 7. Determine which token families to fetch (only if not already fetched as specific tokens)
208
+ const familiesToFetch = new Set();
209
+ if (includeAllCurrencies) {
210
+ // Fetch tokens for all currency families
211
+ allCurrencies.forEach(c => {
212
+ if (c.type === "CryptoCurrency")
213
+ familiesToFetch.add(c.family);
214
+ });
215
+ }
216
+ else if (tokenFamilies.size > 0) {
217
+ // Only fetch tokens for families explicitly marked with /**
218
+ tokenFamilies.forEach(family => familiesToFetch.add(family));
219
+ }
220
+ // 8. Fetch tokens for relevant families
221
+ const fetchAllPagesForFamily = async (family) => {
222
+ const args = { networkFamily: family, pageSize: 1000 };
223
+ let hasNextPage = true;
224
+ let data;
225
+ while (hasNextPage) {
226
+ const querySub = dispatch(calEndpoints.getTokensData.initiate(args, data ? { direction: "forward" } : undefined));
227
+ try {
228
+ const result = await querySub;
229
+ data = result.data;
230
+ hasNextPage = result.hasNextPage;
231
+ if (result.error)
232
+ throw result.error;
233
+ }
234
+ finally {
235
+ querySub.unsubscribe();
236
+ }
237
+ }
238
+ return (data?.pages ?? []).flatMap(p => p.tokens);
239
+ };
240
+ const tokensByFamily = await Promise.all([...familiesToFetch].map(f => fetchAllPagesForFamily(f)));
241
+ // 9. Combine all results (no additional filter needed since we pre-filtered)
242
+ const result = tokensByFamily.reduce((acc, tokens) => [...acc, ...tokens.map(t => currencyToWalletAPICurrency(t))], [...includedCurrencies, ...specificTokens]);
243
+ tracking.currencyListSuccess(manifest);
244
+ return result;
245
+ }
246
+ catch (err) {
247
+ tracking.currencyListFail(manifest);
248
+ throw err;
249
+ }
250
+ });
251
+ }, [walletState, manifest, server, tracking, dispatch, deactivatedCurrencyIds]);
252
+ useEffect(() => {
253
+ server.setHandler("account.list", ({ currencyIds }) => {
254
+ tracking.accountListRequested(manifest);
255
+ try {
256
+ // 1. Parse manifest currency patterns to determine what to include
257
+ const manifestCurrencyIds = manifest.currencies === "*" ? ["**"] : manifest.currencies;
258
+ // 2. Apply query filter early - intersect with manifest patterns
259
+ const queryCurrencyIdsSet = currencyIds ? new Set(currencyIds) : undefined;
260
+ let effectiveCurrencyIds = manifestCurrencyIds;
261
+ if (queryCurrencyIdsSet) {
262
+ // If we have a query filter, narrow down what we need to check
263
+ effectiveCurrencyIds = manifestCurrencyIds.flatMap(manifestId => {
264
+ if (manifestId === "**") {
265
+ // Query can ask for anything, so use the query list
266
+ return [...queryCurrencyIdsSet];
267
+ }
268
+ else if (manifestId.endsWith("/**")) {
269
+ // Pattern like "ethereum/**" - keep tokens from query that match this family
270
+ const family = manifestId.slice(0, -3);
271
+ return [...queryCurrencyIdsSet].filter(qId => qId.startsWith(`${family}/`));
272
+ }
273
+ else if (queryCurrencyIdsSet.has(manifestId)) {
274
+ // Specific currency/token that's in the query
275
+ return [manifestId];
276
+ }
277
+ // Not in query, skip it
278
+ return [];
279
+ });
280
+ }
281
+ // 3. Build a set of allowed currency IDs based on effective patterns
282
+ const allowedCurrencyIds = new Set();
283
+ const includeAllCurrencies = effectiveCurrencyIds.includes("**");
284
+ const tokenFamilyPrefixes = new Set();
285
+ for (const id of effectiveCurrencyIds) {
286
+ if (id === "**") {
287
+ // Will match all currencies
288
+ continue;
289
+ }
290
+ else if (id.endsWith("/**")) {
291
+ // Pattern like "ethereum/**" - store prefix for matching
292
+ const family = id.slice(0, -3);
293
+ tokenFamilyPrefixes.add(family);
294
+ }
295
+ else {
296
+ // Specific currency/token ID
297
+ allowedCurrencyIds.add(id);
298
+ }
299
+ }
300
+ // 4. Filter accounts based on effective currency IDs
301
+ const wapiAccounts = accounts.reduce((acc, account) => {
302
+ const parentAccount = getParentAccount(account, accounts);
303
+ const accountCurrencyId = account.type === "TokenAccount" ? account.token.id : account.currency.id;
304
+ const parentCurrencyId = account.type === "TokenAccount" ? account.token.parentCurrency.id : account.currency.id;
305
+ // Check if account currency ID matches the effective patterns
306
+ const isAllowed = includeAllCurrencies ||
307
+ allowedCurrencyIds.has(accountCurrencyId) ||
308
+ tokenFamilyPrefixes.has(parentCurrencyId);
309
+ if (isAllowed) {
310
+ acc.push(accountToWalletAPIAccount(walletState, account, parentAccount));
311
+ }
312
+ return acc;
313
+ }, []);
314
+ tracking.accountListSuccess(manifest);
315
+ return wapiAccounts;
316
+ }
317
+ catch (err) {
318
+ tracking.accountListFail(manifest);
319
+ throw err;
320
+ }
321
+ });
322
+ }, [walletState, manifest, server, tracking, uiAccountRequest, accounts]);
159
323
  useEffect(() => {
160
324
  if (!uiAccountRequest)
161
325
  return;
162
- server.setHandler("account.request", async ({ accounts$, currencies$, drawerConfiguration, areCurrenciesFiltered, useCase }) => {
326
+ server.setHandler("account.request", async ({ currencyIds, drawerConfiguration, areCurrenciesFiltered, useCase }) => {
163
327
  tracking.requestAccountRequested(manifest);
164
- const currencies = await firstValueFrom(currencies$);
165
328
  return new Promise((resolve, reject) => {
166
- (async () => {
167
- try {
168
- // handle no curencies selected case
169
- const currencyList = [];
170
- for (const { id } of currencies) {
171
- const currency = findCryptoCurrencyById(id) || (await getCryptoAssetsStore().findTokenById(id));
172
- if (currency) {
173
- currencyList.push(currency);
174
- }
175
- }
176
- let done = false;
177
- uiAccountRequest({
178
- accounts$,
179
- currencies: currencyList,
180
- drawerConfiguration,
181
- areCurrenciesFiltered,
182
- useCase,
183
- onSuccess: (account, parentAccount) => {
184
- if (done)
185
- return;
186
- done = true;
187
- tracking.requestAccountSuccess(manifest);
188
- resolve(accountToWalletAPIAccount(walletState, account, parentAccount));
189
- },
190
- onCancel: () => {
191
- if (done)
192
- return;
193
- done = true;
194
- tracking.requestAccountFail(manifest);
195
- reject(new Error("Canceled by user"));
196
- },
197
- });
198
- }
199
- catch (error) {
200
- reject(error);
201
- }
202
- })();
329
+ let done = false;
330
+ try {
331
+ uiAccountRequest({
332
+ currencyIds,
333
+ drawerConfiguration,
334
+ areCurrenciesFiltered,
335
+ useCase,
336
+ onSuccess: (account, parentAccount) => {
337
+ if (done)
338
+ return;
339
+ done = true;
340
+ tracking.requestAccountSuccess(manifest);
341
+ resolve(accountToWalletAPIAccount(walletState, account, parentAccount));
342
+ },
343
+ onCancel: () => {
344
+ if (done)
345
+ return;
346
+ done = true;
347
+ tracking.requestAccountFail(manifest);
348
+ reject(new Error("Canceled by user"));
349
+ },
350
+ });
351
+ }
352
+ catch (error) {
353
+ tracking.requestAccountFail(manifest);
354
+ reject(error);
355
+ }
203
356
  });
204
357
  });
205
358
  }, [walletState, manifest, server, tracking, uiAccountRequest]);
206
359
  useEffect(() => {
207
360
  if (!uiAccountReceive)
208
361
  return;
209
- server.setHandler("account.receive", ({ account, tokenCurrency }) => receiveOnAccountLogic(walletState, { manifest, accounts, tracking }, account.id, (account, parentAccount, accountAddress) => new Promise((resolve, reject) => {
362
+ server.setHandler("account.receive", ({ accountId, tokenCurrency }) => receiveOnAccountLogic(walletState, { manifest, accounts, tracking }, accountId, (account, parentAccount, accountAddress) => new Promise((resolve, reject) => {
210
363
  let done = false;
211
364
  return uiAccountReceive({
212
365
  account,
@@ -239,7 +392,7 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
239
392
  useEffect(() => {
240
393
  if (!uiMessageSign)
241
394
  return;
242
- server.setHandler("message.sign", ({ account, message, options }) => signMessageLogic({ manifest, accounts, tracking }, account.id, message.toString("hex"), (account, message) => new Promise((resolve, reject) => {
395
+ server.setHandler("message.sign", ({ accountId, message, options }) => signMessageLogic({ manifest, accounts, tracking }, accountId, message.toString("hex"), (account, message) => new Promise((resolve, reject) => {
243
396
  let done = false;
244
397
  return uiMessageSign({
245
398
  account,
@@ -284,31 +437,38 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
284
437
  useEffect(() => {
285
438
  if (!uiTxSign)
286
439
  return;
287
- server.setHandler("transaction.sign", async ({ account, tokenCurrency, transaction, options }) => {
288
- const signedOperation = await signTransactionLogic({ manifest, accounts, tracking }, account.id, transaction, (account, parentAccount, signFlowInfos) => new Promise((resolve, reject) => {
289
- let done = false;
290
- return uiTxSign({
291
- account,
292
- parentAccount,
293
- signFlowInfos,
294
- options,
295
- onSuccess: signedOperation => {
296
- if (done)
297
- return;
298
- done = true;
299
- tracking.signTransactionSuccess(manifest);
300
- resolve(signedOperation);
301
- },
302
- onError: error => {
303
- if (done)
304
- return;
305
- done = true;
306
- tracking.signTransactionFail(manifest);
307
- reject(error);
308
- },
440
+ server.setHandler("transaction.sign", async ({ accountId, tokenCurrency, transaction, options }) => {
441
+ let currency;
442
+ const signedOperation = await signTransactionLogic({ manifest, accounts, tracking }, accountId, transaction, (account, parentAccount, signFlowInfos) => {
443
+ currency =
444
+ account.type === "TokenAccount"
445
+ ? account.token.parentCurrency.id
446
+ : account.currency.id;
447
+ return new Promise((resolve, reject) => {
448
+ let done = false;
449
+ return uiTxSign({
450
+ account,
451
+ parentAccount,
452
+ signFlowInfos,
453
+ options,
454
+ onSuccess: signedOperation => {
455
+ if (done)
456
+ return;
457
+ done = true;
458
+ tracking.signTransactionSuccess(manifest);
459
+ resolve(signedOperation);
460
+ },
461
+ onError: error => {
462
+ if (done)
463
+ return;
464
+ done = true;
465
+ tracking.signTransactionFail(manifest);
466
+ reject(error);
467
+ },
468
+ });
309
469
  });
310
- }), tokenCurrency);
311
- return account.currency === "solana"
470
+ }, tokenCurrency);
471
+ return currency === "solana"
312
472
  ? Buffer.from(signedOperation.signature, "hex")
313
473
  : Buffer.from(signedOperation.signature);
314
474
  });
@@ -316,8 +476,8 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
316
476
  useEffect(() => {
317
477
  if (!uiTxSignRaw)
318
478
  return;
319
- server.setHandler("transaction.signRaw", async ({ account, transaction, broadcast, options }) => {
320
- const signedOperation = await signRawTransactionLogic({ manifest, accounts, tracking }, account.id, transaction, (account, parentAccount, tx) => new Promise((resolve, reject) => {
479
+ server.setHandler("transaction.signRaw", async ({ accountId, transaction, broadcast, options }) => {
480
+ const signedOperation = await signRawTransactionLogic({ manifest, accounts, tracking }, accountId, transaction, (account, parentAccount, tx) => new Promise((resolve, reject) => {
321
481
  let done = false;
322
482
  return uiTxSignRaw({
323
483
  account,
@@ -342,7 +502,7 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
342
502
  }));
343
503
  let hash;
344
504
  if (broadcast) {
345
- hash = await broadcastTransactionLogic({ manifest, accounts, tracking }, account.id, signedOperation, async (account, parentAccount, signedOperation) => {
505
+ hash = await broadcastTransactionLogic({ manifest, accounts, tracking }, accountId, signedOperation, async (account, parentAccount, signedOperation) => {
346
506
  const bridge = getAccountBridge(account, parentAccount);
347
507
  const mainAccount = getMainAccount(account, parentAccount);
348
508
  let optimisticOperation = signedOperation.operation;
@@ -374,9 +534,9 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
374
534
  useEffect(() => {
375
535
  if (!uiTxSign)
376
536
  return;
377
- server.setHandler("transaction.signAndBroadcast", async ({ account, tokenCurrency, transaction, options }) => {
537
+ server.setHandler("transaction.signAndBroadcast", async ({ accountId, tokenCurrency, transaction, options }) => {
378
538
  const sponsored = transaction.family === "ethereum" && transaction.sponsored;
379
- const signedTransaction = await signTransactionLogic({ manifest, accounts, tracking }, account.id, transaction, (account, parentAccount, signFlowInfos) => new Promise((resolve, reject) => {
539
+ const signedTransaction = await signTransactionLogic({ manifest, accounts, tracking }, accountId, transaction, (account, parentAccount, signFlowInfos) => new Promise((resolve, reject) => {
380
540
  let done = false;
381
541
  return uiTxSign({
382
542
  account,
@@ -399,7 +559,7 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
399
559
  },
400
560
  });
401
561
  }), tokenCurrency);
402
- return broadcastTransactionLogic({ manifest, accounts, tracking }, account.id, signedTransaction, async (account, parentAccount, signedOperation) => {
562
+ return broadcastTransactionLogic({ manifest, accounts, tracking }, accountId, signedTransaction, async (account, parentAccount, signedOperation) => {
403
563
  const bridge = getAccountBridge(account, parentAccount);
404
564
  const mainAccount = getMainAccount(account, parentAccount);
405
565
  let optimisticOperation = signedOperation.operation;
@@ -605,8 +765,8 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
605
765
  // retrofit of the exchange params to fit the old platform spec
606
766
  const request = {
607
767
  provider: params.provider,
608
- fromAccountId: params.fromAccount.id,
609
- toAccountId: params.exchangeType === "SWAP" ? params.toAccount.id : undefined,
768
+ fromAccountId: params.fromAccountId,
769
+ toAccountId: params.exchangeType === "SWAP" ? params.toAccountId : undefined,
610
770
  transaction: params.transaction,
611
771
  binaryPayload: params.binaryPayload.toString("hex"),
612
772
  signature: params.signature.toString("hex"),
@@ -639,7 +799,7 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
639
799
  });
640
800
  }, [uiExchangeComplete, accounts, manifest, server, tracking]);
641
801
  return {
642
- widgetLoaded,
802
+ widgetLoaded: widgetLoaded,
643
803
  onMessage,
644
804
  onLoad,
645
805
  onReload,
@@ -759,9 +919,9 @@ export function useRecentlyUsed(manifests, [recentlyUsedManifestsDb, setState])
759
919
  ...res,
760
920
  usedAt: calculateTimeDiff(recentlyUsed.usedAt),
761
921
  }
762
- : res;
922
+ : undefined;
763
923
  })
764
- .filter(manifest => manifest !== undefined), [recentlyUsedManifestsDb, manifests]);
924
+ .filter((manifest) => manifest !== undefined), [recentlyUsedManifestsDb, manifests]);
765
925
  const append = useCallback((manifest) => {
766
926
  setState(state => {
767
927
  const index = state.recentlyUsed.findIndex(({ id }) => id === manifest.id);