@ledgerhq/live-common 34.53.0-nightly.20251119110540 → 34.53.0-nightly.20251120135143

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 (434) hide show
  1. package/lib/__tests__/test-helpers/setup.integration.d.ts +2 -0
  2. package/lib/__tests__/test-helpers/setup.integration.d.ts.map +1 -0
  3. package/lib/__tests__/test-helpers/{setup.js → setup.integration.js} +4 -8
  4. package/lib/__tests__/test-helpers/setup.integration.js.map +1 -0
  5. package/lib/account/helpers.js +17 -17
  6. package/lib/account/helpers.js.map +1 -1
  7. package/lib/bridge/impl.d.ts +0 -2
  8. package/lib/bridge/impl.d.ts.map +1 -1
  9. package/lib/bridge/impl.js +4 -8
  10. package/lib/bridge/impl.js.map +1 -1
  11. package/lib/currencies/index.d.ts +1 -1
  12. package/lib/currencies/index.d.ts.map +1 -1
  13. package/lib/currencies/index.js +1 -4
  14. package/lib/currencies/index.js.map +1 -1
  15. package/lib/e2e/deviceInteraction/DeviceController.d.ts +41 -0
  16. package/lib/e2e/deviceInteraction/DeviceController.d.ts.map +1 -0
  17. package/lib/e2e/deviceInteraction/DeviceController.js +68 -0
  18. package/lib/e2e/deviceInteraction/DeviceController.js.map +1 -0
  19. package/lib/e2e/families/algorand.d.ts +1 -1
  20. package/lib/e2e/families/algorand.d.ts.map +1 -1
  21. package/lib/e2e/families/algorand.js +5 -5
  22. package/lib/e2e/families/algorand.js.map +1 -1
  23. package/lib/e2e/families/aptos.d.ts +2 -2
  24. package/lib/e2e/families/aptos.d.ts.map +1 -1
  25. package/lib/e2e/families/aptos.js +9 -9
  26. package/lib/e2e/families/aptos.js.map +1 -1
  27. package/lib/e2e/families/bitcoin.d.ts +2 -2
  28. package/lib/e2e/families/bitcoin.d.ts.map +1 -1
  29. package/lib/e2e/families/bitcoin.js +11 -11
  30. package/lib/e2e/families/bitcoin.js.map +1 -1
  31. package/lib/e2e/families/cardano.d.ts +6 -0
  32. package/lib/e2e/families/cardano.d.ts.map +1 -1
  33. package/lib/e2e/families/cardano.js +28 -26
  34. package/lib/e2e/families/cardano.js.map +1 -1
  35. package/lib/e2e/families/celo.d.ts +1 -1
  36. package/lib/e2e/families/celo.d.ts.map +1 -1
  37. package/lib/e2e/families/celo.js +5 -5
  38. package/lib/e2e/families/celo.js.map +1 -1
  39. package/lib/e2e/families/cosmos.d.ts +2 -2
  40. package/lib/e2e/families/cosmos.d.ts.map +1 -1
  41. package/lib/e2e/families/cosmos.js +9 -9
  42. package/lib/e2e/families/cosmos.js.map +1 -1
  43. package/lib/e2e/families/evm.d.ts +2 -0
  44. package/lib/e2e/families/evm.d.ts.map +1 -1
  45. package/lib/e2e/families/evm.js +13 -12
  46. package/lib/e2e/families/evm.js.map +1 -1
  47. package/lib/e2e/families/hedera.d.ts +1 -1
  48. package/lib/e2e/families/hedera.d.ts.map +1 -1
  49. package/lib/e2e/families/hedera.js +5 -5
  50. package/lib/e2e/families/hedera.js.map +1 -1
  51. package/lib/e2e/families/kaspa.d.ts +2 -2
  52. package/lib/e2e/families/kaspa.d.ts.map +1 -1
  53. package/lib/e2e/families/kaspa.js +9 -9
  54. package/lib/e2e/families/kaspa.js.map +1 -1
  55. package/lib/e2e/families/multiversX.d.ts +1 -1
  56. package/lib/e2e/families/multiversX.d.ts.map +1 -1
  57. package/lib/e2e/families/multiversX.js +5 -5
  58. package/lib/e2e/families/multiversX.js.map +1 -1
  59. package/lib/e2e/families/near.d.ts +1 -1
  60. package/lib/e2e/families/near.d.ts.map +1 -1
  61. package/lib/e2e/families/near.js +6 -6
  62. package/lib/e2e/families/near.js.map +1 -1
  63. package/lib/e2e/families/osmosis.d.ts +1 -1
  64. package/lib/e2e/families/osmosis.d.ts.map +1 -1
  65. package/lib/e2e/families/osmosis.js +5 -5
  66. package/lib/e2e/families/osmosis.js.map +1 -1
  67. package/lib/e2e/families/polkadot.d.ts +1 -1
  68. package/lib/e2e/families/polkadot.d.ts.map +1 -1
  69. package/lib/e2e/families/polkadot.js +5 -5
  70. package/lib/e2e/families/polkadot.js.map +1 -1
  71. package/lib/e2e/families/solana.d.ts +2 -2
  72. package/lib/e2e/families/solana.d.ts.map +1 -1
  73. package/lib/e2e/families/solana.js +9 -9
  74. package/lib/e2e/families/solana.js.map +1 -1
  75. package/lib/e2e/families/stellar.d.ts +1 -1
  76. package/lib/e2e/families/stellar.d.ts.map +1 -1
  77. package/lib/e2e/families/stellar.js +5 -5
  78. package/lib/e2e/families/stellar.js.map +1 -1
  79. package/lib/e2e/families/sui.d.ts +1 -1
  80. package/lib/e2e/families/sui.d.ts.map +1 -1
  81. package/lib/e2e/families/sui.js +5 -5
  82. package/lib/e2e/families/sui.js.map +1 -1
  83. package/lib/e2e/families/tezos.d.ts +1 -1
  84. package/lib/e2e/families/tezos.d.ts.map +1 -1
  85. package/lib/e2e/families/tezos.js +7 -8
  86. package/lib/e2e/families/tezos.js.map +1 -1
  87. package/lib/e2e/families/tron.d.ts +1 -1
  88. package/lib/e2e/families/tron.d.ts.map +1 -1
  89. package/lib/e2e/families/tron.js +5 -5
  90. package/lib/e2e/families/tron.js.map +1 -1
  91. package/lib/e2e/families/xrp.d.ts +1 -1
  92. package/lib/e2e/families/xrp.d.ts.map +1 -1
  93. package/lib/e2e/families/xrp.js +5 -5
  94. package/lib/e2e/families/xrp.js.map +1 -1
  95. package/lib/e2e/index.d.ts +9 -0
  96. package/lib/e2e/index.d.ts.map +1 -1
  97. package/lib/e2e/speculos.d.ts +11 -11
  98. package/lib/e2e/speculos.d.ts.map +1 -1
  99. package/lib/e2e/speculos.js +78 -78
  100. package/lib/e2e/speculos.js.map +1 -1
  101. package/lib/exchange/swap/getCompleteSwapHistory.js +2 -2
  102. package/lib/exchange/swap/getCompleteSwapHistory.js.map +1 -1
  103. package/lib/exchange/swap/hooks/useSelectableCurrencies.js +2 -2
  104. package/lib/exchange/swap/hooks/useSelectableCurrencies.js.map +1 -1
  105. package/lib/families/canton/bridge/mock.d.ts.map +1 -1
  106. package/lib/families/canton/bridge/mock.js +1 -0
  107. package/lib/families/canton/bridge/mock.js.map +1 -1
  108. package/lib/families/canton/react.d.ts +15 -0
  109. package/lib/families/canton/react.d.ts.map +1 -0
  110. package/lib/families/canton/react.js +14 -0
  111. package/lib/families/canton/react.js.map +1 -0
  112. package/lib/families/cosmos/datasets/dydx.integration.FIXME.d.ts +1 -1
  113. package/lib/families/cosmos/datasets/dydx.integration.FIXME.d.ts.map +1 -1
  114. package/lib/families/cosmos/datasets/dydx.integration.FIXME.js +1 -1
  115. package/lib/families/cosmos/datasets/dydx.integration.FIXME.js.map +1 -1
  116. package/lib/families/cosmos/datasets/secretNetwork.integration.FIXME.d.ts +1 -1
  117. package/lib/families/cosmos/datasets/secretNetwork.integration.FIXME.d.ts.map +1 -1
  118. package/lib/families/cosmos/datasets/secretNetwork.integration.FIXME.js +1 -1
  119. package/lib/families/cosmos/datasets/secretNetwork.integration.FIXME.js.map +1 -1
  120. package/lib/families/evm/setup.d.ts.map +1 -1
  121. package/lib/families/evm/setup.js +1 -11
  122. package/lib/families/evm/setup.js.map +1 -1
  123. package/lib/families/solana/setup.d.ts +8 -0
  124. package/lib/families/solana/setup.d.ts.map +1 -1
  125. package/lib/families/solana/setup.js +29 -16
  126. package/lib/families/solana/setup.js.map +1 -1
  127. package/lib/families/tron/data.mock.d.ts.map +1 -1
  128. package/lib/families/tron/data.mock.js +3 -6
  129. package/lib/families/tron/data.mock.js.map +1 -1
  130. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  131. package/lib/featureFlags/defaultFeatures.js +3 -0
  132. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  133. package/lib/featureFlags/useFeature.d.ts +1 -1
  134. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  135. package/lib/test-helpers/cryptoAssetsStore.d.ts +2 -0
  136. package/lib/test-helpers/cryptoAssetsStore.d.ts.map +1 -0
  137. package/lib/test-helpers/cryptoAssetsStore.js +8 -0
  138. package/lib/test-helpers/cryptoAssetsStore.js.map +1 -0
  139. package/lib/wallet-api/ACRE/server.js +5 -5
  140. package/lib/wallet-api/ACRE/server.js.map +1 -1
  141. package/lib/wallet-api/Exchange/server.js +4 -4
  142. package/lib/wallet-api/Exchange/server.js.map +1 -1
  143. package/lib/wallet-api/logic.js +8 -8
  144. package/lib/wallet-api/logic.js.map +1 -1
  145. package/lib/wallet-api/react.d.ts.map +1 -1
  146. package/lib/wallet-api/react.js +4 -2
  147. package/lib/wallet-api/react.js.map +1 -1
  148. package/lib/wallet-api/useDappLogic.js +2 -2
  149. package/lib/wallet-api/useDappLogic.js.map +1 -1
  150. package/lib-es/__tests__/test-helpers/setup.integration.d.ts +2 -0
  151. package/lib-es/__tests__/test-helpers/setup.integration.d.ts.map +1 -0
  152. package/lib-es/__tests__/test-helpers/setup.integration.js +14 -0
  153. package/lib-es/__tests__/test-helpers/setup.integration.js.map +1 -0
  154. package/lib-es/account/helpers.js +1 -1
  155. package/lib-es/account/helpers.js.map +1 -1
  156. package/lib-es/bridge/impl.d.ts +0 -2
  157. package/lib-es/bridge/impl.d.ts.map +1 -1
  158. package/lib-es/bridge/impl.js +3 -6
  159. package/lib-es/bridge/impl.js.map +1 -1
  160. package/lib-es/currencies/index.d.ts +1 -1
  161. package/lib-es/currencies/index.d.ts.map +1 -1
  162. package/lib-es/currencies/index.js +1 -1
  163. package/lib-es/currencies/index.js.map +1 -1
  164. package/lib-es/e2e/deviceInteraction/DeviceController.d.ts +41 -0
  165. package/lib-es/e2e/deviceInteraction/DeviceController.d.ts.map +1 -0
  166. package/lib-es/e2e/deviceInteraction/DeviceController.js +63 -0
  167. package/lib-es/e2e/deviceInteraction/DeviceController.js.map +1 -0
  168. package/lib-es/e2e/families/algorand.d.ts +1 -1
  169. package/lib-es/e2e/families/algorand.d.ts.map +1 -1
  170. package/lib-es/e2e/families/algorand.js +5 -4
  171. package/lib-es/e2e/families/algorand.js.map +1 -1
  172. package/lib-es/e2e/families/aptos.d.ts +2 -2
  173. package/lib-es/e2e/families/aptos.d.ts.map +1 -1
  174. package/lib-es/e2e/families/aptos.js +9 -7
  175. package/lib-es/e2e/families/aptos.js.map +1 -1
  176. package/lib-es/e2e/families/bitcoin.d.ts +2 -2
  177. package/lib-es/e2e/families/bitcoin.d.ts.map +1 -1
  178. package/lib-es/e2e/families/bitcoin.js +11 -9
  179. package/lib-es/e2e/families/bitcoin.js.map +1 -1
  180. package/lib-es/e2e/families/cardano.d.ts +6 -0
  181. package/lib-es/e2e/families/cardano.d.ts.map +1 -1
  182. package/lib-es/e2e/families/cardano.js +23 -21
  183. package/lib-es/e2e/families/cardano.js.map +1 -1
  184. package/lib-es/e2e/families/celo.d.ts +1 -1
  185. package/lib-es/e2e/families/celo.d.ts.map +1 -1
  186. package/lib-es/e2e/families/celo.js +5 -4
  187. package/lib-es/e2e/families/celo.js.map +1 -1
  188. package/lib-es/e2e/families/cosmos.d.ts +2 -2
  189. package/lib-es/e2e/families/cosmos.d.ts.map +1 -1
  190. package/lib-es/e2e/families/cosmos.js +9 -7
  191. package/lib-es/e2e/families/cosmos.js.map +1 -1
  192. package/lib-es/e2e/families/evm.d.ts +2 -0
  193. package/lib-es/e2e/families/evm.d.ts.map +1 -1
  194. package/lib-es/e2e/families/evm.js +10 -9
  195. package/lib-es/e2e/families/evm.js.map +1 -1
  196. package/lib-es/e2e/families/hedera.d.ts +1 -1
  197. package/lib-es/e2e/families/hedera.d.ts.map +1 -1
  198. package/lib-es/e2e/families/hedera.js +5 -4
  199. package/lib-es/e2e/families/hedera.js.map +1 -1
  200. package/lib-es/e2e/families/kaspa.d.ts +2 -2
  201. package/lib-es/e2e/families/kaspa.d.ts.map +1 -1
  202. package/lib-es/e2e/families/kaspa.js +9 -7
  203. package/lib-es/e2e/families/kaspa.js.map +1 -1
  204. package/lib-es/e2e/families/multiversX.d.ts +1 -1
  205. package/lib-es/e2e/families/multiversX.d.ts.map +1 -1
  206. package/lib-es/e2e/families/multiversX.js +5 -4
  207. package/lib-es/e2e/families/multiversX.js.map +1 -1
  208. package/lib-es/e2e/families/near.d.ts +1 -1
  209. package/lib-es/e2e/families/near.d.ts.map +1 -1
  210. package/lib-es/e2e/families/near.js +6 -5
  211. package/lib-es/e2e/families/near.js.map +1 -1
  212. package/lib-es/e2e/families/osmosis.d.ts +1 -1
  213. package/lib-es/e2e/families/osmosis.d.ts.map +1 -1
  214. package/lib-es/e2e/families/osmosis.js +5 -4
  215. package/lib-es/e2e/families/osmosis.js.map +1 -1
  216. package/lib-es/e2e/families/polkadot.d.ts +1 -1
  217. package/lib-es/e2e/families/polkadot.d.ts.map +1 -1
  218. package/lib-es/e2e/families/polkadot.js +5 -4
  219. package/lib-es/e2e/families/polkadot.js.map +1 -1
  220. package/lib-es/e2e/families/solana.d.ts +2 -2
  221. package/lib-es/e2e/families/solana.d.ts.map +1 -1
  222. package/lib-es/e2e/families/solana.js +9 -7
  223. package/lib-es/e2e/families/solana.js.map +1 -1
  224. package/lib-es/e2e/families/stellar.d.ts +1 -1
  225. package/lib-es/e2e/families/stellar.d.ts.map +1 -1
  226. package/lib-es/e2e/families/stellar.js +5 -4
  227. package/lib-es/e2e/families/stellar.js.map +1 -1
  228. package/lib-es/e2e/families/sui.d.ts +1 -1
  229. package/lib-es/e2e/families/sui.d.ts.map +1 -1
  230. package/lib-es/e2e/families/sui.js +5 -4
  231. package/lib-es/e2e/families/sui.js.map +1 -1
  232. package/lib-es/e2e/families/tezos.d.ts +1 -1
  233. package/lib-es/e2e/families/tezos.d.ts.map +1 -1
  234. package/lib-es/e2e/families/tezos.js +8 -8
  235. package/lib-es/e2e/families/tezos.js.map +1 -1
  236. package/lib-es/e2e/families/tron.d.ts +1 -1
  237. package/lib-es/e2e/families/tron.d.ts.map +1 -1
  238. package/lib-es/e2e/families/tron.js +5 -4
  239. package/lib-es/e2e/families/tron.js.map +1 -1
  240. package/lib-es/e2e/families/xrp.d.ts +1 -1
  241. package/lib-es/e2e/families/xrp.d.ts.map +1 -1
  242. package/lib-es/e2e/families/xrp.js +5 -4
  243. package/lib-es/e2e/families/xrp.js.map +1 -1
  244. package/lib-es/e2e/index.d.ts +9 -0
  245. package/lib-es/e2e/index.d.ts.map +1 -1
  246. package/lib-es/e2e/speculos.d.ts +11 -11
  247. package/lib-es/e2e/speculos.d.ts.map +1 -1
  248. package/lib-es/e2e/speculos.js +54 -43
  249. package/lib-es/e2e/speculos.js.map +1 -1
  250. package/lib-es/exchange/swap/getCompleteSwapHistory.js +1 -1
  251. package/lib-es/exchange/swap/getCompleteSwapHistory.js.map +1 -1
  252. package/lib-es/exchange/swap/hooks/useSelectableCurrencies.js +1 -1
  253. package/lib-es/exchange/swap/hooks/useSelectableCurrencies.js.map +1 -1
  254. package/lib-es/families/canton/bridge/mock.d.ts.map +1 -1
  255. package/lib-es/families/canton/bridge/mock.js +1 -0
  256. package/lib-es/families/canton/bridge/mock.js.map +1 -1
  257. package/lib-es/families/canton/react.d.ts +15 -0
  258. package/lib-es/families/canton/react.d.ts.map +1 -0
  259. package/lib-es/families/canton/react.js +10 -0
  260. package/lib-es/families/canton/react.js.map +1 -0
  261. package/lib-es/families/cosmos/datasets/dydx.integration.FIXME.d.ts +1 -1
  262. package/lib-es/families/cosmos/datasets/dydx.integration.FIXME.d.ts.map +1 -1
  263. package/lib-es/families/cosmos/datasets/dydx.integration.FIXME.js +1 -1
  264. package/lib-es/families/cosmos/datasets/dydx.integration.FIXME.js.map +1 -1
  265. package/lib-es/families/cosmos/datasets/secretNetwork.integration.FIXME.d.ts +1 -1
  266. package/lib-es/families/cosmos/datasets/secretNetwork.integration.FIXME.d.ts.map +1 -1
  267. package/lib-es/families/cosmos/datasets/secretNetwork.integration.FIXME.js +1 -1
  268. package/lib-es/families/cosmos/datasets/secretNetwork.integration.FIXME.js.map +1 -1
  269. package/lib-es/families/evm/setup.d.ts.map +1 -1
  270. package/lib-es/families/evm/setup.js +1 -11
  271. package/lib-es/families/evm/setup.js.map +1 -1
  272. package/lib-es/families/solana/setup.d.ts +8 -0
  273. package/lib-es/families/solana/setup.d.ts.map +1 -1
  274. package/lib-es/families/solana/setup.js +28 -17
  275. package/lib-es/families/solana/setup.js.map +1 -1
  276. package/lib-es/families/tron/data.mock.d.ts.map +1 -1
  277. package/lib-es/families/tron/data.mock.js +3 -6
  278. package/lib-es/families/tron/data.mock.js.map +1 -1
  279. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  280. package/lib-es/featureFlags/defaultFeatures.js +3 -0
  281. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  282. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  283. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  284. package/lib-es/test-helpers/cryptoAssetsStore.d.ts +2 -0
  285. package/lib-es/test-helpers/cryptoAssetsStore.d.ts.map +1 -0
  286. package/lib-es/test-helpers/cryptoAssetsStore.js +2 -0
  287. package/lib-es/test-helpers/cryptoAssetsStore.js.map +1 -0
  288. package/lib-es/wallet-api/ACRE/server.js +1 -1
  289. package/lib-es/wallet-api/ACRE/server.js.map +1 -1
  290. package/lib-es/wallet-api/Exchange/server.js +1 -1
  291. package/lib-es/wallet-api/Exchange/server.js.map +1 -1
  292. package/lib-es/wallet-api/logic.js +1 -1
  293. package/lib-es/wallet-api/logic.js.map +1 -1
  294. package/lib-es/wallet-api/react.d.ts.map +1 -1
  295. package/lib-es/wallet-api/react.js +3 -1
  296. package/lib-es/wallet-api/react.js.map +1 -1
  297. package/lib-es/wallet-api/useDappLogic.js +1 -1
  298. package/lib-es/wallet-api/useDappLogic.js.map +1 -1
  299. package/package.json +67 -53
  300. package/src/DataModel.test.ts +2 -8
  301. package/src/__tests__/__snapshots__/csvExport.ts.snap +0 -718
  302. package/src/__tests__/accounts/groupPerDay.ts +2 -4
  303. package/src/__tests__/csvExport.ts +3 -3
  304. package/src/__tests__/currencies.ts +0 -38
  305. package/src/__tests__/test-helpers/setup.integration.ts +17 -0
  306. package/src/__tests__/test-helpers/setup.ts +3 -8
  307. package/src/account/helpers.test.ts +2 -2
  308. package/src/account/helpers.ts +1 -1
  309. package/src/account/serialization.test.ts +2 -2
  310. package/src/bridge/crypto-assets/index.test.ts +15 -44
  311. package/src/bridge/impl.ts +3 -7
  312. package/src/currencies/cryptoIcons.test.ts +23 -4
  313. package/src/currencies/helpers.test.ts +13 -0
  314. package/src/currencies/index.ts +0 -3
  315. package/src/currencies/sortByMarketcap.test.ts +0 -26
  316. package/src/domain/getTokensWithFunds.test.ts +32 -3
  317. package/src/e2e/deviceInteraction/DeviceController.ts +85 -0
  318. package/src/e2e/families/algorand.ts +20 -13
  319. package/src/e2e/families/aptos.ts +28 -16
  320. package/src/e2e/families/bitcoin.ts +53 -39
  321. package/src/e2e/families/cardano.ts +47 -36
  322. package/src/e2e/families/celo.ts +18 -12
  323. package/src/e2e/families/cosmos.ts +35 -23
  324. package/src/e2e/families/evm.ts +24 -13
  325. package/src/e2e/families/hedera.ts +6 -4
  326. package/src/e2e/families/kaspa.ts +28 -16
  327. package/src/e2e/families/multiversX.ts +16 -10
  328. package/src/e2e/families/near.ts +23 -17
  329. package/src/e2e/families/osmosis.ts +19 -13
  330. package/src/e2e/families/polkadot.ts +19 -13
  331. package/src/e2e/families/solana.ts +35 -23
  332. package/src/e2e/families/stellar.ts +18 -13
  333. package/src/e2e/families/sui.ts +15 -9
  334. package/src/e2e/families/tezos.ts +25 -18
  335. package/src/e2e/families/tron.ts +19 -13
  336. package/src/e2e/families/xrp.ts +19 -13
  337. package/src/e2e/speculos.ts +168 -140
  338. package/src/exchange/swap/getCompleteSwapHistory.ts +1 -1
  339. package/src/exchange/swap/hooks/useSelectableCurrencies.test.ts +4 -0
  340. package/src/exchange/swap/hooks/useSelectableCurrencies.ts +1 -1
  341. package/src/families/algorand/__snapshots__/bridge.integration.test.ts.snap +11 -11
  342. package/src/families/algorand/bridge.integration.test.ts +1 -1
  343. package/src/families/aptos/__snapshots__/bridge.integration.test.ts.snap +111 -1
  344. package/src/families/aptos/bridge.integration.test.ts +1 -1
  345. package/src/families/bitcoin/bridge.integration.test.ts +1 -1
  346. package/src/families/bitcoin/satstack.test.ts +5 -8
  347. package/src/families/canton/bridge/mock.ts +1 -0
  348. package/src/families/canton/react.ts +50 -0
  349. package/src/families/cardano/__snapshots__/bridge.integration.test.ts.snap +2 -2
  350. package/src/families/cardano/bridge.integration.test.ts +1 -1
  351. package/src/families/casper/bridge.integration.test.ts +1 -1
  352. package/src/families/celo/bridge.integration.test.ts +1 -1
  353. package/src/families/cosmos/datasets/__snapshots__/cosmos.integration.test.ts.snap +1 -1
  354. package/src/families/cosmos/datasets/axelar.integration.test.ts +1 -1
  355. package/src/families/cosmos/datasets/babylon.integration.test.ts +1 -1
  356. package/src/families/cosmos/datasets/coreum.integration.test.ts +1 -1
  357. package/src/families/cosmos/datasets/cosmos.integration.test.ts +1 -1
  358. package/src/families/cosmos/datasets/cryptoOrg.integration.test.ts +1 -1
  359. package/src/families/cosmos/datasets/desmos.integration.test.ts +1 -1
  360. package/src/families/cosmos/datasets/dydx.integration.FIXME.ts +1 -1
  361. package/src/families/cosmos/datasets/injective.integration.test.ts +1 -1
  362. package/src/families/cosmos/datasets/mantra.integration.test.ts +1 -1
  363. package/src/families/cosmos/datasets/onomy.integration.test.ts +1 -1
  364. package/src/families/cosmos/datasets/osmosis.integration.test.ts +1 -1
  365. package/src/families/cosmos/datasets/persistence.integration.test.ts +1 -1
  366. package/src/families/cosmos/datasets/quicksilver.integration.test.ts +1 -1
  367. package/src/families/cosmos/datasets/secretNetwork.integration.FIXME.ts +1 -1
  368. package/src/families/cosmos/datasets/seiNetwork.integration.test.ts +1 -1
  369. package/src/families/cosmos/datasets/stargaze.integration.test.ts +1 -1
  370. package/src/families/cosmos/datasets/umee.integration.test.ts +1 -1
  371. package/src/families/cosmos/datasets/xion.integration.test.ts +1 -1
  372. package/src/families/cosmos/datasets/zenrock.integration.test.ts +1 -1
  373. package/src/families/evm/bridge.integration.test.ts +1 -1
  374. package/src/families/evm/setup.ts +0 -12
  375. package/src/families/filecoin/bridge.integration.test.ts +1 -1
  376. package/src/families/hedera/__snapshots__/bridge.integration.test.ts.snap +191 -596
  377. package/src/families/hedera/bridge.integration.test.ts +1 -1
  378. package/src/families/icon/bridge.integration.test.ts +1 -1
  379. package/src/families/internet_computer/bridge.integration.test.ts +1 -1
  380. package/src/families/kaspa/bridge.integration.test.ts +1 -1
  381. package/src/families/mina/bridge.integration.test.ts +1 -1
  382. package/src/families/multiversx/bridge.integration.test.ts +1 -1
  383. package/src/families/multiversx/synchronisation.integration.test.ts +1 -1
  384. package/src/families/near/bridge.integration.test.ts +1 -1
  385. package/src/families/polkadot/bridge.integration.test.ts +1 -1
  386. package/src/families/solana/__snapshots__/bridge.integration.test.ts.snap +14 -44
  387. package/src/families/solana/bridge.integration.test.ts +1 -1
  388. package/src/families/solana/setup.ts +37 -24
  389. package/src/families/stacks/__tests__/sync.integration.test.ts +1 -1
  390. package/src/families/stacks/bridge.integration.test.ts +1 -1
  391. package/src/families/stellar/__snapshots__/bridge.integration.test.ts.snap +3 -3
  392. package/src/families/stellar/bridge.integration.test.ts +1 -1
  393. package/src/families/sui/bridge.integration.test.ts +1 -1
  394. package/src/families/tezos/bridge.integration.test.ts +1 -1
  395. package/src/families/ton/bridge.integration.test.ts +1 -1
  396. package/src/families/tron/bridge.integration.test.ts +1 -1
  397. package/src/families/tron/data.mock.ts +4 -8
  398. package/src/families/vechain/bridge.integration.test.ts +1 -1
  399. package/src/families/xrp/bridge.integration.test.ts +1 -1
  400. package/src/featureFlags/defaultFeatures.ts +3 -0
  401. package/src/test-helpers/cryptoAssetsStore.ts +5 -0
  402. package/src/utils/__tests__/getAccountTuplesForCurrency.test.ts +3 -3
  403. package/src/wallet-api/ACRE/server.test.ts +3 -4
  404. package/src/wallet-api/ACRE/server.ts +1 -1
  405. package/src/wallet-api/Exchange/server.ts +1 -1
  406. package/src/wallet-api/logic.test.ts +3 -3
  407. package/src/wallet-api/logic.ts +1 -1
  408. package/src/wallet-api/react.ts +3 -1
  409. package/src/wallet-api/useDappLogic.ts +1 -1
  410. package/lib/__tests__/test-helpers/setup.d.ts +0 -2
  411. package/lib/__tests__/test-helpers/setup.d.ts.map +0 -1
  412. package/lib/__tests__/test-helpers/setup.js.map +0 -1
  413. package/lib/bridge/crypto-assets/index.d.ts +0 -4
  414. package/lib/bridge/crypto-assets/index.d.ts.map +0 -1
  415. package/lib/bridge/crypto-assets/index.js +0 -22
  416. package/lib/bridge/crypto-assets/index.js.map +0 -1
  417. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts +0 -3
  418. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts.map +0 -1
  419. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.js +0 -26
  420. package/lib/e2e/deviceInteraction/ButtonDeviceSimulator.js.map +0 -1
  421. package/lib-es/__tests__/test-helpers/setup.d.ts +0 -2
  422. package/lib-es/__tests__/test-helpers/setup.d.ts.map +0 -1
  423. package/lib-es/__tests__/test-helpers/setup.js +0 -18
  424. package/lib-es/__tests__/test-helpers/setup.js.map +0 -1
  425. package/lib-es/bridge/crypto-assets/index.d.ts +0 -4
  426. package/lib-es/bridge/crypto-assets/index.d.ts.map +0 -1
  427. package/lib-es/bridge/crypto-assets/index.js +0 -17
  428. package/lib-es/bridge/crypto-assets/index.js.map +0 -1
  429. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts +0 -3
  430. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.d.ts.map +0 -1
  431. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.js +0 -18
  432. package/lib-es/e2e/deviceInteraction/ButtonDeviceSimulator.js.map +0 -1
  433. package/src/bridge/crypto-assets/index.ts +0 -23
  434. package/src/e2e/deviceInteraction/ButtonDeviceSimulator.ts +0 -23
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-hedera/test/index";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-icon/test/bridge.dataset";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-internet_computer/test/index";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-kaspa/test/index";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-mina/test/index";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-multiversx/test/bridge.dataset";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { reduce } from "rxjs/operators";
3
3
  import { fromAccountRaw, getAccountCurrency } from "../../account";
4
4
  import type { Account, TokenAccount } from "@ledgerhq/types-live";
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-near/test/bridge.dataset";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-polkadot/test/index";
4
4
 
@@ -24,18 +24,6 @@ exports[`solana currency bridge scanAccounts solana seed 1 1`] = `
24
24
  "syncHash": undefined,
25
25
  "used": true,
26
26
  },
27
- {
28
- "balance": "7960720",
29
- "id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain+8RtwWeqdFz4EFuZU3MAadfYMWSdRMamjFrfq6BXkHuNN",
30
- "operationsCount": 1,
31
- "parentId": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
32
- "pendingOperations": [],
33
- "spendableBalance": "7960720",
34
- "state": "initialized",
35
- "swapHistory": [],
36
- "tokenId": "solana/spl/so11111111111111111111111111111111111111112",
37
- "type": "TokenAccountRaw",
38
- },
39
27
  {
40
28
  "balance": "0",
41
29
  "currencyId": "solana",
@@ -66,22 +54,18 @@ exports[`solana currency bridge scanAccounts solana seed 1 2`] = `
66
54
  [
67
55
  {
68
56
  "accountId": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
69
- "blockHash": "4NSL4VrfWd2eUccMD95dLQsdy5UGz8yhokpfH1et1R2c",
57
+ "blockHash": "3oH1tGs3X6HkK2XQZ7LGhRP8F45jy5zgF8H3jFtaCgHC",
70
58
  "blockHeight": 108520722,
71
59
  "extra": {},
72
60
  "fee": "0",
73
61
  "hasFailed": false,
74
62
  "hash": "25KWBvKtVgKR3yoRmozTY6wmiW8atwrnzAnTXdsms8jqg5aR8GnCDxdJzWXtzMZPvbsE6SUuBkGFXudy2mrcTYna",
75
- "id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain-25KWBvKtVgKR3yoRmozTY6wmiW8atwrnzAnTXdsms8jqg5aR8GnCDxdJzWXtzMZPvbsE6SUuBkGFXudy2mrcTYna-IN",
76
- "recipients": [
77
- "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
78
- ],
79
- "senders": [
80
- "7CZgkK494jMdoY8xpXY3ViLjpDGMbNikCzMtAT5cAjKk",
81
- ],
63
+ "id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain-25KWBvKtVgKR3yoRmozTY6wmiW8atwrnzAnTXdsms8jqg5aR8GnCDxdJzWXtzMZPvbsE6SUuBkGFXudy2mrcTYna-NONE",
64
+ "recipients": [],
65
+ "senders": [],
82
66
  "transactionSequenceNumber": "1",
83
- "type": "IN",
84
- "value": "93394840",
67
+ "type": "NONE",
68
+ "value": "0",
85
69
  },
86
70
  {
87
71
  "accountId": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
@@ -104,36 +88,22 @@ exports[`solana currency bridge scanAccounts solana seed 1 2`] = `
104
88
  },
105
89
  {
106
90
  "accountId": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain",
107
- "blockHash": "3oH1tGs3X6HkK2XQZ7LGhRP8F45jy5zgF8H3jFtaCgHC",
91
+ "blockHash": "4NSL4VrfWd2eUccMD95dLQsdy5UGz8yhokpfH1et1R2c",
108
92
  "blockHeight": 246186040,
109
93
  "extra": {},
110
94
  "fee": "0",
111
95
  "hasFailed": false,
112
96
  "hash": "Y2U5SCQpi9YYukbAL4YSzGosVgff512HcbiDDfMag5dZYow5zT6ytbJaWEDdCZkNLCkQYuAHJ9fBjV7wKqgMTi4",
113
- "id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain-Y2U5SCQpi9YYukbAL4YSzGosVgff512HcbiDDfMag5dZYow5zT6ytbJaWEDdCZkNLCkQYuAHJ9fBjV7wKqgMTi4-NONE",
114
- "recipients": [],
115
- "senders": [],
116
- "transactionSequenceNumber": "3",
117
- "type": "NONE",
118
- "value": "0",
119
- },
120
- ],
121
- [
122
- {
123
- "accountId": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain+8RtwWeqdFz4EFuZU3MAadfYMWSdRMamjFrfq6BXkHuNN",
124
- "blockHash": "9tPbgLaETEenufCt5SzXMuWijgFJj549W9j5cJLbaogn",
125
- "blockHeight": 108521109,
126
- "extra": {},
127
- "fee": "5000",
128
- "hasFailed": false,
129
- "hash": "A29zPnK1jPr2tGziTnaAvSnadYR2kLCv9sPywj9FJsaEFjtpwmUonspN3WJgz4u6XWmjtVpoFsDrygEnvW51cgk",
130
- "id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain+8RtwWeqdFz4EFuZU3MAadfYMWSdRMamjFrfq6BXkHuNN-A29zPnK1jPr2tGziTnaAvSnadYR2kLCv9sPywj9FJsaEFjtpwmUonspN3WJgz4u6XWmjtVpoFsDrygEnvW51cgk-IN",
97
+ "id": "js:2:solana:AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh:solanaMain-Y2U5SCQpi9YYukbAL4YSzGosVgff512HcbiDDfMag5dZYow5zT6ytbJaWEDdCZkNLCkQYuAHJ9fBjV7wKqgMTi4-IN",
131
98
  "recipients": [
132
- "8RtwWeqdFz4EFuZU3MAadfYMWSdRMamjFrfq6BXkHuNN",
99
+ "AQbkEagmPgmsdAfS4X8V8UyJnXXjVPMvjeD15etqQ3Jh",
133
100
  ],
134
- "senders": [],
101
+ "senders": [
102
+ "7CZgkK494jMdoY8xpXY3ViLjpDGMbNikCzMtAT5cAjKk",
103
+ ],
104
+ "transactionSequenceNumber": "3",
135
105
  "type": "IN",
136
- "value": "7960720",
106
+ "value": "93394840",
137
107
  },
138
108
  ],
139
109
  [],
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-solana/test/bridge.dataset";
4
4
 
@@ -7,47 +7,60 @@ import { createBridges } from "@ledgerhq/coin-solana/bridge/js";
7
7
  import makeCliTools from "@ledgerhq/coin-solana/cli-transaction";
8
8
  import solanaResolver from "@ledgerhq/coin-solana/hw-getAddress";
9
9
  import { SolanaAccount, Transaction, TransactionStatus } from "@ledgerhq/coin-solana/types";
10
- import {
11
- CreateSigner,
12
- createMessageSigner,
13
- createResolver,
14
- executeWithSigner,
15
- } from "../../bridge/setup";
10
+ import { createMessageSigner, createResolver, executeWithSigner } from "../../bridge/setup";
16
11
  import type { Resolver } from "../../hw/getAddress/types";
17
12
  import { getCurrencyConfiguration } from "../../config";
18
13
  import { SolanaCoinConfig } from "@ledgerhq/coin-solana/config";
19
14
  import { getCryptoCurrencyById } from "../../currencies";
20
15
  import { signMessage } from "@ledgerhq/coin-solana/hw-signMessage";
21
- import { LegacySignerSolana } from "@ledgerhq/live-signer-solana";
22
- import { setShouldSkipTokenLoading } from "@ledgerhq/coin-solana/preload";
23
- import { LiveConfig } from "@ledgerhq/live-config/LiveConfig";
24
- import { getCryptoAssetsStore } from "../../bridge/crypto-assets";
16
+ import { LegacySignerSolana, DmkSignerSol } from "@ledgerhq/live-signer-solana";
17
+ import { DeviceManagementKit } from "@ledgerhq/device-management-kit";
25
18
 
26
- const createSigner: CreateSigner<SolanaSigner> = (transport: Transport) =>
27
- new LegacySignerSolana(transport);
19
+ let _solanaLdmkFFEnabled: boolean = false;
28
20
 
29
- const getCurrencyConfig = () => {
30
- return getCurrencyConfiguration<SolanaCoinConfig>(getCryptoCurrencyById("solana"));
31
- };
21
+ let _dmkSignerInstance: DmkSignerSol | null = null;
32
22
 
33
- try {
34
- const isCALLazyLoadingEnabled = LiveConfig.getValueByKey("feature_cal_lazy_loading");
35
- setShouldSkipTokenLoading(Boolean(isCALLazyLoadingEnabled));
36
- } catch (error) {
37
- setShouldSkipTokenLoading(false);
23
+ // temporary solution to dynamically enable/disable the Solana DMK signer,
24
+ // waiting for LIVE-20250 to be implemented
25
+ // to be removed together with useFeature("ldmkSolanaSigner")
26
+ export function setSolanaLdmkEnabled(enabled: boolean): void {
27
+ _solanaLdmkFFEnabled = enabled;
38
28
  }
39
29
 
30
+ const canDMKSignerBeUsed = (
31
+ transport: Transport & Partial<{ dmk: DeviceManagementKit; sessionId: string }>,
32
+ ): transport is Transport & { dmk: DeviceManagementKit; sessionId: string } =>
33
+ _solanaLdmkFFEnabled &&
34
+ transport.dmk instanceof DeviceManagementKit &&
35
+ typeof transport.sessionId === "string";
36
+
37
+ // get the same instance if FF gets flipped
38
+ export function getSolanaSignerInstance(
39
+ transport: Transport & Partial<{ dmk: DeviceManagementKit; sessionId: string }>,
40
+ ): SolanaSigner {
41
+ if (canDMKSignerBeUsed(transport)) {
42
+ if (!_dmkSignerInstance) {
43
+ _dmkSignerInstance = new DmkSignerSol(transport.dmk, transport.sessionId);
44
+ }
45
+ return _dmkSignerInstance;
46
+ } else {
47
+ return new LegacySignerSolana(transport);
48
+ }
49
+ }
50
+
51
+ const getCurrencyConfig = () =>
52
+ getCurrencyConfiguration<SolanaCoinConfig>(getCryptoCurrencyById("solana"));
53
+
40
54
  const bridge: Bridge<Transaction, SolanaAccount, TransactionStatus> = createBridges(
41
- executeWithSigner(createSigner),
55
+ executeWithSigner(getSolanaSignerInstance),
42
56
  getCurrencyConfig,
43
- getCryptoAssetsStore,
44
57
  );
45
58
 
46
59
  const messageSigner = {
47
- signMessage: createMessageSigner(createSigner, signMessage),
60
+ signMessage: createMessageSigner(getSolanaSignerInstance, signMessage),
48
61
  };
49
62
 
50
- const resolver: Resolver = createResolver(createSigner, solanaResolver);
63
+ const resolver: Resolver = createResolver(getSolanaSignerInstance, solanaResolver);
51
64
 
52
65
  const cliTools = makeCliTools();
53
66
 
@@ -1,7 +1,7 @@
1
1
  import { mapTxToOps } from "@ledgerhq/coin-stacks/bridge/utils/misc";
2
2
  import { fetchFullTxs } from "@ledgerhq/coin-stacks/network/api";
3
3
  import flatMap from "lodash/flatMap";
4
- import "../../../__tests__/test-helpers/setup";
4
+ import "../../../__tests__/test-helpers/setup.integration";
5
5
  import { encodeAccountId } from "../../../account";
6
6
 
7
7
  describe("sync for token transfers", () => {
@@ -1,5 +1,5 @@
1
1
  import { dataset } from "@ledgerhq/coin-stacks/test/index";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
- import "../../__tests__/test-helpers/setup";
3
+ import "../../__tests__/test-helpers/setup.integration";
4
4
 
5
5
  testBridge(dataset);
@@ -31,7 +31,7 @@ exports[`stellar currency bridge scanAccounts stellar seed 1 1`] = `
31
31
  "operationsCount": 43,
32
32
  "pendingOperations": [],
33
33
  "seedIdentifier": "27c586f8499294c64d57f8d7956eef4431de58ab20e1c88001f6cf131c97d6f3",
34
- "spendableBalance": "79999760",
34
+ "spendableBalance": "79999759",
35
35
  "subAccounts": [],
36
36
  "swapHistory": [],
37
37
  "syncHash": "0x1431ef5f",
@@ -49,7 +49,7 @@ exports[`stellar currency bridge scanAccounts stellar seed 1 1`] = `
49
49
  "operationsCount": 38,
50
50
  "pendingOperations": [],
51
51
  "seedIdentifier": "27c586f8499294c64d57f8d7956eef4431de58ab20e1c88001f6cf131c97d6f3",
52
- "spendableBalance": "44999262",
52
+ "spendableBalance": "44999261",
53
53
  "subAccounts": [],
54
54
  "swapHistory": [],
55
55
  "syncHash": "0x1431ef5f",
@@ -67,7 +67,7 @@ exports[`stellar currency bridge scanAccounts stellar seed 1 1`] = `
67
67
  "operationsCount": 17,
68
68
  "pendingOperations": [],
69
69
  "seedIdentifier": "27c586f8499294c64d57f8d7956eef4431de58ab20e1c88001f6cf131c97d6f3",
70
- "spendableBalance": "10145721",
70
+ "spendableBalance": "10145720",
71
71
  "subAccounts": [],
72
72
  "swapHistory": [],
73
73
  "syncHash": "0x1431ef5f",
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-stellar/test/index";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-sui/test/bridge.dataset";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-tezos/test/index";
4
4
 
@@ -1,6 +1,6 @@
1
1
  import { dataset } from "@ledgerhq/coin-ton/test/bridge.dataset";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
- import "../../__tests__/test-helpers/setup";
3
+ import "../../__tests__/test-helpers/setup.integration";
4
4
 
5
5
  // FIXME: Disabled due to TypeError in Send max transaction (ts.amount undefined)
6
6
  describe.skip("ton integration", () => {
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-tron/test/index";
4
4
 
@@ -1,18 +1,14 @@
1
1
  import { fromAccountRaw } from "../../account/serialization";
2
2
  import { TronAccount } from "@ledgerhq/coin-tron/types/index";
3
- import { setCryptoAssetsStore as setCryptoAssetsStoreForCoinFramework } from "@ledgerhq/coin-framework/crypto-assets/index";
4
- import type { CryptoAssetsStore } from "@ledgerhq/types-live";
3
+ import { setupMockCryptoAssetsStore } from "@ledgerhq/cryptoassets/cal-client/test-helpers";
5
4
 
6
5
  export const __NEXT_REWARD_DATE__ = new Date(Date.now() - 6 * 60 * 60 * 1000);
7
6
 
8
7
  export const __LAST_VOTING_DATE__ = new Date(Date.now() - 6 * 60 * 60 * 1000);
9
8
 
10
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
11
- setCryptoAssetsStoreForCoinFramework({
12
- findTokenById: (_: string) => undefined,
13
- findTokenByAddressInCurrency: (_: string, __: string) => undefined,
14
- getTokensSyncHash: (_: string) => Promise.resolve("test_hash"),
15
- } as unknown as CryptoAssetsStore);
9
+ setupMockCryptoAssetsStore({
10
+ getTokensSyncHash: async () => "test_hash",
11
+ });
16
12
 
17
13
  const mockAccountRaw = {
18
14
  id: "js:2:tron:TRON_ID:",
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { testBridge } from "../../__tests__/test-helpers/bridge";
3
3
  import { dataset } from "@ledgerhq/coin-vechain/test/index";
4
4
 
@@ -1,4 +1,4 @@
1
- import "../../__tests__/test-helpers/setup";
1
+ import "../../__tests__/test-helpers/setup.integration";
2
2
  import { newAddress1, dataset } from "@ledgerhq/coin-xrp/test/index";
3
3
  import { testBridge } from "../../__tests__/test-helpers/bridge";
4
4
  import { addNotCreatedRippleMockAddress } from "./bridge/mock";
@@ -664,6 +664,7 @@ export const DEFAULT_FEATURES: Features = {
664
664
  },
665
665
  },
666
666
  ldmkConnectApp: DEFAULT_FEATURE,
667
+ ldmkSolanaSigner: DEFAULT_FEATURE,
667
668
  lldNetworkBasedAddAccount: DEFAULT_FEATURE,
668
669
  llmDatadog: {
669
670
  ...DEFAULT_FEATURE,
@@ -700,12 +701,14 @@ export const DEFAULT_FEATURES: Features = {
700
701
  lldSyncOnboardingIncr1: DEFAULT_FEATURE,
701
702
  noah: DEFAULT_FEATURE,
702
703
  newSendFlow: DEFAULT_FEATURE,
704
+ cantonSkipPreapprovalStep: DEFAULT_FEATURE,
703
705
  lldSessionReplay: {
704
706
  ...DEFAULT_FEATURE,
705
707
  params: {
706
708
  sampling: 100,
707
709
  },
708
710
  },
711
+ zcashShielded: DEFAULT_FEATURE,
709
712
  };
710
713
 
711
714
  // Firebase SDK treat JSON values as strings
@@ -0,0 +1,5 @@
1
+ export {
2
+ setupCalClientStore,
3
+ setupMockCryptoAssetsStore,
4
+ createMockCryptoAssetsStore,
5
+ } from "@ledgerhq/cryptoassets/cal-client/test-helpers";
@@ -3,10 +3,10 @@ import { genAccount } from "../../mock/account";
3
3
  import type { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
4
4
  import type { Account, TokenAccount } from "@ledgerhq/types-live";
5
5
  import { getAccountTuplesForCurrency } from "../getAccountTuplesForCurrency";
6
- import { initializeLegacyTokens } from "@ledgerhq/cryptoassets/legacy/legacy-data";
7
- import { addTokens } from "@ledgerhq/cryptoassets/legacy/legacy-utils";
6
+ import { setupMockCryptoAssetsStore } from "@ledgerhq/cryptoassets/cal-client/test-helpers";
8
7
 
9
- initializeLegacyTokens(addTokens);
8
+ // Setup mock store for unit tests
9
+ setupMockCryptoAssetsStore();
10
10
 
11
11
  function* accountGenerator(currency: CryptoCurrency): Generator<Account> {
12
12
  let id = 0;
@@ -3,6 +3,7 @@ import { Account } from "@ledgerhq/types-live";
3
3
  import { CryptoCurrency, TokenCurrency } from "@ledgerhq/types-cryptoassets";
4
4
  import BigNumber from "bignumber.js";
5
5
  import { AppPlatform, AppBranch, Visibility } from "../types";
6
+ import { getCryptoAssetsStore } from "@ledgerhq/cryptoassets/state";
6
7
 
7
8
  // Mock dependencies
8
9
  jest.mock("@ledgerhq/wallet-api-server", () => ({
@@ -14,7 +15,7 @@ jest.mock("@ledgerhq/cryptoassets", () => ({
14
15
  getCryptoCurrencyById: jest.fn(),
15
16
  }));
16
17
 
17
- jest.mock("../../bridge/crypto-assets/index", () => ({
18
+ jest.mock("@ledgerhq/cryptoassets/state", () => ({
18
19
  getCryptoAssetsStore: jest.fn(),
19
20
  }));
20
21
 
@@ -150,12 +151,10 @@ describe("ACRE Server Handlers", () => {
150
151
  let mockUiHooks: any;
151
152
  let serverHandlers: any;
152
153
 
153
- const { getCryptoAssetsStore } = jest.requireMock("../../bridge/crypto-assets/index");
154
-
155
154
  beforeEach(() => {
156
155
  jest.clearAllMocks();
157
156
 
158
- getCryptoAssetsStore.mockReturnValue({
157
+ (getCryptoAssetsStore as jest.Mock).mockReturnValue({
159
158
  findTokenByAddressInCurrency: jest.fn().mockResolvedValue(mockTokenCurrency),
160
159
  findTokenById: jest.fn().mockResolvedValue(mockTokenCurrency),
161
160
  });
@@ -8,7 +8,7 @@ import {
8
8
  isTokenAccount,
9
9
  } from "@ledgerhq/coin-framework/account/index";
10
10
  import { Account, AccountLike, AnyMessage, Operation, SignedOperation } from "@ledgerhq/types-live";
11
- import { getCryptoAssetsStore } from "../../bridge/crypto-assets/index";
11
+ import { getCryptoAssetsStore } from "@ledgerhq/cryptoassets/state";
12
12
  import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/currencies";
13
13
  import {
14
14
  MessageSignParams,
@@ -4,7 +4,7 @@ import {
4
4
  getParentAccount,
5
5
  makeEmptyTokenAccount,
6
6
  } from "@ledgerhq/coin-framework/account/index";
7
- import { getCryptoAssetsStore } from "../../bridge/crypto-assets/index";
7
+ import { getCryptoAssetsStore } from "@ledgerhq/cryptoassets/state";
8
8
  import { decodeSwapPayload } from "@ledgerhq/hw-app-exchange";
9
9
  import { CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets";
10
10
  import { Account, AccountLike, getCurrencyForAccount, TokenAccount } from "@ledgerhq/types-live";
@@ -26,10 +26,10 @@ import { TrackingAPI } from "./tracking";
26
26
  import { cryptocurrenciesById } from "@ledgerhq/cryptoassets/currencies";
27
27
  import { setSupportedCurrencies } from "../currencies";
28
28
  import { initialState as walletState } from "@ledgerhq/live-wallet/store";
29
- import { initializeLegacyTokens } from "@ledgerhq/cryptoassets/legacy/legacy-data";
30
- import { addTokens } from "@ledgerhq/cryptoassets/legacy/legacy-utils";
29
+ import { setupMockCryptoAssetsStore } from "@ledgerhq/cryptoassets/cal-client/test-helpers";
31
30
 
32
- initializeLegacyTokens(addTokens);
31
+ // Setup mock store for unit tests
32
+ setupMockCryptoAssetsStore();
33
33
 
34
34
  describe("receiveOnAccountLogic", () => {
35
35
  // Given
@@ -24,7 +24,7 @@ import { Transaction } from "../generated/types";
24
24
  import { prepareMessageToSign } from "../hw/signMessage/index";
25
25
  import { getAccountBridge } from "../bridge";
26
26
  import { Exchange } from "../exchange/types";
27
- import { getCryptoAssetsStore } from "../bridge/crypto-assets/index";
27
+ import { getCryptoAssetsStore } from "@ledgerhq/cryptoassets/state";
28
28
  import { WalletState } from "@ledgerhq/live-wallet/store";
29
29
  import { getWalletAccount } from "@ledgerhq/coin-bitcoin/wallet-btc/index";
30
30
  import { CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets";
@@ -32,7 +32,7 @@ import { isWalletAPISupportedCurrency } from "./helpers";
32
32
  import { WalletAPICurrency, AppManifest, WalletAPIAccount, WalletAPICustomHandlers } from "./types";
33
33
  import { getMainAccount, getParentAccount } from "../account";
34
34
  import { listSupportedCurrencies } from "../currencies";
35
- import { getCryptoAssetsStore } from "../bridge/crypto-assets";
35
+ import { getCryptoAssetsStore } from "@ledgerhq/cryptoassets/state";
36
36
  import { TrackingAPI } from "./tracking";
37
37
  import {
38
38
  bitcoinFamilyAccountGetXPubLogic,
@@ -370,6 +370,8 @@ export function useWalletAPIServer({
370
370
  // Pattern like "ethereum/**" or "solana/**" - include tokens for this family
371
371
  const family = id.slice(0, -3);
372
372
  tokenFamilies.add(family);
373
+ // Additionally include the parent currency itself
374
+ specificCurrencies.add(family);
373
375
  } else if (id.includes("/")) {
374
376
  // Specific token ID like "ethereum/erc20/usd__coin"
375
377
  specificTokenIds.add(id);
@@ -16,7 +16,7 @@ import { SmartWebsocket } from "./SmartWebsocket";
16
16
  import { stripHexPrefix } from "./helpers";
17
17
  import { getTxType } from "./utils/txTrackingHelper";
18
18
  import { Transaction as EvmTransaction } from "@ledgerhq/coin-evm/types/transaction";
19
- import { getCryptoAssetsStore } from "../bridge/crypto-assets";
19
+ import { getCryptoAssetsStore } from "@ledgerhq/cryptoassets/state";
20
20
 
21
21
  type MessageId = number | string | null;
22
22
 
@@ -1,2 +0,0 @@
1
- import "./environment";
2
- //# sourceMappingURL=setup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/setup.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/__tests__/test-helpers/setup.ts"],"names":[],"mappings":";;;;;AAAA,wEAA4H;AAC5H,6EAAqF;AACrF,2EAAmF;AACnF,6EAAuE;AACvE,yBAAuB;AACvB,gEAAqC;AAErC,IAAA,oCAAsB,EAAC,wBAAS,CAAC,CAAC;AAElC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,CAAC;IACZ,aAAa,CAAC,KAAK;QACjB,MAAM,IAAI,GAAG,sBAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,iBAAiB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,qBAAqB,CAAC;QAE7F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CACF,CAAC,CAAC;AAEH,2EAA2E;AAC3E,IAAA,4BAAoC,EAAC,sCAAuB,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { CryptoAssetsStore } from "@ledgerhq/types-live";
2
- export declare function setCryptoAssetsStore(store: CryptoAssetsStore): void;
3
- export declare function getCryptoAssetsStore(): CryptoAssetsStore;
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bridge/crypto-assets/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAK9D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,QAE5D;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAYxD"}
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCryptoAssetsStore = exports.setCryptoAssetsStore = void 0;
4
- const LiveConfig_1 = require("@ledgerhq/live-config/LiveConfig");
5
- const legacy_store_1 = require("@ledgerhq/cryptoassets/legacy/legacy-store");
6
- let cryptoAssetsStore = undefined;
7
- function setCryptoAssetsStore(store) {
8
- cryptoAssetsStore = store;
9
- }
10
- exports.setCryptoAssetsStore = setCryptoAssetsStore;
11
- function getCryptoAssetsStore() {
12
- const featureEnabled = LiveConfig_1.LiveConfig.isConfigSet() && LiveConfig_1.LiveConfig.getValueByKey("feature_cal_lazy_loading");
13
- if (!featureEnabled) {
14
- return legacy_store_1.legacyCryptoAssetsStore;
15
- }
16
- if (!cryptoAssetsStore) {
17
- throw new Error("CryptoAssetsStore is not set. Please call setCryptoAssetsStore first.");
18
- }
19
- return cryptoAssetsStore;
20
- }
21
- exports.getCryptoAssetsStore = getCryptoAssetsStore;
22
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bridge/crypto-assets/index.ts"],"names":[],"mappings":";;;AAAA,iEAA8D;AAE9D,6EAAqF;AAErF,IAAI,iBAAiB,GAAkC,SAAS,CAAC;AAEjE,SAAgB,oBAAoB,CAAC,KAAwB;IAC3D,iBAAiB,GAAG,KAAK,CAAC;AAC5B,CAAC;AAFD,oDAEC;AAED,SAAgB,oBAAoB;IAClC,MAAM,cAAc,GAClB,uBAAU,CAAC,WAAW,EAAE,IAAI,uBAAU,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;IACnF,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,sCAAuB,CAAC;KAChC;IAED,IAAI,CAAC,iBAAiB,EAAE;QACtB,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;KAC1F;IAED,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAZD,oDAYC"}
@@ -1,3 +0,0 @@
1
- export declare function pressBoth(): Promise<void>;
2
- export declare function pressRightButton(): Promise<void>;
3
- //# sourceMappingURL=ButtonDeviceSimulator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ButtonDeviceSimulator.d.ts","sourceRoot":"","sources":["../../../src/e2e/deviceInteraction/ButtonDeviceSimulator.ts"],"names":[],"mappings":"AAIA,wBAAsB,SAAS,kBAQ9B;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAQtD"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.pressRightButton = exports.pressBoth = void 0;
7
- const live_env_1 = require("@ledgerhq/live-env");
8
- const speculos_1 = require("../speculos");
9
- const axios_1 = __importDefault(require("axios"));
10
- async function pressBoth() {
11
- const speculosApiPort = (0, live_env_1.getEnv)("SPECULOS_API_PORT");
12
- const speculosAddress = (0, speculos_1.getSpeculosAddress)();
13
- await (0, speculos_1.retryAxiosRequest)(() => axios_1.default.post(`${speculosAddress}:${speculosApiPort}/button/both`, {
14
- action: "press-and-release",
15
- }));
16
- }
17
- exports.pressBoth = pressBoth;
18
- async function pressRightButton() {
19
- const speculosApiPort = (0, live_env_1.getEnv)("SPECULOS_API_PORT");
20
- const speculosAddress = (0, speculos_1.getSpeculosAddress)();
21
- await (0, speculos_1.retryAxiosRequest)(() => axios_1.default.post(`${speculosAddress}:${speculosApiPort}/button/right`, {
22
- action: "press-and-release",
23
- }));
24
- }
25
- exports.pressRightButton = pressRightButton;
26
- //# sourceMappingURL=ButtonDeviceSimulator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ButtonDeviceSimulator.js","sourceRoot":"","sources":["../../../src/e2e/deviceInteraction/ButtonDeviceSimulator.ts"],"names":[],"mappings":";;;;;;AAAA,iDAA4C;AAC5C,0CAAoE;AACpE,kDAA0B;AAEnB,KAAK,UAAU,SAAS;IAC7B,MAAM,eAAe,GAAG,IAAA,iBAAM,EAAC,mBAAmB,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,IAAA,6BAAkB,GAAE,CAAC;IAC7C,MAAM,IAAA,4BAAiB,EAAC,GAAG,EAAE,CAC3B,eAAK,CAAC,IAAI,CAAC,GAAG,eAAe,IAAI,eAAe,cAAc,EAAE;QAC9D,MAAM,EAAE,mBAAmB;KAC5B,CAAC,CACH,CAAC;AACJ,CAAC;AARD,8BAQC;AAEM,KAAK,UAAU,gBAAgB;IACpC,MAAM,eAAe,GAAG,IAAA,iBAAM,EAAC,mBAAmB,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,IAAA,6BAAkB,GAAE,CAAC;IAC7C,MAAM,IAAA,4BAAiB,EAAC,GAAG,EAAE,CAC3B,eAAK,CAAC,IAAI,CAAC,GAAG,eAAe,IAAI,eAAe,eAAe,EAAE;QAC/D,MAAM,EAAE,mBAAmB;KAC5B,CAAC,CACH,CAAC;AACJ,CAAC;AARD,4CAQC"}
@@ -1,2 +0,0 @@
1
- import "./environment";
2
- //# sourceMappingURL=setup.d.ts.map