Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge upstream v1.7.7 #216

Merged
merged 3,082 commits into from
Aug 27, 2024
Merged

Merge upstream v1.7.7 #216

merged 3,082 commits into from
Aug 27, 2024

Conversation

bnoieh
Copy link
Contributor

@bnoieh bnoieh commented Jul 9, 2024

Description

Merge upstream optimism v1.7.7

Rationale

To import fjord fork/bugfix/improvements/features from upstream

Example

n/a

Changes

v1.7.2 -> v1.7.7

ajsutton and others added 30 commits May 3, 2024 09:24
Now that the fault proof contracts release has happened, we
can merge in the custom gas token changes.

This reverts commit 2b1c99b.
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.
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: ethereum-optimism/optimism#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.
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](ethereum/go-ethereum@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>
## 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.
* ci: `ci-builder:0.49.0`

Includes a bump of slither

ethereum-optimism/optimism#10411

* ci: slither github action bump version
* 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>
* Revert "Revert "Merge pull request #8242 from ethereum-optimism/go-docker-targets""

This reverts commit d972c46.

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>
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 ethereum-optimism/optimism#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): log the claim id to validate the claim during investigation

* fix(op-dispute-mon): log the clock value as well
* 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
* 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

* fix(op-dispute-mon): lints

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

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

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

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

golang/go#22967
* 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 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: 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
…ssenger) (#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.
@bnoieh bnoieh marked this pull request as ready for review July 19, 2024 12:17
Copy link
Contributor

@redhdx redhdx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@owen-reorg owen-reorg merged commit 010ecf0 into develop Aug 27, 2024
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.