UNPKG

@ledgerhq/domain-service

Version:
82 lines 2.85 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.signAddressResolution = exports.signDomainResolution = void 0; const axios_1 = __importDefault(require("axios")); const logs_1 = require("@ledgerhq/logs"); const registries_1 = require("../registries"); const utils_1 = require("../utils"); /** * Get an APDU to sign a domain resolution on the nano * * @param {string} domain * @param {SupportedRegistries} registryName * @param {string} challenge * @returns {Promise<AddressResolutionResponse[]>} */ const signDomainResolution = async (domain, registryName, challenge) => { if (!(0, utils_1.validateDomain)(domain)) { throw new Error(`Domains with more than 255 caracters or with unicode are not supported on the nano. Domain: ${domain}`); } const registries = await (0, registries_1.getRegistries)(); const registry = registries.find(r => r.name === registryName); if (!registry) return null; const url = registry.signatures.forward .replace("{name}", domain) .replace("{challenge}", challenge); return axios_1.default .request({ method: "GET", url, }) .then(({ data }) => data.payload) .catch(error => { /* istanbul ignore next: don't test logs */ if (error.status !== 404) { (0, logs_1.log)("domain-service", "failed to get APDU for a domain", { domain, error, }); } return null; }); }; exports.signDomainResolution = signDomainResolution; /** * Get an APDU to sign an address resolve resolution on the nano * * @param {string} address * @param {SupportedRegistries} registryName * @param {string} challenge * @returns {Promise<AddressResolutionResponse[]>} */ const signAddressResolution = async (address, registryName, challenge) => { const registries = await (0, registries_1.getRegistries)(); const registry = registries.find(r => r.name === registryName); if (!registry) return null; const url = registry.signatures.reverse .replace("{address}", address) .replace("{challenge}", challenge); return axios_1.default .request({ method: "GET", url, }) .then(({ data }) => data.payload) .catch(error => { /* istanbul ignore next: don't test logs */ if (error.status !== 404) { (0, logs_1.log)("domain-service", "failed to get APDU for an address", { address, error, }); } return null; }); }; exports.signAddressResolution = signAddressResolution; //# sourceMappingURL=index.js.map