Files
smom-dbis-138/scripts/deployment/run-all-deployments-parallel.sh
defiQUG 2a4753eb2d feat: restore operator WIP — PMM JSON sync entrypoint, dotenv RPC trim + secrets, pool env alignment
- Resolve stash: merge load_deployment_env path with secure-secrets and CR/LF RPC strip
- create-pmm-full-mesh-chain138.sh delegates to sync-chain138-pmm-pools-from-json.sh
- env.additions.example: canonical PMM pool defaults (cUSDT/USDT per crosscheck)
- Include Chain138 scripts, official mirror deploy scaffolding, and prior staged changes

Made-with: Cursor
2026-03-27 19:02:30 -07:00

64 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Run all deployment tasks in parallel where possible.
# Respects dependency order. Requires .env with PRIVATE_KEY, RPC URLs.
# Usage: ./scripts/deployment/run-all-deployments-parallel.sh [chain]
# chain: chain138 (default), cronos, mainnet
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
# Load .env via dotenv (RPC CR/LF trim). Fallback: raw source.
if [[ -f "$SCRIPT_DIR/../lib/deployment/dotenv.sh" ]]; then
# shellcheck disable=SC1090
source "$SCRIPT_DIR/../lib/deployment/dotenv.sh"
load_deployment_env --repo-root "${PROJECT_ROOT:-$REPO_ROOT}"
elif [[ -n "${PROJECT_ROOT:-}" && -f "$PROJECT_ROOT/.env" ]]; then
set -a
# shellcheck disable=SC1090
source "$PROJECT_ROOT/.env"
set +a
elif [[ -n "${REPO_ROOT:-}" && -f "$REPO_ROOT/.env" ]]; then
set -a
# shellcheck disable=SC1090
source "$REPO_ROOT/.env"
set +a
fi
CHAIN="${1:-chain138}"
case "$CHAIN" in
chain138) RPC="${RPC_URL_138:-$CHAIN138_RPC_URL}"; CHAIN_ID=138 ;;
cronos) RPC="${CRONOS_RPC_URL:-https://evm.cronos.org}"; CHAIN_ID=25 ;;
mainnet) RPC="${ETHEREUM_MAINNET_RPC}"; CHAIN_ID=1 ;;
*) echo "Unknown chain: $CHAIN"; exit 1 ;;
esac
echo "=== Parallel Deployment: $CHAIN (chain $CHAIN_ID) ==="
echo "RPC: $RPC"
echo ""
# Phase 1: Independent deployments (run in parallel)
echo "Phase 1: Core (parallel)..."
(
forge script script/DeployMulticall.s.sol:DeployMulticall --rpc-url "$RPC" --broadcast &
forge script script/DeployOracle.s.sol:DeployOracle --rpc-url "$RPC" --broadcast &
wait
) 2>&1 | tee /tmp/deploy-phase1.log || true
# Phase 2: Depends on Phase 1 (CREATE2 if needed for deterministic)
echo ""
echo "Phase 2: CREATE2Factory (if not exists)..."
if [ -z "${CREATE2_FACTORY:-}" ] || [ "$CREATE2_FACTORY" = "0x0000000000000000000000000000000000000000" ]; then
forge script script/Deploy.s.sol:Deploy --rpc-url "$RPC" --broadcast 2>&1 || true
fi
# Phase 3: Token/Reserve (require TOKEN_FACTORY etc.)
echo ""
echo "Phase 3: Token systems (require existing deps)..."
# DeployChain138, DeployISO4217WSystem, etc. — run if deps present
echo ""
echo "Deployment batch complete. Check logs for any failures."
echo "Note: Chain 138 may show 'Replacement transaction underpriced' if mempool has stuck tx."