chore: sync develop#136
Merged
agusduha merged 61 commits intosc-feat/add-shared-lockboxfrom Nov 22, 2024
Merged
Conversation
* improve tests * improve tests * fixes
* fix: semver locking. * fix: semver locking. * feat: opcm impl contracts now type safe. * feat: fixing test. * fix: removing unused imports. * fix: address didn't need to be payable. * fix: moving all smart contract changes to first pr. * fix: pr comments addressed. * fix: removed InputContracts struct. * fix: ran pre-pr * fix: deploy implementations renaming version. * fix: adding solidity changes to this pr. * fix: adding v160 initializer back in. * fix: removed branching logic from opcm. * fix: removed SystemConfigV160. * opcm-redesign: op-deployer changes * fix: linting fix. * fix: semver lock --------- Co-authored-by: Matthew Slipper <me@matthewslipper.com>
* remove unnecessary check * fixes
* ensure bcast.From == mgr.From() * address comment * fix for create2
…m#12916) * op-batcher: fix channel duration timeout management Previously, we would use L1 data to help track channel durations. For example, the batcher would be configured to post data every hour. We update a global state variable with the latest l1 origin of a channel when it closed, and compute the deadline for that channel using a duration delta starting at that l1 origin timestamp. Since we changed the way autoDA switching works, a channel can be _closed_ (due to a duration timeout or other reason) and this will cause the l1 origin state variable to move forward, extending the deadline ready for the next channel. Crucially, with autoDA switching nowadays, the closed channel will not always be submitted on chain (it can be discarded and the blocks requeued). If it is discarded, the channel duration timeout has already been extended. The fix for this is to update the global state variable at channel submission time, not channel closing time. * add regression test for channel duration timeouts during requeue
…reorg handling (ethereum-optimism#12390) * use a queue.Queue for channelBuilder.frames * remove pop and push terminology * proliferate queue.Queue type * simplify requeue method * undo changes to submodule * sketch out new arch https://www.notion.so/oplabs/op-batcher-re-architecture-114f153ee162803d943ff4628ab6578f * add TODO * add channelManager.pruneSafeBlocks method and integrate into main loop * fix frameCursor semantics * fixup tests * avoid Rewind() in tests * only rewind cursor in rewind (never move it forward) * fix assertions * prune channels whose blocks are now safe * handle case when rewinding a channel with no blocks this is strange, I don't think we should expect channels with frames but no blocks... * add clarification * implement channelManager.pendinBlocks() method * fix pruning logic * simplify pruneChannels * simplify pruneSafeBlocks * add unit tests for pruneSafeBlocks * fix pruneSafeBlocks to avoid underflow * improve test * add unit tests for pruneChannels * introduce handleChannelTimeout and simplify channel.TxConfirmed API * factor out channelManager.rewindToBlockWithHash * change test expectation * do more pruning in test * Replace "clean shutdown" behaviour with waitNodeSync() Instead of optimizing for a clean shutdown (which we couldn't guarantee anyway), this change optimizes for code simplicity. This change also helps us restrict the amount of code which mutates the channelQueue (removePendingChannel was doing removal of channels at arbitrary positions in the queue). The downside is that we may end up needlessly resubmitting some data after the reset. Reorgs are rare, so it makes sense to optimize for correctness rather than DA costs here. * Add readme and architecture diagram * don't panic when there is a safe chain reorg * fix test * readability improvements * only clear state after waiting for node to sync * resize image * tweak readme * typo * rewindToBlockWithHash never moves cursor forward * use s.pendingBlocks() * add log line * check there are blocks when handling timeout * rename HasFrame() to HasPendingFrame() * fixup test * improve readme * link to open issues by tag * add log when main loop returns * pass blockID to rewindToBlock and panic if block does not exist * don't remove all channels when a channel times out keep older channels, it's possible that they also time out * use newSafeHead.L1Origin in Clear() when pruning blocks * clarify comment * use warn log level on safe chain reorg pruning, and unify handling for safe head above unsafe head * update panic message * extend test coverage and fix bug * rename test blocks * simplify HasPendingFrame() method * simplify implementation of RewindFrameCursor * activate dormant test * ensure pending_blocks_bytes_current metric is tracked properly * cover metrics behaviour in test using new TestMetrics struct * extend test coverage to channelManager.handleChannelTimeout * add comment to TxFailed * rename test fn * point to e2e tests in readme. * readme: performance -> throughput * improve channel_manager_test to assert old channels are not affected by requeue or timeout * fix handleChannelTimeout behaviour We were trimming older channels and keeping new ones. We need to trim newer channels and keep old ones. Fixes associated test (see previous commit). * tighten up requirements for invalidating a channel * replace requeue with handleChannelInvalidated
* removing duplicate default bootnode * adding conduit bootnodes * removing duplicate bootnode
* feat:Add more sync tests Signed-off-by: Chen Kai <281165273grape@gmail.com> * feat:add more sync tests Signed-off-by: Chen Kai <281165273grape@gmail.com> * fix:fix failed tests Signed-off-by: Chen Kai <281165273grape@gmail.com> * fix:add copyright credit and remove unused code Signed-off-by: Chen Kai <281165273grape@gmail.com> * fix:fix copyright format Signed-off-by: Chen Kai <281165273grape@gmail.com> * fix code review suggestions Signed-off-by: Chen Kai <281165273grape@gmail.com> --------- Signed-off-by: Chen Kai <281165273grape@gmail.com>
…um-optimism#12885) Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.8.0 to 0.9.0. - [Commits](golang/sync@v0.8.0...v0.9.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix upgrade-semgrep * fix upgrade-semgrep
…-optimism#12946) - Refactor the semver inspector so that it can be called from outside the CLI - Adds a a canonical L2 genesis file for v1.6.0, and a unit test to assert that new chains deployed using v1.6.0 have the right L2 genesis.
* improve tests * fixes * fixes... * Apply suggestions from code review Co-authored-by: smartcontracts <kelvin@optimism.io> * fixes --------- Co-authored-by: smartcontracts <kelvin@optimism.io>
* improve tests * fixes * fixes * fixes * Apply suggestions from code review Co-authored-by: smartcontracts <kelvin@optimism.io> * fixes --------- Co-authored-by: smartcontracts <kelvin@optimism.io>
* fix challenge struct natspec * semver bump * semver bump * semver bump
…-optimism#12960) * security-reviews: Add 3Doc report on Canon F_GETFD changes. * security-reviews: Update README.
Fix typo in build script comment for clarity
CI must passing should be CI must pass.
- fixing the audit commits and descriptions so they map correctly
Fix typo in comment for Keccak256Commitment.Encode method
…timism#12881) * typo corr 2022-02-02-inflation-vuln.md * typo corr README.md * typo corr RUNBOOK.md
* flatten out batcher goroutines * move wg increment to parent fn * ensure mainloop closes before receipts loop * add comments * pass a context to both loops * remove debug lines * clean up mutex handling in receiptsLoop * don't need to set default value the first time * avoid writing to Logger while holding mutex * typo * increase log level and include tx.ID * fix changes from merge, hoist throttling loop goroutine launch to driver * call done on waitgroup in throttlingLoop * move function around hoping this makes the diff nicer
…12430) * implement batchSubmitter.checkExpectedProgress * remove buffer variable * add warning logs when calling waitNodeSyncAndClearState * push method down into channel manager and add test * clarify SyncStatus documentation * improve TestChannelManager_CheckExpectedProgress make parameters "tighter" / more realistic and check an extra case
…ethereum-optimism#12919) * Reset Derivation when Supervisor is Behind * Disable Batcher Throttling in Interop local-devnet
* migrate close-stale github action * using external script * completing script * removing old github action * example only * removing versions * removing tag-service
* feat(ctb): `RISCV.sol` semver-lock Co-Authored-By: Minhyuk Kim <kimminhyuk1004@gmail.com> Co-Authored-By: Taem Park <wwwee98@gmail.com> Co-Authored-By: Park Changwan <pcw109550@gmail.com> Co-Authored-By: protolambda <proto@protolambda.com> * snapshots * diff with remote in CI * schedule diff job * Update .circleci/config.yml Co-authored-by: Matt Solomon <matt@mattsolomon.dev> * remove check changed --------- Co-authored-by: Minhyuk Kim <kimminhyuk1004@gmail.com> Co-authored-by: Taem Park <wwwee98@gmail.com> Co-authored-by: Park Changwan <pcw109550@gmail.com> Co-authored-by: protolambda <proto@protolambda.com> Co-authored-by: Matt Solomon <matt@mattsolomon.dev>
* improve delayedWeth test and coverage * improve delayedWeth test and coverage * fix DataAvailabilityChallenge failing fuzz test
…#12996) * improve universal and libraries tests and coverage * fixes
…-optimism#12982) Bumps ethereum/client-go from v1.14.11 to v1.14.12. --- updated-dependencies: - dependency-name: ethereum/client-go dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* contracts: remove op-nft Remove the `op-nft` package from the contracts package. None of these contracts are maintained and can be moved to another repo if necessary. The purpose of this commit is to reduce compilation time. Less files to compile means less compilation time. * fix: semver lock step - ran pre-pr. * fix: use added/modified filter for heavy fuzz Updates the heavy fuzz filter for CI to only check for added or modified contracts, now excluding deleted or moved contracts. --------- Co-authored-by: Blaine Malone <blainemalone01@gmail.com> Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>
* improve optimismportal(2) test coverage * improve optimismportal(2) test coverage * more tests, fixes
* improve dispute game tests and coverage * fixes
…thereum-optimism#12983) Bumps [github.com/kurtosis-tech/kurtosis/api/golang](https://github.com/kurtosis-tech/kurtosis) from 1.4.1 to 1.4.2. - [Release notes](https://github.com/kurtosis-tech/kurtosis/releases) - [Changelog](https://github.com/kurtosis-tech/kurtosis/blob/main/CHANGELOG.md) - [Commits](kurtosis-tech/kurtosis@1.4.1...1.4.2) --- updated-dependencies: - dependency-name: github.com/kurtosis-tech/kurtosis/api/golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* op-node: Create metrics to record if sequencer is active * op-node: Update transactions_sequenced_total metric --------- Co-authored-by: protolambda <proto@protolambda.com>
) - Enables support for deploying tagged versions against new chains, but behind a huge warning that requires user input to bypass. Since our tagged release versions do not contain all implementations, using op-deployer in this way will deploy contracts that haven't been governance approved. Since this workflow is useful for development but bad for prod, I've added support for it but users have to bypass a large warning that describes the risks. - Validates the hashes of tagged version artifacts after downloading them. This prevents users from downloading tampered versions of the artifacts from GCS.
…#13000) * make riscv compile without the optimizer turned on * bump riscv.sol * bump riscv.sol
…2985) Test hard fork offset overrides Co-authored-by: Vinod Damle <vinod@oplabs.co>
…ations (ethereum-optimism#13012) This is adding op-program/v1.4.0-rc.1 with absolute prestate hash 0x03925193e3e89f87835bbdf3a813f60b2aa818a36bbe71cd5d8fd7e79f5e8afe to the releases.json file. This release contains Sepolia Holocene activation times for OP, Base, Mode, Zora, BUT NOT Metal.
* build: add just modules A lot of our build recipes share similar structures. Move some of these to modules so we can control them centrally. * build: add Makefile deprecation helper This allows us to implement deprecated Makefiles as: DEPRECATED_TARGETS := ... include ../just/deprecate.mk * build(docker): add just modules to docker context We need to make sure our build framework is included in the docker build context. Also make sure just is part of the builder image. * build(op-batcher): migrate build to just
* cannon: Port go map tests * cannon: Port pool_test.go * cannon: Port a few more mutex tests * cannon: Port waitgroup_test.go * cannon: Port oncefunc_test.go (in progress) * cannon: Port atomic_test.go (in progress) * cannon: Port value_test.go (in progress) * cannon: Fix atomic tests by using a test mock * cannon: Fix test fail behavior * cannon: Move test util to a shared module * cannon: Use common testutil throughout * cannon: Fix failing tests * cannon: Add sanity check test program for test runner utils * cannon: Add more util tests, fix step counts * cannon: Rename test util method * cannon: Fix panic, error handling in testutil * cannon: Dedupe test running code * cannon: Simplify testutil interface * cannon: Mark mt tests as slow * cannon: Cut debugging code from test * cannon: Validate gc complete output * cannon: Synchronize access to bool values
agusduha
approved these changes
Nov 22, 2024
This file contains hidden or 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
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.
No description provided.