validation.js•1.63 kB
/**
* Zod validation schemas for MCP tools
*/
import { z } from 'zod';
// Starknet address schema
export const StarknetAddressSchema = z.string()
.regex(/^0x[0-9a-fA-F]{1,64}$/, 'Invalid Starknet address format');
// Network schema
export const NetworkSchema = z.enum(['mainnet', 'sepolia']).default('mainnet');
// Tool 1: Generate Transaction Secret
export const GenerarSecretoTransaccionSchema = z.object({
claiming_key: z.string().min(1, 'Claiming key is required'),
recipient_address: StarknetAddressSchema
});
// Tool 2: Fetch Transaction Assets
export const ObtenerAssetsTransaccionSchema = z.object({
transaction_key: z.string().min(1, 'Transaction key is required'),
recipient_address: StarknetAddressSchema,
provider_rpc_url: z.string().url().optional()
});
// Tool 3: Verify Transaction Existence
export const VerificarExistenciaTransaccionSchema = z.object({
claiming_key: z.string().min(1, 'Claiming key is required'),
recipient: StarknetAddressSchema,
token_address: StarknetAddressSchema,
amount: z.string().regex(/^\d+$/, 'Amount must be a numeric string'),
provider_rpc_url: z.string().url().optional()
});
// Tool 4: Calculate Transaction Hash
export const CalcularHashTransaccionSchema = z.object({
transaction_key: z.string().min(1, 'Transaction key is required'),
recipient_address: StarknetAddressSchema,
token_address: StarknetAddressSchema,
amount: z.string().regex(/^\d+$/, 'Amount must be a numeric string')
});
// Tool 5: Get Chamber Configuration
export const ObtenerConfiguracionChamberSchema = z.object({
network: NetworkSchema
});