Prathamesh Musale
002d334b98
Part of [Update Optimism stack to use Bedrock release](https://www.notion.so/Update-Optimism-stack-to-use-Bedrock-release-e44a490247724a6095a9fbc19fba3bcd) Requires [Add an option to allow unprotected txs in geth](cerc-io/fixturenet-eth-stacks#8) - Port over existing `fixturenet-optimism` stack components from SO - Use external [fixturenet-eth](https://git.vdb.to/cerc-io/fixturenet-eth-stacks/src/branch/main/stack-orchestrator/stacks/fixturenet-eth) stack for L1 - Use latest Optimism releases ([optimism@v1.7.4](https://github.com/ethereum-optimism/optimism/releases/tag/v1.7.4) and [op-geth@v1.101311.0](https://github.com/ethereum-optimism/op-geth/releases/tag/v1.101311.0)) - Update Optimism L1 contracts deployment script - Update L2 genesis generation - Remove override on L1 script to allow unprotected txs and unlock an account - `fixturenet-eth` stack itself now has an option to allow unprotected txs; the raw tx bytes for create2 proxy contract deployment from Optimism docs is not `EIP155` compatible - Use pk of funded account for txs instead of unlocking it - Add updated instructions - Use upstream [foundry](https://github.com/foundry-rs/foundry/pkgs/container/foundry/209507574?tag=nightly-267e14fab654d9ce955dce64c0eb09f01c8538ee) as base image for `cerc/optimism-contracts` container - Support for arm64/Apple Silicon to be handled in a follow-on PR Reviewed-on: #1 Co-authored-by: Prathamesh Musale <prathamesh.musale0@gmail.com> Co-committed-by: Prathamesh Musale <prathamesh.musale0@gmail.com>
48 lines
1.4 KiB
Bash
Executable File
48 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
if [ -n "$CERC_SCRIPT_DEBUG" ]; then
|
|
set -x
|
|
fi
|
|
|
|
CERC_L1_CHAIN_ID="${CERC_L1_CHAIN_ID:-${DEFAULT_CERC_L1_CHAIN_ID}}"
|
|
CERC_L1_RPC="${CERC_L1_RPC:-${DEFAULT_CERC_L1_RPC}}"
|
|
DEPLOYMENT_CONTEXT="$CERC_L1_CHAIN_ID"
|
|
|
|
deploy_config_file="/l2-config/$DEPLOYMENT_CONTEXT.json"
|
|
l1_deployment_file="/l1-deployment/$DEPLOYMENT_CONTEXT/.deploy"
|
|
l2_allocs_file="/l2-config/allocs-l2.json"
|
|
genesis_outfile="/l2-config/genesis.json"
|
|
rollup_outfile="/l2-config/rollup.json"
|
|
|
|
# Generate L2 genesis (if not already done)
|
|
if [ ! -f "$genesis_outfile" ] || [ ! -f "$rollup_outfile" ]; then
|
|
op-node genesis l2 \
|
|
--deploy-config $deploy_config_file \
|
|
--l1-deployments $l1_deployment_file \
|
|
--l2-allocs $l2_allocs_file \
|
|
--outfile.l2 $genesis_outfile \
|
|
--outfile.rollup $rollup_outfile \
|
|
--l1-rpc $CERC_L1_RPC
|
|
fi
|
|
|
|
# Start op-node
|
|
SEQ_KEY=$(cat /l2-accounts/accounts.json | jq -r .SeqKey)
|
|
jwt_file=/l2-config/l2-jwt.txt
|
|
L2_AUTH="http://op-geth:8551"
|
|
RPC_KIND=any # this can optionally be set to a preset for common node providers like Infura, Alchemy, etc.
|
|
|
|
op-node \
|
|
--l2=$L2_AUTH \
|
|
--l2.jwt-secret=$jwt_file \
|
|
--sequencer.enabled \
|
|
--sequencer.l1-confs=5 \
|
|
--verifier.l1-confs=4 \
|
|
--rollup.config=$rollup_outfile \
|
|
--rpc.addr=0.0.0.0 \
|
|
--rpc.port=8547 \
|
|
--p2p.disable \
|
|
--rpc.enable-admin \
|
|
--p2p.sequencer.key="${SEQ_KEY#0x}" \
|
|
--l1=$CERC_L1_RPC \
|
|
--l1.rpckind=$RPC_KIND
|