UNPKG

@b3dotfun/anyspend-sdk

Version:

React Hooks and UI Components for AnySpend by B3

39 lines (33 loc) 771 B
import { z } from "zod"; import { zToken } from "./token"; export enum NftType { ERC721 = "erc721", ERC1155 = "erc1155" } export const zBaseNft = z.object({ type: z.nativeEnum(NftType), contractAddress: z.string(), name: z.string(), description: z.string(), imageUrl: z.string() }); export const zNft = z.discriminatedUnion("type", [ zBaseNft.extend({ type: z.literal(NftType.ERC721) }), zBaseNft.extend({ type: z.literal(NftType.ERC1155), tokenId: z.number(), imageUrl: z.string() }) ]); export type Nft = z.infer<typeof zNft>; export const zMintNftPayload = z.object({ contractAddress: z.string(), nftPrice: z.string() }); export const zMintNftMetadata = z.object({ srcToken: zToken, dstToken: zToken, nft: zNft });