1. 02 Oct, 2024 1 commit
    • 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
  2. 01 Oct, 2024 16 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
    • Roberto Bayardo's avatar
      5bd72f69
    • Inphi's avatar
      supervisor: Fix nil check (#12209) · 909d7fd2
      Inphi authored
      909d7fd2
    • Maurelian's avatar
      test(deploy): Deploy a distinct ProxyAdmin for Superchain contracts (#12130) · b6e27b65
      Maurelian authored
      * test(deploy): Deploy a distinct ProxyAdmin for Superchain contracts
      
      * fix: only set address manager for OP Chain's ProxyAdmin
      
      * fix: typo
      
      * test: fix create2 collision between ProxyAdmins
      
      * fix: lint
      
      * fix: move setupOpChainAdmin() before setupOpAltDA
      
      The DA challenge contract needs a proxy admin too
      
      * feat: use create2AndSave for ProxyAdmin
      
      * fix: Do not double save the superchain ProxyAdmin
      
      * Fix whitespace
      Co-authored-by: default avatarMatt Solomon <matt@mattsolomon.dev>
      
      ---------
      Co-authored-by: default avatarMatt Solomon <matt@mattsolomon.dev>
      b6e27b65
    • Inphi's avatar
      ci: Cannon v2 STF verify (#12211) · b127499e
      Inphi authored
      * ci: Cannon v2 STF verify
      
      * ci: remove op-e2e-cannon-tests dep
      b127499e
    • Inphi's avatar
      tag-tool: Add --prerelease option (#12210) · f0227a82
      Inphi authored
      f0227a82
    • Mark Tyneway's avatar
      contracts-bedrock: bump forge-std (#12149) · 74679806
      Mark Tyneway authored
      * contracts-bedrock: bump forge-std
      
      Bumps forge-std to the latest release
      
      https://github.com/foundry-rs/forge-std/tree/v1.9.3
      
      This will help us to delete some solidity code and move
      to using cheatcodes in its place.
      
      * build: fix
      
      * gas-snapshot: update
      74679806
    • Harper's avatar
      Delete interface directory (#12208) · fe8f2ae7
      Harper authored
      fe8f2ae7
    • Maurelian's avatar
    • Adrian Sutton's avatar
      cannon: Support F_GETFD cmd to fcntl (#12050) · 52d0e60c
      Adrian Sutton authored
      * cannon: Support F_GETFD cmd to fcntl.
      
      * cannon: Update fuzz test expectations.
      
      * cannon: Update MIPS.t.sol
      
      * cannon: Introduce a new state version for supporting get_fd.
      
      Switches singlethreaded prestate to use .bin.gz instead of json since it now needs to detect the new state version.
      
      * cannon: Don't override the cannon version.
      
      * Update semver-lock.
      
      * cannon: Update tests to detect old versions but only check writing and parsing for the currently supported versions.
      
      * cannon: Load old version from cannon docker image
      
      * cannon: Improve logging.
      
      * cannon: Restore cannon version arg.
      
      * Fix contrac semvers.
      
      * cannon: Rename singlethreaded-getfd to just singlethreaded-2.
      
      We could just go to using the state version number directly, but particularly the difference between singlethreaded and multithreaded feels useful to keep.
      
      * cannon: Fix comment.
      
      * Update semver again.
      52d0e60c
    • smartcontracts's avatar
      fix(ct): give kontrol access to full src (#12181) · 3aabfe67
      smartcontracts authored
      Kontrol profile was originally just looking at the L1 contracts
      which caused issues now that we're deploying via vm.getCode.
      3aabfe67
  3. 30 Sep, 2024 4 commits
  4. 29 Sep, 2024 1 commit
    • Matthew Slipper's avatar
      feat: Rewrite natspec checker in Go (#12191) · cd7e9d40
      Matthew Slipper authored
      * feat: Rewrite natspec checker in Go
      
      Rewrites the `semver-natspec-check-no-build` Just command in Go to reduce runtime. This PR reduces runtime for this check from ~1m30s to about 3 seconds post-compilation.
      
      * remove old script
      
      * add unit tests
      
      * rename test
      
      * review updates
      cd7e9d40
  5. 28 Sep, 2024 6 commits
    • Maurelian's avatar
      Interfaces in OPCM and OPCMInterop (#12188) · 6ba2ac0d
      Maurelian authored
      * Updates to OPCM and OPCMInterop
      
      * Update DeployImpls and OPCM Tests
      
      * remove some unused imports
      
      * Undo mapping type change
      
      * Undo DeployOutput type change
      
      * Semver and snapshots
      6ba2ac0d
    • smartcontracts's avatar
      maint(ct): remove Kontrol interfaces (#12178) · 5eaac1de
      smartcontracts authored
      We no longer need these interfaces now that we have the actual
      interfaces.
      5eaac1de
    • Matt Solomon's avatar
      OPCM: Adds a test, cleans up some TODOs, new justfile command (#12182) · b1dfd743
      Matt Solomon authored
      * add missing assertion and remove unneeded todo comments
      
      * chore: semver lock + pre-pr-no-build
      
      * chore: rename function
      b1dfd743
    • Axel Kingsley's avatar
      Supervisor: Safety Index (#12154) · 289cd71b
      Axel Kingsley authored
      * fixes
      
      * op-supervisor: head db init fix, logging, op-node debug logging
      
      * interop: track recent safety data
      
      * Early integration and refactor of Views and SafetyIndex
      
      * update for rebase
      
      * rename RecentSafetyIndex ; reorganize
      
      * refactor Pointer method on iterator
      
      * logging
      
      * Delete unused Tracking Code ; New ChainsDB.Safest
      
      * fix naming miss
      
      * fix mistaken line deletion
      
      * Update op-supervisor/supervisor/backend/safety/safety.go
      Co-authored-by: default avatarprotolambda <proto@protolambda.com>
      
      * Add issue numbers to TODO ; Address Proto Comments
      
      ---------
      Co-authored-by: default avatarprotolambda <proto@protolambda.com>
      289cd71b
    • Matthew Slipper's avatar
      Cleanups for production, add standard addresses (#12169) · 644dc2b5
      Matthew Slipper authored
      * Cleanups for production, add standard addresses
      
      This PR:
      
      - Cleans up the intent file to be more suitable for production deployments
      - Fixes various bugs encountered while preparing `op-deployer` for use against predeployed OPCM contracts
      - Adds a new CLI command to bootstrap a new OPCM deployment against an existing set of implementation contracts
      
      Note on Solidity changes:
      
      - Since the code for custom gas tokens is in the monorepo but isn't included in an official contracts release yet, we had to add interfaces for the pre-CGT contracts to the Solidity codebase.
      - The `DeployImplementations` script looks at the release identifier to determine whether or not it should use the pre- or post-CGT interfaces.
      
      * goimports
      
      * lints
      
      * fix tests
      
      * revert tx manger changes
      
      * Update packages/contracts-bedrock/src/L1/interfaces/IL1StandardBridgeV160.sol
      Co-authored-by: default avatarMaurelian <john@oplabs.co>
      
      * Update packages/contracts-bedrock/src/L1/interfaces/IL1CrossDomainMessengerV160.sol
      Co-authored-by: default avatarMaurelian <john@oplabs.co>
      
      * use new opcm
      
      * fix test
      
      * semver
      
      * semver
      
      * bump semver
      
      * update manager deployment
      
      * natspec
      
      * SEMVER
      
      ---------
      Co-authored-by: default avatarMaurelian <john@oplabs.co>
      644dc2b5
    • Hamdi Allam's avatar
  6. 27 Sep, 2024 12 commits