* feat: l2cm impl l2contractsmanager (#837)
* feat: add initial iteration of L2ContractsManager
* feat: add network configuration structs
* feat: load full config for L2ContractsManager
* feat: implement L2CM::_apply
* feat: add gas price oracle
* refactor: move L2CM types to library
* fix: upgrade ProxyAdmin predeploy
* chore: enforce delegatecall for L2CM::upgrade
* feat: add conditional upgrade for CGT
* refactor: remove non-proxied predeploys
* chore: renamed l2cm
* refactor: l2cm address comments (#839)
* refactor: rename _fullConfig to _loadFullConfig to match OPCM v2
* chore: remove non-proxied weth from implementations struct
* test: add config preservation test
* test: add CGT specific tests
* refactor: avoid casting network config values to address
* test: add test cases
* chore: pr ready (#844)
* chore: remove unnecesary casting on L2CM
* feat: add interface for XForkL2ContractsManager
* chore: add natspec to XForkL2ContractsManager
* chore: pr ready
* refactor: moves util functions out of L2CM implementation (#848)
* feat: l2cm address comments (#850)
* chore: add comment clarifying use `useCustomGasToken`
* chore: upgrade both native native asset liquidity and liquidity controller predeploys together
* feat: prohibit downgrading predeploy implementations
* refactor: make isCustomGasToken part of the network full config
* fix: add missing import
* fix: use FeeVault legacy getters for backward compat
* chore: update name XForkL2ContractsManager to L2ContractsManager
* feat: conditionally skip some predeploys based on them being supported in a given chain (#857)
* fix: l2cm address comments (#872)
* chore: add todo tracking removal of L2ProxyAdmin skips
* chore: add natspec comment for isPredeployNamespace
* chore: use vm.prank(address,bool) to prank a delegatecall
* chore: add todo for dev flags for CrossL2Inbox and L2ToL2CrossDomainMessenger
* feat: allow immutables for L2CM in semgrep rules
* chore: pr ready
* test: L2CM verify testing (#874)
* test: add coverage test for predeploy upgrades
* chore: update test natspec
* chore: just pr ready
* chore: L2CM round comments (#877)
* refactor: move helper function into Predeploys.s.sol
* fix: add conditional deployer to L2CM
* chore: update to l1block and l1blockCGT
* test: fixes issue where OptimismSuperchainERC20 tests fail due to profile ambiguity
* chore: just pr ready
* chore: l2cm round comments2 (#883)
* fix: move code length check out of isUpgradeable
* chore: inline fullCofig_.isCustomGasToken initialization
* chore: add public getters for the implementations on the L2CM
* chore: remove XForkL2ContractsManager sol rule exclusion
* test: add downgrade prevention test suite
* chore: just pr ready
* refactor: check for address 0 instead code length
* Revert "refactor: check for address 0 instead code length"
This reverts commit 1fa8694.
* chore: remove non-needed check
* chore: remove unused function in tests (#884)
* refactor: l2cm group impls (#885)
* refactor: remove individual getters in favor of a unified one
* test: add test for getImplementations
* test: add OZ v5 Initializable compatibility in L2ContractsManagerUtils (#887)
Description
Update the labeler action to add a new label (
2-reviewers) for sensitive paths.Add a new action (
require-reviewers) which fails unless a PR labeled with2-reviewershas 2 or more reviews.Additional context
Instead of the inverse match I went this route as this check need to a reviewer count higher then the repo settings.
The
require-reviewerscheck needs to be made required on thedevelopbranch for this action's intent to be enforced.