@agentek/tools
Version:
Blockchain tools for AI agents
33 lines • 850 B
JavaScript
import { z } from "zod";
import { isAddress } from "viem/utils";
export const addressSchema = z.string().transform((val, ctx) => {
if (!isAddress(val)) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
message: "Invalid Ethereum address",
});
// stop here
return z.NEVER;
}
return val; // output is Address
});
export const clean = (obj) => {
if (typeof obj === "bigint") {
return obj.toString();
}
if (Array.isArray(obj)) {
return obj.map(clean);
}
if (typeof obj === "string") {
return obj.trim();
}
if (obj && typeof obj === "object") {
const newObj = {};
for (const key in obj) {
newObj[key] = clean(obj[key]);
}
return newObj;
}
return obj;
};
//# sourceMappingURL=utils.js.map