Skip to content

estimateL1Gas

Estimates the amount of L1 data gas required to execute an L2 transaction.

Invokes the getL1GasUsed method on the Gas Price Oracle predeploy contract.

Usage

example.ts
import { account, publicClient } from './config'
 
const gas = await publicClient.estimateL1Gas({ 
  account,
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1')
})

Returns

bigint

The L1 data gas estimate.

Parameters

account

  • Type: Account | Address

The Account to estimate gas from.

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

const gas = await publicClient.estimateL1Gas({
  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266', 
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1')
})

data (optional)

  • Type: 0x${string}

Contract code or a hashed method call with encoded args.

const gas = await publicClient.estimateL1Gas({
  data: '0x...', 
  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1')
})

gasPriceOracleAddress (optional)

Address of the Gas Price Oracle predeploy contract.

const gas = await publicClient.estimateL1Gas({
  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
  gasPriceOracleAddress: '0x420000000000000000000000000000000000000F', 
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1')
})

maxFeePerGas (optional)

  • Type: bigint

Total fee per gas (in wei), inclusive of maxPriorityFeePerGas.

const gas = await publicClient.estimateL1Gas({
  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
  maxFeePerGas: parseGwei('20'),  
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1')
})

maxPriorityFeePerGas (optional)

  • Type: bigint

Max priority fee per gas (in wei).

const gas = await publicClient.estimateL1Gas({
  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
  maxFeePerGas: parseGwei('20'),
  maxPriorityFeePerGas: parseGwei('2'), 
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1')
})

nonce (optional)

  • Type: number

Unique number identifying this transaction.

const fee = await publicClient.estimateL1Gas({
  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
  maxFeePerGas: parseGwei('20'),
  maxPriorityFeePerGas: parseGwei('2'),
  nonce: 69, 
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1')
})

to (optional)

Transaction recipient.

const gas = await publicClient.estimateL1Gas({
  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8', 
  value: parseEther('1')
})

value (optional)

  • Type: bigint

Value (in wei) sent with this transaction.

const gas = await publicClient.estimateL1Gas({
  account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
  to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
  value: parseEther('1') 
})