• Mark Tyneway's avatar
    op-e2e: major refactor · 069f9c22
    Mark Tyneway authored
    Refactor op-e2e to use the same deploy script that is used in
    production. There is only 1 way to deploy contracts now and
    it goes through foundry. This removes the need to maintain
    multiple sets of contracts deployments/devnets. It does
    add a new tooling dep to the monorepo which is `geth`.
    A top level `make` command is provided as well as some
    docs in the `op-e2e` package on its usage.
    
    The `devnetL1.json` deployconfig is the source of truth
    for deploy configs in `op-e2e` now. In the long term,
    we should delineate which config values are safe to alter
    in memory and which are not. Some things are still coupled
    together in weird ways, but I tried to add assertions where
    I could to ensure that future people will get better error
    messages.
    
    To install geth, run the command:
    
    `` `
    make install-geth
    ```
    
    To create the genesis state, run the command:
    
    ```
    make devnet-allocs
    ```
    
    This will run the forge deploy script against an instance of
    `geth --dev` and then call `debug_dumpBlock` which will dump
    the state into a format that we can inject at runtime into
    the genesis of both `op-e2e` as well as the L1 of the docker
    compose setup.
    
    I tried to use `anvil` instead of `geth` but it does not
    support this endpoint. It supports a different endpoint
    that uses a compressed binary serialization of state,
    it is easier to work with the JSON.
    069f9c22
setup_test.go 1.09 KB