UNPKG

@0xfacet/sdk

Version:

A toolkit for Facet blockchain integration.

51 lines (50 loc) 2.94 kB
import { ResolvedRegister, SendTransactionErrorType } from "@wagmi/core"; import { Evaluate, Hex } from "viem"; import { Config } from "wagmi"; import { SendTransactionData, SendTransactionMutate, SendTransactionMutateAsync, SendTransactionVariables, UseMutationParameters, UseMutationReturnType } from "wagmi/query"; type SendFacetTransactionVariables<config extends Config, chainId extends config["chains"][number]["id"]> = SendTransactionVariables<config, chainId> & { mineBoost?: Hex; }; type ConfigParameter<config extends Config = Config> = { config?: Config | config | undefined; }; type UseSendFacetTransactionParameters<config extends Config = Config, context = unknown> = Evaluate<ConfigParameter<config> & { mutation?: UseMutationParameters<SendTransactionData, SendTransactionErrorType, SendFacetTransactionVariables<config, config["chains"][number]["id"]>, context> | undefined; }>; type UseSendFacetTransactionReturnType<config extends Config = Config, context = unknown> = Evaluate<UseMutationReturnType<SendTransactionData, SendTransactionErrorType, SendFacetTransactionVariables<config, config["chains"][number]["id"]>, context> & { sendFacetTransaction: SendTransactionMutate<config, context>; sendFacetTransactionAsync: SendTransactionMutateAsync<config, context>; }>; /** * Hook for sending Facet transactions on Ethereum mainnet or Sepolia testnet. * * This hook provides a convenient way to send transactions through the Facet SDK * using wagmi and viem. It supports both synchronous and asynchronous transaction * submission methods. * * @template config - The wagmi Config type * @template context - The mutation context type * * @param {UseSendFacetTransactionParameters<config, context>} parameters - Configuration options * @param {config} [parameters.config] - The wagmi config to use * @param {UseMutationParameters} [parameters.mutation] - React Query mutation options * * @returns {UseSendFacetTransactionReturnType<config, context>} - Mutation result and transaction methods * @returns {SendTransactionMutate<config, context>} returns.sendFacetTransaction - Function to send a transaction * @returns {SendTransactionMutateAsync<config, context>} returns.sendFacetTransactionAsync - Function to send a transaction that returns a promise * * @throws Will throw an error if connected to a chain other than mainnet or Sepolia * * @example * const { sendFacetTransaction, isLoading, isSuccess, data } = useSendFacetTransaction(); * * // Send a transaction * sendFacetTransaction({ * to: '0x...', * value: parseEther('0.1'), * data: '0x...', * mineBoost: '0x01' // Optional: increase FCT mining amount * }); */ export declare function useSendFacetTransaction<config extends Config = ResolvedRegister["config"], context = unknown>(parameters?: UseSendFacetTransactionParameters<config, context>): UseSendFacetTransactionReturnType<config, context>; export {};