1. 18 Sep, 2024 10 commits
    • teddy's avatar
      test: invariant tests for OptimismSuperchainERC20 (#11776) · 9de48fc2
      teddy authored
      * chore: configure medusa with basic supERC20 self-bridging (#19)
      
      - used --foundry-compile-all to ensure the test contract under
        `test/properties` is compiled (otherwise it is not compiled and medusa
        crashes when it can't find it's compiled representation)
      - set src,test,script to test/properties/medusa to not waste time
        compiling contracts that are not required for the medusa campaign
      - used an atomic bridge, which doesnt allow for testing of several of
        the proposed invariants
      
      fix: delete dead code
      test: give the fuzzer a head start
      docs: fix properties order
      test: document & implement assertions 22, 23  and 24
      fix: fixes from self-review
      test: guide the fuzzer a little bit less
        previously: initial mint, bound on transfer amount: 146625 calls in 200s
        now: no initial mint, no bound on transfer amount: 176835 calls in 200s
        it doesn't seem to slow the fuzzer down
      fix: fixes after lovely feedback by disco
      docs: merge both documents and categorized properties by their milestone
      fix: fixes from parti's review
      fix: feedback from disco
      fix: feedback from doc
      refactor: separate state transitions from pure properties
      docs: update tested properties
      refactor: move all assertions into properties contract
      fix: move function without assertions back into handler
      test: only use assertion mode
      fix: improve justfile recipie for medusa
      
      * feat: halmos symbolic tests (#21)
      
      * feat: introduce OptimismSuperchainERC20
      
      * fix: contract fixes
      
      * feat: add snapshots and semver
      
      * test: add supports interface tests
      
      * test: add invariant test
      
      * feat: add parameters to the RelayERC20 event
      
      * fix: typo
      
      * fix: from param description
      
      * fix: event signature and interface pragma
      
      * feat: add initializer
      
      * feat: use unstructured storage and OZ v5
      
      * feat: update superchain erc20 interfaces
      
      * fix: adapt storage to ERC7201
      
      * test: add initializable OZ v5 test
      
      * fix: invariant docs
      
      * fix: ERC165 implementation
      
      * test: improve superc20 invariant (#11)
      
      * fix: gas snapshot
      
      * chore: configure medusa with basic supERC20 self-bridging
      
      - used --foundry-compile-all to ensure the test contract under
        `test/properties` is compiled (otherwise it is not compiled and medusa
        crashes when it can't find it's compiled representation)
      - set src,test,script to test/properties/medusa to not waste time
        compiling contracts that are not required for the medusa campaign
      - used an atomic bridge, which doesnt allow for testing of several of
        the proposed invariants
      
      * fix: delete dead code
      
      * test: give the fuzzer a head start
      
      * feat: create suite for sybolic tests with halmos
      
      * test: setup and 3 properties with symbolic tests
      
      * chore: remove todo comment
      
      * docs: fix properties order
      
      * test: document & implement assertions 22, 23  and 24
      
      * fix: fixes from self-review
      
      * test: guide the fuzzer a little bit less
      
      previously: initial mint, bound on transfer amount: 146625 calls in 200s
      now: no initial mint, no bound on transfer amount: 176835 calls in 200s
      
      it doesn't seem to slow the fuzzer down
      
      * feat: add property for burn
      
      * refactor: remove symbolic address on mint property
      
      * refactor: order the tests based on the property id
      
      * feat: checkpoint
      
      * chore: set xdomain sender on failing test
      
      * chore: enhance mocks
      
      * Revert "Merge branch 'chore/setup-medusa' into feat/halmos-symbolic-tests"
      
      This reverts commit 945d6b6ad265ea5e3790d7ac9c5bf4d6586eb533, reversing
      changes made to 5dcb3a89252e9e8fa9b54ba9012e714f7cc96395.
      
      * refactor: remove symbolic addresses to make all of the test work
      
      * chore: remove console logs
      
      * feat: add properties file
      
      * chore: polish
      
      * refactor: enhance test on property 7 using direct try catch (now works)
      
      * fix: review comments
      
      * refactor: add symbolic addresses on test functions
      
      * feat: create halmos toml
      
      * chore: polish test contract and mock
      
      * chore: update property
      
      * refactor: move symbolic folder into properties one
      
      * feat: create advanced tests helper contract
      
      * refactor: enhance tests using symbolic addresses instead of concrete ones
      
      * chore: remove 0 property natspec
      
      * feat: add halmos profile and just script
      
      * chore: rename symbolic folder to halmos
      
      * feat: add halmos commands to justfile
      
      * chore: reorder assertions on one test
      
      * refactor: complete test property seven
      
      * chore: mark properties as completed
      
      * chore: add halmos-cheatcodes dependency
      
      * chore: rename advancedtest->halmosbase
      
      * chore: minimize mocked messenger
      
      * chore: delete empty halmos file
      
      * chore: revert changes to medusa.json
      
      * docs: update changes to PROPERTIES.md from base branch
      
      * test: sendERC20 destination fix
      
      * chore: natspec fixes
      
      ---------
      Co-authored-by: default avataragusduha <agusnduha@gmail.com>
      Co-authored-by: default avatar0xng <ng@defi.sucks>
      Co-authored-by: default avatarteddy <teddy@defi.sucks>
      
      * test: remaining protocol properties (#26)
      
      * test: cross-user fuzzed bridges + actor setup
      
      * test: fuzz properties 8 and 9
      
      * test: properties 7 and 25
      
      * fix: implement doc's feedback
      
      * test: superc20 tob properties (#27)
      
      * chore: add crytic/properties dependency
      
      * test: extend protocol properties so it also covers ToB erc20 properties
      
      * chore: small linter fixes
      
      * docs: update property list
      
      * test: handlers for remaining superc20 state transitions
      
      * fix: disable ToB properties we are not using and guide the fuzzer a bit more
      
      * fix: disable another ToB property not implemented by solady
      
      * chore: remove zero-initializations
      
      * fix: feedback from disco
      
      * chore: separate fuzz campaign tests in guided vs unguided
      
      * test: dont revert on successful unguided relay
      
      * test: add fuzzed calls to burn and mint
      
      * docs: document the separation of fuzz test functions
      
      * chore: move the properties file to its own directory
      
      * chore: consistently use fuzz_ and property_ + camelcase
      
      * chore: fix typo
      
      * chore: camelcase for handlers as well
      
      * fix: revert change that broke halmos campaign compile :D
      
      * test: fuzz non atomic bridging (#31)
      
      * test: changed mocked messenger ABI for message sending but kept assertions the same
      
      * docs: add new properties 26&27
      
      * test: queue cross-chain messages and test related properties
      
      * test: relay random messages from queue and check associated invariants
      
      * chore: rename bridge->senderc20 method for consistency with relayerc20
      
      * test: not-yet-deployed supertokens can get funds sent to them
      
      * chore: medusa runs forever by default
      
      doable since it also handles SIGINTs gracefully
      
      * chore: document the reason behind relay zero and send zero inconsistencies
      
      * fix: feedback from doc
      
      * fix: walk around possible medusa issue
      
      I'm getting an 'unknown opcode 0x4e' in ProtocolAtomic constructor when
      calling the MockL2ToL2CrossDomainMessenger for the first time
      
      * test: unguided handler for sendERC20
      
      * fix: feedback from disco
      
      * chore: remove halmos testsuite
      
      * chore: foundry migration (#40)
      
      * chore: track assertion failures
      
      this is so foundry's invariant contract can check that an assertion
      returned false in the handler, while still allowing `fail_on_revert =
      false` so we can still take full advantage of medusa's fuzzer & coverage
      reports
      
      * fix: explicitly skip duplicate supertoken deployments
      
      * chore: remove duplicated PROPERTIES.md file
      
      * chore: expose data to foundry's external invariant checker
      
      * test: run medusa fuzzing campaign from within foundry
      
      * fix: eagerly check for duplicate deployments
      
      * fix: feedback from doc
      
      * chore: shoehorn medusa campaign into foundry dir structure
      
      * chore: remove PROPERTIES.md file
      
      * chore: delete medusa config
      
      * docs: limited support for subdirectories in test/invariant
      
      * chore: rename contracts to be more sneaky about medusa
      
      * docs: rewrite invariant docs in a way compliant with autogen scripts
      
      * chore: fixes from rebase
      
      * fix: cleanup superc20 invariants (#46)
      
      * chore: revert modifications from medusa campaign
      
      * docs: extra docs on why ForTest contract is required
      
      * doc: add list of all supertoken properties
      
      * chore: run forge fmt
      
      * ci: allow for testfiles to be deleted
      
      * fix: run doc autogen script after rebase
      
      ---------
      Co-authored-by: default avatarDisco <131301107+0xDiscotech@users.noreply.github.com>
      Co-authored-by: default avataragusduha <agusnduha@gmail.com>
      Co-authored-by: default avatar0xng <ng@defi.sucks>
      9de48fc2
    • smartcontracts's avatar
      ci: bump semgrep-scan to xlarge (#11948) · 518b050b
      smartcontracts authored
      We're still having resource issues with a large image. Going to
      bump this to xlarge to see if that will fix it.
      518b050b
    • smartcontracts's avatar
      fix: move IERC20Solady into vendor folder (#11945) · e15f6843
      smartcontracts authored
      An additional "dependency" folder was added in a recent PR, this
      is the same purpose as the "vendor" folder so the interface added
      in that PR can simply be moved to the "vendor" folder instead.
      e15f6843
    • smartcontracts's avatar
      ci: run slow Cannon test once per day (#11947) · a7fac3b7
      smartcontracts authored
      Updates CI to run the (very) slow Cannon go-lint-and-test suite
      once per day instead of running it on merge since it adds at least
      5 minutes to CI.
      a7fac3b7
    • Maurelian's avatar
      feat: Add ASR proxy to OPStackManager (#11952) · 9179225d
      Maurelian authored
      * feat: Add ASR proxy to OPStackManager
      
      * feat: Add AnchorStateRegistry blueprint
      9179225d
    • clabby's avatar
      fix: Remove `--l2-chain-id` default (#11951) · 668c3fba
      clabby authored
      668c3fba
    • Maurelian's avatar
      8312d611
    • Matt Solomon's avatar
      OPSM: DeployOPChain assertions (#11943) · 290dde27
      Matt Solomon authored
      * chore: add BaseDeployIO for the deploy input and output contracts
      
      * test: add assertions to DeployOPChain
      
      * chore: semver lock
      
      * pr feedback
      290dde27
    • Matthew Slipper's avatar
      Add L2 genesis generation support to `op-deployer` (#11938) · 110a31db
      Matthew Slipper authored
      Adds support for generating L2 genesis files to `op-deployer. The L2 initialization config is generated by merging in overrides as specified in the intent into a default config with sane values. The outputted genesis file is stored in the stage as a GZIP-compressed, base64-encoded string.
      110a31db
    • dependabot[bot]'s avatar
      dependabot(gomod): bump github.com/prometheus/client_golang (#11946) · f78ed7ba
      dependabot[bot] authored
      Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.20.3 to 1.20.4.
      - [Release notes](https://github.com/prometheus/client_golang/releases)
      - [Changelog](https://github.com/prometheus/client_golang/blob/main/CHANGELOG.md)
      - [Commits](https://github.com/prometheus/client_golang/compare/v1.20.3...v1.20.4)
      
      ---
      updated-dependencies:
      - dependency-name: github.com/prometheus/client_golang
        dependency-type: direct:production
        update-type: version-update:semver-patch
      ...
      Signed-off-by: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      f78ed7ba
  2. 17 Sep, 2024 20 commits
  3. 16 Sep, 2024 2 commits
    • mbaxter's avatar
      cannon: Implement thread-safe ll and sc operations (#11906) · 4af1fe6e
      mbaxter authored
      * cannon: Extract RMW op handling from shared logic
      
      * cannon: Add more test cases of LL/SC behavior
      
      * cannon: Cut ll/sc-related logic from common mips code
      
      * cannon: Setup mips helpers to return memory modification info
      
      * cannon: Add new fields to track reserved memory
      
      * cannon: Add a boolean field indicating whether an ll reservation is active
      
      * cannon: Implement ll/sc for MTCannon
      
      * cannon: Add modified sysRead tests for MTCannon
      
      * cannon: Test store operations cleare memory reservations
      
      * cannon: Update SysClockGettime to clear ll memory reservation
      
      * cannon: Fix slither warning - initialize variable
      
      * cannon: Bump MIP2.sol version
      
      * cannon: Run semver, snapshot tasks
      
      * cannon: Cut unused log msg
      
      * cannon: Add new error to MIPS interfaces
      
      * cannon: Cut stale TODO
      4af1fe6e
    • Adrian Sutton's avatar
      op-e2e: Separate helpers for proofs action tests into a new package (#11920) · ac443ef0
      Adrian Sutton authored
      * op-e2e: Move action test helpers for proofs to a separate package.
      
      * op-e2e: Use helpers package under proofs rather than a completely separate package tree for helpers.
      ac443ef0
  4. 15 Sep, 2024 2 commits
  5. 14 Sep, 2024 5 commits
    • Blaine Malone's avatar
      feat: Front OPSM with Proxy and Initialize (#11875) · 6cf35daa
      Blaine Malone authored
      * fix: getting stack underflow error.
      
      * feat: adding proxy infront of OPStackManager.
      
      * fix: PR comments, we're landing on using the initialize function over setRelease.
      
      * fix: rename function.
      
      * fix: nit
      
      * fix: infering proxy admin from superchain config.
      
      * fix: ran command: just pre-pr-no-build
      
      * fix: nits
      
      * fix: using CommonBase in DeployImplementations.s.sol.
      
      * op-chain-ops: pass superchain proxy admin address as input to deployments script
      
      ---------
      Co-authored-by: default avatarMatt Solomon <matt@mattsolomon.dev>
      Co-authored-by: default avatarprotolambda <proto@protolambda.com>
      6cf35daa
    • Axel Kingsley's avatar
      Interop: SuperSystem for E2E Tests (#11850) · 5e14a615
      Axel Kingsley authored
      * op-e2e: interop test setup (work in progress)
      
      * op-e2e: interop test setup
      
      * organization and comment updates
      
      * refactor creation code into WIP system2
      
      * save secrets per L2
      
      * Add SuperSystem Interface ; Add Users and Transactions
      
      * Further Refactoring ; Fix Test
      
      * Add Supervisor
      
      * Add Supervisor Client
      
      * Comment out Proposer
      
      * Add AddL2RPC to Supervisor Client
      
      * Fully link Supervisor and OP Node in E2E Test
      
      * correct RPC call supervisor_checkBlock
      
      * Make EOF acceptable for backend check
      
      * final structure names
      
      * Change unused functions to _ for linter
      
      * fix import order
      
      * Add Github Issue Numbers to TODOs
      
      * tynes comments: add World Resource as configurable
      
      ---------
      Co-authored-by: default avatarprotolambda <proto@protolambda.com>
      5e14a615
    • Maurelian's avatar
      feat: Scaffolding for DeployAuthSystemInput (#11890) · f70248a0
      Maurelian authored
      * feat: Scaffolding for DeployAuthSystemInput
      
      * feat: Scaffolding for DeployAuthSystem Output
      
      * feat: Address feedback and remove comments
      f70248a0
    • mbaxter's avatar
      cannon: Handle preimage bounds checks consistently (#11911) · c8d6dbb4
      mbaxter authored
      * cannon: Handle preimage bounds checks consistently
      
      * cannon: Cleanup stray comment
      c8d6dbb4
    • protolambda's avatar
      interop: interopgen v2 using OPSM (#11702) · 3056348b
      protolambda authored
      * op-chain-ops/interopgen: OPSM powered interop genesis
      
      * ci: make forge scripts available to op-e2e
      
      * op-chain-ops: address interopgen review comments
      3056348b
  6. 13 Sep, 2024 1 commit