@ledgerhq/live-common 34.35.0-nightly.4 → 34.35.0-nightly.5

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.
@@ -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,6 +22,10 @@ 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;
27
30
  export declare function getSpeculosModel(): DeviceModelId.nanoS | DeviceModelId.nanoSP | DeviceModelId.nanoX;
28
31
  type Specs = {
@@ -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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"}
@@ -7,6 +7,7 @@ exports.verifyAmountsAndRejectSwap = exports.verifyAmountsAndAcceptSwap = export
7
7
  const invariant_1 = __importDefault(require("invariant"));
8
8
  const logs_1 = require("@ledgerhq/logs");
9
9
  const speculos_1 = require("../load/speculos");
10
+ const speculosCI_1 = require("./speculosCI");
10
11
  const devices_1 = require("@ledgerhq/devices");
11
12
  const axios_1 = __importDefault(require("axios"));
12
13
  const live_env_1 = require("@ledgerhq/live-env");
@@ -31,6 +32,7 @@ const solana_1 = require("./families/solana");
31
32
  const tezos_1 = require("./families/tezos");
32
33
  const celo_1 = require("./families/celo");
33
34
  const multiversX_1 = require("./families/multiversX");
35
+ const isSpeculosRemote = process.env.REMOTE_SPECULOS === "true";
34
36
  function setExchangeDependencies(dependencies) {
35
37
  const map = new Map();
36
38
  for (const dep of dependencies) {
@@ -329,7 +331,13 @@ async function startSpeculos(testName, spec) {
329
331
  onSpeculosDeviceCreated,
330
332
  };
331
333
  try {
332
- return await (0, speculos_1.createSpeculosDevice)(deviceParams);
334
+ const device = isSpeculosRemote
335
+ ? await (0, speculosCI_1.createSpeculosDeviceCI)(deviceParams)
336
+ : await (0, speculos_1.createSpeculosDevice)(deviceParams).then(device => {
337
+ (0, invariant_1.default)(device.ports.apiPort, "[E2E] Speculos apiPort is not defined");
338
+ return { id: device.id, port: device.ports.apiPort };
339
+ });
340
+ return device;
333
341
  }
334
342
  catch (e) {
335
343
  console.error(e);
@@ -340,16 +348,19 @@ exports.startSpeculos = startSpeculos;
340
348
  async function stopSpeculos(deviceId) {
341
349
  if (deviceId) {
342
350
  (0, logs_1.log)("engine", `test ${deviceId} finished`);
343
- await (0, speculos_1.releaseSpeculosDevice)(deviceId);
351
+ isSpeculosRemote
352
+ ? await (0, speculosCI_1.releaseSpeculosDeviceCI)(deviceId)
353
+ : await (0, speculos_1.releaseSpeculosDevice)(deviceId);
344
354
  }
345
355
  }
346
356
  exports.stopSpeculos = stopSpeculos;
347
357
  async function waitFor(text, maxAttempts = 10) {
348
358
  const speculosApiPort = (0, live_env_1.getEnv)("SPECULOS_API_PORT");
359
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
349
360
  let attempts = 0;
350
361
  let textFound = false;
351
362
  while (attempts < maxAttempts && !textFound) {
352
- const response = await axios_1.default.get(`http://127.0.0.1:${speculosApiPort}/events?stream=false&currentscreenonly=true`);
363
+ const response = await axios_1.default.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=true`);
353
364
  const responseData = response.data;
354
365
  const texts = responseData.events.map(event => event.text);
355
366
  if (texts?.[0]?.includes(text)) {
@@ -364,7 +375,8 @@ async function waitFor(text, maxAttempts = 10) {
364
375
  exports.waitFor = waitFor;
365
376
  async function pressBoth() {
366
377
  const speculosApiPort = (0, live_env_1.getEnv)("SPECULOS_API_PORT");
367
- await axios_1.default.post(`http://127.0.0.1:${speculosApiPort}/button/both`, {
378
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
379
+ await axios_1.default.post(`${speculosAddress}:${speculosApiPort}/button/both`, {
368
380
  action: "press-and-release",
369
381
  });
370
382
  }
@@ -383,16 +395,19 @@ async function pressUntilTextFound(targetText, maxAttempts = 15) {
383
395
  }
384
396
  exports.pressUntilTextFound = pressUntilTextFound;
385
397
  async function fetchCurrentScreenTexts(speculosApiPort) {
386
- const response = await axios_1.default.get(`http://127.0.0.1:${speculosApiPort}/events?stream=false&currentscreenonly=true`);
398
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
399
+ const response = await axios_1.default.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=true`);
387
400
  return response.data.events.map(event => event.text).join("");
388
401
  }
389
402
  async function fetchAllEvents(speculosApiPort) {
390
- const response = await axios_1.default.get(`http://127.0.0.1:${speculosApiPort}/events?stream=false&currentscreenonly=false`);
403
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
404
+ const response = await axios_1.default.get(`${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=false`);
391
405
  return response.data.events.map(event => event.text);
392
406
  }
393
407
  async function pressRightButton() {
394
408
  const speculosApiPort = (0, live_env_1.getEnv)("SPECULOS_API_PORT");
395
- await axios_1.default.post(`http://127.0.0.1:${speculosApiPort}/button/right`, {
409
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
410
+ await axios_1.default.post(`${speculosAddress}:${speculosApiPort}/button/right`, {
396
411
  action: "press-and-release",
397
412
  });
398
413
  }
@@ -409,9 +424,10 @@ function containsSubstringInEvent(targetString, events) {
409
424
  }
410
425
  exports.containsSubstringInEvent = containsSubstringInEvent;
411
426
  async function takeScreenshot(port) {
427
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
412
428
  const speculosApiPort = port ?? (0, live_env_1.getEnv)("SPECULOS_API_PORT");
413
429
  try {
414
- const response = await axios_1.default.get(`http://127.0.0.1:${speculosApiPort}/screenshot`, {
430
+ const response = await axios_1.default.get(`${speculosAddress}:${speculosApiPort}/screenshot`, {
415
431
  responseType: "arraybuffer",
416
432
  });
417
433
  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,129 @@
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.releaseSpeculosDeviceCI = exports.createSpeculosDeviceCI = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const speculos_transport_1 = require("@ledgerhq/speculos-transport");
9
+ const https_1 = __importDefault(require("https"));
10
+ const { SEED, GITHUB_TOKEN, AWS_ROLE, CLUSTER } = process.env;
11
+ const GIT_API_URL = "https://api.github.com/repos/LedgerHQ/actions/actions/";
12
+ const START_WORKFLOW_ID = "workflows/161487603/dispatches";
13
+ const STOP_WORKFLOW_ID = "workflows/161487604/dispatches";
14
+ const GITHUB_REF = "main";
15
+ const getSpeculosAddress = (runId) => `https://${runId}.speculos.aws.stg.ldg-tech.com`;
16
+ const speculosPort = 443;
17
+ function uniqueId() {
18
+ const timestamp = Date.now().toString(36);
19
+ const randomString = Math.random().toString(36).slice(2, 7);
20
+ return timestamp + randomString;
21
+ }
22
+ /**
23
+ * Helper function to make API requests with error handling
24
+ */
25
+ async function githubApiRequest({ method = "POST", urlSuffix, data, params, }) {
26
+ const url = `${GIT_API_URL}${urlSuffix}`;
27
+ try {
28
+ const response = await (0, axios_1.default)({
29
+ method,
30
+ url,
31
+ headers: {
32
+ Authorization: `Bearer ${GITHUB_TOKEN}`,
33
+ Accept: "application/vnd.github+json",
34
+ "X-GitHub-Api-Version": "2022-11-28",
35
+ },
36
+ data,
37
+ params,
38
+ });
39
+ return response.data;
40
+ }
41
+ catch (error) {
42
+ console.warn(`API Request failed: ${method} ${url}`, axios_1.default.isAxiosError(error) ? error.response?.data : error.message);
43
+ throw error;
44
+ }
45
+ }
46
+ function waitForSpeculosReady(url, { interval = 2000, timeout = 120_000 } = {}) {
47
+ return new Promise((resolve, reject) => {
48
+ const startTime = Date.now();
49
+ function check() {
50
+ https_1.default
51
+ .get(url, res => {
52
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) {
53
+ process.env.SPECULOS_ADDRESS = url;
54
+ resolve(true);
55
+ }
56
+ else {
57
+ retry();
58
+ }
59
+ })
60
+ .on("error", retry);
61
+ }
62
+ function retry() {
63
+ if (Date.now() - startTime >= timeout) {
64
+ reject(new Error(`Timeout: ${url} did not become available within ${timeout}ms`));
65
+ }
66
+ else {
67
+ setTimeout(check, interval);
68
+ }
69
+ }
70
+ check();
71
+ });
72
+ }
73
+ function createStartPayload(deviceParams, runId) {
74
+ const { model, firmware, appName, appVersion, dependency, dependencies } = deviceParams;
75
+ let additional_args = "";
76
+ if (dependency) {
77
+ additional_args = `-l ${dependency}:/apps/${(0, speculos_transport_1.conventionalAppSubpath)(model, firmware, dependency, appVersion)}`;
78
+ }
79
+ else if (dependencies) {
80
+ additional_args = [
81
+ ...new Set(dependencies.map(dep => `-l ${dep.name}:/apps/${(0, speculos_transport_1.conventionalAppSubpath)(model, firmware, dep.name, dep.appVersion ?? "1.0.0")}`)),
82
+ ].join(" ");
83
+ }
84
+ return {
85
+ ref: GITHUB_REF,
86
+ inputs: {
87
+ coin_app: appName,
88
+ coin_app_version: appVersion,
89
+ device: speculos_transport_1.reverseModelMap[model],
90
+ device_os_version: firmware,
91
+ aws_role: AWS_ROLE,
92
+ cluster: CLUSTER,
93
+ seed: SEED,
94
+ run_id: runId,
95
+ additional_args,
96
+ },
97
+ };
98
+ }
99
+ async function createSpeculosDeviceCI(deviceParams) {
100
+ try {
101
+ const runId = uniqueId();
102
+ console.warn("Creating remote speculos:", runId);
103
+ const data = createStartPayload(deviceParams, runId);
104
+ await githubApiRequest({ urlSuffix: START_WORKFLOW_ID, data });
105
+ await waitForSpeculosReady(getSpeculosAddress(runId));
106
+ return {
107
+ id: runId,
108
+ port: speculosPort,
109
+ };
110
+ }
111
+ catch (e) {
112
+ console.error(e);
113
+ console.warn(`Creating remote speculos ${deviceParams.appName}:${deviceParams.appVersion} failed with ${String(e)}`);
114
+ }
115
+ }
116
+ exports.createSpeculosDeviceCI = createSpeculosDeviceCI;
117
+ async function releaseSpeculosDeviceCI(runId) {
118
+ const data = {
119
+ ref: GITHUB_REF,
120
+ inputs: {
121
+ run_id: runId.toString(),
122
+ aws_role: AWS_ROLE,
123
+ cluster: CLUSTER,
124
+ },
125
+ };
126
+ await githubApiRequest({ urlSuffix: STOP_WORKFLOW_ID, data });
127
+ }
128
+ exports.releaseSpeculosDeviceCI = releaseSpeculosDeviceCI;
129
+ //# 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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"}
@@ -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,6 +22,10 @@ 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;
27
30
  export declare function getSpeculosModel(): DeviceModelId.nanoS | DeviceModelId.nanoSP | DeviceModelId.nanoX;
28
31
  type Specs = {
@@ -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,6 +1,7 @@
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";
@@ -25,6 +26,7 @@ import { delegateSolana, sendSolana } from "./families/solana";
25
26
  import { delegateTezos } from "./families/tezos";
26
27
  import { delegateCelo } from "./families/celo";
27
28
  import { delegateMultiversX } from "./families/multiversX";
29
+ const isSpeculosRemote = process.env.REMOTE_SPECULOS === "true";
28
30
  export function setExchangeDependencies(dependencies) {
29
31
  const map = new Map();
30
32
  for (const dep of dependencies) {
@@ -321,7 +323,13 @@ export async function startSpeculos(testName, spec) {
321
323
  onSpeculosDeviceCreated,
322
324
  };
323
325
  try {
324
- 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;
325
333
  }
326
334
  catch (e) {
327
335
  console.error(e);
@@ -331,15 +339,18 @@ export async function startSpeculos(testName, spec) {
331
339
  export async function stopSpeculos(deviceId) {
332
340
  if (deviceId) {
333
341
  log("engine", `test ${deviceId} finished`);
334
- await releaseSpeculosDevice(deviceId);
342
+ isSpeculosRemote
343
+ ? await releaseSpeculosDeviceCI(deviceId)
344
+ : await releaseSpeculosDevice(deviceId);
335
345
  }
336
346
  }
337
347
  export async function waitFor(text, maxAttempts = 10) {
338
348
  const speculosApiPort = getEnv("SPECULOS_API_PORT");
349
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
339
350
  let attempts = 0;
340
351
  let textFound = false;
341
352
  while (attempts < maxAttempts && !textFound) {
342
- 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`);
343
354
  const responseData = response.data;
344
355
  const texts = responseData.events.map(event => event.text);
345
356
  if (texts?.[0]?.includes(text)) {
@@ -353,7 +364,8 @@ export async function waitFor(text, maxAttempts = 10) {
353
364
  }
354
365
  export async function pressBoth() {
355
366
  const speculosApiPort = getEnv("SPECULOS_API_PORT");
356
- 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`, {
357
369
  action: "press-and-release",
358
370
  });
359
371
  }
@@ -370,16 +382,19 @@ export async function pressUntilTextFound(targetText, maxAttempts = 15) {
370
382
  throw new Error(`ElementNotFoundException: Element with text "${targetText}" not found on speculos screen`);
371
383
  }
372
384
  async function fetchCurrentScreenTexts(speculosApiPort) {
373
- 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`);
374
387
  return response.data.events.map(event => event.text).join("");
375
388
  }
376
389
  async function fetchAllEvents(speculosApiPort) {
377
- 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`);
378
392
  return response.data.events.map(event => event.text);
379
393
  }
380
394
  export async function pressRightButton() {
381
395
  const speculosApiPort = getEnv("SPECULOS_API_PORT");
382
- await axios.post(`http://127.0.0.1:${speculosApiPort}/button/right`, {
396
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
397
+ await axios.post(`${speculosAddress}:${speculosApiPort}/button/right`, {
383
398
  action: "press-and-release",
384
399
  });
385
400
  }
@@ -394,9 +409,10 @@ export function containsSubstringInEvent(targetString, events) {
394
409
  return result;
395
410
  }
396
411
  export async function takeScreenshot(port) {
412
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
397
413
  const speculosApiPort = port ?? getEnv("SPECULOS_API_PORT");
398
414
  try {
399
- const response = await axios.get(`http://127.0.0.1:${speculosApiPort}/screenshot`, {
415
+ const response = await axios.get(`${speculosAddress}:${speculosApiPort}/screenshot`, {
400
416
  responseType: "arraybuffer",
401
417
  });
402
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 = "";
70
+ if (dependency) {
71
+ additional_args = `-l ${dependency}:/apps/${conventionalAppSubpath(model, firmware, dependency, appVersion)}`;
72
+ }
73
+ else if (dependencies) {
74
+ additional_args = [
75
+ ...new Set(dependencies.map(dep => `-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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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ledgerhq/live-common",
3
3
  "description": "Common ground for the Ledger Live apps",
4
- "version": "34.35.0-nightly.4",
4
+ "version": "34.35.0-nightly.5",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/LedgerHQ/ledger-live.git"
@@ -162,43 +162,43 @@
162
162
  "xstate": "^5.19.2",
163
163
  "yargs": "^17.0.0",
164
164
  "zod": "^3.22.4",
165
- "@ledgerhq/coin-algorand": "^0.9.7-nightly.0",
166
- "@ledgerhq/coin-aptos": "^1.10.0-nightly.1",
167
- "@ledgerhq/coin-bitcoin": "^0.15.7-nightly.0",
168
- "@ledgerhq/coin-cardano": "^0.8.7-nightly.0",
169
- "@ledgerhq/coin-casper": "^1.7.2-nightly.0",
170
- "@ledgerhq/coin-celo": "^1.1.5-nightly.0",
171
- "@ledgerhq/coin-cosmos": "^0.14.3-nightly.0",
172
- "@ledgerhq/coin-evm": "^2.22.1-nightly.0",
173
- "@ledgerhq/coin-filecoin": "^1.9.7-nightly.0",
174
- "@ledgerhq/coin-framework": "^5.0.3-nightly.0",
175
- "@ledgerhq/coin-hedera": "^1.6.7-nightly.2",
176
- "@ledgerhq/coin-icon": "^0.10.7-nightly.0",
177
- "@ledgerhq/coin-internet_computer": "^1.7.7-nightly.0",
178
- "@ledgerhq/coin-mina": "^1.1.6-nightly.0",
179
- "@ledgerhq/coin-multiversx": "^0.4.7-nightly.0",
180
- "@ledgerhq/coin-near": "^0.11.7-nightly.0",
181
- "@ledgerhq/coin-polkadot": "^6.1.1-nightly.0",
182
- "@ledgerhq/coin-solana": "^0.24.0-nightly.1",
183
- "@ledgerhq/coin-stacks": "^0.8.7-nightly.0",
184
- "@ledgerhq/coin-stellar": "^5.0.3-nightly.0",
185
- "@ledgerhq/coin-sui": "^0.4.0-nightly.1",
186
- "@ledgerhq/coin-tezos": "^5.2.0-nightly.1",
187
- "@ledgerhq/coin-ton": "^0.11.0-nightly.1",
188
- "@ledgerhq/coin-tron": "^4.1.1-nightly.0",
189
- "@ledgerhq/coin-vechain": "^2.7.7-nightly.0",
190
- "@ledgerhq/coin-xrp": "^6.1.2-nightly.0",
165
+ "@ledgerhq/coin-algorand": "^0.9.7-nightly.1",
166
+ "@ledgerhq/coin-aptos": "^1.10.0-nightly.2",
167
+ "@ledgerhq/coin-bitcoin": "^0.15.7-nightly.1",
168
+ "@ledgerhq/coin-cardano": "^0.8.7-nightly.1",
169
+ "@ledgerhq/coin-casper": "^1.7.2-nightly.1",
170
+ "@ledgerhq/coin-celo": "^1.1.5-nightly.1",
171
+ "@ledgerhq/coin-cosmos": "^0.14.3-nightly.1",
172
+ "@ledgerhq/coin-evm": "^2.22.1-nightly.1",
173
+ "@ledgerhq/coin-filecoin": "^1.9.7-nightly.1",
174
+ "@ledgerhq/coin-framework": "^5.1.0-nightly.1",
175
+ "@ledgerhq/coin-hedera": "^1.6.7-nightly.3",
176
+ "@ledgerhq/coin-icon": "^0.10.7-nightly.1",
177
+ "@ledgerhq/coin-internet_computer": "^1.7.7-nightly.1",
178
+ "@ledgerhq/coin-mina": "^1.1.6-nightly.1",
179
+ "@ledgerhq/coin-multiversx": "^0.4.7-nightly.1",
180
+ "@ledgerhq/coin-near": "^0.11.7-nightly.1",
181
+ "@ledgerhq/coin-polkadot": "^6.1.1-nightly.1",
182
+ "@ledgerhq/coin-solana": "^0.24.0-nightly.2",
183
+ "@ledgerhq/coin-stacks": "^0.8.7-nightly.1",
184
+ "@ledgerhq/coin-stellar": "^5.0.3-nightly.1",
185
+ "@ledgerhq/coin-sui": "^0.4.0-nightly.2",
186
+ "@ledgerhq/coin-tezos": "^5.2.0-nightly.2",
187
+ "@ledgerhq/coin-ton": "^0.11.0-nightly.2",
188
+ "@ledgerhq/coin-tron": "^4.1.1-nightly.1",
189
+ "@ledgerhq/coin-vechain": "^2.7.7-nightly.1",
190
+ "@ledgerhq/coin-xrp": "^6.1.2-nightly.1",
191
191
  "@ledgerhq/crypto-icons-ui": "^1.14.0",
192
192
  "@ledgerhq/cryptoassets": "^13.17.0",
193
- "@ledgerhq/device-core": "^0.4.25-nightly.3",
193
+ "@ledgerhq/device-core": "^0.4.25-nightly.4",
194
194
  "@ledgerhq/devices": "8.4.5-nightly.2",
195
195
  "@ledgerhq/errors": "^6.21.0-nightly.0",
196
196
  "@ledgerhq/hw-app-algorand": "^6.31.1-nightly.1",
197
197
  "@ledgerhq/hw-app-aptos": "^6.34.1-nightly.1",
198
198
  "@ledgerhq/hw-app-btc": "^10.9.1-nightly.1",
199
- "@ledgerhq/hw-app-celo": "^6.33.3-nightly.3",
199
+ "@ledgerhq/hw-app-celo": "^6.33.3-nightly.4",
200
200
  "@ledgerhq/hw-app-cosmos": "^6.32.1-nightly.1",
201
- "@ledgerhq/hw-app-eth": "^6.45.5-nightly.3",
201
+ "@ledgerhq/hw-app-eth": "^6.45.5-nightly.4",
202
202
  "@ledgerhq/hw-app-exchange": "^0.10.1-nightly.1",
203
203
  "@ledgerhq/hw-app-hedera": "^1.2.1-nightly.1",
204
204
  "@ledgerhq/hw-app-icon": "^1.3.1-nightly.1",
@@ -215,17 +215,17 @@
215
215
  "@ledgerhq/hw-transport-mocker": "^6.29.5-nightly.2",
216
216
  "@ledgerhq/ledger-cal-service": "^0.5.0-nightly.2",
217
217
  "@ledgerhq/live-config": "^3.1.0",
218
- "@ledgerhq/live-countervalues": "^0.5.7-nightly.0",
218
+ "@ledgerhq/live-countervalues": "^0.5.7-nightly.1",
219
219
  "@ledgerhq/live-dmk-shared": "^0.9.0-nightly.3",
220
- "@ledgerhq/live-countervalues-react": "^0.2.36-nightly.0",
220
+ "@ledgerhq/live-countervalues-react": "^0.2.36-nightly.1",
221
221
  "@ledgerhq/live-env": "^2.9.0-nightly.0",
222
222
  "@ledgerhq/live-hooks": "0.1.0",
223
223
  "@ledgerhq/live-network": "^2.0.8-nightly.1",
224
- "@ledgerhq/live-nft": "^0.8.7-nightly.0",
224
+ "@ledgerhq/live-nft": "^0.8.7-nightly.1",
225
225
  "@ledgerhq/live-promise": "^0.1.0",
226
- "@ledgerhq/live-signer-evm": "^0.4.3-nightly.0",
227
- "@ledgerhq/live-signer-solana": "^0.1.1-nightly.4",
228
- "@ledgerhq/live-wallet": "^0.10.10-nightly.1",
226
+ "@ledgerhq/live-signer-evm": "^0.4.3-nightly.1",
227
+ "@ledgerhq/live-signer-solana": "^0.1.1-nightly.5",
228
+ "@ledgerhq/live-wallet": "^0.10.10-nightly.2",
229
229
  "@ledgerhq/logs": "^6.12.0",
230
230
  "@ledgerhq/speculos-transport": "^0.2.1-nightly.1",
231
231
  "@ledgerhq/wallet-api-acre-module": "^0.5.0",
@@ -277,10 +277,10 @@
277
277
  "undici": "6.19.2",
278
278
  "uuid": "^8.3.2",
279
279
  "ws": "7",
280
- "@ledgerhq/device-react": "^0.2.31-nightly.3",
280
+ "@ledgerhq/device-react": "^0.2.31-nightly.4",
281
281
  "@ledgerhq/types-cryptoassets": "^7.23.0",
282
282
  "@ledgerhq/types-devices": "^6.25.3",
283
- "@ledgerhq/types-live": "^6.71.0-nightly.2"
283
+ "@ledgerhq/types-live": "^6.71.0-nightly.3"
284
284
  },
285
285
  "scripts": {
286
286
  "build": "zx ./scripts/build-ts.mjs",
@@ -7,7 +7,7 @@ import {
7
7
  findLatestAppCandidate,
8
8
  SpeculosTransport,
9
9
  } from "../load/speculos";
10
- import { SpeculosDevice } from "@ledgerhq/speculos-transport";
10
+ import { createSpeculosDeviceCI, releaseSpeculosDeviceCI } from "./speculosCI";
11
11
  import type { AppCandidate } from "@ledgerhq/coin-framework/bot/types";
12
12
  import { DeviceModelId } from "@ledgerhq/devices";
13
13
  import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
@@ -38,6 +38,8 @@ import { NFTTransaction, Transaction } from "./models/Transaction";
38
38
  import { Delegate } from "./models/Delegate";
39
39
  import { Swap } from "./models/Swap";
40
40
 
41
+ const isSpeculosRemote = process.env.REMOTE_SPECULOS === "true";
42
+
41
43
  export type Spec = {
42
44
  currency?: CryptoCurrency;
43
45
  appQuery: {
@@ -51,6 +53,10 @@ export type Spec = {
51
53
  };
52
54
 
53
55
  export type Dependency = { name: string; appVersion?: string };
56
+ export type SpeculosDevice = {
57
+ id: string;
58
+ port: number;
59
+ };
54
60
 
55
61
  export function setExchangeDependencies(dependencies: Dependency[]) {
56
62
  const map = new Map<string, Dependency>();
@@ -376,9 +382,14 @@ export async function startSpeculos(
376
382
  coinapps,
377
383
  onSpeculosDeviceCreated,
378
384
  };
379
-
380
385
  try {
381
- return await createSpeculosDevice(deviceParams);
386
+ const device = isSpeculosRemote
387
+ ? await createSpeculosDeviceCI(deviceParams)
388
+ : await createSpeculosDevice(deviceParams).then(device => {
389
+ invariant(device.ports.apiPort, "[E2E] Speculos apiPort is not defined");
390
+ return { id: device.id, port: device.ports.apiPort };
391
+ });
392
+ return device;
382
393
  } catch (e: unknown) {
383
394
  console.error(e);
384
395
  log("engine", `test ${testName} failed with ${String(e)}`);
@@ -388,7 +399,9 @@ export async function startSpeculos(
388
399
  export async function stopSpeculos(deviceId: string | undefined) {
389
400
  if (deviceId) {
390
401
  log("engine", `test ${deviceId} finished`);
391
- await releaseSpeculosDevice(deviceId);
402
+ isSpeculosRemote
403
+ ? await releaseSpeculosDeviceCI(deviceId)
404
+ : await releaseSpeculosDevice(deviceId);
392
405
  }
393
406
  }
394
407
 
@@ -402,11 +415,12 @@ interface ResponseData {
402
415
 
403
416
  export async function waitFor(text: string, maxAttempts: number = 10): Promise<string[]> {
404
417
  const speculosApiPort = getEnv("SPECULOS_API_PORT");
418
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
405
419
  let attempts = 0;
406
420
  let textFound: boolean = false;
407
421
  while (attempts < maxAttempts && !textFound) {
408
422
  const response = await axios.get<ResponseData>(
409
- `http://127.0.0.1:${speculosApiPort}/events?stream=false&currentscreenonly=true`,
423
+ `${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=true`,
410
424
  );
411
425
  const responseData = response.data;
412
426
  const texts = responseData.events.map(event => event.text);
@@ -423,7 +437,8 @@ export async function waitFor(text: string, maxAttempts: number = 10): Promise<s
423
437
 
424
438
  export async function pressBoth() {
425
439
  const speculosApiPort = getEnv("SPECULOS_API_PORT");
426
- await axios.post(`http://127.0.0.1:${speculosApiPort}/button/both`, {
440
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
441
+ await axios.post(`${speculosAddress}:${speculosApiPort}/button/both`, {
427
442
  action: "press-and-release",
428
443
  });
429
444
  }
@@ -451,22 +466,25 @@ export async function pressUntilTextFound(
451
466
  }
452
467
 
453
468
  async function fetchCurrentScreenTexts(speculosApiPort: number): Promise<string> {
469
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
454
470
  const response = await axios.get<ResponseData>(
455
- `http://127.0.0.1:${speculosApiPort}/events?stream=false&currentscreenonly=true`,
471
+ `${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=true`,
456
472
  );
457
473
  return response.data.events.map(event => event.text).join("");
458
474
  }
459
475
 
460
476
  async function fetchAllEvents(speculosApiPort: number): Promise<string[]> {
477
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
461
478
  const response = await axios.get<ResponseData>(
462
- `http://127.0.0.1:${speculosApiPort}/events?stream=false&currentscreenonly=false`,
479
+ `${speculosAddress}:${speculosApiPort}/events?stream=false&currentscreenonly=false`,
463
480
  );
464
481
  return response.data.events.map(event => event.text);
465
482
  }
466
483
 
467
484
  export async function pressRightButton(): Promise<void> {
468
485
  const speculosApiPort = getEnv("SPECULOS_API_PORT");
469
- await axios.post(`http://127.0.0.1:${speculosApiPort}/button/right`, {
486
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
487
+ await axios.post(`${speculosAddress}:${speculosApiPort}/button/right`, {
470
488
  action: "press-and-release",
471
489
  });
472
490
  }
@@ -486,9 +504,10 @@ export function containsSubstringInEvent(targetString: string, events: string[])
486
504
  }
487
505
 
488
506
  export async function takeScreenshot(port?: number): Promise<Buffer | undefined> {
507
+ const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
489
508
  const speculosApiPort = port ?? getEnv("SPECULOS_API_PORT");
490
509
  try {
491
- const response = await axios.get(`http://127.0.0.1:${speculosApiPort}/screenshot`, {
510
+ const response = await axios.get(`${speculosAddress}:${speculosApiPort}/screenshot`, {
492
511
  responseType: "arraybuffer",
493
512
  });
494
513
  return response.data;
@@ -0,0 +1,161 @@
1
+ import axios from "axios";
2
+ import {
3
+ conventionalAppSubpath,
4
+ DeviceParams,
5
+ reverseModelMap,
6
+ } from "@ledgerhq/speculos-transport";
7
+ import { SpeculosDevice } from "./speculos";
8
+ import https from "https";
9
+
10
+ const { SEED, GITHUB_TOKEN, AWS_ROLE, CLUSTER } = process.env;
11
+ const GIT_API_URL = "https://api.github.com/repos/LedgerHQ/actions/actions/";
12
+ const START_WORKFLOW_ID = "workflows/161487603/dispatches";
13
+ const STOP_WORKFLOW_ID = "workflows/161487604/dispatches";
14
+ const GITHUB_REF = "main";
15
+ const getSpeculosAddress = (runId: string) => `https://${runId}.speculos.aws.stg.ldg-tech.com`;
16
+ const speculosPort = 443;
17
+
18
+ function uniqueId(): string {
19
+ const timestamp = Date.now().toString(36);
20
+ const randomString = Math.random().toString(36).slice(2, 7);
21
+ return timestamp + randomString;
22
+ }
23
+
24
+ /**
25
+ * Helper function to make API requests with error handling
26
+ */
27
+ async function githubApiRequest<T = unknown>({
28
+ method = "POST",
29
+ urlSuffix,
30
+ data,
31
+ params,
32
+ }: {
33
+ method?: "GET" | "POST";
34
+ urlSuffix: string;
35
+ data?: Record<string, unknown>;
36
+ params?: Record<string, unknown>;
37
+ }): Promise<T> {
38
+ const url = `${GIT_API_URL}${urlSuffix}`;
39
+ try {
40
+ const response = await axios({
41
+ method,
42
+ url,
43
+ headers: {
44
+ Authorization: `Bearer ${GITHUB_TOKEN}`,
45
+ Accept: "application/vnd.github+json",
46
+ "X-GitHub-Api-Version": "2022-11-28",
47
+ },
48
+ data,
49
+ params,
50
+ });
51
+ return response.data;
52
+ } catch (error) {
53
+ console.warn(
54
+ `API Request failed: ${method} ${url}`,
55
+ axios.isAxiosError(error) ? error.response?.data : (error as Error).message,
56
+ );
57
+ throw error;
58
+ }
59
+ }
60
+
61
+ function waitForSpeculosReady(url: string, { interval = 2000, timeout = 120_000 } = {}) {
62
+ return new Promise((resolve, reject) => {
63
+ const startTime = Date.now();
64
+
65
+ function check() {
66
+ https
67
+ .get(url, res => {
68
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 400) {
69
+ process.env.SPECULOS_ADDRESS = url;
70
+ resolve(true);
71
+ } else {
72
+ retry();
73
+ }
74
+ })
75
+ .on("error", retry);
76
+ }
77
+
78
+ function retry() {
79
+ if (Date.now() - startTime >= timeout) {
80
+ reject(new Error(`Timeout: ${url} did not become available within ${timeout}ms`));
81
+ } else {
82
+ setTimeout(check, interval);
83
+ }
84
+ }
85
+
86
+ check();
87
+ });
88
+ }
89
+
90
+ function createStartPayload(deviceParams: DeviceParams, runId: string) {
91
+ const { model, firmware, appName, appVersion, dependency, dependencies } = deviceParams;
92
+
93
+ let additional_args = "";
94
+
95
+ if (dependency) {
96
+ additional_args = `-l ${dependency}:/apps/${conventionalAppSubpath(model, firmware, dependency, appVersion)}`;
97
+ } else if (dependencies) {
98
+ additional_args = [
99
+ ...new Set(
100
+ dependencies.map(
101
+ dep =>
102
+ `-l ${dep.name}:/apps/${conventionalAppSubpath(
103
+ model,
104
+ firmware,
105
+ dep.name,
106
+ dep.appVersion ?? "1.0.0",
107
+ )}`,
108
+ ),
109
+ ),
110
+ ].join(" ");
111
+ }
112
+
113
+ return {
114
+ ref: GITHUB_REF,
115
+ inputs: {
116
+ coin_app: appName,
117
+ coin_app_version: appVersion,
118
+ device: reverseModelMap[model],
119
+ device_os_version: firmware,
120
+ aws_role: AWS_ROLE,
121
+ cluster: CLUSTER,
122
+ seed: SEED,
123
+ run_id: runId,
124
+ additional_args,
125
+ },
126
+ };
127
+ }
128
+
129
+ export async function createSpeculosDeviceCI(
130
+ deviceParams: DeviceParams,
131
+ ): Promise<SpeculosDevice | undefined> {
132
+ try {
133
+ const runId = uniqueId();
134
+ console.warn("Creating remote speculos:", runId);
135
+ const data = createStartPayload(deviceParams, runId);
136
+ await githubApiRequest({ urlSuffix: START_WORKFLOW_ID, data });
137
+ await waitForSpeculosReady(getSpeculosAddress(runId));
138
+
139
+ return {
140
+ id: runId,
141
+ port: speculosPort,
142
+ };
143
+ } catch (e: unknown) {
144
+ console.error(e);
145
+ console.warn(
146
+ `Creating remote speculos ${deviceParams.appName}:${deviceParams.appVersion} failed with ${String(e)}`,
147
+ );
148
+ }
149
+ }
150
+
151
+ export async function releaseSpeculosDeviceCI(runId: string) {
152
+ const data = {
153
+ ref: GITHUB_REF,
154
+ inputs: {
155
+ run_id: runId.toString(),
156
+ aws_role: AWS_ROLE,
157
+ cluster: CLUSTER,
158
+ },
159
+ };
160
+ await githubApiRequest({ urlSuffix: STOP_WORKFLOW_ID, data });
161
+ }