import { Tool } from "langchain/tools"; import { SolanaAgentKit } from "../../agent"; export class SolanaResolveDomainTool extends Tool { name = "solana_resolve_domain"; description = `Resolve ONLY .sol domain names to a Solana PublicKey. This tool is exclusively for .sol domains. DO NOT use this for other domain types like .blink, .bonk, etc. Inputs: domain: string, eg "pumpfun.sol" (required) `; constructor(private solanaKit: SolanaAgentKit) { super(); } protected async _call(input: string): Promise { try { const domain = input.trim(); const publicKey = await this.solanaKit.resolveSolDomain(domain); return JSON.stringify({ status: "success", message: "Domain resolved successfully", publicKey: publicKey.toBase58(), }); } catch (error: any) { return JSON.stringify({ status: "error", message: error.message, code: error.code || "UNKNOWN_ERROR", }); } } }