Add support for pre-existing OPSM (#12099)
* Add support for pre-existing OPSM
This PR adds support for deploying OP Chains against an existing OPSM deployment. It adds a new `OPSMAddress` field to the intent to hold the address of the OPSM. When specified, the `ContractsRelease` field is ignored. In the future, this field will be pulled from the Superchain Registry.
Since the Go Forge tooling doesn't support forking yet, the deployment is performed using a raw call to `eth_sendRawTransaction`. Data about the Superchain deployments is pulled from the OPSM itself via `eth_call`. To expose the deployment output following the Superchain deployment, I updated the `Deployed` event to emit the ABI-encoded bytes of the `DeployOutput` struct to avoid stack-too-deep errors. This isn't ideal, but at least it gets me all of the fields I need in a log event without more invasive changes.
* chore: add version identifer to Deployed event
* chore: emit msg.sender in Deployed event
* Fix merge issues
* test: fix specs test
* semver-lock
* code review updates
---------
Co-authored-by:
Matt Solomon <matt@mattsolomon.dev>
Showing
Please register or sign in to comment