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