import { Action } from "../types/action"; import { SolanaAgentKit } from "../agent"; import { z } from "zod"; import { resolveSolDomain } from "../tools"; const resolveSolDomainAction: Action = { name: "RESOLVE_SOL_DOMAIN", similes: [ "resolve sol domain", "lookup sol domain", "get sol domain owner", "check sol domain", "find sol domain owner", "resolve .sol", ], description: "Resolve a .sol domain to its corresponding Solana wallet address using Bonfida Name Service", examples: [ [ { input: { domain: "vitalik.sol", }, output: { status: "success", owner: "7nxQB...", message: "Successfully resolved vitalik.sol", }, explanation: "Resolve a .sol domain to get the owner's wallet address", }, ], ], schema: z.object({ domain: z .string() .min(1) .describe("The .sol domain to resolve (with or without .sol suffix)"), }), handler: async (agent: SolanaAgentKit, input: Record) => { try { const domain = input.domain as string; const res = await resolveSolDomain(agent, domain); return { status: "success", owner: res.toString(), message: `Successfully resolved ${res}`, }; } catch (error: any) { return { status: "error", message: `Failed to resolve domain: ${error.message}`, }; } }, }; export default resolveSolDomainAction;