Our current system assumes that there's a single L2, and does the forking of the L2 inside the ForkingManager.
Functionally it doesn't need to be this way as the escalation game leading up to the forking is done on L1. If these were unbundled you could potentially make a different L2 sharing the same token and forking at the same time. This would also work better if we did Eigenlayer integration etc.
Specific changes to make this work:
- Break the code that forks the L2 out of the ForkingManager
- Make sure we can handle the fact that the forking of the L2 is no longer done atomically at the same time as the forking of the token. (This should be OK as we know in advance what the forking timestamp is and we have a delay before forking, but it creates some extra code paths)
Our current system assumes that there's a single L2, and does the forking of the L2 inside the ForkingManager.
Functionally it doesn't need to be this way as the escalation game leading up to the forking is done on L1. If these were unbundled you could potentially make a different L2 sharing the same token and forking at the same time. This would also work better if we did Eigenlayer integration etc.
Specific changes to make this work: