@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.
- package/lib/e2e/speculos.d.ts +4 -1
- package/lib/e2e/speculos.d.ts.map +1 -1
- package/lib/e2e/speculos.js +24 -8
- package/lib/e2e/speculos.js.map +1 -1
- package/lib/e2e/speculosCI.d.ts +5 -0
- package/lib/e2e/speculosCI.d.ts.map +1 -0
- package/lib/e2e/speculosCI.js +129 -0
- package/lib/e2e/speculosCI.js.map +1 -0
- package/lib-es/e2e/speculos.d.ts +4 -1
- package/lib-es/e2e/speculos.d.ts.map +1 -1
- package/lib-es/e2e/speculos.js +24 -8
- package/lib-es/e2e/speculos.js.map +1 -1
- package/lib-es/e2e/speculosCI.d.ts +5 -0
- package/lib-es/e2e/speculosCI.d.ts.map +1 -0
- package/lib-es/e2e/speculosCI.js +121 -0
- package/lib-es/e2e/speculosCI.js.map +1 -0
- package/package.json +38 -38
- package/src/e2e/speculos.ts +29 -10
- package/src/e2e/speculosCI.ts +161 -0
package/lib/e2e/speculos.d.ts
CHANGED
@@ -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":";;AAEA,OAAO,EAKL,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/e2e/speculos.ts"],"names":[],"mappings":"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"}
|
package/lib/e2e/speculos.js
CHANGED
@@ -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
|
-
|
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
|
-
|
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(
|
363
|
+
const response = await axios_1.default.get(`${speculosAddress}:${speculosApiPort}/events?stream=false¤tscreenonly=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
|
-
|
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
|
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¤tscreenonly=true`);
|
387
400
|
return response.data.events.map(event => event.text).join("");
|
388
401
|
}
|
389
402
|
async function fetchAllEvents(speculosApiPort) {
|
390
|
-
const
|
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¤tscreenonly=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
|
-
|
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(
|
430
|
+
const response = await axios_1.default.get(`${speculosAddress}:${speculosApiPort}/screenshot`, {
|
415
431
|
responseType: "arraybuffer",
|
416
432
|
});
|
417
433
|
return response.data;
|
package/lib/e2e/speculos.js.map
CHANGED
@@ -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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"}
|
package/lib-es/e2e/speculos.d.ts
CHANGED
@@ -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":";;AAEA,OAAO,EAKL,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/e2e/speculos.ts"],"names":[],"mappings":"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"}
|
package/lib-es/e2e/speculos.js
CHANGED
@@ -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
|
-
|
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
|
-
|
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(
|
353
|
+
const response = await axios.get(`${speculosAddress}:${speculosApiPort}/events?stream=false¤tscreenonly=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
|
-
|
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
|
385
|
+
const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
|
386
|
+
const response = await axios.get(`${speculosAddress}:${speculosApiPort}/events?stream=false¤tscreenonly=true`);
|
374
387
|
return response.data.events.map(event => event.text).join("");
|
375
388
|
}
|
376
389
|
async function fetchAllEvents(speculosApiPort) {
|
377
|
-
const
|
390
|
+
const speculosAddress = process.env.SPECULOS_ADDRESS || "http://127.0.0.1";
|
391
|
+
const response = await axios.get(`${speculosAddress}:${speculosApiPort}/events?stream=false¤tscreenonly=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
|
-
|
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(
|
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
|
+
"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.
|
166
|
-
"@ledgerhq/coin-aptos": "^1.10.0-nightly.
|
167
|
-
"@ledgerhq/coin-bitcoin": "^0.15.7-nightly.
|
168
|
-
"@ledgerhq/coin-cardano": "^0.8.7-nightly.
|
169
|
-
"@ledgerhq/coin-casper": "^1.7.2-nightly.
|
170
|
-
"@ledgerhq/coin-celo": "^1.1.5-nightly.
|
171
|
-
"@ledgerhq/coin-cosmos": "^0.14.3-nightly.
|
172
|
-
"@ledgerhq/coin-evm": "^2.22.1-nightly.
|
173
|
-
"@ledgerhq/coin-filecoin": "^1.9.7-nightly.
|
174
|
-
"@ledgerhq/coin-framework": "^5.0
|
175
|
-
"@ledgerhq/coin-hedera": "^1.6.7-nightly.
|
176
|
-
"@ledgerhq/coin-icon": "^0.10.7-nightly.
|
177
|
-
"@ledgerhq/coin-internet_computer": "^1.7.7-nightly.
|
178
|
-
"@ledgerhq/coin-mina": "^1.1.6-nightly.
|
179
|
-
"@ledgerhq/coin-multiversx": "^0.4.7-nightly.
|
180
|
-
"@ledgerhq/coin-near": "^0.11.7-nightly.
|
181
|
-
"@ledgerhq/coin-polkadot": "^6.1.1-nightly.
|
182
|
-
"@ledgerhq/coin-solana": "^0.24.0-nightly.
|
183
|
-
"@ledgerhq/coin-stacks": "^0.8.7-nightly.
|
184
|
-
"@ledgerhq/coin-stellar": "^5.0.3-nightly.
|
185
|
-
"@ledgerhq/coin-sui": "^0.4.0-nightly.
|
186
|
-
"@ledgerhq/coin-tezos": "^5.2.0-nightly.
|
187
|
-
"@ledgerhq/coin-ton": "^0.11.0-nightly.
|
188
|
-
"@ledgerhq/coin-tron": "^4.1.1-nightly.
|
189
|
-
"@ledgerhq/coin-vechain": "^2.7.7-nightly.
|
190
|
-
"@ledgerhq/coin-xrp": "^6.1.2-nightly.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
227
|
-
"@ledgerhq/live-signer-solana": "^0.1.1-nightly.
|
228
|
-
"@ledgerhq/live-wallet": "^0.10.10-nightly.
|
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.
|
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.
|
283
|
+
"@ledgerhq/types-live": "^6.71.0-nightly.3"
|
284
284
|
},
|
285
285
|
"scripts": {
|
286
286
|
"build": "zx ./scripts/build-ts.mjs",
|
package/src/e2e/speculos.ts
CHANGED
@@ -7,7 +7,7 @@ import {
|
|
7
7
|
findLatestAppCandidate,
|
8
8
|
SpeculosTransport,
|
9
9
|
} from "../load/speculos";
|
10
|
-
import {
|
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
|
-
|
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
|
-
|
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
|
-
|
423
|
+
`${speculosAddress}:${speculosApiPort}/events?stream=false¤tscreenonly=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
|
-
|
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
|
-
|
471
|
+
`${speculosAddress}:${speculosApiPort}/events?stream=false¤tscreenonly=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
|
-
|
479
|
+
`${speculosAddress}:${speculosApiPort}/events?stream=false¤tscreenonly=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
|
-
|
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(
|
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
|
+
}
|