OffchainLabs / arbitrum-tutorials

Get started developing on Arbitrum
451 stars 278 forks source link

πŸ˜Άβ€πŸŒ«οΈ Mystery Factor in Gas Estimation Script #123

Open JaredBorders opened 1 month ago

JaredBorders commented 1 month ago

πŸ“„ Summary

following refers to arbitrum-tutorials/packages/gas-estimation/scripts/exec.ts

After a thorough review of the gas-estimation script tutorial, including an analysis of the commit history and an organization-wide search, I have been unable to locate a clear explanation for why the following variable is multiplied by a factor of 16:

const l1EstimatedPrice = gasEstimateComponents.l1BaseFeeEstimate.mul(16);

I have examined the detailed documentation (πŸ‘) related to the gas formula and the section titled How do we get all parts of that equation. However, the documentation repeatedly states, "and multiply by 16" without providing a precise explanation for this multiplication.

πŸ”Ž Interpretation

This factor likely pertains to unit conversion, such as converting from units of size to units of gas. However, neither the tutorial nor the repository offers a clear and specific explanation for this multiplication.

πŸ’Š Remedy

To improve clarity, I suggest the following steps:

  1. Define a constant with a descriptive name for this factor.
  2. Provide sufficient documentation explaining the purpose and usage of the new constant.
  3. Update the detailed documentation within gasEstimator() to reference the factor of 16 and clearly explain its purpose.
JaredBorders commented 1 month ago

cc: @TucksonDev

I noticed that you were the author of the script in question. I’m unsure where it would be best to discuss this further, but I have additional questions regarding on-chain gas estimation, future changes, and precompiles. These are all relevant to a migrating protocol that will rely on this information to operate correctly on-chain.