Description
Overview
We need the ability to deploy L1 contracts, then deploy a new version (without preserving state for now), and then have sequencer/prover nodes be able to use that new version.
In short, we ought to be able to populate all the l1 contract addresses from just an ethereum host and the registry address (and an optional rollup version)
Candidate Solution
Change the ChainConfig
type to demand a registryAddress
instead of a rollupAddress
. Then use the extant version
variable to request the corresponding rollupAddress
from the registry on startup.
Further, we should permit version
to be undefined, which should result in the node using the current canonical version from the registry.
On startup, we should have a step where we go gather all the contract addresses from L1.