-
Notifications
You must be signed in to change notification settings - Fork 163
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
Prepare for v0.5.0 release #237
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Overview Updates the sepola devnet 0 deploy config's absolute prestate value to match that of `op-program/v1.0.0`'s tag. ### Verification 1. `git checkout op-program/v1.0.0` 1. In the monorepo root, run `make reproducible-prestsate` 1. Compare the resulting prestate hash with the one in this PR.
* ci: `ci-builder:0.49.0` Includes a bump of slither ethereum-optimism/optimism#10411 * ci: slither github action bump version
* op-chain-ops: delete memdb The simple in memory statedb implementation that was backed by a genesis has served us well but is no longer required since we build the genesis files using foundry. This was originally used to enable simple execution to deploy contracts and then dump into a `genesis.json`. Keeping this memdb around will only bloat PRs that update the geth version as they may change the interface to the statedb. Instead of using the memdb interface, the genesis is modified directly. * lint: fix * style: way better Co-authored-by: protolambda <[email protected]> * build: fix * build: fix --------- Co-authored-by: protolambda <[email protected]>
* Revert "Revert "Merge pull request #8242 from ethereum-optimism/go-docker-targets"" This reverts commit d972c46. It also fixes up some conflicts / inconsistencies, since op-conductor was added after the original revert. * ops: experimental cross-build fixes * Retrieve git tag in Circle CI and use to set op version within docker image * Update dispute-mon and da-server to use new docker build flow * Fix GIT_VERSION script in Circle CI config.yml * Update ops-bedrock docker-compose to use new docker build flow * Load pre-built op-challenger image in devnet tests * Save op-challenger.tar to avoid docker rebuild in devnet tests * Add Circle CI job for check-cross-platform * Allow env var to override VERSION in Makefiles * Pass version to op-program components except op-program-client * Wrap all docker-bake variable names in quotes --------- Co-authored-by: protolambda <[email protected]>
Since slither seems to be failing consistently in CI, try bumping the versions of the tooling. Bumps to latest slither github action release: https://github.com/crytic/slither-action/releases/tag/v0.4.0 Meant to fix the slither issue seen in ethereum-optimism/optimism#10408 ``` [-] SARIF output enabled, writing to results.sarif. [-] Slither config provided: packages/contracts-bedrock/slither.config.json [-] SLITHERARGS provided. Running slither with extra arguments 'forge clean' running (wd: /github/workspace/packages/contracts-bedrock) 'forge config --json' running 'forge build --build-info --skip */test/** */scripts/** --force' running (wd: /github/workspace/packages/contracts-bedrock) Traceback (most recent call last): File "/opt/slither/bin/slither", line 8, in <module> sys.exit(main()) File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 753, in main main_impl(all_detector_classes=detectors, all_printer_classes=printers) File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 859, in main_impl ) = process_all(filename, args, detector_classes, printer_classes) File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 107, in process_all ) = process_single(compilation, args, detector_classes, printer_classes) File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 80, in process_single slither = Slither(target, ast_format=ast, **vars(args)) File "/opt/slither/lib/python3.9/site-packages/slither/slither.py", line 156, in __init__ sol_parser.parse_top_level_items(ast, path) File "/opt/slither/lib/python3.9/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 326, in parse_top_level_items get_imported_scope = self.compilation_unit.get_scope(import_directive.filename) File "/opt/slither/lib/python3.9/site-packages/slither/core/compilation_unit.py", line 282, in get_scope filename = self._crytic_compile_compilation_unit.crytic_compile.filename_lookup( File "/opt/slither/lib/python3.9/site-packages/crytic_compile/crytic_compile.py", line 283, in filename_lookup raise ValueError(f"{filename} does not exist") ValueError: lib/openzeppelin-contracts/contracts/utils/Context.sol does not exist ```
* fix(op-dispute-mon): log the claim id to validate the claim during investigation * fix(op-dispute-mon): log the clock value as well
* adding fault-wd-mon * adding faultproof wd-mon * adding faultproof wd-mon * fixing docker file * fixing how we get disputegame given a withdrawal log * code review fix * fix type
* bedrock-devnet: add useInterop flag * op-chain-ops: add useInterop flag * op-node: add useInterop flag to config * contracts-bedrock: add useInterop flag to DeployConfig * contracts-bedrock: add useInterop flag to Predeploy's getName * contracts-bedrock: add useInterop flag to L2Genesis * contracts-bedrock: add useInterop flag to Predeploy's test * contracts-bedrock: add useInterop flag to CommonTest * contracts-bedrock: add useInterop flag to Setup * Revert "op-chain-ops: add useInterop flag" This reverts commit 83c63cc63bcccf15c8f2e7d7c4f74d0316abcdae. * Revert "op-node: add useInterop flag to config" This reverts commit c3617f9fd8ae4777cf4f13dd399167f0718cd9d1. * Revert "bedrock-devnet: add useInterop flag" This reverts commit 858257c8666af70586e6f40a510b2a0ff3056bcb. * contracts-bedrock: use L1Block in Predeploys for L1BlockInterop * contracts-bedrock: update gas-snapshot * op-chain-ops: add UseInterop flag to genesis DeployConfig * contracts-bedrock: remove useInterop argument in Predeploys * op-chain-ops: make UseInterop flag optional Co-Authored-By: protolambda <[email protected]> --------- Co-authored-by: protolambda <[email protected]>
* fix(op-dispute-mon): unresolved claim logging * fix(op-dispute-mon): lints * fix(op-dispute-mon): unresolved claim logging * fix(op-dispute-mon): move resolution response buffer to a constant
…357) * op-node: Increase MaxChannelBankSize with Fjord This also creates a ChainSpec object which is responsible for returning protocol parameters. We use a different object than the rollup.Config because the config is primarily a disk representation & does not concern itself with protocol constants. * op-node: Increase MaxRLPBytesPerChannel with Fjord
* stash resolution status * fix(op-dispute-mon): resolution status metric * fix(op-dispute-mon): add logs for resolvable games
* cannon: remove final dep on bindings Removes the last dependency that cannon has on `op-bindings/bindings`. This is done my creating reusable code for reading foundry artifacts from disk. This code should be reusable between any service that wants to read the foundry artifacts from disk. This includes roundtrip tests for JSON serialization of the foundry artifacts. * op-chain-ops: address semgrep golang/go#22967
* challenger: Pull large preimages from tx logs * challenger: Add a few more fetcher unit tests * challenger: Implement review fixes related to slice handling, types * challenger: Clean up fetcher changes
* op-challenger: Make l2-eth-rpc required for all trace types. Add rollupEndpoint to NewConfig signature since it was already always required. * op-e2e: Remove rollup and l2-eth-rpc params from WithCannon and WithAlphabet
* op-challenger: Make l2-eth-rpc required for all trace types. Add rollupEndpoint to NewConfig signature since it was already always required. * op-e2e: Remove rollup and l2-eth-rpc params from WithCannon and WithAlphabet * op-challenger: Integrate challenging L2 block numbers
…ssenger) (#10417) * bedrock-devnet: add useInterop flag * op-chain-ops: add useInterop flag * op-node: add useInterop flag to config * contracts-bedrock: add useInterop flag to Predeploy's getName * contracts-bedrock: add useInterop flag to L2Genesis * contracts-bedrock: add useInterop flag to Predeploy's test * contracts-bedrock: add useInterop flag to Setup * Revert "op-chain-ops: add useInterop flag" This reverts commit 83c63cc63bcccf15c8f2e7d7c4f74d0316abcdae. * Revert "op-node: add useInterop flag to config" This reverts commit c3617f9fd8ae4777cf4f13dd399167f0718cd9d1. * Revert "bedrock-devnet: add useInterop flag" This reverts commit 858257c8666af70586e6f40a510b2a0ff3056bcb. * contracts-bedrock: use L1Block in Predeploys for L1BlockInterop * contracts-bedrock: remove useInterop argument in Predeploys * op-chain-ops: fix TestConfigDataMarshalUnmarshal * contracts-bedrock: add CrossL2Inbox, L2ToL2CrossDomainMessenger to L2Genesis script * contracts-bedrock: add tests for interop branch of L2Genesis * Revert "op-chain-ops: fix TestConfigDataMarshalUnmarshal" This reverts commit fbc60c1fed796d03837dd674406b3aa63445deeb.
* contracts-bedrock: fix deposit gas limit Ensures that the gas limit is high enough for the system deposit to go through. The previous gas limit was slightly too small. This ups it so that we are sure the system deposit goes through. * contracts-bedrock: fix test
Adds extra monitoring events into the `OptimismPortal2` for a dispute game being blacklisted and the resepected game type being set.
* feat(op-dispute-mon): contract creation failure metric * fix(op-dispute-mon): log the game address for easier investigation
* feat(ctb): Add new move type to FDG for OR counters Adds a potential new move type to the `FaultDisputeGame` that allows for a participant to reveal the preimage of the claimed output root to display to the dispute game that the claimed L2 block number does not match up with the block number that the block header within the output root commits to. The root output can be challenged with the new special move type iff: 1. The passed `OutputRootProof` hashes to equal the claimed output root. 1. The passed Header RLP hashes to equal the block hash within the `OutputRootProof` above. 1. The claimed block number in the dispute game does not equal the block number that the output root commits to. If there is a successful challenge with the new move type, that claim itself is inserted as a special case counter. In `resolveClaim`, the contract will always consider the creator of the L2 block challenge the winner of the bond. Notably, this only applies for the root claim subgame. * feat(ctb): Transition `RLPReader` to 4byte errors (#10439) * feat(ctb): Transition `RLPReader` to 4byte errors * semver * update summary * portal semver * extra checks
The [finalizeDeposit](https://github.com/ethereum-optimism/optimism/blob/b9eb669aa5dfc36204ce2167da2e5ab8bbde61de/packages/contracts-bedrock/src/L2/L2StandardBridge.sol#L147) function is left over from the legacy OVM style standard bridge. It is impossible to be called as the bridge has moved to the modern interface which is based on `finalizeBridgeETH` or `finalizeBridgeERC20`. Methods actually used in bridge: - [finalizeBridgeETH](https://github.com/ethereum-optimism/optimism/blob/b9eb669aa5dfc36204ce2167da2e5ab8bbde61de/packages/contracts-bedrock/src/universal/StandardBridge.sol#L333) - [finalizeBridgeERC20](https://github.com/ethereum-optimism/optimism/blob/b9eb669aa5dfc36204ce2167da2e5ab8bbde61de/packages/contracts-bedrock/src/universal/StandardBridge.sol#L379) Proof that finalizeDeposit is not used anywhere. Its defined in the L2StandardBridge and otherwise only in tests. ``` git grep -rin finalizeDeposit snapshots/abi/L2StandardBridge.json:272: "name": "finalizeDeposit", src/L2/L2StandardBridge.sol:147: function finalizeDeposit( test/L2/L2StandardBridge.t.sol:523: /// @dev Tests that `finalizeDeposit` succeeds. It should: test/L2/L2StandardBridge.t.sol:527: function test_finalizeDeposit_depositingERC20_succeeds() external { test/L2/L2StandardBridge.t.sol:544: l2StandardBridge.finalizeDeposit(address(L1Token), address(L2Token), alice, alice, 100, hex""); test/L2/L2StandardBridge.t.sol:547: /// @dev Tests that `finalizeDeposit` succeeds when depositing ERC20 with custom gas token. test/L2/L2StandardBridge.t.sol:548: function test_finalizeDeposit_depositingERC20_customGasToken_reverts() external { test/L2/L2StandardBridge.t.sol:559: l2StandardBridge.finalizeDeposit(address(L1Token), address(L2Token), alice, alice, 100, hex""); test/L2/L2StandardBridge.t.sol:562: /// @dev Tests that `finalizeDeposit` succeeds when depositing ETH. test/L2/L2StandardBridge.t.sol:563: function test_finalizeDeposit_depositingETH_succeeds() external { test/L2/L2StandardBridge.t.sol:579: l2StandardBridge.finalizeDeposit{ value: 100 }( test/L2/L2StandardBridge.t.sol:584: /// @dev Tests that `finalizeDeposit` reverts when depositing ETH with custom gas token. test/L2/L2StandardBridge.t.sol:585: function test_finalizeDeposit_depositingETH_customGasToken_reverts() external { test/L2/L2StandardBridge.t.sol:594: l2StandardBridge.finalizeDeposit(address(0), Predeploys.LEGACY_ERC20_ETH, alice, alice, 100, hex""); test/L2/L2StandardBridge.t.sol:597: /// @dev Tests that `finalizeDeposit` reverts if the amounts do not match. test/L2/L2StandardBridge.t.sol:610: /// @dev Tests that `finalizeDeposit` reverts if the receipient is the other bridge. test/L2/L2StandardBridge.t.sol:623: /// @dev Tests that `finalizeDeposit` reverts if the receipient is the messenger. ``` There cannot be third party integrations since it is `onlyBridge`, meaning only the `L1StandardBridge` can call it. This commit removes the tests and the function from the `L2StandardBridge`. This is part of refactoring as we go, ensuring that the code stays clean. Tend the garden.
## Overview Exposes the `l2BlockNumberChallenger` in the fault dispute game.
feature(op-node): update qanet config
Co-authored-by: bnoieh <[email protected]>
Merge upstream v1.7.7
xiangdotli
approved these changes
Aug 28, 2024
rickyyangz
approved these changes
Aug 29, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
v0.5.0
This release includes code merging from the upstream version v1.7.7 along with several fixs and improvements.
Fjord fork from upstream is included. It is set to be activated on both the opBNB Mainnet and Testnet environments according to the following schedule:
All mainnet and testnet nodes must upgrade to this release before the hardfork time.
Also note that the
op-geth
should be upgraded to v0.5.0 accordingly, check this for more details.User Facing Changes
--wait-node-sync
added to op-batcher (default false), indicates if during startup, the batcher should wait for a recent batcher tx on L1 to finalize (via more block confirmations). This should help avoid duplicate batcher txs--wait-node-sync
added to op-proposer (default false), indicates if during startup, the proposer should wait for the rollup node to sync to the current L1 tip before proceeding with its driver loop--compression-algo
added to op-batcher (default zlib), user can choose brotli algo after Fjord fork--l1.rpc-max-cache-size
added to op-node (default 1000), so user can config the the maximum cache size of the L1 clientWhat's Changed
Docker Images
Full Changelog: v0.4.4...v0.5.0