• 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
..
deploy-config Loading commit data...
deployments Loading commit data...
invariant-docs Loading commit data...
lib Loading commit data...
scripts Loading commit data...
src Loading commit data...
test Loading commit data...
test-case-generator Loading commit data...
.envrc.example Loading commit data...
.eslintignore Loading commit data...
.eslintrc.js Loading commit data...
.gas-snapshot Loading commit data...
.gitignore Loading commit data...
.npmignore Loading commit data...
.prettierignore Loading commit data...
.prettierrc.js Loading commit data...
.solhint.json Loading commit data...
.solhintignore Loading commit data...
.storage-layout Loading commit data...
CHANGELOG.md Loading commit data...
LICENSE Loading commit data...
README.md Loading commit data...
STYLE_GUIDE.md Loading commit data...
foundry.toml Loading commit data...
layout-lock.json Loading commit data...
package.json Loading commit data...
semver-lock.json Loading commit data...
slither.config.json Loading commit data...
slither.db.json Loading commit data...
tsconfig.build.json Loading commit data...
tsconfig.json Loading commit data...