1. 15 Sep, 2024 2 commits
  2. 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
  3. 13 Sep, 2024 17 commits
  4. 12 Sep, 2024 16 commits
    • Matthew Slipper's avatar
      Add op-deployer proof-of-concept (#11804) · e9b80ee1
      Matthew Slipper authored
      This PR adds a proof-of-concept for `op-deployer`, a CLI tool that allows declarative management of live OP Stack chains. This POC supports initializing the declarative chain config (called an "intent") and deploying the Superchain smart contracts using the OP Stack Manager.
      
      An example intent for a Sepolia chain looks like this:
      
      ```toml
      l1ChainID = 11155111
      useFaultProofs = true
      useAltDA = false
      fundDevAccounts = true
      contractArtifactsURL = "file:///Users/matthewslipper/dev/optimism/packages/contracts-bedrock/forge-artifacts"
      
      [superchainRoles]
        proxyAdminOwner = "0xb9cdf788704088a4c0191d045c151fcbe2db14a4"
        protocolVersionsOwner = "0xb910764be39c84d572ff17713c615b5bfd7df650"
        guardian = "0x8c7e4a51acb17719d225bd17598b8a94b46c8767"
      ```
      
      When deployed, it produces a state file that looks like this:
      
      ```json
      {
        "version": 1,
        "appliedIntent": {
          "l1ChainID": 11155111,
          "superchainRoles": {
            "proxyAdminOwner": "0xb9cdf788704088a4c0191d045c151fcbe2db14a4",
            "protocolVersionsOwner": "0xb910764be39c84d572ff17713c615b5bfd7df650",
            "guardian": "0x8c7e4a51acb17719d225bd17598b8a94b46c8767"
          },
          "useFaultProofs": true,
          "useAltDA": false,
          "fundDevAccounts": true,
          "contractArtifactsURL": "file:///Users/matthewslipper/dev/optimism/packages/contracts-bedrock/forge-artifacts",
          "chains": null
        },
        "superchainDeployment": {
          "proxyAdminAddress": "0x54a6088c04a7782e69b5031579a1973a9e3c1a8c",
          "superchainConfigProxyAddress": "0xc969afc4799a9350f9f05b60748bc62f2829b03a",
          "superchainConfigImplAddress": "0x08426b74350e7cba5b52be4909c542d28b6b3962",
          "protocolVersionsProxyAddress": "0x212a023892803c7570eb317c77672c8391bf3dde",
          "protocolVersionsImplAddress": "0x2633ac74edb7ae1f1b5656e042285015f9ee477d"
        }
      }
      ```
      
      To use `op-deployer`, run `op-deployer init --dev --l1-chain-id <chain-id>`. This will initialize a deployment intent using the development keys in the repo. Then, run `op-deployer apply --l1-rpc-url <l1-rpc> --private-key <deployer-private-key>` to apply the deployment.
      
      - The contracts deployment is performed by the local Go/Forge tooling.
      - Upgrades of the contracts (i.e. modifying them after deploying the contracts afresh) is not currently supported. This will be supported in the future.
      - The rest of the pipeline (i.e., deploying L2s and generating genesis files) is not included in this PR to keep it smaller and allow us to get buy-in on the fundamental concepts behind `op-deployer` before further implementation.
      e9b80ee1
    • Matthew Slipper's avatar
    • Sebastian Stammler's avatar
    • Sebastian Stammler's avatar
    • smartcontracts's avatar
      fix: do not delete test data directory (#11869) · 0260adb1
      smartcontracts authored
      Our "just clean" command was deleting the entirety of .testdata
      which gets in several scripts now. We don't actually want to
      delete the entirety of .testdata, we want to delete anything
      inside of it (except for the gitkeep file).
      0260adb1
    • AgusDuha's avatar
      feat: introduce OptimismSuperchainERC20Factory (#11617) · 232c54d4
      AgusDuha authored
      * test: add L2 standard bridge interop unit tests (#13)
      
      * test: add L2 standard bridge interop unit tests
      
      * fix: add tests natspec
      
      * fix: unit tests fixes
      
      * fix: super to legacy tests failing
      
      * fix: mock and expect mint and burn
      
      * fix: add generic factory interface (#14)
      
      * test: add L2 standard bridge interop unit tests
      
      * fix: add tests natspec
      
      * fix: add generic factory interface
      
      * feat: modify OptimismMintableERC20Factory for convert (#17)
      
      * test: add L2 standard bridge interop unit tests
      
      * fix: add tests natspec
      
      * fix: add generic factory interface
      
      * feat: modify OptimismMintableERC20Factory for convert
      
      * fix: use only a public function for create3
      
      * feat: rollback interop factory, modify legacy one
      
      * fix: delete local token return variable
      
      * fix: PR fixes
      
      * feat: add superchain erc20 factory implementation (#23)
      
      * feat: add superchain erc20 factory implementation
      
      * fix: remove createX comments
      
      * test: add superchain erc20 factory tests (#25)
      
      * test: add superchain erc20 factory tests
      
      * test: add erc20 asserts
      
      * test: fix expect emit
      
      * fix: remove comments
      
      * feat: add constructor to superchain ERC20 beacon (#34)
      
      * test: remove factory predeploy etch
      
      ----------
      Co-authored-by: default avatar0xng <ng@defi.sucks>
      Co-authored-by: default avatar0xParticle <particle@defi.sucks>
      Co-authored-by: default avatargotzenx <78360669+gotzenx@users.noreply.github.com>
      
      * fix: set an arbitrary address for superchain erc20 impl
      
      * fix: deploy a proxy for the beacon on genesis (#45)
      
      
      ---------
      Co-authored-by: default avatar0xng <ng@defi.sucks>
      
      * fix: conflicts and imports
      
      * fix: interfaces
      
      * chore: add .testdata
      
      * fix: adding back .testdata to gitignore
      
      * fix: new conflicts from ci improvements
      
      ---------
      Co-authored-by: default avatar0xng <ng@defi.sucks>
      Co-authored-by: default avatar0xParticle <particle@defi.sucks>
      Co-authored-by: default avatargotzenx <78360669+gotzenx@users.noreply.github.com>
      Co-authored-by: default avatarDisco <131301107+0xDiscotech@users.noreply.github.com>
      232c54d4
    • Matthew Slipper's avatar
      Add SendAsync to TxMgr (#11843) · 97aa08a6
      Matthew Slipper authored
      * Add SendAsync to TxMgr
      
      Adds a SendAsync method to TxMgr. I'd like to use this for `op-deployer`, which needs to send multiple transactions in parallel but with predictable nonces. `SendAsync` returns a channel that resolves with the result of each send, but synchronously increases the nonce and prepares the first send prior to returning.
      
      * review updates + tests
      97aa08a6
    • clabby's avatar
      chore(op-program): Turn off `fsync` on pebble KV store (#11863) · d887cfa9
      clabby authored
      * chore: Cleanup proofs actions
      
      * tidy
      
      * lint
      
      * adrian review
      
      * move `RunFaultProofProgram` onto the `L2FaultProofEnv` type
      
      * chore(op-program): Turn off `fsync` on pebble KV store
      d887cfa9
    • wissyLeeei's avatar
      Fix the error usage in cannon (#11368) · e3744430
      wissyLeeei authored
      e3744430
    • Inphi's avatar
      cannon: Fix GC emulation of Go programs (#11704) · 7ff5e6ed
      Inphi authored
      * cannon: Fix GC emulation of Go programs
      
      Improves Linux/MIPS32 emulation for Go programs that utilize the garbage
      collector and goroutine scheduling.
      
      This adds support for the following syscalls:
      
      - getpid - used by the go scheduler
      - clock_gettime - used by the go scheduler and for GC assists and to properly emulate
        time related operations such as `time.Sleep`.
      
      Note on GC assists:
      
      The Go GC relies on `clock_gettime` for GC "assists", whereby a mutator can perform a little bit
      of GC without waiting for the scheduler to do so.
      A monotonic clock (runtime.nanotime) is used to compute the current goroutine's compute budget.
      By modeling a MIPS32 CPU that runs at some clock speed (ex: 10 MHz), we can provide a consistent
      emulation of monotonic time needed by the Go runtime.
      All other clock_gettime flags are handled as unimplemented syscalls.
      
      * fix unsupported syscalls test
      
      * fix some review comments
      
      * address review comments
      
      * update snapshots
      
      * fuzz invalid memory proof
      
      * reduce test runtime
      
      * tweak realtime emulation
      
      * reduce test runtime
      
      * set a high timeout for heavy fuzz tests
      
      * simplify fuzz
      
      * fix heavy tests
      7ff5e6ed
    • Adrian Sutton's avatar
      e9337dbb
    • clabby's avatar
      chore: Cleanup proofs actions (#11858) · 77f72687
      clabby authored
      * chore: Cleanup proofs actions
      
      * tidy
      
      * lint
      
      * adrian review
      
      * move `RunFaultProofProgram` onto the `L2FaultProofEnv` type
      77f72687
    • Ratan Kaliani's avatar
      chore: export process frames (#11864) · 4656d49a
      Ratan Kaliani authored
      4656d49a
    • Adrian Sutton's avatar
    • clabby's avatar
      feat: Helper for dumping `fp-tests` fixtures in `op-program` action tests (#11855) · 320e11db
      clabby authored
      * feat: Helper for dumping `fp-tests` fixtures in `op-program` action tests
      
      * adrian review
      320e11db
    • smartcontracts's avatar
      fix: add extra context to check interfaces script logs (#11861) · bd3955a6
      smartcontracts authored
      Updates the output of the check-interfaces script to be more clear
      about cases when removing items from the EXCLUDE_CONTRACTS list is
      acceptable and how to verify that an item is unnecessary.
      bd3955a6