Files
solana-agent-kit/src/actions/registerDomain.ts
2024-12-30 22:31:15 +01:00

64 lines
1.6 KiB
TypeScript

import { Action } from "../types/action";
import { SolanaAgentKit } from "../agent";
import { z } from "zod";
import { registerDomain } from "../tools";
const registerDomainAction: Action = {
name: "solana_register_domain",
similes: [
"register domain",
"buy domain",
"get domain name",
"register .sol",
"purchase domain",
"domain registration",
],
description: "Register a .sol domain name using Bonfida Name Service",
examples: [
[
{
input: {
name: "mydomain",
spaceKB: 1,
},
output: {
status: "success",
signature: "2ZE7Rz...",
message: "Successfully registered mydomain.sol",
},
explanation: "Register a new .sol domain with 1KB storage space",
},
],
],
schema: z.object({
name: z.string().min(1).describe("Domain name to register (without .sol)"),
spaceKB: z
.number()
.min(1)
.max(10)
.default(1)
.describe("Space allocation in KB (max 10KB)"),
}),
handler: async (agent: SolanaAgentKit, input: Record<string, any>) => {
try {
const name = input.name as string;
const spaceKB = (input.spaceKB as number) || 1;
const signature = await registerDomain(agent, name, spaceKB);
return {
status: "success",
signature,
message: `Successfully registered ${name}.sol`,
};
} catch (error: any) {
return {
status: "error",
message: `Domain registration failed: ${error.message}`,
};
}
},
};
export default registerDomainAction;