Skip to content

waitToProve

Waits until the L2 withdrawal transaction is ready to be proved. Used for the Withdrawal flow.

Internally calls getTimeToNextL2Output and waits the returned seconds.

Usage

example.ts
import { account, publicClientL1, publicClientL2 } from './config'
 
const receipt = await publicClientL2.getTransactionReceipt({
  hash: '0x7b5cedccfaf9abe6ce3d07982f57bcb9176313b019ff0fc602a0b70342fe3147'
})
const output = await publicClientL1.waitToProve({ 
  receipt, 
  targetChain: publicClientL2.chain, 
}) 

Returns

WaitToProveReturnType

The L2 output and the withdrawal message.

Parameters

receipt

  • Type: TransactionReceipt

The transaction receipt.

const output = await publicClientL1.waitToProve({ 
  receipt, 
  targetChain: optimism, 
}) 

targetChain

The L2 chain.

const output = await publicClientL1.waitToProve({
  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 output = await publicClientL1.waitToProve({
  l2BlockNumber,
  l2OutputOracleAddress: '0xbEb5Fc579115071764c7423A4f12eDde41f106Ed'
})