@ledgerhq/vault-cli 1.9.5 → 1.10.1

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.
@@ -49,6 +49,7 @@ export const createDevicesPool = jest.fn().mockReturnValue({
49
49
  connectSocket: jest.fn(),
50
50
  onEvent: jest.fn(),
51
51
  rejectRequest: jest.fn(),
52
+ approveRequest: jest.fn(),
52
53
  }),
53
54
  getUserID: jest.fn().mockReturnValue("userID"),
54
55
  getOnboardingAdminDevices: jest.fn().mockReturnValue([
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ const approve_1 = __importStar(require("../commands/approve"));
32
+ const test_utils_1 = require("./test-utils");
33
+ const opts = {
34
+ device: 5,
35
+ gate: "<gate>",
36
+ salt: "",
37
+ };
38
+ describe("approve", () => {
39
+ let spyConsole;
40
+ beforeEach(() => {
41
+ spyConsole = jest.spyOn(console, "log").mockImplementation();
42
+ });
43
+ afterEach(() => {
44
+ spyConsole.mockRestore();
45
+ });
46
+ it("should display usage if none of --all and --requestID is specified", () => __awaiter(void 0, void 0, void 0, function* () {
47
+ yield approve_1.default.run(opts);
48
+ expect(spyConsole).toHaveBeenCalledWith("Usage: ledger-vault approve --all");
49
+ expect(spyConsole).toHaveBeenCalledWith("Usage: ledger-vault approve --requestID 1303");
50
+ }));
51
+ it("should approve request of specified id", () => __awaiter(void 0, void 0, void 0, function* () {
52
+ const { login } = test_utils_1.createTestDevicesPool();
53
+ const admin = yield login(opts.device);
54
+ yield approve_1.default.run(Object.assign(Object.assign({}, opts), { requestID: 1 }));
55
+ expect(admin.approveRequest).toHaveBeenCalledWith({ id: 1 });
56
+ }));
57
+ it("should approve all requests", () => __awaiter(void 0, void 0, void 0, function* () {
58
+ const { login } = test_utils_1.createTestDevicesPool();
59
+ const admin = yield login(opts.device);
60
+ yield approve_1.default.run(Object.assign(Object.assign({}, opts), { all: true }));
61
+ expect(admin.approveRequest).toHaveBeenCalledWith({ id: 1 });
62
+ expect(admin.approveRequest).toHaveBeenCalledWith({ id: 2 });
63
+ }));
64
+ it("should approve transaction request of given id", () => __awaiter(void 0, void 0, void 0, function* () {
65
+ const { login } = test_utils_1.createTestDevicesPool();
66
+ const admin = yield login(opts.device);
67
+ yield approve_1.default.run(Object.assign(Object.assign({}, opts), { requestID: 2 }));
68
+ expect(admin.approveRequest).toHaveBeenCalledWith({ id: 2 });
69
+ }));
70
+ test_utils_1.testErrorCommand({
71
+ description: "should throw if request ID is not found",
72
+ task: approve_1.default.run,
73
+ options: Object.assign(Object.assign({}, opts), { requestID: 3 }),
74
+ errorMessage: "Couldn't find request 3",
75
+ });
76
+ describe("approveTransactionRequest", () => {
77
+ const request = {
78
+ id: 0,
79
+ type: "type",
80
+ status: "status",
81
+ target_id: 0,
82
+ created_by: null,
83
+ created_on: "",
84
+ entityType: "REQUEST",
85
+ expired_at: new Date(),
86
+ target_type: "target",
87
+ current_step: 0,
88
+ approvals_steps: [],
89
+ };
90
+ it("should throw if no user is found", () => __awaiter(void 0, void 0, void 0, function* () {
91
+ const pool = test_utils_1.createTestDevicesPool();
92
+ yield expect(approve_1.approveTransactionRequest({ pool, request, usersWithDevice: [] })).rejects.toThrowError("Couldn't find user who created request 0");
93
+ }));
94
+ });
95
+ });
96
+ //# sourceMappingURL=approve.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve.test.js","sourceRoot":"","sources":["../../src/__tests__/approve.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { DevicesPool } from "@ledgerhq/vault-common";
2
+ import type { GateGenericRequest, UserWithDevice } from "@ledgerhq/vault-common/lib/types";
3
+ import { GateOptions } from "../types";
4
+ export declare type ApproveOptions = GateOptions & {
5
+ device: number | "lam";
6
+ requestID?: number;
7
+ all?: boolean;
8
+ };
9
+ declare type ApproveTransactionRequest = {
10
+ pool: DevicesPool;
11
+ request: GateGenericRequest;
12
+ usersWithDevice: UserWithDevice[];
13
+ };
14
+ export declare const approveTransactionRequest: (params: ApproveTransactionRequest) => Promise<void>;
15
+ declare const _default: {
16
+ command: string;
17
+ description: string;
18
+ options: ({
19
+ name: string;
20
+ type: BooleanConstructor;
21
+ description: string;
22
+ } | {
23
+ name: string;
24
+ description: string;
25
+ type: StringConstructor;
26
+ } | {
27
+ name: string;
28
+ description: string;
29
+ type: NumberConstructor;
30
+ defaultValue: number;
31
+ } | {
32
+ name: string;
33
+ description: string;
34
+ type: NumberConstructor;
35
+ })[];
36
+ run: (options: ApproveOptions) => Promise<void>;
37
+ };
38
+ export default _default;
@@ -0,0 +1,115 @@
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
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
12
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
13
+ var m = o[Symbol.asyncIterator], i;
14
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
15
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
16
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
17
+ };
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.approveTransactionRequest = void 0;
23
+ const vault_common_1 = require("@ledgerhq/vault-common");
24
+ const gateOptions_1 = __importDefault(require("../gateOptions"));
25
+ const logger_1 = __importDefault(require("../logger"));
26
+ const lamOptions_1 = __importDefault(require("../lamOptions"));
27
+ const cliOptions_1 = __importDefault(require("../cliOptions"));
28
+ const deviceOption_1 = __importDefault(require("../deviceOption"));
29
+ const runApprove = (options) => __awaiter(void 0, void 0, void 0, function* () {
30
+ var e_1, _a;
31
+ const { all, requestID } = options;
32
+ if (!all && !requestID) {
33
+ console.log("Usage: ledger-vault approve --all");
34
+ console.log("Usage: ledger-vault approve --requestID 1303");
35
+ return;
36
+ }
37
+ const pool = vault_common_1.createDevicesPool(Object.assign(Object.assign({}, options), { deviceAPIURL: options.deviceAPI }));
38
+ const isTransactionRequest = (request) => request.type === "CREATE_TRANSACTION";
39
+ const admin = yield pool.login(options.device);
40
+ const requestsConnection = yield admin.network("GET", "/requests?meta_status=PENDING&pageSize=-1");
41
+ const requests = requestsConnection.edges.map((elt) => elt.node);
42
+ const hasPendingTransactions = requests.some(isTransactionRequest);
43
+ let usersWithDevice = [];
44
+ if (hasPendingTransactions) {
45
+ const manifestFromGate = yield vault_common_1.recipeManifest(pool);
46
+ usersWithDevice = manifestFromGate.rawData.usersWithDevice;
47
+ }
48
+ if (all) {
49
+ if (requests.length === 0)
50
+ return;
51
+ logger_1.default.info("Approving all pending requests");
52
+ try {
53
+ for (var requests_1 = __asyncValues(requests), requests_1_1; requests_1_1 = yield requests_1.next(), !requests_1_1.done;) {
54
+ const request = requests_1_1.value;
55
+ if (isTransactionRequest(request) && request.created_by) {
56
+ yield exports.approveTransactionRequest({ pool, request, usersWithDevice });
57
+ }
58
+ else {
59
+ yield admin.approveRequest({ id: request.id });
60
+ }
61
+ logger_1.default.success(`Approved request ${request.id}: ${request.type}`);
62
+ }
63
+ }
64
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
65
+ finally {
66
+ try {
67
+ if (requests_1_1 && !requests_1_1.done && (_a = requests_1.return)) yield _a.call(requests_1);
68
+ }
69
+ finally { if (e_1) throw e_1.error; }
70
+ }
71
+ return;
72
+ }
73
+ const request = requests.find((request) => request.id === requestID);
74
+ if (!request)
75
+ throw new Error(`Couldn't find request ${requestID}`);
76
+ if (isTransactionRequest(request) && request.created_by) {
77
+ yield exports.approveTransactionRequest({ pool, request, usersWithDevice });
78
+ }
79
+ else {
80
+ yield admin.approveRequest({ id: request.id });
81
+ }
82
+ logger_1.default.success(`Approve request ${request.id}: ${request.type}`);
83
+ });
84
+ const approveTransactionRequest = (params) => __awaiter(void 0, void 0, void 0, function* () {
85
+ const { pool, request, usersWithDevice } = params;
86
+ const user = usersWithDevice.find((ud) => request.created_by && ud.user.id === request.created_by.id);
87
+ if (!user)
88
+ throw new Error(`Couldn't find user who created request ${request.id}`);
89
+ const deviceIndex = user.deviceIndex;
90
+ const operator = yield pool.login(deviceIndex);
91
+ yield operator.approveRequest({ id: request.id });
92
+ });
93
+ exports.approveTransactionRequest = approveTransactionRequest;
94
+ exports.default = {
95
+ command: "approve",
96
+ description: "Approve specific request or all request",
97
+ options: [
98
+ ...gateOptions_1.default,
99
+ ...lamOptions_1.default,
100
+ ...cliOptions_1.default,
101
+ deviceOption_1.default,
102
+ {
103
+ name: "all",
104
+ description: "Approve all pending request",
105
+ type: Boolean,
106
+ },
107
+ {
108
+ name: "requestID",
109
+ description: "Approve a specific request",
110
+ type: Number,
111
+ },
112
+ ],
113
+ run: runApprove,
114
+ };
115
+ //# sourceMappingURL=approve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approve.js","sourceRoot":"","sources":["../../src/commands/approve.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,11 @@ exports.default = {
29
29
  options: [
30
30
  deviceOption_1.default,
31
31
  ...gateOptions_1.default,
32
+ {
33
+ name: "deviceAPISessionID",
34
+ description: "SessionID to send to device-api",
35
+ type: String,
36
+ },
32
37
  {
33
38
  name: "noisechannel",
34
39
  description: "Use new secure channel implementation (noise protocol)",
@@ -1 +1 @@
1
- {"version":3,"file":"getAuthToken.js","sourceRoot":"","sources":["../../src/commands/getAuthToken.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yDAAwE;AAExE,iEAAyC;AACzC,mEAA2C;AAO3C,SAAe,YAAY,CAAC,OAA4B;;QACtD,MAAM,IAAI,mCACL,OAAO,KACV,YAAY,EAAE,OAAO,CAAC,SAAS,GAChC,CAAC;QACF,MAAM,IAAI,GAAG,gCAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,CAAC;CAAA;AAED,kBAAe;IACb,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,6DAA6D;IAC1E,OAAO,EAAE;QACP,sBAAY;QACZ,GAAG,qBAAW;QACd;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,KAAK;SACpB;KACF;IACD,GAAG,EAAE,YAAY;CAClB,CAAC"}
1
+ {"version":3,"file":"getAuthToken.js","sourceRoot":"","sources":["../../src/commands/getAuthToken.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,yDAAwE;AAExE,iEAAyC;AACzC,mEAA2C;AAO3C,SAAe,YAAY,CAAC,OAA4B;;QACtD,MAAM,IAAI,mCACL,OAAO,KACV,YAAY,EAAE,OAAO,CAAC,SAAS,GAChC,CAAC;QACF,MAAM,IAAI,GAAG,gCAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,CAAC;CAAA;AAED,kBAAe;IACb,OAAO,EAAE,cAAc;IACvB,WAAW,EAAE,6DAA6D;IAC1E,OAAO,EAAE;QACP,sBAAY;QACZ,GAAG,qBAAW;QACd;YACE,IAAI,EAAE,oBAAoB;YAC1B,WAAW,EAAE,iCAAiC;YAC9C,IAAI,EAAE,MAAM;SACb;QACD;YACE,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,wDAAwD;YACrE,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,KAAK;SACpB;KACF;IACD,GAAG,EAAE,YAAY;CAClB,CAAC"}
@@ -574,7 +574,7 @@ declare const _default: {
574
574
  description: string;
575
575
  type: NumberConstructor;
576
576
  })[];
577
- run: (options: import("./reject").RejectOptions) => Promise<void>;
577
+ run: (options: import("./approve").ApproveOptions) => Promise<void>;
578
578
  } | {
579
579
  command: string;
580
580
  positionals: boolean;
@@ -25,6 +25,7 @@ const registerMigratedUsers_1 = __importDefault(require("./registerMigratedUsers
25
25
  const send_1 = __importDefault(require("./send"));
26
26
  const setQuorum_1 = __importDefault(require("./setQuorum"));
27
27
  const wipe_1 = __importDefault(require("./wipe"));
28
+ const approve_1 = __importDefault(require("./approve"));
28
29
  const reject_1 = __importDefault(require("./reject"));
29
30
  const apdu_1 = __importDefault(require("./apdu"));
30
31
  const getMVInstances_1 = __importDefault(require("./getMVInstances"));
@@ -83,6 +84,7 @@ exports.default = {
83
84
  receive_1.default,
84
85
  proxy_1.default,
85
86
  bridge_1.default,
87
+ approve_1.default,
86
88
  reject_1.default,
87
89
  apdu_1.default,
88
90
  getMVInstances_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AACjC,sDAAqC;AACrC,sDAAqC;AACrC,sDAAqC;AACrC,wDAAuC;AACvC,oDAAmC;AACnC,sDAAqC;AACrC,oDAAmC;AACnC,gDAA+B;AAC/B,kEAAiD;AACjD,4DAA2C;AAC3C,0DAAyC;AACzC,sDAAqC;AACrC,wDAAuC;AACvC,wDAAuC;AACvC,oDAAmC;AACnC,wDAAuC;AACvC,sDAAqC;AACrC,oFAAmE;AACnE,kDAAiC;AACjC,4DAA2C;AAC3C,kDAAiC;AACjC,sDAAqC;AACrC,kDAAiC;AACjC,sEAAqD;AAKrD,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE;YACP,uDAAuD;YACvD,EAAE;YACF,yCAAyC;SAC1C;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,sBAAsB;KACpC;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,WAAW;KACzB;CACF,CAAC;AAEF,kBAAe;IACb,IAAI;IACJ,OAAO;IACP,WAAW,EAAE;QACX,iBAAc;QACd,cAAW;QACX,gBAAa;QACb,cAAW;QACX,gBAAa;QACb,iBAAc;QACd,gBAAa;QACb,mBAAgB;QAChB,aAAU;QACV,eAAY;QACZ,gBAAa;QACb,sBAAmB;QACnB,mBAAgB;QAChB,iBAAc;QACd,+BAA4B;QAC5B,gBAAa;QACb,kBAAe;QACf,eAAY;QACZ,cAAW;QACX,iBAAc;QACd,eAAY;QACZ,gBAAa;QACb,gBAAa;QACb,cAAW;QACX,wBAAqB;KACtB;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AACjC,sDAAqC;AACrC,sDAAqC;AACrC,sDAAqC;AACrC,wDAAuC;AACvC,oDAAmC;AACnC,sDAAqC;AACrC,oDAAmC;AACnC,gDAA+B;AAC/B,kEAAiD;AACjD,4DAA2C;AAC3C,0DAAyC;AACzC,sDAAqC;AACrC,wDAAuC;AACvC,wDAAuC;AACvC,oDAAmC;AACnC,wDAAuC;AACvC,sDAAqC;AACrC,oFAAmE;AACnE,kDAAiC;AACjC,4DAA2C;AAC3C,kDAAiC;AACjC,wDAAuC;AACvC,sDAAqC;AACrC,kDAAiC;AACjC,sEAAqD;AAKrD,MAAM,IAAI,GAAG;IACX;QACE,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE;YACP,uDAAuD;YACvD,EAAE;YACF,yCAAyC;SAC1C;KACF;CACF,CAAC;AAEF,MAAM,OAAO,GAAG;IACd;QACE,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,sBAAsB;KACpC;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,cAAc;KAC5B;IACD;QACE,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,WAAW;KACzB;CACF,CAAC;AAEF,kBAAe;IACb,IAAI;IACJ,OAAO;IACP,WAAW,EAAE;QACX,iBAAc;QACd,cAAW;QACX,gBAAa;QACb,cAAW;QACX,gBAAa;QACb,iBAAc;QACd,gBAAa;QACb,mBAAgB;QAChB,aAAU;QACV,eAAY;QACZ,gBAAa;QACb,sBAAmB;QACnB,mBAAgB;QAChB,iBAAc;QACd,+BAA4B;QAC5B,gBAAa;QACb,kBAAe;QACf,eAAY;QACZ,cAAW;QACX,iBAAc;QACd,eAAY;QACZ,gBAAa;QACb,iBAAc;QACd,gBAAa;QACb,cAAW;QACX,wBAAqB;KACtB;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/vault-cli",
3
- "version": "1.9.5",
3
+ "version": "1.10.1",
4
4
  "description": "A various utility command-line for Vault development",
5
5
  "homepage": "https://github.com/LedgerHQ/vault-js",
6
6
  "license": "BSD-2-Clause",
@@ -24,7 +24,7 @@
24
24
  "@ledgerhq/cryptoassets": "^6.28.2",
25
25
  "@ledgerhq/hw-transport-node-hid": "^6.24.1",
26
26
  "@ledgerhq/live-common-stub": "^1.4.2",
27
- "@ledgerhq/vault-common": "^1.9.4",
27
+ "@ledgerhq/vault-common": "^1.10.0",
28
28
  "axios": "^0.21.0",
29
29
  "bignumber.js": "^9.0.1",
30
30
  "body-parser": "^1.19.0",
@@ -50,5 +50,5 @@
50
50
  "@types/node": "^15.0.2",
51
51
  "@types/progress": "^2.0.3"
52
52
  },
53
- "gitHead": "0201e950d38e642266ae3de51b6d86fefac2f3a4"
53
+ "gitHead": "ebfc0ed573b6cc69d2ea58e0254fb52b305dfec5"
54
54
  }