useDomains

This hook can be used to resolve several domain names:

import { getDomainKey, NameRegistryState } from "@bonfida/spl-name-service"; import { useEffect, useState, useRef } from "react"; type Result = (NameRegistryState | undefined)[] | undefined; /** * This hook can be used to resolve several domain names * @param domains List of domains to resolve e.g ["bonfida", "serum"] * @returns */ export const useDomains = (domains: string[]) => { const { connection } = useConnection(); const [result, setResult] = useState<Result>(undefined); const mounted = useRef(true); useEffect(() => { const fn = async () => { const keys = await Promise.all(domains.map((e) => getDomainKey(e))); const registries = await NameRegistryState.retrieveBatch( connection, keys.map((e) => e.pubkey) ); if (mounted.current) { setResult(registries); } return () => (mounted.current = false); }; fn().catch(console.error); }, [...domains]); return result; };