'use client' import { useMutation } from '@tanstack/react-query' import type { Config, DeployContractErrorType, ResolvedRegister, } from '@wagmi/core' import type { Compute, ConfigParameter } from '@wagmi/core/internal' import { type DeployContractData, type DeployContractMutate, type DeployContractMutateAsync, type DeployContractOptions, type DeployContractVariables, deployContractMutationOptions, } from '@wagmi/core/query' import type { Abi } from 'viem' import type { UseMutationReturnType } from '../utils/query.js' import { useConfig } from './useConfig.js' export type UseDeployContractParameters< config extends Config = Config, context = unknown, > = Compute & DeployContractOptions> export type UseDeployContractReturnType< config extends Config = Config, context = unknown, > = UseMutationReturnType< DeployContractData, DeployContractErrorType, DeployContractVariables, context, DeployContractMutate, DeployContractMutateAsync > & { /** @deprecated use `mutate` instead */ deployContract: DeployContractMutate /** @deprecated use `mutateAsync` instead */ deployContractAsync: DeployContractMutateAsync } /** https://wagmi.sh/react/api/hooks/useDeployContract */ export function useDeployContract< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: UseDeployContractParameters = {}, ): UseDeployContractReturnType { const config = useConfig(parameters) const options = deployContractMutationOptions(config, parameters) const mutation = useMutation(options) type Return = UseDeployContractReturnType return { ...(mutation as Return), deployContract: mutation.mutate as Return['mutate'], deployContractAsync: mutation.mutateAsync as Return['mutateAsync'], } }