-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
feat: multisig-mon #8119
feat: multisig-mon #8119
Conversation
9ebd98f
to
b32937d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You may want to add this to the Dockerfile.packages for consistency
Codecov Report
@@ Coverage Diff @@
## develop #8119 +/- ##
===========================================
- Coverage 53.83% 53.78% -0.05%
===========================================
Files 162 162
Lines 6171 6171
Branches 966 966
===========================================
- Hits 3322 3319 -3
- Misses 2723 2728 +5
+ Partials 126 124 -2
Flags with carried forward coverage won't be shown. Click here to find out more. |
72ec74f
to
a3d4ae2
Compare
* contracts-bedrock: deal better * op-service: fix typo in comment * contracts-bedrock: gas snapshot * op-node: static-peers list local-peer check and flag description update * proxyd: configurable IP rate limit header * op-node: static-peers test * build(deps-dev): bump hardhat from 2.18.3 to 2.19.0 Bumps [hardhat](https://github.com/nomiclabs/hardhat) from 2.18.3 to 2.19.0. - [Release notes](https://github.com/nomiclabs/hardhat/releases) - [Commits](https://github.com/nomiclabs/hardhat/compare/[email protected]@2.19.0) --- updated-dependencies: - dependency-name: hardhat dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump @ethereumjs/rlp from 5.0.0 to 5.0.1 Bumps [@ethereumjs/rlp](https://github.com/ethereumjs/ethereumjs-monorepo) from 5.0.0 to 5.0.1. - [Release notes](https://github.com/ethereumjs/ethereumjs-monorepo/releases) - [Commits](https://github.com/ethereumjs/ethereumjs-monorepo/compare/@ethereumjs/[email protected]...@ethereumjs/[email protected]) --- updated-dependencies: - dependency-name: "@ethereumjs/rlp" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump viem from 1.18.2 to 1.18.3 Bumps [viem](https://github.com/wagmi-dev/viem) from 1.18.2 to 1.18.3. - [Release notes](https://github.com/wagmi-dev/viem/releases) - [Commits](https://github.com/wagmi-dev/viem/compare/[email protected]@1.18.3) --- updated-dependencies: - dependency-name: viem dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * chore: Make paths references DRY * specs: clarify span-batch validation rules include upgrade activation check * specs: improve wording of upgrade activation rules * op-node: attributes queue reset state for consistency * op-e2e/actions: use interface in batcher for l2 block ref access * Usage of 'Immutable' for variables storing keccak hashes * contracts-bedrock: lite foundry profile Adds a `lite` profile for foundry that turns off the compiler optimizer. This is suitable for development purposes when the compiler is taking a long time to compile. The developer should be sure to not use this mode when doing contract deployments. To set the profile, set the env var `FOUNDRY_PROFILE=lite`. * contracts-bedrock: simplify merkle trie setup The `MerkleTrie` tests were using `CommonTest` but do not require anything besides `FFIInterface` so instead of pulling in all of the overhead of `CommonTest`, just deploy `FFIInterface` on its on in the `setUp` function. This should be a slight optimization as it reduces the amount of execution required for setup. Reducing diff from ethereum-optimism#7928 * contracts-bedrock: migrate ffi interface * contracts-bedrock: gas-snapshot * contracts-bedrock: simplify test Simplify the `DeployerWhitelist` tests by using `Test` instead of `CommonTest`. Should slightly reduce the overhead of the tests. * contracts-bedrock: simplify rlp tests Migrates the rlp tests to use `Test` instead of `CommonTest`. This will reduce the overhead of running the test slightly. * contracts-bedrock: 1967 helper version Use a more relaxed version for the `EIP1967Helper` contract. This will make it much more portable. Part of ethereum-optimism#7928 * fix(fm-test-services): Use lockfile in docker test * contracts-bedrock: simplify CrossDomainOwnable test Removes usage of `CommonTest` that are not required. Also canonicalize the import paths. This should help to speed up the tests slightly by reducing the amount of execution required to run the tests. * contracts-bedrock: fix * contracts-bedrock: cleanup * build(deps): bump viem from 1.18.3 to 1.18.4 Bumps [viem](https://github.com/wagmi-dev/viem) from 1.18.3 to 1.18.4. - [Release notes](https://github.com/wagmi-dev/viem/releases) - [Commits](https://github.com/wagmi-dev/viem/compare/[email protected]@1.18.4) --- updated-dependencies: - dependency-name: viem dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * proxyd: add weighting feature to node selection * Review feedback * op-challenger: Remove AbsolutePreState from TraceProvider Nothing actually uses it - only AbsolutePreStateCommitment so we can narrow the interface. * op-challenger: Introduce TraceAccessor The game solver uses TraceAccessor instead of TraceProvider directly so that it has enough information to encapsulate a split trace provider game type. * op-challenger: Remove claim loader It was only used in an unused e2e helper method. * Code review feedback * op-challenger: Use FaultDisputeGameContract to retrieve cannon local inputs. * Parameterize span batch related test cases * Remove OP_E2E_USE_SPAN_BATCH env usage * build(deps): bump github.com/jackc/pgx/v5 from 5.4.3 to 5.5.0 Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.4.3 to 5.5.0. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](jackc/pgx@v5.4.3...v5.5.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] <[email protected]> * build(deps): bump golang.org/x/sync from 0.4.0 to 0.5.0 Bumps [golang.org/x/sync](https://github.com/golang/sync) from 0.4.0 to 0.5.0. - [Commits](golang/sync@v0.4.0...v0.5.0) --- updated-dependencies: - dependency-name: golang.org/x/sync dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump golang.org/x/time from 0.3.0 to 0.4.0 Bumps [golang.org/x/time](https://github.com/golang/time) from 0.3.0 to 0.4.0. - [Commits](golang/time@v0.3.0...v0.4.0) --- updated-dependencies: - dependency-name: golang.org/x/time dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump github.com/libp2p/go-libp2p-pubsub Bumps [github.com/libp2p/go-libp2p-pubsub](https://github.com/libp2p/go-libp2p-pubsub) from 0.9.3 to 0.10.0. - [Release notes](https://github.com/libp2p/go-libp2p-pubsub/releases) - [Commits](libp2p/go-libp2p-pubsub@v0.9.3...v0.10.0) --- updated-dependencies: - dependency-name: github.com/libp2p/go-libp2p-pubsub dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * op-node: remove deprecated `Pretty()` call Use `String()` over `Pretty()` - libp2p/go-libp2p#2563 - libp2p/go-libp2p-pubsub#547 * contracts-bedrock: foundry d85718785859dc0b5a095d2302d1a20ec06ab77a Updates foundry to a version that contains the `loadAllocs` cheatcode - foundry-rs/foundry#6207 This will unblock work on implementing test coverage against the L2 genesis generation script * contracts-bedrock: decouple magic number in test Remove the magic number `1800` in favor of a generic submission interval. Based on the test's comment, this is the expected input. Breaking this into its own test from ethereum-optimism#7928 to show that without the rest of the diff, the test still passes to ensure that a bug doesn't sneak in. fwiw this test will likely be modified with the next release of the fault proof. * contracts-bedrock: test deploy script This updates the tests to use the deploy script to set up the L1 contracts. This ensures that the tests are testing a setup as close as possible as to what ends up in production. The L2 contracts are setup in a unified place but as not set up behind proxies yet. This has been an issue but should be addressed when we have the ability to import the output of the L2 genesis generation script. Any circleci machines that run `forge build` oom when the machine is not an xlarge. This means that many jobs need to be bumped up to that size for them to run until the end. `CommonTest` is heavily modified and cleaned up. A lot of code was deleted and a good amount of the code that was added is from moving things to kwargs sytax from not. Some tests were converted from being regular tests into fuzz tests. * contracts-bedrock: modularize L2 setup * op-bindings: regenerate * contracts-bedrock: cleanup * contracts-bedrock: gas-snapshot * invariant-docs: regenerate * contracts-bedrock: fix review nits * Pull in basic types from op-service/eth package. Co-authored-by: protolambda <[email protected]> Co-authored-by: Roberto Bayardo <[email protected]> * Pull in basic types from op-service/sources. Co-authored-by: Roberto Bayardo <[email protected]> Co-authored-by: protolambda <[email protected]> * Pull in blob and blob_test from PR. Co-authored-by: protolambda <[email protected]> Co-authored-by: Roberto Bayardo <[email protected]> * Revert "Pull in basic types from op-service/eth package." This reverts commit 7eccd9f. Co-authored-by: protolambda <[email protected]> Co-authored-by: Roberto Bayardo <[email protected]> * Add placeholder for dencun fork test. * Add filler scaffolding for dencun fork test: literally the old shapella test. * Start to tweak things in dencun_fork_test: mainly replacing "shanghai" with "Cancun" * More minor test tweaks: change require statement's message, get head's time differently, add a couple breadcrumb comments. * Fix usage of IsCancun. * Tweak test message: really we're just testing isCancun, so acknowledge that. * Use types.Withdrawals in rpcBlock, not eth.Withdrawals. * Flag the failing line, it's non-obvious in CI output. * Add how test is failing just for onlookers. * Add issue links per semgrep request. * WIP stash for discussion. * Commit missed hunk editing a comment in dencun_fork_test. * Remove useless call to ParentBeaconRoot. * Remove some commented-out cruft. * Set necessary header fields if config is cancun. * contracts-bedrock: lint * Preserve co-authorship. Co-authored-by: protolambda <[email protected]> Co-authored-by: Roberto Bayardo <[email protected]> * build(deps): bump viem from 1.18.4 to 1.18.6 Bumps [viem](https://github.com/wagmi-dev/viem) from 1.18.4 to 1.18.6. - [Release notes](https://github.com/wagmi-dev/viem/releases) - [Commits](https://github.com/wagmi-dev/viem/compare/[email protected]@1.18.6) --- updated-dependencies: - dependency-name: viem dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps-dev): bump eslint from 8.52.0 to 8.53.0 Bumps [eslint](https://github.com/eslint/eslint) from 8.52.0 to 8.53.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](eslint/eslint@v8.52.0...v8.53.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps-dev): bump nx from 17.0.2 to 17.0.3 Bumps [nx](https://github.com/nrwl/nx/tree/HEAD/packages/nx) from 17.0.2 to 17.0.3. - [Release notes](https://github.com/nrwl/nx/releases) - [Commits](https://github.com/nrwl/nx/commits/17.0.3/packages/nx) --- updated-dependencies: - dependency-name: nx dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * [indexer.api.supply_view] addressing pr feedback * [indexer.api.supply_view] Update typescript bindings * op-node: Add command to dump rollup configs * op-service: Ensure block body validation tests fail for the expected reason. Adds coverage for nil transactions and withdrawals and blocks with correct block hash but a transaction or withdrawal root that doesn't match the body. Removes the generation of body tests from the script as the generated scripts were a useful start, but ultimately ineffective at testing the code. * op-node: Fixup PGN Sepolia Rollup Config * op-node: Check withdrawals hash in P2P validation * op-service: Add unit tests for verifying receipts. * op-service/eth: Expose GasLimit from the header in BlockInfo * op-chain-ops: Canyon checker script * op-challenger: Use new contract bindings in responder * contracts-bedrock: visibility into flake A flake in CI was introduced when ethereum-optimism#7928 was merged. It is probably due to a race condition when reading a file from disk. Is there a way to have foundry only do something once for the entire test suite? Tried moving things to the constructor instead of `setUp` but that did not work. Ideally we do not need to read the file from disk for each contract deployed, this adds a lot of overhead. A solution around this is to refactor the way that the deploy script works or to add in the env var that will skip the check that sometimes fails. * contracts-bedrock: gas snapshot * op-service: Remove attributes from warn-log in EngineClient * op-chain-ops: Better handle 1559 case * feat: move envrc to top level * feat: add getting started config script Adds a new script to contracts-bedrock that generates the deploy config for the getting started network. Removes the getting started config from the repository and avoids unnecessary work for the user while following the guide. * feat: add getting started wallet script Adds a script to contracts-bedrock that generates the four wallets required for the getting started guide. * fix: add config files to op-node gitignore Adds the common config files to op-node gitignore since these get created frequently and shouldn't be committed. * fix: strip 0x prefix when loading pk in op-node * fix: simplify loading environment vars * fix: remove private key override * feat: move scripts to getting-started folder * fix: update make version * contracts-bedrock: bump `forge-std` Bumps `forge-std` to `37a37ab73364d6644bfe11edf88a07880f99bd56`. This is not a release commit but it does include the latest change to the `Vm` such that `loadAllocs(string)` is included. Pulling this in now unblocks progress on loading in the L2 genesis state into the solidity tests. We can update the `forge-std` version to an official release in the future. All diffs are updating changes to `forge-std` so that things compile again. * op-bindings: regenerate * contracts-bedrock: invariant-docs * return check for nil tx in rpc block verification * return withdrawals check in rpc block verification. * build(deps-dev): bump @types/mocha from 10.0.3 to 10.0.4 Bumps [@types/mocha](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mocha) from 10.0.3 to 10.0.4. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mocha) --- updated-dependencies: - dependency-name: "@types/mocha" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> * Improve delegated attestations * Update bindings * Lock semver * remove blob.go and blob_test.go. they'll come back in in another PR when they're needed. * specs: Clarify withdrawals specs better * specs: Add receipt hash fix to the specs * specs: 1559 configuration * op-challenger: Add TraceAccessor docs and rename file. * op-challenger: Return the TraceAccessor directly from the resourceCreator Allows different game types to use a different TraceAccessor implementation. Prestate validation moved to a game type specific function returned by the resourceCreator. * build(deps): bump golang.org/x/term from 0.13.0 to 0.14.0 Bumps [golang.org/x/term](https://github.com/golang/term) from 0.13.0 to 0.14.0. - [Commits](golang/term@v0.13.0...v0.14.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * cannon: go mod tidy * contracts-bedrock: update eas v1.3.0 Small update to ethereum-optimism#8085 to bump semantic version. > In this PR, we have improved delegated attestations/revocations by additionally committing to the address of the attester/revoker in the EIP712 signature itself. The recently released EAS SDK already supports this new version of delegated attestations/revocations (via ethereum-attestation-service/eas-sdk#68) * [indexer.api.supply_view] add withdrawal suppply calculations * contracts-bedrock: delete dead script Delete a dead upgrade script that is no longer used. We are moving towards `superchain-ops` for upgrade scripts instead. No reason to maintain this script anymore and have it slow down compilation time. * contracts-bedrock: update `StorageSetter` Adds a new setter that takes a list of slots to set. This allows a single `upgradeToAndCall` to be used with this contract that sets many storage slots in a single call. This will simplify future upgrades using the 2 step upgrade model. Includes fuzz tests for the new functionality. The complexity with the fuzz testing of this operation is that we cannot pass in duplicate keys, otherwise it is impossible to make assertions against because there is no way to hook in to the call. Perhaps if we had a way to see every state diff then we would be able to make assertions against that. * contracts-bedrock: update bindings + gas snapshot * op-bindings: regenerate * contracts-bedrock: fix snapshot * docs(ctb): Add network-specific to style guide * feat(ctb): reusable post-deploy checks Adds a post-deploy function to check that L1 contracts were deploy correctly. This allows both the Multichain upgrade and the devnet Deploy scripts to reuse the same checks. * op-node: flexible L2 genesis generation Allow for the `op-node` L2 genesis generation to use either hardhat artifacts or the `.deploy` L1Deployments JSON file that is created by the solidity deployment script. While adding extra logic, this makes genesis generation much easier to be consumed by the solidity scripts. It also sets up the ability to deprecate the need for maintaining hardhat deploy style artifacts. This will allow us to remove a lot of solidity code and remove the need to call `sync()` to generate the artifacts. The artifacts make less sense now, especially since it is planned to have one set of implementation contracts for the entire superchain. There isn't as much of a need to keep around artifacts for many contracts separated by network when they are shared between different L2s. * op-chain-ops: fix error formatting * check only the legacy SystemConfig interface * op-node: add description to l2 genesis command * specs: Specify create2Deployer * specs: Specify full Canyon upgrade * update bindings using CI foundry version * ci: Use xlarge box for ci-builder * op-challenger: Update expected error message. * feat(chain-mon): monitor safe nonce as a metric * op-node: gofmt files * use ethers contract wrapper * Weighted shuffle list * build(deps-dev): bump @typescript-eslint/eslint-plugin Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) from 6.9.1 to 6.10.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v6.10.0/packages/eslint-plugin) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * build(deps): bump github.com/onsi/gomega from 1.29.0 to 1.30.0 Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.29.0 to 1.30.0. - [Release notes](https://github.com/onsi/gomega/releases) - [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md) - [Commits](onsi/gomega@v1.29.0...v1.30.0) --- updated-dependencies: - dependency-name: github.com/onsi/gomega dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * Temporarily limit codecov path to contracts src * build(deps): bump golang.org/x/crypto from 0.14.0 to 0.15.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.15.0. - [Commits](golang/crypto@v0.14.0...v0.15.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> * cannon: go mod tidy * contracts-bedrock: cleanup deploy config check Removes the special case for the deploy config check where the `getting-started.json` was not valid JSON and would need to be skipped by the deploy config checking script. The getting started guide has been updated with new logic so this special case can be removed. * add safe abi to chain-mon * op-challenger: Add a translating trace provider. * CI: Make validate-spaces quick * CI: Switch to medium machines * CI: Set STRICT_DEPLOYMENT=false for gas snapshots * feat: multisig-mon (ethereum-optimism#8119) * feat: multisig-mon * add to dockerfile and ci pipeline, need for bignumber * logger.error * safe nonces * fix(ci): chain-mon release (ethereum-optimism#8124) * add docker-build step for chain-mon-docker-release (ethereum-optimism#8125) * fix(ci): add chain-mon to ops/scripts/ci-docker-tag-op-stack-release.sh (ethereum-optimism#8126) * indexer.bridge.processing.split * nit * indexer.bridge.logging * feat(proxyd): ability to add additional headers to backend requests (ethereum-optimism#8134) * proxyd: add example block range regulation params (ethereum-optimism#8039) * op-challenger: fixes the latestBlockNumber signature and makes the ROOT_CLAIM variable 32 bytes in size --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Inphi <[email protected]> Co-authored-by: Hamdi Allam <[email protected]> Co-authored-by: protolambda <[email protected]> Co-authored-by: Mark Tyneway <[email protected]> Co-authored-by: Danyal Prout <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Will Cory <[email protected]> Co-authored-by: Aryan Malik <[email protected]> Co-authored-by: felipe <[email protected]> Co-authored-by: Adrian Sutton <[email protected]> Co-authored-by: Will Cory <[email protected]> Co-authored-by: Adrian Sutton <[email protected]> Co-authored-by: Tei Im <[email protected]> Co-authored-by: Matthew Slipper <[email protected]> Co-authored-by: EvanJRichard <[email protected]> Co-authored-by: Roberto Bayardo <[email protected]> Co-authored-by: Joshua Gutow <[email protected]> Co-authored-by: Ethen Pociask <[email protected]> Co-authored-by: Joshua Gutow <[email protected]> Co-authored-by: Sebastian Stammler <[email protected]> Co-authored-by: Kelvin Fichter <[email protected]> Co-authored-by: Kelvin Fichter <[email protected]> Co-authored-by: tre <[email protected]> Co-authored-by: lbeder <[email protected]> Co-authored-by: Maurelian <[email protected]> Co-authored-by: Felipe Andrade <[email protected]> Co-authored-by: kaliubuntu0206 <[email protected]> Co-authored-by: Joseandro Luiz <[email protected]>
Description
Introduces a new monitoring service to check safe nonces for multisig.
Tests
Additional context
Extracted from balance-mon previous PR: https://github.com/ethereum-optimism/optimism/pull/8107/files
To be used by Pre-signed pause project (MCP Code Red).
Metadata
See https://github.com/ethereum-optimism/client-pod/issues/113