import type { UseMutationResult } from '@tanstack/react-query' import type { Config, ResolvedRegister } from '@wagmi/core' import type { ConfigParameter, ExactPartial, UnionCompute, } from '@wagmi/core/internal' import { Actions } from '@wagmi/core/tempo' import { useEffect } from 'react' 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 creating a new policy. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.policy.useCreate() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useCreate< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useCreate.Parameters = {}, ): useCreate.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.policy.create(config, variables as never) }, mutationKey: ['create'], }) as never } export declare namespace useCreate { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.policy.create.ReturnValue, Actions.policy.create.ErrorType, Actions.policy.create.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.policy.create.ReturnValue, Actions.policy.create.ErrorType, Actions.policy.create.Parameters, context > } /** * Hook for creating a new policy. * * 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.policy.useCreateSync() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useCreateSync< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useCreateSync.Parameters = {}, ): useCreateSync.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.policy.createSync(config, variables as never) }, mutationKey: ['createSync'], }) as never } export declare namespace useCreateSync { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.policy.createSync.ReturnValue, Actions.policy.createSync.ErrorType, Actions.policy.createSync.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.policy.createSync.ReturnValue, Actions.policy.createSync.ErrorType, Actions.policy.createSync.Parameters, context > } /** * Hook for setting the admin for a policy. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.policy.useSetAdmin() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useSetAdmin< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useSetAdmin.Parameters = {}, ): useSetAdmin.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.policy.setAdmin(config, variables as never) }, mutationKey: ['setAdmin'], }) as never } export declare namespace useSetAdmin { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.policy.setAdmin.ReturnValue, Actions.policy.setAdmin.ErrorType, Actions.policy.setAdmin.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.policy.setAdmin.ReturnValue, Actions.policy.setAdmin.ErrorType, Actions.policy.setAdmin.Parameters, context > } /** * Hook for setting the admin for a policy. * * 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.policy.useSetAdminSync() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useSetAdminSync< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useSetAdminSync.Parameters = {}, ): useSetAdminSync.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.policy.setAdminSync(config, variables as never) }, mutationKey: ['setAdminSync'], }) as never } export declare namespace useSetAdminSync { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.policy.setAdminSync.ReturnValue, Actions.policy.setAdminSync.ErrorType, Actions.policy.setAdminSync.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.policy.setAdminSync.ReturnValue, Actions.policy.setAdminSync.ErrorType, Actions.policy.setAdminSync.Parameters, context > } /** * Hook for modifying a policy whitelist. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.policy.useModifyWhitelist() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useModifyWhitelist< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useModifyWhitelist.Parameters = {}, ): useModifyWhitelist.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.policy.modifyWhitelist(config, variables as never) }, mutationKey: ['modifyWhitelist'], }) as never } export declare namespace useModifyWhitelist { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.policy.modifyWhitelist.ReturnValue, Actions.policy.modifyWhitelist.ErrorType, Actions.policy.modifyWhitelist.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.policy.modifyWhitelist.ReturnValue, Actions.policy.modifyWhitelist.ErrorType, Actions.policy.modifyWhitelist.Parameters, context > } /** * Hook for modifying a policy whitelist. * * 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.policy.useModifyWhitelistSync() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useModifyWhitelistSync< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useModifyWhitelistSync.Parameters = {}, ): useModifyWhitelistSync.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.policy.modifyWhitelistSync(config, variables as never) }, mutationKey: ['modifyWhitelistSync'], }) as never } export declare namespace useModifyWhitelistSync { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.policy.modifyWhitelistSync.ReturnValue, Actions.policy.modifyWhitelistSync.ErrorType, Actions.policy.modifyWhitelistSync.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.policy.modifyWhitelistSync.ReturnValue, Actions.policy.modifyWhitelistSync.ErrorType, Actions.policy.modifyWhitelistSync.Parameters, context > } /** * Hook for modifying a policy blacklist. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { mutate, isPending } = Hooks.policy.useModifyBlacklist() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useModifyBlacklist< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useModifyBlacklist.Parameters = {}, ): useModifyBlacklist.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.policy.modifyBlacklist(config, variables as never) }, mutationKey: ['modifyBlacklist'], }) as never } export declare namespace useModifyBlacklist { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.policy.modifyBlacklist.ReturnValue, Actions.policy.modifyBlacklist.ErrorType, Actions.policy.modifyBlacklist.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.policy.modifyBlacklist.ReturnValue, Actions.policy.modifyBlacklist.ErrorType, Actions.policy.modifyBlacklist.Parameters, context > } /** * Hook for modifying a policy blacklist. * * 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.policy.useModifyBlacklistSync() * * return ( * * ) * } * ``` * * @param parameters - Parameters. * @returns Mutation result. */ export function useModifyBlacklistSync< config extends Config = ResolvedRegister['config'], context = unknown, >( parameters: useModifyBlacklistSync.Parameters = {}, ): useModifyBlacklistSync.ReturnType { const { mutation } = parameters const config = useConfig(parameters) return useMutation({ ...mutation, async mutationFn(variables) { return Actions.policy.modifyBlacklistSync(config, variables as never) }, mutationKey: ['modifyBlacklistSync'], }) as never } export declare namespace useModifyBlacklistSync { type Parameters< config extends Config = Config, context = unknown, > = ConfigParameter & { mutation?: | UseMutationParameters< Actions.policy.modifyBlacklistSync.ReturnValue, Actions.policy.modifyBlacklistSync.ErrorType, Actions.policy.modifyBlacklistSync.Parameters, context > | undefined } type ReturnType< config extends Config = Config, context = unknown, > = UseMutationResult< Actions.policy.modifyBlacklistSync.ReturnValue, Actions.policy.modifyBlacklistSync.ErrorType, Actions.policy.modifyBlacklistSync.Parameters, context > } /** * Hook for getting policy data. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { data, isLoading } = Hooks.policy.useData({ * policyId: 2n, * }) * * if (isLoading) return
Loading...
* return
Admin: {data?.admin}
* } * ``` * * @param parameters - Parameters. * @returns Query result with policy data. */ export function useData< config extends Config = ResolvedRegister['config'], selectData = Actions.policy.getData.ReturnValue, >( parameters: useData.Parameters = {}, ): useData.ReturnValue { const config = useConfig(parameters) const chainId = useChainId({ config }) const options = Actions.policy.getData.queryOptions(config, { ...parameters, chainId: parameters.chainId ?? chainId, } as never) return useQuery(options) as never } export declare namespace useData { export type Parameters< config extends Config = ResolvedRegister['config'], selectData = Actions.policy.getData.ReturnValue, > = ConfigParameter & QueryParameter< Actions.policy.getData.ReturnValue, Actions.policy.getData.ErrorType, selectData, Actions.policy.getData.QueryKey > & ExactPartial> export type ReturnValue = UseQueryReturnType } /** * Hook for checking if a user is authorized by a policy. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * const { data, isLoading } = Hooks.policy.useIsAuthorized({ * policyId: 2n, * user: '0x...', * }) * * if (isLoading) return
Loading...
* return
Authorized: {data ? 'Yes' : 'No'}
* } * ``` * * @param parameters - Parameters. * @returns Query result with authorization status. */ export function useIsAuthorized< config extends Config = ResolvedRegister['config'], selectData = Actions.policy.isAuthorized.ReturnValue, >( parameters: useIsAuthorized.Parameters = {}, ): useIsAuthorized.ReturnValue { const config = useConfig(parameters) const chainId = useChainId({ config }) const options = Actions.policy.isAuthorized.queryOptions(config, { ...parameters, chainId: parameters.chainId ?? chainId, } as never) return useQuery(options) as never } export declare namespace useIsAuthorized { export type Parameters< config extends Config = ResolvedRegister['config'], selectData = Actions.policy.isAuthorized.ReturnValue, > = ConfigParameter & QueryParameter< Actions.policy.isAuthorized.ReturnValue, Actions.policy.isAuthorized.ErrorType, selectData, Actions.policy.isAuthorized.QueryKey > & ExactPartial> export type ReturnValue< selectData = Actions.policy.isAuthorized.ReturnValue, > = UseQueryReturnType } /** * Hook for watching policy creation events. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * Hooks.policy.useWatchCreate({ * onPolicyCreated(args) { * console.log('Policy created:', args) * }, * }) * * return
Watching for policy creation...
* } * ``` * * @param parameters - Parameters. */ export function useWatchCreate< config extends Config = ResolvedRegister['config'], >(parameters: useWatchCreate.Parameters = {}) { const { enabled = true, onPolicyCreated, ...rest } = parameters const config = useConfig({ config: parameters.config }) const configChainId = useChainId({ config }) const chainId = parameters.chainId ?? configChainId // biome-ignore lint/correctness/useExhaustiveDependencies: rest.x is explicitly listed useEffect(() => { if (!enabled) return if (!onPolicyCreated) return return Actions.policy.watchCreate(config, { ...rest, chainId, onPolicyCreated, }) }, [ config, enabled, chainId, onPolicyCreated, rest.fromBlock, rest.onError, rest.poll, rest.pollingInterval, ]) } export declare namespace useWatchCreate { type Parameters = UnionCompute< ExactPartial> & ConfigParameter & { enabled?: boolean | undefined } > } /** * Hook for watching policy admin update events. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * Hooks.policy.useWatchAdminUpdated({ * onAdminUpdated(args) { * console.log('Policy admin updated:', args) * }, * }) * * return
Watching for admin updates...
* } * ``` * * @param parameters - Parameters. */ export function useWatchAdminUpdated< config extends Config = ResolvedRegister['config'], >(parameters: useWatchAdminUpdated.Parameters = {}) { const { enabled = true, onAdminUpdated, ...rest } = parameters const config = useConfig({ config: parameters.config }) const configChainId = useChainId({ config }) const chainId = parameters.chainId ?? configChainId // biome-ignore lint/correctness/useExhaustiveDependencies: rest.x is explicitly listed useEffect(() => { if (!enabled) return if (!onAdminUpdated) return return Actions.policy.watchAdminUpdated(config, { ...rest, chainId, onAdminUpdated, }) }, [ config, enabled, chainId, onAdminUpdated, rest.fromBlock, rest.onError, rest.poll, rest.pollingInterval, ]) } export declare namespace useWatchAdminUpdated { type Parameters = UnionCompute< ExactPartial> & ConfigParameter & { enabled?: boolean | undefined } > } /** * Hook for watching whitelist update events. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * Hooks.policy.useWatchWhitelistUpdated({ * onWhitelistUpdated(args) { * console.log('Whitelist updated:', args) * }, * }) * * return
Watching for whitelist updates...
* } * ``` * * @param parameters - Parameters. */ export function useWatchWhitelistUpdated< config extends Config = ResolvedRegister['config'], >(parameters: useWatchWhitelistUpdated.Parameters = {}) { const { enabled = true, onWhitelistUpdated, ...rest } = parameters const config = useConfig({ config: parameters.config }) const configChainId = useChainId({ config }) const chainId = parameters.chainId ?? configChainId // biome-ignore lint/correctness/useExhaustiveDependencies: rest.x is explicitly listed useEffect(() => { if (!enabled) return if (!onWhitelistUpdated) return return Actions.policy.watchWhitelistUpdated(config, { ...rest, chainId, onWhitelistUpdated, }) }, [ config, enabled, chainId, onWhitelistUpdated, rest.fromBlock, rest.onError, rest.poll, rest.pollingInterval, ]) } export declare namespace useWatchWhitelistUpdated { type Parameters = UnionCompute< ExactPartial> & ConfigParameter & { enabled?: boolean | undefined } > } /** * Hook for watching blacklist update events. * * @example * ```tsx * import { Hooks } from 'wagmi/tempo' * * function App() { * Hooks.policy.useWatchBlacklistUpdated({ * onBlacklistUpdated(args) { * console.log('Blacklist updated:', args) * }, * }) * * return
Watching for blacklist updates...
* } * ``` * * @param parameters - Parameters. */ export function useWatchBlacklistUpdated< config extends Config = ResolvedRegister['config'], >(parameters: useWatchBlacklistUpdated.Parameters = {}) { const { enabled = true, onBlacklistUpdated, ...rest } = parameters const config = useConfig({ config: parameters.config }) const configChainId = useChainId({ config }) const chainId = parameters.chainId ?? configChainId // biome-ignore lint/correctness/useExhaustiveDependencies: rest.x is explicitly listed useEffect(() => { if (!enabled) return if (!onBlacklistUpdated) return return Actions.policy.watchBlacklistUpdated(config, { ...rest, chainId, onBlacklistUpdated, }) }, [ config, enabled, chainId, onBlacklistUpdated, rest.fromBlock, rest.onError, rest.poll, rest.pollingInterval, ]) } export declare namespace useWatchBlacklistUpdated { type Parameters = UnionCompute< ExactPartial> & ConfigParameter & { enabled?: boolean | undefined } > }