1. 03 May, 2024 11 commits
    • Adrian Sutton's avatar
      ci: Move sdk-next-test to run on develop only (#10390) · f49f67d2
      Adrian Sutton authored
      It requires env vars that aren't set for external PRs.
      f49f67d2
    • Mark Tyneway's avatar
      op-chain-ops: allocs validation (#10388) · 080d5f62
      Mark Tyneway authored
      Skip check for codesize on gov token address if governance is
      not enabled.
      080d5f62
    • Maurelian's avatar
      Deploy Security Council Safe and Liveness Extensions (#10120) · 0c7d8a94
      Maurelian authored
      * ctb: Add deploySecurityCouncilSafe
      
      * ctb: Allow _callViaSafe to use an arbitrary safe address
      
      * ctb: Refactor Security Council deploy
      
      Adds console.log calls
      
      Uses the new _callViaSafe to reduce a lot of boilerplate
      
      * ctb: Add livenessModuleInterval to deploy config
      
      * ctb: Add livenessModuleThresholdPercentage to deploy config
      
      * ctb: Add LivenessModuleMinOwners to deploy config
      
      * ctb: Add council safe config and satisfy liveness module constructor
      
      * ctb: Make liveness deploy funcs public
      
      * Add DeployOwnership.sol
      
      * Use deploySafe(name) to deploy SC and Foundation
      
      * ctb: just use addr_ on all named returns
      
      * ctb: Fix create2 collision in deploySafe
      
      * ctb: Add example foundation config
      
      * ctb: Add example council config and set it up
      
      * ctb: Remove unused imports
      
      * ctb: Address feedback on deploy ownership
      
      * Add override for deploySafe with custom owners and threshold
      
      ctb: Use the deploySafe override where applicable
      
      * ctb: cleanup keepDeployer logic
      
      * fixup! Add override for deploySafe with custom owners and threshold
      
      * snapshots
      0c7d8a94
    • Adrian Sutton's avatar
      op-e2e: Fix flaky fault proof tests (#10389) · 8a548ae9
      Adrian Sutton authored
      Custom config options were being applied before the defaults, causing them to be overwritten.
      In particular this meant there was a small sequencer window and safe head progressed rapidly.
      8a548ae9
    • Matt Solomon's avatar
      3c308f34
    • protolambda's avatar
      91a6fca3
    • Mark Tyneway's avatar
      contracts-bedrock: delete dead code (#10359) · 40421e86
      Mark Tyneway authored
      * contracts-bedrock: simplify L1 state dump
      
      Removes the need to specify the L1 chainid via CLI.
      Follows similar patterns to L2 genesis generation that
      were done recently.
      
      Follow up PRs can potentially use the same sort of deployer pattern
      as in https://github.com/ethereum-optimism/optimism/pull/10343
      for when doing the L1 genesis dump to remove the need to specify the
      private key.
      
      * contracts-bedrock: explicit deploy config
      
      Remove the concept of implicit deploy config for explicit deploy config.
      This removes confusing implicit behavior as well as makes it much
      more straight forward for deploying multiple superchain targets
      to the same L1. This is a breaking change but the error message
      makes it very obvious and the docs are being updated in a way
      that should include this information.
      
      * contracts-bedrock: fix possible error
      
      * config: cleanup
      
      * deploy-config: fixup
      
      * contracts-bedrock: delete name function
      
      The `name()` function existed due to legacy
      purposes when dealing with hardhat artifacts
      and no longer is necessary. This commit removes
      it in favor of a simpler approach of just using
      the chainid instead of the name. The files that
      are written are not committed into the repo.
      
      * contracts: delete dead code
      
      * lint: fix
      
      * kontrol: fixup
      
      * contracts-bedrock: prevent error
      
      * kontrol: fixup
      
      * kontrol: fix script
      
      * gitignore: update
      
      * devnet: simplify
      
      * Update packages/contracts-bedrock/scripts/Config.sol
      Co-authored-by: default avatarMatt Solomon <matt@mattsolomon.dev>
      
      ---------
      Co-authored-by: default avatarMatt Solomon <matt@mattsolomon.dev>
      40421e86
    • Matt Solomon's avatar
      Revert "feat: custom gas token (#10143)" (#10384) · 2b1c99b3
      Matt Solomon authored
      This reverts commit a6074a7d.
      2b1c99b3
    • Axel Kingsley's avatar
      geth: update to v1.13.15 (#10353) · 2838df83
      Axel Kingsley authored
      * point at op-geth v1.13.13
      
      * update triedb import path
      
      * update deprecated core structs to types package
      
      * Update op-geth with tx pool fix.
      
      * point at v1.13.14
      
      * point at geth v1.13.15
      
      * fix NewStackTrie call
      
      * remove pin
      
      * use op-geth v1.101315.0-rc.1
      
      ---------
      Co-authored-by: default avatarAdrian Sutton <adrian@oplabs.co>
      2838df83
    • Mark Tyneway's avatar
      feat: custom gas token (#10143) · a6074a7d
      Mark Tyneway authored
      * contracts-bedrock: custom gas token L1 contracts
      
      Implement the L1 contract diff of the custom gas token spec
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      
      * contracts-bedrock: custom gas token L2 contracts
      
      Implement the L2 contract diff of the custom gas token spec
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      
      * contracts-bedrock: custom gas token contracts
      
      Libraries and universal contracts in the custom gas token spec
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      
      * contracts-bedrock: custom gas token scripts
      
      Implement the scripts for the custom gas token spec
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      
      * contracts-bedrock: custom gas token tests
      
      Implement tests for the custom gas token spec
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      
      * op-bindings: update with custom gas token
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      
      * op-chain-ops: fixup tests
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      
      * contracts-bedrock: snapshots
      
      Update snapshots
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      
      * cleanup: get tests passing
      
      * contracts-bedrock: cleanup tests
      
      * contracts-bedrock: cleanup custom gas token
      
      * op-bindings: regenerate
      
      * codesize: fix
      
      * contracts-bedrock: custom gas token cleanup
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      
      * build: fix
      
      * custom-gas-token: fix build
      
      * custom-gas-token: cleanup, final spec nits
      
      * gas-snapshot: fix
      
      * contracts-bedrock: cleanup
      
      * contracts-bedrock: semver lock
      
      * invariant-docs: fixup
      
      * storage-layout: address
      
      * bindings: remove preview
      
      * bindings: add back bindingspreview
      
      * weth: remove weth9
      
      Migrate to WETH based on weth98
      
      * contracts-bedrock: cleanup
      
      * custom-gas-token: more cleanup
      
      Fix abi
      
      * contracts-bedrock: test case
      
      * custom-gas-token: cleanup, tests
      
      * lint: fix
      
      * custom-gas-token: address review comments
      
      * snapshots: regenerate
      
      * lint: fix
      
      * contracts-bedrock: clean up semantics of cgt
      
      Custom gas token semantics are strengthened and
      cleaned up to ensure invariants in spec are held
      true.
      
      * snapshots: regenerate
      
      * snapshots: gas snapshot
      
      * semver-lock: regenerate
      
      * comments: address
      
      * semver: calculate
      
      * ctb: revert in test
      
      * tests: fix flake
      
      * portal: better comment
      
      * test: fixup
      
      * lint: fix
      
      * snapshot: gas
      
      ---------
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      a6074a7d
    • Mark Tyneway's avatar
      contracts-bedrock: small logging cleanup (#10370) · e21d8fd4
      Mark Tyneway authored
      Cleans up the logs in the L2 genesis generation script.
      Very small fix just to clean things up. Also moves to
      using `prank` of `start/stop` `prank` to catch hanging
      calls to `prank` as if a prank is active you cannot call
      `prank` but you can call `startPrank`. This ensures that
      we know if a prank is active or not instead of one being
      silently active.
      e21d8fd4
  2. 02 May, 2024 6 commits
  3. 01 May, 2024 9 commits
    • Maurelian's avatar
      ctb: Enable setting custom names in deploySafe() (#10364) · 55d8a35e
      Maurelian authored
      * ctb: Enable setting custom names in deploySafe()
      
      * Fix formatting
      
      * ctb: fix spacing on deploySafe log
      55d8a35e
    • Mark Tyneway's avatar
      contracts-bedrock: L1Block interop (#10344) · 322bf55a
      Mark Tyneway authored
      * contracts-bedrock: L1Block interop
      
      Ports the `L1Block` contract from the `feat/interop` branch to
      develop using a pattern where we can extend the contracts.
      This sort of pattern may not always work but is an experiment
      in reducing feature branches.
      
      * contracts-bedrock: reorder params for func in L1BlockInterop
      
      * contracts-bedrock: add missing test for L1Block
      
      * contracts-bedrock: refactor tests for L1BlockInterop
      
      * contracts-bedrock: add L1BlockInterop to differential-testing.go
      
      * contracts-bedrock: add test for testDiff_encodeSetL1BlockValuesInterop_succeeds in Encoding tests
      
      * op-node: add L1BlockInterop to derive l1_block_info
      
      * op-node: add FuzzL1InfoInteropRoundTrip
      
      * op-node: add tests for L1Block to l1_block_info
      
      * contracts-bedrock: update snapshots for L1Block, L1BlockInterop
      
      * contracts-bedrock: update semver-lock for L1Block, L1BlockInterop
      
      * Revert "op-node: add tests for L1Block to l1_block_info"
      
      This reverts commit d2e599e43b774cf9a5de474db1f5aa744885ce91.
      
      * Revert "op-node: add FuzzL1InfoInteropRoundTrip"
      
      This reverts commit e14007c0fb7dd723bcd66235696da19e378fa974.
      
      * Revert "op-node: add L1BlockInterop to derive l1_block_info"
      
      This reverts commit 4bb279bb4a504227ca05de38818bfbddbdae3c98.
      
      * Revert "contracts-bedrock: add test for testDiff_encodeSetL1BlockValuesInterop_succeeds in Encoding tests"
      
      This reverts commit 12f9a07cd71d504b1ea57a753d95b8e6439caa57.
      
      * Revert "contracts-bedrock: add L1BlockInterop to differential-testing.go"
      
      This reverts commit 209669de69d35b456494602cb64ffc435689602d.
      
      * contracts-bedrock: drop redundant test in tests for L1BlockInterop
      
      * contracts-bedrock: fix order of function args in L1Block
      
      * contracts-bedrock: update semver-lock for L1Block
      
      ---------
      Co-authored-by: default avatarDiego <105765223+0xfuturistic@users.noreply.github.com>
      322bf55a
    • Zach Howard's avatar
      3204cb08
    • Zach Howard's avatar
      Adds op-conductor to tag-tool (#10361) · d9685fc0
      Zach Howard authored
      d9685fc0
    • Sebastian Stammler's avatar
      e87e5ef2
    • Carter Carlson's avatar
    • Danyal Prout's avatar
      794a333b
    • Mark Tyneway's avatar
      contracts-bedrock: deployer as msg.sender (#10343) · b952dc06
      Mark Tyneway authored
      * contracts-bedrock: deployer as msg.sender
      
      Use a special deployer account for the execution of the L2 genesis
      script. This should remove the need to set the sender as part
      of the devnet.
      
      * devnet: simplify
      
      * contracts-bedrock: fix deployer
      
      * contracts-bedrock: fix build
      
      * build: fix
      
      * contracts-bedrock: more generic prank
      
      * contracts-bedrock: attempt fixup
      
      * contracts-bedrock: set deployer nonce to 0
      
      * contracts-bedrock: prank in genesis
      
      * contracts-bedrock: fix build
      
      * contracts-bedrock: fixup
      
      * contracts-bedrock: fixup
      
      * contracts-bedrock: fixup
      b952dc06
    • clabby's avatar
      feat: Add extension event to `OptimismPortal2` (#10350) · 3f9de382
      clabby authored
      * feat: Add extension event to `OptimismPortal2`
      
      Adds an extension event to the `OptimismPortal2` that allows for easier
      indexing of proven withdrawals by off-chain monitoring services.
      Previously, in order to look up a proof for a withdrawal when syncing an
      indexer, archival state access was required.
      
      * semver lock
      3f9de382
  4. 30 Apr, 2024 6 commits
    • Hoa Nguyen's avatar
      chore(op-service): reduce allocations (#10331) · fff6563c
      Hoa Nguyen authored
      * refactor: improve perf
      
      * improve perf
      
      * rollback
      
      * rollback
      
      ---------
      Co-authored-by: default avatarKhanh Hoa <khanhoait.bka@gmail.com>
      fff6563c
    • Diego's avatar
      feat/L2ToL2CrossDomainMessenger: create (#10297) · 472322e8
      Diego authored
      * contracts-bedrock: create CrossL2Inbox
      
      * contracts-bedrock: create ICrossL2Inbox
      
      * contracts-bedrock: create tests for CrossL2Inbox
      
      * contracts-bedrock: update CrossL2Inbox sol version to ^0.8.24
      
      * contracts-bedrock: rename test to .t.sol ext
      
      * contracts-bedrock: make snapshots
      
      * contracts-bedrock: update semver-lock
      
      * contracts-bedrock: drop snapshots for CrossL2InboxTest
      
      * contracts-bedrock: update license for tests CrossL2Inbox
      
      * contracts-bedrock: add CrossL2Inbox to predeploys
      
      * contracts-bedrock: pin sol version of CrossL2Inbox to 0.8.25
      
      * contracts-bedrock: update semver-lock for CrossL2Inbox
      
      * contracts-bedrock: add CROSS_L2_INBOX to predeploys
      
      * contracts-bedrock: make slots internal in CrossL2Inbox
      
      * contracts-bedrock: add custom errors to CrossL2Inbox
      
      * contracts-bedrock: refactor tests for CrossL2Inbox
      
      * contracts-bedrock: use TransientContext in CrossL2Inbox
      
      * contracts-bedrock: fix L2Genesis test
      
      * contracts-bedrock: minor tweaks to documentation in tests for CrossL2Inbox
      
      * contracts-bedrock: relabel BLOCKNUMBER_SLOT to BLOCK_NUMBER_SLOT in CrossL2Inbox
      
      * contracts-bedrock: update snapshots for CrossL2Inbox
      
      * contracts-bedrock: update semver-lock for CrossL2Inbox
      
      * contracts-bedrock: improve documentation for CrossL2Inbox
      
      * contracts-bedrock: update semver-lock for CrossL2Inbox
      
      * contracts-bedrock: fix tests for CrossL2Inbox
      
      * contracts-bedrock: update modifier in CrossL2Inbox
      
      * contracts-bedrock: drop arguments in custom errors for CrossL2Inbox
      
      * contracts-bedrock: update snapshots for CrossL2Inbox
      
      * contracts-bedrock: update semver-lock for CrossL2Inbox
      
      * contracts-bedrock: fix tests for CrossL2Inbox
      
      * contracts-bedrock: remove redundant lines in CrossL2Inbox
      
      * contracts-bedrock: add tests for CrossL2Inbox
      
      * contracts-bedrock: update semver-lock for CrossL2Inbox
      
      * contracts-bedrock: minor improvements to tests for CrossL2Inbox
      
      * contracts-bedrock: remove ENTERED_SLOT in CrossL2Inbox
      
      * contracts-bedrock: remove CrossL2Inbox from isSupportedPredeploy
      
      * contracts-bedrock: update semver-lock for CrossL2Inbox
      
      * contracts-bedrock: update CrossL2Inbox with eip3074 specs
      
      * contracts-bedrock: update tests for CrossL2Inbox with eip3074 specs
      
      * contracts-bedrock: improve doc in tests for CrossL2Inbox
      
      * contracts-bedrock: update snapshots for CrossL2Inbox
      
      * contracts-bedrock: update semver-lock for CrossL2Inbox
      
      * contracts-bedrock: create L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: create IL2ToL2CrossDomainMessenger
      
      * contracts-bedrock: create tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: make snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: add semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: add L2ToL2CrossDomainMessenger to predeploys
      
      * contracts-bedrock: make slots in L2ToL2CrossDomainMessenger internal
      
      * contracts-bedrock: add reentrancy protection to L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: pin sol version of L2ToL2CrossDomainMessenger to 0.8.25
      
      * contracts-bedrock: add custom errors to L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: add missing documentation in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: reorder imports for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: rename errors for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: reorder vars in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: refactor tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: add L2_TO_L2_CROSS_DOMAIN_MESSENGER to predeploys
      
      * contracts-bedrock: fix tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: make snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: reorder functions in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: mock calls to target contract for L2ToL2CrossDomainMessenger tests
      
      * contracts-bedrock: add additional checks to sendMessage in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: minor tweaks to tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: add TransientContext to L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: add reentrancy test for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: improve tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: improve documentation of tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: fix L2Genesis test
      
      * contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: improve documentation for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: fix test for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: fix tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update modifier in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: remove legacy line in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: add additional tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: add assumePayable in tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: fix test for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: remove args from custom errors in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: remove ENTERED_SLOT in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: remove L2ToL2CrossDomainMessenger from isSupportedPredeploy
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update L2ToL2CrossDomainMessenger with eip3074 specs
      
      * contracts-bedrock: add tests for 3074 changes on L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: add missing checks for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: make SentMessage anonymous in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: fix title for TransientContext
      
      * contracts-bedrock: use messageVersion instead of MESSAGE_VERSION in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: reintroduce ReentrancyGuard to L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: remove TransientContext from L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: fix tests for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: fix tstore in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: improve logic in L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: improve logic for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update snapshots for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: update semver-lock for L2ToL2CrossDomainMessenger
      
      * contracts-bedrock: simplify vars in tests for L2ToL2CrossDomainMessenger
      472322e8
    • Mark Tyneway's avatar
      genesis: fix permit2 panic (#10332) · acd8cf8a
      Mark Tyneway authored
      * genesis: fix permit2 panic
      
      Its possible that permit2 isn't in the genesis allocs even
      though it should be, it removes the flexibility to define the
      genesis spec arbitrarily if we implicitly enforce it being present.
      We need a better way to check that the chain id during genesis
      allocation matches the chain id in the genesis spec.
      An attempt at this is done in https://github.com/ethereum-optimism/optimism/pull/10326.
      
      Fixes https://github.com/ethereum-optimism/optimism/issues/10309
      
      * op-chain-ops: better check
      
      * cleanup: fix build
      
      * build: fix
      acd8cf8a
    • Mark Tyneway's avatar
      fpac: reserve spacer slot in OptimismPortal2 (#10279) · aa1dc04e
      Mark Tyneway authored
      * fpac: reserve spacer slot in OptimismPortal2
      
      Allows for merging of `OptimismPortal` that supports
      custom gas token and also `OptimismPortal2` that has
      a modified storage layout. The `OptimismPortal` has
      spacers to account for the storage layout changes in
      `OptimismPortal2` and it adds its new storage slot
      at the location that the spacer is added in.
      
      This faciliates the ability to merge the portal
      codebases in the future.
      
      * tests: fixup
      
      * semver-lock: update
      aa1dc04e
    • Francis Li's avatar
      344d9192
    • Francis Li's avatar
      a7ff2303
  5. 29 Apr, 2024 8 commits