import type { UseMutationResult } from '@tanstack/react-query' import type { Config, ResolvedRegister } from '@wagmi/core' import type { ConfigParameter } from '@wagmi/core/internal' import { Actions } from '@wagmi/core/tempo' import { useConfig } from '../../hooks/useConfig.js' import { type UseMutationParameters, useMutation } from '../../utils/query.js' /** * Hook for funding an account with an initial amount of set token(s) * on Tempo's testnet. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.faucet.useFund() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useFund< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useFund.Parameters = {}, ): useFund.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.faucet.fund(config, variables) }, mutationKey: ['fund'], }) } export declare namespace useFund { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.faucet.fund.ReturnValue, Actions.faucet.fund.ErrorType, Actions.faucet.fund.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.faucet.fund.ReturnValue, Actions.faucet.fund.ErrorType, Actions.faucet.fund.Parameters, context > } /** * Hook for funding an account with an initial amount of set token(s) * on Tempo's testnet. Returns the transaction receipts. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.faucet.useFundSync() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useFundSync< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useFundSync.Parameters = {}, ): useFundSync.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.faucet.fundSync(config, variables) }, mutationKey: ['fundSync'], }) } export declare namespace useFundSync { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.faucet.fundSync.ReturnValue, Actions.faucet.fundSync.ErrorType, Actions.faucet.fundSync.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.faucet.fundSync.ReturnValue, Actions.faucet.fundSync.ErrorType, Actions.faucet.fundSync.Parameters, context > }