import { Address, TypedDataToPrimitiveTypes } from "abitype"; import { TypedDataDefinition } from "viem"; import { zoraMints1155Address, sponsoredSparksSpenderAddress } from "./generated/wagmi"; import { PremintConfigEncoded, PremintConfigV1, PremintConfigV2, PremintConfigVersion, PremintConfigWithVersion, PermitComment, PermitSparkComment, PermitMintAndComment, PermitBuyOnSecondaryAndComment } from "./types"; declare const premintV1TypedDataType: { readonly CreatorAttribution: readonly [{ readonly name: "tokenConfig"; readonly type: "TokenCreationConfig"; }, { readonly name: "uid"; readonly type: "uint32"; }, { readonly name: "version"; readonly type: "uint32"; }, { readonly name: "deleted"; readonly type: "bool"; }]; readonly TokenCreationConfig: readonly [{ readonly name: "tokenURI"; readonly type: "string"; }, { readonly name: "maxSupply"; readonly type: "uint256"; }, { readonly name: "maxTokensPerAddress"; readonly type: "uint64"; }, { readonly name: "pricePerToken"; readonly type: "uint96"; }, { readonly name: "mintStart"; readonly type: "uint64"; }, { readonly name: "mintDuration"; readonly type: "uint64"; }, { readonly name: "royaltyMintSchedule"; readonly type: "uint32"; }, { readonly name: "royaltyBPS"; readonly type: "uint32"; }, { readonly name: "royaltyRecipient"; readonly type: "address"; }, { readonly name: "fixedPriceMinter"; readonly type: "address"; }]; }; export declare const encodePremintConfig: ({ premintConfig, premintConfigVersion, }: PremintConfigWithVersion) => PremintConfigEncoded; /** * Builds a typed data definition for a PremintConfigV1 to be signed * @returns */ export declare const premintV1TypedDataDefinition: ({ chainId, creator1155Contract, message, }: { chainId: number; creator1155Contract: Address; message: PremintConfigV1; }) => TypedDataDefinition; declare const premintV2TypedDataType: { readonly CreatorAttribution: readonly [{ readonly name: "tokenConfig"; readonly type: "TokenCreationConfig"; }, { readonly name: "uid"; readonly type: "uint32"; }, { readonly name: "version"; readonly type: "uint32"; }, { readonly name: "deleted"; readonly type: "bool"; }]; readonly TokenCreationConfig: readonly [{ readonly name: "tokenURI"; readonly type: "string"; }, { readonly name: "maxSupply"; readonly type: "uint256"; }, { readonly name: "maxTokensPerAddress"; readonly type: "uint64"; }, { readonly name: "pricePerToken"; readonly type: "uint96"; }, { readonly name: "mintStart"; readonly type: "uint64"; }, { readonly name: "mintDuration"; readonly type: "uint64"; }, { readonly name: "royaltyBPS"; readonly type: "uint32"; }, { readonly name: "payoutRecipient"; readonly type: "address"; }, { readonly name: "fixedPriceMinter"; readonly type: "address"; }, { readonly name: "createReferral"; readonly type: "address"; }]; }; /** * Builds a typed data definition for a PremintConfigV2 to be signed */ export declare const premintV2TypedDataDefinition: ({ chainId, creator1155Contract, message, }: { chainId: number; creator1155Contract: Address; message: PremintConfigV2; }) => TypedDataDefinition; export type PremintTypeDataDefinitionParams = { verifyingContract: Address; chainId: number; } & PremintConfigWithVersion; /** * Creates a typed data definition for a premint config. Works for all versions of the premint config by specifying the premintConfigVersion. * * @param params.verifyingContract the address of the 1155 contract * @param params.chainId the chain id the premint is signed for * @param params.premintConfigVersion the version of the premint config * @param params.premintConfig the premint config * @returns */ export declare const premintTypedDataDefinition: ({ verifyingContract, chainId, premintConfigVersion: version, premintConfig, }: PremintTypeDataDefinitionParams) => TypedDataDefinition; declare const permitSafeTransferTypedDataType: { readonly PermitSafeTransfer: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "to"; readonly type: "address"; }, { readonly name: "tokenId"; readonly type: "uint256"; }, { readonly name: "quantity"; readonly type: "uint256"; }, { readonly name: "safeTransferData"; readonly type: "bytes"; }, { readonly name: "nonce"; readonly type: "uint256"; }, { readonly name: "deadline"; readonly type: "uint256"; }]; }; /** * Builds a typed data definition for a PermitSafeTransfer on the Mints1155 contract to be signed */ export declare const mintsSafeTransferTypedDataDefinition: ({ chainId, message, }: { chainId: keyof typeof zoraMints1155Address; message: TypedDataToPrimitiveTypes["PermitSafeTransfer"]; }) => TypedDataDefinition; declare const permitSafeBatchTransferTypedDataType: { readonly Permit: readonly [{ readonly name: "owner"; readonly type: "address"; }, { readonly name: "to"; readonly type: "address"; }, { readonly name: "tokenIds"; readonly type: "uint256[]"; }, { readonly name: "quantities"; readonly type: "uint256[]"; }, { readonly name: "safeTransferData"; readonly type: "bytes"; }, { readonly name: "nonce"; readonly type: "uint256"; }, { readonly name: "deadline"; readonly type: "uint256"; }]; }; /** * Builds a typed data definition for a PermitSafeTransferBatch on the Mints1155 contract to be signed * @returns */ export declare const mintsSafeTransferBatchTypedDataDefinition: ({ chainId, message, }: { chainId: keyof typeof zoraMints1155Address; message: TypedDataToPrimitiveTypes["Permit"]; }) => TypedDataDefinition; export declare const sponsoredSparksBatchTransferTypedDataType: { readonly SponsoredMintBatch: readonly [{ readonly name: "verifier"; readonly type: "address"; }, { readonly name: "from"; readonly type: "address"; }, { readonly name: "destination"; readonly type: "address"; }, { readonly name: "data"; readonly type: "bytes"; }, { readonly name: "expectedRedeemAmount"; readonly type: "uint256"; }, { readonly name: "totalAmount"; readonly type: "uint256"; }, { readonly name: "ids"; readonly type: "uint256[]"; }, { readonly name: "quantities"; readonly type: "uint256[]"; }, { readonly name: "nonce"; readonly type: "uint256"; }, { readonly name: "deadline"; readonly type: "uint256"; }]; }; /** * Builds a typed data definition for a PermitSafeTransferBatch on the Mints1155 contract to be signed * @returns */ export declare const sponsoredSparksBatchTypedDataDefinition: ({ chainId, message, }: { chainId: keyof typeof sponsoredSparksSpenderAddress; message: TypedDataToPrimitiveTypes["SponsoredMintBatch"]; }) => TypedDataDefinition; /** * Generates the typed data definition for a permit comment, for cross-chain commenting. * * The permit allows a user to sign a comment message on one chain, which can then be * submitted by anyone on the destination chain to execute the comment action. * * The permit includes details such as the comment text, the commenter's address, * the comment being replied to, and chain IDs for the source and destination chains. * * The typed data is generated in a way that makes the signature happen on the source chain * but be valid to be executed on the destination chain. * * @param message - The {@link PermitComment} containing the details of the comment permit. * @param signingAccount - (optional) The account that is signing the message, if different thatn the commentor. * Only needed if the commentor is a smart wallet; in this case the signing account should be an account * that is one of the smart wallet owners. * @returns A {@link TypedDataDefinition} object compatible with EIP-712 for structured data hashing and signing, * including types, message, primary type, domain, and the signer's account address, which is * the commenter's address. */ export declare const permitCommentTypedDataDefinition: (message: PermitComment, signingAccount?: Address) => TypedDataDefinition<{ readonly PermitComment: readonly [{ readonly name: "contractAddress"; readonly type: "address"; }, { readonly name: "tokenId"; readonly type: "uint256"; }, { readonly name: "commenter"; readonly type: "address"; }, { readonly name: "replyTo"; readonly type: "CommentIdentifier"; }, { readonly name: "text"; readonly type: "string"; }, { readonly name: "deadline"; readonly type: "uint256"; }, { readonly name: "nonce"; readonly type: "bytes32"; }, { readonly name: "commenterSmartWallet"; readonly type: "address"; }, { readonly name: "referrer"; readonly type: "address"; }, { readonly name: "sourceChainId"; readonly type: "uint32"; }, { readonly name: "destinationChainId"; readonly type: "uint32"; }]; readonly CommentIdentifier: readonly [{ readonly name: "contractAddress"; readonly type: "address"; }, { readonly name: "tokenId"; readonly type: "uint256"; }, { readonly name: "commenter"; readonly type: "address"; }, { readonly name: "nonce"; readonly type: "bytes32"; }]; }, "PermitComment"> & { account: Address; }; /** * Generates the typed data definition for a permit spark comment, for cross-chain sparking (liking with value) of comments. * * The permit allows a user to sign a spark comment message on one chain, which can then be * submitted by anyone on the destination chain to execute the spark action. * * The permit includes details such as the comment to be sparked, the sparker's address, * the quantity of sparks, and the source and destination chain ids. * * The typed data is generated in a way that makes the signature happen on the source chain * but be valid to be executed on the destination chain. * * @param message - The {@link PermitSparkComment} containing the details of the spark comment permit. * @param signingAccount - (optional) The account that is signing the message, if different than the commenter. * Only needed if the commenter is a smart wallet; in this case the signing account should be an account * that is one of the smart wallet owners. * @returns A {@link TypedDataDefinition} object compatible with EIP-712 for structured data hashing and signing, * including types, message, primary type, domain, and the signer's account address, which is * the sparker's address. */ export declare const permitSparkCommentTypedDataDefinition: (message: PermitSparkComment, signingAccount?: Address) => TypedDataDefinition<{ readonly PermitSparkComment: readonly [{ readonly name: "comment"; readonly type: "CommentIdentifier"; }, { readonly name: "sparker"; readonly type: "address"; }, { readonly name: "sparksQuantity"; readonly type: "uint256"; }, { readonly name: "deadline"; readonly type: "uint256"; }, { readonly name: "nonce"; readonly type: "bytes32"; }, { readonly name: "referrer"; readonly type: "address"; }, { readonly name: "sourceChainId"; readonly type: "uint32"; }, { readonly name: "destinationChainId"; readonly type: "uint32"; }]; readonly CommentIdentifier: readonly [{ readonly name: "contractAddress"; readonly type: "address"; }, { readonly name: "tokenId"; readonly type: "uint256"; }, { readonly name: "commenter"; readonly type: "address"; }, { readonly name: "nonce"; readonly type: "bytes32"; }]; }, "PermitSparkComment"> & { account: Address; }; export declare const sparkValue: () => bigint; /** * Generates the typed data definition for a permit timed sale mint and comment operation. * * This function creates a structured data object that can be used for EIP-712 signing, * allowing users to sign a message on one chain that permits a timed sale mint and comment * action to be executed on another chain. * * @param message - The {@link PermitMintAndComment} containing the details of the permit. * @param signingAccount - (optional) The account that is signing the message, if different from the commenter. * This is typically used when the commenter is a smart wallet, and the signing account is one of its owners. * @returns A {@link TypedDataDefinition} object compatible with EIP-712 for structured data hashing and signing, * including types, message, primary type, domain, and the signer's account address. */ export declare const permitMintAndCommentTypedDataDefinition: (message: PermitMintAndComment, signingAccount?: Address) => TypedDataDefinition<{ readonly PermitTimedSaleMintAndComment: readonly [{ readonly name: "commenter"; readonly type: "address"; }, { readonly name: "quantity"; readonly type: "uint256"; }, { readonly name: "collection"; readonly type: "address"; }, { readonly name: "tokenId"; readonly type: "uint256"; }, { readonly name: "mintReferral"; readonly type: "address"; }, { readonly name: "comment"; readonly type: "string"; }, { readonly name: "deadline"; readonly type: "uint256"; }, { readonly name: "nonce"; readonly type: "bytes32"; }, { readonly name: "sourceChainId"; readonly type: "uint32"; }, { readonly name: "destinationChainId"; readonly type: "uint32"; }]; }, "PermitTimedSaleMintAndComment"> & { account: Address; }; /** * Generates the typed data definition for a permit buy on secondary and comment operation. * * This function creates a structured data object that can be used for EIP-712 signing, * allowing users to sign a message on one chain that permits a buy on secondary market and comment * action to be executed on another chain. * * @param message - The {@link PermitBuyOnSecondaryAndComment} containing the details of the permit. * @param signingAccount - (optional) The account that is signing the message, if different from the commenter. * This is typically used when the commenter is a smart wallet, and the signing account is one of its owners. * @returns A {@link TypedDataDefinition} object compatible with EIP-712 for structured data hashing and signing, * including types, message, primary type, domain, and the signer's account address. */ export declare const permitBuyOnSecondaryAndCommentTypedDataDefinition: (message: PermitBuyOnSecondaryAndComment, signingAccount?: Address) => TypedDataDefinition<{ readonly PermitBuyOnSecondaryAndComment: readonly [{ readonly name: "commenter"; readonly type: "address"; }, { readonly name: "quantity"; readonly type: "uint256"; }, { readonly name: "collection"; readonly type: "address"; }, { readonly name: "tokenId"; readonly type: "uint256"; }, { readonly name: "maxEthToSpend"; readonly type: "uint256"; }, { readonly name: "sqrtPriceLimitX96"; readonly type: "uint160"; }, { readonly name: "comment"; readonly type: "string"; }, { readonly name: "deadline"; readonly type: "uint256"; }, { readonly name: "nonce"; readonly type: "bytes32"; }, { readonly name: "sourceChainId"; readonly type: "uint32"; }, { readonly name: "destinationChainId"; readonly type: "uint32"; }]; }, "PermitBuyOnSecondaryAndComment"> & { account: Address; }; export {}; //# sourceMappingURL=typedData.d.ts.map