27 lines
912 B
JavaScript
27 lines
912 B
JavaScript
import { resolve } from "@bonfida/spl-name-service"
|
|
|
|
/**
|
|
* Resolves a .sol domain to a Solana PublicKey.
|
|
*
|
|
* This function uses the Bonfida SPL Name Service to resolve a given .sol domain
|
|
* to the corresponding Solana PublicKey. The domain can be provided with or without
|
|
* the .sol suffix.
|
|
*
|
|
* @param agent SolanaAgentKit instance
|
|
* @param domain The .sol domain to resolve. This can be provided with or without the .sol TLD suffix
|
|
* @returns A promise that resolves to the corresponding Solana PublicKey
|
|
* @throws Error if the domain resolution fails
|
|
*/
|
|
export async function resolveSolDomain(agent, domain) {
|
|
if (!domain || typeof domain !== "string") {
|
|
throw new Error("Invalid domain. Expected a non-empty string.")
|
|
}
|
|
|
|
try {
|
|
return await resolve(agent.connection, domain)
|
|
} catch (error) {
|
|
console.error(error)
|
|
throw new Error(`Failed to resolve domain: ${domain}`)
|
|
}
|
|
}
|