What's Changed in op-contracts/v7.0.0-rc.4
- feat(contracts-bedrock): scale ResourceConfig to fit smaller gasLimits (v7.0.0)
- Merge pull request #20981 from ethereum-optimism/jm/revert-xlayer-layout-fix
- Revert "fix(l2cm): preserve XLayer LiquidityController minters across upgrade "
- fix(l2cm): preserve XLayer LiquidityController minters across upgrade
- fix: filter prerelease OPCM release tags (cherry-pick of #20617)
- feat: make l2cm default path in devfeature bitmap
- chore(ci): clean up contracts CI and RPC secrets
- fix(contracts): reject oz v5 initializable in opcm
- chore(rust/scr): update superchain registry for rust crates
- feat: zk go deployer
- fix(contracts): fail closed resolving semver target branch
- chore(contracts-bedrock): drop v1 mention from _decodeDisputeGameImpl natspec
- interop: add OPContractsManagerMigrationValidator for post-migration validation
- fix(op-fetcher): guard against zero mipsImpl before calling oracle()
- chore(contracts-bedrock): fix contract typos
- Revert "chore(rust): bump revm to 38 "
- Revert "Delete .circleci/Untitled "
- docs(opcm): acknowledge Initializable upgrade limitations
- test(contracts): cover VerifyOPCM runSingle lazy setup
- fix: ZK Game Quality Review Fixes
- chore(rust): bump revm to 38
- test: add ZKDisputeGame unit and integration test coverage
- fix(contracts-bedrock): skip lint fix during CI
- Delete .circleci/Untitled
- feat(contracts): enforce EIP-7825 gas cap in NUT bundle validation
- feat(l2cm): support X Layer LiquidityController in L2CM upgrade path
- feat: add SP1Adapter
- fix: add intrinsic gas deduction to l2 fork tests
- chore(contracts): remove 7 unreferenced interfaces
- test(contracts): skip VerifyOPCM_Run_Test on coverage only, not unoptimized
- chore(contracts): remove unused SchemaResolver abstract base
- fix(contracts): skip ZKDisputeGame in VerifyOPCM when feature disabled
- refactor: revenue share cleanup
- fix: l2cm fma followup
- feat: opcm zk roots
- chore(deployer): remove OPCMv1 migration, upgrade, and dev feature code
- contracts: delete unused interop contracts
- fix(l2cm): guard CGT feature activation and liquidity controller renounce ownership
- test: zk dispute game factory and registry
- docs: fix broken markdown links and stale README references
- fix(l2cm): address audit small fixes
- chore: remove OpcmImpl compat shim, ReadSuperchainDeployment v1 fields, CI, docs
- Delete
OptimismPortalInteropcontract and all references - feat: shared dispute game migration for interop
- Add 'rust/op-revm/' from commit 'c79483d5d04949e8a99dc3c11c79a28825236396'
- contracts: remove unused SafeTestTools helpers
- feat(nuts): add update-nuts and verify-nuts commands
- contracts: remove unused test state variables
- contracts: remove unused test events
- contracts: remove unused dispute game and FFI test helpers
- contracts: remove unused TestERC1271Wallet mock
- contracts: remove deploy config JSON dependency for tests
- refactor(contracts): remove OPCMv1 from all Solidity code
- chore(ct): replace Go nut-bundle-check with git diff
- fix: VerifyOPCM super game checks
- feat: migrate to superdispute game
- fix(l2cm): revert instead of silently skipping non-upgradeable predeploys
- refactor(contracts): separate v4/v5 init slot clearing in L2ContractsManagerUtils
- fix(ct): resolve correct target branch in merge queue
- chore(contracts-bedrock): suppress solc 0.8.31 deprecation warnings
- feat(l1block): add system customization feature flags
- fix: l2cm ir infromational findings
- docs(contracts): clarify semver bumps are once per PR
- test(opcm): add double upgrade call test
- test(contracts): improve LegacyMintableERC20 test coverage and quality
- test(contracts): improve ETHLiquidity test coverage
- fix: l2cm specs
- fix: l2cm IR low fixes
- fix(contracts-bedrock): build contracts before generating NUT bundle
- contracts: remove interop bridge contracts from L2ContractsManager
- feat: new zk dispute game
- interop: deploy and fund ETH bridge contracts at activation
- feat: add l2 fork testing framework
- fix: remove l2pa version check in l2cm
- chore(contracts-bedrock): replace pre-pr with pr (check-fast) in CI and justfile
- feat: Implement L2 Dev Flags
- feat(contracts): add ProxyAdminOwnedBase to L2 proxied contracts with initialize()
- fix: staking audit fixes
- Revert "refactor(contracts): move ProxyAdminOwnedBase to src/universal/ "
- refactor(contracts): move ProxyAdminOwnedBase to src/universal/
- chore(contracts): bump superchain-registry
- chore: add nut bundle check to just pr
- test(contracts): convert GovernanceToken tests to fuzz tests
- feat: enable setting CANNON_KONA as respected game type
- feat: add NUT Bundle generation
- feat: register zk proofs feature flag
- chore(contracts-bedrock): deduplicate test helpers
- docs(contracts): move l2 upgrade contracts spec from specs repo
- test(contracts): fix testFuzz_params_validValues_succeeds rejection rate
- fix(ci): retry L1 archive RPC call in print-pinned-block-number
- fix(contracts): address audit findings 14, 6, 8, 13, 19
- fix(contracts): forward-compatible OZ v5 Initializable in upgrade (Finding 22)
- test(contracts): reuse ProxyAdmin tests on L2ProxyAdmin for backwards compatibility
- contracts: implement onlyDelegateCall and add tests for audit fixes
- fix(contracts-bedrock): dedupe unoptimized profile mock logic into Setup
- fix(contracts): require interop dev feature for migrate (Finding 21)
- contracts: add documentation for audit findings #2, #3, #7, #12, #15, #16
- fix(contracts-bedrock): remove artifact pulling, use unoptimized builds for CI tests
- fix(contracts-bedrock): make contracts CI reliable
- feat: Add L2CM implementation
- fix: various contracts-bedrock CI issues
- Add Karst hard fork activation
- sc-feat: policy engine staking ordering
- test(contracts): improve DelayedWETH test coverage with fuzz tests
- feat: add L2ProxyAdmin
- fix(contracts): improve DelayedWETH loading for fork tests
- feat: Add Conditional L2 Deployer
- fix: only allow enabling permissioned game types in opcmv2 deployment…
- chore: return migrator address on ReadImplementationAddresses output
- fix: SuperchainConfig comments and test refactoring
- fix: gaps in VerifyOPCM
- fix: safer safes interface and deploy script
- test(contracts): enhance OptimismMintableERC721 test coverage with fuzz tests
- feat: no beta tags in production upgrade
- fix: get delayedweth from opcm implementations and remove proxy fetch
- fix: generic revert error in upgrade scripts
- fix: add code lenght check for ReadSuperchainDeployment and tests
- test: make sure OPCMv2 can upgrade while paused
- maint: better comments for migration function
- feat: have ASR only use IDisputeGame
- feat(contracts): add OPCMV2 batch upgrade invariant test
- feat(op-deployer): port deploymips to forge and remove old code
- contracts: Switch DisputeGameFactory to use CREATE2 when creating games.
- feat(op-deployer): add runWithBytes to missing contracts
- Enable UInt64 lint check and fix remaining violations
- feat: update withdrawal command for output roots in super proposals
- Add 'op-reth/' from commit '910fed941c45240f04e95513fe76eb7dcb034ddd'
- Add 'alloy-op-evm/' from commit '7447d30eb078be987e73bbe379588ba53d0d710b'
- feat: Add support for Interop Migration using OPCM v2
- test(contracts): add coverage for isValidProof and memoryProofOffset in MIPS64Memory
- refactor: standarize opcmv2 version check
- fix: pdg implementations to non-zero address on v2 codepath
- contracts: Restrict proposed block numbers to uint64
- feat: remove CGT instruction from OPCMv2
- feat: generic system for running past upgrades
- Foundry Versioning Policy
- feat: remove v1 dispute games
- Avoid fallback download of artifacts when not on develop
- refactor: consolidate DummyCaller contracts into single generic implementation
- test(contracts): improve OptimismSuperchainERC20Factory test coverage
- test(contracts): improve DisputeMonitorHelper test coverage
- feat: have check runner retry snapshots clean
- test: DeployImplementations and opchain additional tests
- Make contractsContainer exist only in utils
- feat: have upgrade test blocks update every week
- test(contracts): convert MintManager tests to fuzz tests for broader coverage
- fix: add compiler restriction for StorageSetter to align profiles
- Remove go 1.24 feature flag, leaving SysGetRandom syscall enabled
- chore(ctb): move init bond value to CommonTest
- feat: Add
add-game-type-opcm-v2command to op-deployer - asterisc: Remove asterisc contracts
- test(contracts): improve OptimismMintableERC20Factory test coverage
- test(contracts): convert OptimismMintableERC20 tests to fuzz tests
- feat: support interop migration in OPCMv2
- test(contracts): add revert tests for Preinstalls library functions
- feat(abip): improve skip message for tests skipped by features
- test: OPCMv2 upgrade
- feat(dispute): add rootClaimByChainId(uint256) for L2 chain ID lookup
- feat: Add OPCM v2 Support for chain upgrades to op-deployer
- chore: improve comments accuracy
- feat: revert opcm v1 & add opcmv2 op-deployer support
- test: update succinct tests to follow our conventions
- test: use a custom Test contract for makeAddr
- feat: add ReadSuperchainDeployment support for opcm v2
- proofs: Add provable output roots to super DGs
- ci: Fix contracts test-upgrade test junit output
- verify opcm v2
- chore: bump opcmv2 to v7
- feat: have OPCMv2 check upgrade ordering version
- all: Remove cannon-kona dgv2 feature flags
- feat: add cgt to opcmv2
- Add style guide for manual getters on struct typed storage variables
- feat: contract check runner
- fix(ci): support external PRs for force-use-fresh-artifacts label
- feat: have SystemConfig store a ref to last used OPCM
- feat: have OPCM upgrade allowances be upgrade specific
- test: add tests for OPCMv2.deploy
- chore: update fees depositor address and min withdrawal amount on genesis
- feat(op-deployer): use op-deployer build for publish-artifacts
- test(contracts): add AddressAliasHelper coverage and fix SystemConfig flaky test
- feat: break out OPCMv2 utils into helper contracts
- feat: versioning updates
- feat: deploy safersafes script
- feat: add CGT system feature
- feat: add OPCMv2 tests for existing behaviors
- Add Openchain import on CI
- feat: add new check for strict pragma
- contracts: Replace mock contracts with vm.mock functions
- op-challenger: Update list-games sub command to support optimistic zk games
- test(contracts): improve DevFeatures test coverage with fuzz tests
- feat: have OPCMv2 revert if user tries to provide address(0) as SystemConfig for upgrade
- Use vm.prank(address,bool) for delegateCall, remove DelegateCaller contract
- feat: add support for blockscout in VerifyOPCM
- fix(scripts): check interfaces and libraries in testContractExistsInFile
- Add DeployFeesDepositor script
- feat: OPCM v2
- fix(scripts): skip validation for missing test artifacts
Full Changelog: op-contracts/v6.0.0-rc.2...op-contracts/v7.0.0-rc.4
🚢 Docker Image: https://us-docker.pkg.dev/oplabs-tools-artifacts/images/op-contracts:v7.0.0-rc.4