@ledgerhq/vault-common 1.72.0 → 1.73.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.
Files changed (55) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/CHANGELOG.md +6 -0
  3. package/lib/apiUser/index.d.ts +19 -0
  4. package/lib/apiUser/index.d.ts.map +1 -0
  5. package/lib/apiUser/index.js +122 -0
  6. package/lib/apiUser/index.js.map +1 -0
  7. package/lib/approveAPIRequest.d.ts +10 -0
  8. package/lib/approveAPIRequest.d.ts.map +1 -0
  9. package/lib/approveAPIRequest.js +82 -0
  10. package/lib/approveAPIRequest.js.map +1 -0
  11. package/lib/createPledge.d.ts +13 -0
  12. package/lib/createPledge.d.ts.map +1 -0
  13. package/lib/createPledge.js +126 -0
  14. package/lib/createPledge.js.map +1 -0
  15. package/lib/crypto/utils.d.ts +2 -0
  16. package/lib/crypto/utils.d.ts.map +1 -1
  17. package/lib/crypto/utils.js +23 -1
  18. package/lib/crypto/utils.js.map +1 -1
  19. package/lib/esm/apiUser/index.d.ts +19 -0
  20. package/lib/esm/apiUser/index.d.ts.map +1 -0
  21. package/lib/esm/apiUser/index.js +113 -0
  22. package/lib/esm/apiUser/index.js.map +1 -0
  23. package/lib/esm/approveAPIRequest.d.ts +10 -0
  24. package/lib/esm/approveAPIRequest.d.ts.map +1 -0
  25. package/lib/esm/approveAPIRequest.js +77 -0
  26. package/lib/esm/approveAPIRequest.js.map +1 -0
  27. package/lib/esm/createPledge.d.ts +13 -0
  28. package/lib/esm/createPledge.d.ts.map +1 -0
  29. package/lib/esm/createPledge.js +121 -0
  30. package/lib/esm/createPledge.js.map +1 -0
  31. package/lib/esm/crypto/utils.d.ts +2 -0
  32. package/lib/esm/crypto/utils.d.ts.map +1 -1
  33. package/lib/esm/crypto/utils.js +20 -0
  34. package/lib/esm/crypto/utils.js.map +1 -1
  35. package/lib/esm/index.d.ts +3 -1
  36. package/lib/esm/index.d.ts.map +1 -1
  37. package/lib/esm/index.js +3 -1
  38. package/lib/esm/index.js.map +1 -1
  39. package/lib/esm/types/index.d.ts +15 -0
  40. package/lib/esm/types/index.d.ts.map +1 -1
  41. package/lib/esm/types/tradelink.d.ts +30 -0
  42. package/lib/esm/types/tradelink.d.ts.map +1 -0
  43. package/lib/esm/types/tradelink.js +2 -0
  44. package/lib/esm/types/tradelink.js.map +1 -0
  45. package/lib/index.d.ts +3 -1
  46. package/lib/index.d.ts.map +1 -1
  47. package/lib/index.js +5 -1
  48. package/lib/index.js.map +1 -1
  49. package/lib/types/index.d.ts +15 -0
  50. package/lib/types/index.d.ts.map +1 -1
  51. package/lib/types/tradelink.d.ts +30 -0
  52. package/lib/types/tradelink.d.ts.map +1 -0
  53. package/lib/types/tradelink.js +3 -0
  54. package/lib/types/tradelink.js.map +1 -0
  55. package/package.json +3 -1
@@ -1,16 +1,16 @@
1
1
 
2
- > @ledgerhq/vault-common@1.72.0 build /home/runner/work/vault-ts/vault-ts/packages/common
2
+ > @ledgerhq/vault-common@1.73.0 build /home/runner/work/vault-ts/vault-ts/packages/common
3
3
  > pnpm clean && pnpm build:cjs && pnpm build:esm
4
4
 
5
5
 
6
- > @ledgerhq/vault-common@1.72.0 clean /home/runner/work/vault-ts/vault-ts/packages/common
6
+ > @ledgerhq/vault-common@1.73.0 clean /home/runner/work/vault-ts/vault-ts/packages/common
7
7
  > rm -rf lib
8
8
 
9
9
 
10
- > @ledgerhq/vault-common@1.72.0 build:cjs /home/runner/work/vault-ts/vault-ts/packages/common
10
+ > @ledgerhq/vault-common@1.73.0 build:cjs /home/runner/work/vault-ts/vault-ts/packages/common
11
11
  > tsc -P tsconfig.build.json --module commonjs --target es5 --outDir lib
12
12
 
13
13
 
14
- > @ledgerhq/vault-common@1.72.0 build:esm /home/runner/work/vault-ts/vault-ts/packages/common
14
+ > @ledgerhq/vault-common@1.73.0 build:esm /home/runner/work/vault-ts/vault-ts/packages/common
15
15
  > tsc -P tsconfig.build.json --module es2015 --target es5 --outDir lib/esm
16
16
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ledgerhq/vault-common
2
2
 
3
+ ## 1.73.0
4
+
5
+ ### Minor Changes
6
+
7
+ - cf295ee: Support of pledge and approval for APIv2 User
8
+
3
9
  ## 1.72.0
4
10
 
5
11
  ### Minor Changes
@@ -0,0 +1,19 @@
1
+ import { APIRequestResponse, DevicesPool, ManifestAPIV2User, Network } from "../types";
2
+ export type APIChallenge = {
3
+ challenge: string;
4
+ decodedChallenge: any;
5
+ };
6
+ export declare function authenticate(pool: DevicesPool, apiNetwork: Network, apiUser: ManifestAPIV2User): Promise<string>;
7
+ export declare function decodeChallenge({ apiNetwork, bearerToken, requestID, }: {
8
+ apiNetwork: Network;
9
+ bearerToken: string;
10
+ requestID: number;
11
+ }): Promise<APIChallenge>;
12
+ export declare function signAndApprove({ apiNetwork, bearerToken, requestID, apiUser, challenge, }: {
13
+ apiNetwork: Network;
14
+ bearerToken: string;
15
+ requestID: number;
16
+ apiUser: ManifestAPIV2User;
17
+ challenge: string;
18
+ }): Promise<APIRequestResponse>;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apiUser/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,OAAO,EACR,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,GAAG,CAAC;CACvB,CAAC;AACF,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED,wBAAsB,eAAe,CAAC,EACpC,UAAU,EACV,WAAW,EACX,SAAS,GACV,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBxB;AAED,wBAAsB,cAAc,CAAC,EACnC,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgB9B"}
@@ -0,0 +1,122 @@
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 __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.signAndApprove = exports.decodeChallenge = exports.authenticate = void 0;
43
+ var createDefaultRunner_1 = __importDefault(require("../createDefaultRunner"));
44
+ var utils_1 = require("../crypto/utils");
45
+ function authenticate(pool, apiNetwork, apiUser) {
46
+ return __awaiter(this, void 0, void 0, function () {
47
+ var runner, postApiUserAccess, userAccessRequest, apiUserAuth, bearerResp;
48
+ return __generator(this, function (_a) {
49
+ switch (_a.label) {
50
+ case 0:
51
+ runner = (0, createDefaultRunner_1.default)(pool, {});
52
+ postApiUserAccess = {
53
+ user: apiUser,
54
+ publicKey: (0, utils_1.genKeys)(apiUser.name).hexPubKey,
55
+ role: apiUser.role,
56
+ name: apiUser.name,
57
+ };
58
+ return [4, runner.createAPIV2UserAccess(postApiUserAccess)];
59
+ case 1:
60
+ userAccessRequest = _a.sent();
61
+ apiUserAuth = {
62
+ api_key_id: userAccessRequest.api_key_id,
63
+ api_key_secret: userAccessRequest.api_key_secret,
64
+ };
65
+ return [4, apiNetwork("POST", "/auth/token", apiUserAuth, {
66
+ headers: { "X-Ledger-Workspace": "minivault" },
67
+ })];
68
+ case 2:
69
+ bearerResp = _a.sent();
70
+ return [2, bearerResp.access_token];
71
+ }
72
+ });
73
+ });
74
+ }
75
+ exports.authenticate = authenticate;
76
+ function decodeChallenge(_a) {
77
+ var apiNetwork = _a.apiNetwork, bearerToken = _a.bearerToken, requestID = _a.requestID;
78
+ return __awaiter(this, void 0, void 0, function () {
79
+ var challengeResp;
80
+ return __generator(this, function (_b) {
81
+ switch (_b.label) {
82
+ case 0: return [4, apiNetwork("GET", "/requests/".concat(requestID, "/challenge"), {}, {
83
+ headers: {
84
+ "X-Ledger-Workspace": "minivault",
85
+ "Content-Type": "application/json",
86
+ Authorization: "Bearer ".concat(bearerToken),
87
+ },
88
+ })];
89
+ case 1:
90
+ challengeResp = _b.sent();
91
+ return [2, {
92
+ challenge: challengeResp.challenge,
93
+ decodedChallenge: (0, utils_1.decodeData)(challengeResp.challenge),
94
+ }];
95
+ }
96
+ });
97
+ });
98
+ }
99
+ exports.decodeChallenge = decodeChallenge;
100
+ function signAndApprove(_a) {
101
+ var apiNetwork = _a.apiNetwork, bearerToken = _a.bearerToken, requestID = _a.requestID, apiUser = _a.apiUser, challenge = _a.challenge;
102
+ return __awaiter(this, void 0, void 0, function () {
103
+ var keys, jws;
104
+ return __generator(this, function (_b) {
105
+ switch (_b.label) {
106
+ case 0:
107
+ keys = (0, utils_1.genKeys)(apiUser.name);
108
+ jws = (0, utils_1.sign)(String(keys.privateKey), challenge);
109
+ return [4, apiNetwork("POST", "/requests/".concat(requestID, "/approve"), { jws: jws }, {
110
+ headers: {
111
+ "X-Ledger-Workspace": "minivault",
112
+ "Content-Type": "application/json",
113
+ Authorization: "Bearer ".concat(bearerToken),
114
+ },
115
+ })];
116
+ case 1: return [2, _b.sent()];
117
+ }
118
+ });
119
+ });
120
+ }
121
+ exports.signAndApprove = signAndApprove;
122
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/apiUser/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+EAAyD;AACzD,yCAA4D;AAc5D,SAAsB,YAAY,CAChC,IAAiB,EACjB,UAAmB,EACnB,OAA0B;;;;;;oBAEpB,MAAM,GAAG,IAAA,6BAAmB,EAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACvC,iBAAiB,GAAG;wBACxB,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS;wBAC1C,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;qBACnB,CAAC;oBACwB,WAAM,MAAM,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAA;;oBAAzE,iBAAiB,GAAG,SAAqD;oBACzE,WAAW,GAAG;wBAClB,UAAU,EAAE,iBAAiB,CAAC,UAAU;wBACxC,cAAc,EAAE,iBAAiB,CAAC,cAAc;qBACjD,CAAC;oBAEiB,WAAM,UAAU,CAAyB,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE;4BAC9F,OAAO,EAAE,EAAE,oBAAoB,EAAE,WAAW,EAAE;yBAC/C,CAAC,EAAA;;oBAFI,UAAU,GAAG,SAEjB;oBACF,WAAO,UAAU,CAAC,YAAY,EAAC;;;;CAChC;AAtBD,oCAsBC;AAED,SAAsB,eAAe,CAAC,EAQrC;QAPC,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,SAAS,eAAA;;;;;wBAMa,WAAM,UAAU,CACpC,KAAK,EACL,oBAAa,SAAS,eAAY,EAClC,EAAE,EACF;wBACE,OAAO,EAAE;4BACP,oBAAoB,EAAE,WAAW;4BACjC,cAAc,EAAE,kBAAkB;4BAClC,aAAa,EAAE,iBAAU,WAAW,CAAE;yBACvC;qBACF,CACF,EAAA;;oBAXK,aAAa,GAAG,SAWrB;oBACD,WAAO;4BACL,SAAS,EAAE,aAAa,CAAC,SAAS;4BAClC,gBAAgB,EAAE,IAAA,kBAAU,EAAC,aAAa,CAAC,SAAS,CAAC;yBACtD,EAAC;;;;CACH;AAzBD,0CAyBC;AAED,SAAsB,cAAc,CAAC,EAYpC;QAXC,UAAU,gBAAA,EACV,WAAW,iBAAA,EACX,SAAS,eAAA,EACT,OAAO,aAAA,EACP,SAAS,eAAA;;;;;;oBAQH,IAAI,GAAG,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAE7B,GAAG,GAAG,IAAA,YAAI,EAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC9C,WAAM,UAAU,CACrB,MAAM,EACN,oBAAa,SAAS,aAAU,EAChC,EAAE,GAAG,KAAA,EAAE,EACP;4BACE,OAAO,EAAE;gCACP,oBAAoB,EAAE,WAAW;gCACjC,cAAc,EAAE,kBAAkB;gCAClC,aAAa,EAAE,iBAAU,WAAW,CAAE;6BACvC;yBACF,CACF,EAAA;wBAXD,WAAO,SAWN,EAAC;;;;CACH;AA5BD,wCA4BC"}
@@ -0,0 +1,10 @@
1
+ import { APIRequestResponse, DevicesPool, ManifestAPIV2User, RunnableOptions } from "./types";
2
+ export type ApproveAPIRequestOptions = {
3
+ pool: DevicesPool;
4
+ requestID: number;
5
+ apiUser: ManifestAPIV2User;
6
+ apiGateway: string;
7
+ };
8
+ declare function approveAPIRequest({ pool, requestID, apiUser, apiGateway }: ApproveAPIRequestOptions, { logger }?: RunnableOptions): Promise<APIRequestResponse>;
9
+ export default approveAPIRequest;
10
+ //# sourceMappingURL=approveAPIRequest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approveAPIRequest.d.ts","sourceRoot":"","sources":["../src/approveAPIRequest.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE9F,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAe,iBAAiB,CAC9B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,wBAAwB,EAClE,EAAE,MAAsB,EAAE,GAAE,eAAoB,GAC/C,OAAO,CAAC,kBAAkB,CAAC,CAuB7B;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,82 @@
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 __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var vault_utils_1 = require("@ledgerhq/vault-utils");
43
+ var apiUser_1 = require("./apiUser");
44
+ var createNetwork_1 = __importDefault(require("./createNetwork"));
45
+ function approveAPIRequest(_a, _b) {
46
+ var pool = _a.pool, requestID = _a.requestID, apiUser = _a.apiUser, apiGateway = _a.apiGateway;
47
+ var _c = _b === void 0 ? {} : _b, _d = _c.logger, logger = _d === void 0 ? vault_utils_1.SILENT_LOGGER : _d;
48
+ return __awaiter(this, void 0, void 0, function () {
49
+ var apiNetwork, bearerToken, apiChallenge;
50
+ return __generator(this, function (_e) {
51
+ switch (_e.label) {
52
+ case 0:
53
+ apiNetwork = (0, createNetwork_1.default)({
54
+ baseURL: apiGateway,
55
+ });
56
+ logger.info("Autenticate for ".concat(apiUser.name));
57
+ return [4, (0, apiUser_1.authenticate)(pool, apiNetwork, apiUser)];
58
+ case 1:
59
+ bearerToken = _e.sent();
60
+ logger.info("Decode challenge");
61
+ return [4, (0, apiUser_1.decodeChallenge)({
62
+ apiNetwork: apiNetwork,
63
+ bearerToken: bearerToken,
64
+ requestID: requestID,
65
+ })];
66
+ case 2:
67
+ apiChallenge = _e.sent();
68
+ logger.info(apiChallenge.decodedChallenge);
69
+ logger.info("Sign and approve");
70
+ return [2, (0, apiUser_1.signAndApprove)({
71
+ apiNetwork: apiNetwork,
72
+ bearerToken: bearerToken,
73
+ requestID: requestID,
74
+ apiUser: apiUser,
75
+ challenge: apiChallenge.challenge,
76
+ })];
77
+ }
78
+ });
79
+ });
80
+ }
81
+ exports.default = approveAPIRequest;
82
+ //# sourceMappingURL=approveAPIRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approveAPIRequest.js","sourceRoot":"","sources":["../src/approveAPIRequest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAsD;AAEtD,qCAA0E;AAC1E,kEAA4C;AAU5C,SAAe,iBAAiB,CAC9B,EAAkE,EAClE,EAAgD;QAD9C,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,OAAO,aAAA,EAAE,UAAU,gBAAA;QACtC,qBAA8C,EAAE,KAAA,EAA9C,cAAsB,EAAtB,MAAM,mBAAG,2BAAa,KAAA;;;;;;oBAElB,UAAU,GAAG,IAAA,uBAAa,EAAC;wBAC/B,OAAO,EAAE,UAAU;qBACpB,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,0BAAmB,OAAO,CAAC,IAAI,CAAE,CAAC,CAAC;oBAC3B,WAAM,IAAA,sBAAY,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAA;;oBAA3D,WAAW,GAAG,SAA6C;oBACjE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACX,WAAM,IAAA,yBAAe,EAAC;4BACzC,UAAU,YAAA;4BACV,WAAW,aAAA;4BACX,SAAS,WAAA;yBACV,CAAC,EAAA;;oBAJI,YAAY,GAAG,SAInB;oBAEF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;oBAC3C,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBAEhC,WAAO,IAAA,wBAAc,EAAC;4BACpB,UAAU,YAAA;4BACV,WAAW,aAAA;4BACX,SAAS,WAAA;4BACT,OAAO,SAAA;4BACP,SAAS,EAAE,YAAY,CAAC,SAAS;yBAClC,CAAC,EAAC;;;;CACJ;AAED,kBAAe,iBAAiB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { APIRequestResponse, DevicesPool, GateAccount, ManifestAPIV2User, ManifestAccount, RunnableOptions } from "./types";
2
+ export type CreatePledgeOptions = {
3
+ pool: DevicesPool;
4
+ account: ManifestAccount;
5
+ accountsByName: Record<string, GateAccount>;
6
+ exchange: string;
7
+ amount: string;
8
+ apiUser: ManifestAPIV2User;
9
+ apiGateway: string;
10
+ };
11
+ declare function createPledge({ pool, account, accountsByName, exchange, amount, apiUser, apiGateway }: CreatePledgeOptions, { logger }?: RunnableOptions): Promise<APIRequestResponse>;
12
+ export default createPledge;
13
+ //# sourceMappingURL=createPledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPledge.d.ts","sourceRoot":"","sources":["../src/createPledge.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,kBAAkB,EAElB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,SAAS,CAAC;AAIjB,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,eAAe,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,iBAAe,YAAY,CACzB,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,mBAAmB,EAC7F,EAAE,MAAsB,EAAE,GAAE,eAAoB,GAC/C,OAAO,CAAC,kBAAkB,CAAC,CAwE7B;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,126 @@
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 __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var vault_utils_1 = require("@ledgerhq/vault-utils");
43
+ var apiUser_1 = require("./apiUser");
44
+ var createNetwork_1 = __importDefault(require("./createNetwork"));
45
+ var utils_1 = require("./utils");
46
+ function createPledge(_a, _b) {
47
+ var pool = _a.pool, account = _a.account, accountsByName = _a.accountsByName, exchange = _a.exchange, amount = _a.amount, apiUser = _a.apiUser, apiGateway = _a.apiGateway;
48
+ var _c = _b === void 0 ? {} : _b, _d = _c.logger, logger = _d === void 0 ? vault_utils_1.SILENT_LOGGER : _d;
49
+ return __awaiter(this, void 0, void 0, function () {
50
+ var gateAccount, apiNetwork, bearerToken, pledgesResp, pledgeResp, unit, serializedAmount, data, pledgeRequestResp, apiChallenge;
51
+ return __generator(this, function (_e) {
52
+ switch (_e.label) {
53
+ case 0:
54
+ gateAccount = accountsByName[account.name];
55
+ if (!gateAccount)
56
+ throw new Error("Can't find account with name ".concat(account.name));
57
+ apiNetwork = (0, createNetwork_1.default)({
58
+ baseURL: apiGateway,
59
+ });
60
+ logger.info("Authenticate for ".concat(apiUser.name));
61
+ return [4, (0, apiUser_1.authenticate)(pool, apiNetwork, apiUser)];
62
+ case 1:
63
+ bearerToken = _e.sent();
64
+ return [4, apiNetwork("GET", "/pledges?account_id=".concat(gateAccount.id), {}, {
65
+ headers: {
66
+ "X-Ledger-Workspace": "minivault",
67
+ "Content-Type": "application/json",
68
+ Authorization: "Bearer ".concat(bearerToken),
69
+ },
70
+ })];
71
+ case 2:
72
+ pledgesResp = _e.sent();
73
+ pledgeResp = pledgesResp.edges.find(function (p) { return p.node.exchange.name == exchange; });
74
+ if (!pledgeResp)
75
+ throw new Error("Exchange '".concat(exchange, "' not found"));
76
+ if (!("currency" in account))
77
+ throw Error("Account ".concat(account.name, " doesn't have currency"));
78
+ logger.info("Create pledge");
79
+ unit = (0, utils_1.getAccountUnit)(account, []);
80
+ serializedAmount = (0, utils_1.serializeUnitValue)(unit, amount);
81
+ data = {
82
+ type: "CREATE_PLEDGE_INCREMENT",
83
+ data: {
84
+ pledge_account_id: pledgeResp.node.pledge_subaccount_id,
85
+ pledge_data: {
86
+ amount: serializedAmount,
87
+ account_name: account.name,
88
+ currency: account.currency,
89
+ exchange_name: exchange,
90
+ },
91
+ },
92
+ };
93
+ return [4, apiNetwork("POST", "/requests", data, {
94
+ headers: {
95
+ "X-Ledger-Workspace": "minivault",
96
+ "Content-Type": "application/json",
97
+ Authorization: "Bearer ".concat(bearerToken),
98
+ },
99
+ })];
100
+ case 3:
101
+ pledgeRequestResp = _e.sent();
102
+ logger.info("Approving pledge ".concat(pledgeRequestResp.id));
103
+ logger.info("Decode challenge");
104
+ return [4, (0, apiUser_1.decodeChallenge)({
105
+ apiNetwork: apiNetwork,
106
+ bearerToken: bearerToken,
107
+ requestID: pledgeRequestResp.id,
108
+ })];
109
+ case 4:
110
+ apiChallenge = _e.sent();
111
+ logger.info(apiChallenge.decodedChallenge);
112
+ logger.info("Sign and approve");
113
+ return [4, (0, apiUser_1.signAndApprove)({
114
+ apiNetwork: apiNetwork,
115
+ bearerToken: bearerToken,
116
+ requestID: pledgeRequestResp.id,
117
+ apiUser: apiUser,
118
+ challenge: apiChallenge.challenge,
119
+ })];
120
+ case 5: return [2, _e.sent()];
121
+ }
122
+ });
123
+ });
124
+ }
125
+ exports.default = createPledge;
126
+ //# sourceMappingURL=createPledge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPledge.js","sourceRoot":"","sources":["../src/createPledge.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ type GeneratedKeys = {
5
5
  publicKey: string;
6
6
  hexPubKey: string;
7
7
  };
8
+ export declare function decodeData(challenge: string): void;
9
+ export declare function sign(privateKey: string, challenge: string): string;
8
10
  export declare function genKeys(entropy?: string): GeneratedKeys;
9
11
  export {};
10
12
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":";AAOA,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,MAEtC,CAAC;AAgBF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAwBvD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":";AAQA,eAAO,MAAM,QAAQ,QAAS,MAAM,KAAG,MAEtC,CAAC;AAgBF,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGlD;AAED,wBAAgB,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAczD;AAMD,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAwBvD"}
@@ -26,11 +26,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.genKeys = exports.hashCode = void 0;
29
+ exports.genKeys = exports.sign = exports.decodeData = exports.hashCode = void 0;
30
30
  var crypto_1 = __importDefault(require("crypto"));
31
31
  var enc_hex_1 = __importDefault(require("crypto-js/enc-hex"));
32
32
  var sha256_1 = __importDefault(require("crypto-js/sha256"));
33
33
  var elliptic = __importStar(require("elliptic"));
34
+ var jwt = __importStar(require("jsonwebtoken"));
34
35
  var keyEncoder_1 = __importDefault(require("./keyEncoder"));
35
36
  var hashCode = function (str) {
36
37
  return Buffer.from(enc_hex_1.default.stringify((0, sha256_1.default)(str)), "hex");
@@ -44,6 +45,27 @@ function extractPublicKey(pemKey) {
44
45
  var actualKeyBuffer = keyBuffer.slice(26);
45
46
  return actualKeyBuffer.toString("hex");
46
47
  }
48
+ function decodeData(challenge) {
49
+ var decodedString = atob(challenge);
50
+ return JSON.parse(decodedString);
51
+ }
52
+ exports.decodeData = decodeData;
53
+ function sign(privateKey, challenge) {
54
+ var pKey = crypto_1.default.createPrivateKey({
55
+ key: String(privateKey),
56
+ format: "pem",
57
+ });
58
+ var privateKeyPem = pKey.export({ format: "pem", type: "sec1" });
59
+ var dataTosign = Buffer.from(challenge, "base64").toString("hex");
60
+ return jwt.sign(Buffer.from(dataTosign, "hex"), privateKeyPem, {
61
+ algorithm: "ES256",
62
+ header: {
63
+ alg: "ES256",
64
+ typ: "JWT",
65
+ },
66
+ });
67
+ }
68
+ exports.sign = sign;
47
69
  function genKeys(entropy) {
48
70
  if (entropy) {
49
71
  var ec = new elliptic.ec("p256");
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,8DAAoC;AACpC,4DAAsC;AACtC,iDAAqC;AAErC,4DAAsC;AAE/B,IAAM,QAAQ,GAAG,UAAC,GAAW;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAG,CAAC,SAAS,CAAC,IAAA,gBAAM,EAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEF,SAAS,gBAAgB,CAAC,MAAc;IAGtC,IAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,GAAG,EAAE,CAAC;IAEV,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAGtD,IAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAYD,SAAgB,OAAO,CAAC,OAAgB;IACtC,IAAI,OAAO,EAAE;QACX,IAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACnC,IAAM,aAAa,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChF,IAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC;YAC5B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;SAC3C,CAAC,CAAC;QACH,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3E,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SAC9F,CAAC;KACH;IACK,IAAA,KAA4B,gBAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;QACjE,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAClD,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;KACpD,CAAC,EAJM,SAAS,eAAA,EAAE,UAAU,gBAI3B,CAAC;IACH,IAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO;QACL,UAAU,YAAA;QACV,SAAS,WAAA;QACT,SAAS,WAAA;KACV,CAAC;AACJ,CAAC;AAxBD,0BAwBC;AAED,SAAS,QAAQ,CAAC,SAAiB,EAAE,EAAyB;QAAzB,qBAAuB,EAAE,KAAA,EAAvB,iBAAgB,EAAhB,SAAS,mBAAG,IAAI,KAAA;IACrD,IAAM,UAAU,GAAG,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,SAAS,EAAE;QACb,OAAO,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KAC1D;IACD,OAAO,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/crypto/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA4B;AAC5B,8DAAoC;AACpC,4DAAsC;AACtC,iDAAqC;AACrC,gDAAoC;AAEpC,4DAAsC;AAE/B,IAAM,QAAQ,GAAG,UAAC,GAAW;IAClC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAG,CAAC,SAAS,CAAC,IAAA,gBAAM,EAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEF,SAAS,gBAAgB,CAAC,MAAc;IAGtC,IAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,GAAG,CAAC,KAAK,EAAE,CAAC;IACZ,GAAG,CAAC,GAAG,EAAE,CAAC;IAEV,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAGtD,IAAM,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAQD,SAAgB,UAAU,CAAC,SAAiB;IAC1C,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAHD,gCAGC;AAED,SAAgB,IAAI,CAAC,UAAkB,EAAE,SAAiB;IACxD,IAAM,IAAI,GAAG,gBAAM,CAAC,gBAAgB,CAAC;QACnC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;QACvB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE;QAC7D,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE;YACN,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,KAAK;SACX;KACF,CAAC,CAAC;AACL,CAAC;AAdD,oBAcC;AAMD,SAAgB,OAAO,CAAC,OAAgB;IACtC,IAAI,OAAO,EAAE;QACX,IAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACnC,IAAM,aAAa,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChF,IAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC;YAC5B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;SAC3C,CAAC,CAAC;QACH,OAAO;YACL,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3E,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;SAC9F,CAAC;KACH;IACK,IAAA,KAA4B,gBAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE;QACjE,UAAU,EAAE,OAAO;QACnB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAClD,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;KACpD,CAAC,EAJM,SAAS,eAAA,EAAE,UAAU,gBAI3B,CAAC;IACH,IAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC9C,OAAO;QACL,UAAU,YAAA;QACV,SAAS,WAAA;QACT,SAAS,WAAA;KACV,CAAC;AACJ,CAAC;AAxBD,0BAwBC;AAED,SAAS,QAAQ,CAAC,SAAiB,EAAE,EAAyB;QAAzB,qBAAuB,EAAE,KAAA,EAAvB,iBAAgB,EAAhB,SAAS,mBAAG,IAAI,KAAA;IACrD,IAAM,UAAU,GAAG,IAAI,oBAAU,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,SAAS,EAAE;QACb,OAAO,UAAU,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;KAC1D;IACD,OAAO,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { APIRequestResponse, DevicesPool, ManifestAPIV2User, Network } from "../types";
2
+ export type APIChallenge = {
3
+ challenge: string;
4
+ decodedChallenge: any;
5
+ };
6
+ export declare function authenticate(pool: DevicesPool, apiNetwork: Network, apiUser: ManifestAPIV2User): Promise<string>;
7
+ export declare function decodeChallenge({ apiNetwork, bearerToken, requestID, }: {
8
+ apiNetwork: Network;
9
+ bearerToken: string;
10
+ requestID: number;
11
+ }): Promise<APIChallenge>;
12
+ export declare function signAndApprove({ apiNetwork, bearerToken, requestID, apiUser, challenge, }: {
13
+ apiNetwork: Network;
14
+ bearerToken: string;
15
+ requestID: number;
16
+ apiUser: ManifestAPIV2User;
17
+ challenge: string;
18
+ }): Promise<APIRequestResponse>;
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/apiUser/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,OAAO,EACR,MAAM,UAAU,CAAC;AAElB,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,GAAG,CAAC;CACvB,CAAC;AACF,wBAAsB,YAAY,CAChC,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,OAAO,EACnB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED,wBAAsB,eAAe,CAAC,EACpC,UAAU,EACV,WAAW,EACX,SAAS,GACV,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBxB;AAED,wBAAsB,cAAc,CAAC,EACnC,UAAU,EACV,WAAW,EACX,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE;IACD,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAgB9B"}