• Mark Tyneway's avatar
    contracts-bedrock: flake fix attempt (#9082) · 78a5c4f8
    Mark Tyneway authored
    * contracts-bedrock: flake fix attempt
    
    Progress towards fixing flakes in CI. Using `etch` to set contracts in
    state instead of deploying will help to fix the nonce mismatches between
    the L1 contract addresses and the L2 genesis that contains L1 contract
    addresses.
    
    Developers will need to run `forge clean` to remove artifacts for the
    tests to pass after this commit is merged. It enforces a single version
    of `FFIInterface` to be compiled instead of it being compiled with
    multiple compiler versions. The `vm.getCode` family of cheats fail when
    there are multiple compiled versions of the same contract because the
    artfact has the compiler version appended to the name of the artifact.
    
    This will also help to improve compiler time since the compiled
    contracts do not need to include the compiled bytecode of the deploy and
    ffiinterface contracts, the code is loaded dynamically instead of being
    deployed with `CREATE`.
    
    * contracts-bedrock: more cleanup
    
    Deletes a dead file that is no longer needed and sets the deploy config
    in state using `etch`. `DeployL2` is not used, we should be using the
    `superchain-ops` repo for deploying new L2 contracts or deploy them
    through L1. Since `DeployL2` used code using solc `0.8.19` (EAS) it
    caused multiple versions of the `DeployConfig` to be compiled which
    causes headaches when using `vm.getCode`.
    
    * contracts-bedrock: update gas snapshot
    
    * contracts-bedrock: more cleanup
    
    * contracts-bedrock: gas-snapshot
    
    * lint: fix
    78a5c4f8
Deploy.s.sol 49.2 KB