Commit 974ee6ff authored by Sebastian Stammler's avatar Sebastian Stammler Committed by GitHub

ctb: Fix Holocene upgrade script (#13015)

* ctb: Fix Holocene upgrade script

* improve README

* pass deploy-config as parameter to just run, other improvements

* remove commented-out variables
parent 131320e4
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
# ↓ Required ↓ # # ↓ Required ↓ #
############################################## ##############################################
# NOTE: The deploy config must be provided as a first argument to `just run`!
# The network to deploy the contracts to. # The network to deploy the contracts to.
# Must be one of 'mainnet', 'sepolia' # Must be one of 'mainnet', 'sepolia'
NETWORK= NETWORK=
...@@ -15,12 +17,6 @@ ETH_RPC_URL= ...@@ -15,12 +17,6 @@ ETH_RPC_URL=
# Private key used to deploy the new contracts for this upgrade # Private key used to deploy the new contracts for this upgrade
PRIVATE_KEY= PRIVATE_KEY=
# Path to the deploy config JSON file
DEPLOY_CONFIG_PATH=
# Path to the folder where output artifacts will be stored
OUTPUT_FOLDER_PATH=
# Address of deployed `PreimageOracle` contract. # Address of deployed `PreimageOracle` contract.
PREIMAGE_ORACLE_ADDR= PREIMAGE_ORACLE_ADDR=
......
...@@ -37,5 +37,20 @@ cp .env.example .env && vim .env ...@@ -37,5 +37,20 @@ cp .env.example .env && vim .env
# - Deploy the new smart contract implementations. # - Deploy the new smart contract implementations.
# - Optionally, generate a safe upgrade bundle. # - Optionally, generate a safe upgrade bundle.
# - Optionally, generate a `superchain-ops` upgrade task. # - Optionally, generate a `superchain-ops` upgrade task.
just run #
# The first argument must be the absolute path to your deploy-config.json.
# You can optionally specify an output folder path different from the default `output/` as a
# second argument to `just run`, also as an absolute path.
just run $(realpath path/to/deploy-config.json)
``` ```
Note that in order to build the Docker image, you have to allow Docker to use at least 16GB of
memory, or the Solidity compilations may fail. Docker's default is only 8GB.
The `deploy-config.json` that you use for your chain must set the latest `faultGameAbsolutePrestate`
value, not the one at deployment. There's currently one available that includes the Sepolia
Superchain Holocene activations for Base, OP, Mode and Zora:
`0x03925193e3e89f87835bbdf3a813f60b2aa818a36bbe71cd5d8fd7e79f5e8afe`
If you want to make local modifications to the scripts in `scripts/`, you need to build the Docker
image again with `just build-image` before running `just run`.
...@@ -4,16 +4,19 @@ default: ...@@ -4,16 +4,19 @@ default:
# Run the deployment / upgrade generation image. If the image is not present locally, # Run the deployment / upgrade generation image. If the image is not present locally,
# it will be built. # it will be built.
run *args='': run deploy-config-path output-folder-path="$(pwd)/output/" *args='':
#!/bin/bash #!/bin/bash
if [ ! "$(docker images -q op-holocene-upgrade:local 2> /dev/null)" ]; then if [ ! "$(docker images -q op-holocene-upgrade:local 2> /dev/null)" ]; then
just build-image just build-image
fi fi
mkdir -p {{output-folder-path}}
# Run the deployment. # Run the deployment.
docker run \ docker run -it \
--rm \ --rm \
-v $OUTPUT_FOLDER_PATH/:/output \ -v {{output-folder-path}}:/output \
-v {{deploy-config-path}}:/app/packages/contracts-bedrock/deploy-config/deploy-config.json \
--env-file=.env \ --env-file=.env \
op-holocene-upgrade:local {{args}} op-holocene-upgrade:local {{args}}
...@@ -22,5 +25,5 @@ build-image: ...@@ -22,5 +25,5 @@ build-image:
docker build \ docker build \
-t op-holocene-upgrade:local \ -t op-holocene-upgrade:local \
-f upgrade.dockerfile \ -f upgrade.dockerfile \
--build-arg REV=op-contracts/v1.8.0-rc.1 \ --build-arg REV=op-contracts/v1.8.0-rc.2 \
. .
...@@ -37,8 +37,7 @@ export NETWORK="${NETWORK:?NETWORK must be set}" ...@@ -37,8 +37,7 @@ export NETWORK="${NETWORK:?NETWORK must be set}"
export ETHERSCAN_API_KEY=${ETHERSCAN_API_KEY:?ETHERSCAN_API_KEY must be set} export ETHERSCAN_API_KEY=${ETHERSCAN_API_KEY:?ETHERSCAN_API_KEY must be set}
export ETH_RPC_URL=${ETH_RPC_URL:?ETH_RPC_URL must be set} export ETH_RPC_URL=${ETH_RPC_URL:?ETH_RPC_URL must be set}
export PRIVATE_KEY=${PRIVATE_KEY:?PRIVATE_KEY must be set} export PRIVATE_KEY=${PRIVATE_KEY:?PRIVATE_KEY must be set}
export BASE_DEPLOY_CONFIG_PATH=${DEPLOY_CONFIG_PATH:?DEPLOY_CONFIG_PATH must be set} export OUTPUT_FOLDER_PATH="/output"
export OUTPUT_FOLDER_PATH=${OUTPUT_FOLDER_PATH:?OUTPUT_FOLDER_PATH must be set}
export SYSTEM_CONFIG_IMPL_ADDR=${SYSTEM_CONFIG_IMPL_ADDR:-$(fetch_standard_address "$NETWORK" "$RELEASE" "system_config")} export SYSTEM_CONFIG_IMPL_ADDR=${SYSTEM_CONFIG_IMPL_ADDR:-$(fetch_standard_address "$NETWORK" "$RELEASE" "system_config")}
export MIPS_IMPL_ADDR=${MIPS_IMPL_ADDR:-$(fetch_standard_address "$NETWORK" "$RELEASE" "mips")} export MIPS_IMPL_ADDR=${MIPS_IMPL_ADDR:-$(fetch_standard_address "$NETWORK" "$RELEASE" "mips")}
export PREIMAGE_ORACLE_ADDR=${PREIMAGE_ORACLE_ADDR:?PREIMAGE_ORACLE_ADDR must be set} export PREIMAGE_ORACLE_ADDR=${PREIMAGE_ORACLE_ADDR:?PREIMAGE_ORACLE_ADDR must be set}
...@@ -53,8 +52,8 @@ export USE_PERMISSIONLESS_FAULT_PROOFS=${USE_PERMISSIONLESS_FAULT_PROOFS:?USE_PE ...@@ -53,8 +52,8 @@ export USE_PERMISSIONLESS_FAULT_PROOFS=${USE_PERMISSIONLESS_FAULT_PROOFS:?USE_PE
# Sanity check FP configuration. # Sanity check FP configuration.
if [[ $USE_PERMISSIONLESS_FAULT_PROOFS == true && $USE_FAULT_PROOFS == false ]]; then if [[ $USE_PERMISSIONLESS_FAULT_PROOFS == true && $USE_FAULT_PROOFS == false ]]; then
echo "Error: USE_PERMISSIONLESS_FAULT_PROOFS cannot be true if USE_FAULT_PROOFS is false" echo "Error: USE_PERMISSIONLESS_FAULT_PROOFS cannot be true if USE_FAULT_PROOFS is false"
exit 1 exit 1
fi fi
# Make the output folder, if it doesn't exist # Make the output folder, if it doesn't exist
...@@ -63,26 +62,28 @@ mkdir -p "$OUTPUT_FOLDER_PATH" ...@@ -63,26 +62,28 @@ mkdir -p "$OUTPUT_FOLDER_PATH"
# Find the contracts-bedrock directory # Find the contracts-bedrock directory
CONTRACTS_BEDROCK_DIR=$(pwd) CONTRACTS_BEDROCK_DIR=$(pwd)
while [[ "$CONTRACTS_BEDROCK_DIR" != "/" && "${CONTRACTS_BEDROCK_DIR##*/}" != "contracts-bedrock" ]]; do while [[ "$CONTRACTS_BEDROCK_DIR" != "/" && "${CONTRACTS_BEDROCK_DIR##*/}" != "contracts-bedrock" ]]; do
CONTRACTS_BEDROCK_DIR=$(dirname "$CONTRACTS_BEDROCK_DIR") CONTRACTS_BEDROCK_DIR=$(dirname "$CONTRACTS_BEDROCK_DIR")
done done
# Error out if we couldn't find it for some reason # Error out if we couldn't find it for some reason
if [[ "$CONTRACTS_BEDROCK_DIR" == "/" ]]; then if [[ "$CONTRACTS_BEDROCK_DIR" == "/" ]]; then
echo "Error: 'contracts-bedrock' directory not found" echo "Error: 'contracts-bedrock' directory not found"
exit 1 exit 1
fi fi
# Set file paths from command-line arguments # The deploy config is mounted via Docker to this file
export DEPLOY_CONFIG_PATH="$CONTRACTS_BEDROCK_DIR/deploy-config/deploy-config.json" export DEPLOY_CONFIG_PATH="$CONTRACTS_BEDROCK_DIR/deploy-config/deploy-config.json"
# Copy the files into the paths so that the script can actually access it # Run deploy.sh if deployments.json does not exist
cp "$BASE_DEPLOY_CONFIG_PATH" "$DEPLOY_CONFIG_PATH"
# Run deploy.sh
DEPLOY_LOG_PATH="$OUTPUT_FOLDER_PATH/deploy.log" DEPLOY_LOG_PATH="$OUTPUT_FOLDER_PATH/deploy.log"
if ! "$SCRIPT_DIR/deploy.sh" | tee "$DEPLOY_LOG_PATH"; then DEPLOYMENTS_JSON_PATH="$OUTPUT_FOLDER_PATH/deployments.json"
if [[ ! -f "$DEPLOYMENTS_JSON_PATH" ]]; then
if ! "$SCRIPT_DIR/deploy.sh" | tee "$DEPLOY_LOG_PATH"; then
echo "Error: deploy.sh failed" echo "Error: deploy.sh failed"
exit 1 exit 1
fi
else
prompt "Skipping deployment as $DEPLOYMENTS_JSON_PATH already exists. Continue?"
fi fi
# Extract the addresses from the deployment logs # Extract the addresses from the deployment logs
...@@ -102,8 +103,7 @@ reqenv "FDG_IMPL" ...@@ -102,8 +103,7 @@ reqenv "FDG_IMPL"
reqenv "PDG_IMPL" reqenv "PDG_IMPL"
# Generate deployments.json with extracted addresses # Generate deployments.json with extracted addresses
DEPLOYMENTS_JSON_PATH="$OUTPUT_FOLDER_PATH/deployments.json" cat <<EOF >"$DEPLOYMENTS_JSON_PATH"
cat << EOF > "$DEPLOYMENTS_JSON_PATH"
{ {
"SystemConfig": "$SYSTEM_CONFIG_IMPL", "SystemConfig": "$SYSTEM_CONFIG_IMPL",
"MIPS": "$MIPS_IMPL", "MIPS": "$MIPS_IMPL",
...@@ -121,16 +121,16 @@ prompt "Generate safe upgrade bundle for SystemConfig?" ...@@ -121,16 +121,16 @@ prompt "Generate safe upgrade bundle for SystemConfig?"
# Generate the system config upgrade bundle # Generate the system config upgrade bundle
if ! "$SCRIPT_DIR/sys-cfg-bundle.sh"; then if ! "$SCRIPT_DIR/sys-cfg-bundle.sh"; then
echo "Error: sys-cfg-bundle.sh failed" echo "Error: sys-cfg-bundle.sh failed"
exit 1 exit 1
fi fi
prompt "Generate superchain-ops upgrade task for SystemConfig upgrade bundle?" prompt "Generate superchain-ops upgrade task for SystemConfig upgrade bundle?"
# Generate the superchain-ops upgrade task # Generate the superchain-ops upgrade task
if ! "$SCRIPT_DIR/sc-ops-sys-cfg.sh"; then if ! "$SCRIPT_DIR/sc-ops-sys-cfg.sh"; then
echo "Error: sc-ops-sys-cfg.sh failed" echo "Error: sc-ops-sys-cfg.sh failed"
exit 1 exit 1
fi fi
if [[ $USE_FAULT_PROOFS == true ]]; then if [[ $USE_FAULT_PROOFS == true ]]; then
...@@ -138,15 +138,15 @@ if [[ $USE_FAULT_PROOFS == true ]]; then ...@@ -138,15 +138,15 @@ if [[ $USE_FAULT_PROOFS == true ]]; then
# Generate the proofs contracts' upgrade bundle # Generate the proofs contracts' upgrade bundle
if ! "$SCRIPT_DIR/proofs-bundle.sh"; then if ! "$SCRIPT_DIR/proofs-bundle.sh"; then
echo "Error: proofs-bundle.sh failed" echo "Error: proofs-bundle.sh failed"
exit 1 exit 1
fi fi
prompt "Generate superchain-ops upgrade task for proofs contracts upgrade bundle?" prompt "Generate superchain-ops upgrade task for proofs contracts upgrade bundle?"
# Generate the superchain-ops upgrade task # Generate the superchain-ops upgrade task
if ! "$SCRIPT_DIR/sc-ops-proofs.sh"; then if ! "$SCRIPT_DIR/sc-ops-proofs.sh"; then
echo "Error: sc-ops-proofs.sh failed" echo "Error: sc-ops-proofs.sh failed"
exit 1 exit 1
fi fi
fi fi
...@@ -31,24 +31,24 @@ TX_1_PAYLOAD=$(cast calldata "setImplementation(uint32,address)" 1 "$PDG_IMPL") ...@@ -31,24 +31,24 @@ TX_1_PAYLOAD=$(cast calldata "setImplementation(uint32,address)" 1 "$PDG_IMPL")
TX_2_PAYLOAD=$(cast calldata "setImplementation(uint32,address)" 0 "$FDG_IMPL") TX_2_PAYLOAD=$(cast calldata "setImplementation(uint32,address)" 0 "$FDG_IMPL")
# Replace variables # Replace variables
sed -i '' "s/\$L1_CHAIN_ID/$L1_CHAIN_ID/g" "$BUNDLE_PATH" sed -i "s/\$L1_CHAIN_ID/$L1_CHAIN_ID/g" "$BUNDLE_PATH"
sed -i '' "s/\$PDG_IMPL/$PDG_IMPL/g" "$BUNDLE_PATH" sed -i "s/\$PDG_IMPL/$PDG_IMPL/g" "$BUNDLE_PATH"
sed -i '' "s/\$TX_1_PAYLOAD/$TX_1_PAYLOAD/g" "$BUNDLE_PATH" sed -i "s/\$TX_1_PAYLOAD/$TX_1_PAYLOAD/g" "$BUNDLE_PATH"
sed -i '' "s/\$TX_2_PAYLOAD/$TX_2_PAYLOAD/g" "$BUNDLE_PATH" sed -i "s/\$TX_2_PAYLOAD/$TX_2_PAYLOAD/g" "$BUNDLE_PATH"
# Conditionally, if the FDG is being deployed, append the bundle extension # Conditionally, if the FDG is being deployed, append the bundle extension
if [ "$USE_PERMISSIONLESS_FAULT_PROOFS" == true ]; then if [ "$USE_PERMISSIONLESS_FAULT_PROOFS" == true ]; then
echo "✨ USE_PERMISSIONLESS_FAULT_PROOFS=true | Adding FDG deployment to upgrade bundle." echo "✨ USE_PERMISSIONLESS_FAULT_PROOFS=true | Adding FDG deployment to upgrade bundle."
jq --argjson fdg_extension "$(cat ./templates/fdg_bundle_extension.json)" \ jq --argjson fdg_extension "$(cat ./templates/fdg_bundle_extension.json)" \
'.transactions += [$fdg_extension]' \ '.transactions += [$fdg_extension]' \
"$BUNDLE_PATH" > "$BUNDLE_PATH.tmp" "$BUNDLE_PATH" >"$BUNDLE_PATH.tmp"
mv "$BUNDLE_PATH.tmp" "$BUNDLE_PATH" mv "$BUNDLE_PATH.tmp" "$BUNDLE_PATH"
# Replace variables # Replace variables
sed -i '' "s/\$FDG_IMPL/$FDG_IMPL/g" "$BUNDLE_PATH" sed -i "s/\$FDG_IMPL/$FDG_IMPL/g" "$BUNDLE_PATH"
sed -i '' "s/\$TX_2_PAYLOAD/$TX_2_PAYLOAD/g" "$BUNDLE_PATH" sed -i "s/\$TX_2_PAYLOAD/$TX_2_PAYLOAD/g" "$BUNDLE_PATH"
fi fi
sed -i '' "s/\$DISPUTE_GAME_FACTORY_PROXY_ADDR/$DISPUTE_GAME_FACTORY_PROXY_ADDR/g" "$BUNDLE_PATH" sed -i "s/\$DISPUTE_GAME_FACTORY_PROXY_ADDR/$DISPUTE_GAME_FACTORY_PROXY_ADDR/g" "$BUNDLE_PATH"
echo "✨ Generated proof contracts upgrade bundle at \"$BUNDLE_PATH\"" echo "✨ Generated proof contracts upgrade bundle at \"$BUNDLE_PATH\""
...@@ -27,9 +27,9 @@ cp -R "$SCRIPT_DIR/../templates/proofs-sc-ops-task/." "$TASK_DIR/" ...@@ -27,9 +27,9 @@ cp -R "$SCRIPT_DIR/../templates/proofs-sc-ops-task/." "$TASK_DIR/"
msup render -i "$TASK_DIR/input.json" -o "$TASK_DIR/OVERVIEW.md" msup render -i "$TASK_DIR/input.json" -o "$TASK_DIR/OVERVIEW.md"
# Generate the README # Generate the README
sed -i '' "s/\$MIPS_IMPL/$MIPS_IMPL/g" "$TASK_DIR/README.md" sed -i "s/\$MIPS_IMPL/$MIPS_IMPL/g" "$TASK_DIR/README.md"
sed -i '' "s/\$FDG_IMPL/$FDG_IMPL/g" "$TASK_DIR/README.md" sed -i "s/\$FDG_IMPL/$FDG_IMPL/g" "$TASK_DIR/README.md"
sed -i '' "s/\$PDG_IMPL/$PDG_IMPL/g" "$TASK_DIR/README.md" sed -i "s/\$PDG_IMPL/$PDG_IMPL/g" "$TASK_DIR/README.md"
# Generate the validation doc # Generate the validation doc
OLD_FDG=$(cast call "$DISPUTE_GAME_FACTORY_PROXY_ADDR" "gameImpls(uint32)" 0) OLD_FDG=$(cast call "$DISPUTE_GAME_FACTORY_PROXY_ADDR" "gameImpls(uint32)" 0)
...@@ -40,8 +40,8 @@ PADDED_OLD_PDG=$(cast 2u "$OLD_PDG") ...@@ -40,8 +40,8 @@ PADDED_OLD_PDG=$(cast 2u "$OLD_PDG")
PADDED_FDG_IMPL=$(cast 2u "$FDG_IMPL") PADDED_FDG_IMPL=$(cast 2u "$FDG_IMPL")
PADDED_PDG_IMPL=$(cast 2u "$PDG_IMPL") PADDED_PDG_IMPL=$(cast 2u "$PDG_IMPL")
sed -i '' "s/\$DISPUTE_GAME_FACTORY_PROXY_ADDR/$DISPUTE_GAME_FACTORY_PROXY_ADDR/g" "$TASK_DIR/VALIDATION.md" sed -i "s/\$DISPUTE_GAME_FACTORY_PROXY_ADDR/$DISPUTE_GAME_FACTORY_PROXY_ADDR/g" "$TASK_DIR/VALIDATION.md"
sed -i '' "s/\$OLD_FDG/$PADDED_OLD_FDG/g" "$TASK_DIR/VALIDATION.md" sed -i "s/\$OLD_FDG/$PADDED_OLD_FDG/g" "$TASK_DIR/VALIDATION.md"
sed -i '' "s/\$FDG_IMPL/$PADDED_FDG_IMPL/g" "$TASK_DIR/VALIDATION.md" sed -i "s/\$FDG_IMPL/$PADDED_FDG_IMPL/g" "$TASK_DIR/VALIDATION.md"
sed -i '' "s/\$PDG_IMPL/$PADDED_PDG_IMPL/g" "$TASK_DIR/VALIDATION.md" sed -i "s/\$PDG_IMPL/$PADDED_PDG_IMPL/g" "$TASK_DIR/VALIDATION.md"
sed -i '' "s/\$OLD_PDG/$PADDED_OLD_PDG/g" "$TASK_DIR/VALIDATION.md" sed -i "s/\$OLD_PDG/$PADDED_OLD_PDG/g" "$TASK_DIR/VALIDATION.md"
...@@ -25,7 +25,7 @@ cp -R "$SCRIPT_DIR/../templates/sys-cfg-sc-ops-task/." "$TASK_DIR/" ...@@ -25,7 +25,7 @@ cp -R "$SCRIPT_DIR/../templates/sys-cfg-sc-ops-task/." "$TASK_DIR/"
msup render -i "$TASK_DIR/input.json" -o "$TASK_DIR/OVERVIEW.md" msup render -i "$TASK_DIR/input.json" -o "$TASK_DIR/OVERVIEW.md"
# Generate the README # Generate the README
sed -i '' "s/\$SYSTEM_CONFIG_IMPL/$SYSTEM_CONFIG_IMPL/g" "$TASK_DIR/README.md" sed -i "s/\$SYSTEM_CONFIG_IMPL/$SYSTEM_CONFIG_IMPL/g" "$TASK_DIR/README.md"
# Generate the validation doc # Generate the validation doc
OLD_SYS_CFG=$(cast impl "$SYSTEM_CONFIG_PROXY_ADDR") OLD_SYS_CFG=$(cast impl "$SYSTEM_CONFIG_PROXY_ADDR")
...@@ -33,6 +33,6 @@ OLD_SYS_CFG=$(cast impl "$SYSTEM_CONFIG_PROXY_ADDR") ...@@ -33,6 +33,6 @@ OLD_SYS_CFG=$(cast impl "$SYSTEM_CONFIG_PROXY_ADDR")
PADDED_OLD_SYS_CFG=$(cast 2u "$OLD_SYS_CFG") PADDED_OLD_SYS_CFG=$(cast 2u "$OLD_SYS_CFG")
PADDED_SYS_CFG=$(cast 2u "$SYSTEM_CONFIG_IMPL") PADDED_SYS_CFG=$(cast 2u "$SYSTEM_CONFIG_IMPL")
sed -i '' "s/\$SYSTEM_CONFIG_PROXY_ADDR/$SYSTEM_CONFIG_PROXY_ADDR/g" "$TASK_DIR/VALIDATION.md" sed -i "s/\$SYSTEM_CONFIG_PROXY_ADDR/$SYSTEM_CONFIG_PROXY_ADDR/g" "$TASK_DIR/VALIDATION.md"
sed -i '' "s/\$OLD_SYS_CFG/$PADDED_OLD_SYS_CFG/g" "$TASK_DIR/VALIDATION.md" sed -i "s/\$OLD_SYS_CFG/$PADDED_OLD_SYS_CFG/g" "$TASK_DIR/VALIDATION.md"
sed -i '' "s/\$SYSTEM_CONFIG_IMPL/$PADDED_SYS_CFG/g" "$TASK_DIR/VALIDATION.md" sed -i "s/\$SYSTEM_CONFIG_IMPL/$PADDED_SYS_CFG/g" "$TASK_DIR/VALIDATION.md"
...@@ -26,10 +26,10 @@ cp ./templates/sys_cfg_upgrade_bundle_template.json "$BUNDLE_PATH" ...@@ -26,10 +26,10 @@ cp ./templates/sys_cfg_upgrade_bundle_template.json "$BUNDLE_PATH"
TX_1_PAYLOAD=$(cast calldata "upgrade(address,address)" "$SYSTEM_CONFIG_PROXY_ADDR" "$SYSTEM_CONFIG_IMPL") TX_1_PAYLOAD=$(cast calldata "upgrade(address,address)" "$SYSTEM_CONFIG_PROXY_ADDR" "$SYSTEM_CONFIG_IMPL")
# Replace variables # Replace variables
sed -i '' "s/\$L1_CHAIN_ID/$L1_CHAIN_ID/g" "$BUNDLE_PATH" sed -i "s/\$L1_CHAIN_ID/$L1_CHAIN_ID/g" "$BUNDLE_PATH"
sed -i '' "s/\$PROXY_ADMIN_ADDR/$PROXY_ADMIN_ADDR/g" "$BUNDLE_PATH" sed -i "s/\$PROXY_ADMIN_ADDR/$PROXY_ADMIN_ADDR/g" "$BUNDLE_PATH"
sed -i '' "s/\$SYSTEM_CONFIG_PROXY_ADDR/$SYSTEM_CONFIG_PROXY_ADDR/g" "$BUNDLE_PATH" sed -i "s/\$SYSTEM_CONFIG_PROXY_ADDR/$SYSTEM_CONFIG_PROXY_ADDR/g" "$BUNDLE_PATH"
sed -i '' "s/\$SYSTEM_CONFIG_IMPL/$SYSTEM_CONFIG_IMPL/g" "$BUNDLE_PATH" sed -i "s/\$SYSTEM_CONFIG_IMPL/$SYSTEM_CONFIG_IMPL/g" "$BUNDLE_PATH"
sed -i '' "s/\$TX_1_PAYLOAD/$TX_1_PAYLOAD/g" "$BUNDLE_PATH" sed -i "s/\$TX_1_PAYLOAD/$TX_1_PAYLOAD/g" "$BUNDLE_PATH"
echo "✨ Generated SystemConfig upgrade bundle at \"$BUNDLE_PATH\"" echo "✨ Generated SystemConfig upgrade bundle at \"$BUNDLE_PATH\""
...@@ -58,5 +58,8 @@ RUN forge script ./scripts/upgrades/holocene/DeployUpgrade.s.sol || true ...@@ -58,5 +58,8 @@ RUN forge script ./scripts/upgrades/holocene/DeployUpgrade.s.sol || true
# Set the working directory to where upgrade.sh is located # Set the working directory to where upgrade.sh is located
WORKDIR /app/packages/contracts-bedrock/scripts/upgrades/holocene WORKDIR /app/packages/contracts-bedrock/scripts/upgrades/holocene
# allows to use modified local scripts
COPY scripts/*.sh ./scripts/
# Set the entrypoint to the main.sh script # Set the entrypoint to the main.sh script
ENTRYPOINT ["./scripts/main.sh"] ENTRYPOINT ["./scripts/main.sh"]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment