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 opening the wallet send flow with optional pre-filled send fields. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.wallet.useSend() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useSend< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useSend.Parameters = {}, ): useSend.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.wallet.send(config, variables) }, mutationKey: ['wallet', 'send'], }) } export declare namespace useSend { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.wallet.send.ReturnValue, Actions.wallet.send.ErrorType, Actions.wallet.send.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.wallet.send.ReturnValue, Actions.wallet.send.ErrorType, Actions.wallet.send.Parameters, context > } /** * Hook for opening the wallet swap flow with optional pre-filled swap fields. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.wallet.useSwap() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useSwap< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useSwap.Parameters = {}, ): useSwap.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.wallet.swap(config, variables) }, mutationKey: ['wallet', 'swap'], }) } export declare namespace useSwap { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.wallet.swap.ReturnValue, Actions.wallet.swap.ErrorType, Actions.wallet.swap.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.wallet.swap.ReturnValue, Actions.wallet.swap.ErrorType, Actions.wallet.swap.Parameters, context > } /** * Hook for opening the wallet deposit flow with optional pre-filled deposit fields. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.wallet.useDeposit() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useDeposit< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useDeposit.Parameters = {}, ): useDeposit.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.wallet.deposit(config, variables) }, mutationKey: ['wallet', 'deposit'], }) } export declare namespace useDeposit { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.wallet.deposit.ReturnValue, Actions.wallet.deposit.ErrorType, Actions.wallet.deposit.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.wallet.deposit.ReturnValue, Actions.wallet.deposit.ErrorType, Actions.wallet.deposit.Parameters, context > }