Files
smom-dbis-138/scripts/deployment/start-deployment.sh

73 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# Start Deployment Process
# This script initiates the deployment with proper checks
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
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"
fi
echo "=========================================="
echo " Trustless Bridge Deployment"
echo "=========================================="
echo ""
# Check prerequisites
echo "=== Pre-Deployment Checks ==="
echo ""
# Check Foundry
if ! command -v forge &> /dev/null; then
echo "✗ Error: Foundry/Forge not installed"
echo " Install with: curl -L https://foundry.paradigm.xyz | bash && foundryup"
exit 1
fi
echo "✓ Foundry installed"
# Check required variables
MISSING=0
for var in PRIVATE_KEY ETHEREUM_MAINNET_RPC RPC_URL_138 ETHERSCAN_API_KEY; do
if [ -z "${!var:-}" ] || [ "${!var:-}" == "0x..." ] || [ "${!var:-}" == "your_etherscan_api_key" ]; then
echo "$var: Not set"
MISSING=1
fi
done
if [ $MISSING -eq 1 ]; then
echo ""
echo "Error: Missing required environment variables"
echo "Run: ./scripts/deployment/check-env-requirements.sh"
exit 1
fi
echo "✓ Required variables set"
echo ""
echo "=== Ready to Deploy ==="
echo ""
echo "This will deploy contracts to:"
echo " - Ethereum Mainnet: $ETHEREUM_MAINNET_RPC"
echo " - ChainID 138: $RPC_URL_138"
echo ""
echo "⚠️ WARNING: This will use real ETH for gas fees!"
echo ""
read -p "Continue with deployment? (yes/no): " -r
echo ""
if [[ ! $REPLY =~ ^[Yy][Ee][Ss]$ ]]; then
echo "Deployment cancelled"
exit 0
fi
echo ""
echo "Starting deployment process..."
echo ""
# Run the deployment script
exec ./scripts/deployment/deploy-all-phases.sh