waitForTransaction
Action for declaratively waiting until transaction is processed. Pairs well with writeContract
and sendTransaction
.
This is a wrapper around viem's waitForTransactionReceipt
.
import { waitForTransaction } from '@wagmi/core'
Usage
import { waitForTransaction } from '@wagmi/core'
const data = await waitForTransaction({
hash: '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060',
})
Return Value
TransactionReceipt
Configuration
hash
Transaction hash to monitor. Works well with writeContract
and sendTransaction
.
import {
prepareWriteContract,
waitForTransaction,
writeContract,
} from '@wagmi/core'
const { config } = await prepareWriteContract({
address: '0xecb504d39723b0be0e3a9aa33d646642d1051ee1',
abi: wagmigotchiABI,
functionName: 'feed',
})
const { hash } = await writeContract(config)
const data = await waitForTransaction({
hash,
})
chainId (optional)
Force a specific chain id for waiting on transaction. The wagmi Client
's publicClient
must be set up as a chain-aware function for this to work correctly.
import { waitForTransaction } from '@wagmi/core'
const waitForTransaction = await waitForTransaction({
chainId: 1,
hash: '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060',
})
confirmations (optional)
Waits until confirmations number of blocks are mined on top of the block containing the transaction. Defaults to 1
. If confirmations is 0
, action will not wait and return immediately without blocking, likely resulting in data
being null
.
import { waitForTransaction } from '@wagmi/core'
const waitForTransaction = await waitForTransaction({
confirmations: 1,
hash: '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060',
})
onReplaced (optional)
Callback to invoke when the transaction has been sped up (replaced with higher gas fee values).
import { waitForTransaction } from '@wagmi/core'
const waitForTransaction = await waitForTransaction({
hash: '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060',
onReplaced: (transaction) => console.log(transaction),
})
timeout (optional)
Maximum amount of time to wait before timing out in milliseconds. Defaults to 0
(will wait until transaction processes).
import { waitForTransaction } from '@wagmi/core'
const waitForTransaction = await waitForTransaction({
hash: '0x5c504ed432cb51138bcf09aa5e8a410dd4a1e204ef84bfed1be16dfba1b22060',
timeout: 2_000, // 2 seconds
})