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.
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, theContractsRelease
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 viaeth_call
. To expose the deployment output following the Superchain deployment, I updated theDeployed
event to emit the ABI-encoded bytes of theDeployOutput
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.Closes https://github.com/ethereum-optimism/platforms-team/issues/285.