@ledgerhq/live-common 34.53.0-nightly.20251120023735 → 34.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (615) hide show
  1. package/lib/__tests__/test-helpers/bridge.d.ts.map +1 -1
  2. package/lib/__tests__/test-helpers/bridge.js +4 -0
  3. package/lib/__tests__/test-helpers/bridge.js.map +1 -1
  4. package/lib/__tests__/test-helpers/environment.js +0 -3
  5. package/lib/__tests__/test-helpers/environment.js.map +1 -1
  6. package/lib/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  7. package/lib/bridge/generic-alpaca/getAccountShape.js +10 -12
  8. package/lib/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  9. package/lib/currencies/helpers.d.ts +3 -1
  10. package/lib/currencies/helpers.d.ts.map +1 -1
  11. package/lib/currencies/helpers.js +27 -1
  12. package/lib/currencies/helpers.js.map +1 -1
  13. package/lib/dada-client/hooks/useAssetsData.d.ts +0 -1
  14. package/lib/dada-client/hooks/useAssetsData.d.ts.map +1 -1
  15. package/lib/dada-client/hooks/useAssetsData.js +0 -1
  16. package/lib/dada-client/hooks/useAssetsData.js.map +1 -1
  17. package/lib/deposit/helper.d.ts +8 -0
  18. package/lib/deposit/helper.d.ts.map +1 -0
  19. package/lib/deposit/helper.js +125 -0
  20. package/lib/deposit/helper.js.map +1 -0
  21. package/lib/deposit/index.d.ts +3 -0
  22. package/lib/deposit/index.d.ts.map +1 -0
  23. package/lib/deposit/index.js +6 -0
  24. package/lib/deposit/index.js.map +1 -0
  25. package/lib/deposit/mock.d.ts +75 -0
  26. package/lib/deposit/mock.d.ts.map +1 -0
  27. package/lib/deposit/mock.js +15111 -0
  28. package/lib/deposit/mock.js.map +1 -0
  29. package/lib/deposit/type.d.ts +17 -0
  30. package/lib/deposit/type.d.ts.map +1 -1
  31. package/lib/deposit/type.js.map +1 -1
  32. package/lib/deposit/useGroupedCurrenciesByProvider.hook.d.ts +3 -0
  33. package/lib/deposit/useGroupedCurrenciesByProvider.hook.d.ts.map +1 -0
  34. package/lib/deposit/useGroupedCurrenciesByProvider.hook.js +40 -0
  35. package/lib/deposit/useGroupedCurrenciesByProvider.hook.js.map +1 -0
  36. package/lib/deviceSDK/hooks/useBatteryStatuses.d.ts +1 -2
  37. package/lib/deviceSDK/hooks/useBatteryStatuses.d.ts.map +1 -1
  38. package/lib/deviceSDK/hooks/useBatteryStatuses.js +2 -4
  39. package/lib/deviceSDK/hooks/useBatteryStatuses.js.map +1 -1
  40. package/lib/deviceSDK/tasks/core.d.ts +1 -1
  41. package/lib/deviceSDK/tasks/core.d.ts.map +1 -1
  42. package/lib/deviceSDK/tasks/core.js +1 -1
  43. package/lib/deviceSDK/tasks/core.js.map +1 -1
  44. package/lib/deviceSDK/tasks/getDeviceInfo.d.ts.map +1 -1
  45. package/lib/deviceSDK/tasks/getDeviceInfo.js +0 -2
  46. package/lib/deviceSDK/tasks/getDeviceInfo.js.map +1 -1
  47. package/lib/deviceSDK/tasks/getLatestFirmware.d.ts.map +1 -1
  48. package/lib/deviceSDK/tasks/getLatestFirmware.js +2 -2
  49. package/lib/deviceSDK/tasks/getLatestFirmware.js.map +1 -1
  50. package/lib/deviceSDK/tasks/updateFirmware.d.ts.map +1 -1
  51. package/lib/deviceSDK/tasks/updateFirmware.js +0 -1
  52. package/lib/deviceSDK/tasks/updateFirmware.js.map +1 -1
  53. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts +3 -0
  54. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts.map +1 -0
  55. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.js +26 -0
  56. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.js.map +1 -0
  57. package/lib/e2e/enum/Account.d.ts +1 -0
  58. package/lib/e2e/enum/Account.d.ts.map +1 -1
  59. package/lib/e2e/enum/Account.js +1 -0
  60. package/lib/e2e/enum/Account.js.map +1 -1
  61. package/lib/e2e/enum/Currency.d.ts +1 -0
  62. package/lib/e2e/enum/Currency.d.ts.map +1 -1
  63. package/lib/e2e/enum/Currency.js +6 -2
  64. package/lib/e2e/enum/Currency.js.map +1 -1
  65. package/lib/e2e/families/algorand.d.ts +1 -1
  66. package/lib/e2e/families/algorand.d.ts.map +1 -1
  67. package/lib/e2e/families/algorand.js +5 -5
  68. package/lib/e2e/families/algorand.js.map +1 -1
  69. package/lib/e2e/families/aptos.d.ts +2 -2
  70. package/lib/e2e/families/aptos.d.ts.map +1 -1
  71. package/lib/e2e/families/aptos.js +9 -9
  72. package/lib/e2e/families/aptos.js.map +1 -1
  73. package/lib/e2e/families/bitcoin.d.ts +2 -2
  74. package/lib/e2e/families/bitcoin.d.ts.map +1 -1
  75. package/lib/e2e/families/bitcoin.js +11 -11
  76. package/lib/e2e/families/bitcoin.js.map +1 -1
  77. package/lib/e2e/families/cardano.d.ts +0 -6
  78. package/lib/e2e/families/cardano.d.ts.map +1 -1
  79. package/lib/e2e/families/cardano.js +26 -28
  80. package/lib/e2e/families/cardano.js.map +1 -1
  81. package/lib/e2e/families/celo.d.ts +1 -1
  82. package/lib/e2e/families/celo.d.ts.map +1 -1
  83. package/lib/e2e/families/celo.js +5 -5
  84. package/lib/e2e/families/celo.js.map +1 -1
  85. package/lib/e2e/families/cosmos.d.ts +2 -2
  86. package/lib/e2e/families/cosmos.d.ts.map +1 -1
  87. package/lib/e2e/families/cosmos.js +9 -9
  88. package/lib/e2e/families/cosmos.js.map +1 -1
  89. package/lib/e2e/families/evm.d.ts +0 -2
  90. package/lib/e2e/families/evm.d.ts.map +1 -1
  91. package/lib/e2e/families/evm.js +12 -13
  92. package/lib/e2e/families/evm.js.map +1 -1
  93. package/lib/e2e/families/hedera.d.ts +1 -1
  94. package/lib/e2e/families/hedera.d.ts.map +1 -1
  95. package/lib/e2e/families/hedera.js +5 -5
  96. package/lib/e2e/families/hedera.js.map +1 -1
  97. package/lib/e2e/families/kaspa.d.ts +2 -2
  98. package/lib/e2e/families/kaspa.d.ts.map +1 -1
  99. package/lib/e2e/families/kaspa.js +9 -9
  100. package/lib/e2e/families/kaspa.js.map +1 -1
  101. package/lib/e2e/families/multiversX.d.ts +1 -1
  102. package/lib/e2e/families/multiversX.d.ts.map +1 -1
  103. package/lib/e2e/families/multiversX.js +5 -5
  104. package/lib/e2e/families/multiversX.js.map +1 -1
  105. package/lib/e2e/families/near.d.ts +1 -1
  106. package/lib/e2e/families/near.d.ts.map +1 -1
  107. package/lib/e2e/families/near.js +6 -6
  108. package/lib/e2e/families/near.js.map +1 -1
  109. package/lib/e2e/families/osmosis.d.ts +1 -1
  110. package/lib/e2e/families/osmosis.d.ts.map +1 -1
  111. package/lib/e2e/families/osmosis.js +5 -5
  112. package/lib/e2e/families/osmosis.js.map +1 -1
  113. package/lib/e2e/families/polkadot.d.ts +1 -1
  114. package/lib/e2e/families/polkadot.d.ts.map +1 -1
  115. package/lib/e2e/families/polkadot.js +5 -5
  116. package/lib/e2e/families/polkadot.js.map +1 -1
  117. package/lib/e2e/families/solana.d.ts +2 -2
  118. package/lib/e2e/families/solana.d.ts.map +1 -1
  119. package/lib/e2e/families/solana.js +9 -9
  120. package/lib/e2e/families/solana.js.map +1 -1
  121. package/lib/e2e/families/stellar.d.ts +1 -1
  122. package/lib/e2e/families/stellar.d.ts.map +1 -1
  123. package/lib/e2e/families/stellar.js +5 -5
  124. package/lib/e2e/families/stellar.js.map +1 -1
  125. package/lib/e2e/families/sui.d.ts +1 -1
  126. package/lib/e2e/families/sui.d.ts.map +1 -1
  127. package/lib/e2e/families/sui.js +5 -5
  128. package/lib/e2e/families/sui.js.map +1 -1
  129. package/lib/e2e/families/tezos.d.ts +1 -1
  130. package/lib/e2e/families/tezos.d.ts.map +1 -1
  131. package/lib/e2e/families/tezos.js +8 -7
  132. package/lib/e2e/families/tezos.js.map +1 -1
  133. package/lib/e2e/families/tron.d.ts +1 -1
  134. package/lib/e2e/families/tron.d.ts.map +1 -1
  135. package/lib/e2e/families/tron.js +5 -5
  136. package/lib/e2e/families/tron.js.map +1 -1
  137. package/lib/e2e/families/xrp.d.ts +1 -1
  138. package/lib/e2e/families/xrp.d.ts.map +1 -1
  139. package/lib/e2e/families/xrp.js +5 -5
  140. package/lib/e2e/families/xrp.js.map +1 -1
  141. package/lib/e2e/index.d.ts +0 -15
  142. package/lib/e2e/index.d.ts.map +1 -1
  143. package/lib/e2e/speculos.d.ts +11 -11
  144. package/lib/e2e/speculos.d.ts.map +1 -1
  145. package/lib/e2e/speculos.js +78 -78
  146. package/lib/e2e/speculos.js.map +1 -1
  147. package/lib/exchange/providers/swap.d.ts +0 -1
  148. package/lib/exchange/providers/swap.d.ts.map +1 -1
  149. package/lib/exchange/providers/swap.js +1 -5
  150. package/lib/exchange/providers/swap.js.map +1 -1
  151. package/lib/exchange/swap/hooks/v5/useFetchCurrencyAll.d.ts.map +1 -1
  152. package/lib/exchange/swap/hooks/v5/useFetchCurrencyAll.js +3 -2
  153. package/lib/exchange/swap/hooks/v5/useFetchCurrencyAll.js.map +1 -1
  154. package/lib/exchange/swap/hooks/v5/useFilteredProviders.d.ts.map +1 -1
  155. package/lib/exchange/swap/hooks/v5/useFilteredProviders.js +10 -15
  156. package/lib/exchange/swap/hooks/v5/useFilteredProviders.js.map +1 -1
  157. package/lib/families/canton/bridge/mock.d.ts.map +1 -1
  158. package/lib/families/canton/bridge/mock.js +0 -1
  159. package/lib/families/canton/bridge/mock.js.map +1 -1
  160. package/lib/families/evm/config.d.ts.map +1 -1
  161. package/lib/families/evm/config.js +0 -49
  162. package/lib/families/evm/config.js.map +1 -1
  163. package/lib/featureFlags/defaultFeatures.d.ts +0 -3
  164. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  165. package/lib/featureFlags/defaultFeatures.js +0 -6
  166. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  167. package/lib/featureFlags/useFeature.d.ts +1 -1
  168. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  169. package/lib/market/hooks/useMarketDataProvider.js +0 -1
  170. package/lib/market/hooks/useMarketDataProvider.js.map +1 -1
  171. package/lib/market/utils/types.d.ts +0 -1
  172. package/lib/market/utils/types.d.ts.map +1 -1
  173. package/lib/market/utils/types.js.map +1 -1
  174. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts +22 -0
  175. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts.map +1 -0
  176. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +41 -0
  177. package/lib/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +1 -0
  178. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  179. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +0 -11
  180. package/lib/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  181. package/lib/modularDrawer/hooks/useNetworkAccountCounts.d.ts +5 -1
  182. package/lib/modularDrawer/hooks/useNetworkAccountCounts.d.ts.map +1 -1
  183. package/lib/modularDrawer/hooks/useNetworkAccountCounts.js +2 -2
  184. package/lib/modularDrawer/hooks/useNetworkAccountCounts.js.map +1 -1
  185. package/lib/modularDrawer/modules/createNetworkConfiguration.d.ts +1 -1
  186. package/lib/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
  187. package/lib/modularDrawer/modules/createNetworkConfiguration.js +2 -1
  188. package/lib/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
  189. package/lib/modularDrawer/utils/currencyUtils.d.ts +10 -0
  190. package/lib/modularDrawer/utils/currencyUtils.d.ts.map +1 -0
  191. package/lib/modularDrawer/utils/currencyUtils.js +74 -0
  192. package/lib/modularDrawer/utils/currencyUtils.js.map +1 -0
  193. package/lib/modularDrawer/utils/{groupCurrenciesByAsset.d.ts → groupCurrenciesByProvider.d.ts} +2 -2
  194. package/lib/modularDrawer/utils/groupCurrenciesByProvider.d.ts.map +1 -0
  195. package/lib/modularDrawer/utils/groupCurrenciesByProvider.js +21 -0
  196. package/lib/modularDrawer/utils/groupCurrenciesByProvider.js.map +1 -0
  197. package/lib/modularDrawer/utils/index.d.ts +1 -1
  198. package/lib/modularDrawer/utils/index.d.ts.map +1 -1
  199. package/lib/modularDrawer/utils/index.js +3 -3
  200. package/lib/modularDrawer/utils/index.js.map +1 -1
  201. package/lib/modularDrawer/utils/type.d.ts +5 -0
  202. package/lib/modularDrawer/utils/type.d.ts.map +1 -1
  203. package/lib/platform/filters.d.ts +2 -1
  204. package/lib/platform/filters.d.ts.map +1 -1
  205. package/lib/platform/filters.js +17 -1
  206. package/lib/platform/filters.js.map +1 -1
  207. package/lib/platform/helpers.d.ts +5 -1
  208. package/lib/platform/helpers.d.ts.map +1 -1
  209. package/lib/platform/helpers.js +33 -1
  210. package/lib/platform/helpers.js.map +1 -1
  211. package/lib/platform/react.d.ts +3 -2
  212. package/lib/platform/react.d.ts.map +1 -1
  213. package/lib/platform/react.js +16 -66
  214. package/lib/platform/react.js.map +1 -1
  215. package/lib/platform/types.d.ts +3 -3
  216. package/lib/platform/types.d.ts.map +1 -1
  217. package/lib/postOnboarding/reducer.d.ts +0 -2
  218. package/lib/postOnboarding/reducer.d.ts.map +1 -1
  219. package/lib/utils/getAccountTuplesForCurrency.d.ts +1 -1
  220. package/lib/utils/getAccountTuplesForCurrency.d.ts.map +1 -1
  221. package/lib/utils/getAccountTuplesForCurrency.js +3 -2
  222. package/lib/utils/getAccountTuplesForCurrency.js.map +1 -1
  223. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  224. package/lib/wallet-api/Exchange/server.js +4 -5
  225. package/lib/wallet-api/Exchange/server.js.map +1 -1
  226. package/lib/wallet-api/converters.d.ts +0 -1
  227. package/lib/wallet-api/converters.d.ts.map +1 -1
  228. package/lib/wallet-api/converters.js +2 -7
  229. package/lib/wallet-api/converters.js.map +1 -1
  230. package/lib/wallet-api/react.d.ts +11 -6
  231. package/lib/wallet-api/react.d.ts.map +1 -1
  232. package/lib/wallet-api/react.js +135 -293
  233. package/lib/wallet-api/react.js.map +1 -1
  234. package/lib/wallet-api/tracking.d.ts +0 -6
  235. package/lib/wallet-api/tracking.d.ts.map +1 -1
  236. package/lib/wallet-api/tracking.js +0 -20
  237. package/lib/wallet-api/tracking.js.map +1 -1
  238. package/lib/wallet-api/types.d.ts +0 -3
  239. package/lib/wallet-api/types.d.ts.map +1 -1
  240. package/lib/wallet-api/useDappLogic.d.ts.map +1 -1
  241. package/lib/wallet-api/useDappLogic.js +80 -65
  242. package/lib/wallet-api/useDappLogic.js.map +1 -1
  243. package/lib/wallet-api/utils/deriveAccountIdForManifest.d.ts +0 -6
  244. package/lib/wallet-api/utils/deriveAccountIdForManifest.d.ts.map +1 -1
  245. package/lib/wallet-api/utils/deriveAccountIdForManifest.js +3 -13
  246. package/lib/wallet-api/utils/deriveAccountIdForManifest.js.map +1 -1
  247. package/lib-es/__tests__/test-helpers/bridge.d.ts.map +1 -1
  248. package/lib-es/__tests__/test-helpers/bridge.js +4 -0
  249. package/lib-es/__tests__/test-helpers/bridge.js.map +1 -1
  250. package/lib-es/__tests__/test-helpers/environment.js +0 -3
  251. package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
  252. package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  253. package/lib-es/bridge/generic-alpaca/getAccountShape.js +11 -13
  254. package/lib-es/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  255. package/lib-es/currencies/helpers.d.ts +3 -1
  256. package/lib-es/currencies/helpers.d.ts.map +1 -1
  257. package/lib-es/currencies/helpers.js +24 -0
  258. package/lib-es/currencies/helpers.js.map +1 -1
  259. package/lib-es/dada-client/hooks/useAssetsData.d.ts +0 -1
  260. package/lib-es/dada-client/hooks/useAssetsData.d.ts.map +1 -1
  261. package/lib-es/dada-client/hooks/useAssetsData.js +0 -1
  262. package/lib-es/dada-client/hooks/useAssetsData.js.map +1 -1
  263. package/lib-es/deposit/helper.d.ts +8 -0
  264. package/lib-es/deposit/helper.d.ts.map +1 -0
  265. package/lib-es/deposit/helper.js +117 -0
  266. package/lib-es/deposit/helper.js.map +1 -0
  267. package/lib-es/deposit/index.d.ts +3 -0
  268. package/lib-es/deposit/index.d.ts.map +1 -0
  269. package/lib-es/deposit/index.js +3 -0
  270. package/lib-es/deposit/index.js.map +1 -0
  271. package/lib-es/deposit/mock.d.ts +75 -0
  272. package/lib-es/deposit/mock.d.ts.map +1 -0
  273. package/lib-es/deposit/mock.js +15108 -0
  274. package/lib-es/deposit/mock.js.map +1 -0
  275. package/lib-es/deposit/type.d.ts +17 -0
  276. package/lib-es/deposit/type.d.ts.map +1 -1
  277. package/lib-es/deposit/type.js.map +1 -1
  278. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.d.ts +3 -0
  279. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.d.ts.map +1 -0
  280. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.js +36 -0
  281. package/lib-es/deposit/useGroupedCurrenciesByProvider.hook.js.map +1 -0
  282. package/lib-es/deviceSDK/hooks/useBatteryStatuses.d.ts +1 -2
  283. package/lib-es/deviceSDK/hooks/useBatteryStatuses.d.ts.map +1 -1
  284. package/lib-es/deviceSDK/hooks/useBatteryStatuses.js +2 -4
  285. package/lib-es/deviceSDK/hooks/useBatteryStatuses.js.map +1 -1
  286. package/lib-es/deviceSDK/tasks/core.d.ts +1 -1
  287. package/lib-es/deviceSDK/tasks/core.d.ts.map +1 -1
  288. package/lib-es/deviceSDK/tasks/core.js +1 -1
  289. package/lib-es/deviceSDK/tasks/core.js.map +1 -1
  290. package/lib-es/deviceSDK/tasks/getDeviceInfo.d.ts.map +1 -1
  291. package/lib-es/deviceSDK/tasks/getDeviceInfo.js +0 -2
  292. package/lib-es/deviceSDK/tasks/getDeviceInfo.js.map +1 -1
  293. package/lib-es/deviceSDK/tasks/getLatestFirmware.d.ts.map +1 -1
  294. package/lib-es/deviceSDK/tasks/getLatestFirmware.js +2 -2
  295. package/lib-es/deviceSDK/tasks/getLatestFirmware.js.map +1 -1
  296. package/lib-es/deviceSDK/tasks/updateFirmware.d.ts.map +1 -1
  297. package/lib-es/deviceSDK/tasks/updateFirmware.js +1 -2
  298. package/lib-es/deviceSDK/tasks/updateFirmware.js.map +1 -1
  299. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts +3 -0
  300. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts.map +1 -0
  301. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.js +18 -0
  302. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.js.map +1 -0
  303. package/lib-es/e2e/enum/Account.d.ts +1 -0
  304. package/lib-es/e2e/enum/Account.d.ts.map +1 -1
  305. package/lib-es/e2e/enum/Account.js +1 -0
  306. package/lib-es/e2e/enum/Account.js.map +1 -1
  307. package/lib-es/e2e/enum/Currency.d.ts +1 -0
  308. package/lib-es/e2e/enum/Currency.d.ts.map +1 -1
  309. package/lib-es/e2e/enum/Currency.js +6 -2
  310. package/lib-es/e2e/enum/Currency.js.map +1 -1
  311. package/lib-es/e2e/families/algorand.d.ts +1 -1
  312. package/lib-es/e2e/families/algorand.d.ts.map +1 -1
  313. package/lib-es/e2e/families/algorand.js +4 -5
  314. package/lib-es/e2e/families/algorand.js.map +1 -1
  315. package/lib-es/e2e/families/aptos.d.ts +2 -2
  316. package/lib-es/e2e/families/aptos.d.ts.map +1 -1
  317. package/lib-es/e2e/families/aptos.js +7 -9
  318. package/lib-es/e2e/families/aptos.js.map +1 -1
  319. package/lib-es/e2e/families/bitcoin.d.ts +2 -2
  320. package/lib-es/e2e/families/bitcoin.d.ts.map +1 -1
  321. package/lib-es/e2e/families/bitcoin.js +9 -11
  322. package/lib-es/e2e/families/bitcoin.js.map +1 -1
  323. package/lib-es/e2e/families/cardano.d.ts +0 -6
  324. package/lib-es/e2e/families/cardano.d.ts.map +1 -1
  325. package/lib-es/e2e/families/cardano.js +21 -23
  326. package/lib-es/e2e/families/cardano.js.map +1 -1
  327. package/lib-es/e2e/families/celo.d.ts +1 -1
  328. package/lib-es/e2e/families/celo.d.ts.map +1 -1
  329. package/lib-es/e2e/families/celo.js +4 -5
  330. package/lib-es/e2e/families/celo.js.map +1 -1
  331. package/lib-es/e2e/families/cosmos.d.ts +2 -2
  332. package/lib-es/e2e/families/cosmos.d.ts.map +1 -1
  333. package/lib-es/e2e/families/cosmos.js +7 -9
  334. package/lib-es/e2e/families/cosmos.js.map +1 -1
  335. package/lib-es/e2e/families/evm.d.ts +0 -2
  336. package/lib-es/e2e/families/evm.d.ts.map +1 -1
  337. package/lib-es/e2e/families/evm.js +9 -10
  338. package/lib-es/e2e/families/evm.js.map +1 -1
  339. package/lib-es/e2e/families/hedera.d.ts +1 -1
  340. package/lib-es/e2e/families/hedera.d.ts.map +1 -1
  341. package/lib-es/e2e/families/hedera.js +4 -5
  342. package/lib-es/e2e/families/hedera.js.map +1 -1
  343. package/lib-es/e2e/families/kaspa.d.ts +2 -2
  344. package/lib-es/e2e/families/kaspa.d.ts.map +1 -1
  345. package/lib-es/e2e/families/kaspa.js +7 -9
  346. package/lib-es/e2e/families/kaspa.js.map +1 -1
  347. package/lib-es/e2e/families/multiversX.d.ts +1 -1
  348. package/lib-es/e2e/families/multiversX.d.ts.map +1 -1
  349. package/lib-es/e2e/families/multiversX.js +4 -5
  350. package/lib-es/e2e/families/multiversX.js.map +1 -1
  351. package/lib-es/e2e/families/near.d.ts +1 -1
  352. package/lib-es/e2e/families/near.d.ts.map +1 -1
  353. package/lib-es/e2e/families/near.js +5 -6
  354. package/lib-es/e2e/families/near.js.map +1 -1
  355. package/lib-es/e2e/families/osmosis.d.ts +1 -1
  356. package/lib-es/e2e/families/osmosis.d.ts.map +1 -1
  357. package/lib-es/e2e/families/osmosis.js +4 -5
  358. package/lib-es/e2e/families/osmosis.js.map +1 -1
  359. package/lib-es/e2e/families/polkadot.d.ts +1 -1
  360. package/lib-es/e2e/families/polkadot.d.ts.map +1 -1
  361. package/lib-es/e2e/families/polkadot.js +4 -5
  362. package/lib-es/e2e/families/polkadot.js.map +1 -1
  363. package/lib-es/e2e/families/solana.d.ts +2 -2
  364. package/lib-es/e2e/families/solana.d.ts.map +1 -1
  365. package/lib-es/e2e/families/solana.js +7 -9
  366. package/lib-es/e2e/families/solana.js.map +1 -1
  367. package/lib-es/e2e/families/stellar.d.ts +1 -1
  368. package/lib-es/e2e/families/stellar.d.ts.map +1 -1
  369. package/lib-es/e2e/families/stellar.js +4 -5
  370. package/lib-es/e2e/families/stellar.js.map +1 -1
  371. package/lib-es/e2e/families/sui.d.ts +1 -1
  372. package/lib-es/e2e/families/sui.d.ts.map +1 -1
  373. package/lib-es/e2e/families/sui.js +4 -5
  374. package/lib-es/e2e/families/sui.js.map +1 -1
  375. package/lib-es/e2e/families/tezos.d.ts +1 -1
  376. package/lib-es/e2e/families/tezos.d.ts.map +1 -1
  377. package/lib-es/e2e/families/tezos.js +8 -8
  378. package/lib-es/e2e/families/tezos.js.map +1 -1
  379. package/lib-es/e2e/families/tron.d.ts +1 -1
  380. package/lib-es/e2e/families/tron.d.ts.map +1 -1
  381. package/lib-es/e2e/families/tron.js +4 -5
  382. package/lib-es/e2e/families/tron.js.map +1 -1
  383. package/lib-es/e2e/families/xrp.d.ts +1 -1
  384. package/lib-es/e2e/families/xrp.d.ts.map +1 -1
  385. package/lib-es/e2e/families/xrp.js +4 -5
  386. package/lib-es/e2e/families/xrp.js.map +1 -1
  387. package/lib-es/e2e/index.d.ts +0 -15
  388. package/lib-es/e2e/index.d.ts.map +1 -1
  389. package/lib-es/e2e/speculos.d.ts +11 -11
  390. package/lib-es/e2e/speculos.d.ts.map +1 -1
  391. package/lib-es/e2e/speculos.js +43 -54
  392. package/lib-es/e2e/speculos.js.map +1 -1
  393. package/lib-es/exchange/providers/swap.d.ts +0 -1
  394. package/lib-es/exchange/providers/swap.d.ts.map +1 -1
  395. package/lib-es/exchange/providers/swap.js +0 -3
  396. package/lib-es/exchange/providers/swap.js.map +1 -1
  397. package/lib-es/exchange/swap/hooks/v5/useFetchCurrencyAll.d.ts.map +1 -1
  398. package/lib-es/exchange/swap/hooks/v5/useFetchCurrencyAll.js +3 -2
  399. package/lib-es/exchange/swap/hooks/v5/useFetchCurrencyAll.js.map +1 -1
  400. package/lib-es/exchange/swap/hooks/v5/useFilteredProviders.d.ts.map +1 -1
  401. package/lib-es/exchange/swap/hooks/v5/useFilteredProviders.js +12 -17
  402. package/lib-es/exchange/swap/hooks/v5/useFilteredProviders.js.map +1 -1
  403. package/lib-es/families/canton/bridge/mock.d.ts.map +1 -1
  404. package/lib-es/families/canton/bridge/mock.js +0 -1
  405. package/lib-es/families/canton/bridge/mock.js.map +1 -1
  406. package/lib-es/families/evm/config.d.ts.map +1 -1
  407. package/lib-es/families/evm/config.js +0 -49
  408. package/lib-es/families/evm/config.js.map +1 -1
  409. package/lib-es/featureFlags/defaultFeatures.d.ts +0 -3
  410. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  411. package/lib-es/featureFlags/defaultFeatures.js +0 -6
  412. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  413. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  414. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  415. package/lib-es/market/hooks/useMarketDataProvider.js +0 -1
  416. package/lib-es/market/hooks/useMarketDataProvider.js.map +1 -1
  417. package/lib-es/market/utils/types.d.ts +0 -1
  418. package/lib-es/market/utils/types.d.ts.map +1 -1
  419. package/lib-es/market/utils/types.js.map +1 -1
  420. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts +22 -0
  421. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.d.ts.map +1 -0
  422. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js +38 -0
  423. package/lib-es/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.js.map +1 -0
  424. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.d.ts.map +1 -1
  425. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js +0 -11
  426. package/lib-es/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.js.map +1 -1
  427. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.d.ts +5 -1
  428. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.d.ts.map +1 -1
  429. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.js +2 -2
  430. package/lib-es/modularDrawer/hooks/useNetworkAccountCounts.js.map +1 -1
  431. package/lib-es/modularDrawer/modules/createNetworkConfiguration.d.ts +1 -1
  432. package/lib-es/modularDrawer/modules/createNetworkConfiguration.d.ts.map +1 -1
  433. package/lib-es/modularDrawer/modules/createNetworkConfiguration.js +2 -1
  434. package/lib-es/modularDrawer/modules/createNetworkConfiguration.js.map +1 -1
  435. package/lib-es/modularDrawer/utils/currencyUtils.d.ts +10 -0
  436. package/lib-es/modularDrawer/utils/currencyUtils.d.ts.map +1 -0
  437. package/lib-es/modularDrawer/utils/currencyUtils.js +65 -0
  438. package/lib-es/modularDrawer/utils/currencyUtils.js.map +1 -0
  439. package/lib-es/modularDrawer/utils/{groupCurrenciesByAsset.d.ts → groupCurrenciesByProvider.d.ts} +2 -2
  440. package/lib-es/modularDrawer/utils/groupCurrenciesByProvider.d.ts.map +1 -0
  441. package/lib-es/modularDrawer/utils/{groupCurrenciesByAsset.js → groupCurrenciesByProvider.js} +6 -6
  442. package/lib-es/modularDrawer/utils/groupCurrenciesByProvider.js.map +1 -0
  443. package/lib-es/modularDrawer/utils/index.d.ts +1 -1
  444. package/lib-es/modularDrawer/utils/index.d.ts.map +1 -1
  445. package/lib-es/modularDrawer/utils/index.js +1 -1
  446. package/lib-es/modularDrawer/utils/index.js.map +1 -1
  447. package/lib-es/modularDrawer/utils/type.d.ts +5 -0
  448. package/lib-es/modularDrawer/utils/type.d.ts.map +1 -1
  449. package/lib-es/platform/filters.d.ts +2 -1
  450. package/lib-es/platform/filters.d.ts.map +1 -1
  451. package/lib-es/platform/filters.js +15 -0
  452. package/lib-es/platform/filters.js.map +1 -1
  453. package/lib-es/platform/helpers.d.ts +5 -1
  454. package/lib-es/platform/helpers.d.ts.map +1 -1
  455. package/lib-es/platform/helpers.js +30 -1
  456. package/lib-es/platform/helpers.js.map +1 -1
  457. package/lib-es/platform/react.d.ts +3 -2
  458. package/lib-es/platform/react.d.ts.map +1 -1
  459. package/lib-es/platform/react.js +16 -67
  460. package/lib-es/platform/react.js.map +1 -1
  461. package/lib-es/platform/types.d.ts +3 -3
  462. package/lib-es/platform/types.d.ts.map +1 -1
  463. package/lib-es/postOnboarding/reducer.d.ts +0 -2
  464. package/lib-es/postOnboarding/reducer.d.ts.map +1 -1
  465. package/lib-es/utils/getAccountTuplesForCurrency.d.ts +1 -1
  466. package/lib-es/utils/getAccountTuplesForCurrency.d.ts.map +1 -1
  467. package/lib-es/utils/getAccountTuplesForCurrency.js +3 -2
  468. package/lib-es/utils/getAccountTuplesForCurrency.js.map +1 -1
  469. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  470. package/lib-es/wallet-api/Exchange/server.js +4 -5
  471. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  472. package/lib-es/wallet-api/converters.d.ts +0 -1
  473. package/lib-es/wallet-api/converters.d.ts.map +1 -1
  474. package/lib-es/wallet-api/converters.js +1 -5
  475. package/lib-es/wallet-api/converters.js.map +1 -1
  476. package/lib-es/wallet-api/react.d.ts +11 -6
  477. package/lib-es/wallet-api/react.d.ts.map +1 -1
  478. package/lib-es/wallet-api/react.js +131 -291
  479. package/lib-es/wallet-api/react.js.map +1 -1
  480. package/lib-es/wallet-api/tracking.d.ts +0 -6
  481. package/lib-es/wallet-api/tracking.d.ts.map +1 -1
  482. package/lib-es/wallet-api/tracking.js +0 -20
  483. package/lib-es/wallet-api/tracking.js.map +1 -1
  484. package/lib-es/wallet-api/types.d.ts +0 -3
  485. package/lib-es/wallet-api/types.d.ts.map +1 -1
  486. package/lib-es/wallet-api/useDappLogic.d.ts.map +1 -1
  487. package/lib-es/wallet-api/useDappLogic.js +77 -62
  488. package/lib-es/wallet-api/useDappLogic.js.map +1 -1
  489. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.d.ts +0 -6
  490. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.d.ts.map +1 -1
  491. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.js +2 -11
  492. package/lib-es/wallet-api/utils/deriveAccountIdForManifest.js.map +1 -1
  493. package/package.json +58 -59
  494. package/src/__tests__/migration/account-migration.ts +0 -3
  495. package/src/__tests__/test-helpers/bridge.ts +2 -0
  496. package/src/__tests__/test-helpers/environment.ts +0 -3
  497. package/src/bridge/generic-alpaca/getAccountShape.ts +12 -15
  498. package/src/bridge/generic-alpaca/tests/getAccountShape.test.ts +101 -142
  499. package/src/currencies/helpers.test.ts +20 -0
  500. package/src/currencies/helpers.ts +42 -1
  501. package/src/dada-client/hooks/useAssetsData.ts +0 -1
  502. package/src/deposit/deposit.integration.test.ts +88 -0
  503. package/src/deposit/deposit.test.ts +684 -0
  504. package/src/deposit/helper.ts +143 -0
  505. package/src/deposit/index.ts +3 -0
  506. package/src/deposit/mock.ts +15112 -0
  507. package/src/deposit/type.ts +21 -0
  508. package/src/deposit/useGroupedCurrenciesByProvider.hook.ts +46 -0
  509. package/src/deviceSDK/hooks/useBatteryStatuses.test.ts +1 -3
  510. package/src/deviceSDK/hooks/useBatteryStatuses.ts +1 -4
  511. package/src/deviceSDK/tasks/core.test.ts +0 -20
  512. package/src/deviceSDK/tasks/core.ts +1 -2
  513. package/src/deviceSDK/tasks/getDeviceInfo.ts +0 -2
  514. package/src/deviceSDK/tasks/getLatestFirmware.ts +4 -4
  515. package/src/deviceSDK/tasks/updateFirmware.ts +0 -2
  516. package/src/e2e/deviceInteraction/ButtonDeviceSimulator.ts +23 -0
  517. package/src/e2e/enum/Account.ts +6 -0
  518. package/src/e2e/enum/Currency.ts +6 -2
  519. package/src/e2e/families/algorand.ts +13 -20
  520. package/src/e2e/families/aptos.ts +16 -28
  521. package/src/e2e/families/bitcoin.ts +39 -53
  522. package/src/e2e/families/cardano.ts +36 -47
  523. package/src/e2e/families/celo.ts +12 -18
  524. package/src/e2e/families/cosmos.ts +23 -35
  525. package/src/e2e/families/evm.ts +13 -24
  526. package/src/e2e/families/hedera.ts +4 -6
  527. package/src/e2e/families/kaspa.ts +16 -28
  528. package/src/e2e/families/multiversX.ts +10 -16
  529. package/src/e2e/families/near.ts +17 -23
  530. package/src/e2e/families/osmosis.ts +13 -19
  531. package/src/e2e/families/polkadot.ts +13 -19
  532. package/src/e2e/families/solana.ts +23 -35
  533. package/src/e2e/families/stellar.ts +13 -18
  534. package/src/e2e/families/sui.ts +9 -15
  535. package/src/e2e/families/tezos.ts +18 -25
  536. package/src/e2e/families/tron.ts +13 -19
  537. package/src/e2e/families/xrp.ts +13 -19
  538. package/src/e2e/speculos.ts +140 -168
  539. package/src/exchange/providers/swap.ts +0 -4
  540. package/src/exchange/swap/hooks/v5/useFetchCurrencyAll.ts +3 -2
  541. package/src/exchange/swap/hooks/v5/useFilteredProviders.ts +12 -37
  542. package/src/families/canton/bridge/mock.ts +0 -1
  543. package/src/families/evm/config.ts +0 -49
  544. package/src/families/stellar/__snapshots__/bridge.integration.test.ts.snap +12 -84
  545. package/src/featureFlags/defaultFeatures.ts +0 -6
  546. package/src/market/hooks/useMarketDataProvider.ts +0 -1
  547. package/src/market/utils/types.ts +0 -1
  548. package/src/modularDrawer/__mocks__/useGroupedCurrenciesByProvider.mock.ts +49 -0
  549. package/src/modularDrawer/hooks/__test__/useAssetAccountCounts.test.ts +5 -0
  550. package/src/modularDrawer/hooks/useCurrenciesUnderFeatureFlag.ts +0 -11
  551. package/src/modularDrawer/hooks/useNetworkAccountCounts.tsx +6 -1
  552. package/src/modularDrawer/modules/__test__/createAssetConfiguration.test.tsx +2 -2
  553. package/src/modularDrawer/modules/__test__/createNetworkConfiguration.test.ts +342 -0
  554. package/src/modularDrawer/modules/createNetworkConfiguration.ts +2 -1
  555. package/src/modularDrawer/utils/__tests__/currencyUtils.test.ts +126 -0
  556. package/src/modularDrawer/utils/currencyUtils.ts +95 -0
  557. package/src/modularDrawer/utils/{groupCurrenciesByAsset.ts → groupCurrenciesByProvider.ts} +5 -5
  558. package/src/modularDrawer/utils/index.ts +1 -1
  559. package/src/modularDrawer/utils/type.ts +5 -0
  560. package/src/platform/filters.ts +23 -1
  561. package/src/platform/helpers.ts +49 -2
  562. package/src/platform/react.ts +22 -86
  563. package/src/platform/types.ts +1 -1
  564. package/src/utils/__tests__/getAccountTuplesForCurrency.test.ts +30 -0
  565. package/src/utils/getAccountTuplesForCurrency.ts +6 -1
  566. package/src/wallet-api/Exchange/server.test.ts +5 -0
  567. package/src/wallet-api/Exchange/server.ts +6 -7
  568. package/src/wallet-api/converters.ts +1 -6
  569. package/src/wallet-api/react.ts +137 -312
  570. package/src/wallet-api/tracking.ts +0 -22
  571. package/src/wallet-api/types.ts +0 -5
  572. package/src/wallet-api/useDappLogic.ts +106 -91
  573. package/src/wallet-api/utils/deriveAccountIdForManifest.ts +2 -14
  574. package/lib/device/use-cases/getDeviceHasBattery.d.ts +0 -2
  575. package/lib/device/use-cases/getDeviceHasBattery.d.ts.map +0 -1
  576. package/lib/device/use-cases/getDeviceHasBattery.js +0 -6
  577. package/lib/device/use-cases/getDeviceHasBattery.js.map +0 -1
  578. package/lib/e2e/deviceInteraction/DeviceController.d.ts +0 -41
  579. package/lib/e2e/deviceInteraction/DeviceController.d.ts.map +0 -1
  580. package/lib/e2e/deviceInteraction/DeviceController.js +0 -68
  581. package/lib/e2e/deviceInteraction/DeviceController.js.map +0 -1
  582. package/lib/e2e/enum/ReceiveFundsOptions.d.ts +0 -6
  583. package/lib/e2e/enum/ReceiveFundsOptions.d.ts.map +0 -1
  584. package/lib/e2e/enum/ReceiveFundsOptions.js +0 -8
  585. package/lib/e2e/enum/ReceiveFundsOptions.js.map +0 -1
  586. package/lib/families/canton/react.d.ts +0 -15
  587. package/lib/families/canton/react.d.ts.map +0 -1
  588. package/lib/families/canton/react.js +0 -14
  589. package/lib/families/canton/react.js.map +0 -1
  590. package/lib/modularDrawer/utils/groupCurrenciesByAsset.d.ts.map +0 -1
  591. package/lib/modularDrawer/utils/groupCurrenciesByAsset.js +0 -21
  592. package/lib/modularDrawer/utils/groupCurrenciesByAsset.js.map +0 -1
  593. package/lib-es/device/use-cases/getDeviceHasBattery.d.ts +0 -2
  594. package/lib-es/device/use-cases/getDeviceHasBattery.d.ts.map +0 -1
  595. package/lib-es/device/use-cases/getDeviceHasBattery.js +0 -2
  596. package/lib-es/device/use-cases/getDeviceHasBattery.js.map +0 -1
  597. package/lib-es/e2e/deviceInteraction/DeviceController.d.ts +0 -41
  598. package/lib-es/e2e/deviceInteraction/DeviceController.d.ts.map +0 -1
  599. package/lib-es/e2e/deviceInteraction/DeviceController.js +0 -63
  600. package/lib-es/e2e/deviceInteraction/DeviceController.js.map +0 -1
  601. package/lib-es/e2e/enum/ReceiveFundsOptions.d.ts +0 -6
  602. package/lib-es/e2e/enum/ReceiveFundsOptions.d.ts.map +0 -1
  603. package/lib-es/e2e/enum/ReceiveFundsOptions.js +0 -5
  604. package/lib-es/e2e/enum/ReceiveFundsOptions.js.map +0 -1
  605. package/lib-es/families/canton/react.d.ts +0 -15
  606. package/lib-es/families/canton/react.d.ts.map +0 -1
  607. package/lib-es/families/canton/react.js +0 -10
  608. package/lib-es/families/canton/react.js.map +0 -1
  609. package/lib-es/modularDrawer/utils/groupCurrenciesByAsset.d.ts.map +0 -1
  610. package/lib-es/modularDrawer/utils/groupCurrenciesByAsset.js.map +0 -1
  611. package/src/device/use-cases/getDeviceHasBattery.ts +0 -1
  612. package/src/e2e/deviceInteraction/DeviceController.ts +0 -85
  613. package/src/e2e/enum/ReceiveFundsOptions.ts +0 -7
  614. package/src/families/canton/react.ts +0 -50
  615. package/src/modularDrawer/utils/__tests__/groupCurrenciesByAsset.test.ts +0 -88
@@ -1,45 +1,78 @@
1
1
  import { useMemo, useState, useEffect, useRef, useCallback } from "react";
2
- import { useDispatch } from "react-redux";
3
2
  import semver from "semver";
4
3
  import { intervalToDuration } from "date-fns";
5
- import { useWalletAPIServer as useWalletAPIServerRaw, } from "@ledgerhq/wallet-api-server";
4
+ import { useWalletAPIServer as useWalletAPIServerRaw } from "@ledgerhq/wallet-api-server/lib/react";
5
+ import { firstValueFrom } from "rxjs";
6
6
  import { first } from "rxjs/operators";
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";
7
+ import { accountToWalletAPIAccount, currencyToWalletAPICurrency, getAccountIdFromWalletAccountId, } from "./converters";
11
8
  import { isWalletAPISupportedCurrency } from "./helpers";
12
9
  import { getMainAccount, getParentAccount } from "../account";
13
- import { listSupportedCurrencies } from "../currencies";
14
- import { getCryptoAssetsStore } from "../bridge/crypto-assets";
10
+ import { listCurrencies, findCryptoCurrencyById, getCryptoCurrencyById } from "../currencies";
11
+ import { getCryptoAssetsStore } from "../bridge/crypto-assets/index";
15
12
  import { bitcoinFamilyAccountGetXPubLogic, broadcastTransactionLogic, startExchangeLogic, completeExchangeLogic, receiveOnAccountLogic, signMessageLogic, signTransactionLogic, bitcoinFamilyAccountGetAddressLogic, bitcoinFamilyAccountGetPublicKeyLogic, signRawTransactionLogic, } from "./logic";
16
13
  import { getAccountBridge } from "../bridge";
14
+ import { getEnv } from "@ledgerhq/live-env";
17
15
  import openTransportAsSubject from "../hw/openTransportAsSubject";
16
+ import { UserRefusedOnDevice } from "@ledgerhq/errors";
18
17
  import { DISCOVER_INITIAL_CATEGORY, INITIAL_PLATFORM_STATE, MAX_RECENTLY_USED_LENGTH, } from "./constants";
19
- import { useCurrenciesUnderFeatureFlag } from "../modularDrawer/hooks/useCurrenciesUnderFeatureFlag";
20
18
  export function safeGetRefValue(ref) {
21
19
  if (!ref.current) {
22
20
  throw new Error("Ref objects doesn't have a current value");
23
21
  }
24
22
  return ref.current;
25
23
  }
26
- export function useSetWalletAPIAccounts(accounts) {
27
- useEffect(() => {
28
- accounts.forEach(account => {
29
- setWalletApiIdForAccountId(account.id);
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);
30
29
  });
31
- }, [accounts]);
30
+ }, [walletState, accounts]);
32
31
  }
33
- export function useDAppManifestCurrencyIds(manifest) {
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) {
34
43
  return useMemo(() => {
35
44
  return (manifest.dapp?.networks.map(network => {
36
- return network.currency;
45
+ return getCryptoCurrencyById(network.currency);
37
46
  }) ?? []);
38
47
  }, [manifest.dapp?.networks]);
39
48
  }
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
+ }
40
72
  export function usePermission(manifest) {
41
73
  return useMemo(() => ({
42
- methodIds: manifest.permissions,
74
+ currencyIds: manifest.currencies === "*" ? ["**"] : manifest.currencies,
75
+ methodIds: manifest.permissions, // TODO remove when using the correct manifest type
43
76
  }), [manifest]);
44
77
  }
45
78
  function useTransport(postMessage) {
@@ -57,7 +90,7 @@ export function useConfig({ appId, userId, tracking, wallet, mevProtected, }) {
57
90
  tracking,
58
91
  wallet,
59
92
  mevProtected,
60
- }), [appId, mevProtected, tracking, userId, wallet]);
93
+ }), [appId, tracking, userId, wallet]);
61
94
  }
62
95
  function useDeviceTransport({ manifest, tracking }) {
63
96
  const ref = useRef();
@@ -107,259 +140,73 @@ function useDeviceTransport({ manifest, tracking }) {
107
140
  return useMemo(() => ({ ref, subscribe, close, exchange }), [close, exchange, subscribe]);
108
141
  }
109
142
  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();
112
143
  const permission = usePermission(manifest);
113
144
  const transport = useTransport(webviewHook.postMessage);
114
145
  const [widgetLoaded, setWidgetLoaded] = useState(false);
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);
146
+ const walletAPIAccounts = useWalletAPIAccounts(walletState, accounts);
147
+ const walletAPICurrencies = useWalletAPICurrencies();
118
148
  const { server, onMessage } = useWalletAPIServerRaw({
119
149
  transport,
120
150
  config,
151
+ accounts: walletAPIAccounts,
152
+ currencies: walletAPICurrencies,
121
153
  permission,
122
154
  customHandlers,
123
155
  });
124
156
  useEffect(() => {
125
157
  tracking.load(manifest);
126
158
  }, [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]);
323
159
  useEffect(() => {
324
160
  if (!uiAccountRequest)
325
161
  return;
326
- server.setHandler("account.request", async ({ currencyIds, drawerConfiguration, areCurrenciesFiltered, useCase }) => {
162
+ server.setHandler("account.request", async ({ accounts$, currencies$, drawerConfiguration, areCurrenciesFiltered, useCase }) => {
327
163
  tracking.requestAccountRequested(manifest);
164
+ const currencies = await firstValueFrom(currencies$);
328
165
  return new Promise((resolve, reject) => {
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
- }
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
+ })();
356
203
  });
357
204
  });
358
205
  }, [walletState, manifest, server, tracking, uiAccountRequest]);
359
206
  useEffect(() => {
360
207
  if (!uiAccountReceive)
361
208
  return;
362
- server.setHandler("account.receive", ({ accountId, tokenCurrency }) => receiveOnAccountLogic(walletState, { manifest, accounts, tracking }, accountId, (account, parentAccount, accountAddress) => new Promise((resolve, reject) => {
209
+ server.setHandler("account.receive", ({ account, tokenCurrency }) => receiveOnAccountLogic(walletState, { manifest, accounts, tracking }, account.id, (account, parentAccount, accountAddress) => new Promise((resolve, reject) => {
363
210
  let done = false;
364
211
  return uiAccountReceive({
365
212
  account,
@@ -392,7 +239,7 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
392
239
  useEffect(() => {
393
240
  if (!uiMessageSign)
394
241
  return;
395
- server.setHandler("message.sign", ({ accountId, message, options }) => signMessageLogic({ manifest, accounts, tracking }, accountId, message.toString("hex"), (account, message) => new Promise((resolve, reject) => {
242
+ server.setHandler("message.sign", ({ account, message, options }) => signMessageLogic({ manifest, accounts, tracking }, account.id, message.toString("hex"), (account, message) => new Promise((resolve, reject) => {
396
243
  let done = false;
397
244
  return uiMessageSign({
398
245
  account,
@@ -437,38 +284,31 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
437
284
  useEffect(() => {
438
285
  if (!uiTxSign)
439
286
  return;
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
- });
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
+ },
469
309
  });
470
- }, tokenCurrency);
471
- return currency === "solana"
310
+ }), tokenCurrency);
311
+ return account.currency === "solana"
472
312
  ? Buffer.from(signedOperation.signature, "hex")
473
313
  : Buffer.from(signedOperation.signature);
474
314
  });
@@ -476,8 +316,8 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
476
316
  useEffect(() => {
477
317
  if (!uiTxSignRaw)
478
318
  return;
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) => {
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) => {
481
321
  let done = false;
482
322
  return uiTxSignRaw({
483
323
  account,
@@ -502,7 +342,7 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
502
342
  }));
503
343
  let hash;
504
344
  if (broadcast) {
505
- hash = await broadcastTransactionLogic({ manifest, accounts, tracking }, accountId, signedOperation, async (account, parentAccount, signedOperation) => {
345
+ hash = await broadcastTransactionLogic({ manifest, accounts, tracking }, account.id, signedOperation, async (account, parentAccount, signedOperation) => {
506
346
  const bridge = getAccountBridge(account, parentAccount);
507
347
  const mainAccount = getMainAccount(account, parentAccount);
508
348
  let optimisticOperation = signedOperation.operation;
@@ -534,9 +374,9 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
534
374
  useEffect(() => {
535
375
  if (!uiTxSign)
536
376
  return;
537
- server.setHandler("transaction.signAndBroadcast", async ({ accountId, tokenCurrency, transaction, options }) => {
377
+ server.setHandler("transaction.signAndBroadcast", async ({ account, tokenCurrency, transaction, options }) => {
538
378
  const sponsored = transaction.family === "ethereum" && transaction.sponsored;
539
- const signedTransaction = await signTransactionLogic({ manifest, accounts, tracking }, accountId, transaction, (account, parentAccount, signFlowInfos) => new Promise((resolve, reject) => {
379
+ const signedTransaction = await signTransactionLogic({ manifest, accounts, tracking }, account.id, transaction, (account, parentAccount, signFlowInfos) => new Promise((resolve, reject) => {
540
380
  let done = false;
541
381
  return uiTxSign({
542
382
  account,
@@ -559,7 +399,7 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
559
399
  },
560
400
  });
561
401
  }), tokenCurrency);
562
- return broadcastTransactionLogic({ manifest, accounts, tracking }, accountId, signedTransaction, async (account, parentAccount, signedOperation) => {
402
+ return broadcastTransactionLogic({ manifest, accounts, tracking }, account.id, signedTransaction, async (account, parentAccount, signedOperation) => {
563
403
  const bridge = getAccountBridge(account, parentAccount);
564
404
  const mainAccount = getMainAccount(account, parentAccount);
565
405
  let optimisticOperation = signedOperation.operation;
@@ -765,8 +605,8 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
765
605
  // retrofit of the exchange params to fit the old platform spec
766
606
  const request = {
767
607
  provider: params.provider,
768
- fromAccountId: params.fromAccountId,
769
- toAccountId: params.exchangeType === "SWAP" ? params.toAccountId : undefined,
608
+ fromAccountId: params.fromAccount.id,
609
+ toAccountId: params.exchangeType === "SWAP" ? params.toAccount.id : undefined,
770
610
  transaction: params.transaction,
771
611
  binaryPayload: params.binaryPayload.toString("hex"),
772
612
  signature: params.signature.toString("hex"),
@@ -799,7 +639,7 @@ export function useWalletAPIServer({ walletState, manifest, accounts, tracking,
799
639
  });
800
640
  }, [uiExchangeComplete, accounts, manifest, server, tracking]);
801
641
  return {
802
- widgetLoaded: widgetLoaded,
642
+ widgetLoaded,
803
643
  onMessage,
804
644
  onLoad,
805
645
  onReload,
@@ -919,9 +759,9 @@ export function useRecentlyUsed(manifests, [recentlyUsedManifestsDb, setState])
919
759
  ...res,
920
760
  usedAt: calculateTimeDiff(recentlyUsed.usedAt),
921
761
  }
922
- : undefined;
762
+ : res;
923
763
  })
924
- .filter((manifest) => manifest !== undefined), [recentlyUsedManifestsDb, manifests]);
764
+ .filter(manifest => manifest !== undefined), [recentlyUsedManifestsDb, manifests]);
925
765
  const append = useCallback((manifest) => {
926
766
  setState(state => {
927
767
  const index = state.recentlyUsed.findIndex(({ id }) => id === manifest.id);