@b3dotfun/anyspend-sdk
Version:
React Hooks and UI Components for AnySpend by B3
39 lines (33 loc) • 771 B
text/typescript
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
});