Skip to content

wallet_getCallsStatus

Get the status of a call bundle. This method is modeled after ERC-5792, but with slight modifications to better suit a multi-chain wallet, namely chainId is not a property of the bundle itself, but of the receipts in the bundle.

If the bundle failed off-chain, or if it is pending, there may be no receipts.

Status Codes

The purpose of the status field is to provide a short summary of the current status of the bundle. It provides some off-chain context to the array of inner transaction receipts.

CodeDescription
100Batch has been received by the wallet but has not completed execution onchain (pending)
200Batch has been included onchain without reverts, receipts array contains info of all calls (confirmed)
300Batch has not been included onchain and wallet will not retry (offchain failure)
400Batch reverted completely and only changes related to gas charge may have been included onchain (chain rules failure)
500Batch reverted partially and some changes related to batch calls may have been included onchain (partial chain rules failure)

Request

The parameter is a call bundle ID, as returned by e.g. wallet_sendPreparedCalls.

type Request = {
  method: 'wallet_getCallsStatus',
  // the call bundle ID
  params: [Hex],
}

Response

type Response = {
  id: Hex,
  status: number, // See "Status Codes"
  receipts?: {
    logs: {
      chainId: Hex,
      address: Address,
      data: Hex,
      topics: Hex[],
    }[],
    status: Hex, // Hex 1 or 0 for success or failure, respectively
    blockHash?: Hash,
    blockNumber?: Hex,
    gasUsed: Hex,
    transactionHash: Hash,
  }[],
}