@ledgerhq/domain-service 0.2.0-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.
- package/lib/index.d.ts +4 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +20 -0
- package/lib/index.js.map +1 -0
- package/lib/registries/index.d.ts +20 -0
- package/lib/registries/index.d.ts.map +1 -0
- package/lib/registries/index.js +105 -0
- package/lib/registries/index.js.map +1 -0
- package/lib/resolvers/index.d.ts +25 -0
- package/lib/resolvers/index.d.ts.map +1 -0
- package/lib/resolvers/index.js +158 -0
- package/lib/resolvers/index.js.map +1 -0
- package/lib/signers/index.d.ts +20 -0
- package/lib/signers/index.d.ts.map +1 -0
- package/lib/signers/index.js +128 -0
- package/lib/signers/index.js.map +1 -0
- package/lib/types.d.ts +19 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +3 -0
- package/lib/types.js.map +1 -0
- package/lib-es/index.d.ts +4 -0
- package/lib-es/index.d.ts.map +1 -0
- package/lib-es/index.js +4 -0
- package/lib-es/index.js.map +1 -0
- package/lib-es/registries/index.d.ts +20 -0
- package/lib-es/registries/index.d.ts.map +1 -0
- package/lib-es/registries/index.js +99 -0
- package/lib-es/registries/index.js.map +1 -0
- package/lib-es/resolvers/index.d.ts +25 -0
- package/lib-es/resolvers/index.d.ts.map +1 -0
- package/lib-es/resolvers/index.js +150 -0
- package/lib-es/resolvers/index.js.map +1 -0
- package/lib-es/signers/index.d.ts +20 -0
- package/lib-es/signers/index.d.ts.map +1 -0
- package/lib-es/signers/index.js +120 -0
- package/lib-es/signers/index.js.map +1 -0
- package/lib-es/types.d.ts +19 -0
- package/lib-es/types.d.ts.map +1 -0
- package/lib-es/types.js +2 -0
- package/lib-es/types.js.map +1 -0
- package/package.json +89 -0
- package/src/__tests__/unit/registries.unit.test.ts +34 -0
- package/src/__tests__/unit/resolvers.unit.test.ts +72 -0
- package/src/__tests__/unit/signers.unit.test.ts +80 -0
- package/src/index.ts +3 -0
- package/src/registries/index.ts +61 -0
- package/src/resolvers/index.ts +118 -0
- package/src/signers/index.ts +78 -0
- package/src/types.ts +20 -0
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
exports.__esModule = true;
|
|
17
|
+
__exportStar(require("./registries"), exports);
|
|
18
|
+
__exportStar(require("./resolvers"), exports);
|
|
19
|
+
__exportStar(require("./signers"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,8CAA4B;AAC5B,4CAA0B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Registry } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Method is voluntarly made async so it can be replaced by a backend call once implemented
|
|
4
|
+
*/
|
|
5
|
+
export declare const getRegistries: () => Promise<Registry[]>;
|
|
6
|
+
/**
|
|
7
|
+
* Get an array of registries compatible with a given domain
|
|
8
|
+
*
|
|
9
|
+
* @param {string} domain
|
|
10
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
11
|
+
*/
|
|
12
|
+
export declare const getRegistriesForDomain: (domain: string) => Promise<Registry[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Get an array of registries compatible with a given address
|
|
15
|
+
*
|
|
16
|
+
* @param {string} address
|
|
17
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
18
|
+
*/
|
|
19
|
+
export declare const getRegistriesForAddress: (address: string) => Promise<Registry[]>;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAyBpC;;GAEG;AACH,eAAO,MAAM,aAAa,QAAa,QAAQ,QAAQ,EAAE,CAAe,CAAC;AAEzE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,WACzB,MAAM,KACb,QAAQ,QAAQ,EAAE,CAMpB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,YACzB,MAAM,KACd,QAAQ,QAAQ,EAAE,CAMpB,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
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
|
+
exports.__esModule = true;
|
|
39
|
+
exports.getRegistriesForAddress = exports.getRegistriesForDomain = exports.getRegistries = void 0;
|
|
40
|
+
var REGISTRIES = [
|
|
41
|
+
{
|
|
42
|
+
name: "ens",
|
|
43
|
+
resolvers: {
|
|
44
|
+
forward: "https://explorers.api.live.ledger.com/blockchain/v4/eth/ens/resolve/{name}",
|
|
45
|
+
reverse: "https://explorers.api.live.ledger.com/blockchain/v4/eth/ens/reverse-resolve/{address}"
|
|
46
|
+
},
|
|
47
|
+
signatures: {
|
|
48
|
+
forward: "https://nft.api.live.ledger.com/v1/names/ens/forward/{name}?=challenge={challenge}",
|
|
49
|
+
reverse: "https://nft.api.live.ledger.com/v1/names/ens/reverse/{address}?=challenge={challenge}"
|
|
50
|
+
},
|
|
51
|
+
patterns: {
|
|
52
|
+
forward: new RegExp(".eth$"),
|
|
53
|
+
reverse: new RegExp("^0x[0-9a-fA-F]{40}$")
|
|
54
|
+
},
|
|
55
|
+
coinTypes: [60]
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
/**
|
|
59
|
+
* Method is voluntarly made async so it can be replaced by a backend call once implemented
|
|
60
|
+
*/
|
|
61
|
+
var getRegistries = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
62
|
+
return [2 /*return*/, REGISTRIES];
|
|
63
|
+
}); }); };
|
|
64
|
+
exports.getRegistries = getRegistries;
|
|
65
|
+
/**
|
|
66
|
+
* Get an array of registries compatible with a given domain
|
|
67
|
+
*
|
|
68
|
+
* @param {string} domain
|
|
69
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
70
|
+
*/
|
|
71
|
+
var getRegistriesForDomain = function (domain) { return __awaiter(void 0, void 0, void 0, function () {
|
|
72
|
+
var registries;
|
|
73
|
+
return __generator(this, function (_a) {
|
|
74
|
+
switch (_a.label) {
|
|
75
|
+
case 0: return [4 /*yield*/, (0, exports.getRegistries)()];
|
|
76
|
+
case 1:
|
|
77
|
+
registries = _a.sent();
|
|
78
|
+
return [2 /*return*/, registries.filter(function (registry) {
|
|
79
|
+
return registry.patterns.forward.test(domain);
|
|
80
|
+
})];
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}); };
|
|
84
|
+
exports.getRegistriesForDomain = getRegistriesForDomain;
|
|
85
|
+
/**
|
|
86
|
+
* Get an array of registries compatible with a given address
|
|
87
|
+
*
|
|
88
|
+
* @param {string} address
|
|
89
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
90
|
+
*/
|
|
91
|
+
var getRegistriesForAddress = function (address) { return __awaiter(void 0, void 0, void 0, function () {
|
|
92
|
+
var registries;
|
|
93
|
+
return __generator(this, function (_a) {
|
|
94
|
+
switch (_a.label) {
|
|
95
|
+
case 0: return [4 /*yield*/, (0, exports.getRegistries)()];
|
|
96
|
+
case 1:
|
|
97
|
+
registries = _a.sent();
|
|
98
|
+
return [2 /*return*/, registries.filter(function (registry) {
|
|
99
|
+
return registry.patterns.reverse.test(address);
|
|
100
|
+
})];
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}); };
|
|
104
|
+
exports.getRegistriesForAddress = getRegistriesForAddress;
|
|
105
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registries/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,UAAU,GAAe;IAC7B;QACE,IAAI,EAAE,KAAK;QACX,SAAS,EAAE;YACT,OAAO,EACL,4EAA4E;YAC9E,OAAO,EACL,uFAAuF;SAC1F;QACD,UAAU,EAAE;YACV,OAAO,EACL,oFAAoF;YACtF,OAAO,EACL,uFAAuF;SAC1F;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC;YAC5B,OAAO,EAAE,IAAI,MAAM,CAAC,qBAAqB,CAAC;SAC3C;QACD,SAAS,EAAE,CAAC,EAAE,CAAC;KAChB;CACF,CAAC;AAEF;;GAEG;AACI,IAAM,aAAa,GAAG;IAAiC,sBAAA,UAAU,EAAA;SAAA,CAAC;AAA5D,QAAA,aAAa,iBAA+C;AAEzE;;;;;GAKG;AACI,IAAM,sBAAsB,GAAG,UACpC,MAAc;;;;oBAEK,qBAAM,IAAA,qBAAa,GAAE,EAAA;;gBAAlC,UAAU,GAAG,SAAqB;gBAExC,sBAAO,UAAU,CAAC,MAAM,CAAC,UAAC,QAAQ;wBAChC,OAAA,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAtC,CAAsC,CACvC,EAAC;;;KACH,CAAC;AARW,QAAA,sBAAsB,0BAQjC;AAEF;;;;;GAKG;AACI,IAAM,uBAAuB,GAAG,UACrC,OAAe;;;;oBAEI,qBAAM,IAAA,qBAAa,GAAE,EAAA;;gBAAlC,UAAU,GAAG,SAAqB;gBAExC,sBAAO,UAAU,CAAC,MAAM,CAAC,UAAC,QAAQ;wBAChC,OAAA,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;oBAAvC,CAAuC,CACxC,EAAC;;;KACH,CAAC;AARW,QAAA,uBAAuB,2BAQlC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SupportedRegistries } from "../types";
|
|
2
|
+
type DomainResolutionResponse = {
|
|
3
|
+
registry: SupportedRegistries;
|
|
4
|
+
address: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Get an array of addresses for a domain
|
|
8
|
+
*
|
|
9
|
+
* @param {string} domain
|
|
10
|
+
* @returns {Promise<DomainResolutionResponse[]>}
|
|
11
|
+
*/
|
|
12
|
+
export declare const resolveDomain: (domain: string, registryName?: SupportedRegistries) => Promise<DomainResolutionResponse[]>;
|
|
13
|
+
type AddressResolutionResponse = {
|
|
14
|
+
registry: SupportedRegistries;
|
|
15
|
+
domain: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Get an array of domains for an address
|
|
19
|
+
*
|
|
20
|
+
* @param {string} address
|
|
21
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
22
|
+
*/
|
|
23
|
+
export declare const resolveAddress: (address: string, registryName?: SupportedRegistries) => Promise<AddressResolutionResponse[]>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAO/C,KAAK,wBAAwB,GAAG;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,WAChB,MAAM,iBACC,mBAAmB,KACjC,QAAQ,wBAAwB,EAAE,CAuCpC,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,YAChB,MAAM,iBACA,mBAAmB,KACjC,QAAQ,yBAAyB,EAAE,CAuCrC,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
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
|
+
exports.__esModule = true;
|
|
42
|
+
exports.resolveAddress = exports.resolveDomain = void 0;
|
|
43
|
+
var logs_1 = require("@ledgerhq/logs");
|
|
44
|
+
var network_1 = __importDefault(require("@ledgerhq/live-common/network"));
|
|
45
|
+
var registries_1 = require("../registries");
|
|
46
|
+
/**
|
|
47
|
+
* Get an array of addresses for a domain
|
|
48
|
+
*
|
|
49
|
+
* @param {string} domain
|
|
50
|
+
* @returns {Promise<DomainResolutionResponse[]>}
|
|
51
|
+
*/
|
|
52
|
+
var resolveDomain = function (domain, registryName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
53
|
+
var registries, responses;
|
|
54
|
+
return __generator(this, function (_a) {
|
|
55
|
+
switch (_a.label) {
|
|
56
|
+
case 0: return [4 /*yield*/, (function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
57
|
+
var registries_2, registry;
|
|
58
|
+
return __generator(this, function (_a) {
|
|
59
|
+
switch (_a.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
if (!registryName) return [3 /*break*/, 2];
|
|
62
|
+
return [4 /*yield*/, (0, registries_1.getRegistries)()];
|
|
63
|
+
case 1:
|
|
64
|
+
registries_2 = _a.sent();
|
|
65
|
+
registry = registries_2.find(function (r) { return r.name === registryName; });
|
|
66
|
+
return [2 /*return*/, registry ? [registry] : []];
|
|
67
|
+
case 2: return [2 /*return*/, (0, registries_1.getRegistriesForDomain)(domain)];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}); })()];
|
|
71
|
+
case 1:
|
|
72
|
+
registries = _a.sent();
|
|
73
|
+
responses = Promise.allSettled(registries.map(function (registry) {
|
|
74
|
+
return (0, network_1["default"])({
|
|
75
|
+
method: "GET",
|
|
76
|
+
url: registry.resolvers.forward.replace("{name}", domain)
|
|
77
|
+
});
|
|
78
|
+
}));
|
|
79
|
+
return [2 /*return*/, responses.then(function (promises) {
|
|
80
|
+
return promises.reduce(function (result, promise, index) {
|
|
81
|
+
if (promise.status !== "fulfilled") {
|
|
82
|
+
// ignore 404 error
|
|
83
|
+
if (promise.reason.response.status !== 404) {
|
|
84
|
+
(0, logs_1.log)("domain-service", "failed to resolve a domain", {
|
|
85
|
+
domain: domain,
|
|
86
|
+
error: promise.reason
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
result.push({
|
|
92
|
+
registry: registries[index].name,
|
|
93
|
+
address: promise.value.data
|
|
94
|
+
});
|
|
95
|
+
return result;
|
|
96
|
+
}, []);
|
|
97
|
+
})];
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}); };
|
|
101
|
+
exports.resolveDomain = resolveDomain;
|
|
102
|
+
/**
|
|
103
|
+
* Get an array of domains for an address
|
|
104
|
+
*
|
|
105
|
+
* @param {string} address
|
|
106
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
107
|
+
*/
|
|
108
|
+
var resolveAddress = function (address, registryName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
109
|
+
var registries, responses;
|
|
110
|
+
return __generator(this, function (_a) {
|
|
111
|
+
switch (_a.label) {
|
|
112
|
+
case 0: return [4 /*yield*/, (function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
113
|
+
var registries_3, registry;
|
|
114
|
+
return __generator(this, function (_a) {
|
|
115
|
+
switch (_a.label) {
|
|
116
|
+
case 0:
|
|
117
|
+
if (!registryName) return [3 /*break*/, 2];
|
|
118
|
+
return [4 /*yield*/, (0, registries_1.getRegistries)()];
|
|
119
|
+
case 1:
|
|
120
|
+
registries_3 = _a.sent();
|
|
121
|
+
registry = registries_3.find(function (r) { return r.name === registryName; });
|
|
122
|
+
return [2 /*return*/, registry ? [registry] : []];
|
|
123
|
+
case 2: return [2 /*return*/, (0, registries_1.getRegistriesForAddress)(address)];
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}); })()];
|
|
127
|
+
case 1:
|
|
128
|
+
registries = _a.sent();
|
|
129
|
+
responses = Promise.allSettled(registries.map(function (registry) {
|
|
130
|
+
return (0, network_1["default"])({
|
|
131
|
+
method: "GET",
|
|
132
|
+
url: registry.resolvers.reverse.replace("{address}", address)
|
|
133
|
+
});
|
|
134
|
+
}));
|
|
135
|
+
return [2 /*return*/, responses.then(function (promises) {
|
|
136
|
+
return promises.reduce(function (result, promise, index) {
|
|
137
|
+
if (promise.status !== "fulfilled") {
|
|
138
|
+
// ignore 404 error
|
|
139
|
+
if (promise.reason.response.status !== 404) {
|
|
140
|
+
(0, logs_1.log)("domain-service", "failed to resolve a address", {
|
|
141
|
+
address: address,
|
|
142
|
+
error: promise.reason
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return result;
|
|
146
|
+
}
|
|
147
|
+
result.push({
|
|
148
|
+
registry: registries[index].name,
|
|
149
|
+
domain: promise.value.data
|
|
150
|
+
});
|
|
151
|
+
return result;
|
|
152
|
+
}, []);
|
|
153
|
+
})];
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}); };
|
|
157
|
+
exports.resolveAddress = resolveAddress;
|
|
158
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resolvers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { SupportedRegistries } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Get an APDU to sign a domain resolution on the nano
|
|
4
|
+
*
|
|
5
|
+
* @param {string} domain
|
|
6
|
+
* @param {SupportedRegistries} registryName
|
|
7
|
+
* @param {string} challenge
|
|
8
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
9
|
+
*/
|
|
10
|
+
export declare const signDomainResolution: (domain: string, registryName: SupportedRegistries, challenge: string) => Promise<string | null>;
|
|
11
|
+
/**
|
|
12
|
+
* Get an APDU to sign an address resolve resolution on the nano
|
|
13
|
+
*
|
|
14
|
+
* @param {string} address
|
|
15
|
+
* @param {SupportedRegistries} registryName
|
|
16
|
+
* @param {string} challenge
|
|
17
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
18
|
+
*/
|
|
19
|
+
export declare const signAddressResolution: (address: string, registryName: SupportedRegistries, challenge: string) => Promise<string | null>;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signers/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/C;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,WACvB,MAAM,gBACA,mBAAmB,aACtB,MAAM,KAChB,QAAQ,MAAM,GAAG,IAAI,CAuBvB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,YACvB,MAAM,gBACD,mBAAmB,aACtB,MAAM,KAChB,QAAQ,MAAM,GAAG,IAAI,CAuBvB,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
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
|
+
exports.__esModule = true;
|
|
42
|
+
exports.signAddressResolution = exports.signDomainResolution = void 0;
|
|
43
|
+
var logs_1 = require("@ledgerhq/logs");
|
|
44
|
+
var network_1 = __importDefault(require("@ledgerhq/live-common/network"));
|
|
45
|
+
var registries_1 = require("../registries");
|
|
46
|
+
/**
|
|
47
|
+
* Get an APDU to sign a domain resolution on the nano
|
|
48
|
+
*
|
|
49
|
+
* @param {string} domain
|
|
50
|
+
* @param {SupportedRegistries} registryName
|
|
51
|
+
* @param {string} challenge
|
|
52
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
53
|
+
*/
|
|
54
|
+
var signDomainResolution = function (domain, registryName, challenge) { return __awaiter(void 0, void 0, void 0, function () {
|
|
55
|
+
var registries, registry, url;
|
|
56
|
+
return __generator(this, function (_a) {
|
|
57
|
+
switch (_a.label) {
|
|
58
|
+
case 0: return [4 /*yield*/, (0, registries_1.getRegistries)()];
|
|
59
|
+
case 1:
|
|
60
|
+
registries = _a.sent();
|
|
61
|
+
registry = registries.find(function (r) { return r.name === registryName; });
|
|
62
|
+
if (!registry)
|
|
63
|
+
return [2 /*return*/, null];
|
|
64
|
+
url = registry.signatures.forward
|
|
65
|
+
.replace("{name}", domain)
|
|
66
|
+
.replace("{challenge}", challenge);
|
|
67
|
+
return [2 /*return*/, (0, network_1["default"])({
|
|
68
|
+
method: "GET",
|
|
69
|
+
url: url
|
|
70
|
+
})
|
|
71
|
+
.then(function (_a) {
|
|
72
|
+
var data = _a.data;
|
|
73
|
+
return data.payload;
|
|
74
|
+
})["catch"](function (error) {
|
|
75
|
+
if (error.status !== 404) {
|
|
76
|
+
(0, logs_1.log)("domain-service", "failed to get APDU for a domain", {
|
|
77
|
+
domain: domain,
|
|
78
|
+
error: error
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
})];
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}); };
|
|
86
|
+
exports.signDomainResolution = signDomainResolution;
|
|
87
|
+
/**
|
|
88
|
+
* Get an APDU to sign an address resolve resolution on the nano
|
|
89
|
+
*
|
|
90
|
+
* @param {string} address
|
|
91
|
+
* @param {SupportedRegistries} registryName
|
|
92
|
+
* @param {string} challenge
|
|
93
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
94
|
+
*/
|
|
95
|
+
var signAddressResolution = function (address, registryName, challenge) { return __awaiter(void 0, void 0, void 0, function () {
|
|
96
|
+
var registries, registry, url;
|
|
97
|
+
return __generator(this, function (_a) {
|
|
98
|
+
switch (_a.label) {
|
|
99
|
+
case 0: return [4 /*yield*/, (0, registries_1.getRegistries)()];
|
|
100
|
+
case 1:
|
|
101
|
+
registries = _a.sent();
|
|
102
|
+
registry = registries.find(function (r) { return r.name === registryName; });
|
|
103
|
+
if (!registry)
|
|
104
|
+
return [2 /*return*/, null];
|
|
105
|
+
url = registry.signatures.reverse
|
|
106
|
+
.replace("{address}", address)
|
|
107
|
+
.replace("{challenge}", challenge);
|
|
108
|
+
return [2 /*return*/, (0, network_1["default"])({
|
|
109
|
+
method: "GET",
|
|
110
|
+
url: url
|
|
111
|
+
})
|
|
112
|
+
.then(function (_a) {
|
|
113
|
+
var data = _a.data;
|
|
114
|
+
return data.payload;
|
|
115
|
+
})["catch"](function (error) {
|
|
116
|
+
if (error.status !== 404) {
|
|
117
|
+
(0, logs_1.log)("domain-service", "failed to get APDU for an address", {
|
|
118
|
+
address: address,
|
|
119
|
+
error: error
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
123
|
+
})];
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}); };
|
|
127
|
+
exports.signAddressResolution = signAddressResolution;
|
|
128
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAqC;AACrC,0EAAoD;AAEpD,4CAA8C;AAE9C;;;;;;;GAOG;AACI,IAAM,oBAAoB,GAAG,UAClC,MAAc,EACd,YAAiC,EACjC,SAAiB;;;;oBAEE,qBAAM,IAAA,0BAAa,GAAE,EAAA;;gBAAlC,UAAU,GAAG,SAAqB;gBAClC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,YAAY,EAAvB,CAAuB,CAAC,CAAC;gBACjE,IAAI,CAAC,QAAQ;oBAAE,sBAAO,IAAI,EAAC;gBAErB,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO;qBACpC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC;qBACzB,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBAErC,sBAAO,IAAA,oBAAO,EAAsB;wBAClC,MAAM,EAAE,KAAK;wBACb,GAAG,KAAA;qBACJ,CAAC;yBACC,IAAI,CAAC,UAAC,EAAQ;4BAAN,IAAI,UAAA;wBAAO,OAAA,IAAI,CAAC,OAAO;oBAAZ,CAAY,CAAC,CAChC,OAAK,CAAA,CAAC,UAAC,KAAK;wBACX,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;4BACxB,IAAA,UAAG,EAAC,gBAAgB,EAAE,iCAAiC,EAAE;gCACvD,MAAM,QAAA;gCACN,KAAK,OAAA;6BACN,CAAC,CAAC;yBACJ;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,EAAC;;;KACN,CAAC;AA3BW,QAAA,oBAAoB,wBA2B/B;AAEF;;;;;;;GAOG;AACI,IAAM,qBAAqB,GAAG,UACnC,OAAe,EACf,YAAiC,EACjC,SAAiB;;;;oBAEE,qBAAM,IAAA,0BAAa,GAAE,EAAA;;gBAAlC,UAAU,GAAG,SAAqB;gBAClC,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,YAAY,EAAvB,CAAuB,CAAC,CAAC;gBACjE,IAAI,CAAC,QAAQ;oBAAE,sBAAO,IAAI,EAAC;gBAErB,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO;qBACpC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;qBAC7B,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBAErC,sBAAO,IAAA,oBAAO,EAAsB;wBAClC,MAAM,EAAE,KAAK;wBACb,GAAG,KAAA;qBACJ,CAAC;yBACC,IAAI,CAAC,UAAC,EAAQ;4BAAN,IAAI,UAAA;wBAAO,OAAA,IAAI,CAAC,OAAO;oBAAZ,CAAY,CAAC,CAChC,OAAK,CAAA,CAAC,UAAC,KAAK;wBACX,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;4BACxB,IAAA,UAAG,EAAC,gBAAgB,EAAE,mCAAmC,EAAE;gCACzD,OAAO,SAAA;gCACP,KAAK,OAAA;6BACN,CAAC,CAAC;yBACJ;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC,CAAC,EAAC;;;KACN,CAAC;AA3BW,QAAA,qBAAqB,yBA2BhC"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CoinType } from "@ledgerhq/types-cryptoassets";
|
|
2
|
+
export type SupportedRegistries = "ens";
|
|
3
|
+
export type Registry = {
|
|
4
|
+
name: SupportedRegistries;
|
|
5
|
+
resolvers: {
|
|
6
|
+
forward: string;
|
|
7
|
+
reverse: string;
|
|
8
|
+
};
|
|
9
|
+
signatures: {
|
|
10
|
+
forward: string;
|
|
11
|
+
reverse: string;
|
|
12
|
+
};
|
|
13
|
+
patterns: {
|
|
14
|
+
forward: RegExp;
|
|
15
|
+
reverse: RegExp;
|
|
16
|
+
};
|
|
17
|
+
coinTypes: CoinType[];
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAExC,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC"}
|
package/lib/types.js
ADDED
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
package/lib-es/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Registry } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Method is voluntarly made async so it can be replaced by a backend call once implemented
|
|
4
|
+
*/
|
|
5
|
+
export declare const getRegistries: () => Promise<Registry[]>;
|
|
6
|
+
/**
|
|
7
|
+
* Get an array of registries compatible with a given domain
|
|
8
|
+
*
|
|
9
|
+
* @param {string} domain
|
|
10
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
11
|
+
*/
|
|
12
|
+
export declare const getRegistriesForDomain: (domain: string) => Promise<Registry[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Get an array of registries compatible with a given address
|
|
15
|
+
*
|
|
16
|
+
* @param {string} address
|
|
17
|
+
* @returns {Promise<AddressResolutionResponse[]>}
|
|
18
|
+
*/
|
|
19
|
+
export declare const getRegistriesForAddress: (address: string) => Promise<Registry[]>;
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registries/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAyBpC;;GAEG;AACH,eAAO,MAAM,aAAa,QAAa,QAAQ,QAAQ,EAAE,CAAe,CAAC;AAEzE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,WACzB,MAAM,KACb,QAAQ,QAAQ,EAAE,CAMpB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,YACzB,MAAM,KACd,QAAQ,QAAQ,EAAE,CAMpB,CAAC"}
|