github ethereum-optimism/optimism op-deployer/v0.5.0

latest releases: op-deployer/v0.4.7, op-deployer/v0.5.1, op-dispute-mon/v1.4.2-rc.6...
one day ago

Overview

op-deployer/v0.5.0 supports deploying, upgrading to, and producing calldata for op-contracts/v4.5.0 (u17). This release supports all of the following:

op-deployer bootstrap [options] // deploy superchain|implementations contracts at op-contracts/v4.1.0
op-deployer apply [options] // deploy new OPChain contracts at op-contracts/4.1.0
op-deployer upgrade v2.0.0 // upgrade from op-contracts/v1.8.0 -> op-contracts/v2.0.0
op-deployer upgrade v3.0.0 // upgrade from op-contracts/v2.0.0 -> op-contracts/v3.0.0
op-deployer upgrade v4.0.0 // upgrade from op-contracts/v3.0.0 -> op-contracts/v4.0.0 (not recommended, should upgrade straight to op-contracts/v4.1.0 instead)
op-deployer upgrade v4.1.0 // upgrade from op-contracts/v3.0.0|v4.0.0 -> op-contracts/v4.1.0
op-deployer upgrade v5.0.0 // upgrade from op-contracts/v4.1.0 -> op-contracts/v5.0.0

All other commands are only guaranteed to work with op-contracts/v5.0.0. So you must upgrade to op-contracts/v5.0.0 before doing the following:

op-deployer manage [options]
op-deployer verify [options]

Details

Additional changes outside of op-contracts/v5.0.0 support include:

  • enables jovian at genesis by default
  • embeds artifacts in a zstd format reducing the overall filesize
  • updates SuperchainConfigImpl address
  • restores contract verification functionality by leveraging forge, currently etherscan and blockscout are supported

How to use verification

We highly recommend you use the embedded artifacts as these are guaranteed to work with the version of op-deployer you are using. We leverage forge to do contract verification, this means you should take the following into account:

  • file:// locators need to target the entire directory instead of forge-artifacts
  • http:// locators need to target a compressed tgz or tzst file containing the entire directory
  • Etherscan requires an API key

You can run the verification whilst deploying the contracts by using the following flags (example):

op-deployer [...] --verify --verifier-type <etherscan|blockscout> --verifier-api-key <etherscan key>

Alternatively, you can verify the contracts using a state.json like this:

op-deployer verify --l1-rpc-url <L1_RPC_URL --input-file <state.json> --verifier-type <etherscan|blockscout> --verifier-api-key <etherscan key> --artifacts-locator embedded

Don't miss a new optimism release

NewReleases is sending notifications on new releases.