@ledgerhq/coin-tester 0.3.0-nightly.0 → 0.3.1-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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-tester@0.2.5 build /home/runner/work/ledger-live/ledger-live/libs/coin-tester
3
- > tsc && tsc -m ES6 --outDir lib-es
2
+ > @ledgerhq/coin-tester@0.3.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-tester
3
+ > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,6 +1,18 @@
1
1
  # @ledgerhq/coin-tester
2
2
 
3
- ## 0.3.0-nightly.0
3
+ ## 0.3.1-nightly.0
4
+
5
+ ### Patch Changes
6
+
7
+ - [#9248](https://github.com/LedgerHQ/ledger-live/pull/9248) [`94a59f2`](https://github.com/LedgerHQ/ledger-live/commit/94a59f2030b8b25962e183919017a1e25454fdfb) Thanks [@francois-guerin-ledger](https://github.com/francois-guerin-ledger)! - fix (coin-tester): stop EVM coin tester smoothly
8
+
9
+ ## 0.3.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#8412](https://github.com/LedgerHQ/ledger-live/pull/8412) [`0397e32`](https://github.com/LedgerHQ/ledger-live/commit/0397e32253ea2af6fc901d69b51f6a59896f3e6a) Thanks [@lambertkevin](https://github.com/lambertkevin)! - Coin-tester clean up. Fixing italian typo (sorry pasta bros), fixing Polkadot coin-tester log noise & docker-compose.
14
+
15
+ ## 0.3.0-next.0
4
16
 
5
17
  ### Minor Changes
6
18
 
package/lib/main.js CHANGED
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
12
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
4
  };
@@ -15,114 +6,111 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
6
  exports.executeScenario = executeScenario;
16
7
  const chalk_1 = __importDefault(require("chalk"));
17
8
  const rxjs_1 = require("rxjs");
18
- function executeScenario(scenario) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
21
- try {
22
- const { accountBridge, currencyBridge, account, retryInterval, retryLimit, onSignerConfirmation, } = yield scenario.setup();
23
- console.log("Setup completed ");
9
+ async function executeScenario(scenario) {
10
+ try {
11
+ const { accountBridge, currencyBridge, account, retryInterval, retryLimit, onSignerConfirmation, } = await scenario.setup();
12
+ console.log("Setup completed ✓");
13
+ console.log("\n");
14
+ console.log(chalk_1.default.bgBlue(" Address "), " ", chalk_1.default.bold.blue(account.freshAddress), "\n\n");
15
+ const data = await currencyBridge.preload(account.currency);
16
+ currencyBridge.hydrate(data, account.currency);
17
+ console.log("Preload + hydrate completed ✓");
18
+ await scenario.beforeSync?.();
19
+ console.log("Running a synchronization on the account...");
20
+ let scenarioAccount = await (0, rxjs_1.firstValueFrom)(accountBridge
21
+ .sync(account, { paginationConfig: {} })
22
+ .pipe((0, rxjs_1.reduce)((acc, f) => f(acc), account)));
23
+ console.log("Synchronization completed ✓");
24
+ await scenario.beforeAll?.(scenarioAccount);
25
+ console.log("BeforeAll completed ✓");
26
+ console.log("\n\n");
27
+ console.log(chalk_1.default.bgCyan.black.bold(" ✧ "), " ", chalk_1.default.cyan(`Scenario: ${chalk_1.default.italic.bold(scenario.name)}`), " ", chalk_1.default.bgCyan.black.bold(" ✧ "), " → ", chalk_1.default.bold.cyan(" Starting ◌"));
28
+ const scenarioTransactions = scenario.getTransactions(account.freshAddress);
29
+ for (const testTransaction of scenarioTransactions) {
24
30
  console.log("\n");
25
- console.log(chalk_1.default.bgBlue(" Address "), " → ", chalk_1.default.bold.blue(account.freshAddress), "\n\n");
26
- const data = yield currencyBridge.preload(account.currency);
27
- currencyBridge.hydrate(data, account.currency);
28
- console.log("Preload + hydrate completed ✓");
29
- yield ((_a = scenario.beforeSync) === null || _a === void 0 ? void 0 : _a.call(scenario));
30
- console.log("Running a synchronization on the account...");
31
- let scenarioAccount = yield (0, rxjs_1.firstValueFrom)(accountBridge
32
- .sync(account, { paginationConfig: {} })
33
- .pipe((0, rxjs_1.reduce)((acc, f) => f(acc), account)));
34
- console.log("Synchronization completed ✓");
35
- yield ((_b = scenario.beforeAll) === null || _b === void 0 ? void 0 : _b.call(scenario, scenarioAccount));
36
- console.log("BeforeAll completed ✓");
37
- console.log("\n\n");
38
- console.log(chalk_1.default.bgCyan.black.bold(" ✧ "), " ", chalk_1.default.cyan(`Scenario: ${chalk_1.default.italic.bold(scenario.name)}`), " ", chalk_1.default.bgCyan.black.bold(" ✧ "), " → ", chalk_1.default.bold.cyan(" Starting ◌"));
39
- const scenarioTransactions = scenario.getTransactions(account.freshAddress);
40
- for (const testTransaction of scenarioTransactions) {
41
- console.log("\n");
42
- console.log(chalk_1.default.cyan("Transaction:", chalk_1.default.bold(testTransaction.name), "◌"));
43
- yield ((_c = scenario.beforeEach) === null || _c === void 0 ? void 0 : _c.call(scenario, scenarioAccount));
44
- console.log("Before each ✔️");
45
- if (scenarioTransactions.indexOf(testTransaction) > 0) {
46
- yield ((_d = scenario.beforeSync) === null || _d === void 0 ? void 0 : _d.call(scenario));
47
- scenarioAccount = yield (0, rxjs_1.firstValueFrom)(accountBridge
48
- .sync(scenarioAccount, { paginationConfig: {} })
49
- .pipe((0, rxjs_1.reduce)((acc, f) => f(acc), scenarioAccount)));
31
+ console.log(chalk_1.default.cyan("Transaction:", chalk_1.default.bold(testTransaction.name), ""));
32
+ await scenario.beforeEach?.(scenarioAccount);
33
+ console.log("Before each ✔️");
34
+ if (scenarioTransactions.indexOf(testTransaction) > 0) {
35
+ await scenario.beforeSync?.();
36
+ scenarioAccount = await (0, rxjs_1.firstValueFrom)(accountBridge
37
+ .sync(scenarioAccount, { paginationConfig: {} })
38
+ .pipe((0, rxjs_1.reduce)((acc, f) => f(acc), scenarioAccount)));
39
+ }
40
+ const previousAccount = Object.freeze(scenarioAccount);
41
+ const defaultTransaction = accountBridge.createTransaction(scenarioAccount);
42
+ const transaction = await accountBridge.prepareTransaction(scenarioAccount, {
43
+ ...defaultTransaction,
44
+ ...testTransaction,
45
+ });
46
+ console.log(" → ", "🧑‍🍳 ", chalk_1.default.bold("Prepared the transaction"), "✓");
47
+ const status = await accountBridge.getTransactionStatus(scenarioAccount, transaction);
48
+ if (Object.entries(status.errors).length) {
49
+ throw new Error(`${testTransaction.name} transaction\nError in transaction status: ${JSON.stringify(status.errors, null, 3)}`);
50
+ }
51
+ console.log(" → ", "🪲 ", chalk_1.default.bold("No status errors detected"), "✓");
52
+ const { signedOperation } = await (0, rxjs_1.firstValueFrom)(accountBridge
53
+ .signOperation({
54
+ account: scenarioAccount,
55
+ transaction,
56
+ deviceId: "",
57
+ })
58
+ .pipe((0, rxjs_1.map)(e => {
59
+ if (e.type === "device-signature-requested") {
60
+ onSignerConfirmation?.(e);
50
61
  }
51
- const previousAccount = Object.freeze(scenarioAccount);
52
- const defaultTransaction = accountBridge.createTransaction(scenarioAccount);
53
- const transaction = yield accountBridge.prepareTransaction(scenarioAccount, Object.assign(Object.assign({}, defaultTransaction), testTransaction));
54
- console.log(" ", "🧑‍🍳 ", chalk_1.default.bold("Prepared the transaction"), "✓");
55
- const status = yield accountBridge.getTransactionStatus(scenarioAccount, transaction);
56
- if (Object.entries(status.errors).length) {
57
- throw new Error(`${testTransaction.name} transaction\nError in transaction status: ${JSON.stringify(status.errors, null, 3)}`);
62
+ return e;
63
+ }), (0, rxjs_1.first)((e) => e.type === "signed")));
64
+ console.log(" ", "🔏 ", chalk_1.default.bold("Signed the transaction"), "✓");
65
+ const optimisticOperation = await accountBridge.broadcast({
66
+ signedOperation,
67
+ account: scenarioAccount,
68
+ });
69
+ console.log(" → ", "🛫 ", chalk_1.default.bold("Broadcasted the transaction"), "✓");
70
+ const retry_limit = retryLimit ?? 10;
71
+ async function expectHandler(retry) {
72
+ await scenario.beforeSync?.();
73
+ scenarioAccount = await (0, rxjs_1.firstValueFrom)(accountBridge
74
+ .sync({ ...scenarioAccount, pendingOperations: [optimisticOperation] }, { paginationConfig: {} })
75
+ .pipe((0, rxjs_1.reduce)((acc, f) => f(acc), scenarioAccount)));
76
+ if (!testTransaction.expect) {
77
+ console.warn(chalk_1.default.yellow(`No expects in the transaction ${chalk_1.default.bold(testTransaction.name)}. You might want to add tests in this transaction.`));
78
+ return;
58
79
  }
59
- console.log(" → ", "🪲 ", chalk_1.default.bold("No status errors detected"), "✓");
60
- const { signedOperation } = yield (0, rxjs_1.firstValueFrom)(accountBridge
61
- .signOperation({
62
- account: scenarioAccount,
63
- transaction,
64
- deviceId: "",
65
- })
66
- .pipe((0, rxjs_1.map)(e => {
67
- if (e.type === "device-signature-requested") {
68
- onSignerConfirmation === null || onSignerConfirmation === void 0 ? void 0 : onSignerConfirmation(e);
69
- }
70
- return e;
71
- }), (0, rxjs_1.first)((e) => e.type === "signed")));
72
- console.log(" → ", "🔏 ", chalk_1.default.bold("Signed the transaction"), "✓");
73
- const optimisticOperation = yield accountBridge.broadcast({
74
- signedOperation,
75
- account: scenarioAccount,
76
- });
77
- console.log(" → ", "🛫 ", chalk_1.default.bold("Broadcasted the transaction"), "✓");
78
- const retry_limit = retryLimit !== null && retryLimit !== void 0 ? retryLimit : 10;
79
- function expectHandler(retry) {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- var _a, _b, _c;
82
- yield ((_a = scenario.beforeSync) === null || _a === void 0 ? void 0 : _a.call(scenario));
83
- scenarioAccount = yield (0, rxjs_1.firstValueFrom)(accountBridge
84
- .sync(Object.assign(Object.assign({}, scenarioAccount), { pendingOperations: [optimisticOperation] }), { paginationConfig: {} })
85
- .pipe((0, rxjs_1.reduce)((acc, f) => f(acc), scenarioAccount)));
86
- if (!testTransaction.expect) {
87
- console.warn(chalk_1.default.yellow(`No expects in the transaction ${chalk_1.default.bold(testTransaction.name)}. You might want to add tests in this transaction.`));
88
- return;
89
- }
90
- try {
91
- (_b = testTransaction.expect) === null || _b === void 0 ? void 0 : _b.call(testTransaction, previousAccount, scenarioAccount);
92
- }
93
- catch (err) {
94
- if (!((_c = err === null || err === void 0 ? void 0 : err.matcherResult) === null || _c === void 0 ? void 0 : _c.pass)) {
95
- if (retry === 0) {
96
- console.error(chalk_1.default.red(`Retried ${retry_limit} time(s) and could not assert all expects for transaction ${chalk_1.default.bold(testTransaction.name)}`));
97
- throw err;
98
- }
99
- console.warn(chalk_1.default.magenta("Test asssertion failed. Retrying..."));
100
- yield new Promise(resolve => setTimeout(resolve, retryInterval !== null && retryInterval !== void 0 ? retryInterval : 3 * 1000));
101
- yield expectHandler(retry - 1);
102
- }
103
- else {
104
- throw err;
105
- }
80
+ try {
81
+ testTransaction.expect?.(previousAccount, scenarioAccount);
82
+ }
83
+ catch (err) {
84
+ if (!err?.matcherResult?.pass) {
85
+ if (retry === 0) {
86
+ console.error(chalk_1.default.red(`Retried ${retry_limit} time(s) and could not assert all expects for transaction ${chalk_1.default.bold(testTransaction.name)}`));
87
+ throw err;
106
88
  }
107
- });
89
+ console.warn(chalk_1.default.magenta("Test asssertion failed. Retrying..."));
90
+ await new Promise(resolve => setTimeout(resolve, retryInterval ?? 3 * 1000));
91
+ await expectHandler(retry - 1);
92
+ }
93
+ else {
94
+ throw err;
95
+ }
108
96
  }
109
- yield ((_e = scenario.mockIndexer) === null || _e === void 0 ? void 0 : _e.call(scenario, scenarioAccount, optimisticOperation));
110
- yield expectHandler(retry_limit);
111
- yield ((_f = scenario.afterEach) === null || _f === void 0 ? void 0 : _f.call(scenario, scenarioAccount));
112
- console.log("After each ✔️");
113
- console.log(chalk_1.default.green("Transaction:", chalk_1.default.bold(testTransaction.name), "completed ✓"));
114
97
  }
115
- console.log("\n");
116
- yield ((_g = scenario.afterAll) === null || _g === void 0 ? void 0 : _g.call(scenario, scenarioAccount));
117
- console.log("afterAll completed ✓");
118
- yield ((_h = scenario.teardown) === null || _h === void 0 ? void 0 : _h.call(scenario));
119
- console.log("\n\n", chalk_1.default.bgGreen.black.bold(""), " ", chalk_1.default.green(`Scenario: ${chalk_1.default.italic.bold(scenario.name)}`), " ", chalk_1.default.bgGreen.black.bold(" ✧ "), " → ", chalk_1.default.bold.green(" Completed 🎉"), "\n\n");
120
- }
121
- catch (err) {
122
- console.error("\n\n", chalk_1.default.bgRed.black.bold(" ✧ "), " ", chalk_1.default.red(`Scenario: ${chalk_1.default.italic.bold(scenario.name)}`), " ", chalk_1.default.bgRed.black.bold(" ✧ "), " → ", chalk_1.default.bold.red(" Failed ❌"), "\n\n");
123
- yield ((_j = scenario.teardown) === null || _j === void 0 ? void 0 : _j.call(scenario));
124
- throw err;
98
+ await scenario.mockIndexer?.(scenarioAccount, optimisticOperation);
99
+ await expectHandler(retry_limit);
100
+ await scenario.afterEach?.(scenarioAccount);
101
+ console.log("After each ✔️");
102
+ console.log(chalk_1.default.green("Transaction:", chalk_1.default.bold(testTransaction.name), "completed "));
125
103
  }
126
- });
104
+ console.log("\n");
105
+ await scenario.afterAll?.(scenarioAccount);
106
+ console.log("afterAll completed ✓");
107
+ await scenario.teardown?.();
108
+ console.log("\n\n", chalk_1.default.bgGreen.black.bold(" ✧ "), " ", chalk_1.default.green(`Scenario: ${chalk_1.default.italic.bold(scenario.name)}`), " ", chalk_1.default.bgGreen.black.bold(" ✧ "), " → ", chalk_1.default.bold.green(" Completed 🎉"), "\n\n");
109
+ }
110
+ catch (err) {
111
+ console.error("\n\n", chalk_1.default.bgRed.black.bold(" ✧ "), " ", chalk_1.default.red(`Scenario: ${chalk_1.default.italic.bold(scenario.name)}`), " ", chalk_1.default.bgRed.black.bold(" ✧ "), " → ", chalk_1.default.bold.red(" Failed ❌"), "\n\n");
112
+ await scenario.teardown?.();
113
+ throw err;
114
+ }
127
115
  }
128
116
  //# sourceMappingURL=main.js.map
package/lib/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;;;;AAiDA,0CAgNC;AAzPD,kDAA0B;AAC1B,+BAA0D;AAwCnD,KAAK,UAAU,eAAe,CACnC,QAAwB;IAExB,IAAI,CAAC;QACH,MAAM,EACJ,aAAa,EACb,cAAc,EACd,OAAO,EACP,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QAE3B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACjC,KAAK,EACL,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EACrC,MAAM,CACP,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5D,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QAC3D,IAAI,eAAe,GAAG,MAAM,IAAA,qBAAc,EACxC,aAAa;aACV,IAAI,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;aACvC,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAC7C,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAE3C,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC,eAAe,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAErC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAC9B,GAAG,EACH,eAAK,CAAC,IAAI,CAAC,aAAa,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAE3D,GAAG,EACH,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAC9B,KAAK,EACL,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAChC,CAAC;QAEF,MAAM,oBAAoB,GAAG,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE5E,KAAK,MAAM,eAAe,IAAI,oBAAoB,EAAE,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,EAAE,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAE/E,MAAM,QAAQ,CAAC,UAAU,EAAE,CAAC,eAAe,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAE9B,IAAI,oBAAoB,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtD,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC9B,eAAe,GAAG,MAAM,IAAA,qBAAc,EACpC,aAAa;qBACV,IAAI,CAAC,eAAe,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC;qBAC/C,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,CACrD,CAAC;YACJ,CAAC;YAED,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAEvD,MAAM,kBAAkB,GAAG,aAAa,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAC5E,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,kBAAkB,CAAC,eAAe,EAAE;gBAC1E,GAAG,kBAAkB;gBACrB,GAAG,eAAe;aACd,CAAC,CAAC;YAER,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,eAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE,GAAG,CAAC,CAAC;YAE1E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,oBAAoB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;YACtF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CACb,GAAG,eAAe,CAAC,IAAI,8CAA8C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAC9G,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,eAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,GAAG,CAAC,CAAC;YAExE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,IAAA,qBAAc,EAC9C,aAAa;iBACV,aAAa,CAAC;gBACb,OAAO,EAAE,eAAe;gBACxB,WAAW;gBACX,QAAQ,EAAE,EAAE;aACb,CAAC;iBACD,IAAI,CACH,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE;gBACN,IAAI,CAAC,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;oBAC5C,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC;gBAED,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,EACF,IAAA,YAAK,EAAC,CAAC,CAAC,EAAgD,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAChF,CACJ,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,eAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,GAAG,CAAC,CAAC;YAErE,MAAM,mBAAmB,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC;gBACxD,eAAe;gBACf,OAAO,EAAE,eAAe;aACzB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,eAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,EAAE,GAAG,CAAC,CAAC;YAE1E,MAAM,WAAW,GAAG,UAAU,IAAI,EAAE,CAAC;YAErC,KAAK,UAAU,aAAa,CAAC,KAAa;gBACxC,MAAM,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;gBAC9B,eAAe,GAAG,MAAM,IAAA,qBAAc,EACpC,aAAa;qBACV,IAAI,CACH,EAAE,GAAG,eAAe,EAAE,iBAAiB,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAChE,EAAE,gBAAgB,EAAE,EAAE,EAAE,CACzB;qBACA,IAAI,CAAC,IAAA,aAAM,EAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC,CACrD,CAAC;gBAEF,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;oBAC5B,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,iCAAiC,eAAK,CAAC,IAAI,CACzC,eAAe,CAAC,IAAI,CACrB,oDAAoD,CACtD,CACF,CAAC;oBAEF,OAAO;gBACT,CAAC;gBAED,IAAI,CAAC;oBACH,eAAe,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;gBAC7D,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAE,GAA6C,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;wBACzE,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;4BAChB,OAAO,CAAC,KAAK,CACX,eAAK,CAAC,GAAG,CACP,WAAW,WAAW,6DAA6D,eAAK,CAAC,IAAI,CAC3F,eAAe,CAAC,IAAI,CACrB,EAAE,CACJ,CACF,CAAC;4BAEF,MAAM,GAAG,CAAC;wBACZ,CAAC;wBAED,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,CAAC;wBACnE,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;wBAC7E,MAAM,aAAa,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,MAAM,GAAG,CAAC;oBACZ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YACnE,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;YAEjC,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC,eAAe,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,EAAE,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QAC7F,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACpC,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAE5B,OAAO,CAAC,GAAG,CACT,MAAM,EACN,eAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAC/B,GAAG,EACH,eAAK,CAAC,KAAK,CAAC,aAAa,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAC5D,GAAG,EACH,eAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAC/B,KAAK,EACL,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAClC,MAAM,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,MAAM,EACN,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAC7B,GAAG,EACH,eAAK,CAAC,GAAG,CAAC,aAAa,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAC1D,GAAG,EACH,eAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAC7B,KAAK,EACL,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAC5B,MAAM,CACP,CAAC;QAEF,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QAE5B,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/signers/speculos.ts"],"names":[],"mappings":"AAMA,OAAO,qBAAqB,MAAM,2CAA2C,CAAC;AAyB9E,wBAAsB,aAAa,CAAC,eAAe,EAAE,IAAI,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1E,SAAS,EAAE,qBAAqB,CAAC;IACjC,yBAAyB,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC,CA4ED;AAED,wBAAsB,YAAY,kBAOjC"}
1
+ {"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/signers/speculos.ts"],"names":[],"mappings":"AAMA,OAAO,qBAAqB,MAAM,2CAA2C,CAAC;AAyB9E,wBAAsB,aAAa,CAAC,eAAe,EAAE,IAAI,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1E,SAAS,EAAE,qBAAqB,CAAC;IACjC,yBAAyB,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC,CA4ED;AAED,wBAAsB,YAAY,kBAQjC"}
@@ -22,15 +22,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
25
  var __importDefault = (this && this.__importDefault) || function (mod) {
35
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
27
  };
@@ -58,86 +49,79 @@ function ensureEnv() {
58
49
  }
59
50
  });
60
51
  }
61
- function spawnSpeculos(nanoAppEndpoint) {
62
- return __awaiter(this, void 0, void 0, function* () {
63
- ensureEnv();
64
- console.log(`Starting speculos...`);
65
- try {
66
- const { data: blob } = yield (0, axios_1.default)({
67
- url: `https://raw.githubusercontent.com/LedgerHQ/coin-apps/master/nanox${nanoAppEndpoint}`,
68
- method: "GET",
69
- responseType: "stream",
70
- headers: {
71
- Authorization: `Bearer ${process.env.GH_TOKEN}`,
72
- },
73
- });
74
- yield promises_1.default.mkdir(path_1.default.resolve(cwd, "tmp"), { recursive: true });
75
- yield promises_1.default.writeFile(path_1.default.resolve(cwd, "tmp/app.elf"), blob, "binary");
52
+ async function spawnSpeculos(nanoAppEndpoint) {
53
+ ensureEnv();
54
+ console.log(`Starting speculos...`);
55
+ try {
56
+ const { data: blob } = await (0, axios_1.default)({
57
+ url: `https://raw.githubusercontent.com/LedgerHQ/coin-apps/master/nanox${nanoAppEndpoint}`,
58
+ method: "GET",
59
+ responseType: "stream",
60
+ headers: {
61
+ Authorization: `Bearer ${process.env.GH_TOKEN}`,
62
+ },
63
+ });
64
+ await promises_1.default.mkdir(path_1.default.resolve(cwd, "tmp"), { recursive: true });
65
+ await promises_1.default.writeFile(path_1.default.resolve(cwd, "tmp/app.elf"), blob, "binary");
66
+ }
67
+ catch (err) {
68
+ if (err instanceof axios_1.AxiosError) {
69
+ throw new Error(`${err.status}: Failed to download the app.elf file from ${nanoAppEndpoint}\nMake sure that your GH_TOKEN is correct and has the right permissions.`);
76
70
  }
77
- catch (err) {
78
- if (err instanceof axios_1.AxiosError) {
79
- throw new Error(`${err.status}: Failed to download the app.elf file from ${nanoAppEndpoint}\nMake sure that your GH_TOKEN is correct and has the right permissions.`);
80
- }
81
- throw err;
71
+ throw err;
72
+ }
73
+ await compose.upOne("speculos", {
74
+ cwd,
75
+ log: Boolean(process.env.DEBUG),
76
+ env: process.env,
77
+ });
78
+ async function checkSpeculosLogs() {
79
+ const { out } = await compose.logs("speculos", { cwd, env: process.env });
80
+ if (out.includes("Running on all addresses (0.0.0.0)")) {
81
+ console.log(chalk_1.default.bgYellowBright.black(" - SPECULOS READY ✅ - "));
82
+ return hw_transport_node_speculos_http_1.default.open({
83
+ apiPort: SPECULOS_API_PORT,
84
+ });
82
85
  }
83
- yield compose.upOne("speculos", {
84
- cwd,
85
- log: Boolean(process.env.DEBUG),
86
- env: process.env,
87
- });
88
- function checkSpeculosLogs() {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const { out } = yield compose.logs("speculos", { cwd, env: process.env });
91
- if (out.includes("Running on all addresses (0.0.0.0)")) {
92
- console.log(chalk_1.default.bgYellowBright.black(" - SPECULOS READY ✅ - "));
93
- return hw_transport_node_speculos_http_1.default.open({
94
- apiPort: SPECULOS_API_PORT,
86
+ await delay(200);
87
+ return checkSpeculosLogs();
88
+ }
89
+ function getOnSpeculosConfirmation(approvalText = "Accept") {
90
+ async function onSpeculosConfirmation(e) {
91
+ if (e?.type === "device-signature-requested") {
92
+ const { data } = await axios_1.default.get(`http://localhost:${SPECULOS_API_PORT}/events?currentscreenonly=true`);
93
+ if (data.events[0].text !== approvalText) {
94
+ await axios_1.default.post(`http://localhost:${SPECULOS_API_PORT}/button/right`, {
95
+ action: "press-and-release",
96
+ });
97
+ onSpeculosConfirmation(e);
98
+ }
99
+ else {
100
+ await axios_1.default.post(`http://localhost:${SPECULOS_API_PORT}/button/both`, {
101
+ action: "press-and-release",
95
102
  });
96
103
  }
97
- yield delay(200);
98
- return checkSpeculosLogs();
99
- });
100
- }
101
- function getOnSpeculosConfirmation(approvalText = "Accept") {
102
- function onSpeculosConfirmation(e) {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- if ((e === null || e === void 0 ? void 0 : e.type) === "device-signature-requested") {
105
- const { data } = yield axios_1.default.get(`http://localhost:${SPECULOS_API_PORT}/events?currentscreenonly=true`);
106
- if (data.events[0].text !== approvalText) {
107
- yield axios_1.default.post(`http://localhost:${SPECULOS_API_PORT}/button/right`, {
108
- action: "press-and-release",
109
- });
110
- onSpeculosConfirmation(e);
111
- }
112
- else {
113
- yield axios_1.default.post(`http://localhost:${SPECULOS_API_PORT}/button/both`, {
114
- action: "press-and-release",
115
- });
116
- }
117
- }
118
- });
119
104
  }
120
- return onSpeculosConfirmation;
121
105
  }
122
- return checkSpeculosLogs().then(transport => {
123
- return {
124
- transport,
125
- getOnSpeculosConfirmation,
126
- };
127
- });
106
+ return onSpeculosConfirmation;
107
+ }
108
+ return checkSpeculosLogs().then(transport => {
109
+ return {
110
+ transport,
111
+ getOnSpeculosConfirmation,
112
+ };
128
113
  });
129
114
  }
130
- function killSpeculos() {
131
- return __awaiter(this, void 0, void 0, function* () {
132
- console.log("Stopping speculos...");
133
- yield compose.down({
134
- cwd,
135
- log: Boolean(process.env.DEBUG),
136
- env: process.env,
137
- });
115
+ async function killSpeculos() {
116
+ console.log("Stopping speculos...");
117
+ await compose.down({
118
+ cwd,
119
+ log: Boolean(process.env.DEBUG),
120
+ env: process.env,
121
+ commandOptions: ["--remove-orphans"],
138
122
  });
139
123
  }
140
- ["exit", "SIGINT", "SIGQUIT", "SIGTERM", "SIGUSR1", "SIGUSR2", "uncaughtException"].map(e => process.on(e, () => __awaiter(void 0, void 0, void 0, function* () {
141
- yield killSpeculos();
142
- })));
124
+ ["exit", "SIGINT", "SIGQUIT", "SIGTERM", "SIGUSR1", "SIGUSR2", "uncaughtException"].map(e => process.on(e, async () => {
125
+ await killSpeculos();
126
+ }));
143
127
  //# sourceMappingURL=speculos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"speculos.js","sourceRoot":"","sources":["../../src/signers/speculos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speculos.js","sourceRoot":"","sources":["../../src/signers/speculos.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,sCA+EC;AAED,oCAQC;AAxHD,gDAAwB;AACxB,kDAA0B;AAC1B,2DAA6B;AAC7B,wDAA0C;AAC1C,+CAA0C;AAE1C,gHAA8E;AAG9E,MAAM,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,GAAU,CAAC;AACjD,MAAM,GAAG,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAEjC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtF,SAAS,SAAS;IAChB,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAC1E,MAAM,sBAAsB,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAElD,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CACb,yCAAyC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAC9F,CAAC;IACJ,CAAC;IAED,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;QAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,YAAY,WAAW,0CAA0C,CAAC,CAAC;QAClF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,eAA6B;IAI/D,SAAS,EAAE,CAAC;IACZ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,eAAK,EAAC;YACjC,GAAG,EAAE,oEAAoE,eAAe,EAAE;YAC1F,MAAM,EAAE,KAAK;YACb,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;aAChD;SACF,CAAC,CAAC;QAEH,MAAM,kBAAE,CAAC,KAAK,CAAC,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,MAAM,kBAAE,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,kBAAU,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,CAAC,MAAM,8CAA8C,eAAe,0EAA0E,CACrJ,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE;QAC9B,GAAG;QACH,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,KAAK,UAAU,iBAAiB;QAC9B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE1E,IAAI,GAAG,CAAC,QAAQ,CAAC,oCAAoC,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,cAAc,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACpE,OAAO,yCAAqB,CAAC,IAAI,CAAC;gBAChC,OAAO,EAAE,iBAAiB;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,SAAS,yBAAyB,CAAC,YAAY,GAAG,QAAQ;QACxD,KAAK,UAAU,sBAAsB,CAAC,CAAsB;YAC1D,IAAI,CAAC,EAAE,IAAI,KAAK,4BAA4B,EAAE,CAAC;gBAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,eAAK,CAAC,GAAG,CAC9B,oBAAoB,iBAAiB,gCAAgC,CACtE,CAAC;gBAEF,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACzC,MAAM,eAAK,CAAC,IAAI,CAAC,oBAAoB,iBAAiB,eAAe,EAAE;wBACrE,MAAM,EAAE,mBAAmB;qBAC5B,CAAC,CAAC;oBAEH,sBAAsB,CAAC,CAAC,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,MAAM,eAAK,CAAC,IAAI,CAAC,oBAAoB,iBAAiB,cAAc,EAAE;wBACpE,MAAM,EAAE,mBAAmB;qBAC5B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,OAAO,iBAAiB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QAC1C,OAAO;YACL,SAAS;YACT,yBAAyB;SAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,MAAM,OAAO,CAAC,IAAI,CAAC;QACjB,GAAG;QACH,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,cAAc,EAAE,CAAC,kBAAkB,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAED,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC1F,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;IACvB,MAAM,YAAY,EAAE,CAAC;AACvB,CAAC,CAAC,CACH,CAAC"}
package/lib-es/main.js CHANGED
@@ -1,122 +1,110 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import chalk from "chalk";
11
2
  import { first, firstValueFrom, map, reduce } from "rxjs";
12
- export function executeScenario(scenario) {
13
- return __awaiter(this, void 0, void 0, function* () {
14
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
15
- try {
16
- const { accountBridge, currencyBridge, account, retryInterval, retryLimit, onSignerConfirmation, } = yield scenario.setup();
17
- console.log("Setup completed ");
3
+ export async function executeScenario(scenario) {
4
+ try {
5
+ const { accountBridge, currencyBridge, account, retryInterval, retryLimit, onSignerConfirmation, } = await scenario.setup();
6
+ console.log("Setup completed ✓");
7
+ console.log("\n");
8
+ console.log(chalk.bgBlue(" Address "), " ", chalk.bold.blue(account.freshAddress), "\n\n");
9
+ const data = await currencyBridge.preload(account.currency);
10
+ currencyBridge.hydrate(data, account.currency);
11
+ console.log("Preload + hydrate completed ✓");
12
+ await scenario.beforeSync?.();
13
+ console.log("Running a synchronization on the account...");
14
+ let scenarioAccount = await firstValueFrom(accountBridge
15
+ .sync(account, { paginationConfig: {} })
16
+ .pipe(reduce((acc, f) => f(acc), account)));
17
+ console.log("Synchronization completed ✓");
18
+ await scenario.beforeAll?.(scenarioAccount);
19
+ console.log("BeforeAll completed ✓");
20
+ console.log("\n\n");
21
+ console.log(chalk.bgCyan.black.bold(" ✧ "), " ", chalk.cyan(`Scenario: ${chalk.italic.bold(scenario.name)}`), " ", chalk.bgCyan.black.bold(" ✧ "), " → ", chalk.bold.cyan(" Starting ◌"));
22
+ const scenarioTransactions = scenario.getTransactions(account.freshAddress);
23
+ for (const testTransaction of scenarioTransactions) {
18
24
  console.log("\n");
19
- console.log(chalk.bgBlue(" Address "), " → ", chalk.bold.blue(account.freshAddress), "\n\n");
20
- const data = yield currencyBridge.preload(account.currency);
21
- currencyBridge.hydrate(data, account.currency);
22
- console.log("Preload + hydrate completed ✓");
23
- yield ((_a = scenario.beforeSync) === null || _a === void 0 ? void 0 : _a.call(scenario));
24
- console.log("Running a synchronization on the account...");
25
- let scenarioAccount = yield firstValueFrom(accountBridge
26
- .sync(account, { paginationConfig: {} })
27
- .pipe(reduce((acc, f) => f(acc), account)));
28
- console.log("Synchronization completed ✓");
29
- yield ((_b = scenario.beforeAll) === null || _b === void 0 ? void 0 : _b.call(scenario, scenarioAccount));
30
- console.log("BeforeAll completed ✓");
31
- console.log("\n\n");
32
- console.log(chalk.bgCyan.black.bold(" ✧ "), " ", chalk.cyan(`Scenario: ${chalk.italic.bold(scenario.name)}`), " ", chalk.bgCyan.black.bold(" ✧ "), " → ", chalk.bold.cyan(" Starting ◌"));
33
- const scenarioTransactions = scenario.getTransactions(account.freshAddress);
34
- for (const testTransaction of scenarioTransactions) {
35
- console.log("\n");
36
- console.log(chalk.cyan("Transaction:", chalk.bold(testTransaction.name), "◌"));
37
- yield ((_c = scenario.beforeEach) === null || _c === void 0 ? void 0 : _c.call(scenario, scenarioAccount));
38
- console.log("Before each ✔️");
39
- if (scenarioTransactions.indexOf(testTransaction) > 0) {
40
- yield ((_d = scenario.beforeSync) === null || _d === void 0 ? void 0 : _d.call(scenario));
41
- scenarioAccount = yield firstValueFrom(accountBridge
42
- .sync(scenarioAccount, { paginationConfig: {} })
43
- .pipe(reduce((acc, f) => f(acc), scenarioAccount)));
25
+ console.log(chalk.cyan("Transaction:", chalk.bold(testTransaction.name), ""));
26
+ await scenario.beforeEach?.(scenarioAccount);
27
+ console.log("Before each ✔️");
28
+ if (scenarioTransactions.indexOf(testTransaction) > 0) {
29
+ await scenario.beforeSync?.();
30
+ scenarioAccount = await firstValueFrom(accountBridge
31
+ .sync(scenarioAccount, { paginationConfig: {} })
32
+ .pipe(reduce((acc, f) => f(acc), scenarioAccount)));
33
+ }
34
+ const previousAccount = Object.freeze(scenarioAccount);
35
+ const defaultTransaction = accountBridge.createTransaction(scenarioAccount);
36
+ const transaction = await accountBridge.prepareTransaction(scenarioAccount, {
37
+ ...defaultTransaction,
38
+ ...testTransaction,
39
+ });
40
+ console.log(" → ", "🧑‍🍳 ", chalk.bold("Prepared the transaction"), "✓");
41
+ const status = await accountBridge.getTransactionStatus(scenarioAccount, transaction);
42
+ if (Object.entries(status.errors).length) {
43
+ throw new Error(`${testTransaction.name} transaction\nError in transaction status: ${JSON.stringify(status.errors, null, 3)}`);
44
+ }
45
+ console.log(" → ", "🪲 ", chalk.bold("No status errors detected"), "✓");
46
+ const { signedOperation } = await firstValueFrom(accountBridge
47
+ .signOperation({
48
+ account: scenarioAccount,
49
+ transaction,
50
+ deviceId: "",
51
+ })
52
+ .pipe(map(e => {
53
+ if (e.type === "device-signature-requested") {
54
+ onSignerConfirmation?.(e);
44
55
  }
45
- const previousAccount = Object.freeze(scenarioAccount);
46
- const defaultTransaction = accountBridge.createTransaction(scenarioAccount);
47
- const transaction = yield accountBridge.prepareTransaction(scenarioAccount, Object.assign(Object.assign({}, defaultTransaction), testTransaction));
48
- console.log(" ", "🧑‍🍳 ", chalk.bold("Prepared the transaction"), "✓");
49
- const status = yield accountBridge.getTransactionStatus(scenarioAccount, transaction);
50
- if (Object.entries(status.errors).length) {
51
- throw new Error(`${testTransaction.name} transaction\nError in transaction status: ${JSON.stringify(status.errors, null, 3)}`);
56
+ return e;
57
+ }), first((e) => e.type === "signed")));
58
+ console.log(" ", "🔏 ", chalk.bold("Signed the transaction"), "✓");
59
+ const optimisticOperation = await accountBridge.broadcast({
60
+ signedOperation,
61
+ account: scenarioAccount,
62
+ });
63
+ console.log(" → ", "🛫 ", chalk.bold("Broadcasted the transaction"), "✓");
64
+ const retry_limit = retryLimit ?? 10;
65
+ async function expectHandler(retry) {
66
+ await scenario.beforeSync?.();
67
+ scenarioAccount = await firstValueFrom(accountBridge
68
+ .sync({ ...scenarioAccount, pendingOperations: [optimisticOperation] }, { paginationConfig: {} })
69
+ .pipe(reduce((acc, f) => f(acc), scenarioAccount)));
70
+ if (!testTransaction.expect) {
71
+ console.warn(chalk.yellow(`No expects in the transaction ${chalk.bold(testTransaction.name)}. You might want to add tests in this transaction.`));
72
+ return;
52
73
  }
53
- console.log(" → ", "🪲 ", chalk.bold("No status errors detected"), "✓");
54
- const { signedOperation } = yield firstValueFrom(accountBridge
55
- .signOperation({
56
- account: scenarioAccount,
57
- transaction,
58
- deviceId: "",
59
- })
60
- .pipe(map(e => {
61
- if (e.type === "device-signature-requested") {
62
- onSignerConfirmation === null || onSignerConfirmation === void 0 ? void 0 : onSignerConfirmation(e);
63
- }
64
- return e;
65
- }), first((e) => e.type === "signed")));
66
- console.log(" → ", "🔏 ", chalk.bold("Signed the transaction"), "✓");
67
- const optimisticOperation = yield accountBridge.broadcast({
68
- signedOperation,
69
- account: scenarioAccount,
70
- });
71
- console.log(" → ", "🛫 ", chalk.bold("Broadcasted the transaction"), "✓");
72
- const retry_limit = retryLimit !== null && retryLimit !== void 0 ? retryLimit : 10;
73
- function expectHandler(retry) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- var _a, _b, _c;
76
- yield ((_a = scenario.beforeSync) === null || _a === void 0 ? void 0 : _a.call(scenario));
77
- scenarioAccount = yield firstValueFrom(accountBridge
78
- .sync(Object.assign(Object.assign({}, scenarioAccount), { pendingOperations: [optimisticOperation] }), { paginationConfig: {} })
79
- .pipe(reduce((acc, f) => f(acc), scenarioAccount)));
80
- if (!testTransaction.expect) {
81
- console.warn(chalk.yellow(`No expects in the transaction ${chalk.bold(testTransaction.name)}. You might want to add tests in this transaction.`));
82
- return;
83
- }
84
- try {
85
- (_b = testTransaction.expect) === null || _b === void 0 ? void 0 : _b.call(testTransaction, previousAccount, scenarioAccount);
86
- }
87
- catch (err) {
88
- if (!((_c = err === null || err === void 0 ? void 0 : err.matcherResult) === null || _c === void 0 ? void 0 : _c.pass)) {
89
- if (retry === 0) {
90
- console.error(chalk.red(`Retried ${retry_limit} time(s) and could not assert all expects for transaction ${chalk.bold(testTransaction.name)}`));
91
- throw err;
92
- }
93
- console.warn(chalk.magenta("Test asssertion failed. Retrying..."));
94
- yield new Promise(resolve => setTimeout(resolve, retryInterval !== null && retryInterval !== void 0 ? retryInterval : 3 * 1000));
95
- yield expectHandler(retry - 1);
96
- }
97
- else {
98
- throw err;
99
- }
74
+ try {
75
+ testTransaction.expect?.(previousAccount, scenarioAccount);
76
+ }
77
+ catch (err) {
78
+ if (!err?.matcherResult?.pass) {
79
+ if (retry === 0) {
80
+ console.error(chalk.red(`Retried ${retry_limit} time(s) and could not assert all expects for transaction ${chalk.bold(testTransaction.name)}`));
81
+ throw err;
100
82
  }
101
- });
83
+ console.warn(chalk.magenta("Test asssertion failed. Retrying..."));
84
+ await new Promise(resolve => setTimeout(resolve, retryInterval ?? 3 * 1000));
85
+ await expectHandler(retry - 1);
86
+ }
87
+ else {
88
+ throw err;
89
+ }
102
90
  }
103
- yield ((_e = scenario.mockIndexer) === null || _e === void 0 ? void 0 : _e.call(scenario, scenarioAccount, optimisticOperation));
104
- yield expectHandler(retry_limit);
105
- yield ((_f = scenario.afterEach) === null || _f === void 0 ? void 0 : _f.call(scenario, scenarioAccount));
106
- console.log("After each ✔️");
107
- console.log(chalk.green("Transaction:", chalk.bold(testTransaction.name), "completed ✓"));
108
91
  }
109
- console.log("\n");
110
- yield ((_g = scenario.afterAll) === null || _g === void 0 ? void 0 : _g.call(scenario, scenarioAccount));
111
- console.log("afterAll completed ✓");
112
- yield ((_h = scenario.teardown) === null || _h === void 0 ? void 0 : _h.call(scenario));
113
- console.log("\n\n", chalk.bgGreen.black.bold(""), " ", chalk.green(`Scenario: ${chalk.italic.bold(scenario.name)}`), " ", chalk.bgGreen.black.bold(" ✧ "), " → ", chalk.bold.green(" Completed 🎉"), "\n\n");
114
- }
115
- catch (err) {
116
- console.error("\n\n", chalk.bgRed.black.bold(" ✧ "), " ", chalk.red(`Scenario: ${chalk.italic.bold(scenario.name)}`), " ", chalk.bgRed.black.bold(" ✧ "), " → ", chalk.bold.red(" Failed ❌"), "\n\n");
117
- yield ((_j = scenario.teardown) === null || _j === void 0 ? void 0 : _j.call(scenario));
118
- throw err;
92
+ await scenario.mockIndexer?.(scenarioAccount, optimisticOperation);
93
+ await expectHandler(retry_limit);
94
+ await scenario.afterEach?.(scenarioAccount);
95
+ console.log("After each ✔️");
96
+ console.log(chalk.green("Transaction:", chalk.bold(testTransaction.name), "completed "));
119
97
  }
120
- });
98
+ console.log("\n");
99
+ await scenario.afterAll?.(scenarioAccount);
100
+ console.log("afterAll completed ✓");
101
+ await scenario.teardown?.();
102
+ console.log("\n\n", chalk.bgGreen.black.bold(" ✧ "), " ", chalk.green(`Scenario: ${chalk.italic.bold(scenario.name)}`), " ", chalk.bgGreen.black.bold(" ✧ "), " → ", chalk.bold.green(" Completed 🎉"), "\n\n");
103
+ }
104
+ catch (err) {
105
+ console.error("\n\n", chalk.bgRed.black.bold(" ✧ "), " ", chalk.red(`Scenario: ${chalk.italic.bold(scenario.name)}`), " ", chalk.bgRed.black.bold(" ✧ "), " → ", chalk.bold.red(" Failed ❌"), "\n\n");
106
+ await scenario.teardown?.();
107
+ throw err;
108
+ }
121
109
  }
122
110
  //# sourceMappingURL=main.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/signers/speculos.ts"],"names":[],"mappings":"AAMA,OAAO,qBAAqB,MAAM,2CAA2C,CAAC;AAyB9E,wBAAsB,aAAa,CAAC,eAAe,EAAE,IAAI,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1E,SAAS,EAAE,qBAAqB,CAAC;IACjC,yBAAyB,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC,CA4ED;AAED,wBAAsB,YAAY,kBAOjC"}
1
+ {"version":3,"file":"speculos.d.ts","sourceRoot":"","sources":["../../src/signers/speculos.ts"],"names":[],"mappings":"AAMA,OAAO,qBAAqB,MAAM,2CAA2C,CAAC;AAyB9E,wBAAsB,aAAa,CAAC,eAAe,EAAE,IAAI,MAAM,EAAE,GAAG,OAAO,CAAC;IAC1E,SAAS,EAAE,qBAAqB,CAAC;IACjC,yBAAyB,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC,CA4ED;AAED,wBAAsB,YAAY,kBAQjC"}
@@ -1,12 +1,3 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import path from "path";
11
2
  import chalk from "chalk";
12
3
  import fs from "fs/promises";
@@ -28,86 +19,79 @@ function ensureEnv() {
28
19
  }
29
20
  });
30
21
  }
31
- export function spawnSpeculos(nanoAppEndpoint) {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- ensureEnv();
34
- console.log(`Starting speculos...`);
35
- try {
36
- const { data: blob } = yield axios({
37
- url: `https://raw.githubusercontent.com/LedgerHQ/coin-apps/master/nanox${nanoAppEndpoint}`,
38
- method: "GET",
39
- responseType: "stream",
40
- headers: {
41
- Authorization: `Bearer ${process.env.GH_TOKEN}`,
42
- },
43
- });
44
- yield fs.mkdir(path.resolve(cwd, "tmp"), { recursive: true });
45
- yield fs.writeFile(path.resolve(cwd, "tmp/app.elf"), blob, "binary");
22
+ export async function spawnSpeculos(nanoAppEndpoint) {
23
+ ensureEnv();
24
+ console.log(`Starting speculos...`);
25
+ try {
26
+ const { data: blob } = await axios({
27
+ url: `https://raw.githubusercontent.com/LedgerHQ/coin-apps/master/nanox${nanoAppEndpoint}`,
28
+ method: "GET",
29
+ responseType: "stream",
30
+ headers: {
31
+ Authorization: `Bearer ${process.env.GH_TOKEN}`,
32
+ },
33
+ });
34
+ await fs.mkdir(path.resolve(cwd, "tmp"), { recursive: true });
35
+ await fs.writeFile(path.resolve(cwd, "tmp/app.elf"), blob, "binary");
36
+ }
37
+ catch (err) {
38
+ if (err instanceof AxiosError) {
39
+ throw new Error(`${err.status}: Failed to download the app.elf file from ${nanoAppEndpoint}\nMake sure that your GH_TOKEN is correct and has the right permissions.`);
46
40
  }
47
- catch (err) {
48
- if (err instanceof AxiosError) {
49
- throw new Error(`${err.status}: Failed to download the app.elf file from ${nanoAppEndpoint}\nMake sure that your GH_TOKEN is correct and has the right permissions.`);
50
- }
51
- throw err;
41
+ throw err;
42
+ }
43
+ await compose.upOne("speculos", {
44
+ cwd,
45
+ log: Boolean(process.env.DEBUG),
46
+ env: process.env,
47
+ });
48
+ async function checkSpeculosLogs() {
49
+ const { out } = await compose.logs("speculos", { cwd, env: process.env });
50
+ if (out.includes("Running on all addresses (0.0.0.0)")) {
51
+ console.log(chalk.bgYellowBright.black(" - SPECULOS READY ✅ - "));
52
+ return SpeculosTransportHttp.open({
53
+ apiPort: SPECULOS_API_PORT,
54
+ });
52
55
  }
53
- yield compose.upOne("speculos", {
54
- cwd,
55
- log: Boolean(process.env.DEBUG),
56
- env: process.env,
57
- });
58
- function checkSpeculosLogs() {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- const { out } = yield compose.logs("speculos", { cwd, env: process.env });
61
- if (out.includes("Running on all addresses (0.0.0.0)")) {
62
- console.log(chalk.bgYellowBright.black(" - SPECULOS READY ✅ - "));
63
- return SpeculosTransportHttp.open({
64
- apiPort: SPECULOS_API_PORT,
56
+ await delay(200);
57
+ return checkSpeculosLogs();
58
+ }
59
+ function getOnSpeculosConfirmation(approvalText = "Accept") {
60
+ async function onSpeculosConfirmation(e) {
61
+ if (e?.type === "device-signature-requested") {
62
+ const { data } = await axios.get(`http://localhost:${SPECULOS_API_PORT}/events?currentscreenonly=true`);
63
+ if (data.events[0].text !== approvalText) {
64
+ await axios.post(`http://localhost:${SPECULOS_API_PORT}/button/right`, {
65
+ action: "press-and-release",
66
+ });
67
+ onSpeculosConfirmation(e);
68
+ }
69
+ else {
70
+ await axios.post(`http://localhost:${SPECULOS_API_PORT}/button/both`, {
71
+ action: "press-and-release",
65
72
  });
66
73
  }
67
- yield delay(200);
68
- return checkSpeculosLogs();
69
- });
70
- }
71
- function getOnSpeculosConfirmation(approvalText = "Accept") {
72
- function onSpeculosConfirmation(e) {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- if ((e === null || e === void 0 ? void 0 : e.type) === "device-signature-requested") {
75
- const { data } = yield axios.get(`http://localhost:${SPECULOS_API_PORT}/events?currentscreenonly=true`);
76
- if (data.events[0].text !== approvalText) {
77
- yield axios.post(`http://localhost:${SPECULOS_API_PORT}/button/right`, {
78
- action: "press-and-release",
79
- });
80
- onSpeculosConfirmation(e);
81
- }
82
- else {
83
- yield axios.post(`http://localhost:${SPECULOS_API_PORT}/button/both`, {
84
- action: "press-and-release",
85
- });
86
- }
87
- }
88
- });
89
74
  }
90
- return onSpeculosConfirmation;
91
75
  }
92
- return checkSpeculosLogs().then(transport => {
93
- return {
94
- transport,
95
- getOnSpeculosConfirmation,
96
- };
97
- });
76
+ return onSpeculosConfirmation;
77
+ }
78
+ return checkSpeculosLogs().then(transport => {
79
+ return {
80
+ transport,
81
+ getOnSpeculosConfirmation,
82
+ };
98
83
  });
99
84
  }
100
- export function killSpeculos() {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- console.log("Stopping speculos...");
103
- yield compose.down({
104
- cwd,
105
- log: Boolean(process.env.DEBUG),
106
- env: process.env,
107
- });
85
+ export async function killSpeculos() {
86
+ console.log("Stopping speculos...");
87
+ await compose.down({
88
+ cwd,
89
+ log: Boolean(process.env.DEBUG),
90
+ env: process.env,
91
+ commandOptions: ["--remove-orphans"],
108
92
  });
109
93
  }
110
- ["exit", "SIGINT", "SIGQUIT", "SIGTERM", "SIGUSR1", "SIGUSR2", "uncaughtException"].map(e => process.on(e, () => __awaiter(void 0, void 0, void 0, function* () {
111
- yield killSpeculos();
112
- })));
94
+ ["exit", "SIGINT", "SIGQUIT", "SIGTERM", "SIGUSR1", "SIGUSR2", "uncaughtException"].map(e => process.on(e, async () => {
95
+ await killSpeculos();
96
+ }));
113
97
  //# sourceMappingURL=speculos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"speculos.js","sourceRoot":"","sources":["../../src/signers/speculos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speculos.js","sourceRoot":"","sources":["../../src/signers/speculos.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-tester",
3
- "version": "0.3.0-nightly.0",
3
+ "version": "0.3.1-nightly.0",
4
4
  "description": "Deterministic testing of Ledger coin-modules",
5
5
  "license": "Apache-2.0",
6
6
  "dependencies": {
@@ -13,12 +13,12 @@
13
13
  },
14
14
  "devDependencies": {
15
15
  "@types/jest": "^28.1.8",
16
- "@types/node": "^18.15.7",
16
+ "@types/node": "^22.10.10",
17
17
  "jest": "^28.1.3",
18
18
  "ts-jest": "^28.0.8",
19
19
  "typescript": "^5.1.3",
20
- "@ledgerhq/types-cryptoassets": "^7.17.0",
21
- "@ledgerhq/types-live": "^6.54.0-nightly.1"
20
+ "@ledgerhq/types-cryptoassets": "^7.19.0",
21
+ "@ledgerhq/types-live": "^6.60.0-nightly.0"
22
22
  },
23
23
  "typesVersions": {
24
24
  "*": {
@@ -59,10 +59,10 @@
59
59
  "homepage": "https://github.com/LedgerHQ/ledger-live/tree/develop/libs/coin-tester",
60
60
  "scripts": {
61
61
  "clean": "rimraf lib lib-es",
62
- "build": "tsc && tsc -m ES6 --outDir lib-es",
62
+ "build": "tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es",
63
63
  "prewatch": "pnpm build",
64
64
  "watch": "tsc --watch",
65
- "watch:es": "tsc --watch -m ES6 --outDir lib-es",
65
+ "watch:es": "tsc --watch -m esnext --moduleResolution bundler --outDir lib-es",
66
66
  "lint": "eslint .",
67
67
  "lint:fix": "pnpm lint --fix"
68
68
  }
package/src/main.ts CHANGED
@@ -133,7 +133,7 @@ export async function executeScenario<T extends TransactionCommon, A extends Acc
133
133
  );
134
134
  }
135
135
 
136
- console.log(" → ", "🪲 ", chalk.bold("No status errors detected"), "✓");
136
+ console.log(" → ", "🪲 ", chalk.bold("No status errors detected"), "✓");
137
137
 
138
138
  const { signedOperation } = await firstValueFrom(
139
139
  accountBridge
@@ -116,6 +116,7 @@ export async function killSpeculos() {
116
116
  cwd,
117
117
  log: Boolean(process.env.DEBUG),
118
118
  env: process.env,
119
+ commandOptions: ["--remove-orphans"],
119
120
  });
120
121
  }
121
122
 
package/tsconfig.json CHANGED
@@ -3,8 +3,6 @@
3
3
  "compilerOptions": {
4
4
  "declaration": true,
5
5
  "declarationMap": true,
6
- "module": "commonjs",
7
- "moduleResolution": "node",
8
6
  "downlevelIteration": true,
9
7
  "lib": ["es2020", "dom"],
10
8
  "outDir": "lib",