• 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
.changeset Loading commit data...
.circleci Loading commit data...
.github Loading commit data...
.husky Loading commit data...
.vscode Loading commit data...
bedrock-devnet Loading commit data...
cannon Loading commit data...
endpoint-monitor Loading commit data...
indexer Loading commit data...
op-batcher Loading commit data...
op-bindings Loading commit data...
op-bootnode Loading commit data...
op-chain-ops Loading commit data...
op-challenger Loading commit data...
op-e2e Loading commit data...
op-exporter Loading commit data...
op-heartbeat Loading commit data...
op-node Loading commit data...
op-preimage Loading commit data...
op-program Loading commit data...
op-proposer Loading commit data...
op-service Loading commit data...
op-signer Loading commit data...
op-ufm Loading commit data...
op-wheel Loading commit data...
ops Loading commit data...
ops-bedrock Loading commit data...
packages Loading commit data...
patches Loading commit data...
proxyd Loading commit data...
specs Loading commit data...
technical-documents Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.eslintrc.js Loading commit data...
.foundryrc Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gitmodules Loading commit data...
.markdownlint.json Loading commit data...
.npmrc Loading commit data...
.nvmrc Loading commit data...
.prettierrc.js Loading commit data...
.semgrepignore Loading commit data...
.snyk Loading commit data...
CITATION.cff Loading commit data...
CONTRIBUTING.md Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
SECURITY.md Loading commit data...
cloudbuild.yaml Loading commit data...
codecov.yml Loading commit data...
go.mod Loading commit data...
go.sum Loading commit data...
lerna.json Loading commit data...
nx.json Loading commit data...
package.json Loading commit data...
pnpm-lock.yaml Loading commit data...
pnpm-workspace.yaml Loading commit data...
tsconfig.json Loading commit data...