@ledgerhq/live-common 34.34.0-nightly.2 → 34.34.0-nightly.4
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/apps/logic.d.ts.map +1 -1
- package/lib/apps/logic.js +2 -1
- package/lib/apps/logic.js.map +1 -1
- package/lib/errors.d.ts +0 -3
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +1 -2
- package/lib/errors.js.map +1 -1
- package/lib/exchange/swap/getIncompatibleCurrencyKeys.js +2 -2
- package/lib/exchange/swap/getIncompatibleCurrencyKeys.js.map +1 -1
- package/lib/families/solana/setup.d.ts.map +1 -1
- package/lib/families/solana/setup.js +2 -66
- package/lib/families/solana/setup.js.map +1 -1
- package/lib/families/solana/setup.test.js +12 -10
- package/lib/families/solana/setup.test.js.map +1 -1
- package/lib/hw/connectApp.d.ts.map +1 -1
- package/lib/hw/connectApp.js +2 -3
- package/lib/hw/connectApp.js.map +1 -1
- package/lib-es/apps/logic.d.ts.map +1 -1
- package/lib-es/apps/logic.js +2 -1
- package/lib-es/apps/logic.js.map +1 -1
- package/lib-es/errors.d.ts +0 -3
- package/lib-es/errors.d.ts.map +1 -1
- package/lib-es/errors.js +0 -1
- package/lib-es/errors.js.map +1 -1
- package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.js +2 -2
- package/lib-es/exchange/swap/getIncompatibleCurrencyKeys.js.map +1 -1
- package/lib-es/families/solana/setup.d.ts.map +1 -1
- package/lib-es/families/solana/setup.js +2 -66
- package/lib-es/families/solana/setup.js.map +1 -1
- package/lib-es/families/solana/setup.test.js +12 -10
- package/lib-es/families/solana/setup.test.js.map +1 -1
- package/lib-es/hw/connectApp.d.ts.map +1 -1
- package/lib-es/hw/connectApp.js +1 -2
- package/lib-es/hw/connectApp.js.map +1 -1
- package/package.json +59 -61
- package/src/apps/logic.ts +2 -1
- package/src/errors.ts +0 -4
- package/src/exchange/swap/getIncompatibleCurrencyKeys.ts +2 -2
- package/src/families/solana/setup.test.ts +12 -10
- package/src/families/solana/setup.ts +3 -85
- package/src/hw/connectApp.ts +1 -1
@@ -62,8 +62,8 @@ const INCOMPATIBLE_NANO_S_CURRENCY_KEYS = {
|
|
62
62
|
description: "swap.incompatibility.dydx_description",
|
63
63
|
},
|
64
64
|
sui: {
|
65
|
-
title: "swap.incompatibility.
|
66
|
-
description: "swap.incompatibility.
|
65
|
+
title: "swap.incompatibility.sui_title",
|
66
|
+
description: "swap.incompatibility.sui_description",
|
67
67
|
},
|
68
68
|
};
|
69
69
|
export const getIncompatibleCurrencyKeys = (exchange) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getIncompatibleCurrencyKeys.js","sourceRoot":"","sources":["../../../src/exchange/swap/getIncompatibleCurrencyKeys.ts"],"names":[],"mappings":"AAKA,MAAM,+BAA+B,GAAS;IAC5C,MAAM,EAAE;QACN,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;IACD,GAAG,EAAE;QACH,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;IACD,cAAc,EAAE;QACd,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;IACD,aAAa,EAAE;QACb,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;IACD,GAAG,EAAE;QACH,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;CACF,CAAC;AAEF,MAAM,iCAAiC,GAAS;IAC9C,GAAG,EAAE;QACH,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,OAAO,EAAE;QACP,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,eAAe,EAAE;QACf,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,KAAK,EAAE;QACL,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,uCAAuC;KACrD;IACD,MAAM,EAAE;QACN,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,yCAAyC;KACvD;IACD,cAAc,EAAE;QACd,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,yCAAyC;KACvD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,uCAAuC;KACrD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,uCAAuC;KACrD;IACD,GAAG,EAAE;QACH,KAAK,EAAE,
|
1
|
+
{"version":3,"file":"getIncompatibleCurrencyKeys.js","sourceRoot":"","sources":["../../../src/exchange/swap/getIncompatibleCurrencyKeys.ts"],"names":[],"mappings":"AAKA,MAAM,+BAA+B,GAAS;IAC5C,MAAM,EAAE;QACN,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;IACD,GAAG,EAAE;QACH,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;IACD,cAAc,EAAE;QACd,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;IACD,aAAa,EAAE;QACb,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;IACD,GAAG,EAAE;QACH,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EAAE,6CAA6C;KAC3D;CACF,CAAC;AAEF,MAAM,iCAAiC,GAAS;IAC9C,GAAG,EAAE;QACH,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,OAAO,EAAE;QACP,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,eAAe,EAAE;QACf,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,KAAK,EAAE;QACL,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,aAAa,EAAE;QACb,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,uCAAuC;KACrD;IACD,MAAM,EAAE;QACN,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,yCAAyC;KACvD;IACD,cAAc,EAAE;QACd,KAAK,EAAE,mCAAmC;QAC1C,WAAW,EAAE,yCAAyC;KACvD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,uCAAuC;KACrD;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,iCAAiC;QACxC,WAAW,EAAE,uCAAuC;KACrD;IACD,GAAG,EAAE;QACH,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,sCAAsC;KACpD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,QAAsB,EAAE,EAAE;IACpE,MAAM,UAAU,GACd,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,cAAc;QAC1C,CAAC,CAAC,+BAA+B,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/E,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GACZ,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,cAAc;QACxC,CAAC,CAAC,+BAA+B,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7E,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,IAAI,GACR,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,SAAS;QACrC,CAAC,CAAC,iCAAiC,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrE,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,EAAE,GACN,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;QACnC,CAAC,CAAC,iCAAiC,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,UAAU,IAAI,QAAQ,IAAI,IAAI,IAAI,EAAE,CAAC;AAC9C,CAAC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/families/solana/setup.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/families/solana/setup.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAKnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAO5F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAc1D,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,iBAAiB,CAGjE,CAAC;AAEF,QAAA,MAAM,aAAa;;CAElB,CAAC;AAEF,QAAA,MAAM,QAAQ,EAAE,QAAuD,CAAC;AAExE,QAAA,MAAM,QAAQ;;;;;;;;;;;;CAAiB,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC"}
|
@@ -1,77 +1,13 @@
|
|
1
1
|
// Goal of this file is to inject all necessary device/signer dependency to coin-modules
|
2
|
-
import semver from "semver";
|
3
|
-
import Solana from "@ledgerhq/hw-app-solana";
|
4
2
|
import { createBridges } from "@ledgerhq/coin-solana/bridge/js";
|
5
3
|
import makeCliTools from "@ledgerhq/coin-solana/cli-transaction";
|
6
4
|
import solanaResolver from "@ledgerhq/coin-solana/hw-getAddress";
|
7
|
-
import { DeviceModelId } from "@ledgerhq/devices";
|
8
|
-
import { loadPKI } from "@ledgerhq/hw-bolos";
|
9
|
-
import calService from "@ledgerhq/ledger-cal-service";
|
10
|
-
import trustService from "@ledgerhq/ledger-trust-service";
|
11
|
-
import { TransportStatusError, UpdateYourApp } from "@ledgerhq/errors";
|
12
5
|
import { createMessageSigner, createResolver, executeWithSigner, } from "../../bridge/setup";
|
13
|
-
import { LatestFirmwareVersionRequired } from "../../errors";
|
14
6
|
import { getCurrencyConfiguration } from "../../config";
|
15
7
|
import { getCryptoCurrencyById } from "../../currencies";
|
16
8
|
import { signMessage } from "@ledgerhq/coin-solana/hw-signMessage";
|
17
|
-
|
18
|
-
const
|
19
|
-
async function checkVersion(app) {
|
20
|
-
const { version } = await app.getAppConfiguration();
|
21
|
-
if (semver.lt(version, TRUSTED_NAME_MIN_VERSION)) {
|
22
|
-
throw new UpdateYourApp(undefined, {
|
23
|
-
managerAppName: MANAGER_APP_NAME,
|
24
|
-
});
|
25
|
-
}
|
26
|
-
}
|
27
|
-
function isPKIUnsupportedError(err) {
|
28
|
-
return err instanceof TransportStatusError && err.message.includes("0x6a81");
|
29
|
-
}
|
30
|
-
const createSigner = (transport) => {
|
31
|
-
const app = new Solana(transport);
|
32
|
-
return {
|
33
|
-
getAppConfiguration: app.getAppConfiguration,
|
34
|
-
getAddress: app.getAddress,
|
35
|
-
signTransaction: async (path, tx, resolution) => {
|
36
|
-
if (resolution) {
|
37
|
-
if (!resolution.deviceModelId) {
|
38
|
-
throw new Error("Resolution provided without a deviceModelId");
|
39
|
-
}
|
40
|
-
if (resolution.deviceModelId !== DeviceModelId.nanoS) {
|
41
|
-
const { descriptor, signature } = await calService.getCertificate(resolution.deviceModelId);
|
42
|
-
try {
|
43
|
-
await loadPKI(transport, "TRUSTED_NAME", descriptor, signature);
|
44
|
-
}
|
45
|
-
catch (err) {
|
46
|
-
if (isPKIUnsupportedError(err)) {
|
47
|
-
throw new LatestFirmwareVersionRequired("LatestFirmwareVersionRequired");
|
48
|
-
}
|
49
|
-
}
|
50
|
-
if (resolution.tokenAddress) {
|
51
|
-
await checkVersion(app);
|
52
|
-
const challenge = await app.getChallenge();
|
53
|
-
const { signedDescriptor } = await trustService.getOwnerAddress(resolution.tokenAddress, challenge);
|
54
|
-
if (signedDescriptor) {
|
55
|
-
await app.provideTrustedName(signedDescriptor);
|
56
|
-
}
|
57
|
-
}
|
58
|
-
if (resolution.createATA) {
|
59
|
-
await checkVersion(app);
|
60
|
-
const challenge = await app.getChallenge();
|
61
|
-
const { signedDescriptor } = await trustService.computedTokenAddress(resolution.createATA.address, resolution.createATA.mintAddress, challenge);
|
62
|
-
if (signedDescriptor) {
|
63
|
-
await app.provideTrustedName(signedDescriptor);
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
}
|
68
|
-
return app.signTransaction(path, tx);
|
69
|
-
},
|
70
|
-
signMessage: (path, messageHex) => {
|
71
|
-
return app.signOffchainMessage(path, Buffer.from(messageHex, "hex"));
|
72
|
-
},
|
73
|
-
};
|
74
|
-
};
|
9
|
+
import { LegacySignerSolana } from "@ledgerhq/live-signer-solana";
|
10
|
+
const createSigner = (transport) => new LegacySignerSolana(transport);
|
75
11
|
const getCurrencyConfig = () => {
|
76
12
|
return getCurrencyConfiguration(getCryptoCurrencyById("solana"));
|
77
13
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/families/solana/setup.ts"],"names":[],"mappings":"AAAA,wFAAwF;
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/families/solana/setup.ts"],"names":[],"mappings":"AAAA,wFAAwF;AAKxF,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,YAAY,MAAM,uCAAuC,CAAC;AACjE,OAAO,cAAc,MAAM,qCAAqC,CAAC;AAEjE,OAAO,EAEL,mBAAmB,EACnB,cAAc,EACd,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,YAAY,GAA+B,CAAC,SAAoB,EAAE,EAAE,CACxE,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAEpC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,OAAO,wBAAwB,CAAmB,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC;AAEF,MAAM,MAAM,GAA0D,aAAa,CACjF,iBAAiB,CAAC,YAAY,CAAC,EAC/B,iBAAiB,CAClB,CAAC;AAEF,MAAM,aAAa,GAAG;IACpB,WAAW,EAAE,mBAAmB,CAAC,YAAY,EAAE,WAAW,CAAC;CAC5D,CAAC;AAEF,MAAM,QAAQ,GAAa,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAExE,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import { LegacySignerSolana } from "@ledgerhq/live-signer-solana";
|
2
2
|
import { PubKeyDisplayMode } from "@ledgerhq/coin-solana/signer";
|
3
3
|
import { LiveConfig } from "@ledgerhq/live-config/LiveConfig";
|
4
4
|
import { messageSigner } from "./setup";
|
@@ -18,23 +18,25 @@ const getAppConfigurationMock = jest.fn(() => {
|
|
18
18
|
const signOffchainMessageMock = jest.fn(() => Promise.resolve({
|
19
19
|
signature: Buffer.from(SIGNATURE, "hex"),
|
20
20
|
}));
|
21
|
-
jest.mock("@ledgerhq/
|
22
|
-
return
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
21
|
+
jest.mock("@ledgerhq/live-signer-solana", () => {
|
22
|
+
return {
|
23
|
+
LegacySignerSolana: jest.fn().mockImplementation(() => {
|
24
|
+
return {
|
25
|
+
signMessage: signOffchainMessageMock,
|
26
|
+
getAppConfiguration: getAppConfigurationMock,
|
27
|
+
};
|
28
|
+
}),
|
29
|
+
};
|
28
30
|
});
|
29
31
|
LiveConfig.setConfig(solanaConfig);
|
30
32
|
describe("Testing setup on Solana", () => {
|
31
33
|
describe("Testing message signer", () => {
|
32
|
-
it("should call
|
34
|
+
it("should call the underlying signer for off-chain message signature", async () => {
|
33
35
|
const freshAddressPath = "44'/60'/0'/0/0";
|
34
36
|
const freshAddress = "8DpKDisipx6f76cEmuGvCX9TrA3SjeR76HaTRePxHBDe";
|
35
37
|
const message = "4c6f6e67204f66662d436861696e2054657374204d6573736167652e";
|
36
38
|
const result = await messageSigner.signMessage({}, { freshAddressPath: freshAddressPath, freshAddress }, { message: message });
|
37
|
-
expect(
|
39
|
+
expect(LegacySignerSolana).toHaveBeenCalledTimes(1);
|
38
40
|
expect(signOffchainMessageMock).toHaveBeenCalledTimes(1);
|
39
41
|
const args = signOffchainMessageMock.mock.calls[0];
|
40
42
|
expect(args[0]).toEqual(freshAddressPath);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../../src/families/solana/setup.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../../src/families/solana/setup.test.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"connectApp.d.ts","sourceRoot":"","sources":["../../src/hw/connectApp.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,UAAU,EAA8C,MAAM,MAAM,CAAC;
|
1
|
+
{"version":3,"file":"connectApp.d.ts","sourceRoot":"","sources":["../../src/hw/connectApp.ts"],"names":[],"mappings":"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"}
|
package/lib-es/hw/connectApp.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import semver from "semver";
|
2
2
|
import { Observable, concat, from, of, throwError, defer, merge } from "rxjs";
|
3
3
|
import { mergeMap, concatMap, map, catchError, delay } from "rxjs/operators";
|
4
|
-
import { TransportStatusError, FirmwareOrAppUpdateRequired, UserRefusedOnDevice, BtcUnmatchedApp, UpdateYourApp, DisconnectedDeviceDuringOperation, DisconnectedDevice, StatusCodes, LockedDeviceError, } from "@ledgerhq/errors";
|
4
|
+
import { TransportStatusError, FirmwareOrAppUpdateRequired, UserRefusedOnDevice, BtcUnmatchedApp, UpdateYourApp, DisconnectedDeviceDuringOperation, DisconnectedDevice, StatusCodes, LockedDeviceError, LatestFirmwareVersionRequired, } from "@ledgerhq/errors";
|
5
5
|
import { getCryptoCurrencyById } from "../currencies";
|
6
6
|
import appSupportsQuitApp from "../appSupportsQuitApp";
|
7
7
|
import { withDevice } from "./deviceAccess";
|
@@ -12,7 +12,6 @@ import getDeviceInfo from "./getDeviceInfo";
|
|
12
12
|
import getAddress from "./getAddress";
|
13
13
|
import openApp from "./openApp";
|
14
14
|
import quitApp from "./quitApp";
|
15
|
-
import { LatestFirmwareVersionRequired } from "../errors";
|
16
15
|
import { mustUpgrade } from "../apps";
|
17
16
|
import isUpdateAvailable from "./isUpdateAvailable";
|
18
17
|
import { getLatestFirmwareForDeviceUseCase } from "../device/use-cases/getLatestFirmwareForDeviceUseCase";
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"connectApp.js","sourceRoot":"","sources":["../../src/hw/connectApp.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,iCAAiC,EACjC,kBAAkB,EAClB,WAAW,EACX,iBAAiB,
|
1
|
+
{"version":3,"file":"connectApp.js","sourceRoot":"","sources":["../../src/hw/connectApp.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.34.0-nightly.
|
4
|
+
"version": "34.34.0-nightly.4",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
7
7
|
"url": "https://github.com/LedgerHQ/ledger-live.git"
|
@@ -162,73 +162,71 @@
|
|
162
162
|
"xstate": "4.38.3",
|
163
163
|
"yargs": "^17.0.0",
|
164
164
|
"zod": "^3.22.4",
|
165
|
-
"@ledgerhq/coin-
|
166
|
-
"@ledgerhq/coin-
|
167
|
-
"@ledgerhq/coin-
|
168
|
-
"@ledgerhq/coin-cardano": "^0.8.6-nightly.
|
169
|
-
"@ledgerhq/coin-casper": "^1.7.1-nightly.
|
170
|
-
"@ledgerhq/coin-celo": "^1.1.4-nightly.
|
171
|
-
"@ledgerhq/coin-cosmos": "^0.14.2-nightly.
|
172
|
-
"@ledgerhq/coin-evm": "^2.21.1-nightly.
|
173
|
-
"@ledgerhq/coin-filecoin": "^1.9.6-nightly.
|
174
|
-
"@ledgerhq/coin-framework": "^5.1.0-nightly.
|
175
|
-
"@ledgerhq/coin-hedera": "^1.6.6-nightly.
|
176
|
-
"@ledgerhq/coin-icon": "^0.10.6-nightly.
|
177
|
-
"@ledgerhq/coin-internet_computer": "^1.7.6-nightly.
|
178
|
-
"@ledgerhq/coin-mina": "^1.1.5-nightly.
|
179
|
-
"@ledgerhq/coin-multiversx": "^0.4.6-nightly.
|
180
|
-
"@ledgerhq/coin-near": "^0.11.6-nightly.
|
181
|
-
"@ledgerhq/coin-polkadot": "^6.0.2-nightly.
|
182
|
-
"@ledgerhq/coin-solana": "^0.23.0-nightly.
|
183
|
-
"@ledgerhq/coin-
|
184
|
-
"@ledgerhq/coin-
|
185
|
-
"@ledgerhq/coin-sui": "^0.3.3-nightly.
|
186
|
-
"@ledgerhq/coin-
|
187
|
-
"@ledgerhq/coin-
|
188
|
-
"@ledgerhq/coin-tron": "^4.0.1-nightly.
|
189
|
-
"@ledgerhq/coin-vechain": "^2.7.6-nightly.
|
190
|
-
"@ledgerhq/coin-xrp": "^6.1.1-nightly.
|
165
|
+
"@ledgerhq/coin-algorand": "^0.9.6-nightly.1",
|
166
|
+
"@ledgerhq/coin-aptos": "^2.0.0-nightly.3",
|
167
|
+
"@ledgerhq/coin-bitcoin": "^0.15.6-nightly.1",
|
168
|
+
"@ledgerhq/coin-cardano": "^0.8.6-nightly.1",
|
169
|
+
"@ledgerhq/coin-casper": "^1.7.1-nightly.1",
|
170
|
+
"@ledgerhq/coin-celo": "^1.1.4-nightly.1",
|
171
|
+
"@ledgerhq/coin-cosmos": "^0.14.2-nightly.1",
|
172
|
+
"@ledgerhq/coin-evm": "^2.21.1-nightly.1",
|
173
|
+
"@ledgerhq/coin-filecoin": "^1.9.6-nightly.1",
|
174
|
+
"@ledgerhq/coin-framework": "^5.1.0-nightly.1",
|
175
|
+
"@ledgerhq/coin-hedera": "^1.6.6-nightly.1",
|
176
|
+
"@ledgerhq/coin-icon": "^0.10.6-nightly.1",
|
177
|
+
"@ledgerhq/coin-internet_computer": "^1.7.6-nightly.1",
|
178
|
+
"@ledgerhq/coin-mina": "^1.1.5-nightly.1",
|
179
|
+
"@ledgerhq/coin-multiversx": "^0.4.6-nightly.1",
|
180
|
+
"@ledgerhq/coin-near": "^0.11.6-nightly.1",
|
181
|
+
"@ledgerhq/coin-polkadot": "^6.0.2-nightly.1",
|
182
|
+
"@ledgerhq/coin-solana": "^0.23.0-nightly.1",
|
183
|
+
"@ledgerhq/coin-stacks": "^0.8.6-nightly.1",
|
184
|
+
"@ledgerhq/coin-stellar": "^5.1.0-nightly.1",
|
185
|
+
"@ledgerhq/coin-sui": "^0.3.3-nightly.1",
|
186
|
+
"@ledgerhq/coin-tezos": "^5.0.2-nightly.1",
|
187
|
+
"@ledgerhq/coin-ton": "^0.10.1-nightly.1",
|
188
|
+
"@ledgerhq/coin-tron": "^4.0.1-nightly.1",
|
189
|
+
"@ledgerhq/coin-vechain": "^2.7.6-nightly.1",
|
190
|
+
"@ledgerhq/coin-xrp": "^6.1.1-nightly.1",
|
191
191
|
"@ledgerhq/crypto-icons-ui": "^1.14.0-nightly.0",
|
192
192
|
"@ledgerhq/cryptoassets": "^13.17.0-nightly.1",
|
193
|
-
"@ledgerhq/device-core": "^0.4.25-nightly.
|
194
|
-
"@ledgerhq/devices": "8.4.5-nightly.
|
195
|
-
"@ledgerhq/errors": "^6.
|
196
|
-
"@ledgerhq/hw-app-algorand": "^6.31.1-nightly.
|
197
|
-
"@ledgerhq/hw-app-aptos": "^6.34.1-nightly.
|
198
|
-
"@ledgerhq/hw-app-btc": "^10.9.1-nightly.
|
199
|
-
"@ledgerhq/hw-app-celo": "^6.33.3-nightly.
|
200
|
-
"@ledgerhq/hw-app-cosmos": "^6.32.1-nightly.
|
201
|
-
"@ledgerhq/hw-app-eth": "^6.45.5-nightly.
|
202
|
-
"@ledgerhq/hw-app-exchange": "^0.10.1-nightly.
|
203
|
-
"@ledgerhq/hw-app-hedera": "^1.2.1-nightly.
|
204
|
-
"@ledgerhq/hw-app-icon": "^1.3.1-nightly.
|
205
|
-
"@ledgerhq/hw-app-multiversx": "^6.24.1-nightly.
|
206
|
-
"@ledgerhq/hw-app-near": "^6.31.1-nightly.
|
207
|
-
"@ledgerhq/hw-app-polkadot": "^6.34.1-nightly.
|
208
|
-
"@ledgerhq/hw-app-
|
209
|
-
"@ledgerhq/hw-app-str": "^7.2.1-nightly.0",
|
193
|
+
"@ledgerhq/device-core": "^0.4.25-nightly.1",
|
194
|
+
"@ledgerhq/devices": "8.4.5-nightly.2",
|
195
|
+
"@ledgerhq/errors": "^6.21.0-nightly.0",
|
196
|
+
"@ledgerhq/hw-app-algorand": "^6.31.1-nightly.1",
|
197
|
+
"@ledgerhq/hw-app-aptos": "^6.34.1-nightly.1",
|
198
|
+
"@ledgerhq/hw-app-btc": "^10.9.1-nightly.1",
|
199
|
+
"@ledgerhq/hw-app-celo": "^6.33.3-nightly.1",
|
200
|
+
"@ledgerhq/hw-app-cosmos": "^6.32.1-nightly.1",
|
201
|
+
"@ledgerhq/hw-app-eth": "^6.45.5-nightly.1",
|
202
|
+
"@ledgerhq/hw-app-exchange": "^0.10.1-nightly.1",
|
203
|
+
"@ledgerhq/hw-app-hedera": "^1.2.1-nightly.1",
|
204
|
+
"@ledgerhq/hw-app-icon": "^1.3.1-nightly.1",
|
205
|
+
"@ledgerhq/hw-app-multiversx": "^6.24.1-nightly.1",
|
206
|
+
"@ledgerhq/hw-app-near": "^6.31.1-nightly.1",
|
207
|
+
"@ledgerhq/hw-app-polkadot": "^6.34.1-nightly.1",
|
208
|
+
"@ledgerhq/hw-app-str": "^7.2.1-nightly.1",
|
210
209
|
"@ledgerhq/hw-app-sui": "^1.1.0",
|
211
|
-
"@ledgerhq/hw-app-tezos": "^6.31.1-nightly.
|
212
|
-
"@ledgerhq/hw-app-trx": "^6.31.1-nightly.
|
213
|
-
"@ledgerhq/hw-app-vet": "^0.5.3-nightly.
|
214
|
-
"@ledgerhq/hw-app-xrp": "^6.31.1-nightly.
|
215
|
-
"@ledgerhq/hw-
|
216
|
-
"@ledgerhq/hw-transport": "^6.
|
217
|
-
"@ledgerhq/
|
218
|
-
"@ledgerhq/ledger-cal-service": "^0.4.3-nightly.0",
|
219
|
-
"@ledgerhq/ledger-trust-service": "0.3.3-nightly.0",
|
210
|
+
"@ledgerhq/hw-app-tezos": "^6.31.1-nightly.1",
|
211
|
+
"@ledgerhq/hw-app-trx": "^6.31.1-nightly.1",
|
212
|
+
"@ledgerhq/hw-app-vet": "^0.5.3-nightly.2",
|
213
|
+
"@ledgerhq/hw-app-xrp": "^6.31.1-nightly.1",
|
214
|
+
"@ledgerhq/hw-transport": "^6.31.5-nightly.2",
|
215
|
+
"@ledgerhq/hw-transport-mocker": "^6.29.5-nightly.2",
|
216
|
+
"@ledgerhq/ledger-cal-service": "^0.4.3-nightly.1",
|
220
217
|
"@ledgerhq/live-config": "^3.1.0",
|
221
|
-
"@ledgerhq/live-countervalues": "^0.5.6-nightly.
|
222
|
-
"@ledgerhq/live-countervalues-react": "^0.2.35-nightly.
|
218
|
+
"@ledgerhq/live-countervalues": "^0.5.6-nightly.1",
|
219
|
+
"@ledgerhq/live-countervalues-react": "^0.2.35-nightly.1",
|
223
220
|
"@ledgerhq/live-env": "^2.9.0-nightly.0",
|
224
221
|
"@ledgerhq/live-hooks": "0.1.0",
|
225
|
-
"@ledgerhq/live-network": "^2.0.8-nightly.
|
226
|
-
"@ledgerhq/live-nft": "^0.8.6-nightly.
|
222
|
+
"@ledgerhq/live-network": "^2.0.8-nightly.1",
|
223
|
+
"@ledgerhq/live-nft": "^0.8.6-nightly.1",
|
227
224
|
"@ledgerhq/live-promise": "^0.1.0",
|
228
|
-
"@ledgerhq/live-signer-evm": "^0.4.1-nightly.
|
229
|
-
"@ledgerhq/live-
|
225
|
+
"@ledgerhq/live-signer-evm": "^0.4.1-nightly.1",
|
226
|
+
"@ledgerhq/live-signer-solana": "^0.1.1-nightly.0",
|
227
|
+
"@ledgerhq/live-wallet": "^0.10.9-nightly.1",
|
230
228
|
"@ledgerhq/logs": "^6.12.0",
|
231
|
-
"@ledgerhq/speculos-transport": "^0.2.1-nightly.
|
229
|
+
"@ledgerhq/speculos-transport": "^0.2.1-nightly.1",
|
232
230
|
"@ledgerhq/wallet-api-acre-module": "^0.5.0",
|
233
231
|
"@ledgerhq/wallet-api-exchange-module": "^0.13.0"
|
234
232
|
},
|
@@ -278,7 +276,7 @@
|
|
278
276
|
"undici": "6.19.2",
|
279
277
|
"uuid": "^8.3.2",
|
280
278
|
"ws": "7",
|
281
|
-
"@ledgerhq/device-react": "^0.2.31-nightly.
|
279
|
+
"@ledgerhq/device-react": "^0.2.31-nightly.1",
|
282
280
|
"@ledgerhq/types-cryptoassets": "^7.23.0",
|
283
281
|
"@ledgerhq/types-devices": "^6.25.3",
|
284
282
|
"@ledgerhq/types-live": "^6.71.0-nightly.0"
|
package/src/apps/logic.ts
CHANGED
@@ -5,9 +5,10 @@ import semver from "semver";
|
|
5
5
|
import { getDeviceModel } from "@ledgerhq/devices";
|
6
6
|
import { AppOp, State, Action, ListAppsResult, AppsDistribution, SkipReason } from "./types";
|
7
7
|
import { findCryptoCurrency, findCryptoCurrencyById, isCurrencySupported } from "../currencies";
|
8
|
-
import {
|
8
|
+
import { NoSuchAppOnProvider } from "../errors";
|
9
9
|
import { App } from "@ledgerhq/types-live";
|
10
10
|
import { getEnv } from "@ledgerhq/live-env";
|
11
|
+
import { LatestFirmwareVersionRequired } from "@ledgerhq/errors";
|
11
12
|
|
12
13
|
export const initState = (
|
13
14
|
{ deviceModelId, appsListNames, installed, appByName, ...listAppsResult }: ListAppsResult,
|
package/src/errors.ts
CHANGED
@@ -7,10 +7,6 @@ export const GetAppAndVersionUnsupportedFormat = createCustomErrorClass(
|
|
7
7
|
"GetAppAndVersionUnsupportedFormat",
|
8
8
|
);
|
9
9
|
|
10
|
-
export const LatestFirmwareVersionRequired = createCustomErrorClass(
|
11
|
-
"LatestFirmwareVersionRequired",
|
12
|
-
);
|
13
|
-
|
14
10
|
export const FeeEstimationFailed = createCustomErrorClass("FeeEstimationFailed");
|
15
11
|
export const TransactionRefusedOnDevice = createCustomErrorClass("TransactionRefusedOnDevice");
|
16
12
|
|
@@ -68,8 +68,8 @@ const INCOMPATIBLE_NANO_S_CURRENCY_KEYS: Keys = {
|
|
68
68
|
description: "swap.incompatibility.dydx_description",
|
69
69
|
},
|
70
70
|
sui: {
|
71
|
-
title: "swap.incompatibility.
|
72
|
-
description: "swap.incompatibility.
|
71
|
+
title: "swap.incompatibility.sui_title",
|
72
|
+
description: "swap.incompatibility.sui_description",
|
73
73
|
},
|
74
74
|
};
|
75
75
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import
|
1
|
+
import { LegacySignerSolana } from "@ledgerhq/live-signer-solana";
|
2
2
|
import Transport from "@ledgerhq/hw-transport";
|
3
3
|
import { Account, AnyMessage } from "@ledgerhq/types-live";
|
4
4
|
import { PubKeyDisplayMode } from "@ledgerhq/coin-solana/signer";
|
@@ -29,20 +29,22 @@ const signOffchainMessageMock = jest.fn(() =>
|
|
29
29
|
}),
|
30
30
|
);
|
31
31
|
|
32
|
-
jest.mock("@ledgerhq/
|
33
|
-
return
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
32
|
+
jest.mock("@ledgerhq/live-signer-solana", () => {
|
33
|
+
return {
|
34
|
+
LegacySignerSolana: jest.fn().mockImplementation(() => {
|
35
|
+
return {
|
36
|
+
signMessage: signOffchainMessageMock,
|
37
|
+
getAppConfiguration: getAppConfigurationMock,
|
38
|
+
};
|
39
|
+
}),
|
40
|
+
};
|
39
41
|
});
|
40
42
|
|
41
43
|
LiveConfig.setConfig(solanaConfig);
|
42
44
|
|
43
45
|
describe("Testing setup on Solana", () => {
|
44
46
|
describe("Testing message signer", () => {
|
45
|
-
it("should call
|
47
|
+
it("should call the underlying signer for off-chain message signature", async () => {
|
46
48
|
const freshAddressPath = "44'/60'/0'/0/0";
|
47
49
|
const freshAddress = "8DpKDisipx6f76cEmuGvCX9TrA3SjeR76HaTRePxHBDe";
|
48
50
|
const message = "4c6f6e67204f66662d436861696e2054657374204d6573736167652e";
|
@@ -52,7 +54,7 @@ describe("Testing setup on Solana", () => {
|
|
52
54
|
{ message: message } as AnyMessage,
|
53
55
|
);
|
54
56
|
|
55
|
-
expect(
|
57
|
+
expect(LegacySignerSolana).toHaveBeenCalledTimes(1);
|
56
58
|
expect(signOffchainMessageMock).toHaveBeenCalledTimes(1);
|
57
59
|
|
58
60
|
const args = signOffchainMessageMock.mock.calls[0] as unknown[];
|
@@ -1,7 +1,5 @@
|
|
1
1
|
// Goal of this file is to inject all necessary device/signer dependency to coin-modules
|
2
2
|
|
3
|
-
import semver from "semver";
|
4
|
-
import Solana from "@ledgerhq/hw-app-solana";
|
5
3
|
import Transport from "@ledgerhq/hw-transport";
|
6
4
|
import type { Bridge } from "@ledgerhq/types-live";
|
7
5
|
import { SolanaSigner } from "@ledgerhq/coin-solana/signer";
|
@@ -9,101 +7,21 @@ import { createBridges } from "@ledgerhq/coin-solana/bridge/js";
|
|
9
7
|
import makeCliTools from "@ledgerhq/coin-solana/cli-transaction";
|
10
8
|
import solanaResolver from "@ledgerhq/coin-solana/hw-getAddress";
|
11
9
|
import { SolanaAccount, Transaction, TransactionStatus } from "@ledgerhq/coin-solana/types";
|
12
|
-
import { DeviceModelId } from "@ledgerhq/devices";
|
13
|
-
import { loadPKI } from "@ledgerhq/hw-bolos";
|
14
|
-
import calService from "@ledgerhq/ledger-cal-service";
|
15
|
-
import trustService from "@ledgerhq/ledger-trust-service";
|
16
|
-
import { TransportStatusError, UpdateYourApp } from "@ledgerhq/errors";
|
17
10
|
import {
|
18
11
|
CreateSigner,
|
19
12
|
createMessageSigner,
|
20
13
|
createResolver,
|
21
14
|
executeWithSigner,
|
22
15
|
} from "../../bridge/setup";
|
23
|
-
import { LatestFirmwareVersionRequired } from "../../errors";
|
24
16
|
import type { Resolver } from "../../hw/getAddress/types";
|
25
17
|
import { getCurrencyConfiguration } from "../../config";
|
26
18
|
import { SolanaCoinConfig } from "@ledgerhq/coin-solana/config";
|
27
19
|
import { getCryptoCurrencyById } from "../../currencies";
|
28
20
|
import { signMessage } from "@ledgerhq/coin-solana/hw-signMessage";
|
21
|
+
import { LegacySignerSolana } from "@ledgerhq/live-signer-solana";
|
29
22
|
|
30
|
-
const
|
31
|
-
|
32
|
-
|
33
|
-
async function checkVersion(app: Solana) {
|
34
|
-
const { version } = await app.getAppConfiguration();
|
35
|
-
if (semver.lt(version, TRUSTED_NAME_MIN_VERSION)) {
|
36
|
-
throw new UpdateYourApp(undefined, {
|
37
|
-
managerAppName: MANAGER_APP_NAME,
|
38
|
-
});
|
39
|
-
}
|
40
|
-
}
|
41
|
-
|
42
|
-
function isPKIUnsupportedError(err: unknown): err is TransportStatusError {
|
43
|
-
return err instanceof TransportStatusError && err.message.includes("0x6a81");
|
44
|
-
}
|
45
|
-
|
46
|
-
const createSigner: CreateSigner<SolanaSigner> = (transport: Transport) => {
|
47
|
-
const app = new Solana(transport);
|
48
|
-
return {
|
49
|
-
getAppConfiguration: app.getAppConfiguration,
|
50
|
-
getAddress: app.getAddress,
|
51
|
-
signTransaction: async (path, tx, resolution) => {
|
52
|
-
if (resolution) {
|
53
|
-
if (!resolution.deviceModelId) {
|
54
|
-
throw new Error("Resolution provided without a deviceModelId");
|
55
|
-
}
|
56
|
-
|
57
|
-
if (resolution.deviceModelId !== DeviceModelId.nanoS) {
|
58
|
-
const { descriptor, signature } = await calService.getCertificate(
|
59
|
-
resolution.deviceModelId,
|
60
|
-
);
|
61
|
-
|
62
|
-
try {
|
63
|
-
await loadPKI(transport, "TRUSTED_NAME", descriptor, signature);
|
64
|
-
} catch (err) {
|
65
|
-
if (isPKIUnsupportedError(err)) {
|
66
|
-
throw new LatestFirmwareVersionRequired("LatestFirmwareVersionRequired");
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
|
-
if (resolution.tokenAddress) {
|
71
|
-
await checkVersion(app);
|
72
|
-
|
73
|
-
const challenge = await app.getChallenge();
|
74
|
-
const { signedDescriptor } = await trustService.getOwnerAddress(
|
75
|
-
resolution.tokenAddress,
|
76
|
-
challenge,
|
77
|
-
);
|
78
|
-
|
79
|
-
if (signedDescriptor) {
|
80
|
-
await app.provideTrustedName(signedDescriptor);
|
81
|
-
}
|
82
|
-
}
|
83
|
-
if (resolution.createATA) {
|
84
|
-
await checkVersion(app);
|
85
|
-
|
86
|
-
const challenge = await app.getChallenge();
|
87
|
-
const { signedDescriptor } = await trustService.computedTokenAddress(
|
88
|
-
resolution.createATA.address,
|
89
|
-
resolution.createATA.mintAddress,
|
90
|
-
challenge,
|
91
|
-
);
|
92
|
-
|
93
|
-
if (signedDescriptor) {
|
94
|
-
await app.provideTrustedName(signedDescriptor);
|
95
|
-
}
|
96
|
-
}
|
97
|
-
}
|
98
|
-
}
|
99
|
-
|
100
|
-
return app.signTransaction(path, tx);
|
101
|
-
},
|
102
|
-
signMessage: (path: string, messageHex: string) => {
|
103
|
-
return app.signOffchainMessage(path, Buffer.from(messageHex, "hex"));
|
104
|
-
},
|
105
|
-
};
|
106
|
-
};
|
23
|
+
const createSigner: CreateSigner<SolanaSigner> = (transport: Transport) =>
|
24
|
+
new LegacySignerSolana(transport);
|
107
25
|
|
108
26
|
const getCurrencyConfig = () => {
|
109
27
|
return getCurrencyConfiguration<SolanaCoinConfig>(getCryptoCurrencyById("solana"));
|
package/src/hw/connectApp.ts
CHANGED
@@ -11,6 +11,7 @@ import {
|
|
11
11
|
DisconnectedDevice,
|
12
12
|
StatusCodes,
|
13
13
|
LockedDeviceError,
|
14
|
+
LatestFirmwareVersionRequired,
|
14
15
|
} from "@ledgerhq/errors";
|
15
16
|
import type Transport from "@ledgerhq/hw-transport";
|
16
17
|
import { type DerivationMode, DeviceInfo, FirmwareUpdateContext } from "@ledgerhq/types-live";
|
@@ -25,7 +26,6 @@ import getDeviceInfo from "./getDeviceInfo";
|
|
25
26
|
import getAddress from "./getAddress";
|
26
27
|
import openApp from "./openApp";
|
27
28
|
import quitApp from "./quitApp";
|
28
|
-
import { LatestFirmwareVersionRequired } from "../errors";
|
29
29
|
import { mustUpgrade } from "../apps";
|
30
30
|
import isUpdateAvailable from "./isUpdateAvailable";
|
31
31
|
import { LockedDeviceEvent } from "./actions/types";
|