import { useMutation } from '@tanstack/vue-query' import type { Config, ResolvedRegister, SendTransactionErrorType, } from '@wagmi/core' import type { Compute, ConfigParameter } from '@wagmi/core/internal' import { type SendTransactionData, type SendTransactionMutate, type SendTransactionMutateAsync, type SendTransactionOptions, type SendTransactionVariables, sendTransactionMutationOptions, } from '@wagmi/core/query' import type { UseMutationReturnType } from '../utils/query.js' import { useConfig } from './useConfig.js' export type UseSendTransactionParameters< config extends Config = Config, context = unknown, > = Compute & SendTransactionOptions> export type UseSendTransactionReturnType< config extends Config = Config, context = unknown, > = Compute< UseMutationReturnType< SendTransactionData, SendTransactionErrorType, SendTransactionVariables, context, SendTransactionMutate, SendTransactionMutateAsync > & { /** @deprecated use `mutate` instead */ sendTransaction: SendTransactionMutate /** @deprecated use `mutateAsync` instead */ sendTransactionAsync: SendTransactionMutateAsync } > /** https://wagmi.sh/vue/api/composables/useSendTransaction */ export function useSendTransaction< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: UseSendTransactionParameters = {}, ): UseSendTransactionReturnType { const config = useConfig(parameters) const options = sendTransactionMutationOptions(config, parameters) const mutation = useMutation(options) type Return = UseSendTransactionReturnType return { ...(mutation as Return), sendTransaction: mutation.mutate as Return['mutate'], sendTransactionAsync: mutation.mutateAsync as Return['mutateAsync'], } }