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

make the unused imports script check support multiline formatted imports #13695

Merged
merged 1 commit into from
Jan 13, 2025

Conversation

AmadiMichael
Copy link
Member

make the unused imports script check support multiline formatted imports, remove unused imports

The types.sol file included in the excluded files array is done since it imports useful types from LibUDT.sol which it does not use and other contract files import them from Types.sol and not LibUDT.sol.

@AmadiMichael AmadiMichael requested a review from a team as a code owner January 10, 2025 17:06
@AmadiMichael AmadiMichael requested a review from tynes January 10, 2025 17:06
@AmadiMichael AmadiMichael self-assigned this Jan 10, 2025
Copy link

codecov bot commented Jan 10, 2025

Codecov Report

Attention: Patch coverage is 9.09091% with 10 lines in your changes missing coverage. Please review.

Project coverage is 47.19%. Comparing base (7a293b6) to head (13bdfd4).
Report is 23 commits behind head on develop.

Files with missing lines Patch % Lines
...acts-bedrock/scripts/checks/unused-imports/main.go 9.09% 8 Missing and 2 partials ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #13695      +/-   ##
===========================================
- Coverage    47.23%   47.19%   -0.04%     
===========================================
  Files          953      953              
  Lines        79700    79709       +9     
  Branches       766      766              
===========================================
- Hits         37644    37620      -24     
+ Misses       39211    39209       -2     
- Partials      2845     2880      +35     
Flag Coverage Δ
cannon-go-tests-32 62.26% <ø> (-1.98%) ⬇️
cannon-go-tests-64 57.35% <ø> (-1.62%) ⬇️
contracts-bedrock-tests 90.49% <ø> (+2.59%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...es/contracts-bedrock/src/cannon/PreimageOracle.sol 75.91% <ø> (ø)
...acts-bedrock/scripts/checks/unused-imports/main.go 40.90% <9.09%> (-4.71%) ⬇️

... and 33 files with indirect coverage changes

@maurelian maurelian added this pull request to the merge queue Jan 13, 2025
Merged via the queue into develop with commit 3df185a Jan 13, 2025
43 checks passed
@maurelian maurelian deleted the sc/unused-imports-check-multiline-imports branch January 13, 2025 14:50
Rjected added a commit to paradigmxyz/optimism that referenced this pull request Jan 24, 2025
* transition semver-lock script to common framework (#13399)

* deploy-config: Update the mt-cannon absolute prestate on op-sepolia (#13451)

* fix docker warning (#13462)

* Directly Register APIs in RPC Server (#13454)

* Config: Add support for Isthmus (#12847)

* Config: Enable Isthmus

* Contracts: Add isthmus

* set the isthmus time offset in genesis

* rollup.Config implements types.BlockType interface

---------

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

* fix: First Time JWT Generation Bug (#13431)

* fix first-time JWT generation bug

* op-service: improve and test JWT secret loading code

---------

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

* find lone words, rm more unused imports, print file path and not file name (#13461)

* find lone words, rm more unused imports, print file path and not file name

* fixes

* feat(op-deployer): add support for http locator (#13464)

* feat(op-deployer): add support for http locator

Given that the downloader code already supports it, we might as well offer the capability.

This is useful for pointing to local registries during development, without having to worry about SSL.

* update locator_test.go

http is now supported.
ftp can be used for unsupported scheme test.

* op-service: fix RPC websocket support (#13465)

* use disableInitializers (#13183)

* use disableInitializers

* use disableInitializers

* use disableInitializers

* use disableInitializers

* fixes

* assert the values of storage slot of proxies and implementation contracts

* fix initialize's visibility

* fixes

* fixes

* fixes

* semver bump

* cannon: Use 32-bit futex values (#13453)

* cannon: Update futex-related tests - use 32-bit futex values

* cannon: Update go vm implementation - use 32-bit futex values

* cannon: Update sol 64-bit vm implementation - use 32-bit futex values

* cannon: Update sol 32-bit vm implementation - use 32-bit futex values

* cannon: Update MIPS64 version

* cannon: Update MIPS2 version

* cannon: Run semver lock

* cannon: Update semver comments to match actual version

* cannon: Run semver-lock

* cannon: Randomize futex value in register when testing

* cannon: Tweak comment

* cannon: Ignore the upper bytes in the futex value register

* cannon: Make FutexVal thread field 32-bit

* cannon: Run semver-lock

* cannon: Fix some inconsistencies, run semver-lock

* cannon: Rename testutil method

* cannon: Fix parentheses in syscall noop handling (#13470)

* cannon: Fix parentheses in syscall noop handling

* cannon: Add cannon64 test case for the undefined syscall path

* fix typos (#13477)

* Proxy disable initializers check (#13317)

* add script that checks that proxied (non predeploy) contracts call `_disableInitializers` in their constructor

* add check that all initialize functions of proxied contracts (not predeploys) have the external and initializer modifiers

* add to ctb justfile but not in `just check` yet

* fixes

* use semgrep instead

* ...

* fixes

* fixes

* fixes

* fixes

* fixes

* fix comment on semgrep test

* fix semgrep test

* rename rule

* rename rule

* add exception

* Introduce forked upgrade testing (#13323)

* feat: Basic upgrade test scaffolding

* Add Superchain Registry

* Fork from Registry

* feat: allowCheatcodes on setPreinstalls in L2Genesis

* feat: Refactory and clean up registry reads

* feat: cleanup Upgrade.s.sol

* fix: Move strings into function body

Upgrade has no constructor

* feat: Some cleanup

* feat: write optimismPortal2

* feat: Automatically run anvil on 8546

* feat: Add upgrade testing to Ci

* fix: use parameter to set UPGRADE_TEST env var

* feat: more cleanup

* fix: PR feedback

* tweak ci

* fix: justfile bug

* fix: Upgrade syntax errors

* add export MAINNET_RPC_URL to ci

* debug address in use

* feat: Allow cheatcodes for FFIInterface

* feat: use EIP1967Helper

* feat: improve comments in Setup.sol

* feat: add support for interop and optimized test setups

- Implemented the ability to use interop in test configurations.
- Added checks to skip tests when certain conditions for forked tests are met.
- Enhanced Setup with options for overriding L2 genesis and creating forks.
- Included additional logging for L1 setup processes.
- Enabled etching of deployed upgrade contracts for testing purposes.

* feat: Use ETH_RPC_URL as env var name

* test fixes for forking

* feat: anvil-fork-stop does not error

* feat: Do not mess with EVM env on a fork test

* feat: Take anvil out of the loop

* feat: Don't warp if forked

* fix: isForkTest not forkBlock

* lint

* feat: enforce forking from sepolia or mainnet

* fix(ctb): test fixes for a forked env

* Revert "feat: Take anvil out of the loop"

This reverts commit c70e8d7fd6f65319050b06df4eeb78461a682260.

* feat: remove anvil-fork-stop

also add helpful comments on just commands

* fix: unsilence anvil

* fix snapshot and semgrep

* temp: slightly faster just-upgrade loop

* feat: pin fork block

* feat: change upgrade_test to test_upgrade in config.yml for consistency

* feat: cache forked state

* speculative: skip l2 work

* feat: skip benchmark tests if isFork

* feat: skip deploying L2 tokens when forking

* feat: add skipIfForkTest

* feat: limit upgrade testing to L1 contracts

* feat: move skipping logic into Setup.sol

* feat: Simplify ci config for upgrade tests

* gas snapshot

* delete ignored deploy artifact

* remove unused added vm call

* feat: remove modifications to skipped test paths

* feat: improve block number handling

* feat: Document adding a new contract

* fix: ci config syntax error

* better justfile comments

* feat: skip some tests and log messages when you do

* feat: skip SystemConfig tests with incompatible iface

* feat: add returnIfForkTest and fix a bunch of tests

* feat: more test fixes and tweaks

* gas snapshot

* feat: Add test-upgrade-rerun to justfile and ci config

* feat: Make PINNED_BLOCK_NUMBER be not a magic number

* fix: long standing bug unrelated to this work

the L1 xDM test was exercising the L2 xDM. Fork testing caught this
because it skips deploying L2 contracts.
Deploying the L2 contracts to the same network as the L1 contracts was
always a bit janky anyways.

* feat: PDG: cleaner fork test handling

* feat: remove unused import

* fix incorrect vm.roll/warp skipping logic

* fix: OptimismPortal2 tests

* fix gas snapshot

* fix: restore test_list to contracts-bedrock-tests job

* feat(ci): Split up the test-upgrade CI job

* fix(ci): remove erroneous param reference

* feat: Improve caching of forked state

* feat: use config syntax for inserting rpc url

* debug: cache key

* feat: Fix cache key checksum

* Apply suggestions from code review

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

* clarify comment about setup.setup forking

* feat: remove diff meant for upstack

* fix lint

* feat: make isForkTest private and add a getter

* debugging with annotations

* feat: fix test_findLatestGames_static_succeeds

* fix: OptimismPortal2 test_initialize_succeeds

Read guardian from chain rather than config

* feat: fix returnIfForkTest

Properly uses the return opcode to halt the test.

* fix: Portal tests for forking

* fix: DGF test for forking

* fix: Skip CGT tests on L1StandardBridge

* fix: Skip CGT tests on L1CrossDomainMessenger

* fix DGF testFuzz_create_succeeds

* fix: DGF testFuzz_create_sameUUID_reverts

* feat: remove debugging annotations

* fix: remove left over console

* fix: PermissionedDisputeGame tests

* fix: remove unused import

* fix: test_donateETH_succeeds for fork testing

* fix: isForkTest getter call

* feat: Temporarily skip UnexpectedRootClaim failures on forked upgrade tests

* Revert "feat: remove diff meant for upstack"

This reverts commit cab685617fd9db6961debe503f81042575b848f7.

* feat: clearer env var name for NO_MATCH_CONTRACTS

* fix gas snapshot

* fix test_constructor_succeeds tests after disableInit rebase

* lint

---------

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

* op-service: RPC subscribe interface fix and utils (#13476)

* op-service: RPC subscribe interface fix and utils

* op-service: fix subscribe args pass through

* op-chain-ops/ecotone-scalar: prefer `.FillBytes()` to `.Bytes()` and `copy` (#13472)

* prefer .FillBytes() to .Bytes() and copy

The latter can result in an error if the number is less than 32 bytes in length (it gets padded incorrectly).

* add tests

* output to JSON

* add test case for OPM

* tidy up

* use const in test

* feat: Rename Upgrade.s.sol to ForkProd.s.sol (#13480)

* feat: Rename Upgrade.s.sol to ForkProd.s.sol

The updated name is more descriptive of what the code currently does. It
also reflects more accurately the current plan of applying the upgrade
outside of this script in a separate one, which may be named
`Upgrade.s.sol` and  will call `OPCM.upgrade()`.

* feat: fix artifcat name

* feat: ForkLive instead of ForkProd

* op-deployer: Holocene deployment support (#13483)

The artifacts for v1.8.0 were generated from the tag `op-contracts-v180-artifacts-base`, which points to `proposal/contracts/v1.8.0` with the non-proxied OPCM backported.

The OPCM was deployed using the `opcm bootstrap` command. The PDG blueprints were updated using a custom script which you can find at the `op-contracts-v180-blueprints-script` [tag](https://github.com/ethereum-optimism/optimism/commit/a7091185a787ea104343abafc311d65a5916e4b8).

As part of this PR, I also added a bunch of tests to assert that the semver versions of deployed contracts are correct. I'll add similar tests for mainnet once the gov vote passes.

* feat(kurtosis-devnet): add template expansion helper (#13490)

We need a few things:
- some convenience functions for expanding user functions
- optional data to drive the template
- strict expansion (missingkley=error)

* feat(kurtosis-devnet): add spec data source (#13494)

This enables us to parse the input provided to kurtosis for the
enclave creation, and retrieve some basic information to organize the
dynamic information we'll get from the enclave directly.

Namely, the name and network ID for each chain created.

* feat(kurtosis-devnet): add simple local http server (#13495)

Our docker builds can be published to the local registry, so kurtosis
can access them.

We need something similar for contracts bundles for now. We'll bring
up a local http server for the duration of the kurtosis command run,
which will serve the contracts.

* show label on `Host.onFault` (#13503)

* show label on fault

* also show label for onExit

* op-program: Support multiple types of op-program releases (#13498)

* op-program: Support multiple types of op-program releases

* include type in formatted release string

* feat: Move OptimismMintableERC721 and Factory contracts to L2 dir (#13479)

* feat: Move OptimismMintableERC721 and Factory contracts to L2 dir

* feat: Remove outdated comment about 721 bridge refunds.

Either we deleted that code path, or it never existed in the 721 bridge
and we just copy pasted the comment form the ERC20 bridge.

* fix: semver

* feat(kurtosis-devnet): handle building local artifacts (#13496)

This will allow us to point kurtosis to these artifacts, and deploy
them from HEAD.

Right now I'm assuming we have some available "just" recipes for them.
We might decide to do things differently down the road.

* OPCMs state should be checked after a deploy (#13510)

* fix: more robust opcm checking upon deploy.

* Update packages/contracts-bedrock/scripts/deploy/ChainAssertions.sol

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

* Update packages/contracts-bedrock/scripts/deploy/ChainAssertions.sol

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

* fix: pr comments.

---------

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

* feat(kurtosis-devnet): add small cli tool to expand template (#13514)

This can be used in isolation to sanity check that a kurtosis-devnet
template expands properly, without having to run the entire workflow
(although it would fail early anyway).

* Fix typos (#13433)

* Update README.md

* Update README.md

* op-supervisor: fix typo in README.md

---------

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

* feat(kurtosis-devnet): use inspect as a data source (#13493)

This enables us to retrieve information about artifacts and services,
for downstream consumption.

* feat(kurtosis-devnet): extract information from op-deployer artifact (#13492)

This is in service of outputting useful information at the end of the
deployment.

Here we get back some useful wallets and addresses for downstream
consumption.

* feat,interop: add db syncing between nodes (#13357)

* feature: Allow adding arbitrary HTTP handlers to RPC HTTP Server.

* feature: Add sync package to handle streaming db files between nodes.

* tweak: Add DB sync server handler to op-supervisor server.

* feature: Use db sync if it's configured and there's no existing db.

* tweak: Use retry lib, which also adds max retries.

* rename: SyncRPC -> SyncEndpoint.

* tweak: Make the initial chain set part of the Server constructor.

* cleanup: Remove unused functions.

* rename: client -> syncClient to avoid package collision.

* fix: Load DepSet and use for sync server.

* tweak: Use client.BasicHTTPClient for sync client.

* fix: Don't double concat the path.

* tests,fix: Set sync resume to true.

* tweak: Add error context.

* tweak: Make http body close lint-friendly.

* tweak: Change retry policy to backoff from 1s to 30s, up to 10 minutes.

* tests,fix: Use require.ErrorIs to handle wrapped error.

* feat: Readability improvements to Setup.sol (#13511)

* Update message_test.go (#13517)

* fix: test filtering in CI (#13526)

* feat(kurtosis-devnet): provide main wrapper for kurtosis (#13524)

This handles deploying the kurtosis enclave according to spec, and
then stitching together the relevant information to be transmitted for
downstream consumption.

* op-proposer: (DFG) skip new game creation if outputRoot is unchanged (#13288)

* op-proposer: do not propose if outputRoot is the same as last proposed game

* fixed porposer tests

* PR comments

* Fix log message.

---------

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

* Remove L2OutputOracle and legacy OptimismPortal (#13489)

* attempt...

* fixes

* fix checks

* fix kontrol build

* update DeploymentSummaryFaultProofs kontrol hash

* fixes

* undo unnecessary change

* feat: Reduce diff and usage of OptimismPortal2

* semver

* fix: init test

---------

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

* Added in extra dependency details to the getting started versions script to point people to where to learn more. (#13540)

* Add success requirement (#13499)

Co-authored-by: Tarun Khasnavis <tarunkhasnavis@Taruns-MacBook-Pro.local>

* feat(contracts): add more require revert error message (#12702)

* ct/scripts/ChainAssertions: add require revert message

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

* ct/scripts/deploy/Deploy: add require revert message

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

* ct/scripts/deploy/DeployOwnership: add require revert message

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

* ct/scripts/deploy/DeployPeriphery: add require revert message

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

* feat(semgrep): enable for all solidity files, except WETH9

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

* fix require issues

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

* fix(semgrep): run just semgrep to fix the require rules

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

---------

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

* ci: geth --netrestrict to local docker ips (#13555)

* feat(kurtosis-devnet): main tool for deploying devnets (#13525)

This ties together the various capabilities in pkg/ and orchestrates them. The phases are:
- build local artifacts per input template specification
- put them where they can be accessed at runtime by kurtosis
- run the deployment
- collect useful information and output it for downstream consumption

Also provide sample devnet definitions

Those are just starting points. We'll need to come up with definitions
that actually make sense.

Note that there is a temporary workaround for op-deployer image:

We need http locator support, which has been merged into op-deployer,
but the current version at HEAD doesn't quite work with kurtosis yet.

We'll fix that separately, at which point we'll be able to point to a
localDockerBuild of "op-deployer" just as well, if we want to.

* [op-challenger] Cut stale comment (#13559)

* op-program: Update prestate releases for op-program/v1.4.1-rc.1 (#13564)

* [op-program] Update releases.json

* [op-program] Tweak verify formatting

* feat(kurtosis-devnet): build/serve prestate proofs (#13560)

This prepares the ground for op-challenger needing a URL locator
serving prestate proof files.

A {{localPrestate}} placeholder will expand to a URL that's usable by
op-challenger.

* chore: Upgrade `kona-client` version (#13565)

* op-batcher: Fix concurrent map write (#13527)

mtx on channel_manager too

* ops: Remove the legacy Python devnet, clean up ops (#13558)

* fix cross-op-node (#13552)

* fix: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (#13542)

* op-batcher: remove unecessary mutex (#13569)

* Revert "op-batcher: Fix concurrent map write (#13527)"

This reverts commit 90435d076bdc9a7f4cee6ade0fa86afb9dc2609d.

* lock channelMgrMutex during recordFailedDARequest

* rename / export pruneSafeBlocks and pruneChannels

* feat: remove enableLegacyContracts (#13562)

* feat: remove enableLegacyContracts

* feat: remove setUseFaultProofs

* feat: Remove useFaultProofs branch in Deploy._run()

* gas snapshot

* feat: remove useFaultProofs

* feat(kurtosis-devnet): refactor run logic (#13554)

This change reimplements run over the kurtosis SDK instead of shelling
out to the CLI tool, which fixes potential consistency problems with
other uses of the SDK.

Additionally, we split the endpoint detection logic into a separate
entity (will make it a separate package a bit later), and improve the
host handling part by no longer assuming reachability on localhost
(implicitly assuming Docker backend). This is a step toward supporting
k8s backend transparently.

* feat(kurtosis-devnet): pass args in-memory (#13576)

Now that we don't use the kurtosis cli, there's no reason to go
through the filesystem to pass a configuration file.

* fix(kurtosis-devnet): avoid re-building proofs (#13571)

Now that https://github.com/ethpandaops/optimism-package/pull/116
defines a cannon_prestates_url for each challenger instance, we better
skip rebuilding the same thing multiple times.

* feat(kurtosis-devnet): cut build time for prestate (#13577)

For the purpose of seeding op-challenger, we need only the proof files.

This change adds a separate target that outputs only these.

Unfortunately, docker outputs can be pretty slow, so avoiding dumping
the heavier binaries makes a significant differente performance-wise.

* fix(kurtosis-devnet): interop definition (#13578)

Adjust the definition, based on latest changes in kurtosis
optimism-package.

* fix(kurtosis-devnet): adjust build definitions (#13579)

- fix the op-challenger image build, as currently
  ops/docker/op-stack-go/Dockerfile defaults to a non-existing tag.

- make it easier to point to an alternate kurtosis package (like a
local for for example)

* cannon: Add mtcannon64 state versioning (#13582)

* cannon: Add new state version and start migrating

* cannon: Add new test state for version 4

* cannon: Update cannon commands to use new state version

* cannon: Update cannon embeds command

* cannon: Update Dockerfile to include cannon version 3 binary

* Support multiple withdrawals in a single receipt (#13568)

* fix: outdated to anton-rs images (#13596)

* feat(kurtosis-devnet): split SDK-based logic into separate pkgs (#13581)

This is a code cleanup change.

This moves all the code built on top of Kurtosis SDK into separate
packages for better clarity.

* cannon arch: move derivable stuff to arch.go (#13350)

* cannon arch: move derivable stuff to arch.go

* address comments

* cannon: Add new prestate for op-program/v1.4.1-rc.2 (#13597)

* feat: Use encodeCall for type safety (#13561)

* feat: Use encodeCall for type safety

A very common issue (both from experience and observation) is
failing to correctly encode the initializer arguments in
`encodeSystemConfigInitializer()`. This fixes that.

I believe that at one point we needed to be able to pass the 4 bytes
selector in as a string, but that no longer seems to be the case.

* semver

* feat: expand use of encodeCall to rest of OPCM

* semver lock

* fix(kurtosis-devnet): point to HEAD op-deployer (#13600)

* fix(kurtosis-devnet): try harder to find a host ip (#13604)

On Mac and Windows, we should be relatively safe using
host.docker.internal (feature of Docker Desktop)

On Linux, try to find the docker bridge and infer the IP from
there.

* feat(kurtosis-devnet): output L1 addresses (#13601)

Dump a few potentially interesting addresses as part of the L1 manifest.
In particular, superchain addresses.

Implementation addresses are provided as well, as they might come in
handy for debugging purposes.

Output now looks like:
...
  "l1": {
    "name": "Ethereum",
    "nodes": [
      {
        "cl": "http://127.0.0.1:50973",
        "el": "http://127.0.0.1:50965"
      }
    ],
    "addresses": {
      "delayedWETHImpl": "0x6cc791cd89220c47952885782156e5e8f2833063",
      "disputeGameFactoryImpl": "0x256fa44786f5b9aa47f13639b97a52cbbb8d3b6e",
      "l1CrossDomainMessengerImpl": "0xe70dae11d895c2e508e7d1c0c91dd0f3e4e971c3",
      "l1ERC721BridgeImpl": "0x5a0242103310c7992773430e790c142b7e94ef3a",
      "l1StandardBridgeImpl": "0x8eb57e8ca6e1e3216b4293cc37d621a43c17ec40",
      "mipsSingleton": "0xb5322da185af39b53f8d3cbf40636eb3f1b527f2",
      "opcm": "0xf0f6e276962a776112511c4ea74ad12b4e44cd6b",
      "optimismMintableERC20FactoryImpl": "0x5f554a3eabcc8e2055040d563ef4910e8bacff8d",
      "optimismPortalImpl": "0x9d1da1fef40e2b5f44ed193bd88f1d3ee4a31cc5",
      "preimageOracleSingleton": "0x31502454e4b07ab6f35216fd734aafd816a06110",
      "protocolVersionsImpl": "0xba337ce3e690fdd01b1a830404e8caaae22a0638",
      "protocolVersionsProxy": "0xf2749e312b43529cb35a91e355919a376bd22ce3",
      "proxyAdmin": "0xed3b4bf7e17e47dac37d7bb913196e192dcaf748",
      "superchainConfigImpl": "0xcf99c17529cc22c39551547e323ed9dda6841734",
      "superchainConfigProxy": "0x329cf899464ba580bf047f4b886db342c602f579",
      "systemConfigImpl": "0x5d58414e85fc12d343eb3445dd7417c483d939a9"
    }
  },
...

* feat(kurtosis-devnet): improve docker host detection (#13608)

Move the detection logic to a separate package, and make it testable.
Also make room for more detection mechanisms down the road if needed.

* fix(kurtosis-devnet): make main tests self-contained (#13605)

* Fix typos (#13521)

* interop, op-supervisor, op-node: Managed Mode (#13406)

* interop: dataflow refactor v2

Co-authored-by: Axel Kingsley <axel.kingsley@gmail.com>

* interop: many refactor-fixes, make action test pass

* op-e2e: fix lint

* op-service: RPC event-stream util, for subscription and polling flexibility

* op-node: update interop managed-mode RPC events to use RPC stream util

* op-supervisor: subscribe or poll for managed-node events

* op-service: stream fallback util

* op-node: fix interop managed L1 traversal

* op-supervisor: enable action tests to pull events

* op-e2e: fix interop action test

* lint

* fix unit test

* Fixes from E2E tests
- Reset Engine even when in Managed Mode
- Use correct wrapped subscription
- Export wrapped subscription type
- Close Controllers on exit

* Controller tests and fixes

---------

Co-authored-by: Axel Kingsley <axel.kingsley@gmail.com>

* feat(kurtosis-devnet): ensure kurtosis engine is running (#13611)

Unfortunately the logic for doing so is not present in the kurtosis
SDK, so we have to shell out to the binary.

Make sure the version we run is compatible with the client library we
use to interact with the created enclaves.

* op-deployer: Update proof params JSON to match deploy config (#13616)

* op-supervisor: fix JWT secret loading (#13620)

* fix(kurtosis-devnet): accommodate new wallets format (#13622)

* feat: Make contract deployment names consistent with names used in OPCM (#13563)

* feat: Fix contract labels and make more explicit

Fixes #13391

* fix: Initializable test

* update gas-snapshot

* feat: fix constructor tests

* fix: Initializable test

* feat: remove unused import

* fix: DeployOwnership script

* feat: cleanup

* feat: Label contracts in save() function

* feat: Add _removeSuffix

* Address feedback

* fix OptimismPortal2Impl name

* feat(kurtosis-devnet): add basic support for smoke tests (#13625)

* fix unused imports (#13633)

* temporarily disable custom gas token support (#13603)

* temp disable CGT

* temp disable CGT

* fix tests

* fix tests

* fix tests

* fix tests

* fix go tests

* update tests

* fix tests

* use skipIfForkTest function

* fixes

* fixes

* transition snapshots script to common framework (#13398)

* dependabot(gomod): bump golang.org/x/time from 0.7.0 to 0.9.0 (#13640)

Bumps [golang.org/x/time](https://github.com/golang/time) from 0.7.0 to 0.9.0.
- [Commits](https://github.com/golang/time/compare/v0.7.0...v0.9.0)

---
updated-dependencies:
- dependency-name: golang.org/x/time
  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>

* dependabot(gomod): bump github.com/lmittmann/w3 from 0.17.1 to 0.17.3 (#13638)

Bumps [github.com/lmittmann/w3](https://github.com/lmittmann/w3) from 0.17.1 to 0.17.3.
- [Release notes](https://github.com/lmittmann/w3/releases)
- [Commits](https://github.com/lmittmann/w3/compare/v0.17.1...v0.17.3)

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

* dependabot(gomod): bump github.com/fatih/color from 1.16.0 to 1.18.0 (#13634)

Bumps [github.com/fatih/color](https://github.com/fatih/color) from 1.16.0 to 1.18.0.
- [Release notes](https://github.com/fatih/color/releases)
- [Commits](https://github.com/fatih/color/compare/v1.16.0...v1.18.0)

---
updated-dependencies:
- dependency-name: github.com/fatih/color
  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>

* op-program: Refactor derivation task to be separate from bootstrapping the program and verifying outputs. (#13612)

Makes the prepare, derive, verify steps more clearly separate.

* feat: remove cross l2 inbox execute message (#185) (#13626)

* feat: remove cross l2 inbox execute message (#185)

* feat: remove cross l2 inbox execute message

* feat: remove cross l2 inbox execute message

* feat: remove cross l2 inbox identifier checks (#186)

* feat: remove cross l2 inbox identifier checks

* fix: clear emit and validate naming

* fix: pre pr (#187)

---------

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

* fix(ct): DeputyPauseModule audit fixes (#13594)

Includes a number of low/informational fixes from the audits of
the DeputyPauseModule.

- Additional validation on the DeputyGuardianModule.
- Small additional comments.
- Proper encoding of EIP-712 signature digest.

* feat(kurtosis-devnet): make sprig functions available (#13655)

Make use of the dict capabilities to simplify some variables management.

Also put the local function calls on top, to deduplicate them, making
sure we don't even attempt to rebuild the same artifacts.

* Deploy Cleanup: Make Artifacts stand alone and etch into global state (#13648)

* Make Artifacts stand alone and etch into global state

* fix the things

* Remove extra artifacts etch

* feat: label and allowCheatCodes on artifacts

feat: restore deploy config label

* fix typo

* fix import

* fix import

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

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

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

* supervisor: Correct log message L1->L2 (#13657)

* feat: add DeputyPauseModule security review docs (#13659)

* feat: add etchLabelAndAllow (#13651)

* feat: add etchLabelAndAllow

* fix: Buggy artifacts path prefix

* feat: Add overloaded etchLabelAndAllow with path arg

* remove no-op type cast

* update supervisor readme for Managed Mode (#13623)

* Update License (#13602)

* Update arch64.go (#13598)

* fix(kurtosis-devnet): output padded private keys (#13660)

* op-supervisor: improve finality errors and logging (#13662)

* op-program: Add hint route for block execution (#13631)

* op-program: Implement deposit-only block receipt hint

* op-program: Reflective program for block execution

* op-program: Hook new hint route to the L2 oracle

* op-program: Fix prefetch hint for L2BlockData

* op-program: Abstract program execution in prefetcher

* op-program: Add chainID to l2-block-data hint

* Derive block succeeding the agreed block

* fix validation on client.Main

* refactor L2Source interface

* uint8 chainID; fix TODOs

* add test for block exec cache hit

* remove useless comment

* undo deploy variation cgt code deletion (#13664)

* chore(kurtosis-devnet): expose op services logging flag (#13667)

Use a central location to set all logging levels.
If a specific location is needed instead, it'll be as easy as
replacing the template with the desired value.

* feat: remove redundant loadInitializeSlot func (#13650)

* feat: remove redundant loadInitializeSlot func

* feat: remove unused prankDeployment func

* fix unused import

* op-deployer: Remove unused Isthmus code path (#13668)

* feat: remove contractAddressesPath and disk reading (#13649)

* feat: remove contractAddressesPath and disk reading

* fix the things

* kt-devnet: Adds fileserver package for serving cannon prestates (#13666)

* kt-devnet: Adds fileserver package for serving cannon prestates

- deploy fileserver before optimism-package
- updates simple.yaml to use the template functions
- small refactor of kurtosis Deploy fn to not print an expected
  optimism-package env

* Runs go mod tidy in cannon testdata examples

* Use FILESERVER_PACKAGE constant

* op-program: Update releases.json for op-program/v1.4.0 (#13679)

* op-program: Update releases.json for op-program/v1.4.0

* op-program: Mark new release as governance approved

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

---------

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

* op-program,op-service: dedup BlockInfo header wrapper, always cache hash, avoid recomputing hash (#13681)

* dependabot(gomod): bump golang.org/x/term from 0.25.0 to 0.28.0 (#13637)

Bumps [golang.org/x/term](https://github.com/golang/term) from 0.25.0 to 0.28.0.
- [Commits](https://github.com/golang/term/compare/v0.25.0...v0.28.0)

---
updated-dependencies:
- dependency-name: golang.org/x/term
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix: add --remove-old-proofs to remove old KCFGs from the cache (#13690)

* supervisor: Record new L1 on ProvideL1 and Notify L2 Finality (#13678)

* Record new L1 on ProvideL1 and Notify L2 Finality

* lint ; expand unit tests

* Add comment for safe use of RecordNewL1

* op-supervisor: bugfix timestamp Check (#13676)

* op-supervisor: bugfix timestamp Check

* supervisor: include Invalid in SafetyLevel Validation

* supervisor: check if BlockSeal is found when iterator stops

* Don't rewind iterator if Traversal yields ErrStop

* Add Timestamp Invariant Test to E2E

* update unit test

* pr comments re:error message

---------

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

* feat: Delete unused test mock contracts (#13684)

* fix: OptimismPortal was deleted, so removing it from kontrol (#13692)

* Add deployImplementations to ForkLive flow (#13573)

* Add deployImplementations to ForkLive flow

* feat: remove legacy code

* feat: Add comments

* fix comment

* feat: Compatibility with standalone Artifacts

* feat: use etchLabelAndAllowCheatcodes

* feat: more readable ForkLive

* refactor deploy and forklive flow

* fix checks

* feat: Remove the _suffix arg from deployImpls

* feat: Allow overwriting a saved deployment (logs a warning)

* feat: update comment

* feat: Save the impls we need to save

* fix comment

* feat: replace mustGetAddress(Impl) with EIP1967 helper

* fix: impl retrieval in l1xDM

* fix: impl retrieval in l1xDM

* feat: restore import

* lint

* delete outdated comment

* docs: Fix incorrect file extension Update README.md (#13685)

Fix incorrect file extension in rollup-node spec link

* op-service: Define the SuperRoot type (#13670)

* op-service: Define the SuperRoot type

* op-program: Add chain ID to super chain output roots

* Rename

* op-deployer: Add support for dumping calldata (#13680)

* op-deployer: Add support for dumping calldata

* Update state.go

* fix(kurtosis-devnet): cleanup server code (#13704)

Now that we have a fileserver as a kurtosis package, we don't need to
serve files locally. Therefore we don't need to discover how to access
them either.

Incidentally this should make the approach compatible with kurtosis
k8s backend, once we push docker images to a registry that k8s can
access.

* feat(kurtosis-devnet): deduplicate all builds (#13705)

Avoid rebuilding the same artifacts, as long as the inputs are the
same. This enables us to be as careless as we want on the template
definition side, and still build everything only once.

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

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

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

* fix(kurtosis-devnet): provide fake implem of localPrestate (#13706)

* kt-devnet: improves post-deployment output for nodes/services (#13707)

* op-e2e: Add interop fault proofs actions test (#13672)

* op-service: Define the SuperRoot type

* op-program: Add chain ID to super chain output roots

* Rename

* op-e2e: Add interop fault proofs actions test

* op-program: Update to include chain ID

* dependabot(gomod): bump github.com/hashicorp/raft from 1.7.1 to 1.7.2 (#13702)

Bumps [github.com/hashicorp/raft](https://github.com/hashicorp/raft) from 1.7.1 to 1.7.2.
- [Release notes](https://github.com/hashicorp/raft/releases)
- [Changelog](https://github.com/hashicorp/raft/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/raft/compare/v1.7.1...v1.7.2)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/raft
  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: Implement initial block derivation step for interop fault proofs (#13675)

* op-service: Define the SuperRoot type

* op-program: Add chain ID to super chain output roots

* Rename

* op-e2e: Add interop fault proofs actions test

* op-program: Update to include chain ID

* op-program: Implement initial block derivation step for interop fault proofs

* op-program: Update to include chain ID

* op-program: Use validate flag correctly.
Rename interop env var.

* op-program: Enable interop fault proofs mode in action test (#13677)

* op-program: Enable interop fault proofs mode in action test

* op-program: Use the right chain output.

Won't handle the padding yet, but we have tests covering that we'll need to do further work to address later anyway.

* op-program: Tweak name and fix exec mode.

* op-program: Support agreed prestate hint in host (#13703)

* op-program: Support agreed prestate hint in host

* op-program: Fix transition state serialization in test

* op-program: Fix prefetcher_test.go

* op-program: Prevent specifying both --l2.outputroot and --l2.agreed-prestate flags

Check config is consistent

* op-program: Return safe or local safe head from derivation

Avoids relying on the safe label which won't be updated on interop chains.

* op-program: Only stop derivation if local safe reaches the target block.

* op-program: Fix safe head trace extension

* op-program: Remove unused field.

* op-challenger: run-trace now picks a random block in the span batch (#13715)

Previously it always picked the first block which was the worst case pre-holocene.
Now it biases towards the first and last blocks as they hit more corner cases but
can pick a random block in the middle of the batch as well.

* ctb: Implement addGameType method on OPCM (#13653)

* add comment for why FDG is splitted in Blueprint version (#13720)

* make the unused imports script check support multiline formatted imports, remove unused imports (#13695)

* fix(kurtosis-devnet): handle out of order services (#13726)

* fix(kurtosis-devnet): try harder to avoid local dependency (#13727)

* fix(kurtosis-devnet): ensure tests pass without kurtosis running

* fix(kurtosis-devnet): forbid tests from using local kurtosis context

* fix(kurtosis-devnet): ensure localPrestate is idempotent (#13725)

* chore: bump kontrol version, and make output checks more robust (#13697)

* chore: bump kontrol version, and make output checks more robust

* chore: remove outdated block

* clear some unused XXXScript (#13730)

* op-program: Pass required block hash to OutputByRoot rather than to L2Source constructor (#13716)

* op-program: Pass required block hash to OutputByRoot rather than to L2Source constructor

* Move check that output root matches requested hash to prefetcher instead of source.

* ctb: Make implementations deployments deterministic and idempotent (#13717)

* ctb: Make implementations deployments deterministic and idempotent

* code review updates

* cr updates

* imports

* make superchain deployments deterministic

* forgot to add test

* code review updates

* broadcast in dpeloysuperchain

* add forgotten broadcast

* op-program: Introduce RetryingL2Sources and use it to make prefetcher somewhat multi-L2 capable (#13718)

* op-program: Introduce L2Sources to combine info for multiple L2s.

* op-program: Plumb L2Sources in

* op-e2e: Use actual chain ID, not hte test place holder.

* op-program: Use correct chain ID for rexec and prevent duplicate RPC urls for same chain

* op-program: Fix test to use chain ID that is actually configured in the test

* op-program: Update the host config to support multiple L2s (#13719)

* op-program: Introduce L2Sources to combine info for multiple L2s.

* op-program: Update the host config to support multiple L2s

The CLI flags still only support a single L2.

* op-program: Update interop bootstrap to load multiple chain configs

* op-e2e: Pass multiple chain configs through when running op-program in interop tests (#13731)

* op-deployer: Add v1.8.0 mainnet support (#13737)

* fix(just): properly handle multiple tags (#13734)

* fix(just): properly handle multiple tags

* chore(just): rename just/ -> justfiles/

The current behavior is confusing for people who don't have `just`
installed: instead of a recognizable "command not found", they could
see a "Permission denied" (if . is in the PATH I suppose).

* remove CGT code (#13686)

* remove CGT code

* fixes

* fixes

* remove CGT code

* fixes

* fixes

* restore L2 tests

* make _balance a spacer, inline unnecessary internal function

* add version tests

* add version tests

* add version tests

* add version tests

* ...

* fixes

* fixes

* feat(kurtosis-devnet): expose jwt tokens in output (#13738)

* chore(kurtosis-devnet): split artifact management to its own package

* feat(kurtosis-devnet): add jwt tokens to output

* op-challenger: fail immediately if `VmBin` and `Server` don't exist (#13588)

* ensure VmBin and Server exist

* only check when not in test

* test file exists

* reuse TempDir()

* add tests for new errors

* address comments

* chore: add predeploy details comments (#13693)

* Apply Finality to blocks prior to L1 Finality Singal (#13708)

* Apply Finality to blocks prior to L1 Finality Singal

* add Log when Finality is assumed from newer Finality Signal

* feat(mise): add kurtosis to the toolchain (#13729)

* op-program: Add chain ID to hints when using interop (#13735)

* op-program: Add L2 chain ID to hints when using interop

* op-program: Add L2 chain ID to OutputRoot hints when using interop

* Fix label in error message.

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

---------

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

* op-program: Enforce timeout on executing op-program (#13747)

* Revert "feat(mise): add kurtosis to the toolchain (#13729)" (#13751)

This reverts commit 66a67e0272b1ccf784e31609be118bf5ebaebc8e.

Seems to cause issues in CI, unclear why.
Reverting pending investigation

* op-deployer: Replace old bootstrap scripts with DeployImplementations (#13742)

* op-supervisor: Implement supervisor_superRootAtTimestamp RPC (#13736)

* supervisor: Early start of RPC

* op-supervisor: Add supervisor_superRootAtTimstamp RPC

Add a new RPC to get the super root at a given timestamp.

* op-supervisor: add chainID to SuperRootResponse

* op-supervisor: fix comment

* op-supervisor: Add super root to response

* return stubbed canonical output for interop_pendingOutputV0AtTimestamp

* add ref to reorg PR

---------

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

* op-program: Remove caching for transition states. (#13714)

* op-program: Implement padding steps (#13741)

* op-program: Implement padding steps

* op-program: Restore Head field in DerivationResult

* op-program: Update cli flags to support multiple chains (#13740)

* op-program: Validate that we have L2 chain configs for each rollup

* op-program: Update CLI flags to support specifying multiple L2 chains

* op-program: Allow custom l2 chain ID flag

* feat: have AnchorStateRegistry use a single root (#13700)

* feat: have AnchorStateRegistry use a single root

Updates the AnchorStateRegistry to use a single unified anchor
root by checking with the OptimismPortal for the currently
respected game type. Additionally makes the AnchorStateRegistry
MCP ready.

Users MUST deploy this contract as a new proxy and cannot upgrade
their existing proxy.

* Update snapshots post-merge

* op-deployer: Support single ASR

* Update semver

* updates after rebase

* rename method

* make isGameProper comment more obvious

* update semver

* semver bump

* simpler api for boolean functions

* comment updates

* address wildmolasses comments

* add test for not guardian

* a few more tests

---------

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

* op-supervisor: Fix chain id translation (#13733)

* op-supervisor: fix chain ID to index translation

* op-supervisor: fix chain index to ID translation

* op-program: Transition to invalid state when L1Head reached before claimed block (#13743)

* op-supervisor: use event system like op-node, for easy synchronization (#13752)

* op-supervisor: use event system like op-node, for easy synchronization

* op-supervisor,op-node: simplify local-safe derivation updates

* op-supervisor: fixes, report back problem if local-safe update fails

* op-e2e: fix fp interop action test

* op-service: bigger timeout on eventual-case in poll test

* op-node/rollup/derive: add info logging (#13753)

* op-supervisor: add logging for RPC subscription state changes (#13632)

* chore(op-challenger): Update kona executor to use subcommand (#13769)

* op-node,op-service: Make L1 cache size configurable (#13772)

Also removes the default limit of 1000, which was too low to hold more
than ~3h of L1 data. This was causing problems whenever a duration of 3h
has passed since a latest batch was posted, which then caused derivation
of a new batch to fetch all L1 data again.
This particularly impacted chains that have a usual channel duration
longer than 3h, or when chains experienced a safe head stall >3h.

Fixes #13409.

* feat(kurtosis-devnet): provide standalone descriptors (#13758)

* chore: removal of unused system config inputs (#13773)

* op-deployer: Holocene defaults (#13783)

* op-deployer: Default to holocene

* Add contracts v180 tag

* go: update SCR dependency to add Soneium Mainnet chain config (#13784)

* op-supervisor: Move ChainID and SuperRootResponse to op-service eth package (#13786)

* Add Finality Action Testing (#13774)

* feat: Add ForgeArtifacts.getSlot() (#13787)

* op-challenger: Simplify flags and validation (#13756)

* op-challenger: Remove duplicate validation for vm.Config instances

* op-challenger: Remove cannon-network and asterisc-network flags.

* op-challenger: Use vm flags for rollup-config and l2-genesis

* op-challenger: Deduplicate prestates URL parsing

* op-challenger: Remove legacy --cannon-l2 flag

* op-challenger: Show generic and trace type specific names in error messages.

* Update expected error messages.

* Updates to work with upstream geth v1.14.12 changes (#13002)

* all: update to op-geth with upstream v1.14.12 changes.

* go.mod: bump go-ethereum dependency to 1.14.12

* go mod tidy

* go.mod: update op-geth and scr

---------

Co-authored-by: Roberto Bayardo <roberto.bayardo@coinbase.com>
Co-authored-by: protolambda <proto@protolambda.com>
Co-authored-by: Sebastian Stammler <seb@oplabs.co>

* interop: Add AllSafeDerived API (#13790)

* Add AllSafeDerived API

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

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

---------

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

* feat: incident response improvements (#13711)

* feat: incident response improvements

First half of the original incident response improvements PR.

Co-authored-by: wildmolasses <changes@gmail.com>

* fix tests and add specs

* misc fixes

* more fixes

* emit event on setRespectedGameTypeUpdatedAt, and test wasRespectedGameType as withdrawal finality condition

* withdrawal when gameWasNotRespectedGameType reverts

* anchor game blacklisted and getAnchorGame tests

* isGameAirgapped

* tiny specs change

* add snapshots

* fix specs test and ASR snapshot

* update semver

* no compilation rrestrictions when optimizer is off

* interop portal semver

* justfile ignore, semver

* minor tweaks

* expanded test coverage

* various logical tweaks

* test fix

* clearer error

* fix test flake in go tests

* add portal tests

* portal2 tests: encodeCall

* FDG test: recipient can't receive value reverts

* various final tweaks

* regenerate snapshots

* fix specs tests

* final test fixes

---------

Co-authored-by: wildmolasses <changes@gmail.com>

* op-challenger: Begin implementing super root trace provider (#13777)

* op-challenger: Begin implementing super root trace provider

* op-challenger: Remove first attempt at handling unsafe proposals.

Will replace with a proper implementation as a follow up

* op-challenger: Update for move to eth package

* op-challenger: Define Interop-cannon game type and required CLI args (#13792)

* op-challenger: Define the cannon-interop trace and game type.

Doesn't yet actually register a player for those game types.

* op-challenger: Define supervisor-rpc flag and require it for interop-cannon

* op-challenger: Do not require rollup-rpc for interop

* op-challenger: Require general cannon options for interop

* op-challenger: Update config validation for interop

* op-challenger: Rename to super cannon

* dependabot(gomod): bump github.com/bmatcuk/doublestar/v4 (#13766)

Bumps [github.com/bmatcuk/doublestar/v4](https://github.com/bmatcuk/doublestar) from 4.7.1 to 4.8.0.
- [Release notes](https://github.com/bmatcuk/doublestar/releases)
- [Commits](https://github.com/bmatcuk/doublestar/compare/v4.7.1...v4.8.0)

---
updated-dependencies:
- dependency-name: github.com/bmatcuk/doublestar/v4
  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(kurtosis-devnet): user devnets (#13728)

This change is an attempt at bridging the gap between kurtosis devnets
and future alphanet/betanet specification.
(see ethereum-optimism/devnets#4)

It does so by defining specific override points in a more generic
template.
Generic building blocks are defined in templates/, and rely on a new
"include" capability at the template level.

This approach might also provide a somewhat lighter entry point for
user devnet definitions, following the same principle.

Note that this is completely optional at this point, and the full
scope of the kurtosis definition is still available to whomever
needs/wants it.

* op-challenger: Remove l2Client and rollupClient from RegisterTask API (#13770)

Makes RegisterTask generic enough to support interop games

* op-challenger: Move Proposal out of contracts (#13795)

Its only used by split adapter and isn't related to the contracts.

* feat(kurtosis-devnet): expose the devnet features (#13802)

* interop: e2e action tests (#13126)

* interop,tests: Add Emitter contract tests.

* simplify empty block addition

* Fix cross-safe progression.

* add cross safe assertion.

* Remove duplicate assertion.

* Make chains progress as the same rate.

* interop: Walkback on conflict reset failures. (#13641)

* wip: Walkback on conflict reset failures.

* tests: Add initial reset conflict tests.

* tweak: reorganize methods.

* Consolidate attemptReset into resolveConflict.

* tests: Add maxAttempts test.

* op-e2e: Add timeouts to multi-peer sync test (#13801)

* op-program: Build an interop prestate (#13799)

* op-program: Build an interop prestate

The bootstrap process for interop is different so introduces a separate main method.

* op-program: Stop setting USE_INTEROP env var when running client in external process.

The interop version is used by specifying the interop client binary.
Update Makefile to build a native version of the interop client binary.

* use camel case for opcm outputversion var (#13815)

* use camel case for opcm outputversion var

* fix test

* rm entirely

* op-program: Stop derivation once the claimed timestamp is reached (#13812)

* op-program: Stop derivation once the claimed timestamp is reached

* op-program: Add comment and switch to a panic if agreed is already after claimed

* op-challenger: Refactor super trace provider to supply preimages (#13796)

Add prestate provider for super roots that can provide preimages.

* op-program: Implement consolidation for interop (#13775)

* op-program: Implement consolidation for interop

* address todos; fix claim validation bug

* fix test

* fix todos

* op-program: Fix short-circuit logic in block walk

* op-program: Use l2-chain block fetcher in canon

* op-program: Fix current header in engine_backend

* op-program: Filter hazardrous exec msgs

* cleanup

* fix block cache lookup

* snap to earliest block and update tests

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

* use adrian's suggestion

* todo formatting

---------

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

* op-program: Implement retries in prefetcher block re-exec (#13819)

* op-program: Implement retries in prefetcher block re-exec

* add canon block with error test case

* add comment on error case in rexec

* op-chain-ops: op-run-block debug tool (PR v2) (#13811)

* op-chain-ops: op-run-block debug tool

* op-run-block: fix conflict with geth merge

* op-deployer: Remove ASR implementation field (#13817)

* kurtosis-devnet: Add Getting Started Section to README.md (#13813)

* feat(kurtosis-devnet): expose private ports (#13789)

* feat(kurtosis-devnet): subshells (#13759)

This is a convenience feature that allows a user to "enter" a devnet /
chain and get a subshell with relevant data (in particular env
variables).

The goal is to try an minimize the amount of error-prone log-browsing
and copy-pasting before being able to interact with the environment.

* chore: Add cargo binary folder to $PATH (#13822)

* fix(op-program): minimize docker context (#13580)

* kurtosis-devnet: Support the interop prestate (#13830)

Not currently used in the interop devnet as we're not yet deploying the new game type.

* feat(op-challenger): Kona interop executor (#13829)

* feat(op-challenger): Kona interop executor

* Add agreed prestate to `LocalGameInputs`

* super executor 🦸

* lint

* op-challenger: Lazy create clients (#13810)

Make sync validator configurable per game type.

* op-challenger: Add super-cannon to GameType strings (#13832)

* Add makefile target to build all cannon prestates (#13831)

* op-challenger: Hook up the super game type (#13794)

* op-challenger: Implement split adapter and trace accessor creation for super cannon

* op-challenger: Implement register task for super cannon

* op-challenger: Actually register super cannon game handler

* op-challenger: Lazy create clients

Make sync validator configurable per game type.

* op-challenger: Test split adapter

Remove ClaimTimestamp from ClaimInfo as we always use the poststate timestamp

* feat: add OP_SUCCINCT game type (#13780)

* feat: add OP_SUCCINCT game type

* fix: change OP_SUCCINCT to 5

* add ASTERISC_KONA

* interop-devnet: remove in favor of kurtosis devnet (#13841)

* avoid nil pointer error for `requireEventualBatcherTxType` (#13827)

* OPCM upgrade full PoC (#13574)

* feat: Implement OPCM upgrade

* feat: better comment

* feat: Move vars to Setup where they belong

* gas snapshot

* ops-bedrock: remove legacy docker-compose (#13842)

* op-deployer: Support Holocene genesis (#13843)

* dependabot(gomod): bump github.com/hashicorp/raft-boltdb/v2 (#13767)

Bumps [github.com/hashicorp/raft-boltdb/v2](https://github.com/hashicorp/raft-boltdb) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/hashicorp/raft-boltdb/releases)
- [Commits](https://github.com/hashicorp/raft-boltdb/compare/v2.3.0...v2.3.1)

---
updated-dependencies:
- dependency-name: github.com/hashicorp/raft-boltdb/v2
  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>

* feat(kurtosis-devnet): devnet manifest implementation (#13823)

This change adds a "compilation" phase for devnet manifest.
Bottom line, we:

- treat the devnet manifest as a high-level specification of an
  expected deployment

- open up the possibility to generate an actionable input for an
  arbitrary deployer

- use kurtosis as a first target, by generating a valid kurtosis input
  that reflects the properties defined in the manifest

pkg/devnet/cmd/main.go is a toy tool to perform that last step.

Going forward, we could imagine a k8s deployment being "compiled"
following a similar process.
Or this being used during automated tests setup in order to create the
right target environment.

At a high-level, this is part of an effort to standardize our sources
of truth across the board.

* chore: fix problematic function name in comment (#13781)

Signed-off-by: piguagua <piguagua@aliyun.com>

* refactor: using slices.Contains to simplify the code (#13807)

* refactor: using slices.Contains to simplify the code

Signed-off-by: pinglanlu <pinglanlu@outlook.com>

* op-batcher: reintroduce helper func to fix other usages

---------

Signed-off-by: pinglanlu <pinglanlu@outlook.com>
Co-authored-by: protolambda <proto@protolambda.com>

* clear targets depending on `make devnet-allocs` at root (#13804)

* chore: cleanup devnet tools (#13844)

* mise.toml: cleanup unused devnet tool dependencies

* op-supervisor: update devnet reference in readme

* op-e2e: Add action tests for challenger and stopping at the game timestamp (#13818)

* op-e2e: Add action test to confirm fault proof program stops when the agreed timestamp is already at the game timestamp

* op-e2e: Add action tests for the challenger super trace provider

Ensures that it generates super root/transition states that match the test expectations.
Update RootProvider interface to match the actual interface exposed by Supervisor

* op-e2e: Remove game inputs that are no longer required.

* feat: update foundry versions (#13857)

* Update CCI builder version (#13858)

* bump cci ci-builder version to v0.56.0

With new versions of foundry tools

* ops: update version of cffi dep

* chore: Remove tag service (#13860)

* fix(kurtosis-devnet): add omitted test fixes (#13862)

* chore: extract devnet-sdk package (#13864)

This will host the code that interacts with:
- the definition of a devnet (including generation of kurtosis inputs)
- an arbitrary devnet, regardless of whether it's kurtosis-backed or not

On the other hand, kurtosis-devnet remains focused solely on the
instantiation of a devnet on kurtosis.

As such, kurtosis-devnet can depend on devnet-sdk, but not the other
way around.

* Remove docker RedundantTargetPlatform and LegacyKeyValueFormat warnings (#13439)

* docker: Fix RedundantTargetPlatform warnings

* docker: Fix LegacyKeyValueFormat warnings

* op-deployer: Improve default hardfork choice (#13854)

* op-deployer: Improve default hardfork choice

The deploy config was previously created with Holocene activated by default. This PR updates the hardfork selection logic to choose default hardforks based on the contracts version.

* CR updates

* op-node/rollup/derive: Reorganize `baseBatchStage` (#13866)

* op-node/rollup/derive: Reorganize baseBatchStage

Fixes #12567

* reword comment

Co-authored-by: George Knee <georgeknee@googlemail.com>

---------

Co-authored-by: George Knee <georgeknee@googlemail.com>

* op-supervisor: return typed pairs of L1/L2 blocks, and support invalidation of fromda entries (#13840)

* op-supervisor: return typed pairs of L1/L2 blocks, and support invalidation of fromda entries

* op-supervisor: support DA db block-invalidation and replacement

* op-supervisor: fix and cover edge-case of replacing a block at later L1 scope

* kt-devnet: adds pectra-devnet (#13871)

* chore(kurtosis-devnet): add proper deploy package (#13869)

* ci: Upload cannon prestates (#13865)

* ci: Publish cannon prestates on develop and op-program releases.

* ci: Use new context

* ci: Remove comma

* fix branch name

* ci: Build all cannon prestates so they can be published

* ci: Not mt64 its just mt

* ci: Remove temporary settings

---------

Co-authored-by: raffaele-oplabs <raffaele@oplabs.co>

* Refactor Derivation DB Reset Functions (#13874)

* make interfaces for opcm contracts and use them in tests and scripts (#13922)

* make interfaces for opcm contracts and use them in tests and scripts

* fix opcm interop deployment

* cannon: Simplify futex handling (#13754)

* cannon: Simplify futex handling

* cannon: Cut envar and go ahead and implement new futex behavior directly

* cannon: Cut now unused onWaitComplete() method

* cannon: Update single-threaded mips call to getSyscallArgs

* cannon: Update contracts to match go vm

* cannon: Update solidity tests

* cannon: Reconcile MIPS.sol version with latest release (1.2.1)

* cannon: Update differential tests

* cannon: Cut wakeup field

* cannon: Remove thread futex fields

* cannon: Fix const name

* cannon: Add new cannon state versions

* cannon: Cut wakeup stats

* cannon: Fix ParseStateVersion(), add test

* cannon: Reenable evm validation in tests

* cannon: Temporarily use ad hoc cannon release

* cannon: Run semver lock

* cannon: Fix semver comment, run semver-lock

* cannon: Cut unused constants

* cannon: Use latest cannon release in op-stack-go dockerfile

---------

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

* txmgr: Add custom publish error message handling (#13856)

* txmgr: Add custom publish error message handling

Fixes #13739

* add prefix TXMGR to env var

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

---------

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

* op-challenger: Set agreed prestate preimage for super cannon games. (#13838)

Changes type to just []byte and uses empty array as not set for simplicity.

* -rc is removed when upgrade() is called by the Upgrade Controller (#13863)

* append -rc if not upgraded yet

* append -rc if not upgraded yet

* fix tests

* fix tests

* fixes

* try fix go tests

* fix contracts tests

* fixes

* fixes

* fixes

* fixes

* contracts-bedrock: remove GCT code (#13921)

* contracts-bedrock: remove GCT code

This commit removes the custom gas token code from the L2 contracts.
The interop contracts were tightly integrated into this code,
so the diff is quite large.

We cannot remove the getters from the `L1Block` contract because
chains did a genesis with `WETH` that calls out to the `L1Block`
contract. `WETH` is not proxied, so we cannot modify the bytecode
without an irregular state transition. Just going to leave the
functions on `L1Block` for simplicity.

Both the messenger and the bridge have the references to CGT removed.

* l1block: test coverage

* contracts-bedrock: more cleanup

* compiler error

* gas-snapshot

* contracts-bedrock: remove dead imports

* ctb: unused imports

* snapshots: update

* interfaces

* ctb: fix

* op-program: Optimise block by header lookup (#13932)

We just requested the header by hash so can skip hashing the header to update the cache and just use the already known hash.

* op-challenger: Migrate config over to supporting multiple L2s (#13833)

* op-challenger: Migrate config over to supporting multi…
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.

2 participants