@ledgerhq/live-common 34.48.1 → 34.49.0-nightly.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. package/lib/__tests__/test-helpers/environment.js +1 -0
  2. package/lib/__tests__/test-helpers/environment.js.map +1 -1
  3. package/lib/apps/inlineAppInstall.d.ts +1 -3
  4. package/lib/apps/inlineAppInstall.d.ts.map +1 -1
  5. package/lib/apps/inlineAppInstall.js +2 -2
  6. package/lib/apps/inlineAppInstall.js.map +1 -1
  7. package/lib/apps/react.d.ts +1 -2
  8. package/lib/apps/react.d.ts.map +1 -1
  9. package/lib/apps/react.js +2 -2
  10. package/lib/apps/react.js.map +1 -1
  11. package/lib/apps/runner.d.ts +2 -4
  12. package/lib/apps/runner.d.ts.map +1 -1
  13. package/lib/apps/runner.js +3 -4
  14. package/lib/apps/runner.js.map +1 -1
  15. package/lib/bridge/generic-alpaca/accountBridge.d.ts +2 -1
  16. package/lib/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
  17. package/lib/bridge/generic-alpaca/accountBridge.js +2 -2
  18. package/lib/bridge/generic-alpaca/accountBridge.js.map +1 -1
  19. package/lib/bridge/generic-alpaca/alpaca/index.d.ts +1 -1
  20. package/lib/bridge/generic-alpaca/alpaca/index.d.ts.map +1 -1
  21. package/lib/bridge/generic-alpaca/alpaca/index.js +10 -6
  22. package/lib/bridge/generic-alpaca/alpaca/index.js.map +1 -1
  23. package/lib/bridge/generic-alpaca/alpaca/index.unit.test.js +37 -9
  24. package/lib/bridge/generic-alpaca/alpaca/index.unit.test.js.map +1 -1
  25. package/lib/bridge/generic-alpaca/broadcast.js +2 -2
  26. package/lib/bridge/generic-alpaca/broadcast.js.map +1 -1
  27. package/lib/bridge/generic-alpaca/createTransaction.d.ts +3 -23
  28. package/lib/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
  29. package/lib/bridge/generic-alpaca/createTransaction.js +11 -7
  30. package/lib/bridge/generic-alpaca/createTransaction.js.map +1 -1
  31. package/lib/bridge/generic-alpaca/currencyBridge.d.ts +2 -1
  32. package/lib/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
  33. package/lib/bridge/generic-alpaca/currencyBridge.js +3 -2
  34. package/lib/bridge/generic-alpaca/currencyBridge.js.map +1 -1
  35. package/lib/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
  36. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js +4 -2
  37. package/lib/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  38. package/lib/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  39. package/lib/bridge/generic-alpaca/getAccountShape.js +5 -5
  40. package/lib/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  41. package/lib/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  42. package/lib/bridge/generic-alpaca/getTransactionStatus.js +2 -1
  43. package/lib/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  44. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts +5 -13
  45. package/lib/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  46. package/lib/bridge/generic-alpaca/prepareTransaction.js +2 -2
  47. package/lib/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  48. package/lib/bridge/generic-alpaca/signOperation.d.ts +3 -2
  49. package/lib/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  50. package/lib/bridge/generic-alpaca/signOperation.js +19 -15
  51. package/lib/bridge/generic-alpaca/signOperation.js.map +1 -1
  52. package/lib/bridge/generic-alpaca/signer/Eth.d.ts +8 -0
  53. package/lib/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -0
  54. package/lib/bridge/generic-alpaca/signer/Eth.js +51 -0
  55. package/lib/bridge/generic-alpaca/signer/Eth.js.map +1 -0
  56. package/lib/bridge/generic-alpaca/signer/index.d.ts +2 -10
  57. package/lib/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
  58. package/lib/bridge/generic-alpaca/signer/index.js +2 -2
  59. package/lib/bridge/generic-alpaca/signer/index.js.map +1 -1
  60. package/lib/bridge/generic-alpaca/signer/signTransaction.d.ts +2 -3
  61. package/lib/bridge/generic-alpaca/signer/signTransaction.d.ts.map +1 -1
  62. package/lib/bridge/generic-alpaca/signer/signTransaction.js.map +1 -1
  63. package/lib/bridge/generic-alpaca/signer/types.d.ts +11 -0
  64. package/lib/bridge/generic-alpaca/signer/types.d.ts.map +1 -1
  65. package/lib/bridge/generic-alpaca/tests/getAccountShape.test.d.ts +2 -0
  66. package/lib/bridge/generic-alpaca/tests/getAccountShape.test.d.ts.map +1 -0
  67. package/lib/bridge/generic-alpaca/tests/getAccountShape.test.js +144 -0
  68. package/lib/bridge/generic-alpaca/tests/getAccountShape.test.js.map +1 -0
  69. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js +2 -0
  70. package/lib/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  71. package/lib/bridge/generic-alpaca/tests/signOperation.test.js +5 -4
  72. package/lib/bridge/generic-alpaca/tests/signOperation.test.js.map +1 -1
  73. package/lib/bridge/generic-alpaca/types.d.ts +25 -0
  74. package/lib/bridge/generic-alpaca/types.d.ts.map +1 -0
  75. package/lib/bridge/generic-alpaca/types.js +3 -0
  76. package/lib/bridge/generic-alpaca/types.js.map +1 -0
  77. package/lib/bridge/generic-alpaca/utils.d.ts +4 -8
  78. package/lib/bridge/generic-alpaca/utils.d.ts.map +1 -1
  79. package/lib/bridge/generic-alpaca/utils.js +15 -1
  80. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  81. package/lib/bridge/generic-alpaca/utils.test.js +21 -0
  82. package/lib/bridge/generic-alpaca/utils.test.js.map +1 -1
  83. package/lib/config/sharedConfig.d.ts.map +1 -1
  84. package/lib/config/sharedConfig.js +30 -28
  85. package/lib/config/sharedConfig.js.map +1 -1
  86. package/lib/e2e/data/deviceLabelsData.d.ts +27 -0
  87. package/lib/e2e/data/deviceLabelsData.d.ts.map +1 -0
  88. package/lib/e2e/data/deviceLabelsData.js +78 -0
  89. package/lib/e2e/data/deviceLabelsData.js.map +1 -0
  90. package/lib/e2e/enum/Account.d.ts +2 -0
  91. package/lib/e2e/enum/Account.d.ts.map +1 -1
  92. package/lib/e2e/enum/Account.js +2 -0
  93. package/lib/e2e/enum/Account.js.map +1 -1
  94. package/lib/e2e/enum/AppInfos.d.ts +1 -0
  95. package/lib/e2e/enum/AppInfos.d.ts.map +1 -1
  96. package/lib/e2e/enum/AppInfos.js +1 -0
  97. package/lib/e2e/enum/AppInfos.js.map +1 -1
  98. package/lib/e2e/enum/Currency.d.ts +1 -0
  99. package/lib/e2e/enum/Currency.d.ts.map +1 -1
  100. package/lib/e2e/enum/Currency.js +1 -0
  101. package/lib/e2e/enum/Currency.js.map +1 -1
  102. package/lib/e2e/enum/DeviceLabels.d.ts +51 -44
  103. package/lib/e2e/enum/DeviceLabels.d.ts.map +1 -1
  104. package/lib/e2e/enum/DeviceLabels.js +51 -44
  105. package/lib/e2e/enum/DeviceLabels.js.map +1 -1
  106. package/lib/e2e/enum/Network.d.ts +2 -1
  107. package/lib/e2e/enum/Network.d.ts.map +1 -1
  108. package/lib/e2e/enum/Network.js +1 -0
  109. package/lib/e2e/enum/Network.js.map +1 -1
  110. package/lib/e2e/families/cardano.d.ts.map +1 -1
  111. package/lib/e2e/families/cardano.js +1 -0
  112. package/lib/e2e/families/cardano.js.map +1 -1
  113. package/lib/e2e/families/celo.d.ts +1 -1
  114. package/lib/e2e/families/celo.d.ts.map +1 -1
  115. package/lib/e2e/families/celo.js +3 -5
  116. package/lib/e2e/families/celo.js.map +1 -1
  117. package/lib/e2e/families/cosmos.d.ts.map +1 -1
  118. package/lib/e2e/families/cosmos.js +1 -2
  119. package/lib/e2e/families/cosmos.js.map +1 -1
  120. package/lib/e2e/families/evm.d.ts.map +1 -1
  121. package/lib/e2e/families/evm.js +4 -1
  122. package/lib/e2e/families/evm.js.map +1 -1
  123. package/lib/e2e/families/kaspa.d.ts +4 -0
  124. package/lib/e2e/families/kaspa.d.ts.map +1 -0
  125. package/lib/e2e/families/kaspa.js +23 -0
  126. package/lib/e2e/families/kaspa.js.map +1 -0
  127. package/lib/e2e/families/multiversX.d.ts +2 -1
  128. package/lib/e2e/families/multiversX.d.ts.map +1 -1
  129. package/lib/e2e/families/multiversX.js +2 -4
  130. package/lib/e2e/families/multiversX.js.map +1 -1
  131. package/lib/e2e/families/near.d.ts.map +1 -1
  132. package/lib/e2e/families/near.js +1 -2
  133. package/lib/e2e/families/near.js.map +1 -1
  134. package/lib/e2e/families/osmosis.d.ts.map +1 -1
  135. package/lib/e2e/families/osmosis.js +1 -3
  136. package/lib/e2e/families/osmosis.js.map +1 -1
  137. package/lib/e2e/families/solana.d.ts +2 -1
  138. package/lib/e2e/families/solana.d.ts.map +1 -1
  139. package/lib/e2e/families/solana.js +6 -4
  140. package/lib/e2e/families/solana.js.map +1 -1
  141. package/lib/e2e/families/tezos.d.ts +2 -1
  142. package/lib/e2e/families/tezos.d.ts.map +1 -1
  143. package/lib/e2e/families/tezos.js +7 -5
  144. package/lib/e2e/families/tezos.js.map +1 -1
  145. package/lib/e2e/index.d.ts +5 -7
  146. package/lib/e2e/index.d.ts.map +1 -1
  147. package/lib/e2e/speculos.d.ts +2 -1
  148. package/lib/e2e/speculos.d.ts.map +1 -1
  149. package/lib/e2e/speculos.js +48 -28
  150. package/lib/e2e/speculos.js.map +1 -1
  151. package/lib/env.react.d.ts +1 -1
  152. package/lib/env.react.d.ts.map +1 -1
  153. package/lib/exchange/providers/swap.d.ts.map +1 -1
  154. package/lib/exchange/providers/swap.js +15 -0
  155. package/lib/exchange/providers/swap.js.map +1 -1
  156. package/lib/exchange/swap/transactionStrategies.d.ts +38 -11
  157. package/lib/exchange/swap/transactionStrategies.d.ts.map +1 -1
  158. package/lib/exchange/swap/transactionStrategies.js +93 -47
  159. package/lib/exchange/swap/transactionStrategies.js.map +1 -1
  160. package/lib/families/canton/config.d.ts.map +1 -1
  161. package/lib/families/canton/config.js +3 -5
  162. package/lib/families/canton/config.js.map +1 -1
  163. package/lib/families/canton/setup.d.ts.map +1 -1
  164. package/lib/families/canton/setup.js +5 -5
  165. package/lib/families/canton/setup.js.map +1 -1
  166. package/lib/families/evm/config.js +2 -2
  167. package/lib/families/evm/config.js.map +1 -1
  168. package/lib/families/kaspa/bridge.integration.test.d.ts +2 -0
  169. package/lib/families/kaspa/bridge.integration.test.d.ts.map +1 -0
  170. package/lib/families/kaspa/bridge.integration.test.js +7 -0
  171. package/lib/families/kaspa/bridge.integration.test.js.map +1 -0
  172. package/lib/families/kaspa/config.d.ts +3 -0
  173. package/lib/families/kaspa/config.d.ts.map +1 -0
  174. package/lib/families/kaspa/config.js +14 -0
  175. package/lib/families/kaspa/config.js.map +1 -0
  176. package/lib/families/kaspa/react.d.ts +4 -0
  177. package/lib/families/kaspa/react.d.ts.map +1 -0
  178. package/lib/families/kaspa/react.js +18 -0
  179. package/lib/families/kaspa/react.js.map +1 -0
  180. package/lib/families/kaspa/setup.d.ts +18 -0
  181. package/lib/families/kaspa/setup.d.ts.map +1 -0
  182. package/lib/families/kaspa/setup.js +24 -0
  183. package/lib/families/kaspa/setup.js.map +1 -0
  184. package/lib/families/kaspa/types.d.ts +2 -0
  185. package/lib/families/kaspa/types.d.ts.map +1 -0
  186. package/lib/families/kaspa/types.js +18 -0
  187. package/lib/families/kaspa/types.js.map +1 -0
  188. package/lib/families/solana/bridge/mock-data.d.ts.map +1 -1
  189. package/lib/families/solana/bridge/mock-data.js +7 -0
  190. package/lib/families/solana/bridge/mock-data.js.map +1 -1
  191. package/lib/families/xrp/setup.d.ts +2 -2
  192. package/lib/featureFlags/defaultFeatures.d.ts +1 -0
  193. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  194. package/lib/featureFlags/defaultFeatures.js +6 -2
  195. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  196. package/lib/featureFlags/useFeature.d.ts +1 -1
  197. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  198. package/lib/generated/bridge/js.d.ts +1 -0
  199. package/lib/generated/bridge/js.d.ts.map +1 -1
  200. package/lib/generated/bridge/js.js +24 -22
  201. package/lib/generated/bridge/js.js.map +1 -1
  202. package/lib/generated/bridge/mock.d.ts +1 -1
  203. package/lib/generated/cli-transaction.d.ts +13 -2
  204. package/lib/generated/cli-transaction.d.ts.map +1 -1
  205. package/lib/generated/cli-transaction.js +28 -26
  206. package/lib/generated/cli-transaction.js.map +1 -1
  207. package/lib/generated/deviceTransactionConfig.d.ts +2 -0
  208. package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
  209. package/lib/generated/deviceTransactionConfig.js +24 -22
  210. package/lib/generated/deviceTransactionConfig.js.map +1 -1
  211. package/lib/generated/hw-getAddress.d.ts +1 -0
  212. package/lib/generated/hw-getAddress.d.ts.map +1 -1
  213. package/lib/generated/hw-getAddress.js +28 -26
  214. package/lib/generated/hw-getAddress.js.map +1 -1
  215. package/lib/generated/platformAdapter.d.ts +1 -1
  216. package/lib/generated/specs.d.ts +1 -1
  217. package/lib/generated/transaction.d.ts +11 -3
  218. package/lib/generated/transaction.d.ts.map +1 -1
  219. package/lib/generated/transaction.js +28 -26
  220. package/lib/generated/transaction.js.map +1 -1
  221. package/lib/generated/types.d.ts +5 -4
  222. package/lib/generated/types.d.ts.map +1 -1
  223. package/lib/generated/walletApiAdapter.d.ts +1 -1
  224. package/lib/hw/actions/app.d.ts.map +1 -1
  225. package/lib/hw/actions/app.js.map +1 -1
  226. package/lib/hw/getDeviceNameMaxLength.d.ts.map +1 -1
  227. package/lib/hw/getDeviceNameMaxLength.js +2 -0
  228. package/lib/hw/getDeviceNameMaxLength.js.map +1 -1
  229. package/lib/hw/getDeviceNameMaxLength.test.js +12 -0
  230. package/lib/hw/getDeviceNameMaxLength.test.js.map +1 -1
  231. package/lib/modularDrawer/data/entities/interestRateSelectors.d.ts +1 -13
  232. package/lib/modularDrawer/data/entities/interestRateSelectors.d.ts.map +1 -1
  233. package/lib/modularDrawer/data/entities/interestRateSelectors.js +2 -17
  234. package/lib/modularDrawer/data/entities/interestRateSelectors.js.map +1 -1
  235. package/lib/modularDrawer/data/entities/marketSelectors.d.ts +4 -0
  236. package/lib/modularDrawer/data/entities/marketSelectors.d.ts.map +1 -0
  237. package/lib/modularDrawer/data/entities/marketSelectors.js +6 -0
  238. package/lib/modularDrawer/data/entities/marketSelectors.js.map +1 -0
  239. package/lib/modularDrawer/data/entities/selectorUtils.d.ts +18 -0
  240. package/lib/modularDrawer/data/entities/selectorUtils.d.ts.map +1 -0
  241. package/lib/modularDrawer/data/entities/selectorUtils.js +29 -0
  242. package/lib/modularDrawer/data/entities/selectorUtils.js.map +1 -0
  243. package/lib/modularDrawer/data/state-manager/api.d.ts.map +1 -1
  244. package/lib/modularDrawer/data/state-manager/api.js +3 -2
  245. package/lib/modularDrawer/data/state-manager/api.js.map +1 -1
  246. package/lib/modularDrawer/data/state-manager/types.d.ts +1 -0
  247. package/lib/modularDrawer/data/state-manager/types.d.ts.map +1 -1
  248. package/lib/modularDrawer/hooks/modules/useLeftMarketTrendModule.d.ts +50 -0
  249. package/lib/modularDrawer/hooks/modules/useLeftMarketTrendModule.d.ts.map +1 -0
  250. package/lib/modularDrawer/hooks/modules/useLeftMarketTrendModule.js +49 -0
  251. package/lib/modularDrawer/hooks/modules/useLeftMarketTrendModule.js.map +1 -0
  252. package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.d.ts +56 -0
  253. package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.d.ts.map +1 -0
  254. package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.js +59 -0
  255. package/lib/modularDrawer/hooks/modules/useRightMarketTrendModule.js.map +1 -0
  256. package/lib/modularDrawer/hooks/useAssetsData.d.ts +3 -1
  257. package/lib/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
  258. package/lib/modularDrawer/hooks/useAssetsData.js +6 -3
  259. package/lib/modularDrawer/hooks/useAssetsData.js.map +1 -1
  260. package/lib/modularDrawer/hooks/useMarketByCurrencies.d.ts +3 -0
  261. package/lib/modularDrawer/hooks/useMarketByCurrencies.d.ts.map +1 -0
  262. package/lib/modularDrawer/hooks/useMarketByCurrencies.js +26 -0
  263. package/lib/modularDrawer/hooks/useMarketByCurrencies.js.map +1 -0
  264. package/lib/modularDrawer/hooks/useSearch.d.ts +16 -0
  265. package/lib/modularDrawer/hooks/useSearch.d.ts.map +1 -0
  266. package/lib/modularDrawer/hooks/useSearch.js +24 -0
  267. package/lib/modularDrawer/hooks/useSearch.js.map +1 -0
  268. package/lib/modularDrawer/modules/createAssetConfiguration.d.ts.map +1 -1
  269. package/lib/modularDrawer/modules/createAssetConfiguration.js +8 -0
  270. package/lib/modularDrawer/modules/createAssetConfiguration.js.map +1 -1
  271. package/lib/modularDrawer/utils/type.d.ts +7 -0
  272. package/lib/modularDrawer/utils/type.d.ts.map +1 -1
  273. package/lib/wallet-api/ACRE/server.d.ts +13 -6
  274. package/lib/wallet-api/ACRE/server.d.ts.map +1 -1
  275. package/lib/wallet-api/ACRE/server.js +142 -1
  276. package/lib/wallet-api/ACRE/server.js.map +1 -1
  277. package/lib/wallet-api/ACRE/server.test.d.ts +2 -0
  278. package/lib/wallet-api/ACRE/server.test.d.ts.map +1 -0
  279. package/lib/wallet-api/ACRE/server.test.js +393 -0
  280. package/lib/wallet-api/ACRE/server.test.js.map +1 -0
  281. package/lib/wallet-api/Exchange/server.d.ts.map +1 -1
  282. package/lib/wallet-api/Exchange/server.js +16 -13
  283. package/lib/wallet-api/Exchange/server.js.map +1 -1
  284. package/lib-es/__tests__/test-helpers/environment.js +1 -0
  285. package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
  286. package/lib-es/apps/inlineAppInstall.d.ts +1 -3
  287. package/lib-es/apps/inlineAppInstall.d.ts.map +1 -1
  288. package/lib-es/apps/inlineAppInstall.js +2 -2
  289. package/lib-es/apps/inlineAppInstall.js.map +1 -1
  290. package/lib-es/apps/react.d.ts +1 -2
  291. package/lib-es/apps/react.d.ts.map +1 -1
  292. package/lib-es/apps/react.js +2 -2
  293. package/lib-es/apps/react.js.map +1 -1
  294. package/lib-es/apps/runner.d.ts +2 -4
  295. package/lib-es/apps/runner.d.ts.map +1 -1
  296. package/lib-es/apps/runner.js +3 -4
  297. package/lib-es/apps/runner.js.map +1 -1
  298. package/lib-es/bridge/generic-alpaca/accountBridge.d.ts +2 -1
  299. package/lib-es/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
  300. package/lib-es/bridge/generic-alpaca/accountBridge.js +2 -2
  301. package/lib-es/bridge/generic-alpaca/accountBridge.js.map +1 -1
  302. package/lib-es/bridge/generic-alpaca/alpaca/index.d.ts +1 -1
  303. package/lib-es/bridge/generic-alpaca/alpaca/index.d.ts.map +1 -1
  304. package/lib-es/bridge/generic-alpaca/alpaca/index.js +10 -6
  305. package/lib-es/bridge/generic-alpaca/alpaca/index.js.map +1 -1
  306. package/lib-es/bridge/generic-alpaca/alpaca/index.unit.test.js +37 -9
  307. package/lib-es/bridge/generic-alpaca/alpaca/index.unit.test.js.map +1 -1
  308. package/lib-es/bridge/generic-alpaca/broadcast.js +2 -2
  309. package/lib-es/bridge/generic-alpaca/broadcast.js.map +1 -1
  310. package/lib-es/bridge/generic-alpaca/createTransaction.d.ts +3 -23
  311. package/lib-es/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
  312. package/lib-es/bridge/generic-alpaca/createTransaction.js +10 -6
  313. package/lib-es/bridge/generic-alpaca/createTransaction.js.map +1 -1
  314. package/lib-es/bridge/generic-alpaca/currencyBridge.d.ts +2 -1
  315. package/lib-es/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
  316. package/lib-es/bridge/generic-alpaca/currencyBridge.js +3 -2
  317. package/lib-es/bridge/generic-alpaca/currencyBridge.js.map +1 -1
  318. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.d.ts.map +1 -1
  319. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js +4 -2
  320. package/lib-es/bridge/generic-alpaca/estimateMaxSpendable.js.map +1 -1
  321. package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  322. package/lib-es/bridge/generic-alpaca/getAccountShape.js +5 -5
  323. package/lib-es/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  324. package/lib-es/bridge/generic-alpaca/getTransactionStatus.d.ts.map +1 -1
  325. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js +2 -1
  326. package/lib-es/bridge/generic-alpaca/getTransactionStatus.js.map +1 -1
  327. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts +5 -13
  328. package/lib-es/bridge/generic-alpaca/prepareTransaction.d.ts.map +1 -1
  329. package/lib-es/bridge/generic-alpaca/prepareTransaction.js +2 -2
  330. package/lib-es/bridge/generic-alpaca/prepareTransaction.js.map +1 -1
  331. package/lib-es/bridge/generic-alpaca/signOperation.d.ts +3 -2
  332. package/lib-es/bridge/generic-alpaca/signOperation.d.ts.map +1 -1
  333. package/lib-es/bridge/generic-alpaca/signOperation.js +19 -15
  334. package/lib-es/bridge/generic-alpaca/signOperation.js.map +1 -1
  335. package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts +8 -0
  336. package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -0
  337. package/lib-es/bridge/generic-alpaca/signer/Eth.js +47 -0
  338. package/lib-es/bridge/generic-alpaca/signer/Eth.js.map +1 -0
  339. package/lib-es/bridge/generic-alpaca/signer/index.d.ts +2 -10
  340. package/lib-es/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
  341. package/lib-es/bridge/generic-alpaca/signer/index.js +2 -2
  342. package/lib-es/bridge/generic-alpaca/signer/index.js.map +1 -1
  343. package/lib-es/bridge/generic-alpaca/signer/signTransaction.d.ts +2 -3
  344. package/lib-es/bridge/generic-alpaca/signer/signTransaction.d.ts.map +1 -1
  345. package/lib-es/bridge/generic-alpaca/signer/signTransaction.js.map +1 -1
  346. package/lib-es/bridge/generic-alpaca/signer/types.d.ts +11 -0
  347. package/lib-es/bridge/generic-alpaca/signer/types.d.ts.map +1 -1
  348. package/lib-es/bridge/generic-alpaca/tests/getAccountShape.test.d.ts +2 -0
  349. package/lib-es/bridge/generic-alpaca/tests/getAccountShape.test.d.ts.map +1 -0
  350. package/lib-es/bridge/generic-alpaca/tests/getAccountShape.test.js +139 -0
  351. package/lib-es/bridge/generic-alpaca/tests/getAccountShape.test.js.map +1 -0
  352. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js +2 -0
  353. package/lib-es/bridge/generic-alpaca/tests/prepareTransaction.test.js.map +1 -1
  354. package/lib-es/bridge/generic-alpaca/tests/signOperation.test.js +5 -4
  355. package/lib-es/bridge/generic-alpaca/tests/signOperation.test.js.map +1 -1
  356. package/lib-es/bridge/generic-alpaca/types.d.ts +25 -0
  357. package/lib-es/bridge/generic-alpaca/types.d.ts.map +1 -0
  358. package/lib-es/bridge/generic-alpaca/types.js +2 -0
  359. package/lib-es/bridge/generic-alpaca/types.js.map +1 -0
  360. package/lib-es/bridge/generic-alpaca/utils.d.ts +4 -8
  361. package/lib-es/bridge/generic-alpaca/utils.d.ts.map +1 -1
  362. package/lib-es/bridge/generic-alpaca/utils.js +13 -0
  363. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  364. package/lib-es/bridge/generic-alpaca/utils.test.js +22 -1
  365. package/lib-es/bridge/generic-alpaca/utils.test.js.map +1 -1
  366. package/lib-es/config/sharedConfig.d.ts.map +1 -1
  367. package/lib-es/config/sharedConfig.js +2 -0
  368. package/lib-es/config/sharedConfig.js.map +1 -1
  369. package/lib-es/e2e/data/deviceLabelsData.d.ts +27 -0
  370. package/lib-es/e2e/data/deviceLabelsData.d.ts.map +1 -0
  371. package/lib-es/e2e/data/deviceLabelsData.js +75 -0
  372. package/lib-es/e2e/data/deviceLabelsData.js.map +1 -0
  373. package/lib-es/e2e/enum/Account.d.ts +2 -0
  374. package/lib-es/e2e/enum/Account.d.ts.map +1 -1
  375. package/lib-es/e2e/enum/Account.js +2 -0
  376. package/lib-es/e2e/enum/Account.js.map +1 -1
  377. package/lib-es/e2e/enum/AppInfos.d.ts +1 -0
  378. package/lib-es/e2e/enum/AppInfos.d.ts.map +1 -1
  379. package/lib-es/e2e/enum/AppInfos.js +1 -0
  380. package/lib-es/e2e/enum/AppInfos.js.map +1 -1
  381. package/lib-es/e2e/enum/Currency.d.ts +1 -0
  382. package/lib-es/e2e/enum/Currency.d.ts.map +1 -1
  383. package/lib-es/e2e/enum/Currency.js +1 -0
  384. package/lib-es/e2e/enum/Currency.js.map +1 -1
  385. package/lib-es/e2e/enum/DeviceLabels.d.ts +51 -44
  386. package/lib-es/e2e/enum/DeviceLabels.d.ts.map +1 -1
  387. package/lib-es/e2e/enum/DeviceLabels.js +51 -44
  388. package/lib-es/e2e/enum/DeviceLabels.js.map +1 -1
  389. package/lib-es/e2e/enum/Network.d.ts +2 -1
  390. package/lib-es/e2e/enum/Network.d.ts.map +1 -1
  391. package/lib-es/e2e/enum/Network.js +1 -0
  392. package/lib-es/e2e/enum/Network.js.map +1 -1
  393. package/lib-es/e2e/families/cardano.d.ts.map +1 -1
  394. package/lib-es/e2e/families/cardano.js +1 -0
  395. package/lib-es/e2e/families/cardano.js.map +1 -1
  396. package/lib-es/e2e/families/celo.d.ts +1 -1
  397. package/lib-es/e2e/families/celo.d.ts.map +1 -1
  398. package/lib-es/e2e/families/celo.js +4 -6
  399. package/lib-es/e2e/families/celo.js.map +1 -1
  400. package/lib-es/e2e/families/cosmos.d.ts.map +1 -1
  401. package/lib-es/e2e/families/cosmos.js +2 -3
  402. package/lib-es/e2e/families/cosmos.js.map +1 -1
  403. package/lib-es/e2e/families/evm.d.ts.map +1 -1
  404. package/lib-es/e2e/families/evm.js +5 -2
  405. package/lib-es/e2e/families/evm.js.map +1 -1
  406. package/lib-es/e2e/families/kaspa.d.ts +4 -0
  407. package/lib-es/e2e/families/kaspa.d.ts.map +1 -0
  408. package/lib-es/e2e/families/kaspa.js +15 -0
  409. package/lib-es/e2e/families/kaspa.js.map +1 -0
  410. package/lib-es/e2e/families/multiversX.d.ts +2 -1
  411. package/lib-es/e2e/families/multiversX.d.ts.map +1 -1
  412. package/lib-es/e2e/families/multiversX.js +3 -5
  413. package/lib-es/e2e/families/multiversX.js.map +1 -1
  414. package/lib-es/e2e/families/near.d.ts.map +1 -1
  415. package/lib-es/e2e/families/near.js +2 -3
  416. package/lib-es/e2e/families/near.js.map +1 -1
  417. package/lib-es/e2e/families/osmosis.d.ts.map +1 -1
  418. package/lib-es/e2e/families/osmosis.js +2 -4
  419. package/lib-es/e2e/families/osmosis.js.map +1 -1
  420. package/lib-es/e2e/families/solana.d.ts +2 -1
  421. package/lib-es/e2e/families/solana.d.ts.map +1 -1
  422. package/lib-es/e2e/families/solana.js +7 -5
  423. package/lib-es/e2e/families/solana.js.map +1 -1
  424. package/lib-es/e2e/families/tezos.d.ts +2 -1
  425. package/lib-es/e2e/families/tezos.d.ts.map +1 -1
  426. package/lib-es/e2e/families/tezos.js +8 -6
  427. package/lib-es/e2e/families/tezos.js.map +1 -1
  428. package/lib-es/e2e/index.d.ts +5 -7
  429. package/lib-es/e2e/index.d.ts.map +1 -1
  430. package/lib-es/e2e/speculos.d.ts +2 -1
  431. package/lib-es/e2e/speculos.d.ts.map +1 -1
  432. package/lib-es/e2e/speculos.js +46 -27
  433. package/lib-es/e2e/speculos.js.map +1 -1
  434. package/lib-es/env.react.d.ts +1 -1
  435. package/lib-es/env.react.d.ts.map +1 -1
  436. package/lib-es/exchange/providers/swap.d.ts.map +1 -1
  437. package/lib-es/exchange/providers/swap.js +15 -0
  438. package/lib-es/exchange/providers/swap.js.map +1 -1
  439. package/lib-es/exchange/swap/transactionStrategies.d.ts +38 -11
  440. package/lib-es/exchange/swap/transactionStrategies.d.ts.map +1 -1
  441. package/lib-es/exchange/swap/transactionStrategies.js +87 -44
  442. package/lib-es/exchange/swap/transactionStrategies.js.map +1 -1
  443. package/lib-es/families/canton/config.d.ts.map +1 -1
  444. package/lib-es/families/canton/config.js +3 -5
  445. package/lib-es/families/canton/config.js.map +1 -1
  446. package/lib-es/families/canton/setup.d.ts.map +1 -1
  447. package/lib-es/families/canton/setup.js +5 -5
  448. package/lib-es/families/canton/setup.js.map +1 -1
  449. package/lib-es/families/evm/config.js +2 -2
  450. package/lib-es/families/evm/config.js.map +1 -1
  451. package/lib-es/families/kaspa/bridge.integration.test.d.ts +2 -0
  452. package/lib-es/families/kaspa/bridge.integration.test.d.ts.map +1 -0
  453. package/lib-es/families/kaspa/bridge.integration.test.js +5 -0
  454. package/lib-es/families/kaspa/bridge.integration.test.js.map +1 -0
  455. package/lib-es/families/kaspa/config.d.ts +3 -0
  456. package/lib-es/families/kaspa/config.d.ts.map +1 -0
  457. package/lib-es/families/kaspa/config.js +11 -0
  458. package/lib-es/families/kaspa/config.js.map +1 -0
  459. package/lib-es/families/kaspa/react.d.ts +4 -0
  460. package/lib-es/families/kaspa/react.d.ts.map +1 -0
  461. package/lib-es/families/kaspa/react.js +14 -0
  462. package/lib-es/families/kaspa/react.js.map +1 -0
  463. package/lib-es/families/kaspa/setup.d.ts +18 -0
  464. package/lib-es/families/kaspa/setup.d.ts.map +1 -0
  465. package/lib-es/families/kaspa/setup.js +16 -0
  466. package/lib-es/families/kaspa/setup.js.map +1 -0
  467. package/lib-es/families/kaspa/types.d.ts +2 -0
  468. package/lib-es/families/kaspa/types.d.ts.map +1 -0
  469. package/lib-es/families/kaspa/types.js +2 -0
  470. package/lib-es/families/kaspa/types.js.map +1 -0
  471. package/lib-es/families/solana/bridge/mock-data.d.ts.map +1 -1
  472. package/lib-es/families/solana/bridge/mock-data.js +7 -0
  473. package/lib-es/families/solana/bridge/mock-data.js.map +1 -1
  474. package/lib-es/families/xrp/setup.d.ts +2 -2
  475. package/lib-es/featureFlags/defaultFeatures.d.ts +1 -0
  476. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  477. package/lib-es/featureFlags/defaultFeatures.js +6 -2
  478. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  479. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  480. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  481. package/lib-es/generated/bridge/js.d.ts +1 -0
  482. package/lib-es/generated/bridge/js.d.ts.map +1 -1
  483. package/lib-es/generated/bridge/js.js +2 -0
  484. package/lib-es/generated/bridge/js.js.map +1 -1
  485. package/lib-es/generated/bridge/mock.d.ts +1 -1
  486. package/lib-es/generated/cli-transaction.d.ts +13 -2
  487. package/lib-es/generated/cli-transaction.d.ts.map +1 -1
  488. package/lib-es/generated/cli-transaction.js +2 -0
  489. package/lib-es/generated/cli-transaction.js.map +1 -1
  490. package/lib-es/generated/deviceTransactionConfig.d.ts +2 -0
  491. package/lib-es/generated/deviceTransactionConfig.d.ts.map +1 -1
  492. package/lib-es/generated/deviceTransactionConfig.js +2 -0
  493. package/lib-es/generated/deviceTransactionConfig.js.map +1 -1
  494. package/lib-es/generated/hw-getAddress.d.ts +1 -0
  495. package/lib-es/generated/hw-getAddress.d.ts.map +1 -1
  496. package/lib-es/generated/hw-getAddress.js +2 -0
  497. package/lib-es/generated/hw-getAddress.js.map +1 -1
  498. package/lib-es/generated/platformAdapter.d.ts +1 -1
  499. package/lib-es/generated/specs.d.ts +1 -1
  500. package/lib-es/generated/transaction.d.ts +11 -3
  501. package/lib-es/generated/transaction.d.ts.map +1 -1
  502. package/lib-es/generated/transaction.js +2 -0
  503. package/lib-es/generated/transaction.js.map +1 -1
  504. package/lib-es/generated/types.d.ts +5 -4
  505. package/lib-es/generated/types.d.ts.map +1 -1
  506. package/lib-es/generated/walletApiAdapter.d.ts +1 -1
  507. package/lib-es/hw/actions/app.d.ts.map +1 -1
  508. package/lib-es/hw/actions/app.js.map +1 -1
  509. package/lib-es/hw/getDeviceNameMaxLength.d.ts.map +1 -1
  510. package/lib-es/hw/getDeviceNameMaxLength.js +2 -0
  511. package/lib-es/hw/getDeviceNameMaxLength.js.map +1 -1
  512. package/lib-es/hw/getDeviceNameMaxLength.test.js +12 -0
  513. package/lib-es/hw/getDeviceNameMaxLength.test.js.map +1 -1
  514. package/lib-es/modularDrawer/data/entities/interestRateSelectors.d.ts +1 -13
  515. package/lib-es/modularDrawer/data/entities/interestRateSelectors.d.ts.map +1 -1
  516. package/lib-es/modularDrawer/data/entities/interestRateSelectors.js +2 -17
  517. package/lib-es/modularDrawer/data/entities/interestRateSelectors.js.map +1 -1
  518. package/lib-es/modularDrawer/data/entities/marketSelectors.d.ts +4 -0
  519. package/lib-es/modularDrawer/data/entities/marketSelectors.d.ts.map +1 -0
  520. package/lib-es/modularDrawer/data/entities/marketSelectors.js +3 -0
  521. package/lib-es/modularDrawer/data/entities/marketSelectors.js.map +1 -0
  522. package/lib-es/modularDrawer/data/entities/selectorUtils.d.ts +18 -0
  523. package/lib-es/modularDrawer/data/entities/selectorUtils.d.ts.map +1 -0
  524. package/lib-es/modularDrawer/data/entities/selectorUtils.js +25 -0
  525. package/lib-es/modularDrawer/data/entities/selectorUtils.js.map +1 -0
  526. package/lib-es/modularDrawer/data/state-manager/api.d.ts.map +1 -1
  527. package/lib-es/modularDrawer/data/state-manager/api.js +3 -2
  528. package/lib-es/modularDrawer/data/state-manager/api.js.map +1 -1
  529. package/lib-es/modularDrawer/data/state-manager/types.d.ts +1 -0
  530. package/lib-es/modularDrawer/data/state-manager/types.d.ts.map +1 -1
  531. package/lib-es/modularDrawer/hooks/modules/useLeftMarketTrendModule.d.ts +50 -0
  532. package/lib-es/modularDrawer/hooks/modules/useLeftMarketTrendModule.d.ts.map +1 -0
  533. package/lib-es/modularDrawer/hooks/modules/useLeftMarketTrendModule.js +22 -0
  534. package/lib-es/modularDrawer/hooks/modules/useLeftMarketTrendModule.js.map +1 -0
  535. package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.d.ts +56 -0
  536. package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.d.ts.map +1 -0
  537. package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.js +32 -0
  538. package/lib-es/modularDrawer/hooks/modules/useRightMarketTrendModule.js.map +1 -0
  539. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts +3 -1
  540. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
  541. package/lib-es/modularDrawer/hooks/useAssetsData.js +6 -3
  542. package/lib-es/modularDrawer/hooks/useAssetsData.js.map +1 -1
  543. package/lib-es/modularDrawer/hooks/useMarketByCurrencies.d.ts +3 -0
  544. package/lib-es/modularDrawer/hooks/useMarketByCurrencies.d.ts.map +1 -0
  545. package/lib-es/modularDrawer/hooks/useMarketByCurrencies.js +22 -0
  546. package/lib-es/modularDrawer/hooks/useMarketByCurrencies.js.map +1 -0
  547. package/lib-es/modularDrawer/hooks/useSearch.d.ts +16 -0
  548. package/lib-es/modularDrawer/hooks/useSearch.d.ts.map +1 -0
  549. package/lib-es/modularDrawer/hooks/useSearch.js +20 -0
  550. package/lib-es/modularDrawer/hooks/useSearch.js.map +1 -0
  551. package/lib-es/modularDrawer/modules/createAssetConfiguration.d.ts.map +1 -1
  552. package/lib-es/modularDrawer/modules/createAssetConfiguration.js +8 -0
  553. package/lib-es/modularDrawer/modules/createAssetConfiguration.js.map +1 -1
  554. package/lib-es/modularDrawer/utils/type.d.ts +7 -0
  555. package/lib-es/modularDrawer/utils/type.d.ts.map +1 -1
  556. package/lib-es/wallet-api/ACRE/server.d.ts +13 -6
  557. package/lib-es/wallet-api/ACRE/server.d.ts.map +1 -1
  558. package/lib-es/wallet-api/ACRE/server.js +140 -2
  559. package/lib-es/wallet-api/ACRE/server.js.map +1 -1
  560. package/lib-es/wallet-api/ACRE/server.test.d.ts +2 -0
  561. package/lib-es/wallet-api/ACRE/server.test.d.ts.map +1 -0
  562. package/lib-es/wallet-api/ACRE/server.test.js +388 -0
  563. package/lib-es/wallet-api/ACRE/server.test.js.map +1 -0
  564. package/lib-es/wallet-api/Exchange/server.d.ts.map +1 -1
  565. package/lib-es/wallet-api/Exchange/server.js +16 -13
  566. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  567. package/package.json +72 -69
  568. package/src/__tests__/test-helpers/environment.ts +1 -0
  569. package/src/apps/inlineAppInstall.ts +1 -4
  570. package/src/apps/react.ts +1 -3
  571. package/src/apps/runner.ts +1 -8
  572. package/src/bridge/generic-alpaca/accountBridge.ts +8 -3
  573. package/src/bridge/generic-alpaca/alpaca/index.ts +15 -17
  574. package/src/bridge/generic-alpaca/alpaca/index.unit.test.ts +38 -10
  575. package/src/bridge/generic-alpaca/broadcast.ts +2 -2
  576. package/src/bridge/generic-alpaca/createTransaction.ts +13 -24
  577. package/src/bridge/generic-alpaca/currencyBridge.ts +8 -2
  578. package/src/bridge/generic-alpaca/estimateMaxSpendable.ts +5 -7
  579. package/src/bridge/generic-alpaca/getAccountShape.ts +7 -7
  580. package/src/bridge/generic-alpaca/getTransactionStatus.ts +5 -14
  581. package/src/bridge/generic-alpaca/prepareTransaction.ts +10 -17
  582. package/src/bridge/generic-alpaca/signOperation.ts +25 -31
  583. package/src/bridge/generic-alpaca/signer/Eth.ts +70 -0
  584. package/src/bridge/generic-alpaca/signer/index.ts +5 -15
  585. package/src/bridge/generic-alpaca/signer/signTransaction.ts +4 -3
  586. package/src/bridge/generic-alpaca/signer/types.ts +14 -0
  587. package/src/bridge/generic-alpaca/tests/getAccountShape.test.ts +173 -0
  588. package/src/bridge/generic-alpaca/tests/prepareTransaction.test.ts +3 -2
  589. package/src/bridge/generic-alpaca/tests/signOperation.test.ts +6 -5
  590. package/src/bridge/generic-alpaca/types.ts +23 -0
  591. package/src/bridge/generic-alpaca/utils.test.ts +29 -1
  592. package/src/bridge/generic-alpaca/utils.ts +17 -8
  593. package/src/config/sharedConfig.ts +2 -0
  594. package/src/e2e/data/deviceLabelsData.ts +100 -0
  595. package/src/e2e/enum/Account.ts +14 -0
  596. package/src/e2e/enum/AppInfos.ts +2 -0
  597. package/src/e2e/enum/Currency.ts +2 -0
  598. package/src/e2e/enum/DeviceLabels.ts +51 -44
  599. package/src/e2e/enum/Network.ts +1 -0
  600. package/src/e2e/families/cardano.ts +1 -0
  601. package/src/e2e/families/celo.ts +4 -6
  602. package/src/e2e/families/cosmos.ts +7 -3
  603. package/src/e2e/families/evm.ts +12 -2
  604. package/src/e2e/families/kaspa.ts +17 -0
  605. package/src/e2e/families/multiversX.ts +4 -5
  606. package/src/e2e/families/near.ts +8 -3
  607. package/src/e2e/families/osmosis.ts +2 -4
  608. package/src/e2e/families/solana.ts +15 -5
  609. package/src/e2e/families/tezos.ts +10 -6
  610. package/src/e2e/speculos.ts +67 -28
  611. package/src/exchange/providers/swap.ts +21 -0
  612. package/src/exchange/swap/transactionStrategies.ts +121 -73
  613. package/src/families/canton/config.ts +3 -6
  614. package/src/families/canton/setup.ts +6 -5
  615. package/src/families/evm/config.ts +2 -2
  616. package/src/families/kaspa/__snapshots__/bridge.integration.test.ts.snap +66 -0
  617. package/src/families/kaspa/bridge.integration.test.ts +5 -0
  618. package/src/families/kaspa/config.ts +12 -0
  619. package/src/families/kaspa/react.ts +19 -0
  620. package/src/families/kaspa/setup.ts +27 -0
  621. package/src/families/kaspa/types.ts +1 -0
  622. package/src/families/solana/bridge/mock-data.ts +7 -0
  623. package/src/featureFlags/defaultFeatures.ts +6 -2
  624. package/src/generated/bridge/js.ts +2 -0
  625. package/src/generated/cli-transaction.ts +2 -0
  626. package/src/generated/deviceTransactionConfig.ts +2 -0
  627. package/src/generated/hw-getAddress.ts +2 -0
  628. package/src/generated/transaction.ts +2 -0
  629. package/src/generated/types.ts +10 -0
  630. package/src/hw/actions/app.ts +0 -1
  631. package/src/hw/getDeviceNameMaxLength.test.ts +16 -0
  632. package/src/hw/getDeviceNameMaxLength.ts +2 -0
  633. package/src/modularDrawer/data/entities/interestRateSelectors.ts +2 -34
  634. package/src/modularDrawer/data/entities/marketSelectors.ts +8 -0
  635. package/src/modularDrawer/data/entities/selectorUtils.ts +42 -0
  636. package/src/modularDrawer/data/state-manager/api.ts +4 -2
  637. package/src/modularDrawer/data/state-manager/types.ts +1 -0
  638. package/src/modularDrawer/hooks/modules/useLeftMarketTrendModule.tsx +36 -0
  639. package/src/modularDrawer/hooks/modules/useRightMarketTrendModule.tsx +57 -0
  640. package/src/modularDrawer/hooks/useAssetsData.ts +24 -9
  641. package/src/modularDrawer/hooks/useMarketByCurrencies.ts +29 -0
  642. package/src/modularDrawer/hooks/useSearch.ts +52 -0
  643. package/src/modularDrawer/modules/createAssetConfiguration.ts +10 -0
  644. package/src/modularDrawer/utils/type.ts +2 -0
  645. package/src/wallet-api/ACRE/server.test.ts +470 -0
  646. package/src/wallet-api/ACRE/server.ts +202 -14
  647. package/src/wallet-api/Exchange/server.ts +17 -14
  648. package/lib/exchange/providers/swap.integration.test.d.ts +0 -2
  649. package/lib/exchange/providers/swap.integration.test.d.ts.map +0 -1
  650. package/lib/exchange/providers/swap.integration.test.js +0 -201
  651. package/lib/exchange/providers/swap.integration.test.js.map +0 -1
  652. package/lib-es/exchange/providers/swap.integration.test.d.ts +0 -2
  653. package/lib-es/exchange/providers/swap.integration.test.d.ts.map +0 -1
  654. package/lib-es/exchange/providers/swap.integration.test.js +0 -199
  655. package/lib-es/exchange/providers/swap.integration.test.js.map +0 -1
  656. package/src/exchange/providers/swap.integration.test.ts +0 -261
@@ -0,0 +1,66 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`kaspa currency bridge scanAccounts kaspa seed 1 1`] = `
4
+ [
5
+ {
6
+ "balance": "13370000",
7
+ "currencyId": "kaspa",
8
+ "derivationMode": "",
9
+ "freshAddress": "kaspa:qz49rpg0q6ywewxkwl76757ya79v6j556hcmrcy7mk9d36ewgp80cdrwlct2h",
10
+ "freshAddressPath": "44'/111111'/0'/0/1",
11
+ "id": "js:2:kaspa:41049d8002c08041d975ab58491c09cf8ced7b388a114ab2f5df73f2534d4d74d17ab8913b3cb3056bad63141cb63fb92e44401b691dee069dbdb2119861c18cc01b204340fcc305ab72e752cd347f4b6271ffe21da098d4f2a4749826857dda7a5576:",
12
+ "index": 0,
13
+ "operationsCount": 1,
14
+ "pendingOperations": [],
15
+ "seedIdentifier": "41049d8002c08041d975ab58491c09cf8ced7b388a114ab2f5df73f2534d4d74d17ab8913b3cb3056bad63141cb63fb92e44401b691dee069dbdb2119861c18cc01b204340fcc305ab72e752cd347f4b6271ffe21da098d4f2a4749826857dda7a5576",
16
+ "spendableBalance": "13370000",
17
+ "swapHistory": [],
18
+ "syncHash": undefined,
19
+ "used": true,
20
+ "xpub": "41049d8002c08041d975ab58491c09cf8ced7b388a114ab2f5df73f2534d4d74d17ab8913b3cb3056bad63141cb63fb92e44401b691dee069dbdb2119861c18cc01b204340fcc305ab72e752cd347f4b6271ffe21da098d4f2a4749826857dda7a5576",
21
+ },
22
+ {
23
+ "balance": "0",
24
+ "currencyId": "kaspa",
25
+ "derivationMode": "",
26
+ "freshAddress": "kaspa:qpncmme6ues25uk9umkqju4rtwtt33ud9lcrp7qn8jwv62m53m26jpjhar48j",
27
+ "freshAddressPath": "44'/111111'/1'/0/0",
28
+ "id": "js:2:kaspa:4104751b5ebd4a9d2a0a25d5c37cab4814a95335b8945cfcaa6a4138de418f581bb1d0d02f22081b3cda223a51e18a63ebdffd64803e0988b68a91802738a5a9f901206d4a2b989a82b5fb160f0151ea5d046451a291a0748f3038ecdc63d637cce00b:",
29
+ "index": 1,
30
+ "operationsCount": 0,
31
+ "pendingOperations": [],
32
+ "seedIdentifier": "41049d8002c08041d975ab58491c09cf8ced7b388a114ab2f5df73f2534d4d74d17ab8913b3cb3056bad63141cb63fb92e44401b691dee069dbdb2119861c18cc01b204340fcc305ab72e752cd347f4b6271ffe21da098d4f2a4749826857dda7a5576",
33
+ "spendableBalance": "0",
34
+ "swapHistory": [],
35
+ "syncHash": undefined,
36
+ "used": false,
37
+ "xpub": "4104751b5ebd4a9d2a0a25d5c37cab4814a95335b8945cfcaa6a4138de418f581bb1d0d02f22081b3cda223a51e18a63ebdffd64803e0988b68a91802738a5a9f901206d4a2b989a82b5fb160f0151ea5d046451a291a0748f3038ecdc63d637cce00b",
38
+ },
39
+ ]
40
+ `;
41
+
42
+ exports[`kaspa currency bridge scanAccounts kaspa seed 1 2`] = `
43
+ [
44
+ [
45
+ {
46
+ "accountId": "js:2:kaspa:41049d8002c08041d975ab58491c09cf8ced7b388a114ab2f5df73f2534d4d74d17ab8913b3cb3056bad63141cb63fb92e44401b691dee069dbdb2119861c18cc01b204340fcc305ab72e752cd347f4b6271ffe21da098d4f2a4749826857dda7a5576:",
47
+ "blockHash": "12166d40313b71447d4dd837f2e91e749407b0a1c8844e9e9d010390a67d6b52",
48
+ "blockHeight": 194187672,
49
+ "extra": {},
50
+ "fee": "2069",
51
+ "hash": "ed6dc5422558c3480e6a7809bf166e6ba1f2931ef39f24fe9b3bcf48253e4752",
52
+ "id": "ed6dc5422558c3480e6a7809bf166e6ba1f2931ef39f24fe9b3bcf48253e4752",
53
+ "recipients": [
54
+ "kaspa:qzavrhr9eg0k7pgr8mysfej34alfy8uj6vc9r84kgqfkqd8rtgxm5t0jvah73",
55
+ "kaspa:qqt874j85r5ga5av0q6tthj2tu89dfpchjmvjuvx5tyn2vpjjrhk7tcpsx2vu",
56
+ ],
57
+ "senders": [
58
+ "kaspa:qqt874j85r5ga5av0q6tthj2tu89dfpchjmvjuvx5tyn2vpjjrhk7tcpsx2vu",
59
+ ],
60
+ "type": "IN",
61
+ "value": "13370000",
62
+ },
63
+ ],
64
+ [],
65
+ ]
66
+ `;
@@ -0,0 +1,5 @@
1
+ import "../../__tests__/test-helpers/setup";
2
+ import { testBridge } from "../../__tests__/test-helpers/bridge";
3
+ import { dataset } from "@ledgerhq/coin-kaspa/test/index";
4
+
5
+ testBridge(dataset);
@@ -0,0 +1,12 @@
1
+ import { ConfigInfo } from "@ledgerhq/live-config/LiveConfig";
2
+
3
+ export const kaspaConfig: Record<string, ConfigInfo> = {
4
+ config_currency_kaspa: {
5
+ type: "object",
6
+ default: {
7
+ status: {
8
+ type: "active",
9
+ },
10
+ },
11
+ },
12
+ };
@@ -0,0 +1,19 @@
1
+ import type { Account, FeeStrategy } from "@ledgerhq/types-live";
2
+ import type { Transaction } from "@ledgerhq/coin-kaspa/types/index";
3
+ import { BigNumber } from "bignumber.js";
4
+
5
+ export const useFeesStrategy = (a: Account, t: Transaction): FeeStrategy[] => {
6
+ const allSameEstimatedSeconds: boolean = t.networkInfo.every(
7
+ ni => ni.estimatedSeconds === t.networkInfo[0].estimatedSeconds,
8
+ );
9
+
10
+ return t.networkInfo.map(ni => ({
11
+ label: ni.label,
12
+ amount: ni.amount,
13
+ disabled: (ni.label === "slow" || ni.label === "medium") && allSameEstimatedSeconds,
14
+ extra: {
15
+ estimatedMs: BigNumber(ni.estimatedSeconds * 1000),
16
+ },
17
+ unit: a.currency.units[a.currency.units.length - 1], // Should be sat
18
+ }));
19
+ };
@@ -0,0 +1,27 @@
1
+ // Goal of this file is to inject all necessary device/signer dependency to coin-modules
2
+
3
+ import kaspaResolver from "@ledgerhq/coin-kaspa/hw-getAddress";
4
+ import Kaspa from "@ledgerhq/hw-app-kaspa";
5
+ import Transport from "@ledgerhq/hw-transport";
6
+ import { createResolver, CreateSigner, executeWithSigner } from "../../bridge/setup";
7
+ import type { Resolver } from "../../hw/getAddress/types";
8
+ import { KaspaSigner } from "@ledgerhq/coin-kaspa/types/signer";
9
+ import { KaspaAccount, Transaction, TransactionStatus } from "@ledgerhq/coin-kaspa/types/bridge";
10
+ import { createBridges } from "@ledgerhq/coin-kaspa/bridge";
11
+ import type { Bridge } from "@ledgerhq/types-live";
12
+ import makeCliTools from "@ledgerhq/coin-kaspa/test/cli";
13
+
14
+ const createSigner: CreateSigner<KaspaSigner> = (transport: Transport) => {
15
+ return new Kaspa(transport);
16
+ };
17
+
18
+ // const kaspaCoin = getCryptoCurrencyById("kaspa");
19
+ const resolver: Resolver = createResolver(createSigner, kaspaResolver);
20
+ // const getCurrencyConfig = (): KaspaCoinConfig => getCurrencyConfiguration(kaspaCoin);
21
+
22
+ const bridge: Bridge<Transaction, KaspaAccount, TransactionStatus> = createBridges(
23
+ executeWithSigner(createSigner),
24
+ );
25
+ const cliTools = makeCliTools;
26
+
27
+ export { bridge, cliTools, resolver };
@@ -0,0 +1 @@
1
+ export * from "@ledgerhq/coin-kaspa/types/index";
@@ -1053,4 +1053,11 @@ export const getMockedMethods = (): {
1053
1053
  ],
1054
1054
  answer: 5000,
1055
1055
  },
1056
+ {
1057
+ method: "getFeeForMessage",
1058
+ params: [
1059
+ "AgAHDjc1rOIrIJkfixB2PGXIAQSzJwuHJA9YroUmtv2PuvSPP+8OPBqVxmRDx/Y75aPMpYwLwXOcvyV/U0x7nko+EO0SBFGvLZ0NYneO32pug1iWWcHAu3j2ZtDx1LCKrAYFoiSCOgVw4vJ15CezszuME15jz9Dg/Bi25syF3OAtN5lhbEv97TDG68Oluwjq10I/k9yP1JbVfNOF4vOLIAq5nZCJB31VpbsTMHY+t2f1XsB3tBoNB1994dc/uso8Y9VUcQLsVE9HDck59M2MuvGmoFz06Gte/oDTVSycPUq+bb8nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAAC0PMCi3T8KLzvCS5ybFyitIXec9h5Iog+RBxXKqC+3oG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqQcowx/Lp2T6I5NWJlk9KDhksV8W/Y4smwWoasmtC9eGB1KXA+nRSCQN7RPXU1jOZSh4bUHdu8NydguyoXRQ/33sHqkza0G2zsD3DxIUPVABI7l4d6+kz6Cj9qnT58WDQgYHAQEMCAAAAAAAAAAAAAAACQAFAkANAwAJAAkDmDoAAAAAAAAHAgAFDAIAAADoAwAAAAAAAAgGAAIDCgcLAQENCgwGAwIABAELBw0JDBiCewAAAAAA",
1060
+ ],
1061
+ answer: 5000,
1062
+ },
1056
1063
  ];
@@ -96,6 +96,7 @@ export const CURRENCY_DEFAULT_FEATURES = {
96
96
  currencyBerachain: DEFAULT_FEATURE,
97
97
  currencyHyperevm: DEFAULT_FEATURE,
98
98
  currencyCantonNetwork: DEFAULT_FEATURE,
99
+ currencyKaspa: DEFAULT_FEATURE,
99
100
  };
100
101
 
101
102
  /**
@@ -103,7 +104,6 @@ export const CURRENCY_DEFAULT_FEATURES = {
103
104
  */
104
105
  export const DEFAULT_FEATURES: Features = {
105
106
  ...CURRENCY_DEFAULT_FEATURES,
106
- brazeLearn: DEFAULT_FEATURE,
107
107
  portfolioExchangeBanner: DEFAULT_FEATURE,
108
108
  postOnboardingAssetsTransfer: DEFAULT_FEATURE,
109
109
  counterValue: DEFAULT_FEATURE,
@@ -522,7 +522,6 @@ export const DEFAULT_FEATURES: Features = {
522
522
  llmMarketQuickActions: DEFAULT_FEATURE,
523
523
  spamFilteringTx: DEFAULT_FEATURE,
524
524
  lldSpamFilteringTx: DEFAULT_FEATURE,
525
- llmSpamFilteringTx: DEFAULT_FEATURE,
526
525
  llmMemoTag: DEFAULT_FEATURE,
527
526
  lldMemoTag: DEFAULT_FEATURE,
528
527
  ldmkTransport: {
@@ -622,6 +621,8 @@ export const DEFAULT_FEATURES: Features = {
622
621
  receive_flow: true,
623
622
  send_flow: true,
624
623
  enableModularization: false,
624
+ searchDebounceTime: 500,
625
+ backendEnvironment: "PROD",
625
626
  },
626
627
  },
627
628
  llmModularDrawer: {
@@ -634,6 +635,8 @@ export const DEFAULT_FEATURES: Features = {
634
635
  receive_flow: true,
635
636
  send_flow: true,
636
637
  enableModularization: false,
638
+ searchDebounceTime: 500,
639
+ backendEnvironment: "PROD",
637
640
  },
638
641
  },
639
642
  llNftSupport: DEFAULT_FEATURE,
@@ -679,6 +682,7 @@ export const DEFAULT_FEATURES: Features = {
679
682
  params: {},
680
683
  },
681
684
  supportDeviceApex: DEFAULT_FEATURE,
685
+ llmSyncOnboardingIncr1: DEFAULT_FEATURE,
682
686
  };
683
687
 
684
688
  // Firebase SDK treat JSON values as strings
@@ -11,6 +11,7 @@ import { bridge as hedera } from "../../families/hedera/setup";
11
11
  import { bridge as filecoin } from "../../families/filecoin/setup";
12
12
  import { bridge as internet_computer } from "../../families/internet_computer/setup";
13
13
  import { bridge as icon } from "../../families/icon/setup";
14
+ import { bridge as kaspa } from "../../families/kaspa/setup";
14
15
  import { bridge as multiversx } from "../../families/multiversx/setup";
15
16
  import { bridge as near } from "../../families/near/setup";
16
17
  import { bridge as polkadot } from "../../families/polkadot/setup";
@@ -37,6 +38,7 @@ export default {
37
38
  filecoin,
38
39
  internet_computer,
39
40
  icon,
41
+ kaspa,
40
42
  multiversx,
41
43
  near,
42
44
  polkadot,
@@ -11,6 +11,7 @@ import { cliTools as hedera } from "../families/hedera/setup";
11
11
  import { cliTools as filecoin } from "../families/filecoin/setup";
12
12
  import { cliTools as internet_computer } from "../families/internet_computer/setup";
13
13
  import { cliTools as icon } from "../families/icon/setup";
14
+ import { cliTools as kaspa } from "../families/kaspa/setup";
14
15
  import { cliTools as multiversx } from "../families/multiversx/setup";
15
16
  import { cliTools as near } from "../families/near/setup";
16
17
  import { cliTools as polkadot } from "../families/polkadot/setup";
@@ -39,6 +40,7 @@ export default {
39
40
  filecoin,
40
41
  internet_computer,
41
42
  icon,
43
+ kaspa,
42
44
  multiversx,
43
45
  near,
44
46
  polkadot,
@@ -11,6 +11,7 @@ import hedera from "@ledgerhq/coin-hedera/deviceTransactionConfig";
11
11
  import filecoin from "@ledgerhq/coin-filecoin/deviceTransactionConfig";
12
12
  import internet_computer from "@ledgerhq/coin-internet_computer/deviceTransactionConfig";
13
13
  import icon from "@ledgerhq/coin-icon/deviceTransactionConfig";
14
+ import kaspa from "@ledgerhq/coin-kaspa/deviceTransactionConfig";
14
15
  import multiversx from "@ledgerhq/coin-multiversx/deviceTransactionConfig";
15
16
  import near from "@ledgerhq/coin-near/deviceTransactionConfig";
16
17
  import polkadot from "@ledgerhq/coin-polkadot/deviceTransactionConfig";
@@ -37,6 +38,7 @@ export default {
37
38
  filecoin,
38
39
  internet_computer,
39
40
  icon,
41
+ kaspa,
40
42
  multiversx,
41
43
  near,
42
44
  polkadot,
@@ -11,6 +11,7 @@ import { resolver as hedera } from "../families/hedera/setup";
11
11
  import { resolver as filecoin } from "../families/filecoin/setup";
12
12
  import { resolver as internet_computer } from "../families/internet_computer/setup";
13
13
  import { resolver as icon } from "../families/icon/setup";
14
+ import { resolver as kaspa } from "../families/kaspa/setup";
14
15
  import { resolver as multiversx } from "../families/multiversx/setup";
15
16
  import { resolver as near } from "../families/near/setup";
16
17
  import { resolver as polkadot } from "../families/polkadot/setup";
@@ -39,6 +40,7 @@ export default {
39
40
  filecoin,
40
41
  internet_computer,
41
42
  icon,
43
+ kaspa,
42
44
  multiversx,
43
45
  near,
44
46
  polkadot,
@@ -11,6 +11,7 @@ import hedera from "@ledgerhq/coin-hedera/transaction";
11
11
  import filecoin from "@ledgerhq/coin-filecoin/transaction";
12
12
  import internet_computer from "@ledgerhq/coin-internet_computer/transaction";
13
13
  import icon from "@ledgerhq/coin-icon/transaction";
14
+ import kaspa from "@ledgerhq/coin-kaspa/transaction";
14
15
  import multiversx from "@ledgerhq/coin-multiversx/transaction";
15
16
  import near from "@ledgerhq/coin-near/transaction";
16
17
  import polkadot from "@ledgerhq/coin-polkadot/transaction";
@@ -39,6 +40,7 @@ export default {
39
40
  filecoin,
40
41
  internet_computer,
41
42
  icon,
43
+ kaspa,
42
44
  multiversx,
43
45
  near,
44
46
  polkadot,
@@ -76,6 +76,12 @@ import type {
76
76
  TransactionStatus as internet_computerTransactionStatus,
77
77
  TransactionStatusRaw as internet_computerTransactionStatusRaw,
78
78
  } from "@ledgerhq/coin-internet_computer/types/index";
79
+ import type {
80
+ Transaction as kaspaTransaction,
81
+ TransactionRaw as kaspaTransactionRaw,
82
+ TransactionStatus as kaspaTransactionStatus,
83
+ TransactionStatusRaw as kaspaTransactionStatusRaw,
84
+ } from "@ledgerhq/coin-kaspa/types/index";
79
85
  import type {
80
86
  Transaction as minaTransaction,
81
87
  TransactionRaw as minaTransactionRaw,
@@ -169,6 +175,7 @@ export type Transaction =
169
175
  | hederaTransaction
170
176
  | iconTransaction
171
177
  | internet_computerTransaction
178
+ | kaspaTransaction
172
179
  | minaTransaction
173
180
  | multiversxTransaction
174
181
  | nearTransaction
@@ -197,6 +204,7 @@ export type TransactionRaw =
197
204
  | hederaTransactionRaw
198
205
  | iconTransactionRaw
199
206
  | internet_computerTransactionRaw
207
+ | kaspaTransactionRaw
200
208
  | minaTransactionRaw
201
209
  | multiversxTransactionRaw
202
210
  | nearTransactionRaw
@@ -225,6 +233,7 @@ export type TransactionStatus =
225
233
  | hederaTransactionStatus
226
234
  | iconTransactionStatus
227
235
  | internet_computerTransactionStatus
236
+ | kaspaTransactionStatus
228
237
  | minaTransactionStatus
229
238
  | multiversxTransactionStatus
230
239
  | nearTransactionStatus
@@ -253,6 +262,7 @@ export type TransactionStatusRaw =
253
262
  | hederaTransactionStatusRaw
254
263
  | iconTransactionStatusRaw
255
264
  | internet_computerTransactionStatusRaw
265
+ | kaspaTransactionStatusRaw
256
266
  | minaTransactionStatusRaw
257
267
  | multiversxTransactionStatusRaw
258
268
  | nearTransactionStatusRaw
@@ -540,7 +540,6 @@ export const createAction = (
540
540
  displayUpgradeWarning: false,
541
541
  }));
542
542
  }, []);
543
-
544
543
  return {
545
544
  ...state,
546
545
  inWrongDeviceForAccount:
@@ -62,6 +62,22 @@ describe("getDeviceNameMaxLength", () => {
62
62
  }),
63
63
  ).toBe(20);
64
64
  });
65
+ test("Europa of any version should max at 20", async () => {
66
+ expect(
67
+ getDeviceNameMaxLength({
68
+ deviceModelId: DeviceModelId.europa,
69
+ version: "0.0.1",
70
+ }),
71
+ ).toBe(20);
72
+ });
73
+ test("Apex of any version should max at 20", async () => {
74
+ expect(
75
+ getDeviceNameMaxLength({
76
+ deviceModelId: DeviceModelId.apex,
77
+ version: "0.0.1",
78
+ }),
79
+ ).toBe(20);
80
+ });
65
81
  test("Other models should just return 17 as a fallback", async () => {
66
82
  expect(
67
83
  getDeviceNameMaxLength({
@@ -31,6 +31,8 @@ const getDeviceNameMaxLength = (props: Props): number => {
31
31
  }
32
32
 
33
33
  case DeviceModelId.stax:
34
+ case DeviceModelId.europa:
35
+ case DeviceModelId.apex:
34
36
  maxLength = 20;
35
37
  break;
36
38
  }
@@ -1,39 +1,7 @@
1
- import { createSelector } from "@reduxjs/toolkit";
2
1
  import { InterestRate } from "../entities";
3
-
4
- interface ApiState {
5
- assetsDataApi?: {
6
- queries?: Record<string, QueryCacheEntry>;
7
- };
8
- }
9
-
10
- interface QueryCacheEntry {
11
- data?: {
12
- pages?: Array<{
13
- interestRates?: Record<string, InterestRate>;
14
- }>;
15
- };
16
- }
2
+ import { createCurrencyDataSelector, ApiState } from "./selectorUtils";
17
3
 
18
4
  export const selectInterestRateByCurrency: (
19
5
  state: ApiState,
20
6
  currencyId: string,
21
- ) => InterestRate | undefined = createSelector(
22
- [
23
- (state: ApiState) => state.assetsDataApi?.queries ?? {},
24
- (_state: ApiState, currencyId: string) => currencyId,
25
- ],
26
- (queries, currencyId): InterestRate | undefined => {
27
- for (const query of Object.values(queries)) {
28
- const pages = query.data?.pages;
29
- if (!pages) continue;
30
-
31
- for (const page of pages) {
32
- const rate = page.interestRates?.[currencyId];
33
- if (rate) return rate;
34
- }
35
- }
36
-
37
- return undefined;
38
- },
39
- );
7
+ ) => InterestRate | undefined = createCurrencyDataSelector<InterestRate>("interestRates");
@@ -0,0 +1,8 @@
1
+ import { PartialMarketItemResponse } from "../../../market/utils/types";
2
+ import { createCurrencyDataSelector, ApiState } from "./selectorUtils";
3
+
4
+ export const selectMarketByCurrency: (
5
+ state: ApiState,
6
+ currencyId: string,
7
+ ) => PartialMarketItemResponse | undefined =
8
+ createCurrencyDataSelector<PartialMarketItemResponse>("markets");
@@ -0,0 +1,42 @@
1
+ import { createSelector, Selector } from "@reduxjs/toolkit";
2
+
3
+ export interface ApiState {
4
+ assetsDataApi?: {
5
+ queries?: Record<string, QueryCacheEntry>;
6
+ };
7
+ }
8
+
9
+ export interface QueryCacheEntry {
10
+ data?: {
11
+ pages?: Array<Record<string, unknown>>;
12
+ };
13
+ }
14
+
15
+ /**
16
+ * Generic selector factory for finding data by currency ID in paginated API responses
17
+ * @param dataKey - The key to look for in each page (e.g., 'markets', 'interestRates')
18
+ * @returns A selector function that finds data by currency ID
19
+ */
20
+ export function createCurrencyDataSelector<T>(
21
+ dataKey: string,
22
+ ): Selector<ApiState, T | undefined, [string]> {
23
+ return createSelector(
24
+ [
25
+ (state: ApiState) => state.assetsDataApi?.queries ?? {},
26
+ (_state: ApiState, currencyId: string) => currencyId,
27
+ ],
28
+ (queries, currencyId): T | undefined => {
29
+ for (const query of Object.values(queries)) {
30
+ const pages = query.data?.pages;
31
+ if (!pages) continue;
32
+
33
+ for (const page of pages) {
34
+ const data = page[dataKey]?.[currencyId];
35
+ if (data) return data;
36
+ }
37
+ }
38
+
39
+ return undefined;
40
+ },
41
+ );
42
+ }
@@ -30,7 +30,7 @@ function transformAssetsResponse(
30
30
  export const assetsDataApi = createApi({
31
31
  reducerPath: "assetsDataApi",
32
32
  baseQuery: fetchBaseQuery({
33
- baseUrl: __DEV__ ? getEnv("DADA_API_STAGING") : getEnv("DADA_API_PROD"),
33
+ baseUrl: "", // Will be overridden in query
34
34
  }),
35
35
  tagTypes: [AssetsDataTags.Assets],
36
36
  endpoints: build => ({
@@ -49,8 +49,10 @@ export const assetsDataApi = createApi({
49
49
  additionalData: [AssetsAdditionalData.Apy, AssetsAdditionalData.MarketTrend],
50
50
  };
51
51
 
52
+ const baseUrl = queryArg.isStaging ? getEnv("DADA_API_STAGING") : getEnv("DADA_API_PROD");
53
+
52
54
  return {
53
- url: "assets",
55
+ url: `${baseUrl}assets`,
54
56
  params,
55
57
  };
56
58
  },
@@ -15,6 +15,7 @@ export interface GetAssetsDataParams {
15
15
  useCase?: string;
16
16
  product: "llm" | "lld";
17
17
  version: string;
18
+ isStaging?: boolean;
18
19
  }
19
20
 
20
21
  export interface PageParam {
@@ -0,0 +1,36 @@
1
+ import React, { useMemo } from "react";
2
+ import { CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets";
3
+ import { useMarketByCurrencies } from "../useMarketByCurrencies";
4
+
5
+ const createMarketTrendItem = ({
6
+ percent,
7
+ MarketPercentIndicator,
8
+ }: {
9
+ percent: number;
10
+ MarketPercentIndicator: React.ComponentType<{ percent: number }>;
11
+ }) => <MarketPercentIndicator percent={percent} />;
12
+
13
+ export const useLeftMarketTrendModule = (
14
+ currencies: CryptoOrTokenCurrency[],
15
+ MarketPercentIndicator: React.ComponentType<{ percent: number }>,
16
+ ) => {
17
+ const marketByCurrencies = useMarketByCurrencies(currencies);
18
+
19
+ return useMemo(() => {
20
+ return currencies.map(currency => {
21
+ const currencyMarket = marketByCurrencies[currency.id];
22
+
23
+ if (!currencyMarket || currencyMarket.priceChangePercentage24h === undefined) {
24
+ return currency;
25
+ }
26
+
27
+ return {
28
+ ...currency,
29
+ leftElement: createMarketTrendItem({
30
+ percent: currencyMarket.priceChangePercentage24h,
31
+ MarketPercentIndicator,
32
+ }),
33
+ };
34
+ });
35
+ }, [currencies, marketByCurrencies, MarketPercentIndicator]);
36
+ };
@@ -0,0 +1,57 @@
1
+ import React, { useMemo } from "react";
2
+ import { CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets";
3
+ import { useMarketByCurrencies } from "../useMarketByCurrencies";
4
+ import { counterValueFormatter } from "../../utils/counterValueFormatter";
5
+ import { UseBalanceDeps } from "../../utils/type";
6
+
7
+ const createMarketPriceItem = ({
8
+ price,
9
+ percent,
10
+ MarketPriceIndicator,
11
+ }: {
12
+ price: string;
13
+ percent: number;
14
+ MarketPriceIndicator: React.ComponentType<{ percent: number; price: string }>;
15
+ }) => <MarketPriceIndicator percent={percent} price={price} />;
16
+
17
+ export const useRightMarketTrendModule = ({
18
+ currencies,
19
+ useBalanceDeps,
20
+ MarketPriceIndicator,
21
+ }: {
22
+ currencies: CryptoOrTokenCurrency[];
23
+ useBalanceDeps: UseBalanceDeps;
24
+ MarketPriceIndicator: React.ComponentType<{ percent: number; price: string }>;
25
+ }) => {
26
+ const marketByCurrencies = useMarketByCurrencies(currencies);
27
+ const { counterValueCurrency, locale } = useBalanceDeps();
28
+
29
+ return useMemo(() => {
30
+ return currencies.map(currency => {
31
+ const currencyMarket = marketByCurrencies[currency.id];
32
+
33
+ if (
34
+ !currencyMarket ||
35
+ currencyMarket.priceChangePercentage24h === undefined ||
36
+ currencyMarket.price === undefined
37
+ ) {
38
+ return currency;
39
+ }
40
+
41
+ const priceFormatted = counterValueFormatter({
42
+ value: currencyMarket.price,
43
+ currency: counterValueCurrency.ticker,
44
+ locale,
45
+ });
46
+
47
+ return {
48
+ ...currency,
49
+ rightElement: createMarketPriceItem({
50
+ percent: currencyMarket.priceChangePercentage24h,
51
+ price: priceFormatted,
52
+ MarketPriceIndicator,
53
+ }),
54
+ };
55
+ });
56
+ }, [currencies, marketByCurrencies, counterValueCurrency.ticker, locale, MarketPriceIndicator]);
57
+ };
@@ -24,6 +24,7 @@ export function useAssetsData({
24
24
  areCurrenciesFiltered,
25
25
  product,
26
26
  version,
27
+ isStaging,
27
28
  }: {
28
29
  search?: string;
29
30
  currencyIds?: string[];
@@ -31,15 +32,26 @@ export function useAssetsData({
31
32
  areCurrenciesFiltered?: boolean;
32
33
  product: "llm" | "lld";
33
34
  version: string;
35
+ isStaging?: boolean;
34
36
  }) {
35
- const { data, isLoading, error, fetchNextPage, isSuccess, refetch } =
36
- useGetAssetsDataInfiniteQuery({
37
- search,
38
- useCase,
39
- currencyIds: areCurrenciesFiltered ? currencyIds : undefined,
40
- product,
41
- version,
42
- });
37
+ const {
38
+ data,
39
+ isLoading,
40
+ error,
41
+ fetchNextPage,
42
+ isSuccess,
43
+ refetch,
44
+ isFetching,
45
+ isError,
46
+ isFetchingNextPage,
47
+ } = useGetAssetsDataInfiniteQuery({
48
+ search,
49
+ useCase,
50
+ currencyIds: areCurrenciesFiltered ? currencyIds : undefined,
51
+ product,
52
+ version,
53
+ isStaging,
54
+ });
43
55
 
44
56
  const joinedPages = useMemo(() => {
45
57
  return data?.pages.reduce<AssetsDataWithPagination>((acc, page) => {
@@ -62,12 +74,15 @@ export function useAssetsData({
62
74
 
63
75
  const hasMore = Boolean(joinedPages?.pagination.nextCursor);
64
76
 
77
+ const isInitialLoading = isLoading || (isFetching && !isFetchingNextPage);
78
+
65
79
  return {
66
80
  data: joinedPages,
67
- isLoading,
81
+ isLoading: isInitialLoading,
68
82
  error,
69
83
  loadNext: hasMore ? fetchNextPage : undefined,
70
84
  isSuccess,
85
+ isError,
71
86
  refetch,
72
87
  };
73
88
  }