import { coinFactoryABI as zoraFactoryImplABI } from "@zoralabs/protocol-deployments"; import { Address, TransactionReceipt, WalletClient, ContractEventArgsFromTopics, Hex, Account } from "viem"; import { GenericPublicClient } from "../utils/genericPublicClient"; export type CoinDeploymentLogArgs = ContractEventArgsFromTopics; declare const STARTING_MARKET_CAPS: { readonly LOW: "LOW"; readonly HIGH: "HIGH"; }; export type StartingMarketCap = keyof typeof STARTING_MARKET_CAPS; export interface RawUriMetadata { type: "RAW_URI"; uri: string; } declare const CONTENT_COIN_CURRENCIES: { readonly CREATOR_COIN: "CREATOR_COIN"; readonly ZORA: "ZORA"; readonly ETH: "ETH"; readonly CREATOR_COIN_OR_ZORA: "CREATOR_COIN_OR_ZORA"; }; export type ContentCoinCurrency = keyof typeof CONTENT_COIN_CURRENCIES; export declare const CreateConstants: { readonly StartingMarketCaps: { readonly LOW: "LOW"; readonly HIGH: "HIGH"; }; readonly ContentCoinCurrencies: { readonly CREATOR_COIN: "CREATOR_COIN"; readonly ZORA: "ZORA"; readonly ETH: "ETH"; readonly CREATOR_COIN_OR_ZORA: "CREATOR_COIN_OR_ZORA"; }; }; export type CreateCoinArgs = { creator: string; name: string; symbol: string; metadata: RawUriMetadata; currency: ContentCoinCurrency; chainId?: number; startingMarketCap?: StartingMarketCap; platformReferrer?: string; additionalOwners?: Address[]; payoutRecipientOverride?: Address; skipMetadataValidation?: boolean; }; type TransactionParameters = { to: Address; data: Hex; value: bigint; }; type CreateCoinCallResponse = { calls: TransactionParameters[]; predictedCoinAddress: Address; }; export declare function createCoinCall({ creator, name, symbol, metadata, currency, chainId, payoutRecipientOverride, additionalOwners, platformReferrer, skipMetadataValidation, }: CreateCoinArgs): Promise; /** * Gets the deployed coin address from transaction receipt logs * @param receipt Transaction receipt containing the CoinCreated event * @returns The deployment information if found */ export declare function getCoinCreateFromLogs(receipt: TransactionReceipt): CoinDeploymentLogArgs | undefined; export declare function createCoin({ call, walletClient, publicClient, options, }: { call: CreateCoinArgs; walletClient: WalletClient; publicClient: GenericPublicClient; options?: { gasMultiplier?: number; account?: Account | Address; skipValidateTransaction?: boolean; }; }): Promise<{ hash: `0x${string}`; receipt: any; address: `0x${string}` | undefined; deployment: { caller: `0x${string}`; payoutRecipient: `0x${string}`; platformReferrer: `0x${string}`; currency: `0x${string}`; uri: string; name: string; symbol: string; coin: `0x${string}`; poolKey: { currency0: `0x${string}`; currency1: `0x${string}`; fee: number; tickSpacing: number; hooks: `0x${string}`; }; poolKeyHash: `0x${string}`; version: string; } | undefined; chain: import("viem").Chain; }>; export {}; //# sourceMappingURL=createCoin.d.ts.map