-
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