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