op-e2e: major refactor
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.
Showing
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
op-e2e/README.md
0 → 100644
op-e2e/config/init.go
0 → 100644
This diff is collapsed.
Please register or sign in to comment