Skip to content

getWithdrawalStatus

Returns the current status of a withdrawal. Used for the Withdrawal flow.

Usage

example.ts
import { account, publicClientL1, publicClientL2 } from './config'
 
const receipt = await publicClientL2.getTransactionReceipt({
  hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'
})
 
const status = await publicClientL1.getWithdrawalStatus({ 
  receipt, 
  targetChain: publicClientL2.chain, 
}) 
// "ready-to-prove"

Returns

"waiting-to-prove" | "ready-to-prove" | "waiting-to-finalize" | "ready-to-finalize" | "finalized"

Parameters

receipt

  • Type: TransactionReceipt

The transaction receipt.

const status = await publicClientL1.getWithdrawalStatus({ 
  receipt, 
  targetChain: optimism, 
}) 

targetChain

The L2 chain.

const status = await publicClientL1.getWithdrawalStatus({
  l2BlockNumber,
  targetChain: optimism, 
})

l2OutputOracleAddress (optional)

  • Type: Address
  • Default: targetChain.contracts.l2OutputOracle[chainId].address

The address of the L2 Output Oracle contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

If a l2OutputOracleAddress is provided, the targetChain parameter becomes optional.

const status = await publicClientL1.getWithdrawalStatus({
  receipt,
  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'
  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'
})

portalAddress (optional)

  • Type: Address
  • Default: targetChain.contracts.portal[chainId].address

The address of the Portal contract. Defaults to the L2 Output Oracle contract specified on the targetChain.

If a portalAddress is provided, the targetChain parameter becomes optional.

const status = await publicClientL1.getWithdrawalStatus({
  receipt,
  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed',
  portalAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'
})