@agentek/tools
Version:
Blockchain tools for AI agents
45 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.lookupENSTool = exports.resolveENSTool = void 0;
const zod_1 = require("zod");
const client_js_1 = require("../client.js");
const ens_1 = require("viem/ens");
exports.resolveENSTool = (0, client_js_1.createTool)({
name: "resolveENS",
description: "Resolves an ENS name to an Ethereum address",
parameters: zod_1.z.object({
name: zod_1.z.string().describe("The ENS name to resolve"),
}),
execute: async (client, args) => {
const publicClient = client.getPublicClient(1);
const ensName = args.name.includes(".") ? args.name : `${args.name}.eth`;
const address = await publicClient.getEnsAddress({
name: (0, ens_1.normalize)(ensName),
});
if (address === null) {
throw new Error(`No address found for ENS name: ${args.name}`);
}
return address;
},
});
exports.lookupENSTool = (0, client_js_1.createTool)({
name: "lookupENS",
description: "Looks up the ENS name for an Ethereum address",
parameters: zod_1.z.object({
address: zod_1.z
.string()
.regex(/^0x[a-fA-F0-9]{40}$/)
.describe("The Ethereum address to lookup"),
}),
execute: async (client, args) => {
const publicClient = client.getPublicClient(1);
const name = await publicClient.getEnsName({
address: args.address,
});
if (name === null) {
throw new Error(`No ENS name found for ${args.address}`);
}
return name;
},
});
//# sourceMappingURL=tools.js.map