diff --git a/components/forms/CreateTxForm/Fields/FieldAddress.tsx b/components/forms/CreateTxForm/Fields/FieldAddress.tsx new file mode 100644 index 0000000..a6fe54f --- /dev/null +++ b/components/forms/CreateTxForm/Fields/FieldAddress.tsx @@ -0,0 +1,39 @@ +import { FormControl, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form"; +import { Input } from "@/components/ui/input"; +import { useChains } from "@/context/ChainsContext"; +import { exampleAddress } from "@/lib/displayHelpers"; +import { prettyFieldName } from "@/lib/form"; +import * as z from "zod"; +import type { FieldProps, FieldSchemaInput } from "./types"; + +export const getFieldAddressSchema = ({ chain }: FieldSchemaInput) => { + if (!chain) { + throw new Error("Could not get field address schema because of missing chain parameter"); + } + + return z + .string({ invalid_type_error: "Must be a string", required_error: "Required" }) + .trim() + .min(1, "Required") + .startsWith(chain.addressPrefix, `Invalid prefix for ${chain.chainDisplayName}`); +}; + +export default function FieldAddress({ form, fieldFormName }: FieldProps) { + const { chain } = useChains(); + + return ( + ( + + {prettyFieldName(fieldFormName)} + + + + + + )} + /> + ); +}