• 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
Name
Last commit
Last update
..
adapters Loading commit data...
interfaces Loading commit data...
utils Loading commit data...
cross-chain-messenger.ts Loading commit data...
index.ts Loading commit data...
l2-provider.ts Loading commit data...