Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x | import { DEFAULT_ZONEFILE_LOOKUP_URL } from './common/constants'; import { resolveZoneFileToProfile } from './get-file/zone-file-to-profile'; import type { ProfileLookupOptions } from './common/types'; import { fetchPrivate } from 'micro-stacks/common'; /** * Look up a user profile by BNS name * * @returns {Promise} that resolves to a profile object */ export async function lookupProfile( options: ProfileLookupOptions ): Promise<Record<string, any> | null> { const { username, zoneFileLookupURL = DEFAULT_ZONEFILE_LOOKUP_URL } = options; Iif (!username) return Promise.reject(); const url = `${zoneFileLookupURL.replace(/\/$/, '')}/${options.username}`; const res = await fetchPrivate(url); const payload: { zonefile: string; address: string } = await res.json(); if (payload.hasOwnProperty('zonefile') && payload.hasOwnProperty('address')) { return (await resolveZoneFileToProfile( payload.zonefile, options.verify ? payload.address : undefined )) as Record<string, any> | null; } else E{ throw new Error( 'Invalid zonefile lookup response: did not contain `address`' + ' or `zonefile` field' ); } } |