UNPKG

@yoroi/resolver

Version:
63 lines (62 loc) 2.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isCnsDomain = exports.handleCnsApiError = exports.cnsSupportedTld = exports.cnsCryptoAddress = exports.cnsApiConfig = void 0; var _types = require("@yoroi/types"); var _crossCslCore = require("@emurgo/cross-csl-core"); var _zodErrors = require("../zod-errors"); var _cardanoApiMaker = require("./cardano-api-maker"); var _apiHelpers = require("./api-helpers"); const cnsCryptoAddress = function (cslFactory) { let isMainnet = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; return async (receiver, fetcherConfig) => { if (!receiver.includes('.')) throw new _types.Resolver.Errors.InvalidDomain(); if (!isCnsDomain(receiver)) throw new _types.Resolver.Errors.UnsupportedTld(); const cslScopeId = String(Math.random()); const csl = cslFactory(cslScopeId); try { const cnsCardanoApi = (0, _cardanoApiMaker.makeCnsCardanoApi)(isMainnet ? cnsApiConfig.mainnet.baseUrl : cnsApiConfig.preprod.baseUrl); const address = await (0, _apiHelpers.resolveAddress)(receiver, isMainnet ? cnsApiConfig.mainnet : cnsApiConfig.preprod, cnsCardanoApi, csl, fetcherConfig); return address; } catch (error) { return handleCnsApiError(error); } finally { await (0, _crossCslCore.freeContext)(cslScopeId); } }; }; exports.cnsCryptoAddress = cnsCryptoAddress; const cnsSupportedTld = '.ada'; exports.cnsSupportedTld = cnsSupportedTld; const isCnsDomain = value => value.endsWith(cnsSupportedTld); exports.isCnsDomain = isCnsDomain; const cnsApiConfig = { mainnet: { baseUrl: 'https://api.yoroiwallet.com', cnsPolicyId: 'e0c4c2d7c4a0ed2cf786753fd845dee82c45512cee03e92adfd3fb8d', recordPolicyId: 'a1db6026bc00963c1a70af10cdd98f2304be5da44ae4af8f770dcfd3', recordAddress: 'addr1z8dyldfnnpg4w85d32lv64f5ldra02juhnzxdvlyyrpfs0leh7ahm4pdpqxx0mc0wvmu6n025jml40g7pfd0j0vf6aqsl2tlcx', networkId: 1, domainLevels: 2, virtualSubdomainLevels: 3 }, preprod: { baseUrl: 'https://preprod-backend.yoroiwallet.com', cnsPolicyId: 'baefdc6c5b191be372a794cd8d40d839ec0dbdd3c28957267dc81700', recordPolicyId: 'a048db3b45c2aa5f1ad472338e6e6dea41a45f4350c8753a231403aa', recordAddress: 'addr_test1wzzfgjazt5ts34cstrhzaac4xav8x7z2m3vg76s8qmaztzglsw8k5', networkId: 0, domainLevels: 2, virtualSubdomainLevels: 3 } }; exports.cnsApiConfig = cnsApiConfig; const handleCnsApiError = error => { const zodErrorMessage = (0, _zodErrors.handleZodErrors)(error); if (zodErrorMessage) throw new _types.Resolver.Errors.InvalidResponse(zodErrorMessage); if (error instanceof _types.Api.Errors.NotFound) throw new _types.Resolver.Errors.NotFound(); throw error; }; exports.handleCnsApiError = handleCnsApiError; //# sourceMappingURL=api.js.map