mirror of
https://github.com/d0zingcat/solana-agent-kit.git
synced 2026-05-14 07:26:46 +00:00
64 lines
1.6 KiB
TypeScript
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;
|