- 13 May, 2024 8 commits
-
-
Maurelian authored
* 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
-
Inphi authored
* cannon: Handle div by zero in MIPS.sol * fix revert stmt style
-
Mark Tyneway authored
* 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
-
clabby authored
* 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>
-
mbaxter authored
* 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
-
Maurelian authored
-
Mark Tyneway authored
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.
-
zhiqiangxu authored
-
- 12 May, 2024 1 commit
-
-
refcell authored
* 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>
-
- 11 May, 2024 5 commits
-
-
Adrian Sutton authored
-
Axel Kingsley authored
* 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>
-
Kien Trinh authored
-
Mark Tyneway authored
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.
-
Sebastian Stammler authored
* 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>
-
- 10 May, 2024 14 commits
-
-
Mark Tyneway authored
* 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
-
Maurelian authored
* 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>
-
Hteev Oli authored
-
ids authored
Don't apply the conf depth if l1Head is empty (as it is during the startup case before the l1State is initialized)
-
Mark Tyneway authored
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.
-
Mark Tyneway authored
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.
-
Mark Tyneway authored
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`.
-
Adrian Sutton authored
Completed games weren't updating their latest acted block because they don't get scheduled which meant the metric always reported 0.
-
Adrian Sutton authored
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.
-
Inphi authored
-
Mark Tyneway authored
* 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
-
Adrian Sutton authored
-
dependabot[bot] authored
* 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>
-
Joshua Gutow authored
-
- 09 May, 2024 11 commits
-
-
Adrian Sutton authored
* 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.
-
George C. Knee authored
* 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>
-
Adrian Sutton authored
-
Adrian Sutton authored
* 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
-
clabby authored
## Overview Exposes the `l2BlockNumberChallenger` in the fault dispute game.
-
Mark Tyneway authored
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.
-
clabby authored
* 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
-
refcell authored
* feat(op-dispute-mon): contract creation failure metric * fix(op-dispute-mon): log the game address for easier investigation
-
refcell authored
-
refcell authored
-
clabby authored
Adds extra monitoring events into the `OptimismPortal2` for a dispute game being blacklisted and the resepected game type being set.
-
- 08 May, 2024 1 commit
-
-
Mark Tyneway authored
* 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
-