forked from ethstorage/optimism
-
Notifications
You must be signed in to change notification settings - Fork 1
update #6
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
Open
JustXxx
wants to merge
6,535
commits into
JustXxx:develop_4ary
Choose a base branch
from
ethereum-optimism:develop
base: develop_4ary
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
update #6
Conversation
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
* ci: split bake workflow in protected/unprotected * ci: address review feedback Signed-off-by: falcorocks <14293929+falcorocks@users.noreply.github.com> --------- Signed-off-by: falcorocks <14293929+falcorocks@users.noreply.github.com>
Adds a new check in the contracts package that confirms that all source contracts are using a strict pragma instead of a dynamic one.
* start * add upload to ci * fix: update CI * feat: rm update-selectors from pre-pr * fix: rm checkout from workspace
…/kona#3105) eliminate an unnecessary clone of `OpExecutionPayloadV4` in `rollup_boost::new_payload_v4`, let the original payload move into `EngineApiServer::new_payload_v4` to avoid extra allocation
* op-supernode: Superroot API Activity * Response Object Cleanup * Update return struct for full Optimistic Outputs ; In-Proc RPC * Use eth.NotFound Errors
reuse the precomputed sha_short when setting VERGEN_GIT_SHA_SHORT, drop an unnecessary second slice of sha
* op-node: Logic for Disabling Derivation * op-devstack: Support UnsafeOnly preset and twoVerifiers System * op-acceptance-tests: UnsafeOnly Tests for Seq and Ver * Do not check second verifier safe head because of EL Sync * op-node: Fix EngineController Reset logic for sequencer init * doc string fix * Defensive protection for avoiding FCU to genesis * Modularize ext sync tester config * op-acceptance-tests: Unsafe Only with Ext Network * Also check unsafe head advances after initial EL Sync is done * check unsafe gap is closed * remove temp * Allow alt sync when unsafeOnly * check seq restart with API * better init EL syncing log msg * fix comments and add warning * Check isSequencer for unsafeOnly initial Reset at SyncDeriver * remove non initialized check during syncDeriver step * Refactor for readability
* feat: add OPCMv2 tests for existing behaviors * feat: more tests * fix: lint errors * fix: test naming * fix: improve some tests wrt pr comments * fix: correct error naming in container
…/fault/type (#18432) Game types are not specific to fault dispute games.
Also: - Adds admin RPC method to inspect recovery mode status - Adds handling for new admin RPC method in SequencerActor - Adds test utils via automock - References existing test utils in crates/protocol/derive Ref: #3070 --------- Co-authored-by: theo <80177219+theochap@users.noreply.github.com>
…na#3118) This patch adds support for custom chain configurations when invoking the `just cannon` recipe to build cannon kona prestates. This is useful for devnets and unannounced chains to also enjoy reproducible prestate builds. ## Testing - [x] Build canonical prestates of kona-client releases and ensure the hashes are [standard prestates hashes](https://github.com/ethereum-optimism/superchain-registry/blob/17e5b8f2639324402f192d379cba0d09cddd2a6c/validation/standard/standard-prestates.toml). - [x] Verify that custom prestates contain the custom chain configs
Rename --trace-type to --game-types with an alias to preserve backwards compatibility. Each trace type already directly maps to a GameType and the concept of a "trace" only exists for fault dispute games.
Allows clients to be shared between fault and zk game types.
* op-challenger: Extract generic game player Handles common checks before delegating to an actor to progress the game. * op-challenger: Remove remnants of fault.Player
Updates factory workflow reference to 753bcd4284a6d36eac6e31df2492015ab8650331 which renames push_provenance to attest and skips attestation step on fork PRs. Changes: - Update workflow SHA in protected.yaml and unprotected.yaml - Change push_provenance: false to attest: false in unprotected.yaml - Add attest: true in protected.yaml for clarity
…conductor to (#18324) use this.
…rs/kona#3099) The denominator zero check in `decode_holocene_eip_1559_params_block_header` and `decode_jovian_eip_1559_params_block_header` was returning `EIP1559ParamError::ElasticityOverflow` which doesn't make sense - we're checking the denominator, not elasticity. Introduced `Eip1559ValidationError` inner type with: - `ZeroDenominator` - for the zero denominator case - `Decode(EIP1559ParamError)` - wrapping upstream decoding errors
* op-challenger: Support challenging optimistic ZK games * op-challenger: Remove check that the proposal was safe. * op-challenger: Add log message before challenging * op-dispute-mon: Remove unused interface
* op-challenger: Remove asterisc from op-challenger docker image. * op-challenger: Remove asterisc-kona from default list of supported game types
* op-challenger: Resolve zk games without considering parent * op-challenger: Consider parent game status when resolving * op-challenger: Handle games with no parent. * op-challenger: Challenge games when possible, even if we could resolve them. Allows us to claim bonds for games where the parent is invalid. * op-challenger: Send zk game transactions in parallel.
* op-node: fix l1 origin selector getting stuck if current origin was reorged out * clarify comments + test refactoring * gofmt
…18327) * op-batcher: propagate clock.Clock to gossip builder check. refactor MaxChannelDuration * remove comments * remove PrintChain * Merge pull request #18344 from ethereum-optimism/nonsense/fix-channel-close2 op-batcher: fix max channel duration tracking for large block backlogs (cont) * unit test for moreComing * extract SequenceBlock into DSL * add TestChannelBuilder_MaxChannelDurationZero * better comments * godoc for moreComing and pubInfo * rename moreComing * better comment * a few tweaks for #18327 (#18480) * tweaks * remove default values (false booleans) from struct literals * Rename publishingBacklog to ignoreMaxChannelDuration * typo * rename test --------- Co-authored-by: George Knee <georgeknee@googlemail.com>
* feat: deploy safersafes script * fix: use semvercomp * fix: fmt & semgrep * fix: pre-pr * fix: interface check * feat: interface cleanup
…oc (#18851) * graphite prompt to detect foundry deps bump without approved design doc * add ref to policy link in graphite message to PR owner
Add a tool that validates the go.mod replace directive points to a valid op-geth tag. Runs as a separate CI job so failures are immediately visible in the GitHub UI, which is useful during op-geth merge windows when this check is expected to fail temporarily. Also updates FindMonorepoRoot to verify the module path matches the optimism monorepo, preventing false positives when run from nested modules.
* ci: Introduce custom linters First linter prevents calls to big.Int Uint64 which silently truncates the value. * op-service: Implement bigs.Uint64Strict * ci: Support auto fix for bigint linter * ci: Fix lint-go-fix target * op-service: Add nolint for the Uint64 call in Uint64Strict * ci: Disable bigint linter. Need to apply the fixes first.
* feat(ci): refactor CI to add continuations * chore(ci): pass parameters to circleci
* op-challenger/op-dispute-mon: Cap large l2 sequence numbers. * op-challenger: Fix potential collision in challenger claim IDs. * op-challenger: Fix off by one error when recording the last step * op-challenger: Fix resuming large preimage uploads. * op-challenger: Ensure the full data to store is submitted in the same transaction for large preimages. --------- Co-authored-by: Adrian Sutton <adrian@oplabs.co>
* feat: run u18 * fix: fmt * fix: lint * fix: many bugs with OPCMv1 * fix: update opcmv2 tests * fix: semver version * fix: also apply past upgrades to integration tests * fix: run past upgrades for add game type test * fix: use shared function for past upgrades * feat: unified past upgrades * fix: semgrep issues * feat: generic dummy caller * fix: proper prestate handling for opcmv1 * fix: small pr comments * feat: use registry automatically * fix: almanax comments * fix: pr review * fix: clarify usage of opcm version * fix: correct dummy caller path * fix: use existing challenger/proposer for dispute games * fix: merge conflicts
* fix(ci): fix tag creation for circleci releases * ci: remove obsolete comment in setup-tag workflow Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Document more about how to use the flake-shake gate.
* feat(op-node): add SupervisorEnabled to config.Config Move SupervisorEnabled from rollup.Config to config.Config per reviewer feedback. rollup.Config has superchain registry implications and should be reserved for consensus params, while SupervisorEnabled is an operational setting. Changes: - Add SupervisorEnabled field to config.Config - Pass supervisorEnabled through interop.Config.Setup() - Add supervisorEnabled parameter to NewEngineController and NewFinalizer constructors - Gate cross-unsafe/cross-safe promotion and finality on supervisorEnabled instead of just IsInterop check - Update all test files with new constructor signatures When supervisorEnabled is false (default), interop contracts still deploy at InteropTime but cross-chain coordination uses local promotion. When true, the node defers to the supervisor. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test(op-acceptance-tests): add tests for interop without supervisor coordination Add acceptance tests that verify interop can work with local finality when SupervisorEnabled=false in op-node. This tests the scenario where: - Interop contracts (L2ToL2CrossDomainMessenger) are deployed at genesis - Supervisor infrastructure runs (required by op-geth) - But op-node uses local promotion instead of supervisor coordination The tests verify: 1. L2ToL2CrossDomainMessenger is deployed and has code at interop activation 2. Local finality works (unsafe/safe blocks advance without supervisor) Also adds: - DefaultSingleChainInteropNoIndexingSystem() in sysgo for test configuration - MinimalInteropNoSupervisor preset for acceptance tests Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor(op-devstack): make supervisor optional for interop Simplify the interop-without-supervisor test setup: - Make supervisor optional in l2_el_opgeth.go, l2_el_opreth.go, l2_proposer.go - Replace DefaultSingleChainInteropNoIndexingSystem with DefaultMinimalInteropSystem - MinimalInteropNoSupervisor now extends Minimal (no supervisor process at all) This enables testing interop contract deployment with truly no supervisor, rather than having supervisor running but with SupervisorEnabled=false. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: opsuperchain <opsuperchain@slop.bot> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* feat: remove CGT instruction from OPCMv2 * fix: semver * fix: calldata offset
* op-node: Make sealing duration value configurable * Remove hard coded constants
* op-proposer: Delete some remnants of L2OO * op-proposer: Remove even more L2OO * op-proposer: Fix test config. * op-proposer: Fix lint
* op-challenger: Use Uint64Strict * op-dispute-mon: Use Uint64Strict. * op-program: Use Uint64Strict * op-proposer: Use Uint64Strict * op-challenger: Cap bond claimed metric instead of panicking. * Fix lint
* fix: increase contracts test timeout to avoid flakes * fix: add slack context to relevant jobs
Update FaultDisputeGame and OptimisticDisputeGame to revert game creation if the proposed block number is too large for a uint64. Given the JSON-RPC APIs use an int64, no viable block chain can use block numbers that large. SuperDisputeGame reads the timestamp from the super root which is already restricted to a uint64.
…ct (#18904) * op-e2e,op-acceptance-tests,op-devstack,op-sync-tester: Use Uint64Strict * Fix test expectation * Fix test expectation * Review feedback.
* refactor: replace dev feature with opcm version check in DeployOPChain script * refactor: replace dev feature with opcm version check in ReadImplementationAddresses script * refactor: replace dev feature with opcm version check in UpgradeOPChain script * refactor: replace dev feature with opcm version check in UpgradeSuperchainConfig script * refactor: standarize isOPCMv2 variable * feat: add opcmv2 version constant * fix: rename constant to OPCM_V2_MIN_VERSION
…in MIPS64Memory (#18905) - Add isValidProof harness function and test contract with 3 tests: - test_isValidProof_validProof_succeeds: verifies valid proof returns true - test_isValidProof_invalidProof_succeeds: verifies tampered proof returns false - test_isValidProof_mismatchedRoot_succeeds: verifies wrong root returns false - Add memoryProofOffset harness function and test contract with 3 tests: - testFuzz_memoryProofOffset_succeeds: fuzz test for offset calculation - test_memoryProofOffset_zeroIndex_succeeds: verifies index 0 returns base offset - test_memoryProofOffset_indexOne_succeeds: verifies index 1 increments correctly Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
* feat: opcm2 interop migrate (#796) * feat: support interop migration in OPCMv2 * fix: merge conflicts * fix: proper interface usage * feat: update VerifyOPCM for migrator * chore: lint * fix: pr tweaks * fix: update go side * fix: simplify game data decoding logic * test: add test for invalid starting game type * fix: pr review * feat: add interop migration support for op-deployer * feat: add opcm v2 input for interop migration * feat: refactor interop migration to use ABI encoding and semver detection Replace JSON marshaling with proper ABI encoding using w3 library for migrate inputs. Change OPCM version detection from isDevFeatureEnabled to semantic version comparison. Restructure MigrateInputV1 to use nested GameParameters and Proposal structs. Update DisputeGameConfig.GameArgs from Hash to bytes for correct ABI encoding. Add isVersionAtLeast helper for version comparison (OPCM v2 starts at 7.0.0). Update tests and contracts to use version() method instead of feature flags. * docs: add description comments to migrate.go * feat: add opcmv2 migrate support to WithSuperRoots * fix: game parameters uint64 types * refactor: move IsVersionAtLeast helper to utils and add tests * fix: uint64 to big int conversion in EncodedMigrateInputV1 * test: interop migration v2 * test: interop migration v2 (not working) * test: updates migration test to migrate to OptimismPortalInterop * fix: test comments * test: add migrate input v1 encoding test * test: add interop migration v1 test * test: merge TestInteropMigration v1 and v2 tests --------- Co-authored-by: Flux <175354924+0xiamflux@users.noreply.github.com> * refactor: separate migrate from migrate-v2 cli command --------- Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com> Co-authored-by: niha <205694301+0xniha@users.noreply.github.com> * test: opcm2 migrate cli test (#798) * feat: add migrate cli command tests * poc: e2e cli migrate tests * fix: replace stdout with app writer * refactor: replace default value for StartingRespectedGameTypeFlag * fix: migrate cli v1 and v2 e2e tests --------- Co-authored-by: niha <205694301+0xniha@users.noreply.github.com> * fix: interop migration fixes * fix: remove address 0 condition to use opcmv2 & refactor useOPCMV2 internal variable in InteropMigration script * test: add interop migration run revert cases * fix: restore migrate cli flag order * fix: migrateInput V2 json field * chore: opcm2 pr (#799) * chore: remove unused imports * chore: fix tests naming * fix: add uint32 input range validation in migrate v2 * fix: opcm2 misc (#802) * test: fix struct property names * fix: use correct exported function name * chore: removes unused import * fix: opcm2 review comments (#808) * chore: remove unused flags * chore: close rpc client in migrate * chore: add sanity check when encoding migrate input * refactor: reutilizes isVersionAtLeast to check if using OPCM v2 * refactor: unify migrate v1 and v2 flows in the same CLI * refactor: check for common required flags, reduce repeated code between migrate v1 and v2 paths * chore: rename Migrate exclusive vars to indicate they are supposed to be used during migration only * chore: remove unused OPChainProxyAdminFlag flag * chore: close underlying client in migrate path * chore: add overflow uint check * chore: rename variable deployer to deployerAddr * chore: add overflow check for starting respected game type in migrate flow * fix: encode gameArgs as abi encoded bytes32 * chore: rename starting Respected game type related vars on migrate flow * chore: remove repeated required flags tests * fix: migrate opd test (#816) --------- Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com> Co-authored-by: niha <205694301+0xniha@users.noreply.github.com> Co-authored-by: 0xOneTony <112496816+0xOneTony@users.noreply.github.com> Co-authored-by: OneTony <onetony@defi.sucks>
* Merge pull request #18662 from ethereum-optimism/feat/op-deployer/validator-upgrade-v600 feat(op-deployer): op-validator and upgrade to v600 * feat(op-deployer): Update for op-contracts/v6.0.0-rc.2 (#18809) * feat(op-deployer): Update for op-contracts/v6.0.0-rc.2 * fix registry hash * feat(op-deployer): tests --------- Co-authored-by: Maurelian <john@oplabs.co>
* chore(kona): update vergen to 9.1.0 * Update rollup-boost and remove wrapper * temp update to use 1.10.2 rollup boost * point to crates.io version * remove unnecessary comment --------- Co-authored-by: Haardik H <haardik.haardik@coinbase.com>
* feat(op-deployer): add forge flag to bootstrap + apply * feat(op-deployer): add artifact cleanup * feat(op-deployer): lint * feat(op-deployer): lint * feat(op-deployer): comments * fix(op-deployer): comments * fix(op-deployer): lint
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.