1. 29 Oct, 2024 1 commit
    • mbaxter's avatar
      cannon: Update program loading for 64-bit programs (#12657) · da681773
      mbaxter authored
      * cannon: Add some unit tests for LoadELF
      
      * cannon: Fix off-by-one boundary check
      
      * cannon: Adapt LoadELF addr check for 64-bit
      
      * cannon: Handle zero-length segments
      
      * cannon: Restrict virtual address space to 48-bits for MIPS64
      da681773
  2. 28 Oct, 2024 17 commits
    • Inphi's avatar
      cannon: Noop SYS_STAT for the mt stf (#12687) · 005116d9
      Inphi authored
      005116d9
    • protolambda's avatar
    • Inphi's avatar
      cannon: Implement bltzal (#12594) · 73094cb3
      Inphi authored
      73094cb3
    • Tyler Smith's avatar
      op-supervisor: Cross safe updates cycle detection + tests (#12530) · 2cf297da
      Tyler Smith authored
      * op-supervisor: experimental cross-safety, with hazard detection
      
      * tweak: Add some errors/error returns in backend/cross.
      
      * wip: Chain index <> ID mapping.
      
      * fix: Check parent instead of re-checking hazardBlock.
      
      * Remove Hazard Work
      
      * Write missing DB Bindings OpenBlock, LocallyDerivedFrom, CrossDerivedFrom
      
      * Configurable WorkFn for Workers
      
      * op-supervisor: move chain-index <> chain ID translation into dependency set, fix some interfaces
      
      * op-supervisor: update cross-safety worker routine
      
      * op-supervisor: update more error handling
      
      * op-supervisor: move errors to types package
      
      * op-supervisor: check CanExecuteAt and CanInitiateAt
      
      * op-supervisor: determine cross-safe candidate and L1 scope, and more fixes
      
      * todo L1 scope increment
      
      * op-supervisor: cross-safe L1 scope bump
      
      * op-supervisor: dependency set getter
      
      * op-supervisor: L1 scope increment fix
      
      * op-supervisor: fix cross-safe updates typing
      
      * op-node: signal L1 traversal of derivation to supervisor
      
      * op-supervisor: fromda fixes and tests
      
      * op-supervisor: fix OpenBlock, fix/add missing interface methods, hook up cross-safe worker routines
      
      * OpenBlock to return map[uint32]ExecutingMessage
      
      * Add Frontier Unit Tests
      
      * fix WithParent panic
      
      * op-node: register L1 traversal with op-supervisor
      
      * op-node,op-supervisor: add logging, temp work around for interop local-safe updates
      
      * Add safe_start_test, unsafe_start_test
      
      * Add safe_update_test and unsafe_update_test
      
      * add worker_test
      
      * op-supervisor: fix cross-safe L1 scope bumping
      
      * op-supervisor: fix logs DB test
      
      * Add cycle.go and initial unit tests.
      
      * fix: Use new execMsg log index info to complete graph.
      
      * debug: Add helper to write out Mermaid of our graph.
      
      * tests: Add more cycle tests.
      
      * tests: Organize cycle tests.
      
      * tests: Add NoCycle test.
      
      * fix: Add edges between basic logs.
      
      * tests: More comprehensive NoCycle tests.
      
      * tests: Make tests not use index-0 exec msgs for now.
      
      * fix: Disallow self-referencing messages.
      
      * fix: Safely handle unknown chains.
      
      * tests,fix: Remove unintended self-reference.
      
      * tests,fix: Remove unintended self-reference.
      
      * tests: Add test for the first log being exec.
      
      * refactor: Create ErrFailedToOpenBlock for error.
      
      * tests,refactor: Use table-driven tests to make it easier to iterate test vectors.
      
      * cleanup: Change some comments and make Mermaid debugging easier to disable.
      
      * tests: Add permuations of 2-cycles involving adjacency and first logs.
      
      * fix: When adding edges for execMsgs, remove node from inDegree0.
      
      * refactor: Split graph build from checks; abstract adding edges.
      
      This allows us to more easily test specifics of our cycle checking.
      
      Errors can be in either part, and only being able to test the entirety
      makes things a little difficult.
      
      Abstracting edge creation helps eliminate bugs like 118aeb6b8.
      
      * tests: Test execMsg to base log which is right after an execMsg to the first execMsg.
      
      * tests: Cycle across timestamps should not return an error.
      
      * fix: Don't consider cycles that depend on out-of-timestamp nodes.
      
      We do this by first collecting every execMsg from all chains, filtering
      out the out-of-timestamp nodes, and putting into a lookup map.
      
      When creating edges, we check to see if the target node is
      uninteresting.
      
      * fix: Remove debug mermaid logging.
      
      * cleanup: Remove stray text in comment.
      
      * tweak: Make presence check more idiomatic; remove possible nil map access.
      
      * docs: Improve comments in cycle detection code.
      
      * cleanup: Reorganize cycle detection code.
      
      * cleanup: Move public types to top.
      
      * cleanup: Change some names for consistency.
      
      * cleanup: Better comment in cycle detection.
      
      * docs: Explain graph representation.
      
      * tests: Re-organize HazardCycleChecks tests.
      
      * docs: Better naming and docs in cycle.go.
      
      * tests: Add large graph cycle detection tests.
      
      * tests: Add nil hazard map test.
      
      * refactor: Slightly tweak graph sort code to nest less; add comments.
      
      * tweak: Make self referencial messages fail with an ErrConflict.
      
      * tests: Add tests for both older/younger timestamps, and document that younger init msgs shouldn't occur.
      
      * tests: Add tests for 2-cycle with 3 chains.
      
      * tweak: Check that an exec msg's init msg exists.
      
      * tests: tweak test to use index 0 instead of 1.
      
      * cleanup: Remove unused function.
      
      * op-e2e: fix interop mock backend action test
      
      CI try 2
      
      ---------
      Co-authored-by: default avatarprotolambda <proto@protolambda.com>
      Co-authored-by: default avataraxelKingsley <axel.kingsley@gmail.com>
      2cf297da
    • Inphi's avatar
      cannon: Detect input/output codec mismatch before trace execution (#12676) · 788b2708
      Inphi authored
      * cannon: Check --input and --output file formats in CLI
      
      * cannon: Allow only binary state outputs in run cli
      
      * golang lint
      788b2708
    • Matthew Slipper's avatar
      ci: Remove hosted semgrep (#12701) · 0cb0cd6f
      Matthew Slipper authored
      We're not getting a lot of value from hosted Semgrep. This PR removes that in favor of just adding rules to the `semgrep/` directory so they can be run locally in CI.
      0cb0cd6f
    • Matthew Slipper's avatar
      chore: Remove obsolete build files (#12700) · 5f1851c1
      Matthew Slipper authored
      * chore: Remove obsolete cloudbuild file
      
      * Remove coderabbit
      
      * remove snyk
      5f1851c1
    • Michael Amadi's avatar
      rename LibStateDiff to StateDiff (#12696) · 03bb1bcc
      Michael Amadi authored
      03bb1bcc
    • Michael Amadi's avatar
      4c015e3a
    • Michael Amadi's avatar
      rm changelog (#12697) · 654c7625
      Michael Amadi authored
      654c7625
    • Michael Amadi's avatar
      fix abi.encodecall semgrep check for tests (#12664) · 2013c903
      Michael Amadi authored
      * fix abi.encodecall semgrep for tests
      
      * fix safe call test
      
      * rm unneccessary abi.encodeWithSignature, fix fuzz test
      
      * use comment for semgrep...
      
      * use comment for semgrep...
      
      * use pattern-not for expectRevert cases
      
      * fixes
      
      * fixes
      
      * try fix ci
      
      * fix...
      2013c903
    • smartcontracts's avatar
      maint(ct): remove block.json (#12693) · db39e52a
      smartcontracts authored
      Old file, not used anymore.
      db39e52a
    • protolambda's avatar
      op-node: disable finality based on local-safe when interop is active (#12690) · be455ca4
      protolambda authored
      * op-node: disable finality based on local-safe when interop is active
      
      * op-e2e: fix interop action-test, relies on op-supervisor finality signal now
      be455ca4
    • smartcontracts's avatar
      maint(ct): remove safe.json (#12669) · bf1b4d97
      smartcontracts authored
      Not sure how I managed to commit that... removes a safe.json file
      that was accidentally committed a few months ago.
      bf1b4d97
    • Matthew Slipper's avatar
      ci: Install goreleaser pro in a separate directory (#12681) · 06a7ce23
      Matthew Slipper authored
      Turns our GoReleaser also barfs if there's anything extraneous in the git directory.
      06a7ce23
    • Matthew Slipper's avatar
      ci: Check out first (#12680) · 4696908a
      Matthew Slipper authored
      CircleCI barfs if there's anything in the project folder.
      4696908a
    • Julian Meyer's avatar
      op-program: add experimental L2 source flag to enable execution witnesses (#12558) · 067446aa
      Julian Meyer authored
      * feat: add experimental L2 source flag
      
      * Move L2 experimental client methods to eth client
      
      * Fix missing return
      
      * Improve config handling for experimental features
      
      * Add l2 experimental test
      067446aa
  3. 27 Oct, 2024 3 commits
    • I love OP's avatar
      fix Makefile (#12668) · 84ba885e
      I love OP authored
      84ba885e
    • Karl Bartel's avatar
      Makefile: Fix executable command detection (#12080) · 3e31ea4f
      Karl Bartel authored
      `$(command -v geth)` is valid shell syntax, but it gets processed by
      make first, so that this never gets correctly executed by the shell. As
      a result, `make install-geth` and `make install-eth2-testnet-genesis`
      are always executed and not, as intended, just when the commands are not
      present.
      
      The fix is easy: escape the dollar by duplicating it, so that make won't
      do anything and the correct command reaches the shell.
      3e31ea4f
    • Matthew Slipper's avatar
      ci: fix goreleaser (#12667) · 71fd6704
      Matthew Slipper authored
      The Docker release requires special args.
      71fd6704
  4. 26 Oct, 2024 9 commits
  5. 25 Oct, 2024 10 commits
    • smartcontracts's avatar
      maint(ct): rm fee vault withdrawal script (#12638) · 02d58323
      smartcontracts authored
      Removes the FeeVaultWithdrawal.s.sol script that was previously
      used to trigger withdrawals manually. All of this is automated now
      and you can just use Etherscan if you really want to do things
      manually so the value of the script is minimal.
      02d58323
    • Michael Amadi's avatar
      add interfaces for safe contracts (#12650) · d69e922b
      Michael Amadi authored
      * add interfaces for safe contracts, use named imports for DeputyGuardianModule
      
      * fix failing test
      d69e922b
    • protolambda's avatar
      op-supervisor: Cross-safe updates [rebased] (#12624) · da4c33c5
      protolambda authored
      * op-supervisor: cross-safe-updates PR squashed
      
      op-supervisor: experimental cross-safety, with hazard detection
      
      tweak: Add some errors/error returns in backend/cross.
      
      wip: Chain index <> ID mapping.
      
      fix: Check parent instead of re-checking hazardBlock.
      
      Remove Hazard Work
      
      Write missing DB Bindings OpenBlock, LocallyDerivedFrom, CrossDerivedFrom
      
      Configurable WorkFn for Workers
      
      op-supervisor: move chain-index <> chain ID translation into dependency set, fix some interfaces
      
      op-supervisor: update cross-safety worker routine
      
      op-supervisor: update more error handling
      
      op-supervisor: move errors to types package
      
      op-supervisor: check CanExecuteAt and CanInitiateAt
      
      op-supervisor: determine cross-safe candidate and L1 scope, and more fixes
      
      todo L1 scope increment
      
      op-supervisor: cross-safe L1 scope bump
      
      op-supervisor: dependency set getter
      
      op-supervisor: L1 scope increment fix
      
      op-supervisor: fix cross-safe updates typing
      
      op-node: signal L1 traversal of derivation to supervisor
      
      op-supervisor: fromda fixes and tests
      
      op-supervisor: fix OpenBlock, fix/add missing interface methods, hook up cross-safe worker routines
      
      OpenBlock to return map[uint32]ExecutingMessage
      
      Add Frontier Unit Tests
      
      fix WithParent panic
      
      op-node: register L1 traversal with op-supervisor
      
      op-node,op-supervisor: add logging, temp work around for interop local-safe updates
      
      Add safe_start_test, unsafe_start_test
      
      Add safe_update_test and unsafe_update_test
      
      add worker_test
      
      op-supervisor: fix cross-safe L1 scope bumping
      
      op-supervisor: fix logs DB test
      Co-authored-by: default avataraxelKingsley <axel.kingsley@gmail.com>
      Co-authored-by: default avatarTyler Smith <mail@tcry.pt>
      
      * op-node: fix interop deriver test
      
      * op-e2e: fix interop action test
      
      * op-supervisor: improve map init
      
      * op-node: link interop TODO comment to issue, in engine events emitter
      
      * op-supervisor: cleanup Worker instances of tests
      
      ---------
      Co-authored-by: default avataraxelKingsley <axel.kingsley@gmail.com>
      Co-authored-by: default avatarTyler Smith <mail@tcry.pt>
      da4c33c5
    • zhiqiangxu's avatar
      do forge clean when make clean (#12635) · 9f22034f
      zhiqiangxu authored
      9f22034f
    • Michael Amadi's avatar
      update test folder so segrep require and revert checks pass (#12628) · 38db5117
      Michael Amadi authored
      * update test folder so that smegrep require and revert checks pass for it
      
      * fix test
      38db5117
    • smartcontracts's avatar
      feat(ct): add semgrep rule to use encodeCall (#12626) · d317e96c
      smartcontracts authored
      * feat(ct): add semgrep rule to use encodeCall
      
      encodeCall is almost always better than encodeWithSelector because
      it maintains type safety. Prefer encodeCall unless
      encodeWithSelector is actually necessary.
      
      * maint(ct): update contracts to use encodeCall
      
      Updates a number of contracts to use encodeCall instead of
      encodeWithSelector where possible.
      d317e96c
    • Adrian Sutton's avatar
    • Inphi's avatar
      cannon: Simplify load/stores with helper functions (#12599) · 1b7a4140
      Inphi authored
      * cannon: Simplify load/stores with helper functions
      
      * use subword utils in MIPS.sol
      
      * lint MIPS.sol
      
      * add natspec to MIPSInstructions.sol
      
      * use updateSubWord in MIPSInstructions.sol
      
      * bump MIPS contract semver
      
      * fix nits
      1b7a4140
    • Inphi's avatar
      cannon: Remove memory.SetUint32 (#12617) · f59d257e
      Inphi authored
      * cannon: Remove memory.SetUint32
      
      Remove uint32 word stores from the `mipsevm.memory` interface. `SetUint32` is inflexible
      due to its word-alignment constraints. This prevents tests for 32 and 64-bit VMs from
      using the same program counter values when writing instructions to memory.
      
      Instead, tests should use the new `testutil.StoreInstruction` utility function to write instructions to any naturally aligned memory location.
      
      * use arch.Word csats in go-ffi
      f59d257e
    • Matthew Slipper's avatar
      op-e2e: Improve WaitForBlock timeouts (#12627) · 0f9897b0
      Matthew Slipper authored
      Update WaitForBlock to maintain two timeouts: a no-change timeout, which fires if the chain's head does not change within a specified window, and an absolute timeout, which fires if the chain's head does not meet or exceed the specified block.
      
      These changes should ideally reduce the number of test flakes we're seeing. Everything takes longer when test executors are under load; by maintaining these two timeouts we can provide longer-running tests with more buffer while retaining the ability to fail fast if the chain gets stuck.
      
      As part of this PR I also refactored the wait method to use polling rather than WebSockets. I've found WebSockets to be unreliable in tests.
      0f9897b0