Skip to content

Comments

deps: bump slither to 0.10.2#10411

Merged
tynes merged 1 commit intodevelopfrom
deps/slither-102
May 6, 2024
Merged

deps: bump slither to 0.10.2#10411
tynes merged 1 commit intodevelopfrom
deps/slither-102

Conversation

@tynes
Copy link
Contributor

@tynes tynes commented May 6, 2024

Description

slither is currently erroring in CI with a strange error.
This bumps slither to the latest release in an attempt to
fix that issue.

The issue is described here: #10410

The release can be found here: https://github.com/crytic/slither/releases

This needs a release of ci-builder followed up to get the new version
of slither running in CI.

slither is currently erroring in CI with a strange error.
This bumps `slither` to the latest release in an attempt to
fix that issue.

The issue is described here: #10410

The release can be found here: https://github.com/crytic/slither/releases

This needs a release of `ci-builder` followed up to get the new version
of slither running in CI.
@tynes tynes added this pull request to the merge queue May 6, 2024
Merged via the queue into develop with commit ec39042 May 6, 2024
@tynes tynes deleted the deps/slither-102 branch May 6, 2024 13:23
tynes added a commit that referenced this pull request May 6, 2024
Includes a bump of slither

#10411
@tynes tynes mentioned this pull request May 6, 2024
github-merge-queue bot pushed a commit that referenced this pull request May 6, 2024
* ci: `ci-builder:0.49.0`

Includes a bump of slither

#10411

* ci: slither github action bump version
InoMurko added a commit to ConstellationCrypto/celestia-bedrock that referenced this pull request Jun 13, 2024
* op-e2e: Enable Fjord / RIP-7212 Test (#10260)

* Enable Fjord in e2e tests / test for RIP-7212

* switch to tagged op-geth

* ci: Add daily job to check reproducibility of cannon prestate (#10244)

* ci: Add scheduled job to check reproducibility of op-program preimages.

* ci: Add slack notification on failure.

* op-e2e: Avoid panics on conductor startup failure (#10247)

* Fix tag script (#10261)

* op-e2e: Refactor for asterisc e2e  (#10214)

* op-e2e: Expose fields for asterisc e2e

* op-e2e: Add Helper Initializer methods

* op-e2e: Apply initializer methods and exposed fields

* op-e2e: Expose methods for asterisc e2e

* contracts-bedrock: remove cannon deps on bindings (#10280)

* contracts-bedrock: remove cannon deps on bindings

Removes `cannon` deps on `op-bindings` package following
a pattern similar to https://github.com/ethereum-optimism/optimism/pull/10225.
Includes test coverage of the new functions and is the minimal diff to
get things working.

Ideally there was a canonical forge artifact type that is used but for
now we don't worry about it. This unblocks further work on removing the
bindings from the monorepo, greatly improving devex.

* cannon: cleanup, new approach

* ci: attempt fix

* ci: attempt fix

* ci: fixup

* op-bindings: delete `more` files (#10272)

* op-bindings: delete `more` files

The `op-bindings` more files existed to add
extra information to the bindings that were
helpful in particular for the L2 genesis generation
process. This commit deletes all more files as well
as the code for generating them. It also deletes
the top level `registry.go` file that used an `init`
function to populate public getters for accessing
the data in more files.

Now that the L2 genesis doesn't happen in Go, this
is all dead code. Removing this will greatly reduce
diff when smart contract code changes.

* cleanup: more dead code

* cleanup: decouple dead code

* `Position.TraceIndex`: panic when `maxDepth < p.depth` happens (#10007)

* ensure "maxDepth < p.depth" never happens

* add more log

* op-plamsa: use local bindings (#10286)

Migrates the `op-plasma` service away from using `op-bindings`. Part of
deprecating `op-bindings` as part of smart contract dev. Services
are responsible for maintaining their own bindings now.

* contracts-bedrock: remove bindings requirement (#10285)

* contracts-bedrock: remove bindings requirement

Previously, CI enforced that bindings were kept up to date with
any changes to the smart contracts. This resulted in a lot of
churn with CI, created large diffs when opening PRs and also
took a long time to recompile and generate bindings.

Now that no major services depend on `op-bindings`, we can remove
the need to enforce they are kept up to date. The rest of the bindings
themselves can be removed in a separate PR. Merging this gives a sigh
of relief for all smart contract devs working on the optimism codebase.

* op-bindings-e2e: delete

* `chain-mon` restructuring  (#10246)

* chore: `chain-mon` restructuring + fix some paths (exclude contracts for
now)

* chore: Fix the path of the docker with the new restructuring.

* chore: Change the `CODEOWNERS` for the `balance-mon`

* da-server: Switch back to minio (#10281)

* remove duplicate imports (#10284)

* feat(ctb): Log preimage oracle calldata (#10278)

* feat(ctb): Log preimage oracle calldata

* Add log tests

x

more binding

* op-challenger: Support multiple prestates (#10282)

* op-challenger: Implement prestate sources

* op-challenger: Add canon-prestates-url flag to configure a source for prestates based on hash

* run-kontrol.sh: fix typo to not execute test with 10-element array (#10292)

* op-challenger: Read created game address from receipt (#10277)

Extracts the game creation logic into reusable code.

* feat(ct): update max bond gas to 300m (#10275)

* feat(ct): update max bond gas to 300m

Updates the maximum bond gas to 300m up from 200m. Corresponds to
the increase in the cost of publishing a large preimage as a
result of emitting the data as part of a log.

* update kontrol

x

---------

Co-authored-by: clabby <ben@clab.by>

* op-challenger: Fix list-claims command (#10042)

* Create Context-Aware Transient Storage Library (#10259)

* contracts-bedrock: create TransientContext.sol

* contracts-bedrock: create test for Transient.sol

* contracts-bedrock: add documentation for Transient library

* contracts-bedrock: fix transient test

* contracts-bedrock: minor improvements to Transient lib tests

* contracts-bedrock: minor improvements to documentation for tests of Transient

* contracts-bedrock: minor improvements to documentation for tests of Transient

* contracts-bedrock: refactor Transient lib

* contracts-bedrock: add missing documentation in Transient lib

* contracts-bedrock: set correct CALL_DEPTH_SLOT in Transient lib

* contracts-bedrock: refactor Transient lib into TransientContext lib

* contracts-bedrock: improve labeling of vars in TransientContext

* contracts-bedrock: create tests for TransientContext

* contracts-bedrock: change var type of CALL_DEPTH_SLOT

* contracts-bedrock: refactor tests for TransientContext

* contracts-bedrock: refactor tests for TransientContext

* contracts-bedrock: add testFuzz_increment_fromMax_reverts

* contracts-bedrock: create test_increment_overflow_succeeds

* contracts-bedrock: drop underflow check in TransientContext

* contracts-bedrock: add additional tests for TransientContext

* contracts-bedrock: add documentation for TransientContext

* contracts-bedrock: add documentation for TransientContext

* contracts-bedrock: use suffix for return vars in TransientContext

* contracts-bedrock: use inline hash for callDepthSlot in TransienttContext tests

* contracts-bedrock: reintroduce transient-storage ignored error code to foundry.toml

* contracts-bedrock: remove unnecessary tests for TransientContext

* contracts-bedrock: create snapshots

* op-chain-ops: delete dead code (#10298)

Now that genesis generation is in solidity, delete
dead code. This code serialized solidity types suitable
for storage. Very similar to abi encoding but not always
the same, big difference was dynamic types, this library
only supported dynamic types <= 31 bytes to not handle the
chunking. This impacted the sorts of types that could
be in the genesis storage.

* op-challenger: Rename `--l2-rpc` to `--l2-eth-rpc` and log warning for deprecated `--cannon-l2` (#10257)

* op-challenger: Log a warning when deprecated --cannon-l2 option is used.

* op-challenger: Rename --l2-rpc to --l2-eth-rpc for consistency with --l1-eth-rpc

* op-challenger: Share providers across different game instances (#10305)

Avoids loading the full state to extract the commitment for each individual game.

* op-program: Add reproducibility check for op-program 0.3.0 (#10304)

* op-bindings: remove bindgen (#10301)

Removes the bindgen cli tool from the repo since it is not owned
by anybody and also not used to generate bindings anymore since
we are moving away from auto generated bindings.

* op-bindings: delete ast package (#10299)

This package canonicalized the ast ids that were placed
in the bindings `more` files because any change in the
smart contracts would cause a massive diff in the storage
layout for all storage layouts as they used the ast ids
to represent types. We needed to canonicalize them to have
deterministic bindings generation, otherwise CI would generate
the bindings in a non deterministic way. As we adopted new
solidity features, it would find edge cases in our ast canonicalize
algo, breaking CI. This code helped us for a long time but
now it is no longer used and can be retired.

* op-bindings: delete hardhat package (#10300)

This package was helpful when we still relied on hardhat
for the compiler toolchain. Now that we use foundry, this
is no longer used anywhere. Deleting to reduce dead code
in the repo.

* op-challenger, op-dispute-mon: Support both old and new versions of the dispute game contracts (#10302)

* op-challenger, op-dispute-mon: Support both old and new versions of the dispute game contracts.

* op-challenger: Update fault dispute game contract tests to cover multiple versions.

* op-challenger: Support multiple asterisc prestates (#10313)

* op-challenger: Apply multiple prestates for asterisc

* op-challenger: Add asterisc-prestates-url flag to configure a source for prestates based on hash

* op-challenger: Share providers across different asterisc game instances  (#10314)

* op-challenger: Share providers across different asterisc game instances

Avoids loading the full state to extract the commitment for each individual game.

* Fix flag error

* op-challenger: fix a bug in TestMonitorGames (#10307)

* op-challenger: fix a bug in TestMonitorGames

* just return instead of break loop

* remove blank lines

* feat(ctb): `SystemConfig` updates for FPs (#10315)

Updates the system config with a major version bump for a
`DisputeGameFactory` in lieu of the deprecated `L2OutputOracle`.

* dependabot(gomod): bump gorm.io/gorm from 1.25.9 to 1.25.10 (#10324)

Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.25.9 to 1.25.10.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.25.9...v1.25.10)

---
updated-dependencies:
- dependency-name: gorm.io/gorm
  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/minio/minio-go/v7 (#10323)

Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.69 to 7.0.70.
- [Release notes](https://github.com/minio/minio-go/releases)
- [Commits](https://github.com/minio/minio-go/compare/v7.0.69...v7.0.70)

---
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: typo in the code comments (#10229)

* fix: typo in the code comments

* fix: correct the syntax error in the code comment

* feat/CrossL2Inbox: create (#10296)

* contracts-bedrock: create CrossL2Inbox

* contracts-bedrock: create ICrossL2Inbox

* contracts-bedrock: create tests for CrossL2Inbox

* contracts-bedrock: update CrossL2Inbox sol version to ^0.8.24

* contracts-bedrock: rename test to .t.sol ext

* contracts-bedrock: make snapshots

* contracts-bedrock: update semver-lock

* contracts-bedrock: drop snapshots for CrossL2InboxTest

* contracts-bedrock: update license for tests CrossL2Inbox

* contracts-bedrock: add CrossL2Inbox to predeploys

* contracts-bedrock: pin sol version of CrossL2Inbox to 0.8.25

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: add CROSS_L2_INBOX to predeploys

* contracts-bedrock: make slots internal in CrossL2Inbox

* contracts-bedrock: add custom errors to CrossL2Inbox

* contracts-bedrock: refactor tests for CrossL2Inbox

* contracts-bedrock: use TransientContext in CrossL2Inbox

* contracts-bedrock: fix L2Genesis test

* contracts-bedrock: minor tweaks to documentation in tests for CrossL2Inbox

* contracts-bedrock: relabel BLOCKNUMBER_SLOT to BLOCK_NUMBER_SLOT in CrossL2Inbox

* contracts-bedrock: update snapshots for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: improve documentation for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: fix tests for CrossL2Inbox

* contracts-bedrock: update modifier in CrossL2Inbox

* contracts-bedrock: drop arguments in custom errors for CrossL2Inbox

* contracts-bedrock: update snapshots for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: fix tests for CrossL2Inbox

* contracts-bedrock: remove redundant lines in CrossL2Inbox

* contracts-bedrock: add tests for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: minor improvements to tests for CrossL2Inbox

* contracts-bedrock: remove ENTERED_SLOT in CrossL2Inbox

* contracts-bedrock: remove CrossL2Inbox from isSupportedPredeploy

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: update CrossL2Inbox with eip3074 specs

* contracts-bedrock: update tests for CrossL2Inbox with eip3074 specs

* contracts-bedrock: improve doc in tests for CrossL2Inbox

* contracts-bedrock: update snapshots for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* Add op-dispute-mon to images to build in golang-docker target (#10335)

* make: fix build (#10327)

Fixes the `make build` command to ensure that it
works. Previously it checked if the env var was set
for the nvm dir, but that doesn't guarantee there is
a file there. Run the nvm file if it exists after
checking that it exists. Can confirm that the
build command works for me now locally.

* op-bindings: more cleanup (#10328)

* op-bindings: more cleanup

Deletes the preview more file + registry and also
moves some `op-bindings` packages to `op-chain-ops`.
We have some duplicate types defined in `op-chain-ops`
that we can consolidate into the `foundry` and `solc`
packages in subsequent commits.

* build: fix

* op-bindings: delete more dead code (#10338)

* op-bindings: delete more dead code

Remove more dead code from the `op-bindings` package.
The only thing left are the generated bindings themselves
which can be moved to the packages that depend on them.
`op-e2e` may be the only remaining package that depends
on bindings.

The predeploy addresses still exist, there is a question
as to where they should live. Perhaps in `op-node` since
they are consensus critical parameters.

The etherscan client was moved into `op-chain-ops` because
it could be useful in the future but it should also be deleted
if it ends up not being used at all.

* indexer: fix build

* op-challenger: Apply game window to list-games (#10336)

Avoids it getting increasingly slower over time.

* op-dispute-mon: Add option to ignore games (#10334)

When a game is ignored because of this option it logs a warning and reports a count of ignored games via a new metric.

* op-challenger: Include resolution status in list-claims output (#10333)

* op-dispute-mon: Report valid and invalid claims and bonds by honest actors (#10316)

* op-dispute-mon: Report valid and invalid claims by honest actors

* op-dispute-mon: Report won, lost and pending bonds for honest actors

* op-dispute-mon: Exclude refunded bonds from winnings

* add missing FaultDisputeGame interface (#10306)

* maint(ct): clean up periphery deploy script (#10276)

Cleans up the deploy script for periphery contracts. Script was
a bit messy and we need a cleaned up version so that we can
safely deploy and manage Drippie for the Challenger.

* contracts-bedrock: small fix to cleanup L2 genesis (#10326)

* contracts-bedrock: small fix to cleanup L2 genesis

Adds a `run()` function to the L2 genesis generation script
so that its possible to run the command without the `--sig`
argument. Also resolve some linting isssues, semgrep has
a rule that prefers `@notice` over `@dev` for natspec comments.
Also use a foundry cheatcode to set the chainid during execution
to ensure that the correct chainid is set to remove the need to
set it as a cli flag.

* devnet: remove extra flag to foundry script

* contracts-bedrock: fix test

* contracts-bedrock: update config

Turns on funding of genesis accounts

* contracts-bedrock: fix broken test

* contracts-bedrock: cleanup

* Update Silent Patch Policy Broken Link (#10329)

* [op-conductor] make safe check interval optional (#10321)

* [op-conductor] make health check more robust (#10325)

* fpac: reserve spacer slot in OptimismPortal2 (#10279)

* fpac: reserve spacer slot in OptimismPortal2

Allows for merging of `OptimismPortal` that supports
custom gas token and also `OptimismPortal2` that has
a modified storage layout. The `OptimismPortal` has
spacers to account for the storage layout changes in
`OptimismPortal2` and it adds its new storage slot
at the location that the spacer is added in.

This faciliates the ability to merge the portal
codebases in the future.

* tests: fixup

* semver-lock: update

* genesis: fix permit2 panic (#10332)

* genesis: fix permit2 panic

Its possible that permit2 isn't in the genesis allocs even
though it should be, it removes the flexibility to define the
genesis spec arbitrarily if we implicitly enforce it being present.
We need a better way to check that the chain id during genesis
allocation matches the chain id in the genesis spec.
An attempt at this is done in https://github.com/ethereum-optimism/optimism/pull/10326.

Fixes https://github.com/ethereum-optimism/optimism/issues/10309

* op-chain-ops: better check

* cleanup: fix build

* build: fix

* feat/L2ToL2CrossDomainMessenger: create (#10297)

* contracts-bedrock: create CrossL2Inbox

* contracts-bedrock: create ICrossL2Inbox

* contracts-bedrock: create tests for CrossL2Inbox

* contracts-bedrock: update CrossL2Inbox sol version to ^0.8.24

* contracts-bedrock: rename test to .t.sol ext

* contracts-bedrock: make snapshots

* contracts-bedrock: update semver-lock

* contracts-bedrock: drop snapshots for CrossL2InboxTest

* contracts-bedrock: update license for tests CrossL2Inbox

* contracts-bedrock: add CrossL2Inbox to predeploys

* contracts-bedrock: pin sol version of CrossL2Inbox to 0.8.25

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: add CROSS_L2_INBOX to predeploys

* contracts-bedrock: make slots internal in CrossL2Inbox

* contracts-bedrock: add custom errors to CrossL2Inbox

* contracts-bedrock: refactor tests for CrossL2Inbox

* contracts-bedrock: use TransientContext in CrossL2Inbox

* contracts-bedrock: fix L2Genesis test

* contracts-bedrock: minor tweaks to documentation in tests for CrossL2Inbox

* contracts-bedrock: relabel BLOCKNUMBER_SLOT to BLOCK_NUMBER_SLOT in CrossL2Inbox

* contracts-bedrock: update snapshots for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: improve documentation for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: fix tests for CrossL2Inbox

* contracts-bedrock: update modifier in CrossL2Inbox

* contracts-bedrock: drop arguments in custom errors for CrossL2Inbox

* contracts-bedrock: update snapshots for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: fix tests for CrossL2Inbox

* contracts-bedrock: remove redundant lines in CrossL2Inbox

* contracts-bedrock: add tests for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: minor improvements to tests for CrossL2Inbox

* contracts-bedrock: remove ENTERED_SLOT in CrossL2Inbox

* contracts-bedrock: remove CrossL2Inbox from isSupportedPredeploy

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: update CrossL2Inbox with eip3074 specs

* contracts-bedrock: update tests for CrossL2Inbox with eip3074 specs

* contracts-bedrock: improve doc in tests for CrossL2Inbox

* contracts-bedrock: update snapshots for CrossL2Inbox

* contracts-bedrock: update semver-lock for CrossL2Inbox

* contracts-bedrock: create L2ToL2CrossDomainMessenger

* contracts-bedrock: create IL2ToL2CrossDomainMessenger

* contracts-bedrock: create tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: make snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: add semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: add L2ToL2CrossDomainMessenger to predeploys

* contracts-bedrock: make slots in L2ToL2CrossDomainMessenger internal

* contracts-bedrock: add reentrancy protection to L2ToL2CrossDomainMessenger

* contracts-bedrock: pin sol version of L2ToL2CrossDomainMessenger to 0.8.25

* contracts-bedrock: add custom errors to L2ToL2CrossDomainMessenger

* contracts-bedrock: add missing documentation in L2ToL2CrossDomainMessenger

* contracts-bedrock: reorder imports for L2ToL2CrossDomainMessenger

* contracts-bedrock: rename errors for L2ToL2CrossDomainMessenger

* contracts-bedrock: reorder vars in L2ToL2CrossDomainMessenger

* contracts-bedrock: refactor tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: add L2_TO_L2_CROSS_DOMAIN_MESSENGER to predeploys

* contracts-bedrock: fix tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: make snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: reorder functions in L2ToL2CrossDomainMessenger

* contracts-bedrock: mock calls to target contract for L2ToL2CrossDomainMessenger tests

* contracts-bedrock: add additional checks to sendMessage in L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: minor tweaks to tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: add TransientContext to L2ToL2CrossDomainMessenger

* contracts-bedrock: add reentrancy test for L2ToL2CrossDomainMessenger

* contracts-bedrock: improve tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: improve documentation of tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: fix L2Genesis test

* contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: improve documentation for L2ToL2CrossDomainMessenger

* contracts-bedrock: fix test for L2ToL2CrossDomainMessenger

* contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: fix tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: update modifier in L2ToL2CrossDomainMessenger

* contracts-bedrock: remove legacy line in L2ToL2CrossDomainMessenger

* contracts-bedrock: add additional tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: add assumePayable in tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: fix test for L2ToL2CrossDomainMessenger

* contracts-bedrock: remove args from custom errors in L2ToL2CrossDomainMessenger

* contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: remove ENTERED_SLOT in L2ToL2CrossDomainMessenger

* contracts-bedrock: remove L2ToL2CrossDomainMessenger from isSupportedPredeploy

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: update L2ToL2CrossDomainMessenger with eip3074 specs

* contracts-bedrock: add tests for 3074 changes on L2ToL2CrossDomainMessenger

* contracts-bedrock: add missing checks for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: make SentMessage anonymous in L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: fix title for TransientContext

* contracts-bedrock: use messageVersion instead of MESSAGE_VERSION in L2ToL2CrossDomainMessenger

* contracts-bedrock: reintroduce ReentrancyGuard to L2ToL2CrossDomainMessenger

* contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: remove TransientContext from L2ToL2CrossDomainMessenger

* contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: fix tests for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: fix tstore in L2ToL2CrossDomainMessenger

* contracts-bedrock: improve logic in L2ToL2CrossDomainMessenger

* contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock L2ToL2CrossDomainMessenger

* contracts-bedrock: improve logic for L2ToL2CrossDomainMessenger

* contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger

* contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger

* contracts-bedrock: simplify vars in tests for L2ToL2CrossDomainMessenger

* chore(op-service): reduce allocations (#10331)

* refactor: improve perf

* improve perf

* rollback

* rollback

---------

Co-authored-by: Khanh Hoa <khanhoait.bka@gmail.com>

* feat: Add extension event to `OptimismPortal2` (#10350)

* feat: Add extension event to `OptimismPortal2`

Adds an extension event to the `OptimismPortal2` that allows for easier
indexing of proven withdrawals by off-chain monitoring services.
Previously, in order to look up a proof for a withdrawal when syncing an
indexer, archival state access was required.

* semver lock

* contracts-bedrock: deployer as msg.sender (#10343)

* contracts-bedrock: deployer as msg.sender

Use a special deployer account for the execution of the L2 genesis
script. This should remove the need to set the sender as part
of the devnet.

* devnet: simplify

* contracts-bedrock: fix deployer

* contracts-bedrock: fix build

* build: fix

* contracts-bedrock: more generic prank

* contracts-bedrock: attempt fixup

* contracts-bedrock: set deployer nonce to 0

* contracts-bedrock: prank in genesis

* contracts-bedrock: fix build

* contracts-bedrock: fixup

* contracts-bedrock: fixup

* contracts-bedrock: fixup

* ensure conductor services are closed (#10347)

* docs: fix typo in `initializeOptimismMintableERC20Factory()` notice (#10354)

* op-service/eth: Optimize ssz decoding (#10362)

* Adds op-conductor to tag-tool (#10361)

* Adds op-conductor to actions tag-service.yaml (#10363)

* contracts-bedrock: L1Block interop (#10344)

* contracts-bedrock: L1Block interop

Ports the `L1Block` contract from the `feat/interop` branch to
develop using a pattern where we can extend the contracts.
This sort of pattern may not always work but is an experiment
in reducing feature branches.

* contracts-bedrock: reorder params for func in L1BlockInterop

* contracts-bedrock: add missing test for L1Block

* contracts-bedrock: refactor tests for L1BlockInterop

* contracts-bedrock: add L1BlockInterop to differential-testing.go

* contracts-bedrock: add test for testDiff_encodeSetL1BlockValuesInterop_succeeds in Encoding tests

* op-node: add L1BlockInterop to derive l1_block_info

* op-node: add FuzzL1InfoInteropRoundTrip

* op-node: add tests for L1Block to l1_block_info

* contracts-bedrock: update snapshots for L1Block, L1BlockInterop

* contracts-bedrock: update semver-lock for L1Block, L1BlockInterop

* Revert "op-node: add tests for L1Block to l1_block_info"

This reverts commit d2e599e43b774cf9a5de474db1f5aa744885ce91.

* Revert "op-node: add FuzzL1InfoInteropRoundTrip"

This reverts commit e14007c0fb7dd723bcd66235696da19e378fa974.

* Revert "op-node: add L1BlockInterop to derive l1_block_info"

This reverts commit 4bb279bb4a504227ca05de38818bfbddbdae3c98.

* Revert "contracts-bedrock: add test for testDiff_encodeSetL1BlockValuesInterop_succeeds in Encoding tests"

This reverts commit 12f9a07cd71d504b1ea57a753d95b8e6439caa57.

* Revert "contracts-bedrock: add L1BlockInterop to differential-testing.go"

This reverts commit 209669de69d35b456494602cb64ffc435689602d.

* contracts-bedrock: drop redundant test in tests for L1BlockInterop

* contracts-bedrock: fix order of function args in L1Block

* contracts-bedrock: update semver-lock for L1Block

---------

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* ctb: Enable setting custom names in deploySafe() (#10364)

* ctb: Enable setting custom names in deploySafe()

* Fix formatting

* ctb: fix spacing on deploySafe log

* feat: Squash libraries in dispute contracts (#10351)

* feat: Squash libraries in dispute contracts

Reorganizes the libraries in the dispute contracts to remove circular
dependencies. The existing dependency structure resolves within the
monorepo's environment, but not when the monorepo's contracts are
imported as a forge project dependency. This unblocks our ability to use
these contracts for post-checks in `superchain-ops`.

* Remove `IDisputeGame` dep in `LibUDT`

* semver lock

* fix(op-dispute-mon): Remove Delays Calculator (#10372)

* fix(op-dispute-mon): remove the delays calculator

* fix(op-challenger): resolution import

* feat(op-dispute-mon): Log Lost Bond Amount (#10371)

* feat: log bond amount in dispute mon honest actor loss

* Update op-dispute-mon/mon/claims.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* contracts-bedrock: log the commit hash in deploy script (#10369)

Ensures that the commit hash is logged as part of
the deploy script's execution so its easier to help
debug issues with it.

* chore(ctb): Fully remove `L2_OUTPUT_ORACLE_SLOT` (#10377)

Fully removes the legacy `L2_OUTPUT_ORACLE_SLOT`. Upon upgrade, this
slot will be cleared.

Co-authored-by: clabby <ben@clab.by>

* deps: update go libp2p (#10378)

Update deps

* contracts-bedrock: small logging cleanup (#10370)

Cleans up the logs in the L2 genesis generation script.
Very small fix just to clean things up. Also moves to
using `prank` of `start/stop` `prank` to catch hanging
calls to `prank` as if a prank is active you cannot call
`prank` but you can call `startPrank`. This ensures that
we know if a prank is active or not instead of one being
silently active.

* feat: custom gas token (#10143)

* contracts-bedrock: custom gas token L1 contracts

Implement the L1 contract diff of the custom gas token spec

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* contracts-bedrock: custom gas token L2 contracts

Implement the L2 contract diff of the custom gas token spec

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* contracts-bedrock: custom gas token contracts

Libraries and universal contracts in the custom gas token spec

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* contracts-bedrock: custom gas token scripts

Implement the scripts for the custom gas token spec

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* contracts-bedrock: custom gas token tests

Implement tests for the custom gas token spec

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* op-bindings: update with custom gas token

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* op-chain-ops: fixup tests

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* contracts-bedrock: snapshots

Update snapshots

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* cleanup: get tests passing

* contracts-bedrock: cleanup tests

* contracts-bedrock: cleanup custom gas token

* op-bindings: regenerate

* codesize: fix

* contracts-bedrock: custom gas token cleanup

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* build: fix

* custom-gas-token: fix build

* custom-gas-token: cleanup, final spec nits

* gas-snapshot: fix

* contracts-bedrock: cleanup

* contracts-bedrock: semver lock

* invariant-docs: fixup

* storage-layout: address

* bindings: remove preview

* bindings: add back bindingspreview

* weth: remove weth9

Migrate to WETH based on weth98

* contracts-bedrock: cleanup

* custom-gas-token: more cleanup

Fix abi

* contracts-bedrock: test case

* custom-gas-token: cleanup, tests

* lint: fix

* custom-gas-token: address review comments

* snapshots: regenerate

* lint: fix

* contracts-bedrock: clean up semantics of cgt

Custom gas token semantics are strengthened and
cleaned up to ensure invariants in spec are held
true.

* snapshots: regenerate

* snapshots: gas snapshot

* semver-lock: regenerate

* comments: address

* semver: calculate

* ctb: revert in test

* tests: fix flake

* portal: better comment

* test: fixup

* lint: fix

* snapshot: gas

---------

Co-authored-by: Diego <105765223+0xfuturistic@users.noreply.github.com>

* geth: update to v1.13.15 (#10353)

* point at op-geth v1.13.13

* update triedb import path

* update deprecated core structs to types package

* Update op-geth with tx pool fix.

* point at v1.13.14

* point at geth v1.13.15

* fix NewStackTrie call

* remove pin

* use op-geth v1.101315.0-rc.1

---------

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

* Revert "feat: custom gas token (#10143)" (#10384)

This reverts commit a6074a7df33c6144a686c8881ec170c79d6b9125.

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

* contracts-bedrock: simplify L1 state dump

Removes the need to specify the L1 chainid via CLI.
Follows similar patterns to L2 genesis generation that
were done recently.

Follow up PRs can potentially use the same sort of deployer pattern
as in https://github.com/ethereum-optimism/optimism/pull/10343
for when doing the L1 genesis dump to remove the need to specify the
private key.

* contracts-bedrock: explicit deploy config

Remove the concept of implicit deploy config for explicit deploy config.
This removes confusing implicit behavior as well as makes it much
more straight forward for deploying multiple superchain targets
to the same L1. This is a breaking change but the error message
makes it very obvious and the docs are being updated in a way
that should include this information.

* contracts-bedrock: fix possible error

* config: cleanup

* deploy-config: fixup

* contracts-bedrock: delete name function

The `name()` function existed due to legacy
purposes when dealing with hardhat artifacts
and no longer is necessary. This commit removes
it in favor of a simpler approach of just using
the chainid instead of the name. The files that
are written are not committed into the repo.

* contracts: delete dead code

* lint: fix

* kontrol: fixup

* contracts-bedrock: prevent error

* kontrol: fixup

* kontrol: fix script

* gitignore: update

* devnet: simplify

* Update packages/contracts-bedrock/scripts/Config.sol

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

---------

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

* op-chain-ops: unwrap l1 and l2 allocs (#10387)

* feat: annotate assembly as memory safe (#10386)

* op-e2e: Fix flaky fault proof tests (#10389)

Custom config options were being applied before the defaults, causing them to be overwritten.
In particular this meant there was a small sequencer window and safe head progressed rapidly.

* �Deploy Security Council Safe and Liveness Extensions (#10120)

* ctb: Add deploySecurityCouncilSafe

* ctb: Allow _callViaSafe to use an arbitrary safe address

* ctb: Refactor Security Council deploy

Adds console.log calls

Uses the new _callViaSafe to reduce a lot of boilerplate

* ctb: Add livenessModuleInterval to deploy config

* ctb: Add livenessModuleThresholdPercentage to deploy config

* ctb: Add LivenessModuleMinOwners to deploy config

* ctb: Add council safe config and satisfy liveness module constructor

* ctb: Make liveness deploy funcs public

* Add DeployOwnership.sol

* Use deploySafe(name) to deploy SC and Foundation

* ctb: just use addr_ on all named returns

* ctb: Fix create2 collision in deploySafe

* ctb: Add example foundation config

* ctb: Add example council config and set it up

* ctb: Remove unused imports

* ctb: Address feedback on deploy ownership

* Add override for deploySafe with custom owners and threshold

ctb: Use the deploySafe override where applicable

* ctb: cleanup keepDeployer logic

* fixup! Add override for deploySafe with custom owners and threshold

* snapshots

* op-chain-ops: allocs validation (#10388)

Skip check for codesize on gov token address if governance is
not enabled.

* ci: Move sdk-next-test to run on develop only (#10390)

It requires env vars that aren't set for external PRs.

* feat(ctb): Promote FP contracts to first major version (#10382)

Promotes the fault proof contracts that are semantically versioned to
`1.0.0`, in preparation for the upcoming deployment.

* cannon: Adjust initial heap (#10376)

* cannon: Adjust initial heap start

This gives the program more memory to work with; minimizing the chance
of heap/stack corruption.

* Update cannon/mipsevm/patch.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: clabby <ben@clab.by>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* op-dispute-mon: Add metric to report timestamp of last invalid proposal (#10373)

* ctb: Add deployDeputyGuardian (#10207)

* ctb: Deploy DeputyGuardianModule

WIP: need to fix superchainconfig address issue

* ctb: Expand security council config

* op-chain-ops: Add unclaimed game credits script (#10367)

* op-chain-ops: Add unclaimed game credits script

`unclaimed-credits` computes the unclaimed credits across all games and
who is eligible to claim them.

Useful for superchain-ops actions.

* account for step creditors

* dispute-mon: Set claim statuses that no longer have games back to 0 (#10391)

* Reapply "feat: custom gas token (#10143)" (#10384) (#10395)

Now that the fault proof contracts release has happened, we
can merge in the custom gas token changes.

This reverts commit 2b1c99b39744579cc226077d356ae9e5f162db4a.

* contracts-bedrock: fix commit hash serialization (#10383)

Previous implementation didn't correctly serialize as string
so it came out as unreadable, now we make sure to abi encode
and decode correctly. Enables us to know which commit the code
runs on to help with debugging.

* op-program: Add v1.0.0 to set of reproducibility checks (#10403)

* chore: Remove the logs from `stderr` and `stdout`. (#10352)

* deps: bump slither to 0.10.2 (#10411)

slither is currently erroring in CI with a strange error.
This bumps `slither` to the latest release in an attempt to
fix that issue.

The issue is described here: https://github.com/ethereum-optimism/optimism/pull/10410

The release can be found here: https://github.com/crytic/slither/releases

This needs a release of `ci-builder` followed up to get the new version
of slither running in CI.

* op-conductor: fixes proposer outputAtBlock rpc arg compatability (#10393)

* build(deps): bump github.com/ethereum/go-ethereum in /proxyd (#10413)

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.13.14 to 1.13.15.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.13.14...v1.13.15)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
...

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

* call ec.Close() (#10412)

* chore(ctb): Update sepolia devnet 0 deploy config (#10396)

## Overview

Updates the sepola devnet 0 deploy config's absolute prestate value to
match that of `op-program/v1.0.0`'s tag.

### Verification

1. `git checkout op-program/v1.0.0`
1. In the monorepo root, run `make reproducible-prestsate`
1. Compare the resulting prestate hash with the one in this PR.

* remove outOfData variable (#10405)

* ci: `ci-builder:0.49.0` (#10414)

* ci: `ci-builder:0.49.0`

Includes a bump of slither

https://github.com/ethereum-optimism/optimism/pull/10411

* ci: slither github action bump version

* op-chain-ops: delete memdb (#10404)

* op-chain-ops: delete memdb

The simple in memory statedb implementation that was
backed by a genesis has served us well but is no longer
required since we build the genesis files using foundry.
This was originally used to enable simple execution to
deploy contracts and then dump into a `genesis.json`.
Keeping this memdb around will only bloat PRs that update
the geth version as they may change the interface to the
statedb. Instead of using the memdb interface, the genesis
is modified directly.

* lint: fix

* style: way better

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

* build: fix

* build: fix

---------

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

* Docker-targets v2 (#10346)

* Revert "Revert "Merge pull request #8242 from ethereum-optimism/go-docker-targets""

This reverts commit d972c46010b507a0a3ab5b1d3f9032422e028339.

It also fixes up some conflicts / inconsistencies,
 since op-conductor was added after the original revert.

* ops: experimental cross-build fixes

* Retrieve git tag in Circle CI and use to set op version within docker image

* Update dispute-mon and da-server to use new docker build flow

* Fix GIT_VERSION script in Circle CI config.yml

* Update ops-bedrock docker-compose to use new docker build flow

* Load pre-built op-challenger image in devnet tests

* Save op-challenger.tar to avoid docker rebuild in devnet tests

* Add Circle CI job for check-cross-platform

* Allow env var to override VERSION in Makefiles

* Pass version to op-program components except op-program-client

* Wrap all docker-bake variable names in quotes

---------

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

* slither: bump ci versions (#10410)

Since slither seems to be failing consistently in CI, try bumping the
versions of the tooling.

Bumps to latest slither github action release: https://github.com/crytic/slither-action/releases/tag/v0.4.0

Meant to fix the slither issue seen in https://github.com/ethereum-optimism/optimism/pull/10408

```
[-] SARIF output enabled, writing to results.sarif.
[-] Slither config provided: packages/contracts-bedrock/slither.config.json
[-] SLITHERARGS provided. Running slither with extra arguments
'forge clean' running (wd: /github/workspace/packages/contracts-bedrock)
'forge config --json' running
'forge build --build-info --skip */test/** */scripts/** --force' running (wd: /github/workspace/packages/contracts-bedrock)
Traceback (most recent call last):
  File "/opt/slither/bin/slither", line 8, in <module>
    sys.exit(main())
  File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 753, in main
    main_impl(all_detector_classes=detectors, all_printer_classes=printers)
  File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 859, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
  File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 107, in process_all
    ) = process_single(compilation, args, detector_classes, printer_classes)
  File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 80, in process_single
    slither = Slither(target, ast_format=ast, **vars(args))
  File "/opt/slither/lib/python3.9/site-packages/slither/slither.py", line 156, in __init__
    sol_parser.parse_top_level_items(ast, path)
  File "/opt/slither/lib/python3.9/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 326, in parse_top_level_items
    get_imported_scope = self.compilation_unit.get_scope(import_directive.filename)
  File "/opt/slither/lib/python3.9/site-packages/slither/core/compilation_unit.py", line 282, in get_scope
    filename = self._crytic_compile_compilation_unit.crytic_compile.filename_lookup(
  File "/opt/slither/lib/python3.9/site-packages/crytic_compile/crytic_compile.py", line 283, in filename_lookup
    raise ValueError(f"{filename} does not exist")
ValueError: lib/openzeppelin-contracts/contracts/utils/Context.sol does not exist
```

* fix(op-dispute-mon): Claim ID and Clock Logging (#10415)

* fix(op-dispute-mon): log the claim id to validate the claim during investigation

* fix(op-dispute-mon): log the clock value as well

* Dispute game compatible wd mon (#10375)

* adding  fault-wd-mon

* adding faultproof wd-mon

* adding faultproof wd-mon

* fixing docker file

* fixing how we get disputegame given a withdrawal log

* code review fix

* fix type

* only FundDevAccounts when DeployConfig.FundDevAccounts is true (#10432)

* contracts-bedrock: add useInterop flag (#10433)

* bedrock-devnet: add useInterop flag

* op-chain-ops: add useInterop flag

* op-node: add useInterop flag to config

* contracts-bedrock: add useInterop flag to DeployConfig

* contracts-bedrock: add useInterop flag to Predeploy's getName

* contracts-bedrock: add useInterop flag to L2Genesis

* contracts-bedrock: add useInterop flag to Predeploy's test

* contracts-bedrock: add useInterop flag to CommonTest

* contracts-bedrock: add useInterop flag to Setup

* Revert "op-chain-ops: add useInterop flag"

This reverts commit 83c63cc63bcccf15c8f2e7d7c4f74d0316abcdae.

* Revert "op-node: add useInterop flag to config"

This reverts commit c3617f9fd8ae4777cf4f13dd399167f0718cd9d1.

* Revert "bedrock-devnet: add useInterop flag"

This reverts commit 858257c8666af70586e6f40a510b2a0ff3056bcb.

* contracts-bedrock: use L1Block in Predeploys for L1BlockInterop

* contracts-bedrock: update gas-snapshot

* op-chain-ops: add UseInterop flag to genesis DeployConfig

* contracts-bedrock: remove useInterop argument in Predeploys

* op-chain-ops: make UseInterop flag optional

Co-Authored-By: protolambda <proto@protolambda.com>

---------

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

* fix(op-dispute-mon): Unresolved Claim Logging (#10394)

* fix(op-dispute-mon): unresolved claim logging

* fix(op-dispute-mon): lints

* fix(op-dispute-mon): unresolved claim logging

* fix(op-dispute-mon): move resolution response buffer to a constant

* op-node: Implement fjord RLP & Channel Bank Size limit Increases (#10357)

* op-node: Increase MaxChannelBankSize with Fjord

This also creates a ChainSpec object which is responsible for returning protocol
parameters. We use a different object than the rollup.Config because the config
is primarily a disk representation & does not concern itself with protocol constants.

* op-node: Increase MaxRLPBytesPerChannel with Fjord

* fix(op-dispute-mon): Improve Resolution Status Granularity (#10419)

* stash resolution status

* fix(op-dispute-mon): resolution status metric

* fix(op-dispute-mon): add logs for resolvable games

* cannon: remove final dep on bindings (#10408)

* cannon: remove final dep on bindings

Removes the last dependency that cannon has on `op-bindings/bindings`.
This is done my creating reusable code for reading foundry artifacts
from disk. This code should be reusable between any service that wants
to read the foundry artifacts from disk. This includes roundtrip
tests for JSON serialization of the foundry artifacts.

* op-chain-ops: address semgrep

https://github.com/golang/go/issues/22967

* chore(ctb): Update sepolia deploy config (#10418)

* fix(op-dispute-mon): export forecast to keep exporting consistent (#10430)

* Challenger: Pull large preimage proposals from tx logs (#10416)

* challenger: Pull large preimages from tx logs

* challenger: Add a few more fetcher unit tests

* challenger: Implement review fixes related to slice handling, types

* challenger: Clean up fetcher changes

* op-challenger: Make l2-eth-rpc and rollup-rpc required (#10445)

* op-challenger: Make l2-eth-rpc required for all trace types.

Add rollupEndpoint to NewConfig signature since it was already always required.

* op-e2e: Remove rollup and l2-eth-rpc params from WithCannon and WithAlphabet

* op-challenger: Integrate challenging L2 block numbers (#10446)

* op-challenger: Make l2-eth-rpc required for all trace types.

Add rollupEndpoint to NewConfig signature since it was already always required.

* op-e2e: Remove rollup and l2-eth-rpc params from WithCannon and WithAlphabet

* op-challenger: Integrate challenging L2 block numbers

* add to L2Genesis Interop contracts (CrossL2Inbox, L2ToL2CrossDomainMessenger) (#10417)

* bedrock-devnet: add useInterop flag

* op-chain-ops: add useInterop flag

* op-node: add useInterop flag to config

* contracts-bedrock: add useInterop flag to Predeploy's getName

* contracts-bedrock: add useInterop flag to L2Genesis

* contracts-bedrock: add useInterop flag to Predeploy's test

* contracts-bedrock: add useInterop flag to Setup

* Revert "op-chain-ops: add useInterop flag"

This reverts commit 83c63cc63bcccf15c8f2e7d7c4f74d0316abcdae.

* Revert "op-node: add useInterop flag to config"

This reverts commit c3617f9fd8ae4777cf4f13dd399167f0718cd9d1.

* Revert "bedrock-devnet: add useInterop flag"

This reverts commit 858257c8666af70586e6f40a510b2a0ff3056bcb.

* contracts-bedrock: use L1Block in Predeploys for L1BlockInterop

* contracts-bedrock: remove useInterop argument in Predeploys

* op-chain-ops: fix TestConfigDataMarshalUnmarshal

* contracts-bedrock: add CrossL2Inbox, L2ToL2CrossDomainMessenger to L2Genesis script

* contracts-bedrock: add tests for interop branch of L2Genesis

* Revert "op-chain-ops: fix TestConfigDataMarshalUnmarshal"

This reverts commit fbc60c1fed796d03837dd674406b3aa63445deeb.

* proxyd: remove unused error (#10444)

* contracts-bedrock: fix deposit gas limit (#10449)

* contracts-bedrock: fix deposit gas limit

Ensures that the gas limit is high enough for the system
deposit to go through. The previous gas limit was slightly
too small. This ups it so that we are sure the system deposit
goes through.

* contracts-bedrock: fix test

* feat(ctb): Extra monitoring events in `OptimismPortal2` (#10423)

Adds extra monitoring events into the `OptimismPortal2` for a dispute
game being blacklisted and the resepected game type being set.

* fix(op-challenger): use op challenger env var prefix (#10442)

* feat(op-challenger): sort the games listing subcommand (#10454)

* feat(op-dispute-mon): Contract Creation Failure Metric (#10447)

* feat(op-dispute-mon): contract creation failure metric

* fix(op-dispute-mon): log the game address for easier investigation

* feat(ctb): Add new move type to FDG for OR counters (#10438)

* feat(ctb): Add new move type to FDG for OR counters

Adds a potential new move type to the `FaultDisputeGame` that allows for
a participant to reveal the preimage of the claimed output root to
display to the dispute game that the claimed L2 block number does not
match up with the block number that the block header within the output
root commits to.

The root output can be challenged with the new special move type iff:
1. The passed `OutputRootProof` hashes to equal the claimed output root.
1. The passed Header RLP hashes to equal the block hash within the
`OutputRootProof` above.
1. The claimed block number in the dispute game does not equal the block
number that the output root commits to.

If there is a successful challenge with the new move type, that claim
itself is inserted as a special case counter. In `resolveClaim`, the
contract will always consider the creator of the L2 block challenge the
winner of the bond. Notably, this only applies for the root claim
subgame.

* feat(ctb): Transition `RLPReader` to 4byte errors (#10439)

* feat(ctb): Transition `RLPReader` to 4byte errors

* semver

* update summary

* portal semver

* extra checks

* contracts-bedrock: deprecate `finalizeDeposit` (#10459)

The [finalizeDeposit](https://github.com/ethereum-optimism/optimism/blob/b9eb669aa5dfc36204ce2167da2e5ab8bbde61de/packages/contracts-bedrock/src/L2/L2StandardBridge.sol#L147)
function is left over from the legacy OVM style standard bridge.
It is impossible to be called as the bridge has moved to the modern interface which is based on `finalizeBridgeETH` or `finalizeBridgeERC20`.

Methods actually used in bridge:

- [finalizeBridgeETH](https://github.com/ethereum-optimism/optimism/blob/b9eb669aa5dfc36204ce2167da2e5ab8bbde61de/packages/contracts-bedrock/src/universal/StandardBridge.sol#L333)
- [finalizeBridgeERC20](https://github.com/ethereum-optimism/optimism/blob/b9eb669aa5dfc36204ce2167da2e5ab8bbde61de/packages/contracts-bedrock/src/universal/StandardBridge.sol#L379)

Proof that finalizeDeposit is not used anywhere. Its defined in the L2StandardBridge and otherwise only in tests.

```
git grep -rin finalizeDeposit
snapshots/abi/L2StandardBridge.json:272:    "name": "finalizeDeposit",
src/L2/L2StandardBridge.sol:147:    function finalizeDeposit(
test/L2/L2StandardBridge.t.sol:523:    /// @dev Tests that `finalizeDeposit` succeeds. It should:
test/L2/L2StandardBridge.t.sol:527:    function test_finalizeDeposit_depositingERC20_succeeds() external {
test/L2/L2StandardBridge.t.sol:544:        l2StandardBridge.finalizeDeposit(address(L1Token), address(L2Token), alice, alice, 100, hex"");
test/L2/L2StandardBridge.t.sol:547:    /// @dev Tests that `finalizeDeposit` succeeds when depositing ERC20 with custom gas token.
test/L2/L2StandardBridge.t.sol:548:    function test_finalizeDeposit_depositingERC20_customGasToken_reverts() external {
test/L2/L2StandardBridge.t.sol:559:        l2StandardBridge.finalizeDeposit(address(L1Token), address(L2Token), alice, alice, 100, hex"");
test/L2/L2StandardBridge.t.sol:562:    /// @dev Tests that `finalizeDeposit` succeeds when depositing ETH.
test/L2/L2StandardBridge.t.sol:563:    function test_finalizeDeposit_depositingETH_succeeds() external {
test/L2/L2StandardBridge.t.sol:579:        l2StandardBridge.finalizeDeposit{ value: 100 }(
test/L2/L2StandardBridge.t.sol:584:    /// @dev Tests that `finalizeDeposit` reverts when depositing ETH with custom gas token.
test/L2/L2StandardBridge.t.sol:585:    function test_finalizeDeposit_depositingETH_customGasToken_reverts() external {
test/L2/L2StandardBridge.t.sol:594:        l2StandardBridge.finalizeDeposit(address(0), Predeploys.LEGACY_ERC20_ETH, alice, alice, 100, hex"");
test/L2/L2StandardBridge.t.sol:597:    /// @dev Tests that `finalizeDeposit` reverts if the amounts do not match.
test/L2/L2StandardBridge.t.sol:610:    /// @dev Tests that `finalizeDeposit` reverts if the receipient is the other bridge.
test/L2/L2StandardBridge.t.sol:623:    /// @dev Tests that `finalizeDeposit` reverts if the receipient is the messenger.
```

There cannot be third party integrations since it is `onlyBridge`,
meaning only the `L1StandardBridge` can call it.

This commit removes the tests and the function from the
`L2StandardBridge`. This is part of refactoring as we go,
ensuring that the code stays clean. Tend the garden.

* feat(ctb): Expose `l2BlockNumberChallenger` (#10463)

## Overview

Exposes the `l2BlockNumberChallenger` in the fault dispute game.

* op-dispute-mon: Enrich games in parallel (#10461)

* op-dispute-mon: Enrich games in parallel

Reports any failure to retrieve data in the failed metric since it results in the game being skipped.

* op-dispute-mon: Make max concurrency configurable

Simplify the code a bit.

* op-dispute-mon: Add numbers to log

* op-dispute-mon: Reduce default max concurrency

* op-dispute-mon: Add metric for monitor duration

* op-challenger: Implement block number challenge calls in contract bindings (#10462)

* custom-gas-token: add e2e test (#10440)

* add tests for activating custom gas token and bridging tokens to l2

* update test following concurrent change in SystemConfig ABI

* update systemconfig bindings

steps to reproduce:

git checkout  v1.7.3 -- op-bindings

remove WETH9 from artifacts.json

cd op-bindings

make bindgen-generate-local

select this one file discard the others

* use require.NoError instead of require.Nil

* build: fix

* refactor using setup + subtests

* add assertions for WETH name and symbol getters

* minor changes in response to review

* devnet-allocs: use sender with known private key

some e2e tests require the ability to transact as the system owner safe owner, so we can't use the foundry default sender (private key unknown)

This uses the same address as "Deployer"

* use deployer as Safe owner

* WIP refactor test

* add most of the remaining test assertions

* rename file

* flatten out subtests

we want to specify a strict ordering of operations

* complete checkWithdrawal step

* reorder test steps

* check both ETH and token balances on l1 during withdraw

* simplify callViaSafe helper

* factor out expectations

* add some extra boilerplate to track TransactionDeposited event

and GasPayingTokenSet event on L2

* remove comments

* remove wayward line

* flatten out sub test

* add comment to devnet forge script command

* remove version check on systemConfig

* update systemconfig bindings

steps to reproduce:

git checkout  v1.7.3 -- op-bindings

remove WETH9 from artifacts.json

cd op-bindings

make bindgen-generate-local

select this one file discard the others

* skip TestCustomGasToken when UseFPAC is true

* use differente helper to skip test

* harmonize use of context.Background{}

* tidy up and add comments

* remove cfg.DeployConfig.FinalizationPeriodSeconds = 2

* remove log lines

* use decimal instead of hex

---------

Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>

* op-dispute-mon: Fetch output root agreement in extract stage (#10464)

* op-dispute-mon: Enrich games in parallel

Reports any failure to retrieve data in the failed metric since it results in the game being skipped.

* op-dispute-mon: Make max concurrency configurable

Simplify the code a bit.

* op-dispute-mon: Add numbers to log

* op-dispute-mon: Reduce default max concurrency

* op-dispute-mon: Add metric for monitor duration

* op-dispute-mon: Fetch output root agreement in extract stage

Removes the last HTTP call from the transform stage and allows the calls to be done in parallel.

* op-node: Start EL sync even when the genesis is finalized (#10457)

* dependabot(gomod): bump golang.org/x/crypto from 0.21.0 to 0.23.0 (#10420)

* dependabot(gomod): bump golang.org/x/crypto from 0.21.0 to 0.23.0

Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.21.0 to 0.23.0.
- [Commits](https://github.com/golang/crypto/compare/v0.21.0...v0.23.0)

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

Signed-off-by: dependabot[bot] <support@github.com>

* deps: update

* deps: update

---------

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

* op-challenger: Add a metric for number of l2 block numbers challenged. (#10482)

* op-chain-ops: decouple from bindings (#10466)

* op-chain-ops: decouple from bindings

Another commit that removes bindings from `op-chain-ops`.
The entire repo is very close to being completely decoupled
from having a global set of bindings. This does have a little
bit of code duplication, but it generally results in a more
simple layout.

Both the `crossdomain` and `upgrades` package end up with their
own `bindings` package. The `crossdomain` package is mostly
legacy but the `indexer` still depends on it. The `indexer`
is in maintenance mode, after reth exex it makes a lot of sense
to build indexers directly into reth. The `crossdomain` package
uses the bindings to migrate and serialize L1 to L2 cross domain
messages. These bindings never need to be updated.

The `upgrades` package has a justfile added that can be used to
regenerate the bindings. This makes it easier to generate bindings
based on a specific release. Previously the `upgrades` bindings
were coupled in a strange way and backwards compatibility
hacks needed to exist. Now the team working on upgrades can update
the bindings however they want so the proper upgrade can easily
be generated.

* upgrades: error case

Since the AddressList doesn't have the `DisputeGameFactory`
yet, it cannot be pulled into the upgrade scripts. Instead
return an error so that we MUST update it.

https://github.com/ethereum-optimism/superchain-registry/blob/110e744c97b4873384ad2da365c281639fc0668e/superchain/superchain.go#L194

* Fix makefile fuzz targets on osx (#10476)

* op-dispute-mon: Ensure a zero value is set for sufficient/insufficient labels (#10481)

If the collateral for a DelayedWETH contract is sufficient and then becomes insufficient, we need to zero out the metric with the sufficient label and set the values on the insufficient labelled version.

* op-challenger: Fix highest_acted_l1_block metric (#10485)

Completed games weren't updating their latest acted block because they don't get scheduled which meant the metric always reported 0.

* op-proposer: update test to use local bindings (#10473)

Updates a single import to use the `op-proposer` bindings
instead of the global monorepo bindings. The big consumer
of the bindings after this are `op-e2e` and some tests
in `op-service`.

* op-service: decouple from `op-bindings` (#10491)

This moves the ERC20 bindings that the `op-service` tests
depend on into the `test` package that already exists.
This ensures that these bindings can always exist safely and
be used as part of the tests.

* op-chain-ops: update bindings import (#10490)

Updates another import to reference local bindings
rather than global bindings. This test isn't
going to need to worry about having its bindings be
updated.

* Update conf_depth.go (#10487)

Don't apply the conf depth if l1Head is empty (as it is during the startup case before the l1State is initialized)

* cannon: fix a typo in fuzz test (#10488)

* Test setup results of DeployOwnership script (#10397)

* ctb: Test ownership setup scripts

* ctb: Add nested config of modules

* Add guard and module checks

* Update packages/contracts-bedrock/scripts/DeployOwnership.s.sol

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

---------

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

* contracts-bedrock: portal opaque data test (#10443)

* contracts-bedrock: add deposit event coverage

Adds deposit event differential coverage for the two
different places where the deposit tx event exists.
This ensures that a valid event ends up getting emitted.
Also modularizes the code for serializing the event so that
there are not footguns when computing the "opaque data".

* contracts-bedrock: revert diff to portal

Removes the diff to the portal, perhaps we want it
but test still passes without it

* contracts-bedrock: lint

* test: improve

* tests: update

* tests: fixup

* semver: fix

* lint: fix

* Fjord: Implement max sequencer drift change to a constant (#10465)

* op-node/rollup: Add MaxSequencerDrift to ChainSpec

* op-node/rollup,op-e2e: Use spec max seq drift instead of config

* op-node/rollup: Showcase feature/fork separation pattern with seq drift change

* op-node/driver: add origin selector Fjord test

* op-node/rollup: refactor batch validation test

prepare to allow for general modification of rollup config

* op-node/rollup: add batch validation test

* Update op-node/rollup/types.go

Co-authored-by: Joshua Gutow <jgutow@oplabs.co>

* op-node/rollup/derive: add Fjord span batch validation test

---------

Co-authored-…
InoMurko added a commit to ConstellationCrypto/celestia-bedrock that referenced this pull request Jul 21, 2024
* contracts-bedrock: delete dead code (#10359)

* contracts-bedrock: simplify L1 state dump

Removes the need to specify the L1 chainid via CLI.
Follows similar patterns to L2 genesis generation that
were done recently.

Follow up PRs can potentially use the same sort of deployer pattern
as in https://github.com/ethereum-optimism/optimism/pull/10343
for when doing the L1 genesis dump to remove the need to specify the
private key.

* contracts-bedrock: explicit deploy config

Remove the concept of implicit deploy config for explicit deploy config.
This removes confusing implicit behavior as well as makes it much
more straight forward for deploying multiple superchain targets
to the same L1. This is a breaking change but the error message
makes it very obvious and the docs are being updated in a way
that should include this information.

* contracts-bedrock: fix possible error

* config: cleanup

* deploy-config: fixup

* contracts-bedrock: delete name function

The `name()` function existed due to legacy
purposes when dealing with hardhat artifacts
and no longer is necessary. This commit removes
it in favor of a simpler approach of just using
the chainid instead of the name. The files that
are written are not committed into the repo.

* contracts: delete dead code

* lint: fix

* kontrol: fixup

* contracts-bedrock: prevent error

* kontrol: fixup

* kontrol: fix script

* gitignore: update

* devnet: simplify

* Update packages/contracts-bedrock/scripts/Config.sol

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

---------

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

* op-chain-ops: unwrap l1 and l2 allocs (#10387)

* feat: annotate assembly as memory safe (#10386)

* op-e2e: Fix flaky fault proof tests (#10389)

Custom config options were being applied before the defaults, causing them to be overwritten.
In particular this meant there was a small sequencer window and safe head progressed rapidly.

* �Deploy Security Council Safe and Liveness Extensions (#10120)

* ctb: Add deploySecurityCouncilSafe

* ctb: Allow _callViaSafe to use an arbitrary safe address

* ctb: Refactor Security Council deploy

Adds console.log calls

Uses the new _callViaSafe to reduce a lot of boilerplate

* ctb: Add livenessModuleInterval to deploy config

* ctb: Add livenessModuleThresholdPercentage to deploy config

* ctb: Add LivenessModuleMinOwners to deploy config

* ctb: Add council safe config and satisfy liveness module constructor

* ctb: Make liveness deploy funcs public

* Add DeployOwnership.sol

* Use deploySafe(name) to deploy SC and Foundation

* ctb: just use addr_ on all named returns

* ctb: Fix create2 collision in deploySafe

* ctb: Add example foundation config

* ctb: Add example council config and set it up

* ctb: Remove unused imports

* ctb: Address feedback on deploy ownership

* Add override for deploySafe with custom owners and threshold

ctb: Use the deploySafe override where applicable

* ctb: cleanup keepDeployer logic

* fixup! Add override for deploySafe with custom owners and threshold

* snapshots

* op-chain-ops: allocs validation (#10388)

Skip check for codesize on gov token address if governance is
not enabled.

* ci: Move sdk-next-test to run on develop only (#10390)

It requires env vars that aren't set for external PRs.

* feat(ctb): Promote FP contracts to first major version (#10382)

Promotes the fault proof contracts that are semantically versioned to
`1.0.0`, in preparation for the upcoming deployment.

* cannon: Adjust initial heap (#10376)

* cannon: Adjust initial heap start

This gives the program more memory to work with; minimizing the chance
of heap/stack corruption.

* Update cannon/mipsevm/patch.go

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: clabby <ben@clab.by>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* op-dispute-mon: Add metric to report timestamp of last invalid proposal (#10373)

* ctb: Add deployDeputyGuardian (#10207)

* ctb: Deploy DeputyGuardianModule

WIP: need to fix superchainconfig address issue

* ctb: Expand security council config

* op-chain-ops: Add unclaimed game credits script (#10367)

* op-chain-ops: Add unclaimed game credits script

`unclaimed-credits` computes the unclaimed credits across all games and
who is eligible to claim them.

Useful for superchain-ops actions.

* account for step creditors

* dispute-mon: Set claim statuses that no longer have games back to 0 (#10391)

* Reapply "feat: custom gas token (#10143)" (#10384) (#10395)

Now that the fault proof contracts release has happened, we
can merge in the custom gas token changes.

This reverts commit 2b1c99b39744579cc226077d356ae9e5f162db4a.

* contracts-bedrock: fix commit hash serialization (#10383)

Previous implementation didn't correctly serialize as string
so it came out as unreadable, now we make sure to abi encode
and decode correctly. Enables us to know which commit the code
runs on to help with debugging.

* op-program: Add v1.0.0 to set of reproducibility checks (#10403)

* chore: Remove the logs from `stderr` and `stdout`. (#10352)

* deps: bump slither to 0.10.2 (#10411)

slither is currently erroring in CI with a strange error.
This bumps `slither` to the latest release in an attempt to
fix that issue.

The issue is described here: https://github.com/ethereum-optimism/optimism/pull/10410

The release can be found here: https://github.com/crytic/slither/releases

This needs a release of `ci-builder` followed up to get the new version
of slither running in CI.

* op-conductor: fixes proposer outputAtBlock rpc arg compatability (#10393)

* build(deps): bump github.com/ethereum/go-ethereum in /proxyd (#10413)

Bumps [github.com/ethereum/go-ethereum](https://github.com/ethereum/go-ethereum) from 1.13.14 to 1.13.15.
- [Release notes](https://github.com/ethereum/go-ethereum/releases)
- [Commits](https://github.com/ethereum/go-ethereum/compare/v1.13.14...v1.13.15)

---
updated-dependencies:
- dependency-name: github.com/ethereum/go-ethereum
  dependency-type: direct:production
...

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

* call ec.Close() (#10412)

* chore(ctb): Update sepolia devnet 0 deploy config (#10396)

## Overview

Updates the sepola devnet 0 deploy config's absolute prestate value to
match that of `op-program/v1.0.0`'s tag.

### Verification

1. `git checkout op-program/v1.0.0`
1. In the monorepo root, run `make reproducible-prestsate`
1. Compare the resulting prestate hash with the one in this PR.

* remove outOfData variable (#10405)

* ci: `ci-builder:0.49.0` (#10414)

* ci: `ci-builder:0.49.0`

Includes a bump of slither

https://github.com/ethereum-optimism/optimism/pull/10411

* ci: slither github action bump version

* op-chain-ops: delete memdb (#10404)

* op-chain-ops: delete memdb

The simple in memory statedb implementation that was
backed by a genesis has served us well but is no longer
required since we build the genesis files using foundry.
This was originally used to enable simple execution to
deploy contracts and then dump into a `genesis.json`.
Keeping this memdb around will only bloat PRs that update
the geth version as they may change the interface to the
statedb. Instead of using the memdb interface, the genesis
is modified directly.

* lint: fix

* style: way better

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

* build: fix

* build: fix

---------

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

* Docker-targets v2 (#10346)

* Revert "Revert "Merge pull request #8242 from ethereum-optimism/go-docker-targets""

This reverts commit d972c46010b507a0a3ab5b1d3f9032422e028339.

It also fixes up some conflicts / inconsistencies,
 since op-conductor was added after the original revert.

* ops: experimental cross-build fixes

* Retrieve git tag in Circle CI and use to set op version within docker image

* Update dispute-mon and da-server to use new docker build flow

* Fix GIT_VERSION script in Circle CI config.yml

* Update ops-bedrock docker-compose to use new docker build flow

* Load pre-built op-challenger image in devnet tests

* Save op-challenger.tar to avoid docker rebuild in devnet tests

* Add Circle CI job for check-cross-platform

* Allow env var to override VERSION in Makefiles

* Pass version to op-program components except op-program-client

* Wrap all docker-bake variable names in quotes

---------

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

* slither: bump ci versions (#10410)

Since slither seems to be failing consistently in CI, try bumping the
versions of the tooling.

Bumps to latest slither github action release: https://github.com/crytic/slither-action/releases/tag/v0.4.0

Meant to fix the slither issue seen in https://github.com/ethereum-optimism/optimism/pull/10408

```
[-] SARIF output enabled, writing to results.sarif.
[-] Slither config provided: packages/contracts-bedrock/slither.config.json
[-] SLITHERARGS provided. Running slither with extra arguments
'forge clean' running (wd: /github/workspace/packages/contracts-bedrock)
'forge config --json' running
'forge build --build-info --skip */test/** */scripts/** --force' running (wd: /github/workspace/packages/contracts-bedrock)
Traceback (most recent call last):
  File "/opt/slither/bin/slither", line 8, in <module>
    sys.exit(main())
  File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 753, in main
    main_impl(all_detector_classes=detectors, all_printer_classes=printers)
  File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 859, in main_impl
    ) = process_all(filename, args, detector_classes, printer_classes)
  File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 107, in process_all
    ) = process_single(compilation, args, detector_classes, printer_classes)
  File "/opt/slither/lib/python3.9/site-packages/slither/__main__.py", line 80, in process_single
    slither = Slither(target, ast_format=ast, **vars(args))
  File "/opt/slither/lib/python3.9/site-packages/slither/slither.py", line 156, in __init__
    sol_parser.parse_top_level_items(ast, path)
  File "/opt/slither/lib/python3.9/site-packages/slither/solc_parsing/slither_compilation_unit_solc.py", line 326, in parse_top_level_items
    get_imported_scope = self.compilation_unit.get_scope(import_directive.filename)
  File "/opt/slither/lib/python3.9/site-packages/slither/core/compilation_unit.py", line 282, in get_scope
    filename = self._crytic_compile_compilation_unit.crytic_compile.filename_lookup(
  File "/opt/slither/lib/python3.9/site-packages/crytic_compile/crytic_compile.py", line 283, in filename_lookup
    raise ValueError(f"{filename} does not exist")
ValueError: lib/openzeppelin-contracts/contracts/utils/Context.sol does not exist
```

* fix(op-dispute-mon): Claim ID and Clock Logging (#10415)

* fix(op-dispute-mon): log the claim id to validate the claim during investigation

* fix(op-dispute-mon): log the clock value as well

* Dispute game compatible wd mon (#10375)

* adding  fault-wd-mon

* adding faultproof wd-mon

* adding faultproof wd-mon

* fixing docker file

* fixing how we get disputegame given a withdrawal log

* code review fix

* fix type

* only FundDevAccounts when DeployConfig.FundDevAccounts is true (#10432)

* contracts-bedrock: add useInterop flag (#10433)

* bedrock-devnet: add useInterop flag

* op-chain-ops: add useInterop flag

* op-node: add useInterop flag to config

* contracts-bedrock: add useInterop flag to DeployConfig

* contracts-bedrock: add useInterop flag to Predeploy's getName

* contracts-bedrock: add useInterop flag to L2Genesis

* contracts-bedrock: add useInterop flag to Predeploy's test

* contracts-bedrock: add useInterop flag to CommonTest

* contracts-bedrock: add useInterop flag to Setup

* Revert "op-chain-ops: add useInterop flag"

This reverts commit 83c63cc63bcccf15c8f2e7d7c4f74d0316abcdae.

* Revert "op-node: add useInterop flag to config"

This reverts commit c3617f9fd8ae4777cf4f13dd399167f0718cd9d1.

* Revert "bedrock-devnet: add useInterop flag"

This reverts commit 858257c8666af70586e6f40a510b2a0ff3056bcb.

* contracts-bedrock: use L1Block in Predeploys for L1BlockInterop

* contracts-bedrock: update gas-snapshot

* op-chain-ops: add UseInterop flag to genesis DeployConfig

* contracts-bedrock: remove useInterop argument in Predeploys

* op-chain-ops: make UseInterop flag optional

Co-Authored-By: protolambda <proto@protolambda.com>

---------

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

* fix(op-dispute-mon): Unresolved Claim Logging (#10394)

* fix(op-dispute-mon): unresolved claim logging

* fix(op-dispute-mon): lints

* fix(op-dispute-mon): unresolved claim logging

* fix(op-dispute-mon): move resolution response buffer to a constant

* op-node: Implement fjord RLP & Channel Bank Size limit Increases (#10357)

* op-node: Increase MaxChannelBankSize with Fjord

This also creates a ChainSpec object which is responsible for returning protocol
parameters. We use a different object than the rollup.Config because the config
is primarily a disk representation & does not concern itself with protocol constants.

* op-node: Increase MaxRLPBytesPerChannel with Fjord

* fix(op-dispute-mon): Improve Resolution Status Granularity (#10419)

* stash resolution status

* fix(op-dispute-mon): resolution status metric

* fix(op-dispute-mon): add logs for resolvable games

* cannon: remove final dep on bindings (#10408)

* cannon: remove final dep on bindings

Removes the last dependency that cannon has on `op-bindings/bindings`.
This is done my creating reusable code for reading foundry artifacts
from disk. This code should be reusable between any service that wants
to read the foundry artifacts from disk. This includes roundtrip
tests for JSON serialization of the foundry artifacts.

* op-chain-ops: address semgrep

https://github.com/golang/go/issues/22967

* chore(ctb): Update sepolia deploy config (#10418)

* fix(op-dispute-mon): export forecast to keep exporting consistent (#10430)

* Challenger: Pull large preimage proposals from tx logs (#10416)

* challenger: Pull large preimages from tx logs

* challenger: Add a few more fetcher unit tests

* challenger: Implement review fixes related to slice handling, types

* challenger: Clean up fetcher changes

* op-challenger: Make l2-eth-rpc and rollup-rpc required (#10445)

* op-challenger: Make l2-eth-rpc required for all trace types.

Add rollupEndpoint to NewConfig signature since it was already always required.

* op-e2e: Remove rollup and l2-eth-rpc params from WithCannon and WithAlphabet

* op-challenger: Integrate challenging L2 block numbers (#10446)

* op-challenger: Make l2-eth-rpc required for all trace types.

Add rollupEndpoint to NewConfig signature since it was already always required.

* op-e2e: Remove rollup and l2-eth-rpc params from WithCannon and WithAlphabet

* op-challenger: Integrate challenging L2 block numbers

* add to L2Genesis Interop contracts (CrossL2Inbox, L2ToL2CrossDomainMessenger) (#10417)

* bedrock-devnet: add useInterop flag

* op-chain-ops: add useInterop flag

* op-node: add useInterop flag to config

* contracts-bedrock: add useInterop flag to Predeploy's getName

* contracts-bedrock: add useInterop flag to L2Genesis

* contracts-bedrock: add useInterop flag to Predeploy's test

* contracts-bedrock: add useInterop flag to Setup

* Revert "op-chain-ops: add useInterop flag"

This reverts commit 83c63cc63bcccf15c8f2e7d7c4f74d0316abcdae.

* Revert "op-node: add useInterop flag to config"

This reverts commit c3617f9fd8ae4777cf4f13dd399167f0718cd9d1.

* Revert "bedrock-devnet: add useInterop flag"

This reverts commit 858257c8666af70586e6f40a510b2a0ff3056bcb.

* contracts-bedrock: use L1Block in Predeploys for L1BlockInterop

* contracts-bedrock: remove useInterop argument in Predeploys

* op-chain-ops: fix TestConfigDataMarshalUnmarshal

* contracts-bedrock: add CrossL2Inbox, L2ToL2CrossDomainMessenger to L2Genesis script

* contracts-bedrock: add tests for interop branch of L2Genesis

* Revert "op-chain-ops: fix TestConfigDataMarshalUnmarshal"

This reverts commit fbc60c1fed796d03837dd674406b3aa63445deeb.

* proxyd: remove unused error (#10444)

* contracts-bedrock: fix deposit gas limit (#10449)

* contracts-bedrock: fix deposit gas limit

Ensures that the gas limit is high enough for the system
deposit to go through. The previous gas limit was slightly
too small. This ups it so that we are sure the system deposit
goes through.

* contracts-bedrock: fix test

* feat(ctb): Extra monitoring events in `OptimismPortal2` (#10423)

Adds extra monitoring events into the `OptimismPortal2` for a dispute
game being blacklisted and the resepected game type being set.

* fix(op-challenger): use op challenger env var prefix (#10442)

* feat(op-challenger): sort the games listing subcommand (#10454)

* feat(op-dispute-mon): Contract Creation Failure Metric (#10447)

* feat(op-dispute-mon): contract creation failure metric

* fix(op-dispute-mon): log the game address for easier investigation

* feat(ctb): Add new move type to FDG for OR counters (#10438)

* feat(ctb): Add new move type to FDG for OR counters

Adds a potential new move type to the `FaultDisputeGame` that allows for
a participant to reveal the preimage of the claimed output root to
display to the dispute game that the claimed L2 block number does not
match up with the block number that the block header within the output
root commits to.

The root output can be challenged with the new special move type iff:
1. The passed `OutputRootProof` hashes to equal the claimed output root.
1. The passed Header RLP hashes to equal the block hash within the
`OutputRootProof` above.
1. The claimed block number in the dispute game does not equal the block
number that the output root commits to.

If there is a successful challenge with the new move type, that claim
itself is inserted as a special case counter. In `resolveClaim`, the
contract will always consider the creator of the L2 block challenge the
winner of the bond. Notably, this only applies for the root claim
subgame.

* feat(ctb): Transition `RLPReader` to 4byte errors (#10439)

* feat(ctb): Transition `RLPReader` to 4byte errors

* semver

* update summary

* portal semver

* extra checks

* contracts-bedrock: deprecate `finalizeDeposit` (#10459)

The [finalizeDeposit](https://github.com/ethereum-optimism/optimism/blob/b9eb669aa5dfc36204ce2167da2e5ab8bbde61de/packages/contracts-bedrock/src/L2/L2StandardBridge.sol#L147)
function is left over from the legacy OVM style standard bridge.
It is impossible to be called as the bridge has moved to the modern interface which is based on `finalizeBridgeETH` or `finalizeBridgeERC20`.

Methods actually used in bridge:

- [finalizeBridgeETH](https://github.com/ethereum-optimism/optimism/blob/b9eb669aa5dfc36204ce2167da2e5ab8bbde61de/packages/contracts-bedrock/src/universal/StandardBridge.sol#L333)
- [finalizeBridgeERC20](https://github.com/ethereum-optimism/optimism/blob/b9eb669aa5dfc36204ce2167da2e5ab8bbde61de/packages/contracts-bedrock/src/universal/StandardBridge.sol#L379)

Proof that finalizeDeposit is not used anywhere. Its defined in the L2StandardBridge and otherwise only in tests.

```
git grep -rin finalizeDeposit
snapshots/abi/L2StandardBridge.json:272:    "name": "finalizeDeposit",
src/L2/L2StandardBridge.sol:147:    function finalizeDeposit(
test/L2/L2StandardBridge.t.sol:523:    /// @dev Tests that `finalizeDeposit` succeeds. It should:
test/L2/L2StandardBridge.t.sol:527:    function test_finalizeDeposit_depositingERC20_succeeds() external {
test/L2/L2StandardBridge.t.sol:544:        l2StandardBridge.finalizeDeposit(address(L1Token), address(L2Token), alice, alice, 100, hex"");
test/L2/L2StandardBridge.t.sol:547:    /// @dev Tests that `finalizeDeposit` succeeds when depositing ERC20 with custom gas token.
test/L2/L2StandardBridge.t.sol:548:    function test_finalizeDeposit_depositingERC20_customGasToken_reverts() external {
test/L2/L2StandardBridge.t.sol:559:        l2StandardBridge.finalizeDeposit(address(L1Token), address(L2Token), alice, alice, 100, hex"");
test/L2/L2StandardBridge.t.sol:562:    /// @dev Tests that `finalizeDeposit` succeeds when depositing ETH.
test/L2/L2StandardBridge.t.sol:563:    function test_finalizeDeposit_depositingETH_succeeds() external {
test/L2/L2StandardBridge.t.sol:579:        l2StandardBridge.finalizeDeposit{ value: 100 }(
test/L2/L2StandardBridge.t.sol:584:    /// @dev Tests that `finalizeDeposit` reverts when depositing ETH with custom gas token.
test/L2/L2StandardBridge.t.sol:585:    function test_finalizeDeposit_depositingETH_customGasToken_reverts() external {
test/L2/L2StandardBridge.t.sol:594:        l2StandardBridge.finalizeDeposit(address(0), Predeploys.LEGACY_ERC20_ETH, alice, alice, 100, hex"");
test/L2/L2StandardBridge.t.sol:597:    /// @dev Tests that `finalizeDeposit` reverts if the amounts do not match.
test/L2/L2StandardBridge.t.sol:610:    /// @dev Tests that `finalizeDeposit` reverts if the receipient is the other bridge.
test/L2/L2StandardBridge.t.sol:623:    /// @dev Tests that `finalizeDeposit` reverts if the receipient is the messenger.
```

There cannot be third party integrations since it is `onlyBridge`,
meaning only the `L1StandardBridge` can call it.

This commit removes the tests and the function from the
`L2StandardBridge`. This is part of refactoring as we go,
ensuring that the code stays clean. Tend the garden.

* feat(ctb): Expose `l2BlockNumberChallenger` (#10463)

## Overview

Exposes the `l2BlockNumberChallenger` in the fault dispute game.

* op-dispute-mon: Enrich games in parallel (#10461)

* op-dispute-mon: Enrich games in parallel

Reports any failure to retrieve data in the failed metric since it results in the game being skipped.

* op-dispute-mon: Make max concurrency configurable

Simplify the code a bit.

* op-dispute-mon: Add numbers to log

* op-dispute-mon: Reduce default max concurrency

* op-dispute-mon: Add metric for monitor duration

* op-challenger: Implement block number challenge calls in contract bindings (#10462)

* custom-gas-token: add e2e test (#10440)

* add tests for activating custom gas token and bridging tokens to l2

* update test following concurrent change in SystemConfig ABI

* update systemconfig bindings

steps to reproduce:

git checkout  v1.7.3 -- op-bindings

remove WETH9 from artifacts.json

cd op-bindings

make bindgen-generate-local

select this one file discard the others

* use require.NoError instead of require.Nil

* build: fix

* refactor using setup + subtests

* add assertions for WETH name and symbol getters

* minor changes in response to review

* devnet-allocs: use sender with known private key

some e2e tests require the ability to transact as the system owner safe owner, so we can't use the foundry default sender (private key unknown)

This uses the same address as "Deployer"

* use deployer as Safe owner

* WIP refactor test

* add most of the remaining test assertions

* rename file

* flatten out subtests

we want to specify a strict ordering of operations

* complete checkWithdrawal step

* reorder test steps

* check both ETH and token balances on l1 during withdraw

* simplify callViaSafe helper

* factor out expectations

* add some extra boilerplate to track TransactionDeposited event

and GasPayingTokenSet event on L2

* remove comments

* remove wayward line

* flatten out sub test

* add comment to devnet forge script command

* remove version check on systemConfig

* update systemconfig bindings

steps to reproduce:

git checkout  v1.7.3 -- op-bindings

remove WETH9 from artifacts.json

cd op-bindings

make bindgen-generate-local

select this one file discard the others

* skip TestCustomGasToken when UseFPAC is true

* use differente helper to skip test

* harmonize use of context.Background{}

* tidy up and add comments

* remove cfg.DeployConfig.FinalizationPeriodSeconds = 2

* remove log lines

* use decimal instead of hex

---------

Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>

* op-dispute-mon: Fetch output root agreement in extract stage (#10464)

* op-dispute-mon: Enrich games in parallel

Reports any failure to retrieve data in the failed metric since it results in the game being skipped.

* op-dispute-mon: Make max concurrency configurable

Simplify the code a bit.

* op-dispute-mon: Add numbers to log

* op-dispute-mon: Reduce default max concurrency

* op-dispute-mon: Add metric for monitor duration

* op-dispute-mon: Fetch output root agreement in extract stage

Removes the last HTTP call from the transform stage and allows the calls to be done in parallel.

* op-node: Start EL sync even when the genesis is finalized (#10457)

* dependabot(gomod): bump golang.org/x/crypto from 0.21.0 to 0.23.0 (#10420)

* dependabot(gomod): bump golang.org/x/crypto from 0.21.0 to 0.23.0

Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.21.0 to 0.23.0.
- [Commits](https://github.com/golang/crypto/compare/v0.21.0...v0.23.0)

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

Signed-off-by: dependabot[bot] <support@github.com>

* deps: update

* deps: update

---------

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

* op-challenger: Add a metric for number of l2 block numbers challenged. (#10482)

* op-chain-ops: decouple from bindings (#10466)

* op-chain-ops: decouple from bindings

Another commit that removes bindings from `op-chain-ops`.
The entire repo is very close to being completely decoupled
from having a global set of bindings. This does have a little
bit of code duplication, but it generally results in a more
simple layout.

Both the `crossdomain` and `upgrades` package end up with their
own `bindings` package. The `crossdomain` package is mostly
legacy but the `indexer` still depends on it. The `indexer`
is in maintenance mode, after reth exex it makes a lot of sense
to build indexers directly into reth. The `crossdomain` package
uses the bindings to migrate and serialize L1 to L2 cross domain
messages. These bindings never need to be updated.

The `upgrades` package has a justfile added that can be used to
regenerate the bindings. This makes it easier to generate bindings
based on a specific release. Previously the `upgrades` bindings
were coupled in a strange way and backwards compatibility
hacks needed to exist. Now the team working on upgrades can update
the bindings however they want so the proper upgrade can easily
be generated.

* upgrades: error case

Since the AddressList doesn't have the `DisputeGameFactory`
yet, it cannot be pulled into the upgrade scripts. Instead
return an error so that we MUST update it.

https://github.com/ethereum-optimism/superchain-registry/blob/110e744c97b4873384ad2da365c281639fc0668e/superchain/superchain.go#L194

* Fix makefile fuzz targets on osx (#10476)

* op-dispute-mon: Ensure a zero value is set for sufficient/insufficient labels (#10481)

If the collateral for a DelayedWETH contract is sufficient and then becomes insufficient, we need to zero out the metric with the sufficient label and set the values on the insufficient labelled version.

* op-challenger: Fix highest_acted_l1_block metric (#10485)

Completed games weren't updating their latest acted block because they don't get scheduled which meant the metric always reported 0.

* op-proposer: update test to use local bindings (#10473)

Updates a single import to use the `op-proposer` bindings
instead of the global monorepo bindings. The big consumer
of the bindings after this are `op-e2e` and some tests
in `op-service`.

* op-service: decouple from `op-bindings` (#10491)

This moves the ERC20 bindings that the `op-service` tests
depend on into the `test` package that already exists.
This ensures that these bindings can always exist safely and
be used as part of the tests.

* op-chain-ops: update bindings import (#10490)

Updates another import to reference local bindings
rather than global bindings. This test isn't
going to need to worry about having its bindings be
updated.

* Update conf_depth.go (#10487)

Don't apply the conf depth if l1Head is empty (as it is during the startup case before the l1State is initialized)

* cannon: fix a typo in fuzz test (#10488)

* Test setup results of DeployOwnership script (#10397)

* ctb: Test ownership setup scripts

* ctb: Add nested config of modules

* Add guard and module checks

* Update packages/contracts-bedrock/scripts/DeployOwnership.s.sol

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

---------

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

* contracts-bedrock: portal opaque data test (#10443)

* contracts-bedrock: add deposit event coverage

Adds deposit event differential coverage for the two
different places where the deposit tx event exists.
This ensures that a valid event ends up getting emitted.
Also modularizes the code for serializing the event so that
there are not footguns when computing the "opaque data".

* contracts-bedrock: revert diff to portal

Removes the diff to the portal, perhaps we want it
but test still passes without it

* contracts-bedrock: lint

* test: improve

* tests: update

* tests: fixup

* semver: fix

* lint: fix

* Fjord: Implement max sequencer drift change to a constant (#10465)

* op-node/rollup: Add MaxSequencerDrift to ChainSpec

* op-node/rollup,op-e2e: Use spec max seq drift instead of config

* op-node/rollup: Showcase feature/fork separation pattern with seq drift change

* op-node/driver: add origin selector Fjord test

* op-node/rollup: refactor batch validation test

prepare to allow for general modification of rollup config

* op-node/rollup: add batch validation test

* Update op-node/rollup/types.go

Co-authored-by: Joshua Gutow <jgutow@oplabs.co>

* op-node/rollup/derive: add Fjord span batch validation test

---------

Co-authored-by: Joshua Gutow <jgutow@oplabs.co>

* contracts-bedrock: weth predeploy version (#10441)

Updates the weth predeploy to be versioned.
Even though the weth predeploy is not proxied, adding
a version safely lets us make small modifications to it in the
future such as updating the version of `solc` that is used
to compile it and be able to be aware offchain of the version
that the chain has without needing to keep a registry of codehashes.

* perf: remove defer inside loop (#10497)

* Plasma: Abstract CommitmentData to Interface (#10458)

* op-node: Generic Commitment

This is a generic commitment to be used by the op-node & op-batcher.

* abstract commitments to CommitmentData interface

* correct byte-stripping ; add tests ; finish wiring

* make GenericCommitment always verify

* correct action tests

* PR comments

* fix unit test

* remove fmt.Println

---------

Co-authored-by: Joshua Gutow <jgutow@oplabs.co>

* op-challenger: Add resolve-claim subcommand. (#10504)

* feat(op-dispute-mon): L2BlockNumberChallenged Support (#10451)

* feat(op-dispute-mon): L2BlockNumberChallenged dispute monitor support

feat(op-dispute-mon): query for the l2 block number through the game metadata call

fix(op-dispute-mon): query for the l2 block number through the game metadata call

fix(op-dispute-mon): query for the l2 block number through the game metadata call

* fix(op-dispute-mon): block challenge check

* fix(op-dispute-mon): use agreement and metrice

* op-dispute-mon: Separate l2 challenge metric (#10483)

* op-dispute-mon: Consider l2 block number challenged when forecasting but don't make it a new game status.

Add a separate metric to report the number of successful L2 block number challenges.

* op-challenger: Remove unused blockNumChallenged field from list-games info struct

* op-dispute-mon: Consider l2 block challenger in expected credits. (#10484)

* feat(op-dispute-mon): Update L2 Challenges Metrics (#10492)

* fix: change the l2 challenges to tha gauge vec

* fix: consistent metric labels

---------

Co-authored-by: refcell <abigger87@gmail.com>

---------

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

* use iota properly (#10505)

* op-service: predeploys package (#10494)

Migrates the `op-bindings/predeploys` package to
`op-service/predeploys`. There is various other
"system related" code there. This unblocks fully
deleting `op-bindings` as a top level package.

* ctb: Fix compiler warnings (#10513)

* cannon: Fix inverted hint writing conditional check (#10514)

* cannon: Add units tests around hint writes

* cannon: Update hint write fuzz tests to randomize target memory

* cannon: Fix inverted conditional check

* cannon: Clean up unit test - remove panic helper

* cannon: Add error handling to fuzz test randomBytes helper

* feat(ctb): Enforce maximum L2 gas limit (#10500)

* feat(ctb): Enforce maximum L2 gas limit

Enforces a maximum L2 gas limit within the `SystemConfig`. This change
helps ensure that OP Stack chain governors keep the L2 block gas limit
within a reasonable range in order to guarantee that the L2 blocks may
be proven.

* In the `_setResourceConfig` function, the new minimum gas limit is
checked to be less than the current `gasLimit`. This value may never be
larger than `MAX_GAS_LIMIT`, per the checks in `_setGasLimit`. This
ensures that the `minimumGasLimit <= maximumGasLimit`

* Update SystemConfig.t.sol

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

---------

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

* op-chain-ops: bindings decouple (#10493)

* op-chain-ops: bindings decouple

More small bindings decoupling. After this PR is merged,
it should be possible to move `op-bindings/bindings` into
`op-e2e/bindings`

* dead-code: cleanup

* build: fix

* cannon: Handle div by zero in MIPS.sol (#10468)

* cannon: Handle div by zero in MIPS.sol

* fix revert stmt style

* ctb: Change Safe contract version to GnosisSafe v1.3.0 (#10515)

* ctb: Change Safe contract version to GnosisSafe v1.3.0

This aligns with what the Security Council is running

* ctb: Update snapshots and semver-lock

* feat(ctb): Support `OptimismPortal2` in kontrol tests (#10429)

* feat(ctb): Support `OptimismPortal2` in kontrol tests

Adds a second `DeploymentSummary` to `kontrol` for fault proofs, and
ports the existing `OptimismPortal` proofs with the `OptimismPortal2`.

* summary tests

* Update packages/contracts-bedrock/test/kontrol/README.md

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* tests

* Update `check-snapshots`

* Update packages/contracts-bedrock/test/kontrol/README.md

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

* Separate snapshot gen

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Matt Solomon <matt@mattsolomon.dev>

* ctb: Prevent calls to foundry's vm address (#10525)

* ci: forge build first (#10523)

* Fjord: Add Brotli channel compression support (#10358)

* wip

* wip

* fix

* fix

* fix

* fix

* address some of the bots comments

* use version bit of 1

* fix lint

* adding compression type

* update batch reader

* abstract span channel compressor

* test and singular batch compressor

* fix

* lint

* move channel compressor as interface

* add base class

* fix go mod

* test fixes

* address comments

* fix

* fix

* revert channel builder test

* revert ratio compressor test

* add checks to accept brotli only post fjord

* revemo unnecessary in test

* fix forge-std

* gofmt

* address comments

* remove methods in compressor

* fix error msg

* add compression algo flag to optional flags

* add Clone() function

---------

Co-authored-by: Roberto Bayardo <roberto.bayardo@coinbase.com>

* op-dispute-mon: Log an error when a DelayedWETH contract has insufficient collateral. (#10510)

* op-challenger, op-dispute-mon: Fix chess clock calculations to match solidity implementation (#10509)

* op-challenger: Show resolvable time in claims list.

Don't require a sort param in list-games.

* op-challenger, op-dispute-mon: Fix chess clock calculations to match the solidity implementation.

Adds clock and L2 block challenge information to list-claims subcommand.

* feat(ctb): Remove `setResourceConfig` (#10501)

* feat(ctb): Remove `setResourceConfig`

Removes the `setResourceConfig` setter from the `SystemConfig`, only
allowing it to be set by the `ProxyAdmin` owner.

* fmt

* check either DGFAddress or L2OOAddress was provided (#10528)

* fjord: Fastlz GasPriceOracle (#10534)

* GasPriceOracle fjord fastlz update

* Review feedback

* op-e2e: Delete unused helpers from pre-output root support (#10532)

* chore: fix function names in comment (#10535)

Signed-off-by: petercover <raowanxiang@outlook.com>

* dispute-game: Sanity check disputed claim index (#10520)

* dispute-game: Sanity check disputed claim index

* Fix tests

* update snapshots

* fix docs

* move param

* op-challenger: Supply parent value when performing moves

Also moves calculation of the required bond into the contract bindings so the returned TxCandidate is ready to send.

* op-challenger: Add backwards compatibility with v1.1.1

* op-e2e: Update e2e for new FaultDisputeGame ABI

---------

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

* Fix ci version script when filtering tags (#10539)

* op-challenger/op-dispute-mon: Support version 1.0.0 of fault dispute game contracts. (#10543)

* ctb: SafeTestTools improvements (#10537)

* ctb: Move threshold check from LivenessModule constructor (#10516)

* ctb: Update snapshots and semver-lock

* ctb: Move threshold check from LivenessModule constructor

Perform the check in the deployment scripts instead.

* ctb: Add check to LM deploy script

* ctb: Update snapshots and semver-lock

* cannon: Make jsonutil error when loading json payload with extra data (#10542)

* cannon: Remove unreachable code (#10526)

* ctb: Add new OwnerRemovalFailed(string) error type to LM (#10538)

* ctb: Update snapshots and semver-lock

* ctb: Add new OwnerRemovalFailed(string) error type to LM

* chore: fault-mon fix on the L2_ORACLE() using the l2Oracle() for custom chain (#10551)

* Bump op-geth dep to v1.101315.1-rc.1 (#10548)

* Bump op-geth dep to v1.101315.1-rc.2 (#10555)

* cannon: Update MIPS readme (#10552)

* cannon: Add missing instructions to MIPS readme

* cannon: Remove pseudo-instructions from MIPS readme

* cannon: Fix readme table alignment

* cannon: Fix documentation - overflows are allowed

* reviews: Add Cantina Draft report (#10559)

* fix(ctb): kontrol snapshots (#10557)

* fix(ctb): snapshots

* ci: fix snapshot check command to also consider kontrol

* ctb: Disable the LivenessModule after ownership is transferred to
fallback owner

ctb: Use deactivated flag

ctb: Update snapshots

* ctb: Update LM deactivation

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

---------

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

* feat(ctb): Mainnet FP Deploy Config (#10544)

Add mainnet fault proof deploy config

* op-challenger: Fix highest acted L1 block metric for completed games (#10549)

* op-challenger: Fix highest acted L1 block metric for completed games

Adds an e2e test to prove it really does work.

* op-challenger: Add more context to comment.

* add ability to decode ecotone scalar values into components (#10547)

* op-batcher: Support generic DA posting (#10489)

* op-batcher: Support generic DA commitment type

* op-batcher: Support generic DA commitment type - update generic flag info

* op-batcher: Support generic DA commitment type - change flag name to respect op-plasma spec

* op-batcher: Support generic DA commitment type - update devnet script to specify da svc

* op-batcher: Support generic DA commitment type - fix failing multi challenge test

* op-batcher: Support generic DA commitment type - fix failing multi challenge test

* op-batcher: Support generic DA commitment type - rm dbug regression in devnet script

* op-batcher: Support generic DA commitment type - fix bugs in commitment propagation from test da server

* op-batcher: Support generic DA commitment type - rm commitment type assertion when reading in op-node

* op-batcher: Support generic DA commitment type - rm dead code

* op-batcher: Support generic DA commitment type - disable da service in devnet script

* op-batcher: Support generic DA commitment type - less verbose comments

* op-batcher: Support generic DA commitment type - add tests for generic DA client <-> interactions

* op-batcher: Support generic DA commitment type - add tests for generic DA client <-> interactions

* op-batcher: Support generic DA commitment type - title case cli var

* contracts-bedrock: remove dead deploy configs (#10512)

* contracts-bedrock: remove dead deploy configs

Removes dead deploy configs from `contracts-bedrock`. This
sort of information is now in `superchain-registry`, so there
is no reason to keep it around in `contracts-bedrock`.

* imports: delete dead imports

* Fjord: Brotli op-e2e test (#10531)

* wip

* wip

* fix

* fix

* fix

* fix

* address some of the bots comments

* use version bit of 1

* fix lint

* adding compression type

* update batch reader

* abstract span channel compressor

* test and singular batch compressor

* fix

* lint

* move channel compressor as interface

* add base class

* fix go mod

* test fixes

* address comments

* fix

* fix

* revert channel builder test

* revert ratio compressor test

* add checks to accept brotli only post fjord

* revemo unnecessary in test

* fix forge-std

* gofmt

* address comments

* remove methods in compressor

* fix error msg

* add compression algo flag to optional flags

* add Clone() function

* brotli e2e test

* fix fmt

* fix comments

* fix

* update

---------

Co-authored-by: Roberto Bayardo <roberto.bayardo@coinbase.com>

* chore: remove test-integration rule from Makefile (#10480)

Removes the seemingly obsolete rule to make
integration tests from the root Makefile.
Appears that integration tests were deprecated by
PR #5926 and this rule no longer works.

* op-node: Add dedicated PlasmaConfig struct to rollup.Config (#10499)

* op-node: Add dedicated PlasmaConfig struct to rollup.Config

This commit adds a dedicated PlasmaConfig section to the rollup
config. This collects all Plasma Mode configuration to the same place
and enables future expansion of Plasma Mode configuration to be confined
to a single location.

In the interim, the op-node can read from both the legacy fields and the
dedicated struct. If both are set, they must be consistent. The genesis
creation tooling currently only writes with the new config.

* Set plasma mode from superchain registry

* Remove LegacyUsePlasma usage

* doc: update style guide (#10424)

* doc: update style guide

* Update packages/contracts-bedrock/STYLE_GUIDE.md

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

---------

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

* remove reference to op-node metrics in op-service. add testutils mocks (#10545)

for these clients

* fix(op-node): p2p ipnet struct validation (#10518)

* fix(op-node): p2p ipnet struct validation

* use s.log instead of global log

* Update CODEOWNERS for op-plasma package (#10496)

* ci: reduce kontrol tests (#10563)

* Fjord: Add FastLZ compression into L1CostFunc (#9618)

* Add FastLZ for better L1Cost estimation

Co-authored-by: Michael de Hoog <michael.dehoog@coinbase.com>
Co-authored-by: Danyal Prout <danyal.prout@coinbase.com>
Co-authored-by: Yukai Tu <yukai.tu@coinbase.com>
Co-authored-by: angel-ding-cb <angel.ding@coinbase.com>

* fix all the tests

* fix: upate GPO network transactions to match spec

* Update GPO contracts

* update to 1d model / add tests

* update allocs and test framework to support new fjord contracts

* add fuzz testing

* increase minimum estimation to 100 / update circleci for e2e fuzz tests

* use linear regression for l1 gas used

* Add differential fastlz fuzzing between solady/cgo fastlz/geth fastlz

* Review feedback

* Bump geth

* fix: ensure we don't gc the data during fastlz compression

* Replace common.Hex2Bytes with common.FromHex

---------

Co-authored-by: Danyal Prout <danyal.prout@coinbase.com>
Co-authored-by: Yukai Tu <yukai.tu@coinbase.com>
Co-authored-by: angel-ding-cb <angel.ding@coinbase.com>
Co-authored-by: Danyal Prout <me@dany.al>

* Fixed typos (#9634)

Co-authored-by: smartcontracts <kelvin@optimism.io>

* fix(indexer): cleanup custom client code with op-service changes (#10546)

* indexer client cleanup

* feedback -- mock.AssertExpectations

* ci: remove dead `op-bindings` job (#10566)

The `op-bindings` package has no tests in it, therefore
it doesn't need a job in CI. You can see in [this](https://app.circleci.com/pipelines/github/ethereum-optimism/optimism/54620/workflows/1ce56b22-29ac-46e8-9001-d419767756be/jobs/2361188)
job, there is nothing that runs.

```
gotestsum --format=testname --junitfile=/tmp/test-results/op-bindings.xml --jsonfile=/testlogs/log.json \
-- -parallel=8 -coverpkg=github.com/ethereum-optimism/optimism/... -coverprofile=coverage.out ./...

EMPTY op-bindings/bindings
EMPTY op-bindings/bindingspreview

DONE 0 tests in 17.694s
```

`op-bindings` is deprecated and on its way out of the monorepo, services
are responsible for their own bindings management now.

The following see [here](https://github.com/ethereum-optimism/optimism/blob/9047beb54c66a5c572784efec8984f259302ec92/op-chain-ops/justfile)
for an example on how to generate bindings in a simple way.

* Log when a hardfork is first activated (#10530)

* Log when a hardfork is first activated

* Initialize nextFork so duplicate logs are not created after op-node resets

* Move nextFork field from rollup.Config to rollup.ChainSpec

* Add unit tests for CheckForkActivation

* dependabot(gomod): bump github.com/multiformats/go-multiaddr (#10570)

Bumps [github.com/multiformats/go-multiaddr](https://github.com/multiformats/go-multiaddr) from 0.12.3 to 0.12.4.
- [Release notes](https://github.com/multiformats/go-multiaddr/releases)
- [Commits](https://github.com/multiformats/go-multiaddr/compare/v0.12.3...v0.12.4)

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

* Some Superchain L2 Genesis Fixes (#10231)

* add l2GenesisEcotoneTimeOffset to getting-started/config.sh

* set l2GenesisDeltaTimeOffset to 0

* remove unecessary line

* parse 4844 params in registry-data tool

* update overhead and scalar

* add 4844 fields to the other Genesis literal

* scalar: revert

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

---------

Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>

* dependabot(gomod): bump github.com/decred/dcrd/dcrec/secp256k1/v4 from 4.2.0 to 4.3.0 (#10009)

* dependabot(gomod): bump github.com/decred/dcrd/dcrec/secp256k1/v4

Bumps [github.com/decred/dcrd/dcrec/secp256k1/v4](https://github.com/decred/dcrd) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/decred/dcrd/releases)
- [Changelog](https://github.com/decred/dcrd/blob/master/CHANGES)
- [Commits](https://github.com/decred/dcrd/compare/dcrec/secp256k1/v4.2.0...dcrec/secp256k1/v4.3.0)

---
updated-dependencies:
- dependency-name: github.com/decred/dcrd/dcrec/secp256k1/v4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* deps: update

---------

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

* Enable Fjord devnet activation (#10573)

* Enable Fjord devnet activation

* chaincfg: add Fjord time to sepolia-devnet-0

* fix log lines for engine queue (#10575)

* contributing: remove changesets (#10574)

We no longer use changesets to release our software.
The changesets still exist for unmaintained code.
Removing this from our contributing doc as the maintained
software does not use changesets. The releases are on github.

* Remove remaining use of Hex2Bytes (#10569)

* op-bindings: remove (#10576)

* op-bindings: remove

Removes the `op-bindings` package from the monorepo. It is now
the responsibility of services to ensure that they are compatible
with particular versions of the contracts. This will reduce the
need for feature branches, as there doesn't have to be a single
implementation of a contract with its bindings.

The following link shows an easy way to generate bindings for
your own service: https://github.com/ethereum-optimism/optimism/blob/943ed0f94f02a2ebad5155334828cc07fca46e0f/op-chain-ops/justfile

`abigen` from go-ethereum is very useful here.

* indexer: remove op-bindings from dockerfile

* op-e2e: cleanup

Cannot completely remove `legacybindings` because of
dependencies in types in different libraries.
Would be solved by a `go-sdk`.

* Revert "op-e2e: cleanup"

This reverts commit 43791f95213ad9566adeba087a022a48b794dc45.

* op-node: batch-decoder: Support ecotone (#10577)

* [Sequencer HA] Add clearer logs for debugging (#10562)

* add clearer logs for debugging

* fix small things based on the comment

* restart cli process

* small fix on the naming convention

* remove .String()

* make `l1.beacon-archiver` work (#10269)

* make l1.beacon-archiver work

* check #blobs inside BeaconBlobSideCars

* compatible with fetchAllSidecars

* also check inside BeaconBlobSideCars

* check index set inclusion in BeaconBlobSideCars

* preallocate

* add test for BeaconBlobSideCars

* assert error string

* ci: less resource intensive proofs (#10572)

* op-plasma: a litle fixed missing error check and godoc (#10587)

* bump op sdk (#10593)

* Version Packages (#10594)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

* contracts-bedrock: ecotone gas config support (#10226)

* contracts-bedrock: ecotone gas config support

Updates the gas config on the `SystemConfig` to be ecotone first.
This resolves chain operator ux issues with setting the gas config,
rendering the additional tooling for calculating the encoded
scalar version obsolete. This version of the system config
is technically backwards compatible with pre-ecotone, but it
requires a follow up tx to call the old `setGasConfig` method.
The old gas config method was updated such that it cannot
be used to set ecotone style config to prevent footguns.
A new method `setGasConfigEcotone` should be used instead.

* tests: fix build

* config: fixup

* deploy-config: fixup

* chain-assertions: improve

* lint: fix

* scripts: remove overhead and scalar config

Reduces tech debt

* contracts-bedrock: fix build

* snapshots: update

* gas-snapshot: update

* contracts-bedrock: fix tests

* semver-lock: regenerate

* build: fix

* build: fix

* e2e: fix build

* config: fix test

* op-e2e: cleanup

Still support pre-ecotone tests

* test: fix

* kontrol: fixup

* op-e2e: turn on ecotone

* ecotone: fix test

* op-e2e: fix test

* op-e2e: fix failing test

* op-e2e: update tests

* deps: update

* kontrol: update

* semver-lock: update

* snapshots: update after version change

* typo: fix

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

---------

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

* op-e2e: Convert most FaultDisputeGame read operations to use custom contract bindings (#10533)

* op-e2e: Delete unused helpers from pre-output root support

* op-e2e: Convert most FaultDisputeGame read operations to use custom contract bindings

* op-e2e: Remove manual creation of contract bindings

* feat: add new CheckSecrets dripcheck (#10479)

* op-dispute-mon: Publish latest valid and invalid proposal times (#10564)

Changes latest_invalid_proposal metric to latest_proposal with a root_agreement label. Will enable alerting if the proposer isn't creating games on the expected schedule.

* --- (#10595)

updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
...

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

* Update README.md to describe new ecotone-scalar decode flag (#10565)

* Update README.md to describe new ecotone-scalar decode flag

ecotone-scalar was updated in https://github.com/ethereum-optimism/optimism/pull/10547 to support value decoding but didn't include an update to this documentation.

* allow non-decimal scalar values to decode

* pin chain-mon to sdk version instead of workspace (#10597)

* make tx.data size tune-able (#10598)

* op-e2e: harden WaitForTransaction against tx indexing in progress errors (#10600)

this is a new error by geth that hasn't an exported error type yet, but
it indicates that geth is still indexing and so one more try is worth
it.

* Activate Fjord on Sepolia (#10610)

* typescript: cleanup (#10606)

This commit migrates the typescript packages to use
npm releases instead of local workspace based imports.
This will allow us to remove:
- `core-utils`
- `common-ts`

These packages are no longer maintained and will be receiving
no updates. Their code can be retreived from before this
commit or from https://github.com/ethereum-optimism/optimism-legacy
if it is needed in the future.

The `sdk` will be removed in a follow up.

* ctb: Prevent calls to foundry's contracts in test (#10605)

* contracts-bedrock: add assume preventing system contracts calls in gas paying token test

* contracts-bedrock: constrain further gas paying token address in tests

* Add check-fjord script to smoke test live chains (#10578)

* Add check-fjord script to smoke test live chains

* Fix checkRIP7212 invalid signature test

* check-fjord: several fixes

* fix callopts

* check-fjord: fix bindings import

* check-fjord: fix errors & naming

* lint

* fix commands

* Remove unused configuration flags

* Add e2e test for check-fjord script

* Add test to verify unactivated fjord is properly detected

* Refactor check-fjord script and e2e test for cleaner separation

* Add tests to ensure all fjord checks error if fork is unactivated

* Update op-e2e/check_scripts_test.go

---------

Co-authored-by: Sebastian Stammler <seb@oplabs.co>

* packages: remove unmaintained javascript (#10613)

* packages: remove unmaintained javascript

This commit removes the following packages from the monorepo:
- `common-ts`
- `contracts-ts`
- `core-utils`
- `fee-estimation`
- `web3js-plugin`

These packages are not maintained. `chain-mon` and the `sdk` still
exist but are pending deprecation.

* readme: update

* mergify: leftover references

* ctb: Break out Safe deployment from configuration (#10615)

* ctb: Break out Safe deployment from configuration

* ctb: Natspec fixes

* op-batcher,op-node,batch_decoder: add logging of compression algo (#10589)

* op-batcher: add logging of compression algo

* add node logging of algo, add brotli default algo

* fix typos

* only log compression algo if present

* add type conversion abstraction to Batch interface

Since we're dealing now with wrapped types around Batch implementations,
this let's us transparently unwrap the underlying batch types. It makes
sense to add this to the interface, because getting the underlying types
from the interface is done in several places, so it's part of the
interface's contract.

* adapt BatchReader test

* op-node/p2p/sync: add panic guard (#10611)

* op-node/p2p/sync add panic guard

* hoist panic guard up to entire doRequest method

* panicGuard uses currying

* remove unecessary wrapper method

* fix test to use more accurate fn signature

remove unecessary assertion, this was annoying the linter

* ctb: Add Guardian Safe to ownership deployment (#10616)

* feat: op-conductor strongly consistent reads (#10619)

* op-conductor: add more logs for raft debugging

* Add barrier

* LatestUnsafePayload reads in a strongly consistent fashion

* Atomic swap OpConductor.healthy

* Fix conductor/service_test

* Add test for when LatestUnsafePayload returns an error

* Update some method comments

---------

Co-authored-by: Francis Li <francis.li@coinbase.com>

* Kill the AI rabbit (#10624)

* op-challenger: Include bonds when listing claims (#10625)

* op-challenger: Include bonds when listing claims

* fix: docker build missing bigint - reuse op-service wei conversion

---------

Co-authored-by: refcell <abigger87@gmail.com>

* Use log label game consistently (#10603)

* remove op-bindings from README.md (#10623)

* chore: fix some function names (#10631)

* fix pnpm min version (#10629)

* ctb: Add removeDeployerFromSafe method to deploy scripts (#10620)

* ctb: Add removeDeployerFromSafe() method

* Delete extra line

* ctb: Add check to ensure deploy is removed from Safe

* contracts-bedrock: update readme (#10636)

The Custom Gas Token feature is a Beta feature of the MIT licensed OP Stack.
While it has received initial review from core contributors, it is still undergoing testing, and may have bugs or other issues.

Also cleanup some old information

* feat/interop: create `StaticConfig` lib (#10591)

* contracts-bedrock: create StaticConfig lib

* contracts-bedrock: fix StaticConfig

* contracts-bedrock: create diff tests for StaticConfig

* contracts-bedrock: rename gas paying token methods in StaticConfig

* contracts-bedrock: add decoding tests for StaticConfig

* contracts-bedrock: refactor encodeGasPayingToken

* contracts-bedrock: define uint256Type for differential testing

* contracts-bedrock: fix missing line in differential-testing

* contracts-bedrock: return packed in utils

* contracts-bedrock: define args as global vars in differential-testing

* contracts-bedrock: use Test instead of CommonTest in tests for StaticConfig

* contracts-bedrock: improve args for encodeGasPayingToken in diff testing

* contracts-bedrock: update sol version for StaticConfig to ^0.8.0

* Update sepolia-devnet-0 deploy-config (#10639)

* feat/interop: update `L1BlockInterop` (#10584)

* contracts-bedrock: create diff tests for StaticConfig

* contracts-bedrock: refactor encodeGasPayingToken

* contracts-bedrock: define uint256Type for differential testing

* contracts-bedrock: fix missing line in differential-testing

* contracts-bedrock: return packed in utils

* contracts-bedrock: define args as global vars in differential-testing

* contracts-bedrock: improve args for encodeGasPayingToken in diff testing

* contracts-bedrock: update L1BlockInterop

* contracts-bedrock: remove duplicates in differential-testing

* contracts-bedrock: use SET_GAS_PAYING_TOKEN in L1BlockInterop

* contracts-bedrock: update semver-lock

* op-conductor: adds metrics for actions, healthchecks, execution time (#10495)

* feat/interop: create `OptimismPortalInterop` (#10585)

* contracts-bedrock: create OptimismPortalInterop

* contracts-bedrock: update to use ConfigType.GAS_PAYING_TOKEN

* contracts-bedrock: update snapshots

* contracts-bedrock: update semver-lock

* ctb: Deploy separate foundation ops and upgrade safes (#10647)

* op-node,op-service: Add Fjord override flag (#10648)

* feat/interop: create `SystemConfigInterop` (#10586)

* contracts-bedrock: create OptimismPortalInterop

* contracts-bedrock: add conditional deployment of SystemConfigInterop

* contracts-bedrock: drop initializeOptimismPortalInterop in Deploy script

* contracts-bedrock: remove checkSystemConfigInterop from ChainAssertions

* contracts-bedrock: drop initializeSystemConfigInterop in Deploy script

* contracts-bedrock: drop deploySystemConfigInterop from Deploy script

* contracts-bedrock: drop SystemConfigInterop from Types

* contracts-bedrock: drop legacy import in ChainAssertions

* contracts-bedrock: drop legacy fields in Deploy script

* contracts-bedrock: drop unnecessary diffs

* contracts-bedrock: add conditional deployment of SystemConfigInterop

* contracts-bedrock: drop initializeOptimismPortalInterop in Deploy script

* contracts-bedrock: create tests for SystemConfigInterop

* contracts-bedrock: reorder dependencies in tests for SystemConfigInterop

* contracts-bedrock: add SystemConfigInterop to tests Setup

* contracts-bedrock: update tests for SystemConfigInterop

* contracts-bedrock: restore Deploy script

* contracts-bedrock: restore ChainAssertions

* contracts-bedrock: restore Types

* contracts-bedrock: drop SystemConfigInterop from Setup script

* contracts-bedrock: update SystemConfigInterop

* contracts-bedrock: add not vm check in SystemConfigInterop tests

* contracts-bedrock: update tests for SystemConfigInterop

* contracts-bedrock: define internal getter for systemConfigInterop in tests

* contracts-bedrock: restrict visibility of function in tests for SystemConfig

* contracts-bedrock: fix tests for SystemConfigInterop

* contracts-bedrock: fix tests for SystemConfigInterop

* contracts-bedrock: reinitialize for gas paying test for SystemConfigInterop

* contracts-bedrock: reorder functions in tests for SystemConfigInterop

* contracts-bedrock: use ConfigType.GAS_PAYING_TOKEN in tests for SystemConfigInterop

* contracts-bedrock: use assumeNotForgeAddress in tests for SystemConfigInterop

---------

Co-authored-by: Mark Tyneway <mark.tyneway@gmail.com>

* op-challenger: Actually use the prestate downloaded from URL when executing (#10650)

* op-challenger: Actually use the prestate downloaded from URL when executing.

* op-challenger: Actually use the asterisc prestate downloaded from URL when executing. (#10651)

* merge conflict resolved

* ctb: Update safe on the DGM to Guardian Safe (#10649)

* adapt to building new images

* dependabot(gomod): bump github.com/jackc/pgx/v5 from 5.5.5 to 5.6.0 (#10658)

Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.5.5 to 5.6.0.
- [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jackc/pgx/compare/v5.5.5...v5.6.0)

---
updated-dependencies:
- dependency-name: github.com/jackc/pgx/v5
  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>

* ci: Add op-program v1.1.0 to list of prestates to check reproducibility. (#10637)

* contracts-bedrock: fix deployment (#10660)

* contracts-bedrock: fix deployment

Fixes https://github.com/ethereum-optimism/optimism/issues/10634

The issue was that the salt was based on the name of the contract,
meaning that it was deterministic. The salt is now created by mixing
together the name and the `IMPL_SALT` env var. Anytime that `create2`
is used in the deploy …
Zena-park pushed a commit to tokamak-network/tokamak-thanos that referenced this pull request Nov 11, 2025
* ci: `ci-builder:0.49.0`

Includes a bump of slither

ethereum-optimism/optimism#10411

* ci: slither github action bump version
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