@0xfacet/sdk
Version:
A toolkit for Facet blockchain integration.
34 lines (33 loc) • 2.65 kB
TypeScript
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 {};