useContractWrite

Function: useContractWrite()

useContractWrite<chainId, abi, functionName, args, config, selectData>(params): object

useContractWrite is a utility function designed to manage the process of interacting with a smart contract's writable or payable methods. It includes capabilities for simulating transactions, estimating gas, pre-approving transactions using guardians, and waiting for transaction receipts after execution. This function provides comprehensive functionality to handle the complexities of writing to smart contracts in a streamlined manner.

Variables, callbacks, and computed states are provided to empower developers with greater control during interaction with smart contracts. It integrates various modules like simulation, transaction pre-approval, and gas estimation into a unified interface.

Type Parameters

โ€ข chainId extends number

The chain ID where the contract resides.

โ€ข abi extends Abi | readonly unknown[]

The ABI of the contract, defining available methods.

โ€ข functionName extends string

The name of the writable or payable function of the contract.

โ€ข args extends unknown

The arguments required by the contract function.

โ€ข config extends Config = Config

Configuration options for the contract write, including chain details.

โ€ข selectData = SimulateContractData<abi, functionName, args, config, chainId>

Data derived from simulation output passed into this template.

Parameters

params

UseContractWriteParameters<chainId, abi, functionName, args, config, selectData>

Configuration parameters for the contract write operation.

Returns

object

A set of properties and methods to manage contract write operations

hash

hash: undefined | `0x${string}`

isError

isError: boolean

isLoading

isLoading: boolean

isSimulateError

isSimulateError: boolean

isSimulateLoading

isSimulateLoading: boolean

isTxError

isTxError: boolean

isTxLoading

isTxLoading: boolean

isTxSuccess

isTxSuccess: boolean

isWriteError

isWriteError: boolean

isWriteSuccess

isWriteSuccess: boolean

isWriting

isWriting: boolean

readyToWrite

readyToWrite: boolean

simulateData

simulateData: undefined | SimulateContractReturnType<Abi, string, readonly unknown[], Chain, Account, Chain> & object

simulateError

simulateError: null | SimulateContractErrorType

txError

txError: null | WaitForTransactionReceiptErrorType

txReceipt

txReceipt: undefined | { blobGasPrice: bigint; blobGasUsed: bigint; blockHash: `0x${string}`; blockNumber: bigint; chainId: number; contractAddress: undefined | null | `0x${string}`; cumulativeGasUsed: bigint; effectiveGasPrice: bigint; from: `0x${string}`; gasUsed: bigint; logs: Log<bigint, number, false>[]; logsBloom: `0x${string}`; root: `0x${string}`; status: "success" | "reverted"; to: null | `0x${string}`; transactionHash: `0x${string}`; transactionIndex: number; type: TransactionType; }

Type declaration

undefined

{ blobGasPrice: bigint; blobGasUsed: bigint; blockHash: `0x${string}`; blockNumber: bigint; chainId: number; contractAddress: undefined | null | `0x${string}`; cumulativeGasUsed: bigint; effectiveGasPrice: bigint; from: `0x${string}`; gasUsed: bigint; logs: Log<bigint, number, false>[]; logsBloom: `0x${string}`; root: `0x${string}`; status: "success" | "reverted"; to: null | `0x${string}`; transactionHash: `0x${string}`; transactionIndex: number; type: TransactionType; }

writeContract()

writeContract: () => void

Returns

void

writeContractAsync()

writeContractAsync: () => Promise<void>

Returns

Promise<void>

writeError

writeError: null | WriteContractErrorType

writeReset()

writeReset: () => void

Returns

void

Defined in

packages/wagmi/src/hook/useContractWrite.tsx:111

Last updated