Files
smom-dbis-138/scripts/lib/config/regions.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

122 lines
3.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Region code mapping - Single source of truth
# All region codes are standardized to exactly 3 characters
# Usage: source "$SCRIPT_DIR/lib/config/regions.sh"
# Region codes mapping (standardized to exactly 3 characters)
declare -A REGION_CODES=(
["northeurope"]="nor"
["uksouth"]="uks"
["ukwest"]="ukw"
["westeurope"]="wst"
["francecentral"]="frc"
["germanywestcentral"]="gwc"
["switzerlandnorth"]="swn"
["switzerlandwest"]="swt"
["swedencentral"]="swc"
["norwayeast"]="noe"
["polandcentral"]="pol"
["spaincentral"]="spa"
["italynorth"]="ita"
["southindia"]="sin"
["centralindia"]="cin"
["westindia"]="win"
["belgiumcentral"]="bel"
["eastasia"]="eas"
["southeastasia"]="sea"
["japaneast"]="jpe"
["japanwest"]="jpw"
["koreacentral"]="kor"
["koreasouth"]="kos"
["australiaeast"]="aus"
["australiasoutheast"]="ase"
["newzealandnorth"]="nzl"
["indonesiacentral"]="idn"
["malaysiawest"]="mys"
["uaenorth"]="uae"
["qatarcentral"]="qat"
["israelcentral"]="ilc"
["canadacentral"]="can"
["canadaeast"]="cae"
["brazilsouth"]="bra"
["chilecentral"]="chl"
["mexicocentral"]="mex"
["southafricanorth"]="zaf"
["austriaeast"]="aut"
)
# Reverse mapping (code -> region name)
declare -A REGION_CODE_TO_NAME=()
for region_name in "${!REGION_CODES[@]}"; do
REGION_CODE_TO_NAME["${REGION_CODES[$region_name]}"]="$region_name"
done
# Old code mappings (for backward compatibility with existing resources)
declare -A OLD_CODE_TO_REGION=(
["ne"]="northeurope"
["we"]="westeurope"
["fc"]="francecentral"
["sn"]="switzerlandnorth"
["sw"]="switzerlandwest"
["in"]="italynorth"
["pc"]="polandcentral"
["sc"]="spaincentral"
["bc"]="belgiumcentral"
["ae"]="australiaeast" # Note: conflicts with austriaeast (old), prefer australiaeast
["ea"]="eastasia"
["ci"]="centralindia"
["si"]="southindia"
["wi"]="westindia"
["je"]="japaneast"
["jw"]="japanwest"
["kc"]="koreacentral"
["ks"]="koreasouth"
["cc"]="canadacentral"
["ce"]="canadaeast"
["bs"]="brazilsouth"
["mc"]="mexicocentral"
["qc"]="qatarcentral"
["ic"]="indonesiacentral"
["mw"]="malaysiawest"
["nzn"]="newzealandnorth"
["san"]="southafricanorth"
["uan"]="uaenorth"
["chc"]="chilecentral"
)
# Get all regions as array (region_name:code format)
get_all_regions() {
for region_name in "${!REGION_CODES[@]}"; do
echo "${region_name}:${REGION_CODES[$region_name]}"
done | sort
}
# Get region code by region name
get_region_code() {
local region_name="$1"
echo "${REGION_CODES[$region_name]:-}"
}
# Get region name by code (tries new codes first, then old codes)
get_region_name() {
local code="$1"
# Try new codes first
if [ -n "${REGION_CODE_TO_NAME[$code]:-}" ]; then
echo "${REGION_CODE_TO_NAME[$code]}"
return 0
fi
# Try old codes for backward compatibility
if [ -n "${OLD_CODE_TO_REGION[$code]:-}" ]; then
echo "${OLD_CODE_TO_REGION[$code]}"
return 0
fi
return 1
}
# Validate region code (must be 3 characters)
is_valid_region_code() {
local code="$1"
[[ "$code" =~ ^[a-z]{3}$ ]] && [ -n "${REGION_CODE_TO_NAME[$code]:-}" ]
}