Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge with op-develop #72

Merged
merged 308 commits into from
Oct 29, 2024
Merged

Merge with op-develop #72

merged 308 commits into from
Oct 29, 2024

Conversation

qizhou
Copy link

@qizhou qizhou commented Oct 24, 2024

git merge with 5ecd2db

Be ready for devnet and FP testing

protolambda and others added 30 commits September 26, 2024 22:46
* op-supervisor: cleanup cross-L2 safety types

* op-node: fix interop test
* fix: Update absolute prestate

* fix: just pre-pr

* fix: absolute prestate updated as part of assertions.

* chore: semver lock

---------

Co-authored-by: Matt Solomon <[email protected]>
* ci: Add Cannon STF verify recurring job

* setup remote docker

* change make dir

* fix cwd
* Accept /put path as described in spec

In addition to the currently used `/put/` path to ease the migration.
See ethereum-optimism#11499.

* alt-DA: write to /put path as described in spec

The spec mandates using `/put` and not `/put/`, so that is what we
should do.

Warning: This will break DA solutions that only accept `/put/` at the
moment. It is recommended that DA solutions support both paths for a
while, so that updating OP-stack can happen independently of the exact
DA implementation version.

Closes ethereum-optimism#11499.
Certain constructor parameters were not being inserted correctly.
Although this didn't cause a failure during deployment, it did
cause Kontrol tests to fail.
The devnet tests aren't providing a lot of value. They use our outdated Python devnet tooling, and only run a tiny subset of our overall test suite. They are also are flaky and slow to run. To prioritize improving the DevX of the monorepo, this PR removes the devnet tests from CCI.
Adds a few remaining interfaces required before we can migrate
OPCM to use interfaces over source contracts.
…ism#12069)

* op-node/rollup/derive: Implement Holocene Frame Queue

* add FrameQueue test

* use non-nil context

* address reviews, refactor frame loading and pruning
The build fails when jq is not installed with
a mysterious error message, so improve the error message.
This will help debugging for new contributors.
)

* Cleanups for production, add standard addresses

This PR:

- Cleans up the intent file to be more suitable for production deployments
- Fixes various bugs encountered while preparing `op-deployer` for use against predeployed OPCM contracts
- Adds a new CLI command to bootstrap a new OPCM deployment against an existing set of implementation contracts

Note on Solidity changes:

- Since the code for custom gas tokens is in the monorepo but isn't included in an official contracts release yet, we had to add interfaces for the pre-CGT contracts to the Solidity codebase.
- The `DeployImplementations` script looks at the release identifier to determine whether or not it should use the pre- or post-CGT interfaces.

* goimports

* lints

* fix tests

* revert tx manger changes

* Update packages/contracts-bedrock/src/L1/interfaces/IL1StandardBridgeV160.sol

Co-authored-by: Maurelian <[email protected]>

* Update packages/contracts-bedrock/src/L1/interfaces/IL1CrossDomainMessengerV160.sol

Co-authored-by: Maurelian <[email protected]>

* use new opcm

* fix test

* semver

* semver

* bump semver

* update manager deployment

* natspec

* SEMVER

---------

Co-authored-by: Maurelian <[email protected]>
* fixes

* op-supervisor: head db init fix, logging, op-node debug logging

* interop: track recent safety data

* Early integration and refactor of Views and SafetyIndex

* update for rebase

* rename RecentSafetyIndex ; reorganize

* refactor Pointer method on iterator

* logging

* Delete unused Tracking Code ; New ChainsDB.Safest

* fix naming miss

* fix mistaken line deletion

* Update op-supervisor/supervisor/backend/safety/safety.go

Co-authored-by: protolambda <[email protected]>

* Add issue numbers to TODO ; Address Proto Comments

---------

Co-authored-by: protolambda <[email protected]>
…um-optimism#12182)

* add missing assertion and remove unneeded todo comments

* chore: semver lock + pre-pr-no-build

* chore: rename function
We no longer need these interfaces now that we have the actual
interfaces.
* Updates to OPCM and OPCMInterop

* Update DeployImpls and OPCM Tests

* remove some unused imports

* Undo mapping type change

* Undo DeployOutput type change

* Semver and snapshots
* feat: Rewrite natspec checker in Go

Rewrites the `semver-natspec-check-no-build` Just command in Go to reduce runtime. This PR reduces runtime for this check from ~1m30s to about 3 seconds post-compilation.

* remove old script

* add unit tests

* rename test

* review updates
* add retry.Do0

* update code to use Do0
…thereum-optimism#12201)

Trying to reproduce the missing prestate failure.  Also now runs hourly instead of 4 hourly to increase chances of finding a failing case.
…eum-optimism#12116)

* test: Transfer to finalSystemOwner rather than SystemOwnerSafe

* feat: Fix comment references to ProxyAdmin
Fixes an annoying bug inside of make-summary-deployment that
only became apparent with a recent commit that caused state diffs
to start to appear under the address of Deploy.s.sol.
Kontrol profile was originally just looking at the L1 contracts
which caused issues now that we're deploying via vm.getCode.
* cannon: Support F_GETFD cmd to fcntl.

* cannon: Update fuzz test expectations.

* cannon: Update MIPS.t.sol

* cannon: Introduce a new state version for supporting get_fd.

Switches singlethreaded prestate to use .bin.gz instead of json since it now needs to detect the new state version.

* cannon: Don't override the cannon version.

* Update semver-lock.

* cannon: Update tests to detect old versions but only check writing and parsing for the currently supported versions.

* cannon: Load old version from cannon docker image

* cannon: Improve logging.

* cannon: Restore cannon version arg.

* Fix contrac semvers.

* cannon: Rename singlethreaded-getfd to just singlethreaded-2.

We could just go to using the state version number directly, but particularly the difference between singlethreaded and multithreaded feels useful to keep.

* cannon: Fix comment.

* Update semver again.
* contracts-bedrock: bump forge-std

Bumps forge-std to the latest release

https://github.com/foundry-rs/forge-std/tree/v1.9.3

This will help us to delete some solidity code and move
to using cheatcodes in its place.

* build: fix

* gas-snapshot: update
* ci: Cannon v2 STF verify

* ci: remove op-e2e-cannon-tests dep
…thereum-optimism#12130)

* test(deploy): Deploy a distinct ProxyAdmin for Superchain contracts

* fix: only set address manager for OP Chain's ProxyAdmin

* fix: typo

* test: fix create2 collision between ProxyAdmins

* fix: lint

* fix: move setupOpChainAdmin() before setupOpAltDA

The DA challenge contract needs a proxy admin too

* feat: use create2AndSave for ProxyAdmin

* fix: Do not double save the superchain ProxyAdmin

* Fix whitespace

Co-authored-by: Matt Solomon <[email protected]>

---------

Co-authored-by: Matt Solomon <[email protected]>
roberto-bayardo and others added 22 commits October 22, 2024 17:34
Refactors the op-service/client package a fair bit to ensure config options are more consistently applied.
…rc20 implementation (ethereum-optimism#12476)

* feat: add superchain erc20 bridge (#61)

* feat: add superchain erc20 bridge

* fix: interfaces and versions

* refactor: optimism superchain erc20 redesign (#62)

* refactor: use oz upgradeable erc20 as dependency

* chore: update interfaces

* fix: tests based on changes

* refactor: remove op as dependency

* feat: add check for supererc20 bridge on modifier

* chore: update tests and interfaces

* chore: update stack vars name on test

* chore: remove empty gitmodules file

* chore: update superchain weth errors

* test: add superchain erc20 bridge tests (#65)

* test: add superchain erc20 bridge tests

* test: add optimism superchain erc20 beacon tests

* test: remove unnecessary test

* test: tests fixes

* test: tests fixes

* chore: update missing bridge on natspec (#69)

* chore: update missing bridge on natspec

* fix: natspecs

---------

Co-authored-by: agusduha <[email protected]>

* fix: remove superchain erc20 base (#70)

* refactor: update isuperchainweth (#71)


---------

Co-authored-by: agusduha <[email protected]>

* feat: rename mint/burn and add SuperchainERC20 (#74)

* refactor: rename mint and burn functions on superchain erc20

* chore: rename optimism superchain erc20 to superchain erc20

* feat: create optimism superchain erc20 contract

* chore: update natspec and errors

* fix: superchain erc20 tests

* refactor: make superchain erc20 abstract

* refactor: move storage and erc20 metadata functions to implementation

* chore: update interfaces

* chore: update superchain erc20 events

* fix: tests

* fix: natspecs

* fix: add semmver lock and snapshots

* fix: remove unused imports

* fix: natspecs

---------

Co-authored-by: 0xDiscotech <[email protected]>

* fix: refactor zero check (#76)

* fix: pre pr

* chore: add new solady version and import it for erc20

* fix: undo forge std changes

* chore: re run pre pr script

* fix: semver natspec check failure (#79)

* fix: semver natspec check failure

* fix: ignore mock contracts in semver natspec script

* fix: error message

* feat: add crosschain erc20 interface (#80)

* feat: add crosschain erc20 interface

* fix: refactor interfaces

* fix: superchain bridge natspec (#83)

* fix: superchain weth natspec (#84)

Co-authored-by: 0xng <[email protected]>
Co-authored-by: 0xParticle <[email protected]>
Co-authored-by: gotzenx <[email protected]>

* fix: stop inheriting superchain interfaces (#85)

* fix: stop inheriting superchain interfaces

* fix: move events and erros into the implementation

* fix: make superchainERC20 inherits from crosschainERC20

* fix: superchain bridge rename (#86)

* fix: fee vault compiler error (#87)

* fix: remove unused imports

* chore: run pre-pr and update vendor interface

* fix: refactor common errors (ethereum-optimism#90)

* fix: refactor common errors

* fix: remove unused version

* feat: add permit2 on optimism superchain erc20

* chore: run pre-pr script

* fix: reuse unauthorized error (ethereum-optimism#92)

* fix: superchain erc20 factory conflicts

* fix: rename crosschain functions (ethereum-optimism#94)

* chore: run pre-pr

* chore: run pre-pr

* chore: run pre-pr

* feat: add new tests on optimism superchain erc20

* fix: vars and params naming on newly added tests

* fix: var name

* feat: support permit2 on optimism superchain erc20 and upgrade solady's erc20 implementation (ethereum-optimism#97)


---
Co-Authored-by: AgusDuha <[email protected]>

* chore: use ierc20 alias for ierc20 solady interface (ethereum-optimism#108)

---------

Co-authored-by: AgusDuha <[email protected]>
Co-authored-by: agusduha <[email protected]>
Co-authored-by: 0xng <[email protected]>
Co-authored-by: 0xParticle <[email protected]>
Co-authored-by: gotzenx <[email protected]>
…#12577)

* op-deployer: Add support for inspecting l2 semvers

* goimports

* add factory targets
* op-deployer: Add support for inspecting l2 semvers

* goimports

* add factory targets

* op-service: Add omitempty to EIP1559Params

These parameters are only valid for Holocene, and cause errors during unmarshaling on older op-node versions.
… tags (ethereum-optimism#12538)

Generates a versions.json to record which prestate came from each tag and compares it to the releases.json.
Adds a couple of releases missed from releases.json and removes governanceApproved from some releases which were not deployed to op-mainnet or submitted to governance.
…mism#12585)

Kona changed the default log level so the -v is undesirable now.
* op-chain-ops: Marshal withdrawalnetwork as int

* fix test

* lint

* fix other test

* swap networks
…imism#12589)

Cleans up some things to enable Superchain Registry validation:

- Removes the foundry deployer address used by L2Genesis.sol from the outputted allocs file.
- Removes storage slots with zero values from any state dump.
Adds rule tests for all semgrep rules and fixes a few bugs that
were found during testing. Moves semgrep rules into the semgrep
folder without the . prefix because the prefix caused semgrep to
be unable to run the tests.
* small fix

* Change version and hash
Copy link

@blockchaindevsh blockchaindevsh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, by comparing git diff 718b9b018dd821b0bd205df5c6d02ac7dbbba77d cd66e3ab6f and git diff 5ecd2db op-es-merge

@qizhou qizhou merged commit 2a4b5e8 into op-es Oct 29, 2024
@qizhou qizhou deleted the op-es-merge branch October 29, 2024 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.