Files
smom-dbis-138/scripts/CONSOLIDATION_PLAN.md
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

6.1 KiB

Script Consolidation and Modularization Plan

Overview

This document outlines the consolidation and modularization strategy for scripts in this repository. The goal is to reduce duplication, improve maintainability, and create reusable components.

Library Structure (Created)

scripts/lib/ - Common libraries

  • lib/common/colors.sh - Color definitions
  • lib/common/logging.sh - Logging functions
  • lib/common/paths.sh - Path definitions
  • lib/common/utils.sh - Utility functions
  • lib/config/env.sh - Environment loading
  • lib/config/regions.sh - Region code mapping (single source of truth)
  • lib/azure/cli.sh - Azure CLI wrappers
  • lib/init.sh - Initialize all libraries

Script Groups Identified for Consolidation

1. Deployment Scripts - High Duplication

Monitor Scripts (Can be consolidated into 1-2 scripts)

  • monitor-deployment.sh
  • monitor-and-complete.sh
  • monitor-and-fix.sh
  • monitor-continuous.sh
  • monitor-deployment-live.sh
  • live-monitor.sh
  • continuous-monitor.sh
  • monitor-36-region-deployment.sh
  • deployment-dashboard.sh

Action: Create monitor-deployment.sh with modes: --continuous, --live, --complete, --fix

Parallel Deployment Scripts (Can be consolidated)

  • deploy-parallel.sh
  • deploy-all-parallel.sh
  • deploy-besu-parallel.sh
  • deploy-max-parallel.sh
  • deploy-ultra-parallel.sh
  • deploy-besu-max-parallel.sh
  • deploy-monitoring-parallel.sh
  • configure-kubernetes-parallel.sh
  • configure-kubernetes-max-parallel.sh
  • deploy-contracts-parallel.sh
  • verify-all-clusters-parallel.sh
  • verify-all-max-parallel.sh

Action: Create generic deploy-parallel.sh with resource type parameter

Phase Deployment Scripts

  • deploy-infrastructure-phase1.sh
  • deploy-infrastructure-phase2.sh
  • deploy-infrastructure-phase3.sh
  • deploy-infrastructure-phase4.sh
  • deploy-infrastructure-all-phases.sh
  • deploy-all-phases.sh
  • complete-all-phases-parallel.sh
  • execute-all-phases.sh
  • wait-and-complete-all.sh

Action: Create deploy-phase.sh with phase number parameter

Complete/All Scripts

  • complete-all-deployment.sh
  • complete-all-next-steps.sh
  • complete-all-tasks.sh
  • complete-infrastructure-deployment.sh
  • wait-and-run-all-next-steps.sh
  • run-all-next-steps.sh
  • wait-and-run-next-steps.sh
  • run-next-steps-with-available.sh

Action: Consolidate into complete-deployment.sh with step options

2. Cost Calculation Scripts - High Duplication

  • calculate-accurate-costs.sh
  • calculate-accurate-deployment-costs.sh
  • calculate-conservative-costs.sh
  • calculate-contract-deployment-costs.sh
  • calculate-gas-fees.sh
  • update-all-cost-estimates.sh
  • update-cost-estimates.sh
  • finalize-cost-estimates.sh
  • get-accurate-gas-price.sh
  • get-conservative-gas-price.sh
  • get-mainnet-gas-prices.sh
  • get-real-gas-prices.sh
  • test-etherscan-gas-api.sh

Action: Create lib/deployment/costs.sh library + single calculate-costs.sh script

3. Verification Scripts

  • verify-chain138-complete.sh
  • verify-chain138-full-deployment.sh
  • verify-chain138-services.sh
  • verify-deployment.sh
  • verify-mainnet-deployments.sh
  • verify-on-chain-deployments.sh
  • verify-all-clusters-parallel.sh
  • verify-36-region-clusters.sh
  • verify-all-max-parallel.sh
  • verify-contract-etherscan.sh

Action: Create verify-deployment.sh with resource type and mode options

4. Contract Deployment Scripts

  • deploy-weth.sh
  • deploy-weth10.sh
  • deploy-weth-with-ccip.sh
  • deploy-ccip-weth9-bridge.sh
  • deploy-ccip-weth10-bridge.sh
  • deploy-multicall.sh
  • deploy-multisig.sh
  • deploy-ccip-router.sh

Action: Create generic deploy-contract.sh with contract name parameter

5. Check/Status Scripts

  • check-deployment-status.sh
  • check-infrastructure-status.sh
  • check-mainnet-deployment-status.sh
  • check-terraform-status.sh
  • check-all-deployment-sources.sh
  • check-existing-deployments.sh
  • check-mainnet-balances.sh
  • check-wallet-balances.sh
  • check-and-proceed.sh
  • check-rpc-status.sh

Action: Create check-status.sh with resource type parameter

6. Import Scripts

  • import-existing-clusters.sh
  • import-all-resources.sh

Action: Create import-resources.sh with resource type parameter (these are already similar)

Migration Strategy

Phase 1: Library Adoption (In Progress)

  1. Create common library structure
  2. Create shared utilities
  3. 🔄 Update key scripts to use libraries (example created)

Phase 2: High-Impact Consolidations

  1. Consolidate monitor scripts
  2. Consolidate parallel deployment scripts
  3. Consolidate cost calculation scripts

Phase 3: Medium-Impact Consolidations

  1. Consolidate verification scripts
  2. Consolidate check/status scripts
  3. Consolidate contract deployment scripts

Phase 4: Cleanup

  1. Remove deprecated scripts
  2. Update documentation
  3. Update Makefile targets

Script Template

All new scripts should follow this template:

#!/bin/bash

# Script description
# Usage: script-name.sh [OPTIONS]

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../lib/init.sh"

# Parse arguments
while [[ $# -gt 0 ]]; do
    case $1 in
        --option)
            OPTION="$2"
            shift 2
            ;;
        *)
            log_error "Unknown option: $1"
            exit 1
            ;;
    esac
done

# Main script logic
ensure_azure_cli || exit 1
log_section "Script Title"

Benefits

  1. Reduced Duplication: ~50% reduction in script count
  2. Single Source of Truth: Region codes, colors, utilities defined once
  3. Consistency: All scripts use same logging, error handling
  4. Maintainability: Update once, applies everywhere
  5. Easier Testing: Reusable functions can be unit tested
  6. Better Documentation: Clear library structure

Progress Tracking

  • Create library structure
  • Create common utilities
  • Create example refactored script
  • Migrate high-priority scripts
  • Consolidate monitor scripts
  • Consolidate deployment scripts
  • Consolidate cost scripts
  • Update documentation
  • Remove deprecated scripts