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

kt-devnet: switch to geth-teku for l1 #14305

Merged

Conversation

pcw109550
Copy link
Contributor

@pcw109550 pcw109550 commented Feb 11, 2025

Description

Local kt devnet did not work because it tries to spin up l1 consensus using lighthouse image ethpandaops/lighthouse:stable. We can bypass this simply by pinning l1 consensus using teku. Similar PR at optimism-pacakge: ethpandaops/optimism-package#160.

Switching devnet to use teku instead of lighthouse for the monorepo as well.

Tests

Validated below commands works, spinning with L1 teku.

just simple-devnet
just interop-devnet
just interop-devnet-test

@pcw109550 pcw109550 requested a review from a team as a code owner February 11, 2025 01:27
@zhwrd
Copy link
Contributor

zhwrd commented Feb 11, 2025

/ci authorize 5a66890

@zhwrd zhwrd added this pull request to the merge queue Feb 11, 2025
Merged via the queue into ethereum-optimism:develop with commit a066b09 Feb 11, 2025
47 checks passed
@dailinsubjam
Copy link

dailinsubjam commented Feb 12, 2025

Would appreciate if there's any tip or pointer, when running these three just commands I could still get the error

Adding service with name 'op-el-1-op-geth-op-node-op-kurtosis-1' and image 'us-docker.pkg.dev/oplabs-tools-artifacts/images/op-geth:latest'
2025/02/12 01:43:22 Error: error deploying environment: error deploying kurtosis package: ....

(while last week these commands do work for me). I'm on kurtosis version 2.1.0. @pcw109550 Do you know what could be the reason? Thanks in advance!

@pcw109550
Copy link
Contributor Author

@dailinsubjam The issue might be not related to this PR. This PR swaps L1 client from lighthouse to teku, but your error log is from spinning L2 components. I recommend you to open a separate issue with full logs and exact commit hash you tried for launching local kt-devnet.

alcueca pushed a commit that referenced this pull request Feb 12, 2025
github-merge-queue bot pushed a commit that referenced this pull request Feb 12, 2025
* fix: generate salt through uint, retrieve cahinId through bytes20+uint160

* fix: bytes20 is not necessary

* fix: generated semver-lock.json

* chore: lint

* fix: is this what you want?

* fix: regenerated semver-lock

* chore: bumping version and semver-lock so that CI sees them changing at the same time.

* ctb: move vm.broadcast into createDeterministic (#14243)

* ctb: Use startbroadcast/stopbroadcast with createDeterministic

This backports #14241 onto develop. While deploying the interop contracts we discovered a bug where nonces would incorrectly increase following calls to `createDeterministic`. This is because `vm.broadcast` will broadcast the _next_ call, but `createDeterministic` sometimes doesn't emit a call at all. This means that (in the case of the Sueprchain deployment) the calls to the input contract's `set` method would be called instead. This in turn caused nonces to increase incorrectly.

To fix this issue, this PR updates the Solidity implementation to use `vm.startBroadcast()` and `vm.stopBroadcast()`. This avoids the issue altogether. To prevent further incorrect usages of `vm.broadcast` I also opened #14242 which adds a Semgrep rule to check for this case.

* move vm.broadcast into createDeterministic

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks (#14179)

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks

* all: use OptimismConfig in consolidation to translate zero attribs

* TEST using default config if it cannot be fetched

* op-node/node: add ChainOpConfig override

and use it instead of a default config

* Add ChainConfig's OptimismConfig into rollup.Config

* Fix TestGetRollupConfig

* revert passing OptimismConfig around

it's now part of the rollup.Config

* dependabot(gomod): bump github.com/kurtosis-tech/kurtosis/api/golang (#14250)

Bumps [github.com/kurtosis-tech/kurtosis/api/golang](https://github.com/kurtosis-tech/kurtosis) from 1.4.3 to 1.4.4.
- [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.3...1.4.4)

---
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>

* Added README to op-dripper (#14165)

* fix(op-deployer): don't deploy dachallenge contract when using GenericCommitment (#14248)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks (#14252)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks

* op-supervisor: improve logging

* op-supervisor: fix fromda test, add test cases

* op-supervisor: fix lint

* interop: op-supervisor event metrics (#14258)

* op-node,op-supervisor: share event metrics code

Signed-off-by: protolambda <proto@protolambda.com>

* op-node: cleanup noop metrics

---------

Signed-off-by: protolambda <proto@protolambda.com>

* node: Ignore No-Op Reset Requests (#14256)

* op-supervisor: improve logging (#14262)

* fix(devnet-sdk): use correct Address type (#14259)

* chore: update kurtosis to 1.4.4 (#14255)

also add kurtosis client to mise tools.

* fix(devnet-sdk): use correct chain ID type (#14261)

* fix(devnet-sdk): use correct Address type

* fix(devnet-sdk): use correct chain ID type

* ci: Log op-e2e output to files (#14257)

* ci: Log op-e2e output to files

* update log text

* fix(devnet-sdk): ensure balances are comparable (#14267)

In error cases, make sure we can still compare resulting balances
without crashing.

In particular, this makes interop_smoke_test skip properly if it can't
find a funded wallet to use.

* ci: Reduce publish job to daily (#14276)

* op-deployer: add architecture diagram (#14281)

* op-deployer: add architecture diagram

* fix formatting

* less verbose diagram description

* fix: Orbifying checkout-with-mise. (#14282)

* Add bootnodes ran by UL (#14279)

* op-conductor: Add HeartbeatTimeout & LeaderLeaseTimeout flags (#14271)

* Add MT Cannon audit reports (Coinbase and Spearbit) (#14218)

* Add MT Cannon audit report

* Fix MT Cannon audit report name

Co-authored-by: mbaxter <meredith@oplabs.co>

* Add coinbase MT Cannon audit report

* Leave "subsequent release" blank for now on audit readme

---------

Co-authored-by: mbaxter <meredith@oplabs.co>

* feat(devnet-sdk): enable preconditions enforcement (#14268)

In some use-cases, failure to meet preconditions is in itself an error.
For example, when running acceptance tests against a devnet, we
presumably epxect that the acceptance tests should apply.

This change adds support for an environment variable
DEVNET_EXPECT_PRECONDITIONS_MET=1 that will then mark as failed the
tests for which the preconditions are not met by the provided system.

* fix: bump patch version for mise orb. (#14290)

* feat: pass args thru contracts build commands (#14287)

Updates contracts justfile to pass arguments through the build
commands.

* op-node: fix p2p NAT option (#14280)

* op-program: Update test to ensure interop bootstrapping does not load the L2 chain ID local key (#14300)

* op-conductor: Add new Raft flags into optional flags list (#14299)

* Update op-geth dependency to add uni-mainnet config (#14301)

* op-node: Define message expiry time constant (#14296)

* op-e2e: Fix fpp bls precompile tests (#14291)

* op-challenger: Handle requesting superchain roots beyond the current unsafe head (#14206)

* op-e2e: Introduce helpers for building transition states.

* op-e2e: Add test for disputing a block prior to the proposal block

* op-challenger: Handle requesting superchain roots beyond the current chain head.

* Detect not found responses in prestate provider too.

* Add test to confirm correct enforcement of trace extension activation.

* Add more variants of tests where agreed = disputed. Cover all combinations of trace extension activating.

* Remove printf

* op-supervisor: Fix AddLink error type and clean up reset logic (#14302)

* Fix AddLink error type ; clean up reset logic

* fix tests

* feat(devnet-sdk): add helper to build execution environment (#14298)

* fix: add mirrored restrictions to lite profile (#14295)

Adds mirrored compiler restrictions to the lite profile so that
all generated artifacts get overwritten when switching between
build and build-dev.

* ci: make frozen files check depend on contracts-bedrock-build (#14316)

This parallelizes the job with contracts-bedrock-build so that results
are returned more quickly.

* fix(kurtosis-devnet): make logs more readable (#14317)

By wrapping the observed errors one layer too deep we were introducing
escaped strings into the logs. Now multi-line and quoted strings appear as-is.

* kt interop-devnet: enable super-cannon with interop-prestate (#14172)

* kt-devnet: switch to geth-teku for l1 (#14305)

* op-program: Ensure exec msg inclusion during consolidation (#14101)

* op-program: Ensure exec msg inclusion during consolidation

* implement timestamp invariants in the program

* use msg expiry in rollup config

* remove leftover non-working test

* op-supervisor: Don't reset when node is far behind (#14324)

* op-supervisor: don't reet on all errors (#14326)

* feat: Ignore frozen files check by using a PR label (#14247)

* feat: Ignore frozen files check by using a PR label

* fix: following https://github.com/orgs/community/discussions/26712

* fix: maybe

* fix: follow existing pattern

* fix: temporarily remove the contracts changed check to make it run

* spike: Using jq instead of grep

* fix: don't extract labels twice

* fix: a bit cleaner output

* fix: minor change to trigger CI again

* fix: Bring back the change check

* feat: Docs

* ci: use circleci-agent step halt to end job

---------

Co-authored-by: alcueca <alberto@yield.is>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Maurelian <john@oplabs.co>

* op-e2e: Add action test for cascading reorgs in interop fault proofs (#14266)

* op-e2e: Add tests for cascading invalidations

* Make InboxContract an entity in the DSL.

* op-e2e: Focus test cases on consolidation.

* op-e2e: Generate correct payload when executing messages.

* op-e2e: Skip known failing test with reference to tracking issues.

* OPCM: OPPrestateUpdater for L1 Pectra Defense (#13998)

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* add snapshots

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* fix versions

* add snapshots

* update snapshots & semver

* correct semver

* bump OPCM version

* move interface to inherit IOPCM

* fix interface

* update versions

* add specs

* fix deploy opcm setters

* fix deploy opcm setters

* changes asked on review & semver-lock

* Add non implemented tests for coverage

* linting

* New tests & semverlock

* rewrite hasFDG boolean

* semver-lock

* fix review comments

* pre-pr

* semver

* semver-lock

* semverlock again

* final semverlock

* fix comment about versions

* fix comment about versions

* semverlock opcm

* feat: test upgrading just the pdg vs. both games

* feat: remove unused assertValidGameType() function

* review changes

* remove unnecessary comment

* update interface to fix CI

* change file format

* rebase

* semver lock

* valid semlock

* rerun ci

---------

Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: JosepBove <josep.bove.dalmases@gmail.com>
Co-authored-by: JosepBove <josep@aave.com>

* fix: generated semver-lock.json

* chore: bumping version and semver-lock so that CI sees them changing at the same time.

* chore: bump semver-lock.json

* chore: bump versions and semver-lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: protolambda <proto@protolambda.com>
Co-authored-by: alcueca <alberto@yield.is>
Co-authored-by: Matthew Slipper <me@matthewslipper.com>
Co-authored-by: Sebastian Stammler <seb@oplabs.co>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ControlCplusControlV <44706811+ControlCplusControlV@users.noreply.github.com>
Co-authored-by: Samuel Laferriere <samlaf92@gmail.com>
Co-authored-by: protolambda <proto@protolambda.com>
Co-authored-by: Axel Kingsley <axel.kingsley@gmail.com>
Co-authored-by: Yann Hodique <yann@oplabs.co>
Co-authored-by: Sam Stokes <35908605+bitwiseguy@users.noreply.github.com>
Co-authored-by: blaine <blainemalone01@gmail.com>
Co-authored-by: Joshua Gutow <jgutow@oplabs.co>
Co-authored-by: Tei Im <40449056+ImTei@users.noreply.github.com>
Co-authored-by: Paul Dowman <paul@pauldowman.com>
Co-authored-by: mbaxter <meredith@oplabs.co>
Co-authored-by: smartcontracts <kelvin@optimism.io>
Co-authored-by: Adrian Sutton <adrian@oplabs.co>
Co-authored-by: Inphi <mlaw2501@gmail.com>
Co-authored-by: Maurelian <john@oplabs.co>
Co-authored-by: Zach Howard <zach@oplabs.co>
Co-authored-by: Park Changwan <pcw109550@gmail.com>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: JosepBove <josep.bove.dalmases@gmail.com>
Co-authored-by: JosepBove <josep@aave.com>
Kourin1996 pushed a commit to celo-org/optimism that referenced this pull request Feb 18, 2025
Rjected pushed a commit to paradigmxyz/optimism that referenced this pull request Feb 25, 2025
Rjected pushed a commit to paradigmxyz/optimism that referenced this pull request Feb 25, 2025
* fix: generate salt through uint, retrieve cahinId through bytes20+uint160

* fix: bytes20 is not necessary

* fix: generated semver-lock.json

* chore: lint

* fix: is this what you want?

* fix: regenerated semver-lock

* chore: bumping version and semver-lock so that CI sees them changing at the same time.

* ctb: move vm.broadcast into createDeterministic (ethereum-optimism#14243)

* ctb: Use startbroadcast/stopbroadcast with createDeterministic

This backports ethereum-optimism#14241 onto develop. While deploying the interop contracts we discovered a bug where nonces would incorrectly increase following calls to `createDeterministic`. This is because `vm.broadcast` will broadcast the _next_ call, but `createDeterministic` sometimes doesn't emit a call at all. This means that (in the case of the Sueprchain deployment) the calls to the input contract's `set` method would be called instead. This in turn caused nonces to increase incorrectly.

To fix this issue, this PR updates the Solidity implementation to use `vm.startBroadcast()` and `vm.stopBroadcast()`. This avoids the issue altogether. To prevent further incorrect usages of `vm.broadcast` I also opened ethereum-optimism#14242 which adds a Semgrep rule to check for this case.

* move vm.broadcast into createDeterministic

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks (ethereum-optimism#14179)

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks

* all: use OptimismConfig in consolidation to translate zero attribs

* TEST using default config if it cannot be fetched

* op-node/node: add ChainOpConfig override

and use it instead of a default config

* Add ChainConfig's OptimismConfig into rollup.Config

* Fix TestGetRollupConfig

* revert passing OptimismConfig around

it's now part of the rollup.Config

* dependabot(gomod): bump github.com/kurtosis-tech/kurtosis/api/golang (ethereum-optimism#14250)

Bumps [github.com/kurtosis-tech/kurtosis/api/golang](https://github.com/kurtosis-tech/kurtosis) from 1.4.3 to 1.4.4.
- [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.3...1.4.4)

---
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>

* Added README to op-dripper (ethereum-optimism#14165)

* fix(op-deployer): don't deploy dachallenge contract when using GenericCommitment (ethereum-optimism#14248)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks (ethereum-optimism#14252)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks

* op-supervisor: improve logging

* op-supervisor: fix fromda test, add test cases

* op-supervisor: fix lint

* interop: op-supervisor event metrics (ethereum-optimism#14258)

* op-node,op-supervisor: share event metrics code

Signed-off-by: protolambda <proto@protolambda.com>

* op-node: cleanup noop metrics

---------

Signed-off-by: protolambda <proto@protolambda.com>

* node: Ignore No-Op Reset Requests (ethereum-optimism#14256)

* op-supervisor: improve logging (ethereum-optimism#14262)

* fix(devnet-sdk): use correct Address type (ethereum-optimism#14259)

* chore: update kurtosis to 1.4.4 (ethereum-optimism#14255)

also add kurtosis client to mise tools.

* fix(devnet-sdk): use correct chain ID type (ethereum-optimism#14261)

* fix(devnet-sdk): use correct Address type

* fix(devnet-sdk): use correct chain ID type

* ci: Log op-e2e output to files (ethereum-optimism#14257)

* ci: Log op-e2e output to files

* update log text

* fix(devnet-sdk): ensure balances are comparable (ethereum-optimism#14267)

In error cases, make sure we can still compare resulting balances
without crashing.

In particular, this makes interop_smoke_test skip properly if it can't
find a funded wallet to use.

* ci: Reduce publish job to daily (ethereum-optimism#14276)

* op-deployer: add architecture diagram (ethereum-optimism#14281)

* op-deployer: add architecture diagram

* fix formatting

* less verbose diagram description

* fix: Orbifying checkout-with-mise. (ethereum-optimism#14282)

* Add bootnodes ran by UL (ethereum-optimism#14279)

* op-conductor: Add HeartbeatTimeout & LeaderLeaseTimeout flags (ethereum-optimism#14271)

* Add MT Cannon audit reports (Coinbase and Spearbit) (ethereum-optimism#14218)

* Add MT Cannon audit report

* Fix MT Cannon audit report name

Co-authored-by: mbaxter <meredith@oplabs.co>

* Add coinbase MT Cannon audit report

* Leave "subsequent release" blank for now on audit readme

---------

Co-authored-by: mbaxter <meredith@oplabs.co>

* feat(devnet-sdk): enable preconditions enforcement (ethereum-optimism#14268)

In some use-cases, failure to meet preconditions is in itself an error.
For example, when running acceptance tests against a devnet, we
presumably epxect that the acceptance tests should apply.

This change adds support for an environment variable
DEVNET_EXPECT_PRECONDITIONS_MET=1 that will then mark as failed the
tests for which the preconditions are not met by the provided system.

* fix: bump patch version for mise orb. (ethereum-optimism#14290)

* feat: pass args thru contracts build commands (ethereum-optimism#14287)

Updates contracts justfile to pass arguments through the build
commands.

* op-node: fix p2p NAT option (ethereum-optimism#14280)

* op-program: Update test to ensure interop bootstrapping does not load the L2 chain ID local key (ethereum-optimism#14300)

* op-conductor: Add new Raft flags into optional flags list (ethereum-optimism#14299)

* Update op-geth dependency to add uni-mainnet config (ethereum-optimism#14301)

* op-node: Define message expiry time constant (ethereum-optimism#14296)

* op-e2e: Fix fpp bls precompile tests (ethereum-optimism#14291)

* op-challenger: Handle requesting superchain roots beyond the current unsafe head (ethereum-optimism#14206)

* op-e2e: Introduce helpers for building transition states.

* op-e2e: Add test for disputing a block prior to the proposal block

* op-challenger: Handle requesting superchain roots beyond the current chain head.

* Detect not found responses in prestate provider too.

* Add test to confirm correct enforcement of trace extension activation.

* Add more variants of tests where agreed = disputed. Cover all combinations of trace extension activating.

* Remove printf

* op-supervisor: Fix AddLink error type and clean up reset logic (ethereum-optimism#14302)

* Fix AddLink error type ; clean up reset logic

* fix tests

* feat(devnet-sdk): add helper to build execution environment (ethereum-optimism#14298)

* fix: add mirrored restrictions to lite profile (ethereum-optimism#14295)

Adds mirrored compiler restrictions to the lite profile so that
all generated artifacts get overwritten when switching between
build and build-dev.

* ci: make frozen files check depend on contracts-bedrock-build (ethereum-optimism#14316)

This parallelizes the job with contracts-bedrock-build so that results
are returned more quickly.

* fix(kurtosis-devnet): make logs more readable (ethereum-optimism#14317)

By wrapping the observed errors one layer too deep we were introducing
escaped strings into the logs. Now multi-line and quoted strings appear as-is.

* kt interop-devnet: enable super-cannon with interop-prestate (ethereum-optimism#14172)

* kt-devnet: switch to geth-teku for l1 (ethereum-optimism#14305)

* op-program: Ensure exec msg inclusion during consolidation (ethereum-optimism#14101)

* op-program: Ensure exec msg inclusion during consolidation

* implement timestamp invariants in the program

* use msg expiry in rollup config

* remove leftover non-working test

* op-supervisor: Don't reset when node is far behind (ethereum-optimism#14324)

* op-supervisor: don't reet on all errors (ethereum-optimism#14326)

* feat: Ignore frozen files check by using a PR label (ethereum-optimism#14247)

* feat: Ignore frozen files check by using a PR label

* fix: following https://github.com/orgs/community/discussions/26712

* fix: maybe

* fix: follow existing pattern

* fix: temporarily remove the contracts changed check to make it run

* spike: Using jq instead of grep

* fix: don't extract labels twice

* fix: a bit cleaner output

* fix: minor change to trigger CI again

* fix: Bring back the change check

* feat: Docs

* ci: use circleci-agent step halt to end job

---------

Co-authored-by: alcueca <alberto@yield.is>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Maurelian <john@oplabs.co>

* op-e2e: Add action test for cascading reorgs in interop fault proofs (ethereum-optimism#14266)

* op-e2e: Add tests for cascading invalidations

* Make InboxContract an entity in the DSL.

* op-e2e: Focus test cases on consolidation.

* op-e2e: Generate correct payload when executing messages.

* op-e2e: Skip known failing test with reference to tracking issues.

* OPCM: OPPrestateUpdater for L1 Pectra Defense (ethereum-optimism#13998)

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* add snapshots

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* fix versions

* add snapshots

* update snapshots & semver

* correct semver

* bump OPCM version

* move interface to inherit IOPCM

* fix interface

* update versions

* add specs

* fix deploy opcm setters

* fix deploy opcm setters

* changes asked on review & semver-lock

* Add non implemented tests for coverage

* linting

* New tests & semverlock

* rewrite hasFDG boolean

* semver-lock

* fix review comments

* pre-pr

* semver

* semver-lock

* semverlock again

* final semverlock

* fix comment about versions

* fix comment about versions

* semverlock opcm

* feat: test upgrading just the pdg vs. both games

* feat: remove unused assertValidGameType() function

* review changes

* remove unnecessary comment

* update interface to fix CI

* change file format

* rebase

* semver lock

* valid semlock

* rerun ci

---------

Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: JosepBove <josep.bove.dalmases@gmail.com>
Co-authored-by: JosepBove <josep@aave.com>

* fix: generated semver-lock.json

* chore: bumping version and semver-lock so that CI sees them changing at the same time.

* chore: bump semver-lock.json

* chore: bump versions and semver-lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: protolambda <proto@protolambda.com>
Co-authored-by: alcueca <alberto@yield.is>
Co-authored-by: Matthew Slipper <me@matthewslipper.com>
Co-authored-by: Sebastian Stammler <seb@oplabs.co>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ControlCplusControlV <44706811+ControlCplusControlV@users.noreply.github.com>
Co-authored-by: Samuel Laferriere <samlaf92@gmail.com>
Co-authored-by: protolambda <proto@protolambda.com>
Co-authored-by: Axel Kingsley <axel.kingsley@gmail.com>
Co-authored-by: Yann Hodique <yann@oplabs.co>
Co-authored-by: Sam Stokes <35908605+bitwiseguy@users.noreply.github.com>
Co-authored-by: blaine <blainemalone01@gmail.com>
Co-authored-by: Joshua Gutow <jgutow@oplabs.co>
Co-authored-by: Tei Im <40449056+ImTei@users.noreply.github.com>
Co-authored-by: Paul Dowman <paul@pauldowman.com>
Co-authored-by: mbaxter <meredith@oplabs.co>
Co-authored-by: smartcontracts <kelvin@optimism.io>
Co-authored-by: Adrian Sutton <adrian@oplabs.co>
Co-authored-by: Inphi <mlaw2501@gmail.com>
Co-authored-by: Maurelian <john@oplabs.co>
Co-authored-by: Zach Howard <zach@oplabs.co>
Co-authored-by: Park Changwan <pcw109550@gmail.com>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: JosepBove <josep.bove.dalmases@gmail.com>
Co-authored-by: JosepBove <josep@aave.com>
Rjected added a commit to paradigmxyz/optimism that referenced this pull request Feb 25, 2025
* dependabot(gomod): bump github.com/minio/minio-go/v7 (#13861)

Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.81 to 7.0.84.
- [Release notes](https://github.com/minio/minio-go/releases)
- [Commits](https://github.com/minio/minio-go/compare/v7.0.81...v7.0.84)

---
updated-dependencies:
- dependency-name: github.com/minio/minio-go/v7
  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>

* Fix cannon e2e tests (#14060)

* ci: Raise parallelism of cannon-e2e tests

* ci: Build op-program-host and cannon before running go tests.

* op-geth: Update op-geth to avoid loading and parsing all genesis files.

Specifically includes https://github.com/ethereum-optimism/op-geth/pull/482

* Consistently build 64-bit multithreaded prestates with -mt64 suffix.

Previously the native build used -mt and the reproducible build used -mt64.
Stop building the 32-bit multithreaded prestate in reproducible builds.

---------

Co-authored-by: Matthew Slipper <me@matthewslipper.com>

* vm-runner: Add extra logging when selecting L1 head (#14061)

* proofs: Add action test for unhappy consolidation (#14019)

* proofs: Add action test for unhappy consolidation

The test covers the unhappy path in the consolidation step of the fault
proof where an invalid message triggers a block replacement

* remove redundant test

* assert heads

* Initialize vm runner counter metrics to 0 (#13523)

This is because alerts use `increase()` to detect changes in the metrics,
and the first instance of a metric is not considered a change,
so detecting failures doesn't fire unless the metric was already 0.

* dependabot(gomod): bump github.com/consensys/gnark-crypto (#13872)

Bumps [github.com/consensys/gnark-crypto](https://github.com/consensys/gnark-crypto) from 0.12.1 to 0.15.0.
- [Release notes](https://github.com/consensys/gnark-crypto/releases)
- [Changelog](https://github.com/Consensys/gnark-crypto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/consensys/gnark-crypto/compare/v0.12.1...v0.15.0)

---
updated-dependencies:
- dependency-name: github.com/consensys/gnark-crypto
  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>

* feat: Add PermissionedDisputeGame to frozen code (#14070)

* op-node: change default L1 cache size to 900 (#14045)

In #13772, the L1 cache size was made configurable and the cap of 1000
was removed. This implied that the old default value (before applying
the cap) of 2/3 the sequencing window was now active.

However, high-throughput chains don't need such a high cache size under
normal conditions, so memory usage unexpectedly jumped for most node
operators.

This PR adds back a lower default value of 900, which is a better
default for most nodes. Only low-throughput chains with infrequent safe
head increments can now use this flag to set a higher value.

* op-deployer: Support upgrades (#14028)

* op-deployer: Support upgrades

* semgrep

* imports

* cr updates

* remove aliasing

* goimports

* cr updates

* fix lint

---------

Co-authored-by: Samuel Stokes <sam.adam.stokes@gmail.com>

* feat: prevent deployments of mips32 on opcm upgrade 13 (#14025)

* feat: prevent deployments of mips32 on opcm upgrade 13

* feat: Ensure that fork tests deploy mips64

* fix: error string in tests

* fix test name

* skip tests for superchain ops (#14069)

* skip implementation upgrade and system config initialization tests for superchain ops tests

* fmt

* update gas snapshot

* dependabot(gomod): bump github.com/lmittmann/w3 from 0.17.4 to 0.17.5 (#14074)

Bumps [github.com/lmittmann/w3](https://github.com/lmittmann/w3) from 0.17.4 to 0.17.5.
- [Release notes](https://github.com/lmittmann/w3/releases)
- [Commits](https://github.com/lmittmann/w3/compare/v0.17.4...v0.17.5)

---
updated-dependencies:
- dependency-name: github.com/lmittmann/w3
  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-challenger: Support downloading prestates with a specific filename. (#14035)

* op-challenger: Support downloading prestates with a specific filename.

Allows running the latest builds published from develop automatically.

* Update test

* Log information on the state used.

* feat: Descope liquidity migration interop (#13978)

* feat: descope liquidity migration

* feat: remove superchain erc20 factory and beacon (#224)

* fix: descope pr fixes (#231)

---------

Co-authored-by: AgusDuha <81362284+agusduha@users.noreply.github.com>
Co-authored-by: agusduha <agusnduha@gmail.com>

* devnet testing sdk prototype (#14026)

* feat(devnet-sdk): expose minimal test interface

* feat(devnet-sdk): basic infrastructure for mini test

Co-authored-by: Jan Nanista <jan@oplabs.co>

* feat(devnet-sdk): implemented system

* test(interop): new mini test to validate framework

* test(interop): improve mini test

* fix(devnet-sdk): improve cnx management

* fix(devnet-sdk): use big.Int

* test(interop): add constraints

* fix(devnet-sdk): fix tests

* fix(devnet-testing): use pointer receivers consistently

* fix(devnet-testing): remove unnecessary ContractAddress

* fix(devnet-testing): remove unnecessary NewBalanceFromFloat

* fix: cosmetic change to interop smoke test

* feat(devnet-sdk): proper interface-backed implementation

* feat(devnet-testing): testing the tests

* feat(devnet-testing): interface cleanup

* fix: remove obsolete Registry definition

* fix: address review comments

- add explicit interface checks (and remove superfluous interface)
- add tests for Balance type

---------

Co-authored-by: Jan Nanista <jan@oplabs.co>
Co-authored-by: Stefano Charissis <stefano@oplabs.co>

* ci: Run mips-linux-gnu-objdump outside of the shell pipeline (#14078)

Ensures the build fails if it is not available or has non-zero exit code rather than just checking for unsupported op codes in the error message.

* op-program: Write tx/receipts trie nodes to kv (#14051)

* op-program: Write tx/receipts trie nodes to kv

* op-program: Make trie node storage optional in client

* challenger: Transition to invalid hash at superroot boundaries (#14034)

* challenger: Transition to invalid hash at superroot boundaries.

Doesn't yet handle transitioning at the first optimistic block that is unsafe.

* Fix comment.

* op-program: Fix config validation for interop (#14079)

Ensure InteropEnabled is set when --agreed-prestate is set.
Don't require L2 head to be set when interop enabled.

* op-deployer: Cache downloaded artifacts (#14076)

* Update op-geth dependency to upstream pre-v1.15.0 master merge & ignore SetCode batcher txs (#13958)

* go: Update op-geth dependency to upstream pre-v1.14.13-master merge

We need the 7702 SetCode transaction type.

* all: adapt to op-geth upstream changes

* op-node/rollup/derive: treat SetCode or future tx types as invalid batcher txs

* go: Update op-geth dependency again to include latest changes

* derive: allow Deposit batcher txs

This allows batch tx force-inclusion for L3s.

* lint

* add txContext back

* fix SetCode batcher tx test

* go: update op-geth dependency to v1.101500.0-dev.1

which is tagged at https://github.com/ethereum-optimism/op-geth/pull/480

* geth: pre-v1.14.13 integration review fixes

* op-chain-ops: simplify state commit call

* op-node/p2p: Use IP address for first Conduit bootnode

After updating to the latest upstream geth dependency, it seems that
host names are no longer supported for bootnodes.

* op-node/p2p: look up DNS host names of enode records

* op-node/p2p: Also lookup IPs for default bootnode URLs

* Update op-geth dependency to merged@v1.101500.0-rc.1

* op-node/p2p: Add test for default bootnodes

---------

Co-authored-by: protolambda <proto@protolambda.com>

* ci: Remove CI builder (#13965)

We were using both Docker-based CI builder images as well as self-hosted runner images with software preinstalled. This was causing discrepancies between software versions when things were updated. Furthermore, changing `mise.toml` required a manual rebuild of the CI builder image for changes to take effect.

This PR updates the CI pipeline to use Mise to install all tool necessary to run the monorepo. Preinstalled tools have been removed from the self-hosted runners, and all Docker images in the pipeline have been replaced with a simple `cimg/base` image.

* Fix LastCommonL1 Function ; Add Tests (#14086)

* op-deployer: Use deterministic deployments for MIPS/DGs (#14087)

There's a nonce bug in the VM somewhere. This PR works around it and update these deployments to be deterministic. I'll investigate the bug separately.

* ci: Fix broken proofs jobs (#14088)

* op-batcher: handle EIP-7623 in DA switching calculation (#13870)

* WIP sketch out change in calldata calculation if l1 activated EIP-7623

* infer l1 Pectra activation from nullity of  header.requestsHash

pass this down to the TxData method so it can make an informed decision on DA type

* add godoc

* refactor and add unit test

* tweak godoc

* use much larger / more representative values in test

* don't forget version byte

* add another unit test

* fix bug

* typos

* typo

* make e2e test handle pectra

* tweak

* unit tests for DA switching cover L1 Pectra active and inactive

* prefer isPectra = true in tests generally

* tighten up test params

* Wire up Prague Activation time in L1  genesis

* run da switching test on holocene and activate prague at genesis with HoloceneSystemConfig

* fix op-e2e fakepos to handle prague fork on L1

* update e2e tests to activate prague if they activate cancun

* Revert "update e2e tests to activate prague if they activate cancun"

This reverts commit f626d8d6b76db43398e79366535c5887f58a2b62.

* only activate prague in AutoDA test for now

* default to no Prague

* increase numTxs

* fix godoc

* op-program/prestates: Add 1.5.0-rc.1 release prestate hashes (#14085)

* custom gas token: remove e2e test (#14094)

This commit removes an e2e test that covers the custom gas token
feature. Keeping this around will just result in extra maintenance
overhead that is not necessary.

Useful alongside:
- https://github.com/ethereum-optimism/optimism/pull/13603
- https://github.com/ethereum-optimism/optimism/pull/13921

for maintaining a patch that contains custom gas token. It should be
easy to bring this back in the future if necessary

* vm-runner: Handle L1 finalized block being 0 (#14100)

* CONTRIBUTING.md: no more typo fix noise (#14105)

* feat: speed up snapshots (#14096)

* op-node: Use withdrawals-root for replacement block attrs (#14102)

* interop: Reorg support (#13953)

* Start on Invalidator.

* tests: TestCrossUnsafeReorg.

* cleanup reorg tests.

* first shot at cross-safe reorg.

* cleanup some code.

* make reorg test not use internal dbs directly.

* move reorg tests to invalidator package.

* remove stray code.

* make reorg tests use Invalidator events.

* Start refactor and cleanup.

* tests

* tweak: Use BlockID in Rewind events.

* tweak: Signal all chain rewind on L1 reorg.

* tweak: Use block height only to signal where to start checking for rewind.

* lint and some small refactoring.

* Create rewinder as soon as we create backend.

* cleanup: Remove old code.

* tweak: Update component name.

* cleanup: remove stray code.

* tweak: Tighten up L1 reorg detection.

* cleanup: Remove stray code.

* tweak: Don't rewind Unsafe chain past LocalSafe head.

* tweak: Fix wrapped errors in db update helpers.

* tweak: Make min block getter more clear.

* tweak: Register rewinder events directly.

* twweak: Update L1 same-block signal log.

* fix: Don't return early if we've missed an L1 block.

* refactor: Track L1 tip as a BlockID instead of separate height and hash.

* tweak: Add warning when failing to find a common block and falling back to finalized.

* tweak: Cleanup don't-rewind-past-finalized check.

* refactor: L1 reorgs, V2.

* starting on new unsafe rewinding.

* fix: Use CrossSafe in node reset call.

* cleanup: Remove old rewind code.

* fix: L1 block traversal during common ancestor search.

* tests: Update tests for refactored rewinder.

* tweak: Make Unsafe rewind walkback up to finalized block.

* tests: add L2 rewind walkback test.

* refactor: Remove SyncNodes/L2 nodes from Rewinder.

* tests,fix: Add CrossSafe to synnode mockBackend.

* tests,fix: Correctly setup TestNoRewindNeeded.

* cleanup: Remove old rewind code.

* cleanup: Remove unused interface method.

* refactor: In L1 rewinds, check Local DB first.

* fix: Use correct LocalSafe to L1 resolution.

* tests: Add test for L1 reorg that affects only local and not cross blocks.

* tweak: Make work without finalized blocks.

* tweak: Don't use finalized blocks in rewind test.

* twweak: Only check hashes in L1 onLatest sameness check.

* run ci

* tweak: Don't reset logs in L1 reorg.

* fix: Unsafe reorg common ancestor finding.

* tests: Fix TestRewindL2WalkBack.

* op-supervisor: fix L1-reorg handling

---------

Co-authored-by: protolambda <proto@protolambda.com>

* feat: remove unused arg from OPCM upgrade tests (#14113)

* feat: Remove mips64 and updates to MTCannon (#14119)

* feat: Remove mips64 and updates to MTCannon

* chore: Unfreeze opcm

* chore: update semver-lock

* feat: update snapshots

* fix: unused imports

* feat: bump semvers

* semver-lock

* feat: updates to op-deployer

* fix test

---------

Co-authored-by: Matthew Slipper <me@matthewslipper.com>

* cannon: Update SLL(V) to mask out upper bits before sign extending (#14114)

* cannon: Update SLL(V) to mask out upper bits before sign extending

* cannon: Run semver lock

* cannon: Update MIPS64.sol version to 1.0.0-beta.1

* cannon: Remove MIPS64 from code freeze list

* cannon: Follow go naming convention for U32Mask

* op-challenger: Check chain-specific safe heads (#14121)

* op-challenger: Check local safe heads to return invalid hash at the first chain that is unsafe.

* Update interop tests and enable challenger tests.

* chore: Remove CI builder ops packages (#14091)

* op-batcher: handle errors more gracefully on shutdown (#14111)

* op-batcher: do not log error from network call when shutting down

Also prefer local context to global one. We can detect if the RPC call failed due to the context being cancelled, so we can avoid any more work in this function (including the bit that logs an error).

* avoid error logging expected error

* define a context for the txmgr.Queue and cancel during shutdown

this should speed up shutdown, allowing goroutines to exit more quickly

* op-deployer: Add book (#14136)

* op-node,op-service: Add Timeout Flag for L2 Engine (#13853)

* op-node: Add --l2.engine-rpc-timeout flag

Add a new --l2.engine-rpc-timeout flag to configure the timeout duration for L2 Engine RPC calls. This allows for more flexible and explicit control over RPC call timeouts.

* op-service: Remove redundant timeout from engine client

* dependabot(gomod): bump github.com/cockroachdb/pebble (#13927)

Bumps [github.com/cockroachdb/pebble](https://github.com/cockroachdb/pebble) from 1.1.3 to 1.1.4.
- [Release notes](https://github.com/cockroachdb/pebble/releases)
- [Commits](https://github.com/cockroachdb/pebble/compare/v1.1.3...v1.1.4)

---
updated-dependencies:
- dependency-name: github.com/cockroachdb/pebble
  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-proposer: use atomic.Bool instead of bool+mutex (#13122)

Signed-off-by: jsvisa <delweng@gmail.com>

* feat: ensure mipsVersion == 1 (#14133)

* contracts-bedrock: delete dead config (#14146)

This config file is no longer used now that we moved over to the
kurtosis based devnet. Removing it means less maintenance burden.

* feat: prevent ASR deployment collisions (#14134)

* feat: prevent ASR deployment collisions

* Slightly more compact casts

* lint and semver-lock

* feat: bump semvers

---------

Co-authored-by: alcueca <alberto@yield.is>

* supervisor: Refactor `Contains` ; Check Timestamps (#14152)

* supervisor: Refactor "Contains" ; Check Timestamps

* Update op-supervisor/supervisor/types/types.go

Co-authored-by: protolambda <proto@protolambda.com>

---------

Co-authored-by: protolambda <proto@protolambda.com>

* interop: Add metrics to track CrossUnsafe and CrossSafe heads. (#13923)

* tweak: Allow RecordRef metrics to take arbitrary labels.

* interop: Add metrics to track CrossUnsafe and CrossSafe heads.

* tests: Add metrics tests to the backend.

* feat: Update forge-std to latest tag (#14151)

Gives us the vm.prank() variants with delegateCall options

* feat: use v4 engine APIs when Isthmus enabled (#13976)

* feat: use v4 engine APIs when Isthmus enabled

* fix: ensure op-program requests hash empty

* Clean up test logging

* Fix tests

* Remove debug

* Ensure empty array is passed to new payload

* Fix op-program engine test

* Remove debug line

* Ensure requests empty array in other engine tests

* Use built-in empty requests hash

* Remove empty requests check

* Set prague time to isthmus time

* Resolve merge conflicts

* dependabot(gomod): bump github.com/consensys/gnark-crypto (#14089)

Bumps [github.com/consensys/gnark-crypto](https://github.com/consensys/gnark-crypto) from 0.15.0 to 0.16.0.
- [Release notes](https://github.com/consensys/gnark-crypto/releases)
- [Changelog](https://github.com/Consensys/gnark-crypto/blob/master/CHANGELOG.md)
- [Commits](https://github.com/consensys/gnark-crypto/compare/v0.15.0...v0.16.0)

---
updated-dependencies:
- dependency-name: github.com/consensys/gnark-crypto
  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>

* feat: add Prague to genesis script based on Isthmus (#14093)

* feat: add prague to genesis script based on Isthmus

* Ensure Isthmus fork status defaults to nil

* Ensure L1 prague disabled by default

* Remove extra change

* op-supervisor: Implement supervisor_syncStatus RPC (#14138)

* op-supervisor: Implement supervisor_syncStatus RPC

* set localUnsafe status after indexing; update tests

* Route origin updates to supe sync-status

* fix supervisor_client syncStatus

* fix naming and MinSyncedL1 comment

* op-e2e: Refactor interop fault proofs tests (#14135)

Rough start of a DSL to make writing interop action tests easier and higher level. This significantly reduces the amount of code required to setup the chain state needed for testing and generally makes the tests more readable.

* ci: Record git hash with uploaded prestates (#14080)

* ci: Publish git commit and prestate hash alongside prestate

Fix naming of published prestates from release tags - they should be named as the prestate hash with no suffix.

* Test publishing

* Only upload git commit info for branch uploads, not releases.

* Skip uploading preimages to not pollute files while testing.

* Fix config

* Add context

* Include actual prestate hash

* Disable testing

* vm-runner: Download and log metadata for named prestates

* contracts-bedrock: delete dead code (#14163)

removes a dead deployment file that was committed into the repo. this
should not be there.

* op-service/txmgr: fix `pending_txs` metric (#14168)

* op-service/txmgr: add  TestQueue_Send_MaxPendingMetrics

* SendAsync: simplify m.metr.RecordPendingTx() usage

* use anonymous fn

* tidy

* feat: etch and reset upgrader (#14150)

* feat: etch and reset upgrader

* fix var names

* feat: fix: testFuzz_upgrade_nonUpgradeControllerDelegatecallerShouldNotSetIsRCToFalse_works

* op-program: reuse EVM instance in L2 block processor (#14170)

* cannon: Expand test coverage (#14175)

* cannon: Add a few more test cases

* cannon: Use U32Mask throughout mips_instructions

* Opcm/restore abs prestate (#14137)

* feat: Restore absolutePrestate input to opcm.upgrade()

* Update packages/contracts-bedrock/test/opcm/UpgradeOPChain.t.sol

Co-authored-by: Matt Solomon <matt@mattsolomon.dev>

---------

Co-authored-by: Matt Solomon <matt@mattsolomon.dev>

* ci: Separate coverage and fuzzing jobs (#14178)

* ci: Separate coverage job

Seeing a huge amount of CPU usage on this job which is starving the executor of resources.

* Also move the fuzzing

* use cci ip ranges

* op-supervisor: Refactor Database Nomenclature (#14157)

* Rename/Reorganize LocalDerivedFromStorage

* Rename LocalDerivedFromStorage to DerivationStorage ; remove CrossDerivedFromStorage

* Rename DerivedFrom to Source in events

* Rename DerivedFrom to Source in Types

* fix lint

* IsCanonical -> ContainsDerived

* Clean up Origin Event structure

* Remove most references to DerivedFrom

* Remove superflous First from function names

* feat: reconfigure gas snapshot into standard test (#14153)

Reconfigures existing gas snapshot system into a normal forge test.
Gas usage will now be asserted as part of CI instead of requiring
manual review.

* add advice about triggering CI on external fork PRS (#14176)

* ci: Separate out contracts tests (#14189)

* ci: Separate out contracts tests

* skip coverage test for now

* ci: Tweak rerun parameters (#14193)

* ci: Tweak rerun parameters

* ci: reduce parallel

* Revert "interop: Add metrics to track CrossUnsafe and CrossSafe heads. (#13923)" (#14190)

This reverts commit a3c806928e107c0c55c5f7890449503ac04c4bbc.

* fix: bound DGF search tests for upgrade tests (#14195)

Bounds the size of the DisputeGameFactory search tests when
running forked tests.

* op-program: use withdrawalsRoot from header if Isthmus (#14180)

* op-program: use hdr withdrawalsRoot if isthmus is active

when computing L2OutputRoot, no need to re-compute the storage root
if Isthmus is active.

* Add Unit test for output root when Isthmus is active

* tweak tests a bit

* bail if withdrawalsHash is unexpectedly nil

---------

Co-authored-by: Vinod Damle <5338861+vdamle@users.noreply.github.com>

* Maur/faster upgrade coverage (#14191)

* ctb: filter upgrade tests in coverage

* ci: use rpc cache for coverage generation

* undo coverage skip

* ci: fix cache key generation

---------

Co-authored-by: Matthew Slipper <me@matthewslipper.com>

* feat: add op-dripper docker builds to circle-ci (#14177)

* op-e2e/actions: Accelerated precompile tests (#14198)

* op-e2e/actions: Accelerated precompile tests

* remove unused gas field

* dedup test fixtures

* Remove MustRegister calls that do nothing (#14205)

MustRegister with no arguments seems to do nothing:
https://github.com/prometheus/client_golang/blob/v1.20.5/prometheus/registry.go#L403

* op-e2e: Move interop action test helpers to a separate package. (#14204)

* ci: Put test vectors on Docker (#14207)

* feat: add up metric to runner (#14200)

* feat: add up metric to runner

* Don't parameterize vm-runner up metric

* Remove useless MustRegister()

* op-batcher: Lower default active seq check duration to 5s (#14213)

Throttling depends on the batcher always being pointed at the active
sequencer. So the check should happen much more frequently.

* op-batcher: add channel_queue_length gauge metric (#14212)

* op-batcher: add channel_queue_length gauge metric

* update NoopMetrics

* integrate new metric behaviour into unit tests

* move metric update outside of loop

* Maur/set unfrozen files (#14186)

* ci: only run check-frozen-files against develop

* feat: change from disallow listing to an explicit allowlist

* ctb: updated readme

* fix shellcheck

* ci: add check for target branch

---------

Co-authored-by: Matt Solomon <matt@mattsolomon.dev>

* interop: Add metrics tracking Cross-validated blocks. (#14211)

* Two fixes 1) Fix getBlock - it never actually pulled in transactions 2) fix nil pointer possible deref  (#14188)

* Fix getBlock - it never actually pulled in transactions

* exit with error if base fee is nil

* fix test-upgrade-against-anvil env vars (#14167)

* fix test-upgrade-against-anvil env vars

* remove unnecessary --no-match-path

* op-deployer: Delete unused OPCM deployer (#14219)

* ci: Move sanitize onto Docker executor (#14217)

* ci: Move sanitize onto Docker executor

* apt update

* op-chain-ops: vm.computeCreateAddress cheatcode (#14222)

* add cannon folder tests to upgrade test and coverage (#14221)

* feat: add EIP-2935 network upgrade tx (#14110)

* feat: add Isthmus network upgrade tx

* Update docs

* Add Isthmus recent block hash contract test

* Fix comment

* go.mod: Update op-geth dependency (#14187)

* fix: clear out game list for forked tests (#14223)

Clears out the game list when running the lessThanNAvailable test
on forked networks. Without this change the test would iterate
backwards over thousands of dispute games and take 10+ minutes
in CI.

* op-e2e/deployer: Test QoL improvements (#14208)

* op-e2e/deployer: Test QoL improvements

- Uses Anvil rather than kurtosis in TestApplyEndToEnd
- Adds a timeout to the Anvil runner in case Anvil doesn't start
- Creates some utilities to clean up usages of retryproxy
- Deletes the dependency set tooling from op-deployer since it isn't needed anymore

* port more contracts stuff onto docker

* reduce size of upgrade runner

* feat: fast unified pre-pr command (#14194)

Updates pre-pr to be a one-stop shop for all of your snapshotting
and checking needs before committing. Also introduces pre-commit
as an alias for pre-pr because pre-commit is a more accurate name
for what the command does now.

* ops: Add monorepo ops book (#14233)

Adds an mdbook documenting the monorepo ops process.

* nit fixes (#14166)

* nit fixes

* nit fixes

* improve comments

* dependabot(gomod): bump github.com/lmittmann/w3 from 0.17.5 to 0.17.7 (#14236)

Bumps [github.com/lmittmann/w3](https://github.com/lmittmann/w3) from 0.17.5 to 0.17.7.
- [Release notes](https://github.com/lmittmann/w3/releases)
- [Commits](https://github.com/lmittmann/w3/compare/v0.17.5...v0.17.7)

---
updated-dependencies:
- dependency-name: github.com/lmittmann/w3
  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-deployer: Fix protocol versions owner (#14184)

* op-deployer: Fix protocol versions owner

* add some tests, convert to use SR across most methods

* lint

* devnet-sdk: cleanup field descriptions and json tags (#14239)

* ci: Reduce e2e cores (#14238)

Allows for more executor concurrency for negligible performance tradeoff.

* feat: accelerate BLS precompiles (#14154)

* feat: accelerate BLS precompiles

* Update precompile contracts fork

* Add precompiles to client and add tests

* Update precompile test names

* chore: add todo and fix empty input handling

* Use params from geth

* Fix proofs helper hardfork to use Isthmus

* Fix typo

* op-challenger: Implement SyncValidator for super games (#14209)

* op-challenger: Implement SyncValidator for super games

* fix broken test

* cannon: Tweak sign extension logic (#14185)

* cannon: Add some unit tests for SignExtend

* cannon: Tweak signExtend logic

* cannon: Run semver-lock

* cannon: Fix lint error

* ctb: move vm.broadcast into createDeterministic (#14243)

* ctb: Use startbroadcast/stopbroadcast with createDeterministic

This backports https://github.com/ethereum-optimism/optimism/pull/14241 onto develop. While deploying the interop contracts we discovered a bug where nonces would incorrectly increase following calls to `createDeterministic`. This is because `vm.broadcast` will broadcast the _next_ call, but `createDeterministic` sometimes doesn't emit a call at all. This means that (in the case of the Sueprchain deployment) the calls to the input contract's `set` method would be called instead. This in turn caused nonces to increase incorrectly.

To fix this issue, this PR updates the Solidity implementation to use `vm.startBroadcast()` and `vm.stopBroadcast()`. This avoids the issue altogether. To prevent further incorrect usages of `vm.broadcast` I also opened https://github.com/ethereum-optimism/optimism/pull/14242 which adds a Semgrep rule to check for this case.

* move vm.broadcast into createDeterministic

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks (#14179)

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks

* all: use OptimismConfig in consolidation to translate zero attribs

* TEST using default config if it cannot be fetched

* op-node/node: add ChainOpConfig override

and use it instead of a default config

* Add ChainConfig's OptimismConfig into rollup.Config

* Fix TestGetRollupConfig

* revert passing OptimismConfig around

it's now part of the rollup.Config

* dependabot(gomod): bump github.com/kurtosis-tech/kurtosis/api/golang (#14250)

Bumps [github.com/kurtosis-tech/kurtosis/api/golang](https://github.com/kurtosis-tech/kurtosis) from 1.4.3 to 1.4.4.
- [Release notes](https://github.com/kurtosis-tech/kurtosis/releases)
- [Changelog](https://github.com/kurtosis-tech/kurtosis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kurtosis-tech/kurtosis/compare/1.4.3...1.4.4)

---
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>

* Added README to op-dripper (#14165)

* fix(op-deployer): don't deploy dachallenge contract when using GenericCommitment (#14248)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks (#14252)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks

* op-supervisor: improve logging

* op-supervisor: fix fromda test, add test cases

* op-supervisor: fix lint

* interop: op-supervisor event metrics (#14258)

* op-node,op-supervisor: share event metrics code

Signed-off-by: protolambda <proto@protolambda.com>

* op-node: cleanup noop metrics

---------

Signed-off-by: protolambda <proto@protolambda.com>

* node: Ignore No-Op Reset Requests (#14256)

* op-supervisor: improve logging (#14262)

* fix(devnet-sdk): use correct Address type (#14259)

* chore: update kurtosis to 1.4.4 (#14255)

also add kurtosis client to mise tools.

* fix(devnet-sdk): use correct chain ID type (#14261)

* fix(devnet-sdk): use correct Address type

* fix(devnet-sdk): use correct chain ID type

* ci: Log op-e2e output to files (#14257)

* ci: Log op-e2e output to files

* update log text

* fix(devnet-sdk): ensure balances are comparable (#14267)

In error cases, make sure we can still compare resulting balances
without crashing.

In particular, this makes interop_smoke_test skip properly if it can't
find a funded wallet to use.

* ci: Reduce publish job to daily (#14276)

* op-deployer: add architecture diagram (#14281)

* op-deployer: add architecture diagram

* fix formatting

* less verbose diagram description

* fix: Orbifying checkout-with-mise. (#14282)

* Add bootnodes ran by UL (#14279)

* op-conductor: Add HeartbeatTimeout & LeaderLeaseTimeout flags (#14271)

* Add MT Cannon audit reports (Coinbase and Spearbit) (#14218)

* Add MT Cannon audit report

* Fix MT Cannon audit report name

Co-authored-by: mbaxter <meredith@oplabs.co>

* Add coinbase MT Cannon audit report

* Leave "subsequent release" blank for now on audit readme

---------

Co-authored-by: mbaxter <meredith@oplabs.co>

* feat(devnet-sdk): enable preconditions enforcement (#14268)

In some use-cases, failure to meet preconditions is in itself an error.
For example, when running acceptance tests against a devnet, we
presumably epxect that the acceptance tests should apply.

This change adds support for an environment variable
DEVNET_EXPECT_PRECONDITIONS_MET=1 that will then mark as failed the
tests for which the preconditions are not met by the provided system.

* fix: bump patch version for mise orb. (#14290)

* feat: pass args thru contracts build commands (#14287)

Updates contracts justfile to pass arguments through the build
commands.

* op-node: fix p2p NAT option (#14280)

* op-program: Update test to ensure interop bootstrapping does not load the L2 chain ID local key (#14300)

* op-conductor: Add new Raft flags into optional flags list (#14299)

* Update op-geth dependency to add uni-mainnet config (#14301)

* op-node: Define message expiry time constant (#14296)

* op-e2e: Fix fpp bls precompile tests (#14291)

* op-challenger: Handle requesting superchain roots beyond the current unsafe head (#14206)

* op-e2e: Introduce helpers for building transition states.

* op-e2e: Add test for disputing a block prior to the proposal block

* op-challenger: Handle requesting superchain roots beyond the current chain head.

* Detect not found responses in prestate provider too.

* Add test to confirm correct enforcement of trace extension activation.

* Add more variants of tests where agreed = disputed. Cover all combinations of trace extension activating.

* Remove printf

* op-supervisor: Fix AddLink error type and clean up reset logic (#14302)

* Fix AddLink error type ; clean up reset logic

* fix tests

* feat(devnet-sdk): add helper to build execution environment (#14298)

* fix: add mirrored restrictions to lite profile (#14295)

Adds mirrored compiler restrictions to the lite profile so that
all generated artifacts get overwritten when switching between
build and build-dev.

* ci: make frozen files check depend on contracts-bedrock-build (#14316)

This parallelizes the job with contracts-bedrock-build so that results
are returned more quickly.

* fix(kurtosis-devnet): make logs more readable (#14317)

By wrapping the observed errors one layer too deep we were introducing
escaped strings into the logs. Now multi-line and quoted strings appear as-is.

* kt interop-devnet: enable super-cannon with interop-prestate (#14172)

* kt-devnet: switch to geth-teku for l1 (#14305)

* op-program: Ensure exec msg inclusion during consolidation (#14101)

* op-program: Ensure exec msg inclusion during consolidation

* implement timestamp invariants in the program

* use msg expiry in rollup config

* remove leftover non-working test

* op-supervisor: Don't reset when node is far behind (#14324)

* op-supervisor: don't reet on all errors (#14326)

* feat: Ignore frozen files check by using a PR label (#14247)

* feat: Ignore frozen files check by using a PR label

* fix: following https://github.com/orgs/community/discussions/26712

* fix: maybe

* fix: follow existing pattern

* fix: temporarily remove the contracts changed check to make it run

* spike: Using jq instead of grep

* fix: don't extract labels twice

* fix: a bit cleaner output

* fix: minor change to trigger CI again

* fix: Bring back the change check

* feat: Docs

* ci: use circleci-agent step halt to end job

---------

Co-authored-by: alcueca <alberto@yield.is>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Maurelian <john@oplabs.co>

* op-e2e: Add action test for cascading reorgs in interop fault proofs (#14266)

* op-e2e: Add tests for cascading invalidations

* Make InboxContract an entity in the DSL.

* op-e2e: Focus test cases on consolidation.

* op-e2e: Generate correct payload when executing messages.

* op-e2e: Skip known failing test with reference to tracking issues.

* OPCM: OPPrestateUpdater for L1 Pectra Defense (#13998)

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* add snapshots

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* fix versions

* add snapshots

* update snapshots & semver

* correct semver

* bump OPCM version

* move interface to inherit IOPCM

* fix interface

* update versions

* add specs

* fix deploy opcm setters

* fix deploy opcm setters

* changes asked on review & semver-lock

* Add non implemented tests for coverage

* linting

* New tests & semverlock

* rewrite hasFDG boolean

* semver-lock

* fix review comments

* pre-pr

* semver

* semver-lock

* semverlock again

* final semverlock

* fix comment about versions

* fix comment about versions

* semverlock opcm

* feat: test upgrading just the pdg vs. both games

* feat: remove unused assertValidGameType() function

* review changes

* remove unnecessary comment

* update interface to fix CI

* change file format

* rebase

* semver lock

* valid semlock

* rerun ci

---------

Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: JosepBove <josep.bove.dalmases@gmail.com>
Co-authored-by: JosepBove <josep@aave.com>

* Use castings according to padding (#14174)

* fix: generate salt through uint, retrieve cahinId through bytes20+uint160

* fix: bytes20 is not necessary

* fix: generated semver-lock.json

* chore: lint

* fix: is this what you want?

* fix: regenerated semver-lock

* chore: bumping version and semver-lock so that CI sees them changing at the same time.

* ctb: move vm.broadcast into createDeterministic (#14243)

* ctb: Use startbroadcast/stopbroadcast with createDeterministic

This backports https://github.com/ethereum-optimism/optimism/pull/14241 onto develop. While deploying the interop contracts we discovered a bug where nonces would incorrectly increase following calls to `createDeterministic`. This is because `vm.broadcast` will broadcast the _next_ call, but `createDeterministic` sometimes doesn't emit a call at all. This means that (in the case of the Sueprchain deployment) the calls to the input contract's `set` method would be called instead. This in turn caused nonces to increase incorrectly.

To fix this issue, this PR updates the Solidity implementation to use `vm.startBroadcast()` and `vm.stopBroadcast()`. This avoids the issue altogether. To prevent further incorrect usages of `vm.broadcast` I also opened https://github.com/ethereum-optimism/optimism/pull/14242 which adds a Semgrep rule to check for this case.

* move vm.broadcast into createDeterministic

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks (#14179)

* op-node/rollup/attributes: Add missing EIP1559Params consolidation checks

* all: use OptimismConfig in consolidation to translate zero attribs

* TEST using default config if it cannot be fetched

* op-node/node: add ChainOpConfig override

and use it instead of a default config

* Add ChainConfig's OptimismConfig into rollup.Config

* Fix TestGetRollupConfig

* revert passing OptimismConfig around

it's now part of the rollup.Config

* dependabot(gomod): bump github.com/kurtosis-tech/kurtosis/api/golang (#14250)

Bumps [github.com/kurtosis-tech/kurtosis/api/golang](https://github.com/kurtosis-tech/kurtosis) from 1.4.3 to 1.4.4.
- [Release notes](https://github.com/kurtosis-tech/kurtosis/releases)
- [Changelog](https://github.com/kurtosis-tech/kurtosis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kurtosis-tech/kurtosis/compare/1.4.3...1.4.4)

---
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>

* Added README to op-dripper (#14165)

* fix(op-deployer): don't deploy dachallenge contract when using GenericCommitment (#14248)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks (#14252)

* op-supervisor: handle out-of-sync on known local-safe tip with already-known source blocks

* op-supervisor: improve logging

* op-supervisor: fix fromda test, add test cases

* op-supervisor: fix lint

* interop: op-supervisor event metrics (#14258)

* op-node,op-supervisor: share event metrics code

Signed-off-by: protolambda <proto@protolambda.com>

* op-node: cleanup noop metrics

---------

Signed-off-by: protolambda <proto@protolambda.com>

* node: Ignore No-Op Reset Requests (#14256)

* op-supervisor: improve logging (#14262)

* fix(devnet-sdk): use correct Address type (#14259)

* chore: update kurtosis to 1.4.4 (#14255)

also add kurtosis client to mise tools.

* fix(devnet-sdk): use correct chain ID type (#14261)

* fix(devnet-sdk): use correct Address type

* fix(devnet-sdk): use correct chain ID type

* ci: Log op-e2e output to files (#14257)

* ci: Log op-e2e output to files

* update log text

* fix(devnet-sdk): ensure balances are comparable (#14267)

In error cases, make sure we can still compare resulting balances
without crashing.

In particular, this makes interop_smoke_test skip properly if it can't
find a funded wallet to use.

* ci: Reduce publish job to daily (#14276)

* op-deployer: add architecture diagram (#14281)

* op-deployer: add architecture diagram

* fix formatting

* less verbose diagram description

* fix: Orbifying checkout-with-mise. (#14282)

* Add bootnodes ran by UL (#14279)

* op-conductor: Add HeartbeatTimeout & LeaderLeaseTimeout flags (#14271)

* Add MT Cannon audit reports (Coinbase and Spearbit) (#14218)

* Add MT Cannon audit report

* Fix MT Cannon audit report name

Co-authored-by: mbaxter <meredith@oplabs.co>

* Add coinbase MT Cannon audit report

* Leave "subsequent release" blank for now on audit readme

---------

Co-authored-by: mbaxter <meredith@oplabs.co>

* feat(devnet-sdk): enable preconditions enforcement (#14268)

In some use-cases, failure to meet preconditions is in itself an error.
For example, when running acceptance tests against a devnet, we
presumably epxect that the acceptance tests should apply.

This change adds support for an environment variable
DEVNET_EXPECT_PRECONDITIONS_MET=1 that will then mark as failed the
tests for which the preconditions are not met by the provided system.

* fix: bump patch version for mise orb. (#14290)

* feat: pass args thru contracts build commands (#14287)

Updates contracts justfile to pass arguments through the build
commands.

* op-node: fix p2p NAT option (#14280)

* op-program: Update test to ensure interop bootstrapping does not load the L2 chain ID local key (#14300)

* op-conductor: Add new Raft flags into optional flags list (#14299)

* Update op-geth dependency to add uni-mainnet config (#14301)

* op-node: Define message expiry time constant (#14296)

* op-e2e: Fix fpp bls precompile tests (#14291)

* op-challenger: Handle requesting superchain roots beyond the current unsafe head (#14206)

* op-e2e: Introduce helpers for building transition states.

* op-e2e: Add test for disputing a block prior to the proposal block

* op-challenger: Handle requesting superchain roots beyond the current chain head.

* Detect not found responses in prestate provider too.

* Add test to confirm correct enforcement of trace extension activation.

* Add more variants of tests where agreed = disputed. Cover all combinations of trace extension activating.

* Remove printf

* op-supervisor: Fix AddLink error type and clean up reset logic (#14302)

* Fix AddLink error type ; clean up reset logic

* fix tests

* feat(devnet-sdk): add helper to build execution environment (#14298)

* fix: add mirrored restrictions to lite profile (#14295)

Adds mirrored compiler restrictions to the lite profile so that
all generated artifacts get overwritten when switching between
build and build-dev.

* ci: make frozen files check depend on contracts-bedrock-build (#14316)

This parallelizes the job with contracts-bedrock-build so that results
are returned more quickly.

* fix(kurtosis-devnet): make logs more readable (#14317)

By wrapping the observed errors one layer too deep we were introducing
escaped strings into the logs. Now multi-line and quoted strings appear as-is.

* kt interop-devnet: enable super-cannon with interop-prestate (#14172)

* kt-devnet: switch to geth-teku for l1 (#14305)

* op-program: Ensure exec msg inclusion during consolidation (#14101)

* op-program: Ensure exec msg inclusion during consolidation

* implement timestamp invariants in the program

* use msg expiry in rollup config

* remove leftover non-working test

* op-supervisor: Don't reset when node is far behind (#14324)

* op-supervisor: don't reet on all errors (#14326)

* feat: Ignore frozen files check by using a PR label (#14247)

* feat: Ignore frozen files check by using a PR label

* fix: following https://github.com/orgs/community/discussions/26712

* fix: maybe

* fix: follow existing pattern

* fix: temporarily remove the contracts changed check to make it run

* spike: Using jq instead of grep

* fix: don't extract labels twice

* fix: a bit cleaner output

* fix: minor change to trigger CI again

* fix: Bring back the change check

* feat: Docs

* ci: use circleci-agent step halt to end job

---------

Co-authored-by: alcueca <alberto@yield.is>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: Maurelian <john@oplabs.co>

* op-e2e: Add action test for cascading reorgs in interop fault proofs (#14266)

* op-e2e: Add tests for cascading invalidations

* Make InboxContract an entity in the DSL.

* op-e2e: Focus test cases on consolidation.

* op-e2e: Generate correct payload when executing messages.

* op-e2e: Skip known failing test with reference to tracking issues.

* OPCM: OPPrestateUpdater for L1 Pectra Defense (#13998)

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* add snapshots

* Add a new updatePrestatehash method to the OPContractsManager

* deployed

* second deployment

* Go back to refactor

* delete file

* format

* make diff smaller

* even smaller

* missing bracket

* Go back on refactoring

* fix build

* fix build

* fix build

* fix build

* fix versions

* fix versions

* add snapshots

* update snapshots & semver

* correct semver

* bump OPCM version

* move interface to inherit IOPCM

* fix interface

* update versions

* add specs

* fix deploy opcm setters

* fix deploy opcm setters

* changes asked on review & semver-lock

* Add non implemented tests for coverage

* linting

* New tests & semverlock

* rewrite hasFDG boolean

* semver-lock

* fix review comments

* pre-pr

* semver

* semver-lock

* semverlock again

* final semverlock

* fix comment about versions

* fix comment about versions

* semverlock opcm

* feat: test upgrading just the pdg vs. both games

* feat: remove unused assertValidGameType() function

* review changes

* remove unnecessary comment

* update interface to fix CI

* change file format

* rebase

* semver lock

* valid semlock

* rerun ci

---------

Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: JosepBove <josep.bove.dalmases@gmail.com>
Co-authored-by: JosepBove <josep@aave.com>

* fix: generated semver-lock.json

* chore: bumping version and semver-lock so that CI sees them changing at the same time.

* chore: bump semver-lock.json

* chore: bump versions and semver-lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: protolambda <proto@protolambda.com>
Co-authored-by: alcueca <alberto@yield.is>
Co-authored-by: Matthew Slipper <me@matthewslipper.com>
Co-authored-by: Sebastian Stammler <seb@oplabs.co>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ControlCplusControlV <44706811+ControlCplusControlV@users.noreply.github.com>
Co-authored-by: Samuel Laferriere <samlaf92@gmail.com>
Co-authored-by: protolambda <proto@protolambda.com>
Co-authored-by: Axel Kingsley <axel.kingsley@gmail.com>
Co-authored-by: Yann Hodique <yann@oplabs.co>
Co-authored-by: Sam Stokes <35908605+bitwiseguy@users.noreply.github.com>
Co-authored-by: blaine <blainemalone01@gmail.com>
Co-authored-by: Joshua Gutow <jgutow@oplabs.co>
Co-authored-by: Tei Im <40449056+ImTei@users.noreply.github.com>
Co-authored-by: Paul Dowman <paul@pauldowman.com>
Co-authored-by: mbaxter <meredith@oplabs.co>
Co-authored-by: smartcontracts <kelvin@optimism.io>
Co-authored-by: Adrian Sutton <adrian@oplabs.co>
Co-authored-by: Inphi <mlaw2501@gmail.com>
Co-authored-by: Maurelian <john@oplabs.co>
Co-authored-by: Zach Howard <zach@oplabs.co>
Co-authored-by: Park Changwan <pcw109550@gmail.com>
Co-authored-by: Maurelian <maurelian@protonmail.ch>
Co-authored-by: JosepBove <josep@oplabs.co>
Co-authored-by: JosepBove <josep.bove.dalmases@gmail.com>
Co-authored-by: JosepBove <josep@aave.com>

* op-supervisor: Fix MinSyncedL1 and add Hash Checks (#14337)

* Fix MinSyncedL1 and add Hash Checks

* fix test

* expand testing

* Return error

* feat: improve comments on OPPrestateUpdater (#14338)

* feat: improve comments on OPPrestateUpdater

* lint

* snapshots

* feat: don't do interfaces check in build recipe (#14342)

* ctb: Add StandardValidator (#14325)

* ctb: Add StandardValidatorV180

Adds a validation contract for chains at version 1.8.0. The contract moves as many checks as possible from `DeployOPChain.s.sol` into a contract that can be deployed on chain.

* add test for new linter rules

* test fixes

* crr fixes

* fix broken semgrep rule

* feat: add preinstall and test for EIP-2935 (#14321)

* feat: add preinstall and test for EIP-2935

* Fix sender and storage addr

* Fix

* Add preinstall

* dependabot(gomod): bump github.com/minio/minio-go/v7 (#14293)

Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.84 to 7.0.85.
- [Release notes](https://github.com/minio/minio-go/releases)
- [Commits](https://github.com/minio/minio-go/compare/v7.0.84...v7.0.85)

---
updated-dependencies:
- dependency-name: github.com/minio/minio-go/v7
  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-program: Add v1.5.0-rc.2 prestate hashes. (#14347)

* op-program: Simplify block attrs replacement (#14107)

And enable unhappy consolidation action test

* op-deployer: doc: Fix outdir flag (#14323)

* feat: add game type event (#14196)

* feat: Ignore frozen files check by using a PR label

* fix: following https://github.com/orgs/community/discussions/26712

* fix: maybe

* fix: follow existing pattern

* fix: temporarily remove the contracts changed check to make it run

* spike: Using jq instead of grep

* fix: don't extract labels twice

* fix: a bit cleaner output

* fix: minor change to trigger CI again

* fix: Bring back the change check

* ci: use circleci-agent step halt to end job

* fix: temporarily remove the contracts changed check to make it run

* fix: Bring back the change check

* fix: temporarily remove the contracts changed check to make it run

* fix: Bring back the change check

* feat: add game type event

* lint and semver-lock

* snapshtos

* feat: add old dispute game address to event

* feat: update semver-lock and oppu interface

* feat: bump opcminterop semver too

* snapshots

* semver

semver

* fix: Do not assume address(fdg) != 0

---------

Co-authored-by: alcueca <alberto@yield.is>

* fix: Added a doctoc recipe to the contracts justfile and updated missing TOCs (#14332)

Co-authored-by: alcueca <alberto@yield.is>

* kt-devnet: Store local images even for non-native docker driver (#14322)

* Opcm/fix missing checks (#14357)

* anchor root not 0

* game config checks

* add superchainConfig checks

* OpChainConfig validations

* version bump

* semver

* versions after rebase

* reusable getSuperchainConfig()

* feat: Add IHasSuperchainConfig interface

* move interface & ignore on check

* pre-pr

* force build

* force build

* rerun ci

---------

Co-authored-by: Maurelian <maurelian@protonmail.ch>

* kurtosis-devnet: self-contained enclaves (#14264)

* feat(devnet-sdk): load devnet from URL

* feat(kurtosis-devnet): embed output into enclave

* op-node: Fix p2p to use default bootnodes if none provided (#14373)

* expand set of upgrade tests more (#14245)

* expand set of upgrade tests more

* make FaultDispute_1v1_Actors_Test work for upgrade tests

* fix tests

* add skip test comment

* fix FaultDisputeGame_Test to work with upgrade tests

* fix OptimismPortal2_FinalizeWithdrawal_Test to work with upgrade tests

* fixes

* fixes

* fixes

* fixes

* fix: exempt frozen files is meta, not status (#14369)

Co-authored-by: alcueca <alberto@yield.is>

* op-batcher: prevent `SpanChannelOut` RLP bytes overflowing `MaxRLPBytesPerChannel` (#14310)

* fix op-batcher pack over MaxRLPBytesChannel

* add test cases from different CompressionAlgo

* add fresh compression logic and corresponding comments

* refactor: enhance MaxRLPBytesPerChannel test

* refactor: rename variable and add required messages

* ctb: Add StandardValidatorV200 (#14362)

* ctb: Add StandardValidatorV200

Also refactors the validators to share common base logic.

* CR updates

* fix spec test

* snapshots

* feat: also snapshot safe storage layout (#14378)

* interop: Multi-Managed-Mode (#14363)

* supersystem: Multiple Nodes per L2

* Add failing E2E Multi-Node Test

* interop: Multi Managed Mode

* cap chain processor round-robin

* op-batcher: use local-safe to reduce lag during interop sync (#14265)

* contracts: EventLogger integration test util contract (#14169)

* contracts: EventLogger integration test util contract

* contracts: fix EventLogger test lint

* op-supervisor: Fix Candidate Cross Safe (#14345)

* Fix Candidate Cross Safe

* eagerly update cross safe when cross safe updates

* op-supervisor: return candidate info with ErrOutOfScope, to inform scope bump

* eagerly update cross unsafe

* op-e2e: action test cross-chain cross-safe dependency delay

* op-e2e: fix interop test util

---------

Co-authored-by: protolambda <proto@protolambda.com>

* Replace doctoc for md-doc (#14367)

* fix: replace doctoc for md-doc

* fix: lock the version via specific commit

* fix: found in teh docs it is in pip3 as well

---------

Co-authored-by: alcueca <alberto@yield.is>

* feat: Additional assertions on OPPU happy path (#14383)

For a moment I was concerned that because the `OPPU.Implementations`
struct is populated with zero addresses, that we would be deploying new
broken delayed weths. Fortunately we are reusing the preexisting delayed
weths, as this test shows.

* cannon: Finalize MIPS contract versions (#14384)

* cannon: Finalize mips contract versions

* cannon: Run semver-lock

* OPCM Fix: Failure when addGameType due to common saltMixer (#14364)

* OPCM Fix: Failure when addGameType due to common saltMixer

* fix semver

* fixes

* Update packages/contracts-bedrock/src/L1/OPContractsManager.sol

Co-authored-by: Maurelian <john@oplabs.co>

* fix semver

---------

Co-authored-by: Maurelian <john@oplabs.co>

* op-program: Fast canonical block lookup (#14297)

* op-program: Fast canonical block lookup

* setup eip-2935 system contract predeploy at genesis

* simplify tests

* improve test cov; double cache size; simplify code

* fix canon cache reset at genesis test

* docs: we've got `pre-pr` (#14370)

Co-authored-by: alcueca <alberto@yield.is>

* Added footer to op-deployer (#14374)

* cannon: Code freeze mips contracts (#14407)

* feat(devnet-sdk): first prototype for tx builder (#14112)

This introduces common interfaces and implementations for building
arbitrary transactions, and processing them.

Going forward, this will be helpful to cover the DSL capabilities
needed to validate tx-centric expectations.

The interfaces are very much a work in progress, but they already have
some nice properties, like the fact that they can be implemented in
isolation (the interfaces manipulate only other interfaces and pure
data objects).

* perf(kt-devnet): use deterministic tarballs of contract code to make fileserver runs idempotent (#14365)

* fix: reduce context size for docker images (#14409)

This change tries to trim further the set of artifacts that land in the
docker build context for images that contribute to kurtosis devnets.
We would like idempotent builds to be as fast as possible.

* op-supervisor: Return the replaced block's output root as pending output. (#14402)

* op-supervisor: Set initial sync status for all chains in dep set (#14400)

* fix(kt-devnet): make docker images idempotent (#14410)

Provenance attestations contain, among other things, a timestamp for the
build, which immediately makes the build non-reproducible.
This in turn creates unnecessary churn for the devnet, as each image
appears different even when it has the exact same content.

Conversely, skipping provenance is not really an issue in a devnet
environment.

* op-service: fix error handling in LoadOPStackChainConfigFromChainID (#14395)

The error should be returned if it is NOT nil. Otherwise, nil will
returned in both cases.

* Update DeployUtils semgrep rule to catch any cases where args are NOT used (#14387)

* add semgrep rule that checks that all calls to DeployUtils.create* functions must use named arguments

* add semgrep tests for "sol-safety-deployutils-named-args"

* make _args a compulsory arg to DeployUtils.create* functions

* make _args a compulsory arg to DeployUtils.create* functions

* fixes

* catch panic in step (#12202)

* op-program: Load DependencySet from boot config (#14366)

* op-program: Load DependencySet from boot config

* use depset interface; fix TODOs

* replace chain index with actual index

* use depset interface in host config

* op-service: fix isthmus block-attributes handling (#14361)

* op-service: fix withdrawals-root verification, missing check-block-hash attributes, and add missing implied requests-hash

* op-node: fix isthmus gossip block validator tests

* op-node: fix TestBlockValidator test cases

* op-supervisor: Use ForceWithParent when attaching a Zero-Block (#14418)

* op-program: add execution witness hints to remove dbGet dependency (#12559)

* feat: add account proof and execution witness hints

* Improve hinter abstraction and remove hClient drilling

* Clean up tests

* Fix large chain ID handling

* Fix large chain ID handling

* Add comment explaining request for proof of 0 storage slot.

---------

Co-authored-by: Adrian Sutton <adrian@symphonious.net>
Co-authored-by: Adrian Sutton <adrian@oplabs.co>

* op-supervisor: Anchor Point Initialization Fixes (#14377)

* op-supervisor: Anchor Point Initialization Fixes

* gate update functions behind initialization signal

* Extend tests to ForceInitialize or test Anchor Point correctly

* op-supervisor: make fromda DB more strict (#14375)

* op-supervisor: make fromda DB more strict, handle corruption edge case, add more tests

* op-supervisor: improve db invariant test check

* op-supervisor: fix rewinder test to bump L1 source scope before adding blocks

* backend: Fully rename DerivedFrom -> Source (#14320)

* op-e2e: Use RPC client to query op-supervisor in action tests (#14351)

* op-e2e: Use RPC for querying the supervisor.

* op-supervisor: Extract registration of RPC APIs to reuse in action tests.

* op-e2e: Expose client methods directly.

---------

Co-authored-by: protolambda <proto@protolambda.com>

* op-e2e: Add message expiry action test (#14346)

* op-e2e: Add message expiry action test

* update test fixture

* fix comment

* reduce messag expiry time

* Add DSL option to repeat block creation until a timestamp is reached

* restore test skip

---------

Co-authored-by: Adrian Sutton <adrian@oplabs.co>

* op-deployer: remove strict intent type (#14388)

* op-deployer: remove intent-config-type strict

* rename intent-config-type to intent-type

* fix: eip150 safe try/catch blocks (#14144)

Requires developers to explicitly mark try/catch blocks as safe
from EIP-150 (cue facebook notification). Implements a fuzz test
that demonstrates that closeGame is safe from EIP-150.

* chore(devnet-sdk): Polish types & prepare for usage outside of the monorepo (#14350)

* feat: Constraints, WalletBalanceConstraint

* feat: Chain implementation

* feat: System interfaces

* feat: System

* chore: Types

* feat: Wallet

* chore: Mocks

* feat: Testlib (wallet acquirers)

* chore: Interop test

* chore: Mocks

* chore: Drop unused mockTransactionProcessor

* fix: Types

* fix: Tests

* fix: Unused fields

* dependabot(gomod): bump github.com/lmittmann/w3 from 0.17.7 to 0.17.8 (#14381)

Bumps [github.com/lmittmann/w3](https://github.com/lmittmann/w3) from 0.17.7 to 0.17.8.
- [Release notes](https://github.com/lmittmann/w3/releases)
- [Commits](https://github.com/lmittmann/w3/compare/v0.17.7...v0.17.8)

---
updated-dependencies:
- dependency-name: github.com/lmittmann/w3
  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-proposer: Support retrieving proposals from op-supervisor (#14392)

* op-proposer: Naive wrapping of rollup client.

* op-proposer: Support retrieving proposal data from op-supervisor.

* Fix test

* op-proposer: Reduce level of abstraction for providers

* op-e2e: Fix block number in proposals.

* op-e2e: Add e2e test for proposing super roots.

* op-supervisor: Add unit tests for safe and finalized sync status.

* op-e2e: Push propopser creation into dsl.

* op-proposer: Only log L1Head if it is available from legacy data.

* op-proposer: Refactor source into a separate package.

* Rename method.

* Rename param.

* Increase timeout

* op-challenger: Support super permissioned game type. (#14403)

* fix: kt-devnet failed with arm (#14414)

* fix: kt-devnet failed with arm

* fix

* fix

* fix: remove isGameAirgapped (#14139)

Removes isGameAirgapped because it's essentially just a duplicate
of isGameFinalized if it properly accounts for game resolution.

* fix opcm addGameType delayedWETH collision (#14430)

* fix opcm addGameType delayedWETH collision

* use game type uint as the differenciator

* ctb/op-deployer: Add bootstrap command for validator contracts (#14391)

* ctb/op-deployer: Add bootstrap command for validator contracts

* compiler version

* remove unused import

* fix semgrep

* feat: Introduce Interop Fault Dispute Games (#14308)

* Initial copy

* snapshots

* semantic version for pre-release

* my size was not size

* semver lock fixed oops

* added spec tests

* fix initialization test

* allow modifying super fdg

* Update packages/contracts-bedrock/src/dispute/SuperPermissionedDisputeGame.sol

Co-authored-by: Inphi <mlaw2501@gmail.com>

* Update packages/contracts-bedrock/src/dispute/SuperPermissionedDisputeGame.sol

Co-authored-by: Inphi <mlaw2501@gmail.com>

* Update packages/contracts-bedrock/src/dispute/SuperFaultDisputeGame.sol

Co-authored-by: Inphi <mlaw2501@gmail.com>

* removed new fdg types

* fixed diff with FDG

* snapshot

* semgrep

* semgrep

* Add in new game type

---------

Co-authored-by: Inphi <mlaw2501@gmail.com>

* op-program: Load custom embedded dependency sets (#14423)

* op-program: Load custom embedded dependency sets.

* op-program: Load an array of custom dependency set configs and find the required chain in them.

* op-deployer: add alias for intent-type flag (#14428)

* ctb: Fix delayedweth owner check (#14434)

* fix: AnchorStateRegistry: remove blacklist check in `getAnchorRoot` (#14232)

* remove blacklist check in getAnchorRoot

* chore: update ASR version

---------

Co-authored-by: Kelvin Fichter <kelvinfichter@gmail.com>

* fix: have ci checks use git status porcelain (#14437)

git status --porcelain is better than git diff --exit-code because
it will also detect net new files.

* fix(ci): also clean new files (#14443)

Updates the contracts check task so that it will also clean any
new files that are generated by the provided commands.

* full freeze of u13 affected contracts until release (#14439)

* full freeze of u13 affected contracts until release

* also portal

* Simplify Versioning and move release-to-contract information on-chain (#14314)

* feat: Simplify versioning and move release-to-contract information on-chain

* adding some extra context on how versioning is enforced, and how it should be maintained

* fix: Use `p…
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.

3 participants