Skip to content

minor updates for l1 contract deployments #810

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Jul 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions pages/builders/chain-operators/deploy/smart-contracts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@ import { Callout } from 'nextra/components'
# OP Stack Smart Contract Deployment

The following guide shows you how to deploy the OP Stack L1 smart contracts.
The primary development branch is `develop`. It contains the most up-to-date
software that remains backwards compatible with the latest experimental
network deployments. **Changes to the smart contracts are generally not considered backwards compatible.**
The primary development branch is `develop`, however **you should only deploy
official contract releases**. You can visit the see the [smart contract overview](/stack/smart-contracts#official-releases)
for the official release versions. Changes to the smart contracts are
generally not considered backwards compatible.

<Callout>
Standard OP Stack chains should use governance approved and audited versions
Expand All @@ -21,12 +22,15 @@ network deployments. **Changes to the smart contracts are generally not consider
## Deployment Configuration

Deploying your OP Stack contracts requires creating a deployment configuration
JSON file. For the full set of options, you can see the [rollup configuration page](/builders/chain-operators/configuration/rollup).
JSON file. You will create a new deployment configuration file in the following
monorepo subdirectory: [packages/contracts-bedrock/deploy-config](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deploy-config)
For the full set of deployment configuration options and their meanings, you
can see the [rollup deployment configuration page](/builders/chain-operators/configuration/rollup).

## Deployment Script

The smart contracts are deployed using [foundry](https://github.com/foundry-rs)
and you can find the script's source code in the monorepo at
and you can find the script's source code in the monorepo at
[packages/contracts-bedrock/scripts/deploy/Deploy.s.sol](https://github.com/ethereum-optimism/optimism/blob/develop/packages/contracts-bedrock/scripts/deploy/Deploy.s.sol).

### State Diff
Expand Down Expand Up @@ -69,7 +73,7 @@ DEPLOY_CONFIG_PATH=<PATH_TO_MY_DEPLOY_CONFIG> \
```

### Deploying a single contract
All functions for deploying a single contract are public, meaning that

All functions for deploying a single contract are public, meaning that
the `--sig` argument to forge script can be used to target the deployment of a
single contract.
Expand Down
14 changes: 14 additions & 0 deletions pages/builders/chain-operators/management/best-practices.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,20 @@ and `op-geth` releases can be found [here](https://github.com/ethereum-optimism/
version. Since we cannot left-pad with zeroes, the geth major version is not
padded.

### Keep Deployment Artifacts

After deploying your contracts on Ethereum, you should keep a record of all the
deployment artifacts:

* Contract release tag and commit hash
* Contract deployment configuration file. This is the JSON file you created
and passed to the deployment script when you deployed the contracts.
* Contract deployment directory with smart contract artifacts. This is
created in [packages/contracts-bedrock/deployments](https://github.com/ethereum-optimism/optimism/tree/develop/packages/contracts-bedrock/deployments)
* The rollup configuration file that you generated after the contract
deployment
* The genesis file that you generated after the contract deployment

### Incremental Upgrade Rollouts

When upgrading your nodes, take a staggered approach. This means deploying the
Expand Down
Loading