mirror of
https://github.com/d0zingcat/solana-agent-kit.git
synced 2026-05-16 07:36:45 +00:00
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import { getPrimaryDomain as _getPrimaryDomain } from "@bonfida/spl-name-service";
|
|
import { PublicKey } from "@solana/web3.js";
|
|
import { SolanaAgent } from "../index";
|
|
|
|
/**
|
|
* Retrieves the primary .sol domain associated with a given Solana public key.
|
|
*
|
|
* This function queries the Bonfida SPL Name Service to get the primary .sol domain for
|
|
* a specified Solana public key. If the primary domain is stale or an error occurs during
|
|
* the resolution, it throws an error.
|
|
*
|
|
* @param agent SolanaAgent instance
|
|
* @param account The Solana public key for which to retrieve the primary domain
|
|
* @returns A promise that resolves to the primary .sol domain as a string
|
|
* @throws Error if the domain is stale or if the domain resolution fails
|
|
*/
|
|
export async function getPrimaryDomain(
|
|
agent: SolanaAgent,
|
|
account: PublicKey,
|
|
): Promise<string> {
|
|
try {
|
|
const { reverse, stale } = await _getPrimaryDomain(
|
|
agent.connection,
|
|
account,
|
|
);
|
|
if (stale) {
|
|
throw new Error(
|
|
`Primary domain is stale for account: ${account.toBase58()}`,
|
|
);
|
|
}
|
|
return reverse;
|
|
} catch (error) {
|
|
throw new Error(
|
|
`Failed to get primary domain for account: ${account.toBase58()}`,
|
|
);
|
|
}
|
|
}
|