• Mark Tyneway's avatar
    feat: MCP L1 (#9058) · e6ef3a90
    Mark Tyneway authored
    * contracts-bedrock: improve documentation for CrossDomainMessenger, L1CrossDomainMessenger, L2CrossDomainMessenger
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: fix comments in CrossDomainMessenger
    
    * contracts-bedrock: change type of legacy getter for L1CrossDomainMessenger PORTAL
    
    * contracts-bedrock: add tests for L1CrossDomainMessenger
    
    * contracts-bedrock: add tests for L2CrossDomainMessenger
    
    * op-bindings: make for L1CrossDomainMessenger
    
    * contracts-bedrock: update snapshots
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: reorder isProxy in ChainAssertions for L1CrossDomainMessenger
    
    * contracts-bedrock: use predeploys in Deploy script for L1CrossDomainMessenger
    
    * op-bindings: make for L1CrossDomainMessenger
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: update snapshots
    
    * contracts-bedrock: drop unnecessary parameter in L1CrossDomainMessenger initialize
    
    * contracts-bedrock: change type of otherMessenger in CrossDomainMessenger
    
    * contracts-bedrock: drop constructor arg for L1CrossDomainMessenger, L2CrossDomainMessenger
    
    * contracts-bedrock: fix test for L1CrossDomainMessenger
    
    * op-bindings: make for CrossdomainMessenger, L1CrossdomainMessenger, L2CrossdomainMessenger
    
    * op-chain-ops: check fetched addresses from L1CrossDomainMessenger against DeployConfig
    
    * contracts-bedrock: drop redundant tests for L1CrossDomainMessenger
    
    * contracts-bedrock: drop redundant test for L2CrossDomainMessenger
    
    * contracts-bedrock: fix documentation for L2CrossDomainMessenger
    
    * contracts-bedrock: update slither report
    
    * contracts-bedrock: update snapshots
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: fix rebase
    
    * op-chain-ops: drop unnecessary parameter in L1CrossDomainMessenger L1 upgrade
    
    * contracts-bedrock: move check out of config existence clause in L1 upgrade script for L1CrossDomainMessenger
    
    * contracts-bedrock: move immutables to storage in OptimismPortal
    
    * contracts-bedrock: update Deploy script to support changes to OptimismPortal
    
    OptimismPortal had its immutables moved to storage
    
    * contracts-bedrock: update tests to support changes to OptimismPortal
    
    OptimismPortal had its immutables moved to storage
    
    * contracts-bedrock: fix Deploy script's function for OptimismPortal
    
    Since values are set at initialization and not at deployment, ChainAssertions.checkOptimismPortal reverts if called at this point with the dependent contracts. Instead, this call should be done immediately after initialization (as is already done in the Deploy script).
    
    * op-chain-ops: update upgrade script for OptimismPortal
    
    OptimismPortal had its immutable variables moved to storage
    
    * contracts-bedrock: fix OptimismPortal spec in Authorization.t.sol
    
    Addresses the fact that OptimismPortal's spec for initialize should include the parameters for the variables moved from immutables into storage
    
    * contracts-bedrock: bump semver for OptimismPortal, improve comments
    
    * contracts-bedrock: set L2OutputOracle upgradeToAndCall initialize version back to 2 in tests
    
    * contracts-bedrock: extend constructor test for OptimismPortal
    
    * contracts-bedrock: set initialize version back to 2 in OptimismPortal's test_upgradeToAndCall_upgrading_succeeds
    
    * contracts-bedrock: add more requirements in OptimismPortal deploy script
    
    * contracts-bedrock: represent contracts with addresses in initializeOptimismPortal of deploy script
    
    * contracts-bedrock: improve labeling of variables in l1.go for OptimismPortal
    
    * contracts-bedrock: reintroduce ChainAssertions for deployment of OptimismPortal
    
    this is possible thanks to introducing a flag for ChainAssertions to know whether the contract in question has been already initialized or not
    
    * op-bindings: make OptimismPortal bindings
    
    * contracts-bedrock: update semver-lock for changes to OptimismPortal
    
    * contracts-bedrock: update slither report
    
    * op-bindings: make OptimismPortal
    
    abigen version was changed to 1.10.16-stable
    
    * contracts-bedrock: make snapshots
    
    * contracts-bedrock: add test for constructor of OptimismPortal
    
    * contracts-bedrock: improve dev comments in OptimismPortal tests
    
    * contracts-bedrock: drop isInitialized in ChainAssertions for OptimismPortal
    
    now isProxy is used directly
    
    * contracts-bedrock: minor improvement in test for OptimismPortal
    
    * contracts-bedrock: tests for OptimismPortal updated to use non-legacy getters
    
    * contracts-bedrock: leverage impl in constructor test for OptimismPortal
    
    * contracts-bedrock: update semver for OptimismPortal
    
    additionally improve documentation in file
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: update slither report
    
    * op-bindings: make for OptimismPortal
    
    * contracts-bedrock: improve documentation in OptimismPortal
    
    * contracts-bedrock: update slither report
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: reorder isProxy in ChainAssertions for OptimismPortal
    
    * contracts-bedrock: replace dead address by DEFAULT_L2_SENDER from constants in tests
    
    * contracts-bedrock: drop redundant test for OptimismPortal
    
    already covered in Initialize.t.sol
    
    * contracts-bedrock: update slither report
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: drop redundant test for OptimismPortal
    
    this is covered in a different PR refactoring Initializable.t.sol
    
    * contracts-bedrock: fix Initializable.t.sol
    
    * op-chain-ops: check fetched addresses from OptimismPortal against DeployConfig
    
    * contracts-bedrock: drop redundant line in OptimismPortal
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: update slither-report
    
    * op-bindings: make
    
    * contracts-bedrock: update slither report
    
    * contracts-bedrock: move immutables to storage in StandardBridge
    
    * contracts-bedrock: update L1StandardBridge to support changes to StandardBridge
    
    * contracts-bedrock: update L2StandardBridge to support changes to StandardBridge
    
    * contracts-bedrock: update Deploy script to support changes to StandardBridge, L1StandardBridge, L2StandardBridge
    
    StandardBridge, L1StandardBridge, L2StandardBridge had its immutables moved to storage
    
    * contracts-bedrock: add TODO comment to L1StandardBridge
    
    * contracts-bedrock: update tests to support changes to StandardBridge
    
    StandardBridge had its immutables moved to storage
    
    * contracts-bedrock: update tests to support changes to L1StandardBridge
    
    L1StandardBridge had its immutables moved to storage
    
    * contracts-bedrock: fix Deploy script for L1StandardBridge
    
    Since values are set at initialization and not at deployment, ChainAssertions.checkL1StandardBridge reverts if called at this point with the dependent contracts. Instead, this call should be done immediately after initialization (as is already done in the Deploy script). Additional bug fixes are included, including the removal of unnecessary require checks originally obtained from the legacy PR (#6573)
    
    * contracts-bedrock: fix test for L1StandardBridge
    
    test_initialize_fix_succeeds is removed, which was originally obtained (out of context) from the legacy PR (#6573)
    
    * op-chain-ops: update upgrade script for L1StandardBridge
    
    L1StandardBridge had its immutable variables moved to storage
    
    * contracts-bedrock: fix L1StandardBridge spec in Authorization.t.sol
    
    Addresses the fact that L1StandardBridge spec for initialize should include the parameters for the variables moved from immutables into storage
    
    * contracts-bedrock: remove requires from __StandardBridge_init in StandardBridge
    
    necessary for defining messenger address as address(0) in constructor of L1StandardBridge, for example
    
    * contracts-bedrock: make L2StandardBridge backwards compatible with immutable L2 deploy script
    
    This is done by reintroducing a parameter for the address of the other bridge in the constructor of L2StandardBridge
    
    * contracts-bedrock: update Initializable.t.sol with parameters for L2StandardBridge
    
    * op-chain-ops: introduce storage values for L2StandardBridge
    
    corresponding to the immutable variables moved into storage in the contract
    
    * contracts-bedrock: improve comments for StandardBridge
    
    * contracts-bedrock: bump semver for L2StandardBridge, improve comments
    
    * contracts-bedrock: bump semver of L1StandardBridge, improve comments
    
    additionally, the messenger's address is set to address(0) at initialization
    
    * contracts-bedrock: reintroduce ChainAssertions for L1StandardBridge at deploy
    
    * op-chain-ops: improve labeling of vars in upgrade script for L1StandardBridge
    
    * contracts-bedrock: update semver-lock
    
    * op-bindings: make for StandardBridge, L1StandardBridge, L2StandardBridge
    
    * contracts-bedrock: make snapshots for L1StandardBridge, L2StandardBridge
    
    * op-bindings: make for L1StandardBridge, L2StandardBridge
    
    * op-chain-ops: fix otherBridge in L1StandardBridge upgrade script
    
    * contracts-bedrock: replace isInitialized by isProxy in ChainAssertions for L1StandardBridge
    
    * contracts-bedrock: add constructor test for L1StandardBridge
    
    * contracts-bedrock: extend initialize test for L2StandardBridge
    
    * contracts-bedrock: improve documentation for StandardBridge
    
    * contracts-bedrock: shorten gap in StandardBridge
    
    to preserve existing storage layout
    
    * contracts-bedrock: update snapshots for L1StandardBridge, L2StandardBridge
    
    * op-bindings: make for StandardBridge, L1StandardBridge, L2StandardBridge
    
    * contracts-bedrock: update semver-lock
    
    * op-chain-ops: reorder storage values
    
    maintain consistency with previous order
    
    * contracts-bedrock: add tests for L1StandardBridge
    
    * contracts-bedrock: add tests for L2StandardBridge
    
    * contracts-bedrock: change !isProxy isProxy order in ChainAssertions for L1StandardBridge
    
    * contracts-bedrock: use predeploys in Deploy script for L1StandardBridge
    
    * contracts-bedrock: use predeploys to obtain otherBridge in L1StandardBridge
    
    * contracts-bedrock: use predeploys to obtain otherBridge in L2StandardBridge
    
    * op-bindings: make for L1StandardBridge, L2StandardBridge
    
    * contracts-bedrock: drop redundant test (already in Initialize)
    
    L1 proxy is already tested for in intiailize, but L1 impl not
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: update snapshots
    
    * op-chain-ops: check fetched addresses from L1StandardBridge against DeployConfig
    
    * contracts-bedrock: drop redundant test for L1StandardBridge
    
    * contracts-bedrock: drop redundant test for L2StandardBridge
    
    * contracts-bedrock: kwargs syntax update in StandardBridge
    
    * contracts-bedrock: restore empty test contract for L1StandardBridge
    
    * op-chain-ops: fix after rebase
    
    * op-chain-ops: fix l1 initialize for L1StandardBridge
    
    * op-chain-ops: move check out of clause for L1 upgrade path L1StandardBridge
    
    * contracts-bedrock: fix constructor
    
    * contracts-bedrock: update snapshots
    
    * op-bindings: make
    
    * op-chain-ops: fix immutables
    
    * op-chain-ops: fix rebase wrt immutables of L2StandardBridge
    
    * op-chain-ops: fix by dropping duplicate import in L1 upgrade
    
    * contracts-bedrock: update Deployer's loadInitializedSlot
    
    if contract is a proxy, it now gets the implementation address using either EIP1967Helper or AddressManager (for ResolvedDelegateProxy)
    
    * contracts-bedrock: define constants in EIP1967Helper and drop Constants import
    
    this allows us to not have to update the version of Arithmetic, ResourceMetering, and Burn, which would otherwise clash with Deployer.sol
    
    * contracts-bedrock: use interface for AddressManager instead of updating version directly
    
    * contracts-bedrock: move immutables to storage in ERC721Bridge
    
    * contracts-bedrock: update L1ERC721Bridge to support changes to ERC721Bridge
    
    * contracts-bedrock: update L2ERC721Bridge to support changes to ERC721Bridge
    
    * contracts-bedrock: update Deploy script to support changes to L1ERC721Bridge
    
    L1ERC721Bridge had its immutables moved to storage
    
    * contracts-bedrock: remove requirements in __ERC721Bridge_init
    
    This is needed because a call to __ERC721Bridge_init is triggered by the constructors of L1ERC721Bridge and L2ERC721Bridge. However, since the variables required to be non-null by __ERC721Bridge_init are set to null values in those constructors, this will call revert and the set-ups of L1ERC721Bridge and L2ERC721Bridge will fail. This commit fixes that issue.
    
    * contracts-bedrock: fix Deploy script for L1ERC721Bridge
    
    Since values are set at initialization and not at deployment, ChainAssertions.checkL1ERC721Bridge reverts if called at this point with the dependent contracts. Instead, this call should be done immediately after initialization (as is already done in the Deploy script).
    
    * op-chain-ops: update upgrade script for L1ERC721Bridge
    
    L1ERC721Bridge had its immutable variables moved to storage
    
    * contracts-bedrock: fix L1ERC721Bridge spec in Authorization.t.sol
    
    Addresses the fact that L1ERC721Bridge spec for initialize should include the parameters for the variables moved from immutables into storage
    
    * contracts-bedrock: update semver for L1ERC721Bridge, L2ERC721Bridge
    
    * op-chain-ops: redefine L2ERC721Bridge immutable config
    
    immutable variables were removed
    
    * op-chain-ops: introduce storage values for L2ERC721Bridge
    
    corresponding to the immutable variables moved into storage in the contract
    
    * op-chain-ops: relabel variables in L1ERC721Bridge upgrade script
    
    * contracts-bedrock: fix annotation in ERC721Bridge
    
    * contracts-bedrock: reintroduce ChainAssertions for L1ERC721Bridge at deploy time
    
    * contracts-bedrock: reintroduce parameter to L2ERC721Bridge constructor
    
    this makes the changes backwards compatible with existing deploy scripts
    
    * op-chain-ops: fix bug, missing parameter for L2ERC721Bridge deploy
    
    * contracts-bedrock: make snapshots for L1ERC721Bridge, L2ERC721Bridge
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: move repeated code in ChainAssertions's checkL1ERC721Bridge
    
    repeated code is moved outside the if-else block
    
    * contracts-bedrock: replace isInitialized by isProxy in ChainAssertions for L1ERC721Bridge
    
    * op-chain-ops: fix bug in L1ERC721Bridge upgrade script
    
    * contracts-bedrock: update gap in ERC721Bridge
    
    done to maintain existing storage layout
    
    * contracts-bedrock: update snapshots for L1ERC721Bridge, L2ERC721Bridge
    
    * contracts-bedrock: update semver-lock
    
    * op-bindings: make for L1ERC721Bridge, L2ERC721Bridge
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: change !isProxy isProxy order in ChainAssertions for L1ERC721Bridge
    
    * contracts-bedrock: add tests for L1ERC721Bridge
    
    * contracts-bedrock: add tests for L2ERC721Bridge
    
    * contracts-bedrock: fix test for L1ERC721Bridge
    
    * op-chain-ops: reorder setting of storage variables in config
    
    makes the order consistent with previous order for immutables
    
    * contracts-bedrock: use address from predeploys in Deploy script for L1ERC721Bridge
    
    * contracts-bedrock: add require and tests for ERC721Bridge
    
    * contracts-bedrock: update semver-lock
    
    * op-bindings: make for L1ERC721Bridge, L2ERC721Bridge
    
    * contracts-bedrock: set otherBridge to null address in constructor of L1ERC721Bridge
    
    * contracts-bedrock: hardcode messenger in L2ERC721Bridge to Predeploys
    
    * contracts-bedrock: drop require for bridge to be null in ERC721Bridge
    
    * op-bindings: make for L1ERC721Bridge, L2ERC721Bridge
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: change type of otherBridge in ERC721Bridge
    
    * contracts-bedrock: drop constructor arg, use Predeploy in L1ERC721Bridge
    
    * op-bindings: make
    
    * contracts-bedrock: drop redundant tests
    
    * contracts-bedrock: fix rebase
    
    * op-chain-ops: check fetched addresses from OptimismPortal against DeployConfig
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: make snapshots
    
    * op-chain-ops: drop unnecessary parameter for l1ERC721BridgeABI in L1 upgrades
    
    * op-chain-ops: move check out of restrictive clause in L1 upgrade for L1ERC721Bridge
    
    * contracts-bedrock: fix after rebase Initializable
    
    * op-chain-ops: fix op-upgrade
    
    * contracts-bedrock: introduce addresses of L1 system contracts
    
    * contracts-bedrock: update Deploy script for changes to SystemConfig
    
    * contracts-bedrock: update Initializable test for changes to SystemConfig
    
    * contracts-bedrock: update invariant test for changes to SystemConfig
    
    * contracts-bedrock: update test_initialize_values_succeeds for SystemConfig test
    
    * contracts-bedrock: add new tests for SystemConfig
    
    * contracts-bedrock: update ChainAssertions for SystemConfig
    
    * contracts-bedrock: add salt to deployment of SystemConfig
    
    * contracts-bedrock: update Specs.t.sol with new methods on SystemConfig
    
    * op-bindings: make for SystemConfig
    
    * contracts-bedrock: update snapshots
    
    * contracts-bedrock: update invariant docs
    
    * contracts-bedrock: improve support for startBlock in systemConfig
    
    * contracts-bedrock: reorder isProxy in ChainAssertions for SystemConfig
    
    * op-chain-ops: check fetched addresses from SystemConfig against DeployConfig
    
    * contracts-bedrock: update default startBlock number for SystemConfig
    
    * contracts-bedrock: update tests for SystemConfig
    
    * op-chain-ops: improve comparison over a non-null config for SystemConfig
    
    * contracts-bedrock: set start block in constructor and not initialize for SystemConfig
    
    * contracts-bedrock: drop parameter from SystemConfig initialize
    
    * contracts-bedrock: add new tests for SystemConfig startBlock
    
    * contracts-bedrock: update snapshots
    
    * contracts-bedrock: update invariant docs
    
    * op-bindings: make
    
    * op-chain-ops: drop unnecessary import in l1 upgrade
    
    * contracts-bedrock: fix SystemConfig tests
    
    * contracts-bedrock: use START_BLOCK_SLOT for startBlock var in SystemConfig
    
    * contracts-bedrock: fix test
    
    * contracts-bedrock: update snapshots
    
    * op-bindings: make
    
    * op-chain-ops: fix SystemConfig upgrade
    
    * contracts-bedrock: drop public StartBlock setter function in SystemConfig
    
    * contracts-bedrock: update semver-lock
    
    * contracts-bedrock: update snapshots
    
    * op-bindings: make
    
    * op-chain-ops: lint
    
    * contracts-bedrock: update OptimismPortal version
    
    * contracts-bedrock: improve ChainAssertions for OptimismPortal
    
    * contracts-bedrock: reorder variable definition in L1CrossDomainMessenger
    
    this is so the definition of the variable ´version´ happens after all other variables have been defined (more consistent with general pattern)
    
    * contracts-bedrock: bump semver of L1CrossDomainMessenger
    
    * contracts-bedrock: bump semver of L2CrossDomainMessenger
    
    * contracts-bedrock: improve test code for L1ERC721Bridge
    
    * contracts-bedrock: restore Arithmetic.sol solc version
    
    * contracts-bedrock: update START_BLOCK_SLOT in SystemConfig constructor
    
    * contracts-bedrock: bump semver of SystemConfig
    
    * contracts-bedrock: update semver-lock
    
    * op-bindings: make
    
    * contracts-bedrock: drop unnecessary import in L2ERC721Bridge.t.sol
    
    * op-chain-ops: upgrades sets startBlock from config
    
    * contracts-bedrock: add spacing to ERC721Bridge
    
    * contracts-bedrock: add spacing to OptimismMintableERC20Factory
    
    * contracts-bedrock: update snapshots
    
    * contracts-bedrock: fix forge-std version following rebase
    
    * contracts-bedrock: update gas-snapshot
    
    * contracts-bedrock: update semver-lock
    
    * op-bindings: make
    
    * contracts-bedrock: change type of spacer_0_2_20 to bytes30
    
    * contracts-bedrock: regenerate
    
    * op-bindings: build
    
    * contracts-bedrock: fix validate-spacers.ts
    
    * contracts-bedrock: fix validate-spacers.ts
    
    * op-chain-ops: extended pause op-upgrade
    
    * indexer: pad deposit tx to fix out-of-gas error
    
    ---------
    Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
    e6ef3a90
Name
Last commit
Last update
..
api Loading commit data...
api-ts Loading commit data...
bigint Loading commit data...
client Loading commit data...
cmd/indexer Loading commit data...
config Loading commit data...
database Loading commit data...
e2e_tests Loading commit data...
etl Loading commit data...
migrations Loading commit data...
node Loading commit data...
ops Loading commit data...
processors Loading commit data...
.gitignore Loading commit data...
Dockerfile Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
docker-compose.yml Loading commit data...
indexer.go Loading commit data...
indexer.toml Loading commit data...