Skip to content

buildInitiateWithdrawal

Builds & prepares parameters for a withdrawal to be initiated on an L2.

Usage

example.ts
import { account, publicClientL1, walletClientL2 } from './config'
 
const args = await publicClientL1.buildInitiateWithdrawal({ 
  account, 
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', 
  value: parseEther('1'), 
}) 
 
const hash = await walletClientL2.initiateWithdrawal(args)

Account Hoisting

If you do not wish to pass an account to every buildInitiateWithdrawal, you can also hoist the Account on the Wallet Client (see config.ts).

Learn more.

example.ts
import { publicClientL1, walletClientL2 } from './config'
 
const args = await publicClientL1.buildInitiateWithdrawal({
  mint: parseEther('1')
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
})
 
const hash = await walletClientL2.initiateWithdrawal(args)

Returns

InitiateWithdrawalParameters

The parameters required to initiate a withdrawal.

Parameters

account (optional)

  • Type: Account | Address

The Account to send the transaction from.

Accepts a JSON-RPC Account or Local Account (Private Key, etc).

const args = await client.buildInitiateWithdrawal({
  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', 
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1')
})

data (optional)

  • Type: Hex

Encoded contract method & arguments.

const args = await client.buildInitiateWithdrawal({
  data: '0x...', 
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
})

gas (optional)

  • Type: bigint

Gas limit for transaction execution on the L1.

const args = await client.buildInitiateWithdrawal({
  gas: 21_000n, 
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1')
})

to (optional)

  • Type: Address

L1 recipient.

const args = await client.buildInitiateWithdrawal({
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',  
  value: parseEther('1')
})

value (optional)

  • Type: bigint

Value in wei to withdrawal from the L2 to the L1. Debited from the caller's L2 balance.

const args = await client.buildInitiateWithdrawal({
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', 
  value: parseEther('1') 
})