1. 03 Oct, 2024 14 commits
  2. 02 Oct, 2024 20 commits
    • Maurelian's avatar
      feat: Extract deployment of pre-v1.6.0 code (#12233) · 33bc0bec
      Maurelian authored
      * feat: Add a test to simplify deploy script testing
      
      * fix: lint
      
      * feat: Add clarifying comments to DeployVariations_Test
      
      * feat: Extract deployment of pre-v1.6.0 code
      
      * feat: combine setupOPChain and DeployOpChain
      
      This will help to clarify where the DeployOpcChain script can be used.
      
      * fix: op-e2e issues with unfound contracts
      
      * fix: Undo conditional init of L2OutputOracle
      
      It needs to be in the state no matter what for op-e2e
      
      * fix: correct deploy ordering of legacy contracts
      
      * ugly but working
      
      * clean up legacy deployments
      
      * enable FP on system config custom gas token tests
      
      * op-e2e: allow no OptimismPortal impl if useFaultProofs
      
      * fix: lint
      33bc0bec
    • Inphi's avatar
      cannon: Define 64-bit syscalls (#12256) · 2c7de99f
      Inphi authored
      * cannon: Define 64-bit syscalls
      
      Also add SYS_FSTAT to the list of no-op syscalls emulated by MT-Cannon
      
      * update semver-lock
      2c7de99f
    • George Knee's avatar
      batcher: use abstract Queue type for blocks state (#12180) · d1f6501b
      George Knee authored
      * op-service: add queue package
      
      * batcher: use Queue type for blocks
      
      * revert changes to errors.As/Is
      
      * implement and use Peek operation
      
      * queue: add unit tests
      
      * add godoc
      
      * add more test cases
      
      permute expected / got
      
      * ensure enqueue and prepend are noops when args is empty
      
      * use queue.PeekN and queue.DequeueN
      
      * typo
      
      * queue: simplify method implementations
      
      * revert to old dequeue impl
      d1f6501b
    • Matthew Slipper's avatar
      op-deployer: Custom gas price estimator (#12239) · 1217d4ac
      Matthew Slipper authored
      * op-deployer: Custom gas price estimator
      
      Sepolia's fees are super high and extremely volatile right now. As a result, it became difficult for users to deploy new chains using op-deployer. The OPCM's deploy transaction buys most of the gas in the block, and the default gas price estimation logic in the transaction manager wasn't aggressive enough for the transactions to land on chain in a timely manner.
      
      This PR adds the ability to customize the transaction manager with a custom `GasPriceEstimator` function that returns the tip, base fee, and blob fee. I extracted the original logic in the transaction manager into a default estimator that will be used if one isn't specified. For op-deployer, I built a custom estimator that pads the head block's base fee by 20%, and multiplies the suggested tip by 10. After testing this, I was able to get transactions onto Sepolia reliably. The algorithm is pretty simple and overpays for transactions by a lot, but for op-deployer's use case it's more important that transactions land quickly than it is they be cheap. Deployments are a one-time thing.
      
      * code review updates
      
      * better default support
      
      * specific test for extension
      1217d4ac
    • Maurelian's avatar
      feat: Add a test to simplify deploy script testing (#12235) · ef46b058
      Maurelian authored
      * feat: Add a test to simplify deploy script testing
      
      * fix: lint
      
      * feat: Add clarifying comments to DeployVariations_Test
      ef46b058
    • Blaine Malone's avatar
      Configurable Dispute Game Parameters (#12228) · 28283a92
      Blaine Malone authored
      * Configurable Dispute Game Parameters
      
      * fix: more assertions for DeployOPChain.t.sol.
      
      * fix: running pre-pr command.
      
      * fix: changing dispute game types.
      
      * fix: semver lock file change.
      
      * fix: uint64 for maxGameDepth and splitDepth on go side.
      
      * fix: safe casting in solidity
      28283a92
    • Axel Kingsley's avatar
      Eth: BlockRef (#12251) · 40a70bda
      Axel Kingsley authored
      40a70bda
    • Maurelian's avatar
      feat: deployImplementations and depImplementationsInterop (#12226) · a12738b7
      Maurelian authored
      * feat: Use DeploySuperchain script in Deploy.s.sol
      
      Demonstrate that build breaks when using high level syntax
      
      * fix: Cannot set null protocol versions error
      
      * feat: Also save impls
      
      * fix: semver lock
      
      * fix: bump ProtocolVersions semver
      
      * feat: Add superchainProxyAdmin
      
      * feat: Undo removeing ProtocolVersion type from interface
      
      * fix: semver-lock
      
      * feat: remove setupOpChainAdmin
      
      * fix: transfer ProxyAdmin ownership after all setup is complete
      
      * feat: separate deployImplementations
      
      * feat: split up deployImplementations and deployImplementationsInterop
      
      * fix: lint
      a12738b7
    • Adrian Sutton's avatar
      op-e2e: Retrieve AllocType from System instead of env (#12221) · b1d119fc
      Adrian Sutton authored
      * op-e2e: Retrieve AllocType from System instead of env
      
      * Remove more uses of env.
      
      * op-e2e: Run mt-cannon as an allocType without needing special env vars.
      b1d119fc
    • Maurelian's avatar
      feat: Use DeploySuperchain script in Deploy.s.sol (#12203) · e7dbd848
      Maurelian authored
      * feat: Use DeploySuperchain script in Deploy.s.sol
      
      Demonstrate that build breaks when using high level syntax
      
      * fix: Cannot set null protocol versions error
      
      * feat: Also save impls
      
      * fix: semver lock
      
      * fix: bump ProtocolVersions semver
      
      * feat: Add superchainProxyAdmin
      
      * feat: Undo removeing ProtocolVersion type from interface
      
      * fix: semver-lock
      e7dbd848
    • Chen Kai's avatar
      MT Cannon: add cannon load/store opcodes tests (#12196) · ab8b3719
      Chen Kai authored
      * feat:add cannon load/store opcodes tests
      Signed-off-by: default avatarChen Kai <281165273grape@gmail.com>
      
      * fix:code review suggestion
      Signed-off-by: default avatarChen Kai <281165273grape@gmail.com>
      
      ---------
      Signed-off-by: default avatarChen Kai <281165273grape@gmail.com>
      ab8b3719
    • Brian Bland's avatar
      feat(sequencer): Origin Selector asynchronously prefetches the next origin from events (#12134) · 445a3d40
      Brian Bland authored
      * Sequencer: Origin Selector optimistically prefetches the next origin in background
      
      * L1OriginSelector erases cached state on reset
      
      * L1OriginSelector attempts to fetch on ForkchoiceUpdateEvent
      
      * Move to a fully event-driven model, no extra goroutines
      
      * Add missing test comment
      
      * Minor cleanup, more tests
      
      * Tune the context timeouts
      445a3d40
    • Sebastian Stammler's avatar
      73038c88
    • Roberto Bayardo's avatar
      Revert "Holocene extensions to L1Block.sol (#12096)" (#12236) · 28726a33
      Roberto Bayardo authored
      This reverts commit 5bd72f69.
      28726a33
    • Michael Amadi's avatar
      use interfaces in opcm contracts (#12217) · a4d81ba5
      Michael Amadi authored
      * use interfaces in opcm contracts
      
      * fix change
      
      * fix encodeConstructor omission
      
      * fix wrong interface usage
      
      * fix change
      
      * fix change
      
      * remove commented fn
      
      * fix semver conflict issue
      a4d81ba5
    • Inphi's avatar
      cannon: Fix cli --stop-at-preimage value parsing (#12234) · d8cde654
      Inphi authored
      * cannon: Fix cli --stop-at-preimage value parsing
      
      * Setup alloc type in system config
      d8cde654
    • Roberto Bayardo's avatar
    • Matthew Slipper's avatar
      op-deployer: Fix init bugs (#12230) · 8a7db419
      Matthew Slipper authored
      - The array was being appended to, but it was already a fixed length. This cause an empty chain to be added during `init`.
      - The outdir will now be created if it does not exist and is not a file
      - Hardcodes the contract artifacts to a good URL
      8a7db419
    • Blaine Malone's avatar
      Configurable GasLimit for op-deployer (#12224) · 7feffce8
      Blaine Malone authored
      * Configurable GasLimit for op-deployer
      
      * fix: OPContractsManager.t.sol fixed.
      
      * fix: OPContractsManagerInterop.sol
      
      * fix: make gas limit configurable.
      7feffce8
    • Inphi's avatar
      cannon: 64-bit Refactor (#12029) · a2653a38
      Inphi authored
      * cannon: 64-bit Refactor
      
      Refactor Cannon codebase to support both 32-bit and 64-bit MIPS emulation
      while reusing code as much as possible.
      
      * fix 64-bit test compilation errors
      
      * review comments
      
      * more review comments
      
      * fcntl syscall err for 64-bit
      
      * simplify pad check
      
      * cannon: sc must store lsb 32 on 64-bits
      
      * lint
      
      * fix sc 64-bit logic
      
      * add TODO state test
      a2653a38
  3. 01 Oct, 2024 6 commits
    • smartcontracts's avatar
      fix(ci): temporarily make semgrep scan ok on err (#12227) · fed6f354
      smartcontracts authored
      Temporarily makes semgrep-scan not fail on error. Currently this
      is a problem for external contributions because semgrep-scan loads
      rules from the online app which requires a login. External
      contributors don't get access to this login.
      fed6f354
    • Matthew Slipper's avatar
      op-e2e: Support specifying allocs in tests (#12216) · c2dc0abf
      Matthew Slipper authored
      * op-e2e: Support specifying allocs in tests
      
      Previously, the E2E test suite read a hardcoded set of allocs from the `.devnet` directory. There could only be one logical set of allocs per test suite run. To get around this limitation, we added matrix jobs to the CI pipeline that swapped in different versions of the allocs for alt-DA, MT Cannon, fault proofs, and the L2OO. This was very inefficient and complex: most tests don't need to run against multiple versions of the allocs, and were running 4 separate build jobs when only one was needed.
      
      This PR makes it possible for an individual test to request a specific allocs file. We can now run tests for multiple different configurations of the OP Stack - e.g. alt-DA, L2OO and fault proofs - in a single test run.
      
      To make this work, I updated the test suite's initialization method to read alloc files from multiple suffixed `.devnet-` directories. I made a a new `make devnet-allocs-tests` task to generate them. The allocs are then added to a map, and the rest of the tests use getter methods in the `config` package to locate the appropriate configuration structs.
      
      This PR seems large, but most of the modified files contain limited changes to comply with the new API for selecting test configuration based on alloc type. For example, an `allocType` configuration parameter was added to various system config structs and the `DefaultRollupTestParams` variable was made into a method so that it always returns a copy for easy extension. The important logic happens in the following files:
      
      - Makefile
      - .circleci/config.yml
      - op-e2e/config/init.go
      
      As part of this PR, I also cleaned up a few issues:
      
      - I removed the external OP Geth shim. It wasn't used anywhere, and was introducing a lot of complexity for little gain.
      - I refactored some tests to use top-level test methods rather than subtests so that they could be more easily parallelized.
      - I removed references to `UseFaultProofs`, `UseAltDA`, and other environment-based test flags from test utilities. We shouldn't be reading from the environment in test utils. Instead, we should pass in the behavior we want to the test utils themselves.
      
      * code review updates
      
      * fix gastoken test
      
      * fixes
      c2dc0abf
    • Adrian Sutton's avatar
    • smartcontracts's avatar
      fix(ci): add files to semgrep ignore (#12219) · b5b68dec
      smartcontracts authored
      FaultDisputeGame and PermissionedDisputeGame interface files are
      annoying because the semgrep ignore comment doesn't seem to work
      properly.
      b5b68dec
    • Roberto Bayardo's avatar
      - fix lint issue in Encoding.sol (#12215) · 31e244c3
      Roberto Bayardo authored
      - clarify that 'just update-foundry' needs to be run from the root of the repo in check-foundry
        script. Usually the user will be in contracts-bedrock/src when seeing this message, and the
        justfile there doesn't handle it.
      31e244c3
    • mbaxter's avatar
      cannon: Bump go tests to go1.22 (#12214) · 75b0e66d
      mbaxter authored
      * cannon: Update cannon go test program versions
      
      * cannon: Allow more steps for multithreaded program
      75b0e66d