Skip to content

waitForCallsStatus

Waits for a call bundle to be confirmed & included on a block before returning the status & receipts.

WARNING

This is an experimental action that is not supported in most wallets. It is recommended to have a fallback mechanism if using this in production.

Import

ts
import { waitForCallsStatus } from '@wagmi/core/experimental'

Usage

ts
import { parseEther } from 'viem'
import { sendCalls, waitForCallsStatus } from '@wagmi/core/experimental'
import { config } from './config'

const id = await sendCalls(config, {
  calls: [{
    to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
    value: parseEther('1')
  }]
})

const { status, receipts } = await waitForCallsStatus(config, { 
  id, 
})
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'

export const config = createConfig({
  chains: [mainnet, sepolia],
  transports: {
    [mainnet.id]: http(),
    [sepolia.id]: http(),
  },
})

Parameters

ts
import { type WaitForCallsStatusParameters } from '@wagmi/core/experimental'

connector

Connector | undefined

Connector to get call statuses with.

ts
import { getConnections, waitForCallsStatus } from '@wagmi/core/experimental'
import { config } from './config'

const connections = getConnections(config)
const status = await waitForCallsStatus(config, {
  connector: connections[0]?.connector, 
  id: '0x1234567890abcdef',
})
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'

export const config = createConfig({
  chains: [mainnet, sepolia],
  transports: {
    [mainnet.id]: http(),
    [sepolia.id]: http(),
  },
})

id

string

Identifier of the call batch.

ts
import { waitForCallsStatus } from '@wagmi/core/experimental'
import { config } from './config'

const status = await waitForCallsStatus(config, {
  id: '0x1234567890abcdef', 
})
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'

export const config = createConfig({
  chains: [mainnet, sepolia],
  transports: {
    [mainnet.id]: http(),
    [sepolia.id]: http(),
  },
})

pollingInterval

number

Polling interval in milliseconds.

ts
import { waitForCallsStatus } from '@wagmi/core/experimental'
import { config } from './config'

const status = await waitForCallsStatus(config, {
  id: '0x1234567890abcdef',
  pollingInterval: 1_000, 
})
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'

export const config = createConfig({
  chains: [mainnet, sepolia],
  transports: {
    [mainnet.id]: http(),
    [sepolia.id]: http(),
  },
})

timeout

number

Timeout in milliseconds before waitForCallsStatus stops polling.

ts
import { waitForCallsStatus } from '@wagmi/core/experimental'
import { config } from './config'

const status = await waitForCallsStatus(config, {
  id: '0x1234567890abcdef',
  timeout: 10_000, 
})
ts
import { http, createConfig } from '@wagmi/core'
import { mainnet, sepolia } from '@wagmi/core/chains'

export const config = createConfig({
  chains: [mainnet, sepolia],
  transports: {
    [mainnet.id]: http(),
    [sepolia.id]: http(),
  },
})

Return Type

ts
import { type WaitForCallsStatusReturnType } from '@wagmi/core/experimental'

{ status: 'PENDING' | 'CONFIRMED', receipts: TransactionReceipt[] }

The status and receipts of the call batch.

Error

ts
import { type WaitForCallsStatusErrorType } from '@wagmi/core/experimental'

TanStack Query

ts
import {
  type WaitForCallsStatusData,
  type WaitForCallsStatusOptions,
  type WaitForCallsStatusQueryFnData,
  type WaitForCallsStatusQueryKey,
  waitForCallsStatusQueryKey,
  waitForCallsStatusQueryOptions,
} from '@wagmi/core/experimental/query'

Viem

Released under the MIT License.