UNPKG

viem

Version:

TypeScript Interface for Ethereum

41 lines 1.42 kB
import { readContract, } from '../../actions/public/readContract.js'; import { getChainContractAddress } from '../../utils/chain/getChainContractAddress.js'; import { gasPriceOracleAbi } from '../abis.js'; import { contracts } from '../contracts.js'; /** * get the L1 base fee * * @param client - Client to use * @param parameters - {@link GetL1BaseFeeParameters} * @returns The basefee (in wei). {@link GetL1BaseFeeReturnType} * * @example * import { createPublicClient, http, parseEther } from 'viem' * import { optimism } from 'viem/chains' * import { getL1BaseFee } from 'viem/chains/optimism' * * const client = createPublicClient({ * chain: optimism, * transport: http(), * }) * const l1BaseFee = await getL1BaseFee(client) */ export async function getL1BaseFee(client, args) { const { chain = client.chain, gasPriceOracleAddress: gasPriceOracleAddress_, } = args || {}; const gasPriceOracleAddress = (() => { if (gasPriceOracleAddress_) return gasPriceOracleAddress_; if (chain) return getChainContractAddress({ chain, contract: 'gasPriceOracle', }); return contracts.gasPriceOracle.address; })(); return readContract(client, { abi: gasPriceOracleAbi, address: gasPriceOracleAddress, functionName: 'l1BaseFee', }); } //# sourceMappingURL=getL1BaseFee.js.map