This release enables atomic, cross-chain upgrades and mitigates potential exploitation risks during emergency, multi-chain upgrades by transitioning chain-specific deployment configuration variables from immutables into storage. It also extends SystemConfig
to contain the addresses of the network’s contracts.
Governance post: https://gov.optimism.io/t/upgrade-proposal-6-multi-chain-prep-mcp-l1/7677
The full set of L1 contracts included in this release is:
- AddressManager: Latest (this has no version) (No change from prior version)
- L1CrossDomainMessenger: 2.3.0
- L1ERC721Bridge: 2.1.0
- L1StandardBridge: 2.1.0
- L2OutputOracle: 1.8.0
- OptimismMintableERC20Factory: 1.9.0
- OptimismPortal: 2.5.0
- SystemConfig: 1.12.0
- SuperchainConfig: 1.1.0 (No change from prior version)
- ProtocolVersions: 1.0.0 (No change from prior version)
Contracts Changed
The following contracts would be changed as part of this upgrade. Each contract links to the pull request where the changes were made, and the bullet points corresponds to the immutable variables moved into state (in format {type} {varName}
):
- OptimismPortal (#8629)
L2OutputOracle l2Oracle
SystemConfig systemConfig
- L1CrossDomainMessenger (#8631)
OptimismPortal portal
CrossDomainMessenger otherMessenger
- L1StandardBridge (#8632)
CrossDomainMessenger messenger
StandardBridge otherBridge
- L1ERC721Bridge (#8633)
CrossDomainMessenger messenger
StandardBridge otherBridge
- OptimismMintableERC20Factory (#8700)
address bridge
- L2OutputOracle (#8720)
uint256 submissionInterval
uint256 l2BlockTime
address challenger
address proposer
uint256 finalizationPeriodSeconds
- SystemConfig (#8772)
Partial Changelog
- contracts-bedrock: Move broadcast modifier to inner deploy func by @maurelian in #9130
- contracts-bedrock: delete unused
sync()
method by @tynes in #9100 - feat: MCP L1 by @tynes in #9058
Full Changelog: op-contracts/v1.2.0...op-contracts/v1.3.0