UNPKG

@0xfacet/sdk

Version:

A toolkit for Facet blockchain integration.

34 lines (33 loc) 2.65 kB
import { Config, ResolvedRegister } from "@wagmi/core"; import { Abi, ContractFunctionArgs, ContractFunctionName, Hex, WriteContractErrorType } from "viem"; import { UseMutationParameters, UseMutationReturnType, WriteContractData, WriteContractMutate, WriteContractMutateAsync, WriteContractVariables } from "wagmi/query"; type WriteFacetContractVariables<abi extends Abi | readonly unknown[], functionName extends ContractFunctionName<abi, "nonpayable" | "payable">, args extends ContractFunctionArgs<abi, "nonpayable" | "payable", functionName>, config extends Config, chainId extends config["chains"][number]["id"]> = WriteContractVariables<abi, functionName, args, config, chainId> & { mineBoost?: Hex; }; type ConfigParameter<config extends Config = Config> = { config?: Config | config | undefined; }; type UseWriteFacetContractParameters<config extends Config = Config, context = unknown> = ConfigParameter<config> & { mutation?: UseMutationParameters<WriteContractData, WriteContractErrorType, WriteFacetContractVariables<Abi, string, readonly unknown[], config, config["chains"][number]["id"]>, context> | undefined; }; type UseWriteFacetContractReturnType<config extends Config = Config, context = unknown> = UseMutationReturnType<WriteContractData, WriteContractErrorType, WriteFacetContractVariables<Abi, string, readonly unknown[], config, config["chains"][number]["id"]>, context> & { writeFacetContract: WriteContractMutate<config, context>; writeFacetContractAsync: WriteContractMutateAsync<config, context>; }; /** * React hook that provides functionality to write to a Facet contract. * * @template config - The wagmi Config type, defaults to ResolvedRegister["config"] * @template context - The context type for the mutation, defaults to unknown * * @param {UseWriteFacetContractParameters<config, context>} parameters - Configuration options * @param {Config | config | undefined} [parameters.config] - Optional wagmi configuration * @param {UseMutationParameters} [parameters.mutation] - Optional react-query mutation parameters * * @returns {UseWriteFacetContractReturnType<config, context>} Object containing: * - writeFacetContract: Function to execute the contract write (non-async) * - writeFacetContractAsync: Function to execute the contract write (async) * - Additional react-query mutation properties (isLoading, isSuccess, etc.) */ export declare function useWriteFacetContract<config extends Config = ResolvedRegister["config"], context = unknown>(parameters?: UseWriteFacetContractParameters<config, context>): UseWriteFacetContractReturnType<config, context>; export {};