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.
This commit is contained in:
221
scripts/CONSOLIDATION_PLAN.md
Normal file
221
scripts/CONSOLIDATION_PLAN.md
Normal file
@@ -0,0 +1,221 @@
|
||||
# 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:
|
||||
|
||||
```bash
|
||||
#!/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
|
||||
|
||||
- [x] Create library structure
|
||||
- [x] Create common utilities
|
||||
- [x] Create example refactored script
|
||||
- [ ] Migrate high-priority scripts
|
||||
- [ ] Consolidate monitor scripts
|
||||
- [ ] Consolidate deployment scripts
|
||||
- [ ] Consolidate cost scripts
|
||||
- [ ] Update documentation
|
||||
- [ ] Remove deprecated scripts
|
||||
|
||||
Reference in New Issue
Block a user