Files
smom-dbis-138/scripts/deployment/check-deployment-status.sh
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

159 lines
5.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Check Deployment Status
# This script checks the current deployment status and identifies the last completed step
set -e
# Script directory
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/init.sh"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
cd "$PROJECT_ROOT"
log_info "=== Deployment Status Check ==="
# Check .env file
if [ ! -f .env ]; then
log_error "❌ .env file not found"
echo "Please create .env file with required variables"
exit 1
fi
log_success "✅ .env file exists"
# Load environment variables
source .env
# Check RPC endpoint
if [ -z "$RPC_URL" ]; then
log_error "❌ RPC_URL not set in .env"
echo "Please set RPC_URL in .env file"
else
log_success "✅ RPC_URL configured: ${RPC_URL}"
# Test RPC endpoint
log_warn "Testing RPC endpoint..."
if curl -s -X POST "$RPC_URL" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' > /dev/null 2>&1; then
log_success "✅ RPC endpoint is accessible"
# Get chain ID
CHAIN_ID=$(curl -s -X POST "$RPC_URL" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' | grep -oE '"result":"0x[0-9a-fA-F]+"' | cut -d'"' -f4 | xargs -I {} echo "ibase=16; {}" | bc 2>/dev/null || echo "unknown")
log_success "✅ Chain ID: ${CHAIN_ID}"
# Get latest block
LATEST_BLOCK=$(curl -s -X POST "$RPC_URL" -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' | grep -oE '"result":"0x[0-9a-fA-F]+"' | cut -d'"' -f4 | xargs -I {} echo "ibase=16; {}" | bc 2>/dev/null || echo "unknown")
log_success "✅ Latest Block: ${LATEST_BLOCK}"
else
log_error "❌ RPC endpoint is not accessible"
echo "Please ensure the blockchain is deployed and RPC endpoint is accessible"
fi
fi
# Check PRIVATE_KEY
if [ -z "$PRIVATE_KEY" ]; then
log_error "❌ PRIVATE_KEY not set in .env"
echo "Please set PRIVATE_KEY in .env file"
else
log_success "✅ PRIVATE_KEY configured"
fi
# Check contract addresses
log_info "=== Contract Deployment Status ==="
# CCIP Router
if [ -z "$CCIP_ROUTER" ] || [ "$CCIP_ROUTER" = "0x0000000000000000000000000000000000000000" ]; then
log_warn "⏳ CCIP_ROUTER: Not deployed"
else
log_success "✅ CCIP_ROUTER: ${CCIP_ROUTER}"
# Verify contract exists
if [ -n "$RPC_URL" ]; then
CODE=$(curl -s -X POST "$RPC_URL" -H "Content-Type: application/json" -d "{\"jsonrpc\":\"2.0\",\"method\":\"eth_getCode\",\"params\":[\"${CCIP_ROUTER}\",\"latest\"],\"id\":1}" | grep -oE '"result":"0x[0-9a-fA-F]*"' | cut -d'"' -f4)
if [ -n "$CODE" ] && [ "$CODE" != "0x" ]; then
log_success " Contract verified on chain"
else
log_error " Contract not found on chain"
fi
fi
fi
# CCIP Fee Token
if [ -z "$CCIP_FEE_TOKEN" ] || [ "$CCIP_FEE_TOKEN" = "0x0000000000000000000000000000000000000000" ]; then
log_warn "⏳ CCIP_FEE_TOKEN: Not configured (using native token)"
else
log_success "✅ CCIP_FEE_TOKEN: ${CCIP_FEE_TOKEN}"
fi
# WETH9
if [ -z "$WETH9_ADDRESS" ] || [ "$WETH9_ADDRESS" = "0x0000000000000000000000000000000000000000" ]; then
log_warn "⏳ WETH9_ADDRESS: Not deployed"
else
log_success "✅ WETH9_ADDRESS: ${WETH9_ADDRESS}"
fi
# WETH10
if [ -z "$WETH10_ADDRESS" ] || [ "$WETH10_ADDRESS" = "0x0000000000000000000000000000000000000000" ]; then
log_warn "⏳ WETH10_ADDRESS: Not deployed"
else
log_success "✅ WETH10_ADDRESS: ${WETH10_ADDRESS}"
fi
# CCIPWETH9Bridge
if [ -z "$CCIPWETH9BRIDGE_ADDRESS" ] || [ "$CCIPWETH9BRIDGE_ADDRESS" = "0x0000000000000000000000000000000000000000" ]; then
log_warn "⏳ CCIPWETH9BRIDGE_ADDRESS: Not deployed"
else
log_success "✅ CCIPWETH9BRIDGE_ADDRESS: ${CCIPWETH9BRIDGE_ADDRESS}"
fi
# CCIPWETH10Bridge
if [ -z "$CCIPWETH10BRIDGE_ADDRESS" ] || [ "$CCIPWETH10BRIDGE_ADDRESS" = "0x0000000000000000000000000000000000000000" ]; then
log_warn "⏳ CCIPWETH10BRIDGE_ADDRESS: Not deployed"
else
log_success "✅ CCIPWETH10BRIDGE_ADDRESS: ${CCIPWETH10BRIDGE_ADDRESS}"
fi
# Oracle Aggregator
if [ -z "$ORACLE_AGGREGATOR_ADDRESS" ] || [ "$ORACLE_AGGREGATOR_ADDRESS" = "0x0000000000000000000000000000000000000000" ]; then
log_warn "⏳ ORACLE_AGGREGATOR_ADDRESS: Not deployed"
else
log_success "✅ ORACLE_AGGREGATOR_ADDRESS: ${ORACLE_AGGREGATOR_ADDRESS}"
fi
# Check Terraform status
log_info "=== Infrastructure Status ==="
if [ -d "terraform" ] && [ -f "terraform/terraform.tfstate" ]; then
log_success "✅ Terraform state file exists"
cd terraform
if terraform show > /dev/null 2>&1; then
log_success "✅ Terraform state is valid"
# Check if AKS cluster exists
if terraform output -json aks_cluster_name > /dev/null 2>&1; then
AKS_CLUSTER=$(terraform output -raw aks_cluster_name 2>/dev/null || echo "")
AKS_RG=$(terraform output -raw aks_resource_group 2>/dev/null || echo "")
if [ -n "$AKS_CLUSTER" ] && [ -n "$AKS_RG" ]; then
log_success "✅ AKS Cluster: ${AKS_CLUSTER} in ${AKS_RG}"
fi
fi
else
log_warn "⏳ Terraform state exists but may be empty"
fi
cd ..
else
log_warn "⏳ Terraform state not found (infrastructure not deployed)"
fi
# Summary
log_info "=== Summary ==="
echo "Ready for contract deployment:"
if [ -n "$RPC_URL" ] && [ -n "$PRIVATE_KEY" ]; then
log_success "✅ Prerequisites met"
echo "Run: ./scripts/deployment/deploy-contracts-ordered.sh"
else
log_error "❌ Prerequisites not met"
echo "Please configure RPC_URL and PRIVATE_KEY in .env"
fi