@ledgerhq/live-common 34.35.1 → 34.35.2-nightly.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/lib/apps/support.d.ts +1 -0
  2. package/lib/apps/support.d.ts.map +1 -1
  3. package/lib/apps/support.js +10 -1
  4. package/lib/apps/support.js.map +1 -1
  5. package/lib/e2e/enum/Account.d.ts +64 -58
  6. package/lib/e2e/enum/Account.d.ts.map +1 -1
  7. package/lib/e2e/enum/Account.js +80 -59
  8. package/lib/e2e/enum/Account.js.map +1 -1
  9. package/lib/e2e/enum/Device.d.ts +8 -0
  10. package/lib/e2e/enum/Device.d.ts.map +1 -0
  11. package/lib/e2e/enum/Device.js +14 -0
  12. package/lib/e2e/enum/Device.js.map +1 -0
  13. package/lib/e2e/enum/Swap.d.ts +2 -1
  14. package/lib/e2e/enum/Swap.d.ts.map +1 -1
  15. package/lib/e2e/enum/Swap.js +12 -10
  16. package/lib/e2e/enum/Swap.js.map +1 -1
  17. package/lib/e2e/families/cardano.d.ts.map +1 -1
  18. package/lib/e2e/families/cardano.js +55 -26
  19. package/lib/e2e/families/cardano.js.map +1 -1
  20. package/lib/e2e/families/evm.d.ts.map +1 -1
  21. package/lib/e2e/families/evm.js +2 -1
  22. package/lib/e2e/families/evm.js.map +1 -1
  23. package/lib/e2e/families/solana.d.ts.map +1 -1
  24. package/lib/e2e/families/solana.js +5 -2
  25. package/lib/e2e/families/solana.js.map +1 -1
  26. package/lib/e2e/index.d.ts +2 -0
  27. package/lib/e2e/index.d.ts.map +1 -1
  28. package/lib/e2e/models/BuySell.d.ts +11 -0
  29. package/lib/e2e/models/BuySell.d.ts.map +1 -0
  30. package/lib/{index.js → e2e/models/BuySell.js} +1 -1
  31. package/lib/e2e/models/BuySell.js.map +1 -0
  32. package/lib/e2e/models/Transaction.d.ts +5 -5
  33. package/lib/e2e/models/Transaction.d.ts.map +1 -1
  34. package/lib/e2e/models/Transaction.js.map +1 -1
  35. package/lib/e2e/speculos.d.ts +6 -1
  36. package/lib/e2e/speculos.d.ts.map +1 -1
  37. package/lib/e2e/speculos.js +72 -40
  38. package/lib/e2e/speculos.js.map +1 -1
  39. package/lib/e2e/speculosCI.d.ts +5 -0
  40. package/lib/e2e/speculosCI.d.ts.map +1 -0
  41. package/lib/e2e/speculosCI.js +129 -0
  42. package/lib/e2e/speculosCI.js.map +1 -0
  43. package/lib/families/hedera/logic.d.ts +2 -0
  44. package/lib/families/hedera/logic.d.ts.map +1 -0
  45. package/lib/families/hedera/logic.js +19 -0
  46. package/lib/families/hedera/logic.js.map +1 -0
  47. package/lib/featureFlags/defaultFeatures.d.ts.map +1 -1
  48. package/lib/featureFlags/defaultFeatures.js +1 -0
  49. package/lib/featureFlags/defaultFeatures.js.map +1 -1
  50. package/lib/featureFlags/useFeature.d.ts +1 -1
  51. package/lib/featureFlags/useFeature.d.ts.map +1 -1
  52. package/lib/hw/actions/manager.d.ts +1 -1
  53. package/lib/hw/actions/manager.d.ts.map +1 -1
  54. package/lib/hw/connectApp.d.ts.map +1 -1
  55. package/lib/hw/connectApp.js +56 -5
  56. package/lib/hw/connectApp.js.map +1 -1
  57. package/lib/hw/connectAppEventMapper.d.ts +29 -0
  58. package/lib/hw/connectAppEventMapper.d.ts.map +1 -0
  59. package/lib/hw/connectAppEventMapper.js +300 -0
  60. package/lib/hw/connectAppEventMapper.js.map +1 -0
  61. package/lib/hw/connectManager.d.ts +3 -2
  62. package/lib/hw/connectManager.d.ts.map +1 -1
  63. package/lib/hw/connectManager.js +34 -3
  64. package/lib/hw/connectManager.js.map +1 -1
  65. package/lib/hw/connectManagerEventMapper.d.ts +16 -0
  66. package/lib/hw/connectManagerEventMapper.d.ts.map +1 -0
  67. package/lib/hw/connectManagerEventMapper.js +78 -0
  68. package/lib/hw/connectManagerEventMapper.js.map +1 -0
  69. package/lib/market/hooks/useLargeMoverChartData.d.ts +18 -0
  70. package/lib/market/hooks/useLargeMoverChartData.d.ts.map +1 -0
  71. package/lib/market/hooks/useLargeMoverChartData.js +28 -0
  72. package/lib/market/hooks/useLargeMoverChartData.js.map +1 -0
  73. package/lib/market/hooks/useLargeMoverCurrencies.d.ts +13 -0
  74. package/lib/market/hooks/useLargeMoverCurrencies.d.ts.map +1 -0
  75. package/lib/market/hooks/useLargeMoverCurrencies.js +29 -0
  76. package/lib/market/hooks/useLargeMoverCurrencies.js.map +1 -0
  77. package/lib/notifications/AnnouncementProvider/index.d.ts.map +1 -1
  78. package/lib/notifications/AnnouncementProvider/index.js +12 -10
  79. package/lib/notifications/AnnouncementProvider/index.js.map +1 -1
  80. package/lib/notifications/AnnouncementProvider/machine.d.ts +1 -4
  81. package/lib/notifications/AnnouncementProvider/machine.d.ts.map +1 -1
  82. package/lib/notifications/AnnouncementProvider/machine.js +9 -8
  83. package/lib/notifications/AnnouncementProvider/machine.js.map +1 -1
  84. package/lib/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
  85. package/lib/notifications/ServiceStatusProvider/index.js +5 -4
  86. package/lib/notifications/ServiceStatusProvider/index.js.map +1 -1
  87. package/lib/notifications/ServiceStatusProvider/machine.d.ts +1 -4
  88. package/lib/notifications/ServiceStatusProvider/machine.d.ts.map +1 -1
  89. package/lib/notifications/ServiceStatusProvider/machine.js +4 -4
  90. package/lib/notifications/ServiceStatusProvider/machine.js.map +1 -1
  91. package/lib/wallet-api/ModularDrawer/types.d.ts +63 -0
  92. package/lib/wallet-api/ModularDrawer/types.d.ts.map +1 -0
  93. package/lib/wallet-api/ModularDrawer/types.js +25 -0
  94. package/lib/wallet-api/ModularDrawer/types.js.map +1 -0
  95. package/lib/wallet-api/ModularDrawer/utils.d.ts +5 -0
  96. package/lib/wallet-api/ModularDrawer/utils.d.ts.map +1 -0
  97. package/lib/wallet-api/ModularDrawer/utils.js +30 -0
  98. package/lib/wallet-api/ModularDrawer/utils.js.map +1 -0
  99. package/lib/wallet-api/react.d.ts +2 -0
  100. package/lib/wallet-api/react.d.ts.map +1 -1
  101. package/lib/wallet-api/react.js +2 -1
  102. package/lib/wallet-api/react.js.map +1 -1
  103. package/lib-es/apps/support.d.ts +1 -0
  104. package/lib-es/apps/support.d.ts.map +1 -1
  105. package/lib-es/apps/support.js +8 -0
  106. package/lib-es/apps/support.js.map +1 -1
  107. package/lib-es/e2e/enum/Account.d.ts +64 -58
  108. package/lib-es/e2e/enum/Account.d.ts.map +1 -1
  109. package/lib-es/e2e/enum/Account.js +76 -58
  110. package/lib-es/e2e/enum/Account.js.map +1 -1
  111. package/lib-es/e2e/enum/Device.d.ts +8 -0
  112. package/lib-es/e2e/enum/Device.d.ts.map +1 -0
  113. package/lib-es/e2e/enum/Device.js +10 -0
  114. package/lib-es/e2e/enum/Device.js.map +1 -0
  115. package/lib-es/e2e/enum/Swap.d.ts +2 -1
  116. package/lib-es/e2e/enum/Swap.d.ts.map +1 -1
  117. package/lib-es/e2e/enum/Swap.js +12 -10
  118. package/lib-es/e2e/enum/Swap.js.map +1 -1
  119. package/lib-es/e2e/families/cardano.d.ts.map +1 -1
  120. package/lib-es/e2e/families/cardano.js +56 -27
  121. package/lib-es/e2e/families/cardano.js.map +1 -1
  122. package/lib-es/e2e/families/evm.d.ts.map +1 -1
  123. package/lib-es/e2e/families/evm.js +2 -1
  124. package/lib-es/e2e/families/evm.js.map +1 -1
  125. package/lib-es/e2e/families/solana.d.ts.map +1 -1
  126. package/lib-es/e2e/families/solana.js +5 -2
  127. package/lib-es/e2e/families/solana.js.map +1 -1
  128. package/lib-es/e2e/index.d.ts +2 -0
  129. package/lib-es/e2e/index.d.ts.map +1 -1
  130. package/lib-es/e2e/models/BuySell.d.ts +11 -0
  131. package/lib-es/e2e/models/BuySell.d.ts.map +1 -0
  132. package/lib-es/e2e/models/BuySell.js +2 -0
  133. package/lib-es/e2e/models/BuySell.js.map +1 -0
  134. package/lib-es/e2e/models/Transaction.d.ts +5 -5
  135. package/lib-es/e2e/models/Transaction.d.ts.map +1 -1
  136. package/lib-es/e2e/models/Transaction.js.map +1 -1
  137. package/lib-es/e2e/speculos.d.ts +6 -1
  138. package/lib-es/e2e/speculos.d.ts.map +1 -1
  139. package/lib-es/e2e/speculos.js +69 -39
  140. package/lib-es/e2e/speculos.js.map +1 -1
  141. package/lib-es/e2e/speculosCI.d.ts +5 -0
  142. package/lib-es/e2e/speculosCI.d.ts.map +1 -0
  143. package/lib-es/e2e/speculosCI.js +121 -0
  144. package/lib-es/e2e/speculosCI.js.map +1 -0
  145. package/lib-es/families/hedera/logic.d.ts +2 -0
  146. package/lib-es/families/hedera/logic.d.ts.map +1 -0
  147. package/lib-es/families/hedera/logic.js +3 -0
  148. package/lib-es/families/hedera/logic.js.map +1 -0
  149. package/lib-es/featureFlags/defaultFeatures.d.ts.map +1 -1
  150. package/lib-es/featureFlags/defaultFeatures.js +1 -0
  151. package/lib-es/featureFlags/defaultFeatures.js.map +1 -1
  152. package/lib-es/featureFlags/useFeature.d.ts +1 -1
  153. package/lib-es/featureFlags/useFeature.d.ts.map +1 -1
  154. package/lib-es/hw/actions/manager.d.ts +1 -1
  155. package/lib-es/hw/actions/manager.d.ts.map +1 -1
  156. package/lib-es/hw/connectApp.d.ts.map +1 -1
  157. package/lib-es/hw/connectApp.js +57 -6
  158. package/lib-es/hw/connectApp.js.map +1 -1
  159. package/lib-es/hw/connectAppEventMapper.d.ts +29 -0
  160. package/lib-es/hw/connectAppEventMapper.d.ts.map +1 -0
  161. package/lib-es/hw/connectAppEventMapper.js +296 -0
  162. package/lib-es/hw/connectAppEventMapper.js.map +1 -0
  163. package/lib-es/hw/connectManager.d.ts +3 -2
  164. package/lib-es/hw/connectManager.d.ts.map +1 -1
  165. package/lib-es/hw/connectManager.js +34 -4
  166. package/lib-es/hw/connectManager.js.map +1 -1
  167. package/lib-es/hw/connectManagerEventMapper.d.ts +16 -0
  168. package/lib-es/hw/connectManagerEventMapper.d.ts.map +1 -0
  169. package/lib-es/hw/connectManagerEventMapper.js +74 -0
  170. package/lib-es/hw/connectManagerEventMapper.js.map +1 -0
  171. package/lib-es/market/hooks/useLargeMoverChartData.d.ts +18 -0
  172. package/lib-es/market/hooks/useLargeMoverChartData.d.ts.map +1 -0
  173. package/lib-es/market/hooks/useLargeMoverChartData.js +24 -0
  174. package/lib-es/market/hooks/useLargeMoverChartData.js.map +1 -0
  175. package/lib-es/market/hooks/useLargeMoverCurrencies.d.ts +13 -0
  176. package/lib-es/market/hooks/useLargeMoverCurrencies.d.ts.map +1 -0
  177. package/lib-es/market/hooks/useLargeMoverCurrencies.js +25 -0
  178. package/lib-es/market/hooks/useLargeMoverCurrencies.js.map +1 -0
  179. package/lib-es/notifications/AnnouncementProvider/index.d.ts.map +1 -1
  180. package/lib-es/notifications/AnnouncementProvider/index.js +12 -10
  181. package/lib-es/notifications/AnnouncementProvider/index.js.map +1 -1
  182. package/lib-es/notifications/AnnouncementProvider/machine.d.ts +1 -4
  183. package/lib-es/notifications/AnnouncementProvider/machine.d.ts.map +1 -1
  184. package/lib-es/notifications/AnnouncementProvider/machine.js +9 -8
  185. package/lib-es/notifications/AnnouncementProvider/machine.js.map +1 -1
  186. package/lib-es/notifications/ServiceStatusProvider/index.d.ts.map +1 -1
  187. package/lib-es/notifications/ServiceStatusProvider/index.js +5 -4
  188. package/lib-es/notifications/ServiceStatusProvider/index.js.map +1 -1
  189. package/lib-es/notifications/ServiceStatusProvider/machine.d.ts +1 -4
  190. package/lib-es/notifications/ServiceStatusProvider/machine.d.ts.map +1 -1
  191. package/lib-es/notifications/ServiceStatusProvider/machine.js +4 -4
  192. package/lib-es/notifications/ServiceStatusProvider/machine.js.map +1 -1
  193. package/lib-es/wallet-api/ModularDrawer/types.d.ts +63 -0
  194. package/lib-es/wallet-api/ModularDrawer/types.d.ts.map +1 -0
  195. package/lib-es/wallet-api/ModularDrawer/types.js +22 -0
  196. package/lib-es/wallet-api/ModularDrawer/types.js.map +1 -0
  197. package/lib-es/wallet-api/ModularDrawer/utils.d.ts +5 -0
  198. package/lib-es/wallet-api/ModularDrawer/utils.d.ts.map +1 -0
  199. package/lib-es/wallet-api/ModularDrawer/utils.js +25 -0
  200. package/lib-es/wallet-api/ModularDrawer/utils.js.map +1 -0
  201. package/lib-es/wallet-api/react.d.ts +2 -0
  202. package/lib-es/wallet-api/react.d.ts.map +1 -1
  203. package/lib-es/wallet-api/react.js +2 -1
  204. package/lib-es/wallet-api/react.js.map +1 -1
  205. package/package.json +50 -49
  206. package/src/apps/support.ts +11 -0
  207. package/src/e2e/enum/Account.ts +363 -362
  208. package/src/e2e/enum/Device.ts +7 -0
  209. package/src/e2e/enum/Swap.ts +10 -9
  210. package/src/e2e/families/cardano.ts +63 -28
  211. package/src/e2e/families/evm.ts +2 -1
  212. package/src/e2e/families/solana.ts +5 -2
  213. package/src/e2e/models/BuySell.ts +12 -0
  214. package/src/e2e/models/Transaction.ts +5 -5
  215. package/src/e2e/speculos.ts +75 -41
  216. package/src/e2e/speculosCI.ts +161 -0
  217. package/src/families/hedera/logic.ts +2 -0
  218. package/src/featureFlags/defaultFeatures.ts +1 -0
  219. package/src/hw/actions/manager.ts +1 -1
  220. package/src/hw/connectApp.ts +245 -178
  221. package/src/hw/connectAppEventMapper.ts +364 -0
  222. package/src/hw/connectManager.ts +116 -74
  223. package/src/hw/connectManagerEventMapper.ts +109 -0
  224. package/src/market/hooks/useLargeMoverChartData.ts +38 -0
  225. package/src/market/hooks/useLargeMoverCurrencies.ts +36 -0
  226. package/src/notifications/AnnouncementProvider/index.tsx +21 -17
  227. package/src/notifications/AnnouncementProvider/machine.ts +9 -8
  228. package/src/notifications/ServiceStatusProvider/index.tsx +11 -8
  229. package/src/notifications/ServiceStatusProvider/machine.ts +4 -4
  230. package/src/wallet-api/ModularDrawer/types.ts +45 -0
  231. package/src/wallet-api/ModularDrawer/utils.ts +37 -0
  232. package/src/wallet-api/react.ts +37 -31
  233. package/lib/index.d.ts +0 -2
  234. package/lib/index.d.ts.map +0 -1
  235. package/lib/index.js.map +0 -1
  236. package/lib/market/hooks/useLargeMoverDataProvider.d.ts +0 -17
  237. package/lib/market/hooks/useLargeMoverDataProvider.d.ts.map +0 -1
  238. package/lib/market/hooks/useLargeMoverDataProvider.js +0 -48
  239. package/lib/market/hooks/useLargeMoverDataProvider.js.map +0 -1
  240. package/lib-es/index.d.ts +0 -1
  241. package/lib-es/index.d.ts.map +0 -1
  242. package/lib-es/index.js +0 -2
  243. package/lib-es/index.js.map +0 -1
  244. package/lib-es/market/hooks/useLargeMoverDataProvider.d.ts +0 -17
  245. package/lib-es/market/hooks/useLargeMoverDataProvider.d.ts.map +0 -1
  246. package/lib-es/market/hooks/useLargeMoverDataProvider.js +0 -44
  247. package/lib-es/market/hooks/useLargeMoverDataProvider.js.map +0 -1
  248. package/src/index.ts +0 -0
  249. package/src/market/hooks/useLargeMoverDataProvider.ts +0 -70
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import { SpeculosTransport } from "../load/speculos";
4
- import { SpeculosDevice } from "@ledgerhq/speculos-transport";
5
4
  import { DeviceModelId } from "@ledgerhq/devices";
6
5
  import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
7
6
  import { Account } from "./enum/Account";
@@ -23,7 +22,12 @@ export type Dependency = {
23
22
  name: string;
24
23
  appVersion?: string;
25
24
  };
25
+ export type SpeculosDevice = {
26
+ id: string;
27
+ port: number;
28
+ };
26
29
  export declare function setExchangeDependencies(dependencies: Dependency[]): void;
30
+ export declare function getSpeculosModel(): DeviceModelId.nanoS | DeviceModelId.nanoSP | DeviceModelId.nanoX;
27
31
  type Specs = {
28
32
  [key: string]: Spec;
29
33
  };
@@ -38,6 +42,7 @@ export declare function stopSpeculos(deviceId: string | undefined): Promise<void
38
42
  export declare function waitFor(text: string, maxAttempts?: number): Promise<string[]>;
39
43
  export declare function pressBoth(): Promise<void>;
40
44
  export declare function pressUntilTextFound(targetText: string, maxAttempts?: number): Promise<string[]>;
45
+ export declare function pressRightButton(): Promise<void>;
41
46
  export declare function containsSubstringInEvent(targetString: string, events: string[]): boolean;
42
47
  export declare function takeScreenshot(port?: number): Promise<Buffer | undefined>;
43
48
  export declare function waitForTimeOut(ms: number): Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/e2e/speculos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/e2e/speculos.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import invariant from "invariant";
2
2
  import { log } from "@ledgerhq/logs";
3
3
  import { listAppCandidates, createSpeculosDevice, releaseSpeculosDevice, findLatestAppCandidate, } from "../load/speculos";
4
+ import { createSpeculosDeviceCI, releaseSpeculosDeviceCI } from "./speculosCI";
4
5
  import { DeviceModelId } from "@ledgerhq/devices";
5
6
  import axios from "axios";
6
7
  import { getEnv } from "@ledgerhq/live-env";
7
8
  import { getCryptoCurrencyById } from "../currencies";
8
9
  import { DeviceLabels } from "../e2e/enum/DeviceLabels";
9
10
  import { Account } from "./enum/Account";
11
+ import { Device as CryptoWallet } from "./enum/Device";
10
12
  import { Currency } from "./enum/Currency";
11
13
  import expect from "expect";
12
14
  import { sendBTCBasedCoin } from "./families/bitcoin";
@@ -24,6 +26,7 @@ import { delegateSolana, sendSolana } from "./families/solana";
24
26
  import { delegateTezos } from "./families/tezos";
25
27
  import { delegateCelo } from "./families/celo";
26
28
  import { delegateMultiversX } from "./families/multiversX";
29
+ const isSpeculosRemote = process.env.REMOTE_SPECULOS === "true";
27
30
  export function setExchangeDependencies(dependencies) {
28
31
  const map = new Map();
29
32
  for (const dep of dependencies) {
@@ -33,11 +36,23 @@ export function setExchangeDependencies(dependencies) {
33
36
  }
34
37
  specs["Exchange"].dependencies = Array.from(map.values());
35
38
  }
39
+ export function getSpeculosModel() {
40
+ const speculosDevice = process.env.SPECULOS_DEVICE;
41
+ switch (speculosDevice) {
42
+ case CryptoWallet.LNS:
43
+ return DeviceModelId.nanoS;
44
+ case CryptoWallet.LNX:
45
+ return DeviceModelId.nanoX;
46
+ case CryptoWallet.LNSP:
47
+ default:
48
+ return DeviceModelId.nanoSP;
49
+ }
50
+ }
36
51
  export const specs = {
37
52
  Bitcoin: {
38
53
  currency: getCryptoCurrencyById("bitcoin"),
39
54
  appQuery: {
40
- model: DeviceModelId.nanoSP,
55
+ model: getSpeculosModel(),
41
56
  appName: "Bitcoin",
42
57
  },
43
58
  dependency: "",
@@ -45,21 +60,21 @@ export const specs = {
45
60
  Aptos: {
46
61
  currency: getCryptoCurrencyById("aptos"),
47
62
  appQuery: {
48
- model: DeviceModelId.nanoSP,
63
+ model: getSpeculosModel(),
49
64
  appName: "Aptos",
50
65
  },
51
66
  dependency: "",
52
67
  },
53
68
  Exchange: {
54
69
  appQuery: {
55
- model: DeviceModelId.nanoSP,
70
+ model: getSpeculosModel(),
56
71
  appName: "Exchange",
57
72
  },
58
73
  dependencies: [],
59
74
  },
60
75
  LedgerSync: {
61
76
  appQuery: {
62
- model: DeviceModelId.nanoX,
77
+ model: getSpeculosModel(),
63
78
  appName: "Ledger Sync",
64
79
  },
65
80
  dependency: "",
@@ -67,7 +82,7 @@ export const specs = {
67
82
  Dogecoin: {
68
83
  currency: getCryptoCurrencyById("dogecoin"),
69
84
  appQuery: {
70
- model: DeviceModelId.nanoSP,
85
+ model: getSpeculosModel(),
71
86
  appName: "Dogecoin",
72
87
  },
73
88
  dependency: "",
@@ -75,7 +90,7 @@ export const specs = {
75
90
  Ethereum: {
76
91
  currency: getCryptoCurrencyById("ethereum"),
77
92
  appQuery: {
78
- model: DeviceModelId.nanoSP,
93
+ model: getSpeculosModel(),
79
94
  appName: "Ethereum",
80
95
  },
81
96
  dependency: "",
@@ -83,7 +98,7 @@ export const specs = {
83
98
  Ethereum_Holesky: {
84
99
  currency: getCryptoCurrencyById("ethereum_holesky"),
85
100
  appQuery: {
86
- model: DeviceModelId.nanoSP,
101
+ model: getSpeculosModel(),
87
102
  appName: "Ethereum",
88
103
  },
89
104
  dependency: "",
@@ -91,7 +106,7 @@ export const specs = {
91
106
  Ethereum_Sepolia: {
92
107
  currency: getCryptoCurrencyById("ethereum_sepolia"),
93
108
  appQuery: {
94
- model: DeviceModelId.nanoSP,
109
+ model: getSpeculosModel(),
95
110
  appName: "Ethereum",
96
111
  },
97
112
  dependency: "",
@@ -99,7 +114,7 @@ export const specs = {
99
114
  Ethereum_Classic: {
100
115
  currency: getCryptoCurrencyById("ethereum_classic"),
101
116
  appQuery: {
102
- model: DeviceModelId.nanoSP,
117
+ model: getSpeculosModel(),
103
118
  appName: "Ethereum Classic",
104
119
  },
105
120
  dependency: "Ethereum",
@@ -107,7 +122,7 @@ export const specs = {
107
122
  Bitcoin_Testnet: {
108
123
  currency: getCryptoCurrencyById("bitcoin_testnet"),
109
124
  appQuery: {
110
- model: DeviceModelId.nanoSP,
125
+ model: getSpeculosModel(),
111
126
  appName: "Bitcoin Test",
112
127
  },
113
128
  dependency: "",
@@ -115,7 +130,7 @@ export const specs = {
115
130
  Solana: {
116
131
  currency: getCryptoCurrencyById("solana"),
117
132
  appQuery: {
118
- model: DeviceModelId.nanoSP,
133
+ model: getSpeculosModel(),
119
134
  appName: "Solana",
120
135
  },
121
136
  dependency: "",
@@ -123,7 +138,7 @@ export const specs = {
123
138
  Cardano: {
124
139
  currency: getCryptoCurrencyById("cardano"),
125
140
  appQuery: {
126
- model: DeviceModelId.nanoSP,
141
+ model: getSpeculosModel(),
127
142
  appName: "CardanoADA",
128
143
  },
129
144
  dependency: "",
@@ -131,7 +146,7 @@ export const specs = {
131
146
  Polkadot: {
132
147
  currency: getCryptoCurrencyById("polkadot"),
133
148
  appQuery: {
134
- model: DeviceModelId.nanoSP,
149
+ model: getSpeculosModel(),
135
150
  appName: "Polkadot",
136
151
  },
137
152
  dependency: "",
@@ -139,7 +154,7 @@ export const specs = {
139
154
  Tron: {
140
155
  currency: getCryptoCurrencyById("tron"),
141
156
  appQuery: {
142
- model: DeviceModelId.nanoSP,
157
+ model: getSpeculosModel(),
143
158
  appName: "Tron",
144
159
  },
145
160
  dependency: "",
@@ -147,7 +162,7 @@ export const specs = {
147
162
  XRP: {
148
163
  currency: getCryptoCurrencyById("ripple"),
149
164
  appQuery: {
150
- model: DeviceModelId.nanoSP,
165
+ model: getSpeculosModel(),
151
166
  appName: "XRP",
152
167
  },
153
168
  dependency: "",
@@ -155,7 +170,7 @@ export const specs = {
155
170
  Stellar: {
156
171
  currency: getCryptoCurrencyById("stellar"),
157
172
  appQuery: {
158
- model: DeviceModelId.nanoSP,
173
+ model: getSpeculosModel(),
159
174
  appName: "Stellar",
160
175
  },
161
176
  dependency: "",
@@ -163,7 +178,7 @@ export const specs = {
163
178
  Bitcoin_Cash: {
164
179
  currency: getCryptoCurrencyById("bitcoin_cash"),
165
180
  appQuery: {
166
- model: DeviceModelId.nanoSP,
181
+ model: getSpeculosModel(),
167
182
  appName: "Bitcoin Cash",
168
183
  },
169
184
  dependency: "",
@@ -171,7 +186,7 @@ export const specs = {
171
186
  Algorand: {
172
187
  currency: getCryptoCurrencyById("algorand"),
173
188
  appQuery: {
174
- model: DeviceModelId.nanoSP,
189
+ model: getSpeculosModel(),
175
190
  appName: "Algorand",
176
191
  },
177
192
  dependency: "",
@@ -179,7 +194,7 @@ export const specs = {
179
194
  Cosmos: {
180
195
  currency: getCryptoCurrencyById("cosmos"),
181
196
  appQuery: {
182
- model: DeviceModelId.nanoSP,
197
+ model: getSpeculosModel(),
183
198
  appName: "Cosmos",
184
199
  },
185
200
  dependency: "",
@@ -187,7 +202,7 @@ export const specs = {
187
202
  Tezos: {
188
203
  currency: getCryptoCurrencyById("tezos"),
189
204
  appQuery: {
190
- model: DeviceModelId.nanoSP,
205
+ model: getSpeculosModel(),
191
206
  appName: "TezosWallet",
192
207
  },
193
208
  dependency: "",
@@ -195,7 +210,7 @@ export const specs = {
195
210
  Polygon: {
196
211
  currency: getCryptoCurrencyById("polygon"),
197
212
  appQuery: {
198
- model: DeviceModelId.nanoSP,
213
+ model: getSpeculosModel(),
199
214
  appName: "Ethereum",
200
215
  },
201
216
  dependency: "",
@@ -203,7 +218,7 @@ export const specs = {
203
218
  Binance_Smart_Chain: {
204
219
  currency: getCryptoCurrencyById("bsc"),
205
220
  appQuery: {
206
- model: DeviceModelId.nanoSP,
221
+ model: getSpeculosModel(),
207
222
  appName: "Ethereum",
208
223
  },
209
224
  dependency: "",
@@ -211,7 +226,7 @@ export const specs = {
211
226
  Ton: {
212
227
  currency: getCryptoCurrencyById("ton"),
213
228
  appQuery: {
214
- model: DeviceModelId.nanoSP,
229
+ model: getSpeculosModel(),
215
230
  appName: "TON",
216
231
  },
217
232
  dependency: "",
@@ -219,7 +234,7 @@ export const specs = {
219
234
  Near: {
220
235
  currency: getCryptoCurrencyById("near"),
221
236
  appQuery: {
222
- model: DeviceModelId.nanoSP,
237
+ model: getSpeculosModel(),
223
238
  appName: "NEAR",
224
239
  },
225
240
  dependency: "",
@@ -227,7 +242,7 @@ export const specs = {
227
242
  Multivers_X: {
228
243
  currency: getCryptoCurrencyById("elrond"),
229
244
  appQuery: {
230
- model: DeviceModelId.nanoSP,
245
+ model: getSpeculosModel(),
231
246
  appName: "MultiversX",
232
247
  },
233
248
  dependency: "",
@@ -235,7 +250,7 @@ export const specs = {
235
250
  Osmosis: {
236
251
  currency: getCryptoCurrencyById("osmo"),
237
252
  appQuery: {
238
- model: DeviceModelId.nanoSP,
253
+ model: getSpeculosModel(),
239
254
  appName: "Cosmos",
240
255
  },
241
256
  dependency: "",
@@ -243,7 +258,7 @@ export const specs = {
243
258
  Injective: {
244
259
  currency: getCryptoCurrencyById("injective"),
245
260
  appQuery: {
246
- model: DeviceModelId.nanoSP,
261
+ model: getSpeculosModel(),
247
262
  appName: "Cosmos",
248
263
  },
249
264
  dependency: "",
@@ -251,7 +266,7 @@ export const specs = {
251
266
  Celo: {
252
267
  currency: getCryptoCurrencyById("celo"),
253
268
  appQuery: {
254
- model: DeviceModelId.nanoSP,
269
+ model: getSpeculosModel(),
255
270
  appName: "Celo",
256
271
  },
257
272
  dependency: "",
@@ -259,7 +274,7 @@ export const specs = {
259
274
  Litecoin: {
260
275
  currency: getCryptoCurrencyById("litecoin"),
261
276
  appQuery: {
262
- model: DeviceModelId.nanoSP,
277
+ model: getSpeculosModel(),
263
278
  appName: "Litecoin",
264
279
  },
265
280
  dependency: "",
@@ -308,7 +323,13 @@ export async function startSpeculos(testName, spec) {
308
323
  onSpeculosDeviceCreated,
309
324
  };
310
325
  try {
311
- return await createSpeculosDevice(deviceParams);
326
+ const device = isSpeculosRemote
327
+ ? await createSpeculosDeviceCI(deviceParams)
328
+ : await createSpeculosDevice(deviceParams).then(device => {
329
+ invariant(device.ports.apiPort, "[E2E] Speculos apiPort is not defined");
330
+ return { id: device.id, port: device.ports.apiPort };
331
+ });
332
+ return device;
312
333
  }
313
334
  catch (e) {
314
335
  console.error(e);
@@ -318,15 +339,18 @@ export async function startSpeculos(testName, spec) {
318
339
  export async function stopSpeculos(deviceId) {
319
340
  if (deviceId) {
320
341
  log("engine", `test ${deviceId} finished`);
321
- await releaseSpeculosDevice(deviceId);
342
+ isSpeculosRemote
343
+ ? await releaseSpeculosDeviceCI(deviceId)
344
+ : await releaseSpeculosDevice(deviceId);
322
345
  }
323
346
  }
324
347
  export async function waitFor(text, maxAttempts = 10) {
325
348
  const speculosApiPort = getEnv("SPECULOS_API_PORT");
349
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
326
350
  let attempts = 0;
327
351
  let textFound = false;
328
352
  while (attempts < maxAttempts && !textFound) {
329
- const response = await axios.get(`http://127.0.0.1:${speculosApiPort}/events?stream=false&currentscreenonly=true`);
353
+ const response = await axios.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=true`);
330
354
  const responseData = response.data;
331
355
  const texts = responseData.events.map(event => event.text);
332
356
  if (texts?.[0]?.includes(text)) {
@@ -340,7 +364,8 @@ export async function waitFor(text, maxAttempts = 10) {
340
364
  }
341
365
  export async function pressBoth() {
342
366
  const speculosApiPort = getEnv("SPECULOS_API_PORT");
343
- await axios.post(`http://127.0.0.1:${speculosApiPort}/button/both`, {
367
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
368
+ await axios.post(`${speculosAddress}:${speculosApiPort}/button/both`, {
344
369
  action: "press-and-release",
345
370
  });
346
371
  }
@@ -351,21 +376,25 @@ export async function pressUntilTextFound(targetText, maxAttempts = 15) {
351
376
  if (texts.includes(targetText)) {
352
377
  return await fetchAllEvents(speculosApiPort);
353
378
  }
354
- await pressRightButton(speculosApiPort);
379
+ await pressRightButton();
355
380
  await waitForTimeOut(200);
356
381
  }
357
382
  throw new Error(`ElementNotFoundException: Element with text "${targetText}" not found on speculos screen`);
358
383
  }
359
384
  async function fetchCurrentScreenTexts(speculosApiPort) {
360
- const response = await axios.get(`http://127.0.0.1:${speculosApiPort}/events?stream=false&currentscreenonly=true`);
385
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
386
+ const response = await axios.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=true`);
361
387
  return response.data.events.map(event => event.text).join("");
362
388
  }
363
389
  async function fetchAllEvents(speculosApiPort) {
364
- const response = await axios.get(`http://127.0.0.1:${speculosApiPort}/events?stream=false&currentscreenonly=false`);
390
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
391
+ const response = await axios.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=false`);
365
392
  return response.data.events.map(event => event.text);
366
393
  }
367
- async function pressRightButton(speculosApiPort) {
368
- await axios.post(`http://127.0.0.1:${speculosApiPort}/button/right`, {
394
+ export async function pressRightButton() {
395
+ const speculosApiPort = getEnv("SPECULOS_API_PORT");
396
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
397
+ await axios.post(`${speculosAddress}:${speculosApiPort}/button/right`, {
369
398
  action: "press-and-release",
370
399
  });
371
400
  }
@@ -380,9 +409,10 @@ export function containsSubstringInEvent(targetString, events) {
380
409
  return result;
381
410
  }
382
411
  export async function takeScreenshot(port) {
412
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
383
413
  const speculosApiPort = port ?? getEnv("SPECULOS_API_PORT");
384
414
  try {
385
- const response = await axios.get(`http://127.0.0.1:${speculosApiPort}/screenshot`, {
415
+ const response = await axios.get(`${speculosAddress}:${speculosApiPort}/screenshot`, {
386
416
  responseType: "arraybuffer",
387
417
  });
388
418
  return response.data;
@@ -1 +1 @@
1
- {"version":3,"file":"speculos.js","sourceRoot":"","sources":["../../src/e2e/speculos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speculos.js","sourceRoot":"","sources":["../../src/e2e/speculos.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { DeviceParams } from "@ledgerhq/speculos-transport";
2
+ import { SpeculosDevice } from "./speculos";
3
+ export declare function createSpeculosDeviceCI(deviceParams: DeviceParams): Promise<SpeculosDevice | undefined>;
4
+ export declare function releaseSpeculosDeviceCI(runId: string): Promise<void>;
5
+ //# sourceMappingURL=speculosCI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speculosCI.d.ts","sourceRoot":"","sources":["../../src/e2e/speculosCI.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,YAAY,EAEb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AA0H5C,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAkBrC;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,MAAM,iBAU1D"}
@@ -0,0 +1,121 @@
1
+ import axios from "axios";
2
+ import { conventionalAppSubpath, reverseModelMap, } from "@ledgerhq/speculos-transport";
3
+ import https from "https";
4
+ const { SEED, GITHUB_TOKEN, AWS_ROLE, CLUSTER } = process.env;
5
+ const GIT_API_URL = "https://api.github.com/repos/LedgerHQ/actions/actions/";
6
+ const START_WORKFLOW_ID = "workflows/161487603/dispatches";
7
+ const STOP_WORKFLOW_ID = "workflows/161487604/dispatches";
8
+ const GITHUB_REF = "main";
9
+ const getSpeculosAddress = (runId) => `https://${runId}.speculos.aws.stg.ldg-tech.com`;
10
+ const speculosPort = 443;
11
+ function uniqueId() {
12
+ const timestamp = Date.now().toString(36);
13
+ const randomString = Math.random().toString(36).slice(2, 7);
14
+ return timestamp + randomString;
15
+ }
16
+ /**
17
+ * Helper function to make API requests with error handling
18
+ */
19
+ async function githubApiRequest({ method = "POST", urlSuffix, data, params, }) {
20
+ const url = `${GIT_API_URL}${urlSuffix}`;
21
+ try {
22
+ const response = await axios({
23
+ method,
24
+ url,
25
+ headers: {
26
+ Authorization: `Bearer ${GITHUB_TOKEN}`,
27
+ Accept: "application/vnd.github+json",
28
+ "X-GitHub-Api-Version": "2022-11-28",
29
+ },
30
+ data,
31
+ params,
32
+ });
33
+ return response.data;
34
+ }
35
+ catch (error) {
36
+ console.warn(`API Request failed: ${method} ${url}`, axios.isAxiosError(error) ? error.response?.data : error.message);
37
+ throw error;
38
+ }
39
+ }
40
+ function waitForSpeculosReady(url, { interval = 2000, timeout = 120_000 } = {}) {
41
+ return new Promise((resolve, reject) => {
42
+ const startTime = Date.now();
43
+ function check() {
44
+ https
45
+ .get(url, res => {
46
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) {
47
+ process.env.SPECULOS_ADDRESS = url;
48
+ resolve(true);
49
+ }
50
+ else {
51
+ retry();
52
+ }
53
+ })
54
+ .on("error", retry);
55
+ }
56
+ function retry() {
57
+ if (Date.now() - startTime >= timeout) {
58
+ reject(new Error(`Timeout: ${url} did not become available within ${timeout}ms`));
59
+ }
60
+ else {
61
+ setTimeout(check, interval);
62
+ }
63
+ }
64
+ check();
65
+ });
66
+ }
67
+ function createStartPayload(deviceParams, runId) {
68
+ const { model, firmware, appName, appVersion, dependency, dependencies } = deviceParams;
69
+ let additional_args = "-p";
70
+ if (dependency) {
71
+ additional_args = `${additional_args} -l ${dependency}:/apps/${conventionalAppSubpath(model, firmware, dependency, appVersion)}`;
72
+ }
73
+ else if (dependencies) {
74
+ additional_args = [
75
+ ...new Set(dependencies.map(dep => `${additional_args} -l ${dep.name}:/apps/${conventionalAppSubpath(model, firmware, dep.name, dep.appVersion ?? "1.0.0")}`)),
76
+ ].join(" ");
77
+ }
78
+ return {
79
+ ref: GITHUB_REF,
80
+ inputs: {
81
+ coin_app: appName,
82
+ coin_app_version: appVersion,
83
+ device: reverseModelMap[model],
84
+ device_os_version: firmware,
85
+ aws_role: AWS_ROLE,
86
+ cluster: CLUSTER,
87
+ seed: SEED,
88
+ run_id: runId,
89
+ additional_args,
90
+ },
91
+ };
92
+ }
93
+ export async function createSpeculosDeviceCI(deviceParams) {
94
+ try {
95
+ const runId = uniqueId();
96
+ console.warn("Creating remote speculos:", runId);
97
+ const data = createStartPayload(deviceParams, runId);
98
+ await githubApiRequest({ urlSuffix: START_WORKFLOW_ID, data });
99
+ await waitForSpeculosReady(getSpeculosAddress(runId));
100
+ return {
101
+ id: runId,
102
+ port: speculosPort,
103
+ };
104
+ }
105
+ catch (e) {
106
+ console.error(e);
107
+ console.warn(`Creating remote speculos ${deviceParams.appName}:${deviceParams.appVersion} failed with ${String(e)}`);
108
+ }
109
+ }
110
+ export async function releaseSpeculosDeviceCI(runId) {
111
+ const data = {
112
+ ref: GITHUB_REF,
113
+ inputs: {
114
+ run_id: runId.toString(),
115
+ aws_role: AWS_ROLE,
116
+ cluster: CLUSTER,
117
+ },
118
+ };
119
+ await githubApiRequest({ urlSuffix: STOP_WORKFLOW_ID, data });
120
+ }
121
+ //# sourceMappingURL=speculosCI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speculosCI.js","sourceRoot":"","sources":["../../src/e2e/speculosCI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "@ledgerhq/coin-hedera/logic";
2
+ //# sourceMappingURL=logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../src/families/hedera/logic.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Encapsulate for LLD & LLM
2
+ export * from "@ledgerhq/coin-hedera/logic";
3
+ //# sourceMappingURL=logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logic.js","sourceRoot":"","sources":["../../../src/families/hedera/logic.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,cAAc,6BAA6B,CAAC"}