• Matthew Slipper's avatar
    Add support for pre-existing OPSM (#12099) · 06f1406e
    Matthew Slipper authored
    * 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: default avatarMatt Solomon <matt@mattsolomon.dev>
    06f1406e
Name
Last commit
Last update
..
EAS Loading commit data...
L1 Loading commit data...
L2 Loading commit data...
cannon Loading commit data...
dispute Loading commit data...
governance Loading commit data...
legacy Loading commit data...
libraries Loading commit data...
periphery Loading commit data...
safe Loading commit data...
universal Loading commit data...
vendor Loading commit data...