Skip to content

Add support for pre-existing OPSM#12099

Merged
mslipper merged 8 commits intodevelopfrom
feat/deployer-existing-opsm
Sep 25, 2024
Merged

Add support for pre-existing OPSM#12099
mslipper merged 8 commits intodevelopfrom
feat/deployer-existing-opsm

Conversation

@mslipper
Copy link
Collaborator

@mslipper mslipper commented Sep 25, 2024

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.

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.
@mslipper mslipper requested review from a team as code owners September 25, 2024 04:25
@mslipper mslipper force-pushed the feat/deployer-existing-opsm branch from 0c14379 to 9c6f681 Compare September 25, 2024 16:40
@mslipper mslipper enabled auto-merge September 25, 2024 19:26
@protolambda
Copy link
Contributor

Opened a ticket to track the broadcast sender <> deployer key check: #12127

@mslipper mslipper added this pull request to the merge queue Sep 25, 2024
Merged via the queue into develop with commit 06f1406 Sep 25, 2024
@mslipper mslipper deleted the feat/deployer-existing-opsm branch September 25, 2024 19:42
samlaf pushed a commit to samlaf/optimism that referenced this pull request Nov 10, 2024
* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants