ethereum-optimism / optimism

Optimism is Ethereum, scaled.
https://optimism.io
MIT License
5.65k stars 3.28k forks source link

Add support for pre-existing OPSM #12099

Closed mslipper closed 1 month ago

mslipper commented 1 month ago

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.

Closes https://github.com/ethereum-optimism/platforms-team/issues/285.

protolambda commented 1 month ago

Opened a ticket to track the broadcast sender <> deployer key check: https://github.com/ethereum-optimism/optimism/issues/12127