import { PublicKey } from '@solana/web3.js' import { z } from 'zod' function isValidSolanaAddress(address: string): boolean { try { new PublicKey(address) return true } catch { return false } } const solanaAddress = z.string().refine(isValidSolanaAddress, { message: 'Invalid Solana address', }) export const addWalletSchema = z.object({ address: solanaAddress, label: z.string().max(100).optional(), }) export const updateWalletSchema = z.object({ label: z.string().max(100).optional(), isActive: z.boolean().optional(), }) export const settingsSchema = z.object({ copyRatio: z.number().min(0.01).max(100).optional(), maxPositionSizeSol: z.number().min(0.001).max(10000).optional(), slippageBps: z.number().int().min(1).max(10000).optional(), autoCopyEnabled: z.boolean().optional(), }) export const paginationSchema = z.object({ page: z.coerce.number().int().min(1).default(1), limit: z.coerce.number().int().min(1).max(100).default(20), })