• 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
..
clients Loading commit data...
cmd Loading commit data...
contracts Loading commit data...
crossdomain Loading commit data...
deployer Loading commit data...
devkeys Loading commit data...
foundry Loading commit data...
genesis Loading commit data...
interopgen Loading commit data...
script Loading commit data...
solc Loading commit data...
srcmap Loading commit data...
.gitignore Loading commit data...
Makefile Loading commit data...