import type { UseMutationResult } from '@tanstack/react-query' import type { Config, ResolvedRegister } from '@wagmi/core' import type { ConfigParameter, ExactPartial } from '@wagmi/core/internal' import { Actions } from '@wagmi/core/tempo' import { useChainId } from '../../hooks/useChainId.js' import { useConfig } from '../../hooks/useConfig.js' import { type UseMutationParameters, type UseQueryReturnType, useMutation, useQuery, } from '../../utils/query.js' import type { QueryParameter } from '../utils.js' /** * Hook for getting information about the current zone authorization token. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * import { zone } from 'viem/tempo/zones' * * const zoneChain = zone(7) * * function App() { * const { data, isLoading } = Hooks.zone.useAuthorizationTokenInfo({ * chainId: zoneChain.id, * }) * * if (isLoading) return
Loading...
* return
Expires At: {data?.expiresAt.toString()}
* } * ``` * * @param parameters - Parameters. * @returns Query result with the current authorization token info. */ export function useAuthorizationTokenInfo< config extends Config = ResolvedRegister['config'], selectData = Actions.zone.getAuthorizationTokenInfo.ReturnValue, >( parameters: useAuthorizationTokenInfo.Parameters = {}, ): useAuthorizationTokenInfo.ReturnValue { const config = useConfig(parameters) const chainId = useChainId({ config }) const options = Actions.zone.getAuthorizationTokenInfo.queryOptions(config, { ...parameters, chainId: parameters.chainId ?? chainId, } as never) return useQuery(options) as never } export declare namespace useAuthorizationTokenInfo { export type Parameters< config extends Config = ResolvedRegister['config'], selectData = Actions.zone.getAuthorizationTokenInfo.ReturnValue, > = ConfigParameter & QueryParameter< Actions.zone.getAuthorizationTokenInfo.ReturnValue, Actions.zone.getAuthorizationTokenInfo.ErrorType, selectData, Actions.zone.getAuthorizationTokenInfo.QueryKey > & ExactPartial> export type ReturnValue< selectData = Actions.zone.getAuthorizationTokenInfo.ReturnValue, > = UseQueryReturnType } /** * Hook for getting deposit processing status for a Tempo block number. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * import { zone } from 'viem/tempo/zones' * * const zoneChain = zone(7) * * function App() { * const { data, isLoading } = Hooks.zone.useDepositStatus({ * chainId: zoneChain.id, * tempoBlockNumber: 42n, * }) * * if (isLoading) return
Loading...
* return
Processed: {String(data?.processed)}
* } * ``` * * @param parameters - Parameters. * @returns Query result with the current deposit status. */ export function useDepositStatus< config extends Config = ResolvedRegister['config'], selectData = Actions.zone.getDepositStatus.ReturnValue, >( parameters: useDepositStatus.Parameters = {}, ): useDepositStatus.ReturnValue { const config = useConfig(parameters) const chainId = useChainId({ config }) const options = Actions.zone.getDepositStatus.queryOptions(config, { ...parameters, chainId: parameters.chainId ?? chainId, } as never) return useQuery(options) as never } export declare namespace useDepositStatus { export type Parameters< config extends Config = ResolvedRegister['config'], selectData = Actions.zone.getDepositStatus.ReturnValue, > = ConfigParameter & QueryParameter< Actions.zone.getDepositStatus.ReturnValue, Actions.zone.getDepositStatus.ErrorType, selectData, Actions.zone.getDepositStatus.QueryKey > & ExactPartial> export type ReturnValue< selectData = Actions.zone.getDepositStatus.ReturnValue, > = UseQueryReturnType } /** * Hook for getting the withdrawal fee for a given gas limit. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * import { zone } from 'viem/tempo/zones' * * const zoneChain = zone(7) * * function App() { * const { data, isLoading } = Hooks.zone.useWithdrawalFee({ * chainId: zoneChain.id, * gas: 21_000n, * }) * * if (isLoading) return
Loading...
* return
Fee: {data?.toString()}
* } * ``` * * @param parameters - Parameters. * @returns Query result with the withdrawal fee. */ export function useWithdrawalFee< config extends Config = ResolvedRegister['config'], selectData = Actions.zone.getWithdrawalFee.ReturnValue, >( parameters: useWithdrawalFee.Parameters = {}, ): useWithdrawalFee.ReturnValue { const config = useConfig(parameters) const chainId = useChainId({ config }) const options = Actions.zone.getWithdrawalFee.queryOptions(config, { ...parameters, chainId: parameters.chainId ?? chainId, } as never) return useQuery(options) as never } export declare namespace useWithdrawalFee { export type Parameters< config extends Config = ResolvedRegister['config'], selectData = Actions.zone.getWithdrawalFee.ReturnValue, > = ConfigParameter & QueryParameter< Actions.zone.getWithdrawalFee.ReturnValue, Actions.zone.getWithdrawalFee.ErrorType, selectData, Actions.zone.getWithdrawalFee.QueryKey > & ExactPartial> export type ReturnValue< selectData = Actions.zone.getWithdrawalFee.ReturnValue, > = UseQueryReturnType } /** * Hook for getting the current zone metadata. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * import { zone } from 'viem/tempo/zones' * * const zoneChain = zone(7) * * function App() { * const { data, isLoading } = Hooks.zone.useZoneInfo({ * chainId: zoneChain.id, * }) * * if (isLoading) return
Loading...
* return
Zone ID: {data?.zoneId}
* } * ``` * * @param parameters - Parameters. * @returns Query result with the current zone metadata. */ export function useZoneInfo< config extends Config = ResolvedRegister['config'], selectData = Actions.zone.getZoneInfo.ReturnValue, >( parameters: useZoneInfo.Parameters = {}, ): useZoneInfo.ReturnValue { const config = useConfig(parameters) const chainId = useChainId({ config }) const options = Actions.zone.getZoneInfo.queryOptions(config, { ...parameters, chainId: parameters.chainId ?? chainId, } as never) return useQuery(options) as never } export declare namespace useZoneInfo { export type Parameters< config extends Config = ResolvedRegister['config'], selectData = Actions.zone.getZoneInfo.ReturnValue, > = ConfigParameter & QueryParameter< Actions.zone.getZoneInfo.ReturnValue, Actions.zone.getZoneInfo.ErrorType, selectData, Actions.zone.getZoneInfo.QueryKey > & ExactPartial> export type ReturnValue = UseQueryReturnType } /** * Hook for signing and storing a zone authorization token. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * import { zone } from 'viem/tempo/zones' * * const zoneChain = zone(7) * * function App() { * const { mutate, isPending } = Hooks.zone.useSignAuthorizationToken() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useSignAuthorizationToken< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useSignAuthorizationToken.Parameters = {}, ): useSignAuthorizationToken.ReturnType { const { mutation = {} } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.zone.signAuthorizationToken(config, variables) }, mutationKey: ['signAuthorizationToken'], }) } export declare namespace useSignAuthorizationToken { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.zone.signAuthorizationToken.ReturnValue, Actions.zone.signAuthorizationToken.ErrorType, Actions.zone.signAuthorizationToken.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.zone.signAuthorizationToken.ReturnValue, Actions.zone.signAuthorizationToken.ErrorType, Actions.zone.signAuthorizationToken.Parameters, context > } /** * Hook for depositing tokens into a zone on the parent Tempo chain. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.zone.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.zone.deposit(config, variables) }, mutationKey: ['deposit'], }) } export declare namespace useDeposit { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.zone.deposit.ReturnValue, Actions.zone.deposit.ErrorType, Actions.zone.deposit.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.zone.deposit.ReturnValue, Actions.zone.deposit.ErrorType, Actions.zone.deposit.Parameters, context > } /** * Hook for depositing tokens into a zone on the parent Tempo chain. * * Note: This is a synchronous hook that waits for the transaction * to be included on a block before returning a response. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.zone.useDepositSync() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useDepositSync< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useDepositSync.Parameters = {}, ): useDepositSync.ReturnType { const { mutation = {} } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.zone.depositSync(config, variables) }, mutationKey: ['depositSync'], }) } export declare namespace useDepositSync { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.zone.depositSync.ReturnValue, Actions.zone.depositSync.ErrorType, Actions.zone.depositSync.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.zone.depositSync.ReturnValue, Actions.zone.depositSync.ErrorType, Actions.zone.depositSync.Parameters, context > } /** * Hook for depositing tokens into a zone on the parent Tempo chain with an * encrypted recipient and memo. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.zone.useEncryptedDeposit() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useEncryptedDeposit< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useEncryptedDeposit.Parameters = {}, ): useEncryptedDeposit.ReturnType { const { mutation = {} } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.zone.encryptedDeposit(config, variables) }, mutationKey: ['encryptedDeposit'], }) } export declare namespace useEncryptedDeposit { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.zone.encryptedDeposit.ReturnValue, Actions.zone.encryptedDeposit.ErrorType, Actions.zone.encryptedDeposit.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.zone.encryptedDeposit.ReturnValue, Actions.zone.encryptedDeposit.ErrorType, Actions.zone.encryptedDeposit.Parameters, context > } /** * Hook for depositing tokens into a zone on the parent Tempo chain with an * encrypted recipient and memo. * * Note: This is a synchronous hook that waits for the transaction * to be included on a block before returning a response. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.zone.useEncryptedDepositSync() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useEncryptedDepositSync< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useEncryptedDepositSync.Parameters = {}, ): useEncryptedDepositSync.ReturnType { const { mutation = {} } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.zone.encryptedDepositSync(config, variables) }, mutationKey: ['encryptedDepositSync'], }) } export declare namespace useEncryptedDepositSync { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.zone.encryptedDepositSync.ReturnValue, Actions.zone.encryptedDepositSync.ErrorType, Actions.zone.encryptedDepositSync.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.zone.encryptedDepositSync.ReturnValue, Actions.zone.encryptedDepositSync.ErrorType, Actions.zone.encryptedDepositSync.Parameters, context > } /** * Hook for requesting a withdrawal from a zone to the parent Tempo chain. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * import { zone } from 'viem/tempo/zones' * * const zoneChain = zone(7) * * function App() { * const { mutate, isPending } = Hooks.zone.useRequestWithdrawal() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useRequestWithdrawal< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useRequestWithdrawal.Parameters = {}, ): useRequestWithdrawal.ReturnType { const { mutation = {} } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.zone.requestWithdrawal(config, variables) }, mutationKey: ['requestWithdrawal'], }) } export declare namespace useRequestWithdrawal { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.zone.requestWithdrawal.ReturnValue, Actions.zone.requestWithdrawal.ErrorType, Actions.zone.requestWithdrawal.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.zone.requestWithdrawal.ReturnValue, Actions.zone.requestWithdrawal.ErrorType, Actions.zone.requestWithdrawal.Parameters, context > } /** * Hook for requesting a withdrawal from a zone to the parent Tempo chain. * * Note: This is a synchronous hook that waits for the transaction * to be included on a block before returning a response. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * import { zone } from 'viem/tempo/zones' * * const zoneChain = zone(7) * * function App() { * const { mutate, isPending } = Hooks.zone.useRequestWithdrawalSync() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useRequestWithdrawalSync< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useRequestWithdrawalSync.Parameters = {}, ): useRequestWithdrawalSync.ReturnType { const { mutation = {} } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.zone.requestWithdrawalSync(config, variables) }, mutationKey: ['requestWithdrawalSync'], }) } export declare namespace useRequestWithdrawalSync { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.zone.requestWithdrawalSync.ReturnValue, Actions.zone.requestWithdrawalSync.ErrorType, Actions.zone.requestWithdrawalSync.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.zone.requestWithdrawalSync.ReturnValue, Actions.zone.requestWithdrawalSync.ErrorType, Actions.zone.requestWithdrawalSync.Parameters, context > } /** * Hook for requesting a verifiable withdrawal from a zone to the parent Tempo * chain. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * import { zone } from 'viem/tempo/zones' * * const zoneChain = zone(7) * * function App() { * const { mutate, isPending } = Hooks.zone.useRequestVerifiableWithdrawal() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useRequestVerifiableWithdrawal< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useRequestVerifiableWithdrawal.Parameters = {}, ): useRequestVerifiableWithdrawal.ReturnType { const { mutation = {} } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.zone.requestVerifiableWithdrawal(config, variables) }, mutationKey: ['requestVerifiableWithdrawal'], }) } export declare namespace useRequestVerifiableWithdrawal { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.zone.requestVerifiableWithdrawal.ReturnValue, Actions.zone.requestVerifiableWithdrawal.ErrorType, Actions.zone.requestVerifiableWithdrawal.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.zone.requestVerifiableWithdrawal.ReturnValue, Actions.zone.requestVerifiableWithdrawal.ErrorType, Actions.zone.requestVerifiableWithdrawal.Parameters, context > } /** * Hook for requesting a verifiable withdrawal from a zone to the parent Tempo * chain. * * Note: This is a synchronous hook that waits for the transaction * to be included on a block before returning a response. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * import { zone } from 'viem/tempo/zones' * * const zoneChain = zone(7) * * function App() { * const { mutate, isPending } = Hooks.zone.useRequestVerifiableWithdrawalSync() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useRequestVerifiableWithdrawalSync< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useRequestVerifiableWithdrawalSync.Parameters< config, context > = {}, ): useRequestVerifiableWithdrawalSync.ReturnType { const { mutation = {} } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.zone.requestVerifiableWithdrawalSync(config, variables) }, mutationKey: ['requestVerifiableWithdrawalSync'], }) } export declare namespace useRequestVerifiableWithdrawalSync { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.zone.requestVerifiableWithdrawalSync.ReturnValue, Actions.zone.requestVerifiableWithdrawalSync.ErrorType, Actions.zone.requestVerifiableWithdrawalSync.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.zone.requestVerifiableWithdrawalSync.ReturnValue, Actions.zone.requestVerifiableWithdrawalSync.ErrorType, Actions.zone.requestVerifiableWithdrawalSync.Parameters, context > }