• Mark Tyneway's avatar
    contracts: optimize `L1Block.setL1BlockValues` (#2596) · 2d791301
    Mark Tyneway authored
    * contracts: optimize `L1Block.setL1BlockValues`
    
    The amount of gas required to update the
    L1 block values can be reduced by ~5000 gas by tightly
    packing the `uint64`s into a single storage slot.
    This is important because there will be a single
    transaction at the beginning of each block that will
    be updating these values. ~100 gas is saved by using
    yul instead of straight solidity. I don't feel like the
    yul is particularly difficult to read in this context,
    and saving 100 gas per block will add up to a lot over
    the history of the chain. This logic is covered by foundry
    fuzzing.
    
    * op-bindings: regenerate
    2d791301
L1Block.sol 2.12 KB