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 optimism-v1.9.3 into develop #10

Merged
merged 265 commits into from
Nov 28, 2024

Conversation

claymega
Copy link
Collaborator

update optimism to v1.9.3;

mega-reth: https://github.com/megaeth-labs/mega-reth/pull/166;

eigenda-proxy: clay/feature/rebase_v1.5.0(打算不提PR,后面直接rebase);

clabby and others added 30 commits September 2, 2024 03:15
* feat(op-program): Use `PebbleDB` for `DiskKV`

* close db

* fix `testFaultProofProgramScenario` tests

* switch to snappy compression

cockroachdb/pebble#3434

* fix tempdir

* update compat release

* defer k/v until preimage server and hinter have both exited
)

* - make immediate nonce-too-low error abort send (since it could never succeed otherwise)

- make txmgr resubmit a transaction when fee bumping fails in case it has been dropped from the mempool

- only bump fees when they really should be bumped

- set txmgr overall default send timeout of 10 minutes. It was infinite, which led to permanently
  stuck transaction in combination with the other bugs fixed in this PR.

* Update op-service/txmgr/txmgr_test.go

---------

Co-authored-by: Sebastian Stammler <[email protected]>
golangci-lint v1.60.2 seems to report a new error when performing a nil check and length != 0 on maps. We're not using this version in CI yet but fix the error to simplify the code and provide for a future upgrade.
Removes the need for kontrol summaries to be generated at PR time.
Summaries will now be generated during run-kontrol.sh instead.
Adds a new check script to contracts-bedrock that verifies that
interfaces being added to the repository accurately represent
the interface of the contract that the interface was generated
for.
…timism#11709)

* feat(op-program): Use `PebbleDB` for `DiskKV` (ethereum-optimism#11705)

* feat(op-program): Use `PebbleDB` for `DiskKV`

* close db

* fix `testFaultProofProgramScenario` tests

* switch to snappy compression

cockroachdb/pebble#3434

* fix tempdir

* update compat release

* defer k/v until preimage server and hinter have both exited

* Only open preimage source when actually needing preimages.

Avoids concurrent access to the pebbledb.

* op-program: Handle interrupts in host

Ensures the preimage kv store is closed cleanly even when the process is sent an interrupt signal.
Enables non-blocking IO so that read calls return io.EOF when a file handle is closed rather than blocking forever.

* op-program: Restore file based kv store. Add pebble as an additional option.

* op-program: Add option to specify KV store format to use

* op-program: Switch pebble to perform sync writes.

* op-program: Rename disk kv to file kv

* op-program: Rename DBFormat to DataFormat for consistency.

---------

Co-authored-by: clabby <[email protected]>
Fixes a number of places where SuperchainWETH fuzz tests can flake
as a result of using a sender address that is the ETHLiquidity or
SuperchainWETH contract.
Adds interfaces for the contracts inside of /legacy. Interface is
not included for the LegacyMintableERC20 contract because that
interface has already been defined elsewhere.
* Slim down contracts-bedrock package

The contracts-bedrock package was over 2GB in size, mostly because it contained the Git repository. It also supported multiple platforms, which would lead to costly recompilation steps every time the image was used on a different platform (e.g., OSX).

The PR updates the Dockerfile to no longer ship the Git repo. It also updates the Debian base image to a more modern, slimmed down version. The new image is <1G in size.

* fix bakefile
Interfaces check script had a bug that would cause it to use the
wrong ABI when checking an interface. Each compiler artifact only
has a single ABI in it but this same ABI was being used for all
contract definitions found within that file. Since each separate
contract definition gets its own file anyway, this script now
properly verifies by finding the specific definition that matches
the filename.
…timism#11740)

Updates the interface validation script to verify that all
interface contracts are using Solidity ^0.8.0 exactly.
* fix: add optimism mintable check on assume address helper

* fix: mock interfaces checks

* chore: remove unused import

---------

Co-authored-by: 0xng <[email protected]>
Bumps foundry to the following commit: foundry-rs/foundry@143abd6

Release: https://github.com/foundry-rs/foundry/releases/tag/nightly

This needs to be followed up with a rebuild of `ci-builder`
…quencer-start (ethereum-optimism#11724)

* op-node: sequencer should clear inconsistent asyncGossip buffer on sequencer-start

* op-node: test async-gossip clearing

* Update op-node/rollup/sequencing/sequencer.go

Co-authored-by: Adrian Sutton <[email protected]>

---------

Co-authored-by: Adrian Sutton <[email protected]>
…states" (ethereum-optimism#11752)

With fix to set a state converter when creating trace providers for test.
…reum-optimism#11750)

* contracts-bedrock: Add OPSM file I/O for superchain deployments

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

Co-authored-by: Matt Solomon <[email protected]>

* Update packages/contracts-bedrock/test/DeploySuperchain.t.sol

Co-authored-by: Matt Solomon <[email protected]>

* Address feedback from code review

* Linter

---------

Co-authored-by: Matt Solomon <[email protected]>
* Refactors NewRaftConsensus param list into a config struct
* Adds configuration support for SnapshotInterval, SnapshotThreshold, TrailingLogs
Fixes the initialization tests, existing tests were not properly
verifying that all of the initializable contracts were being
accounted for.
bitwiseguy and others added 25 commits September 24, 2024 12:50
* op-service: add configurable timeouts

* op-service: fix lazy_dial
* chore: fix semver lock

* fix: no permissionless root, remove hash from 0xdead

* fix: use 0xdead root properly

* feat: add remaining fault proof support

* chore: Update semver-lock

* fix: Remove extra anchor root definition and restore aritfactsFs argument

* feat: Add wip big blueprint code

* Don't wrap input to deployBigBytecode with preamble

* fix: off by one in deployBigBytecode

* feat: more gas efficient blueprint deployment for permissioned game

* Get the big deployments working

* perf: more efficient preamble parsing

* chore: snapshots + fix revert

* test: skip FaultDisputeGameAddress since we don't deploy it yet

* chore: cleanup

---------

Co-authored-by: Matt Solomon <[email protected]>
Co-authored-by: Matthew Slipper <[email protected]>
…12035)

* forge install: superchain-registry

v0.1.2

* fix: better clarity around when we're in a broadcast context.
* fix: justfile clean command

* fix: removed stale comment
* test: Add permissioned game output assertions

* test: reorder DeployOpChainTest_Base for clarity

* Update packages/contracts-bedrock/test/DeployOPChain.t.sol

Co-authored-by: Matt Solomon <[email protected]>

---------

Co-authored-by: Matt Solomon <[email protected]>
* cannon: Cut unnecessary wakeup reset

* cannon: Cut now-extraneous state argument

* cannon: Run semver lock
)

* feat:add cannon add/addi/addu/addiu opcodes test

Signed-off-by: Chen Kai <[email protected]>

* feat:add cannon add/addu/addi/addiu opcodes test

Signed-off-by: Chen Kai <[email protected]>

---------

Signed-off-by: Chen Kai <[email protected]>
* cannon: Multi VM executor

* fix run subcmd arg fwding

* fix mt prestate

* add list subcmd; multicannon in op-stack-go

* remove cannon-latest

* safer strconv

* lint

* include .gitkeep in embed

* fix .git copy

* add detect.go tests

* add nosemgrep

* review comments

* list filtering

* add note to MIPS.sol in version stf ref

* use fork-exec

* minimal flag parsing

* load old cannon binaries from docker images

* note

* --help flag defaults

* remove redundant copy from cannon-builder-0
…ags (ethereum-optimism#12100)

* cannon: Build the cannon docker image and publish on cannon release tags.

* ci: Add docker builds as dependencies so they prevent merging if they fail.

* cannon: Include specific implementation builds in final docker image.
…mission time (ethereum-optimism#12002)

* tidy up godoc

* move data availability config decision to channel submission time

instead of channel creation time

Also, cache the ChannelConfig whenever we switch DA type so it is used by default for new channels

* fix test

* formatting changes

* respond to PR comments

* add unit test for Requeue method

* reduce number of txs in test block

* improve test (more blocks in queue)

* hoist pending tx management up

* wip

* tidy up test

* wip

* fix

* refactor to do requeue before calling nextTxData

* introduce ErrInsufficientData

do not return nextTxData from channel which was discarded by requeue

* run test until nonzero data is returned by TxData

* break up and improve error logic

* fix test to anticipate ErrInsufficientData

* after requeuing, call nextTxData again

* remove unecessary checks

* move err declaration to top of file

* add some comments and whitespace

* hoist lock back up to TxData

* rename variable to blocksToRequeue

* remove panic

* add comment

* use deterministic rng and nonecompressor in test

* test: increase block size to fill channel more quickly

* remove ErrInsufficientData

replace with io.EOF as before

* tidy up

* typo
…imism#12101)

Pick up the version from the release tag automatically.
* show log for devnet

* add comment
* test: assert that default config doesn't change prematurely

* test: use a better system to ensure we are not over assessing

* return io.EOF from getReadyChannel

when the current channel has no tx data

also improve godoc
…sm#12106)

* rename: proxyAdminOwner -> superchainProxyAdminOwner

* fix: renames in tests.

* fix: renaming in go code.

* fix: Changing the intent to contain SuperchainProxyAdminOwner instead of just ProxyAdminOwner

* fix: reverting last change
* Add support for pre-existing OPSM

This PR adds support for deploying OP Chains against an existing OPSM deployment. It adds a new `OPSMAddress` field to the intent to hold the address of the OPSM. When specified, the `ContractsRelease` field is ignored. In the future, this field will be pulled from the Superchain Registry.

Since the Go Forge tooling doesn't support forking yet, the deployment is performed using a raw call to `eth_sendRawTransaction`. Data about the Superchain deployments is pulled from the OPSM itself via `eth_call`. To expose the deployment output following the Superchain deployment, I updated the `Deployed` event to emit the ABI-encoded bytes of the `DeployOutput` struct to avoid stack-too-deep errors. This isn't ideal, but at least it gets me all of the fields I need in a log event without more invasive changes.

* chore: add version identifer to Deployed event

* chore: emit msg.sender in Deployed event

* Fix merge issues

* test: fix specs test

* semver-lock

* code review updates

---------

Co-authored-by: Matt Solomon <[email protected]>
// since this approach means a chain ID can only be used once.
uint256 l2ChainId = _input.l2ChainId;
bytes32 salt = bytes32(_input.l2ChainId);
DeployOutput memory output;

Check warning

Code scanning / Slither

Uninitialized local variables Medium

@claymega claymega requested a review from Troublor November 28, 2024 02:00
Copy link
Collaborator

@Troublor Troublor left a comment

Choose a reason for hiding this comment

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

LGTM, will squash and merge

@Troublor Troublor merged commit 541b268 into develop Nov 28, 2024
1 of 2 checks passed
@Troublor Troublor deleted the clay/feature/merge_optismism_v1.9.3_2 branch November 28, 2024 09:02
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.