1. 12 Sep, 2024 18 commits
  2. 11 Sep, 2024 9 commits
  3. 10 Sep, 2024 13 commits
    • smartcontracts's avatar
      fix: OptimismPortal fuzz flakes (#11818) · f93f9f40
      smartcontracts authored
      OptimismPortal fuzz tests were flaking because the base fee would
      increase so much that there wouldn't be enough gas to burn for the
      user to be able to buy the gas that they want. Introduces an
      additional assumption that will prevent the elasticity multiplier
      and max change denominator from being such that the maximum
      change to the base fee won't cause us to run out of gas.
      f93f9f40
    • protolambda's avatar
    • Matt Solomon's avatar
      OPSM: Begin implementing OP Stack Manager code and it's deployment (#11623) · de31478b
      Matt Solomon authored
      * begin supporting specifying versions in OPSM
      
      * add deploy logic
      
      * deploy OPSM along with implementations
      
      * scaffold opsm interface between scripts
      
      * fixes
      
      * mvp of DeployOPChain
      
      * start working on an e2e opsm test, currently reverts
      
      * fix tests
      
      * test cleanup
      
      * rename opsmSingleton to opsm
      
      * chore: remove unused imports
      
      * refactor: switch from 'new' to blueprints, 50% code size reduction
      
      * fix semgrep
      
      * feat: add OPSM interop tests
      
      * test: add missing specs
      
      * add DisputeGameFactory deployment
      
      * chore: update snapshots
      
      * fix opsm interop support
      
      * chore: update snapshots
      
      * Update packages/contracts-bedrock/test/DeployOPChain.t.sol
      
      * fix: add L1StandardBridge setter and initialization
      
      * chore: small clarification of deploy flow
      
      * Update packages/contracts-bedrock/scripts/DeployImplementations.s.sol
      Co-authored-by: default avatarBlaine Malone <blainemalone01@gmail.com>
      
      * chore: add todos
      
      * fix: change bytes32 to string
      
      * rename addrs to opChainAddrs for clarity
      
      * test: fix assertion string numbering
      
      * chore: update semver lock:
      
      ---------
      Co-authored-by: default avatarBlaine Malone <blainemalone01@gmail.com>
      de31478b
    • Sam Stokes's avatar
      op-node: read DACommitmentType from scr in LoadOPStackRollupConfig (#11830) · 53fa7b9e
      Sam Stokes authored
      * op-node: read DACommitmentType from scr in LoadOPStackRollupConfig
      
      * op-node: check for altda nil pointers before dereferencing
      
      * op-node: leave altDA config nil if not existent in scr config
      53fa7b9e
    • Emiliano Bonassi's avatar
      fix(op-batcher): initAltDA before initChannelConfig (#11816) · 91e306b0
      Emiliano Bonassi authored
      * fix(op-batcher): initAltDA before initChannelConfig
      
      * chore(op-bastcher): fix comment
      91e306b0
    • Matthew Slipper's avatar
      Add broadcast API to Go forge scripts (#11826) · 219ebe00
      Matthew Slipper authored
      * Add broadcast API to Go forge scripts
      
      Adds a hooks-based API to collect transactions broadcasted via `vm.broadcast(*)` in the Go-based Forge scripts. Users pass an `OnBroadcast` hook to the host, which will be called with a `Broadcast` struct with the following fields whenever a transaction needs to be emitted:
      
      ```go
      type Broadcast struct {
      	From     common.Address
      	To       common.Address
      	Calldata []byte
      	Value    *big.Int
      }
      ```
      
      This API lets us layer on custom transaction management in the future which will be helpful for `op-deployer`.
      
      As part of this PR, I changed the internal `callStack` data structure to contain pointers to `CallFrame`s rather than passing by value. I discovered a bug where the pranked sender was not being cleared in subsequent calls due to an ineffectual assignment error. I took a look at the implementation and there are many places where assignments to call frames within the stack happen after converting the value to a reference, so converting the stack to store pointers in the first place both simplified the code and eliminated a class of errors in the future. I updated the public API methods to return copies of the internal structs to prevent accidental mutation.
      
      * Code review updates
      
      * moar review updates
      
      * fix bug with staticcall
      219ebe00
    • Adrian Sutton's avatar
    • Brian Bland's avatar
      feat: Add nested directory data format for op-program kvstore (#11795) · 7f3d6ef5
      Brian Bland authored
      * feat: Add nested directory data format for op-program kvstore
      
      * Review feedback: Update error message
      Co-authored-by: default avatarAdrian Sutton <adrian@symphonious.net>
      
      * op-program: Make directory preimage format the default.
      
      ---------
      Co-authored-by: default avatarAdrian Sutton <adrian@symphonious.net>
      Co-authored-by: default avatarAdrian Sutton <adrian@oplabs.co>
      7f3d6ef5
    • Michael de Hoog's avatar
      Fix race condition in sequencer stopping logic (#11769) · 7e97b67d
      Michael de Hoog authored
      * Fix race condition in sequencer stopping logic
      
      * Add channel to signal that latestHead has been updated
      
      * Fix test
      
      * Store latest sealed separately, as latest gets cleared by engine.PayloadSuccessEvent
      
      * Cleanup tests
      
      * Add assertions on latest block ref variables
      
      * Re-check if sequencer is active
      7e97b67d
    • Adrian Sutton's avatar
    • Adrian Sutton's avatar
      cannon: Autodetect VM type from state (#11803) · 21161265
      Adrian Sutton authored
      * cannon: Autodetect VM type from state in run command
      
      * cannon: Autodetect VM type from state in witness command
      
      * cannon: Remove vm type flag from run and witness
      
      * cannon: Only peek the version byte
      
      * cannon: Move all version handling to VersionedState, simplify a lot and forbid serializing multithreaded states to JSON
      
      * cannon: Rename method
      
      * op-challenger: Update cannon state parsing to use version detecting methods
      
      * cannon: Move CreateVM to FPVMState for simplicity
      
      Test read/write/create for VersionedState
      
      * cannon: Readd detect_test
      
      * cannon: Remove json names from multithreaded.State.
      
      Multithreaded states always use binary serialization.
      
      * cannon: Move vmtype to load_elf since it is no longer shared.
      
      * cannon: Ensure metadata is available and sleepCheck used even if debug is disabled.
      
      * op-challenger: Update canon state loading test to cover multiple state versions.
      21161265
    • smartcontracts's avatar
      maint: add interface for L2OutputOracle (#11817) · af78edde
      smartcontracts authored
      First in a series of PRs adding interfaces for L2 contracts. Since
      each of these changes involves touching a lot of other contracts
      it seemed easier to split this up into several PRs for legibility.
      af78edde
    • Adrian Sutton's avatar
      op-service: Make target destination when writing JSON/binary explicit (#11800) · f64d8176
      Adrian Sutton authored
      Avoids being surprised by the special handling for - and empty string output paths.
      f64d8176