@ledgerhq/live-common 34.48.0-nightly.1 → 34.48.0-nightly.3

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 (483) 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/crypto-assets/index.d.ts.map +1 -1
  16. package/lib/bridge/crypto-assets/index.js +0 -4
  17. package/lib/bridge/crypto-assets/index.js.map +1 -1
  18. package/lib/bridge/crypto-assets/index.test.js +0 -36
  19. package/lib/bridge/crypto-assets/index.test.js.map +1 -1
  20. package/lib/bridge/generic-alpaca/accountBridge.d.ts +2 -1
  21. package/lib/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
  22. package/lib/bridge/generic-alpaca/accountBridge.js +2 -2
  23. package/lib/bridge/generic-alpaca/accountBridge.js.map +1 -1
  24. package/lib/bridge/generic-alpaca/alpaca/index.d.ts +1 -1
  25. package/lib/bridge/generic-alpaca/alpaca/index.d.ts.map +1 -1
  26. package/lib/bridge/generic-alpaca/alpaca/index.js +10 -6
  27. package/lib/bridge/generic-alpaca/alpaca/index.js.map +1 -1
  28. package/lib/bridge/generic-alpaca/alpaca/index.unit.test.js +37 -9
  29. package/lib/bridge/generic-alpaca/alpaca/index.unit.test.js.map +1 -1
  30. package/lib/bridge/generic-alpaca/createTransaction.d.ts +1 -1
  31. package/lib/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
  32. package/lib/bridge/generic-alpaca/createTransaction.js +8 -0
  33. package/lib/bridge/generic-alpaca/createTransaction.js.map +1 -1
  34. package/lib/bridge/generic-alpaca/currencyBridge.d.ts +2 -1
  35. package/lib/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
  36. package/lib/bridge/generic-alpaca/currencyBridge.js +3 -2
  37. package/lib/bridge/generic-alpaca/currencyBridge.js.map +1 -1
  38. package/lib/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  39. package/lib/bridge/generic-alpaca/getAccountShape.js +4 -4
  40. package/lib/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  41. package/lib/bridge/generic-alpaca/signer/Eth.d.ts +8 -0
  42. package/lib/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -0
  43. package/lib/bridge/generic-alpaca/signer/Eth.js +51 -0
  44. package/lib/bridge/generic-alpaca/signer/Eth.js.map +1 -0
  45. package/lib/bridge/generic-alpaca/signer/index.d.ts +2 -10
  46. package/lib/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
  47. package/lib/bridge/generic-alpaca/signer/index.js +2 -2
  48. package/lib/bridge/generic-alpaca/signer/index.js.map +1 -1
  49. package/lib/bridge/generic-alpaca/signer/signTransaction.d.ts +2 -3
  50. package/lib/bridge/generic-alpaca/signer/signTransaction.d.ts.map +1 -1
  51. package/lib/bridge/generic-alpaca/signer/signTransaction.js.map +1 -1
  52. package/lib/bridge/generic-alpaca/signer/types.d.ts +11 -0
  53. package/lib/bridge/generic-alpaca/signer/types.d.ts.map +1 -1
  54. package/lib/bridge/generic-alpaca/utils.d.ts +2 -0
  55. package/lib/bridge/generic-alpaca/utils.d.ts.map +1 -1
  56. package/lib/bridge/generic-alpaca/utils.js +15 -1
  57. package/lib/bridge/generic-alpaca/utils.js.map +1 -1
  58. package/lib/bridge/generic-alpaca/utils.test.js +21 -0
  59. package/lib/bridge/generic-alpaca/utils.test.js.map +1 -1
  60. package/lib/config/sharedConfig.d.ts.map +1 -1
  61. package/lib/config/sharedConfig.js +30 -26
  62. package/lib/config/sharedConfig.js.map +1 -1
  63. package/lib/e2e/enum/Account.d.ts +2 -0
  64. package/lib/e2e/enum/Account.d.ts.map +1 -1
  65. package/lib/e2e/enum/Account.js +2 -0
  66. package/lib/e2e/enum/Account.js.map +1 -1
  67. package/lib/e2e/enum/AppInfos.d.ts +1 -0
  68. package/lib/e2e/enum/AppInfos.d.ts.map +1 -1
  69. package/lib/e2e/enum/AppInfos.js +1 -0
  70. package/lib/e2e/enum/AppInfos.js.map +1 -1
  71. package/lib/e2e/enum/Currency.d.ts +1 -0
  72. package/lib/e2e/enum/Currency.d.ts.map +1 -1
  73. package/lib/e2e/enum/Currency.js +1 -0
  74. package/lib/e2e/enum/Currency.js.map +1 -1
  75. package/lib/e2e/enum/Network.d.ts +2 -1
  76. package/lib/e2e/enum/Network.d.ts.map +1 -1
  77. package/lib/e2e/enum/Network.js +1 -0
  78. package/lib/e2e/enum/Network.js.map +1 -1
  79. package/lib/e2e/families/kaspa.d.ts +4 -0
  80. package/lib/e2e/families/kaspa.d.ts.map +1 -0
  81. package/lib/e2e/families/kaspa.js +23 -0
  82. package/lib/e2e/families/kaspa.js.map +1 -0
  83. package/lib/e2e/index.d.ts +3 -6
  84. package/lib/e2e/index.d.ts.map +1 -1
  85. package/lib/e2e/speculos.d.ts.map +1 -1
  86. package/lib/e2e/speculos.js +12 -0
  87. package/lib/e2e/speculos.js.map +1 -1
  88. package/lib/env.react.d.ts +1 -1
  89. package/lib/env.react.d.ts.map +1 -1
  90. package/lib/families/canton/bridge/mock-data.d.ts +6 -0
  91. package/lib/families/canton/bridge/mock-data.d.ts.map +1 -0
  92. package/lib/families/canton/bridge/mock-data.js +120 -0
  93. package/lib/families/canton/bridge/mock-data.js.map +1 -0
  94. package/lib/families/canton/bridge/mock.d.ts +12 -0
  95. package/lib/families/canton/bridge/mock.d.ts.map +1 -0
  96. package/lib/families/canton/bridge/mock.js +154 -0
  97. package/lib/families/canton/bridge/mock.js.map +1 -0
  98. package/lib/families/canton/config.d.ts.map +1 -1
  99. package/lib/families/canton/config.js +5 -2
  100. package/lib/families/canton/config.js.map +1 -1
  101. package/lib/families/canton/setup.d.ts.map +1 -1
  102. package/lib/families/canton/setup.js +8 -2
  103. package/lib/families/canton/setup.js.map +1 -1
  104. package/lib/families/evm/config.js +2 -2
  105. package/lib/families/evm/config.js.map +1 -1
  106. package/lib/families/kaspa/bridge.integration.test.d.ts +2 -0
  107. package/lib/families/kaspa/bridge.integration.test.d.ts.map +1 -0
  108. package/lib/families/kaspa/bridge.integration.test.js +7 -0
  109. package/lib/families/kaspa/bridge.integration.test.js.map +1 -0
  110. package/lib/families/kaspa/config.d.ts +3 -0
  111. package/lib/families/kaspa/config.d.ts.map +1 -0
  112. package/lib/families/kaspa/config.js +14 -0
  113. package/lib/families/kaspa/config.js.map +1 -0
  114. package/lib/families/kaspa/react.d.ts +4 -0
  115. package/lib/families/kaspa/react.d.ts.map +1 -0
  116. package/lib/families/kaspa/react.js +18 -0
  117. package/lib/families/kaspa/react.js.map +1 -0
  118. package/lib/families/kaspa/setup.d.ts +18 -0
  119. package/lib/families/kaspa/setup.d.ts.map +1 -0
  120. package/lib/families/kaspa/setup.js +24 -0
  121. package/lib/families/kaspa/setup.js.map +1 -0
  122. package/lib/families/kaspa/types.d.ts +2 -0
  123. package/lib/families/kaspa/types.d.ts.map +1 -0
  124. package/lib/families/kaspa/types.js +18 -0
  125. package/lib/families/kaspa/types.js.map +1 -0
  126. package/lib/families/xrp/setup.d.ts +2 -2
  127. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  128. package/lib/featureFlags/defaultFeatures.js +0 -2
  129. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  130. package/lib/featureFlags/useFeature.d.ts +1 -1
  131. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  132. package/lib/generated/bridge/js.d.ts +1 -0
  133. package/lib/generated/bridge/js.d.ts.map +1 -1
  134. package/lib/generated/bridge/js.js +24 -22
  135. package/lib/generated/bridge/js.js.map +1 -1
  136. package/lib/generated/bridge/mock.d.ts +9 -1
  137. package/lib/generated/bridge/mock.d.ts.map +1 -1
  138. package/lib/generated/bridge/mock.js +26 -24
  139. package/lib/generated/bridge/mock.js.map +1 -1
  140. package/lib/generated/cli-transaction.d.ts +13 -2
  141. package/lib/generated/cli-transaction.d.ts.map +1 -1
  142. package/lib/generated/cli-transaction.js +28 -26
  143. package/lib/generated/cli-transaction.js.map +1 -1
  144. package/lib/generated/deviceTransactionConfig.d.ts +2 -0
  145. package/lib/generated/deviceTransactionConfig.d.ts.map +1 -1
  146. package/lib/generated/deviceTransactionConfig.js +24 -22
  147. package/lib/generated/deviceTransactionConfig.js.map +1 -1
  148. package/lib/generated/hw-getAddress.d.ts +1 -0
  149. package/lib/generated/hw-getAddress.d.ts.map +1 -1
  150. package/lib/generated/hw-getAddress.js +28 -26
  151. package/lib/generated/hw-getAddress.js.map +1 -1
  152. package/lib/generated/platformAdapter.d.ts +1 -1
  153. package/lib/generated/specs.d.ts +1 -1
  154. package/lib/generated/transaction.d.ts +11 -3
  155. package/lib/generated/transaction.d.ts.map +1 -1
  156. package/lib/generated/transaction.js +28 -26
  157. package/lib/generated/transaction.js.map +1 -1
  158. package/lib/generated/types.d.ts +5 -4
  159. package/lib/generated/types.d.ts.map +1 -1
  160. package/lib/generated/walletApiAdapter.d.ts +1 -1
  161. package/lib/hw/actions/app.d.ts.map +1 -1
  162. package/lib/hw/actions/app.js +11 -8
  163. package/lib/hw/actions/app.js.map +1 -1
  164. package/lib/hw/getDeviceNameMaxLength.d.ts.map +1 -1
  165. package/lib/hw/getDeviceNameMaxLength.js +2 -0
  166. package/lib/hw/getDeviceNameMaxLength.js.map +1 -1
  167. package/lib/hw/getDeviceNameMaxLength.test.js +12 -0
  168. package/lib/hw/getDeviceNameMaxLength.test.js.map +1 -1
  169. package/lib/modularDrawer/hooks/useAssetsData.d.ts +1 -0
  170. package/lib/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
  171. package/lib/modularDrawer/hooks/useAssetsData.js +3 -2
  172. package/lib/modularDrawer/hooks/useAssetsData.js.map +1 -1
  173. package/lib/modularDrawer/hooks/useSearch.d.ts +16 -0
  174. package/lib/modularDrawer/hooks/useSearch.d.ts.map +1 -0
  175. package/lib/modularDrawer/hooks/useSearch.js +24 -0
  176. package/lib/modularDrawer/hooks/useSearch.js.map +1 -0
  177. package/lib/notifications/ServiceStatusProvider/index.d.ts +16 -1
  178. package/lib/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
  179. package/lib/notifications/ServiceStatusProvider/index.js +31 -7
  180. package/lib/notifications/ServiceStatusProvider/index.js.map +1 -1
  181. package/lib/notifications/ServiceStatusProvider/index.test.d.ts +2 -0
  182. package/lib/notifications/ServiceStatusProvider/index.test.d.ts.map +1 -0
  183. package/lib/notifications/ServiceStatusProvider/index.test.js +88 -0
  184. package/lib/notifications/ServiceStatusProvider/index.test.js.map +1 -0
  185. package/lib/notifications/ServiceStatusProvider/ledger-components.d.ts +2 -0
  186. package/lib/notifications/ServiceStatusProvider/ledger-components.d.ts.map +1 -0
  187. package/lib/notifications/ServiceStatusProvider/ledger-components.js +16 -0
  188. package/lib/notifications/ServiceStatusProvider/ledger-components.js.map +1 -0
  189. package/lib/wallet-api/ACRE/server.d.ts +13 -6
  190. package/lib/wallet-api/ACRE/server.d.ts.map +1 -1
  191. package/lib/wallet-api/ACRE/server.js +142 -1
  192. package/lib/wallet-api/ACRE/server.js.map +1 -1
  193. package/lib/wallet-api/ACRE/server.test.d.ts +2 -0
  194. package/lib/wallet-api/ACRE/server.test.d.ts.map +1 -0
  195. package/lib/wallet-api/ACRE/server.test.js +393 -0
  196. package/lib/wallet-api/ACRE/server.test.js.map +1 -0
  197. package/lib-es/__tests__/test-helpers/environment.js +1 -0
  198. package/lib-es/__tests__/test-helpers/environment.js.map +1 -1
  199. package/lib-es/apps/inlineAppInstall.d.ts +1 -3
  200. package/lib-es/apps/inlineAppInstall.d.ts.map +1 -1
  201. package/lib-es/apps/inlineAppInstall.js +2 -2
  202. package/lib-es/apps/inlineAppInstall.js.map +1 -1
  203. package/lib-es/apps/react.d.ts +1 -2
  204. package/lib-es/apps/react.d.ts.map +1 -1
  205. package/lib-es/apps/react.js +2 -2
  206. package/lib-es/apps/react.js.map +1 -1
  207. package/lib-es/apps/runner.d.ts +2 -4
  208. package/lib-es/apps/runner.d.ts.map +1 -1
  209. package/lib-es/apps/runner.js +3 -4
  210. package/lib-es/apps/runner.js.map +1 -1
  211. package/lib-es/bridge/crypto-assets/index.d.ts.map +1 -1
  212. package/lib-es/bridge/crypto-assets/index.js +0 -4
  213. package/lib-es/bridge/crypto-assets/index.js.map +1 -1
  214. package/lib-es/bridge/crypto-assets/index.test.js +0 -36
  215. package/lib-es/bridge/crypto-assets/index.test.js.map +1 -1
  216. package/lib-es/bridge/generic-alpaca/accountBridge.d.ts +2 -1
  217. package/lib-es/bridge/generic-alpaca/accountBridge.d.ts.map +1 -1
  218. package/lib-es/bridge/generic-alpaca/accountBridge.js +2 -2
  219. package/lib-es/bridge/generic-alpaca/accountBridge.js.map +1 -1
  220. package/lib-es/bridge/generic-alpaca/alpaca/index.d.ts +1 -1
  221. package/lib-es/bridge/generic-alpaca/alpaca/index.d.ts.map +1 -1
  222. package/lib-es/bridge/generic-alpaca/alpaca/index.js +10 -6
  223. package/lib-es/bridge/generic-alpaca/alpaca/index.js.map +1 -1
  224. package/lib-es/bridge/generic-alpaca/alpaca/index.unit.test.js +37 -9
  225. package/lib-es/bridge/generic-alpaca/alpaca/index.unit.test.js.map +1 -1
  226. package/lib-es/bridge/generic-alpaca/createTransaction.d.ts +1 -1
  227. package/lib-es/bridge/generic-alpaca/createTransaction.d.ts.map +1 -1
  228. package/lib-es/bridge/generic-alpaca/createTransaction.js +8 -0
  229. package/lib-es/bridge/generic-alpaca/createTransaction.js.map +1 -1
  230. package/lib-es/bridge/generic-alpaca/currencyBridge.d.ts +2 -1
  231. package/lib-es/bridge/generic-alpaca/currencyBridge.d.ts.map +1 -1
  232. package/lib-es/bridge/generic-alpaca/currencyBridge.js +3 -2
  233. package/lib-es/bridge/generic-alpaca/currencyBridge.js.map +1 -1
  234. package/lib-es/bridge/generic-alpaca/getAccountShape.d.ts.map +1 -1
  235. package/lib-es/bridge/generic-alpaca/getAccountShape.js +4 -4
  236. package/lib-es/bridge/generic-alpaca/getAccountShape.js.map +1 -1
  237. package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts +8 -0
  238. package/lib-es/bridge/generic-alpaca/signer/Eth.d.ts.map +1 -0
  239. package/lib-es/bridge/generic-alpaca/signer/Eth.js +47 -0
  240. package/lib-es/bridge/generic-alpaca/signer/Eth.js.map +1 -0
  241. package/lib-es/bridge/generic-alpaca/signer/index.d.ts +2 -10
  242. package/lib-es/bridge/generic-alpaca/signer/index.d.ts.map +1 -1
  243. package/lib-es/bridge/generic-alpaca/signer/index.js +2 -2
  244. package/lib-es/bridge/generic-alpaca/signer/index.js.map +1 -1
  245. package/lib-es/bridge/generic-alpaca/signer/signTransaction.d.ts +2 -3
  246. package/lib-es/bridge/generic-alpaca/signer/signTransaction.d.ts.map +1 -1
  247. package/lib-es/bridge/generic-alpaca/signer/signTransaction.js.map +1 -1
  248. package/lib-es/bridge/generic-alpaca/signer/types.d.ts +11 -0
  249. package/lib-es/bridge/generic-alpaca/signer/types.d.ts.map +1 -1
  250. package/lib-es/bridge/generic-alpaca/utils.d.ts +2 -0
  251. package/lib-es/bridge/generic-alpaca/utils.d.ts.map +1 -1
  252. package/lib-es/bridge/generic-alpaca/utils.js +13 -0
  253. package/lib-es/bridge/generic-alpaca/utils.js.map +1 -1
  254. package/lib-es/bridge/generic-alpaca/utils.test.js +22 -1
  255. package/lib-es/bridge/generic-alpaca/utils.test.js.map +1 -1
  256. package/lib-es/config/sharedConfig.d.ts.map +1 -1
  257. package/lib-es/config/sharedConfig.js +4 -0
  258. package/lib-es/config/sharedConfig.js.map +1 -1
  259. package/lib-es/e2e/enum/Account.d.ts +2 -0
  260. package/lib-es/e2e/enum/Account.d.ts.map +1 -1
  261. package/lib-es/e2e/enum/Account.js +2 -0
  262. package/lib-es/e2e/enum/Account.js.map +1 -1
  263. package/lib-es/e2e/enum/AppInfos.d.ts +1 -0
  264. package/lib-es/e2e/enum/AppInfos.d.ts.map +1 -1
  265. package/lib-es/e2e/enum/AppInfos.js +1 -0
  266. package/lib-es/e2e/enum/AppInfos.js.map +1 -1
  267. package/lib-es/e2e/enum/Currency.d.ts +1 -0
  268. package/lib-es/e2e/enum/Currency.d.ts.map +1 -1
  269. package/lib-es/e2e/enum/Currency.js +1 -0
  270. package/lib-es/e2e/enum/Currency.js.map +1 -1
  271. package/lib-es/e2e/enum/Network.d.ts +2 -1
  272. package/lib-es/e2e/enum/Network.d.ts.map +1 -1
  273. package/lib-es/e2e/enum/Network.js +1 -0
  274. package/lib-es/e2e/enum/Network.js.map +1 -1
  275. package/lib-es/e2e/families/kaspa.d.ts +4 -0
  276. package/lib-es/e2e/families/kaspa.d.ts.map +1 -0
  277. package/lib-es/e2e/families/kaspa.js +15 -0
  278. package/lib-es/e2e/families/kaspa.js.map +1 -0
  279. package/lib-es/e2e/index.d.ts +3 -6
  280. package/lib-es/e2e/index.d.ts.map +1 -1
  281. package/lib-es/e2e/speculos.d.ts.map +1 -1
  282. package/lib-es/e2e/speculos.js +12 -0
  283. package/lib-es/e2e/speculos.js.map +1 -1
  284. package/lib-es/env.react.d.ts +1 -1
  285. package/lib-es/env.react.d.ts.map +1 -1
  286. package/lib-es/families/canton/bridge/mock-data.d.ts +6 -0
  287. package/lib-es/families/canton/bridge/mock-data.d.ts.map +1 -0
  288. package/lib-es/families/canton/bridge/mock-data.js +116 -0
  289. package/lib-es/families/canton/bridge/mock-data.js.map +1 -0
  290. package/lib-es/families/canton/bridge/mock.d.ts +12 -0
  291. package/lib-es/families/canton/bridge/mock.d.ts.map +1 -0
  292. package/lib-es/families/canton/bridge/mock.js +152 -0
  293. package/lib-es/families/canton/bridge/mock.js.map +1 -0
  294. package/lib-es/families/canton/config.d.ts.map +1 -1
  295. package/lib-es/families/canton/config.js +5 -2
  296. package/lib-es/families/canton/config.js.map +1 -1
  297. package/lib-es/families/canton/setup.d.ts.map +1 -1
  298. package/lib-es/families/canton/setup.js +8 -2
  299. package/lib-es/families/canton/setup.js.map +1 -1
  300. package/lib-es/families/evm/config.js +2 -2
  301. package/lib-es/families/evm/config.js.map +1 -1
  302. package/lib-es/families/kaspa/bridge.integration.test.d.ts +2 -0
  303. package/lib-es/families/kaspa/bridge.integration.test.d.ts.map +1 -0
  304. package/lib-es/families/kaspa/bridge.integration.test.js +5 -0
  305. package/lib-es/families/kaspa/bridge.integration.test.js.map +1 -0
  306. package/lib-es/families/kaspa/config.d.ts +3 -0
  307. package/lib-es/families/kaspa/config.d.ts.map +1 -0
  308. package/lib-es/families/kaspa/config.js +11 -0
  309. package/lib-es/families/kaspa/config.js.map +1 -0
  310. package/lib-es/families/kaspa/react.d.ts +4 -0
  311. package/lib-es/families/kaspa/react.d.ts.map +1 -0
  312. package/lib-es/families/kaspa/react.js +14 -0
  313. package/lib-es/families/kaspa/react.js.map +1 -0
  314. package/lib-es/families/kaspa/setup.d.ts +18 -0
  315. package/lib-es/families/kaspa/setup.d.ts.map +1 -0
  316. package/lib-es/families/kaspa/setup.js +16 -0
  317. package/lib-es/families/kaspa/setup.js.map +1 -0
  318. package/lib-es/families/kaspa/types.d.ts +2 -0
  319. package/lib-es/families/kaspa/types.d.ts.map +1 -0
  320. package/lib-es/families/kaspa/types.js +2 -0
  321. package/lib-es/families/kaspa/types.js.map +1 -0
  322. package/lib-es/families/xrp/setup.d.ts +2 -2
  323. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  324. package/lib-es/featureFlags/defaultFeatures.js +0 -2
  325. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  326. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  327. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  328. package/lib-es/generated/bridge/js.d.ts +1 -0
  329. package/lib-es/generated/bridge/js.d.ts.map +1 -1
  330. package/lib-es/generated/bridge/js.js +2 -0
  331. package/lib-es/generated/bridge/js.js.map +1 -1
  332. package/lib-es/generated/bridge/mock.d.ts +9 -1
  333. package/lib-es/generated/bridge/mock.d.ts.map +1 -1
  334. package/lib-es/generated/bridge/mock.js +2 -0
  335. package/lib-es/generated/bridge/mock.js.map +1 -1
  336. package/lib-es/generated/cli-transaction.d.ts +13 -2
  337. package/lib-es/generated/cli-transaction.d.ts.map +1 -1
  338. package/lib-es/generated/cli-transaction.js +2 -0
  339. package/lib-es/generated/cli-transaction.js.map +1 -1
  340. package/lib-es/generated/deviceTransactionConfig.d.ts +2 -0
  341. package/lib-es/generated/deviceTransactionConfig.d.ts.map +1 -1
  342. package/lib-es/generated/deviceTransactionConfig.js +2 -0
  343. package/lib-es/generated/deviceTransactionConfig.js.map +1 -1
  344. package/lib-es/generated/hw-getAddress.d.ts +1 -0
  345. package/lib-es/generated/hw-getAddress.d.ts.map +1 -1
  346. package/lib-es/generated/hw-getAddress.js +2 -0
  347. package/lib-es/generated/hw-getAddress.js.map +1 -1
  348. package/lib-es/generated/platformAdapter.d.ts +1 -1
  349. package/lib-es/generated/specs.d.ts +1 -1
  350. package/lib-es/generated/transaction.d.ts +11 -3
  351. package/lib-es/generated/transaction.d.ts.map +1 -1
  352. package/lib-es/generated/transaction.js +2 -0
  353. package/lib-es/generated/transaction.js.map +1 -1
  354. package/lib-es/generated/types.d.ts +5 -4
  355. package/lib-es/generated/types.d.ts.map +1 -1
  356. package/lib-es/generated/walletApiAdapter.d.ts +1 -1
  357. package/lib-es/hw/actions/app.d.ts.map +1 -1
  358. package/lib-es/hw/actions/app.js +11 -8
  359. package/lib-es/hw/actions/app.js.map +1 -1
  360. package/lib-es/hw/getDeviceNameMaxLength.d.ts.map +1 -1
  361. package/lib-es/hw/getDeviceNameMaxLength.js +2 -0
  362. package/lib-es/hw/getDeviceNameMaxLength.js.map +1 -1
  363. package/lib-es/hw/getDeviceNameMaxLength.test.js +12 -0
  364. package/lib-es/hw/getDeviceNameMaxLength.test.js.map +1 -1
  365. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts +1 -0
  366. package/lib-es/modularDrawer/hooks/useAssetsData.d.ts.map +1 -1
  367. package/lib-es/modularDrawer/hooks/useAssetsData.js +3 -2
  368. package/lib-es/modularDrawer/hooks/useAssetsData.js.map +1 -1
  369. package/lib-es/modularDrawer/hooks/useSearch.d.ts +16 -0
  370. package/lib-es/modularDrawer/hooks/useSearch.d.ts.map +1 -0
  371. package/lib-es/modularDrawer/hooks/useSearch.js +20 -0
  372. package/lib-es/modularDrawer/hooks/useSearch.js.map +1 -0
  373. package/lib-es/notifications/ServiceStatusProvider/index.d.ts +16 -1
  374. package/lib-es/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
  375. package/lib-es/notifications/ServiceStatusProvider/index.js +31 -7
  376. package/lib-es/notifications/ServiceStatusProvider/index.js.map +1 -1
  377. package/lib-es/notifications/ServiceStatusProvider/index.test.d.ts +2 -0
  378. package/lib-es/notifications/ServiceStatusProvider/index.test.d.ts.map +1 -0
  379. package/lib-es/notifications/ServiceStatusProvider/index.test.js +86 -0
  380. package/lib-es/notifications/ServiceStatusProvider/index.test.js.map +1 -0
  381. package/lib-es/notifications/ServiceStatusProvider/ledger-components.d.ts +2 -0
  382. package/lib-es/notifications/ServiceStatusProvider/ledger-components.d.ts.map +1 -0
  383. package/lib-es/notifications/ServiceStatusProvider/ledger-components.js +13 -0
  384. package/lib-es/notifications/ServiceStatusProvider/ledger-components.js.map +1 -0
  385. package/lib-es/wallet-api/ACRE/server.d.ts +13 -6
  386. package/lib-es/wallet-api/ACRE/server.d.ts.map +1 -1
  387. package/lib-es/wallet-api/ACRE/server.js +140 -2
  388. package/lib-es/wallet-api/ACRE/server.js.map +1 -1
  389. package/lib-es/wallet-api/ACRE/server.test.d.ts +2 -0
  390. package/lib-es/wallet-api/ACRE/server.test.d.ts.map +1 -0
  391. package/lib-es/wallet-api/ACRE/server.test.js +388 -0
  392. package/lib-es/wallet-api/ACRE/server.test.js.map +1 -0
  393. package/package.json +52 -49
  394. package/src/__tests__/test-helpers/environment.ts +1 -0
  395. package/src/apps/inlineAppInstall.ts +1 -4
  396. package/src/apps/react.ts +1 -3
  397. package/src/apps/runner.ts +1 -8
  398. package/src/bridge/crypto-assets/index.test.ts +0 -47
  399. package/src/bridge/crypto-assets/index.ts +0 -5
  400. package/src/bridge/generic-alpaca/accountBridge.ts +8 -3
  401. package/src/bridge/generic-alpaca/alpaca/index.ts +13 -18
  402. package/src/bridge/generic-alpaca/alpaca/index.unit.test.ts +38 -10
  403. package/src/bridge/generic-alpaca/createTransaction.ts +9 -1
  404. package/src/bridge/generic-alpaca/currencyBridge.ts +8 -2
  405. package/src/bridge/generic-alpaca/getAccountShape.ts +4 -5
  406. package/src/bridge/generic-alpaca/signer/Eth.ts +70 -0
  407. package/src/bridge/generic-alpaca/signer/index.ts +5 -15
  408. package/src/bridge/generic-alpaca/signer/signTransaction.ts +4 -3
  409. package/src/bridge/generic-alpaca/signer/types.ts +14 -0
  410. package/src/bridge/generic-alpaca/utils.test.ts +29 -1
  411. package/src/bridge/generic-alpaca/utils.ts +15 -0
  412. package/src/config/sharedConfig.ts +4 -0
  413. package/src/e2e/enum/Account.ts +14 -0
  414. package/src/e2e/enum/AppInfos.ts +2 -0
  415. package/src/e2e/enum/Currency.ts +2 -0
  416. package/src/e2e/enum/Network.ts +1 -0
  417. package/src/e2e/families/kaspa.ts +17 -0
  418. package/src/e2e/speculos.ts +12 -0
  419. package/src/families/canton/bridge/mock-data.ts +175 -0
  420. package/src/families/canton/bridge/mock.ts +180 -0
  421. package/src/families/canton/config.ts +5 -3
  422. package/src/families/canton/setup.ts +8 -5
  423. package/src/families/evm/config.ts +2 -2
  424. package/src/families/kaspa/__snapshots__/bridge.integration.test.ts.snap +66 -0
  425. package/src/families/kaspa/bridge.integration.test.ts +5 -0
  426. package/src/families/kaspa/config.ts +12 -0
  427. package/src/families/kaspa/react.ts +19 -0
  428. package/src/families/kaspa/setup.ts +27 -0
  429. package/src/families/kaspa/types.ts +1 -0
  430. package/src/featureFlags/defaultFeatures.ts +0 -2
  431. package/src/generated/bridge/js.ts +2 -0
  432. package/src/generated/bridge/mock.ts +2 -0
  433. package/src/generated/cli-transaction.ts +2 -0
  434. package/src/generated/deviceTransactionConfig.ts +2 -0
  435. package/src/generated/hw-getAddress.ts +2 -0
  436. package/src/generated/transaction.ts +2 -0
  437. package/src/generated/types.ts +10 -0
  438. package/src/hw/actions/app.ts +12 -10
  439. package/src/hw/getDeviceNameMaxLength.test.ts +16 -0
  440. package/src/hw/getDeviceNameMaxLength.ts +2 -0
  441. package/src/modularDrawer/hooks/useAssetsData.ts +3 -2
  442. package/src/modularDrawer/hooks/useSearch.ts +52 -0
  443. package/src/notifications/ServiceStatusProvider/index.test.ts +102 -0
  444. package/src/notifications/ServiceStatusProvider/index.tsx +37 -12
  445. package/src/notifications/ServiceStatusProvider/ledger-components.ts +12 -0
  446. package/src/wallet-api/ACRE/server.test.ts +470 -0
  447. package/src/wallet-api/ACRE/server.ts +202 -14
  448. package/lib/bridge/crypto-assets/cal-integration.d.ts +0 -4
  449. package/lib/bridge/crypto-assets/cal-integration.d.ts.map +0 -1
  450. package/lib/bridge/crypto-assets/cal-integration.js +0 -26
  451. package/lib/bridge/crypto-assets/cal-integration.js.map +0 -1
  452. package/lib/bridge/crypto-assets/cal-integration.test.d.ts +0 -2
  453. package/lib/bridge/crypto-assets/cal-integration.test.d.ts.map +0 -1
  454. package/lib/bridge/crypto-assets/cal-integration.test.js +0 -45
  455. package/lib/bridge/crypto-assets/cal-integration.test.js.map +0 -1
  456. package/lib/bridge/crypto-assets/cal-store.d.ts +0 -14
  457. package/lib/bridge/crypto-assets/cal-store.d.ts.map +0 -1
  458. package/lib/bridge/crypto-assets/cal-store.js +0 -58
  459. package/lib/bridge/crypto-assets/cal-store.js.map +0 -1
  460. package/lib/bridge/crypto-assets/cal-store.test.d.ts +0 -2
  461. package/lib/bridge/crypto-assets/cal-store.test.d.ts.map +0 -1
  462. package/lib/bridge/crypto-assets/cal-store.test.js +0 -70
  463. package/lib/bridge/crypto-assets/cal-store.test.js.map +0 -1
  464. package/lib-es/bridge/crypto-assets/cal-integration.d.ts +0 -4
  465. package/lib-es/bridge/crypto-assets/cal-integration.d.ts.map +0 -1
  466. package/lib-es/bridge/crypto-assets/cal-integration.js +0 -21
  467. package/lib-es/bridge/crypto-assets/cal-integration.js.map +0 -1
  468. package/lib-es/bridge/crypto-assets/cal-integration.test.d.ts +0 -2
  469. package/lib-es/bridge/crypto-assets/cal-integration.test.d.ts.map +0 -1
  470. package/lib-es/bridge/crypto-assets/cal-integration.test.js +0 -43
  471. package/lib-es/bridge/crypto-assets/cal-integration.test.js.map +0 -1
  472. package/lib-es/bridge/crypto-assets/cal-store.d.ts +0 -14
  473. package/lib-es/bridge/crypto-assets/cal-store.d.ts.map +0 -1
  474. package/lib-es/bridge/crypto-assets/cal-store.js +0 -54
  475. package/lib-es/bridge/crypto-assets/cal-store.js.map +0 -1
  476. package/lib-es/bridge/crypto-assets/cal-store.test.d.ts +0 -2
  477. package/lib-es/bridge/crypto-assets/cal-store.test.d.ts.map +0 -1
  478. package/lib-es/bridge/crypto-assets/cal-store.test.js +0 -68
  479. package/lib-es/bridge/crypto-assets/cal-store.test.js.map +0 -1
  480. package/src/bridge/crypto-assets/cal-integration.test.ts +0 -53
  481. package/src/bridge/crypto-assets/cal-integration.ts +0 -23
  482. package/src/bridge/crypto-assets/cal-store.test.ts +0 -93
  483. package/src/bridge/crypto-assets/cal-store.ts +0 -63
@@ -14,6 +14,7 @@ export const cantonConfig: Record<string, ConfigInfo> = {
14
14
  gatewayUrl: "https://canton-gateway.api.live.ledger.com",
15
15
  minReserve: 0,
16
16
  useGateway: true,
17
+ networkType: "mainnet",
17
18
  },
18
19
  },
19
20
  config_currency_canton_network_devnet: {
@@ -23,12 +24,12 @@ export const cantonConfig: Record<string, ConfigInfo> = {
23
24
  type: "active",
24
25
  },
25
26
  nodeUrl: "https://wallet-validator-devnet-canton.ledger-test.com",
26
- nodeId: "ledger-live-devnet-prd",
27
+ nodeId: "ledger-devnet-stg",
27
28
  gatewayUrl: "https://canton-gateway.api.live.ledger-test.com",
28
29
  minReserve: 0,
29
30
  useGateway: true,
30
- nativeInstrumentId:
31
- "6e9fc50fb94e56751b49f09ba2dc84da53a9d7cff08115ebb4f6b7a12d0c990c:Splice.Amulet:Amulet",
31
+ networkType: "devnet",
32
+ nativeInstrumentId: "Amulet",
32
33
  },
33
34
  },
34
35
  config_currency_canton_network_localnet: {
@@ -42,6 +43,7 @@ export const cantonConfig: Record<string, ConfigInfo> = {
42
43
  gatewayUrl: undefined,
43
44
  minReserve: 0,
44
45
  useGateway: false,
46
+ networkType: "localnet",
45
47
  },
46
48
  },
47
49
  };
@@ -1,6 +1,7 @@
1
1
  // Goal of this file is to inject all necessary device/signer dependency to coin-modules
2
2
 
3
3
  import { createBridges } from "@ledgerhq/coin-canton/bridge/index";
4
+ import { getEnv } from "@ledgerhq/live-env";
4
5
  import Transport from "@ledgerhq/hw-transport";
5
6
  import { CantonSigner } from "@ledgerhq/coin-canton";
6
7
  import cantonResolver from "@ledgerhq/coin-canton/signer";
@@ -10,6 +11,7 @@ import { CantonCoinConfig } from "@ledgerhq/coin-canton/config";
10
11
  import { TransactionStatus, Transaction } from "@ledgerhq/coin-canton/types";
11
12
  import { LegacySignerCanton } from "@ledgerhq/live-signer-canton";
12
13
  import { CreateSigner, createResolver, executeWithSigner } from "../../bridge/setup";
14
+ import cantonBridgeMock from "./bridge/mock";
13
15
  import { Resolver } from "../../hw/getAddress/types";
14
16
  import { getCurrencyConfiguration } from "../../config";
15
17
  import { getCryptoCurrencyById } from "../../currencies";
@@ -19,13 +21,14 @@ const createSigner: CreateSigner<CantonSigner> = (transport: Transport) => {
19
21
  };
20
22
 
21
23
  const getCurrencyConfig = () => {
22
- return getCurrencyConfiguration<CantonCoinConfig>(getCryptoCurrencyById("canton_network"));
24
+ // Use devnet for development/testing
25
+ const currencyId = getEnv("MOCK") ? "canton_network_devnet" : "canton_network_devnet";
26
+ return getCurrencyConfiguration<CantonCoinConfig>(getCryptoCurrencyById(currencyId));
23
27
  };
24
28
 
25
- const bridge: Bridge<Transaction, Account, TransactionStatus> = createBridges(
26
- executeWithSigner(createSigner),
27
- getCurrencyConfig,
28
- );
29
+ const bridge: Bridge<Transaction, Account, TransactionStatus> = getEnv("MOCK")
30
+ ? cantonBridgeMock
31
+ : createBridges(executeWithSigner(createSigner), getCurrencyConfig);
29
32
 
30
33
  const resolver: Resolver = createResolver(createSigner, cantonResolver);
31
34
 
@@ -674,8 +674,8 @@ const evmConfig: CurrencyLiveConfigDefinition = {
674
674
  uri: "https://zkevm-rpc.com",
675
675
  },
676
676
  explorer: {
677
- type: "blockscout",
678
- uri: "https://explorer-ui.cardona.zkevm-rpc.com/api",
677
+ type: "etherscan",
678
+ uri: "https://proxyetherscan.api.live.ledger.com/v2/api/1101",
679
679
  },
680
680
  showNfts: false,
681
681
  },
@@ -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";
@@ -103,12 +103,10 @@ export const CURRENCY_DEFAULT_FEATURES = {
103
103
  */
104
104
  export const DEFAULT_FEATURES: Features = {
105
105
  ...CURRENCY_DEFAULT_FEATURES,
106
- brazeLearn: DEFAULT_FEATURE,
107
106
  portfolioExchangeBanner: DEFAULT_FEATURE,
108
107
  postOnboardingAssetsTransfer: DEFAULT_FEATURE,
109
108
  counterValue: DEFAULT_FEATURE,
110
109
  mockFeature: DEFAULT_FEATURE,
111
- calLedgerService: DEFAULT_FEATURE,
112
110
  ptxServiceCtaExchangeDrawer: DEFAULT_FEATURE,
113
111
  ptxServiceCtaScreens: DEFAULT_FEATURE,
114
112
  ptxSwapReceiveTRC20WithoutTrx: DEFAULT_FEATURE,
@@ -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,
@@ -1,5 +1,6 @@
1
1
  import algorand from "../../families/algorand/bridge/mock";
2
2
  import bitcoin from "../../families/bitcoin/bridge/mock";
3
+ import canton from "../../families/canton/bridge/mock";
3
4
  import cardano from "../../families/cardano/bridge/mock";
4
5
  import casper from "../../families/casper/bridge/mock";
5
6
  import cosmos from "../../families/cosmos/bridge/mock";
@@ -16,6 +17,7 @@ import xrp from "../../families/xrp/bridge/mock";
16
17
  export default {
17
18
  algorand,
18
19
  bitcoin,
20
+ canton,
19
21
  cardano,
20
22
  casper,
21
23
  cosmos,
@@ -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,18 +540,20 @@ export const createAction = (
540
540
  displayUpgradeWarning: false,
541
541
  }));
542
542
  }, []);
543
-
543
+ // TODO remove after fix
544
+ const isCanton = appRequest.account?.currency.id.includes("canton");
545
+ const wrongDevice =
546
+ state.derivation && appRequest.account
547
+ ? state.derivation.address !== appRequest.account.freshAddress &&
548
+ state.derivation.address !== appRequest.account.seedIdentifier // Use-case added for Hedera
549
+ ? {
550
+ accountName: getDefaultAccountName(appRequest.account),
551
+ }
552
+ : null
553
+ : null;
544
554
  return {
545
555
  ...state,
546
- inWrongDeviceForAccount:
547
- state.derivation && appRequest.account
548
- ? state.derivation.address !== appRequest.account.freshAddress &&
549
- state.derivation.address !== appRequest.account.seedIdentifier // Use-case added for Hedera
550
- ? {
551
- accountName: getDefaultAccountName(appRequest.account),
552
- }
553
- : null
554
- : null,
556
+ inWrongDeviceForAccount: isCanton ? null : wrongDevice,
555
557
  onRetry,
556
558
  passWarning,
557
559
  };
@@ -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
  }
@@ -32,7 +32,7 @@ export function useAssetsData({
32
32
  product: "llm" | "lld";
33
33
  version: string;
34
34
  }) {
35
- const { data, isLoading, error, fetchNextPage, isSuccess, refetch } =
35
+ const { data, isLoading, error, fetchNextPage, isSuccess, refetch, isFetching, isError } =
36
36
  useGetAssetsDataInfiniteQuery({
37
37
  search,
38
38
  useCase,
@@ -64,10 +64,11 @@ export function useAssetsData({
64
64
 
65
65
  return {
66
66
  data: joinedPages,
67
- isLoading,
67
+ isLoading: isLoading || isFetching,
68
68
  error,
69
69
  loadNext: hasMore ? fetchNextPage : undefined,
70
70
  isSuccess,
71
+ isError,
71
72
  refetch,
72
73
  };
73
74
  }
@@ -0,0 +1,52 @@
1
+ import { ChangeEvent, useCallback, useState } from "react";
2
+
3
+ export type UseSearchParams = {
4
+ /** Initial value to display in the search input */
5
+ initialValue?: string;
6
+ /** Persist the search value to the host app state (e.g., Redux) */
7
+ onPersistSearchValue?: (value: string) => void;
8
+ /** Track analytics when the debounced value changes and should be emitted */
9
+ onTrackSearch?: (query: string) => void;
10
+ };
11
+
12
+ export type UseSearchResult = {
13
+ handleSearch: (queryOrEvent: string | ChangeEvent<HTMLInputElement>) => void;
14
+ handleDebouncedChange: (current: string, previous: string) => void;
15
+ displayedValue: string | undefined;
16
+ };
17
+
18
+ const normalize = (value: string) => value.trim();
19
+
20
+ export function useSearchCommon({
21
+ initialValue,
22
+ onPersistSearchValue,
23
+ onTrackSearch,
24
+ }: UseSearchParams): UseSearchResult {
25
+ const [displayedValue, setDisplayedValue] = useState<string | undefined>(initialValue);
26
+
27
+ const handleSearch = useCallback((queryOrEvent: string | ChangeEvent<HTMLInputElement>) => {
28
+ const nextValue = typeof queryOrEvent === "string" ? queryOrEvent : queryOrEvent.target.value;
29
+ setDisplayedValue(nextValue);
30
+ }, []);
31
+
32
+ const shouldEmitEvent = useCallback(
33
+ (currentQuery: string, previousQuery: string) =>
34
+ currentQuery !== "" && currentQuery !== previousQuery,
35
+ [],
36
+ );
37
+ const handleDebouncedChange = useCallback(
38
+ (current: string, previous: string) => {
39
+ const currentQuery = normalize(current);
40
+ const previousQuery = normalize(previous);
41
+
42
+ onPersistSearchValue?.(currentQuery);
43
+
44
+ if (!shouldEmitEvent(currentQuery, previousQuery)) return;
45
+
46
+ onTrackSearch?.(currentQuery);
47
+ },
48
+ [onPersistSearchValue, onTrackSearch, shouldEmitEvent],
49
+ );
50
+
51
+ return { handleSearch, handleDebouncedChange, displayedValue };
52
+ }
@@ -0,0 +1,102 @@
1
+ import { filterServiceStatusIncidents } from "./index";
2
+ import { LEDGER_COMPONENTS } from "./ledger-components";
3
+ import type { Incident } from "./types";
4
+
5
+ const makeIncident = (overrides: Partial<Incident> = {}): Incident => ({
6
+ created_at: "2025-01-01T00:00:00Z",
7
+ id: Math.random().toString(16).slice(2),
8
+ impact: "minor",
9
+ incident_updates: [],
10
+ monitoring_at: null,
11
+ name: "Test incident",
12
+ page_id: null,
13
+ resolved_at: null,
14
+ shortlink: null,
15
+ status: "investigating",
16
+ updated_at: null,
17
+ ...overrides,
18
+ });
19
+
20
+ describe("filterServiceStatusIncidents", () => {
21
+ it("returns empty when no tickers or no incidents", () => {
22
+ expect(filterServiceStatusIncidents([], ["BTC"]).length).toBe(0);
23
+ expect(filterServiceStatusIncidents([makeIncident()], []).length).toBe(0);
24
+ });
25
+
26
+ it("matches incidents with known Ledger components (case-insensitive)", () => {
27
+ const incidents: Incident[] = [
28
+ makeIncident({ components: [{ id: "1", name: "Ledger Application Store" }] }),
29
+ makeIncident({ components: [{ id: "2", name: "ledger appliCAtion store" }] }),
30
+ makeIncident({ components: [{ id: "3", name: "Unknown Component" }] }),
31
+ ];
32
+
33
+ const result = filterServiceStatusIncidents(incidents, ["BTC"]);
34
+ expect(result.map(i => i.components?.[0].id)).toEqual(["1", "2"]);
35
+ });
36
+
37
+ it("matches incidents if a component contains a tracked ticker as a whole word (case-insensitive)", () => {
38
+ const incidents: Incident[] = [
39
+ makeIncident({ components: [{ id: "1", name: "BTC Node" }] }),
40
+ makeIncident({ components: [{ id: "2", name: "eth Node" }] }),
41
+ makeIncident({ components: [{ id: "3", name: "TETHER Service" }] }),
42
+ makeIncident({ components: [{ id: "4", name: "NOTBTCService" }] }),
43
+ ];
44
+
45
+ const result = filterServiceStatusIncidents(incidents, ["BTC", "ETH"]);
46
+ expect(result.map(i => i.components?.[0].id)).toEqual(["1", "2"]);
47
+ });
48
+
49
+ it("includes incidents with no components array or empty array", () => {
50
+ const incidents: Incident[] = [
51
+ makeIncident({ components: undefined }),
52
+ makeIncident({ components: [] }),
53
+ ];
54
+
55
+ const result = filterServiceStatusIncidents(incidents, ["BTC"]);
56
+ expect(result.length).toBe(2);
57
+ });
58
+
59
+ it("escapes tickers so special regex characters do not break matching", () => {
60
+ const incidents: Incident[] = [
61
+ makeIncident({ components: [{ id: "1", name: "USDT Node" }] }),
62
+ makeIncident({ components: [{ id: "2", name: "US.DT Node" }] }),
63
+ makeIncident({ components: [{ id: "3", name: "(USDT) Node" }] }),
64
+ makeIncident({ components: [{ id: "4", name: "Ethereum Node" }] }),
65
+ makeIncident({ components: [{ id: "5", name: "Ethereum (ETH) swap issue" }] }),
66
+ ];
67
+
68
+ const result = filterServiceStatusIncidents(incidents, ["USDT", "ETH"]);
69
+ expect(result.map(i => i.components?.[0].id)).toEqual(["1", "3", "5"]);
70
+ expect(result.length).toBe(3);
71
+ });
72
+
73
+ it("matches incidents for all known Ledger components", () => {
74
+ const incidents: Incident[] = LEDGER_COMPONENTS.map((name, index) =>
75
+ makeIncident({ components: [{ id: `${index + 1}`, name }] }),
76
+ );
77
+
78
+ const result = filterServiceStatusIncidents(incidents, ["BTC"]);
79
+ expect(result.length).toBe(LEDGER_COMPONENTS.length);
80
+ });
81
+
82
+ it("filters correctly with common tickers", () => {
83
+ const tickers = ["XRP", "SOL", "ETH", "BTC", "ADA", "USDC", "USDT"];
84
+ const incidents: Incident[] = [
85
+ makeIncident({ components: [{ id: "1", name: "BTC Node" }] }),
86
+ makeIncident({ components: [{ id: "2", name: "eth Node" }] }),
87
+ makeIncident({ components: [{ id: "3", name: "ADA-Service" }] }),
88
+ makeIncident({ components: [{ id: "4", name: "usdc gateway" }] }),
89
+ makeIncident({ components: [{ id: "5", name: "NOTUSDTService" }] }),
90
+ makeIncident({ components: [{ id: "6", name: "USDT" }] }),
91
+ makeIncident({ components: [{ id: "7", name: "xrp relayer" }] }),
92
+ makeIncident({ components: [{ id: "8", name: "SOL Node" }] }),
93
+ makeIncident({ components: [{ id: "9", name: "SOLANA Node" }] }),
94
+ makeIncident({ components: [{ id: "10", name: "Random Service" }] }),
95
+ makeIncident({ components: [] }),
96
+ ];
97
+
98
+ const result = filterServiceStatusIncidents(incidents, tickers);
99
+ expect(result.map(i => i.components?.[0]?.id)).toEqual(["1", "2", "3", "4", "6", "7", "8"]);
100
+ expect(result.length).toBe(8);
101
+ });
102
+ });