- Resolve stash: merge load_deployment_env path with secure-secrets and CR/LF RPC strip - create-pmm-full-mesh-chain138.sh delegates to sync-chain138-pmm-pools-from-json.sh - env.additions.example: canonical PMM pool defaults (cUSDT/USDT per crosscheck) - Include Chain138 scripts, official mirror deploy scaffolding, and prior staged changes Made-with: Cursor
107 lines
3.4 KiB
Bash
Executable File
107 lines
3.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Setup script for StablecoinReserveVault
|
|
# Configures and funds the reserve vault with official tokens
|
|
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
# Colors
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
BLUE='\033[0;34m'
|
|
NC='\033[0m'
|
|
|
|
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
|
|
log_success() { echo -e "${GREEN}[✓]${NC} $1"; }
|
|
log_warn() { echo -e "${YELLOW}[⚠]${NC} $1"; }
|
|
log_error() { echo -e "${RED}[✗]${NC} $1"; }
|
|
|
|
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"
|
|
elif [ -f "$PROJECT_ROOT/.env" ]; then
|
|
set -a && source "$PROJECT_ROOT/.env" && set +a
|
|
fi
|
|
|
|
RPC_URL="${RPC_URL:-${ETHEREUM_MAINNET_RPC:-${ETH_MAINNET_RPC_URL:-}}}"
|
|
RPC_URL="${RPC_URL%$'\r'}"
|
|
RPC_URL="${RPC_URL%$'\n'}"
|
|
VAULT_ADDRESS="${STABLECOIN_RESERVE_VAULT_ADDRESS:-}"
|
|
OFFICIAL_USDT="${OFFICIAL_USDT_ADDRESS:-0xdAC17F958D2ee523a2206206994597C13D831ec7}"
|
|
OFFICIAL_USDC="${OFFICIAL_USDC_ADDRESS:-0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48}"
|
|
|
|
if [ -z "$RPC_URL" ]; then
|
|
log_error "RPC_URL not set. Please set ETH_MAINNET_RPC_URL or RPC_URL"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$VAULT_ADDRESS" ]; then
|
|
log_error "STABLECOIN_RESERVE_VAULT_ADDRESS not set"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$PRIVATE_KEY" ]; then
|
|
log_error "PRIVATE_KEY not set"
|
|
exit 1
|
|
fi
|
|
|
|
log_info "========================================="
|
|
log_info "StablecoinReserveVault Setup"
|
|
log_info "========================================="
|
|
log_info ""
|
|
log_info "Vault Address: $VAULT_ADDRESS"
|
|
log_info "Official USDT: $OFFICIAL_USDT"
|
|
log_info "Official USDC: $OFFICIAL_USDC"
|
|
log_info "RPC URL: $RPC_URL"
|
|
log_info ""
|
|
|
|
# Check vault status
|
|
log_info "Checking vault status..."
|
|
USDT_RESERVE=$(cast call "$VAULT_ADDRESS" "usdtReserveBalance()" --rpc-url "$RPC_URL" 2>/dev/null | cast --to-dec 2>/dev/null || echo "0")
|
|
USDC_RESERVE=$(cast call "$VAULT_ADDRESS" "usdcReserveBalance()" --rpc-url "$RPC_URL" 2>/dev/null | cast --to-dec 2>/dev/null || echo "0")
|
|
PAUSED=$(cast call "$VAULT_ADDRESS" "paused()" --rpc-url "$RPC_URL" 2>/dev/null | cast --to-dec 2>/dev/null || echo "false")
|
|
|
|
log_info "Current USDT Reserve: $USDT_RESERVE"
|
|
log_info "Current USDC Reserve: $USDC_RESERVE"
|
|
log_info "Paused Status: $PAUSED"
|
|
|
|
if [ "$PAUSED" = "1" ] || [ "$PAUSED" = "true" ]; then
|
|
log_warn "Vault is paused. Operations are disabled."
|
|
read -p "Do you want to unpause? (y/n) " -n 1 -r
|
|
echo
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
log_info "Unpausing vault..."
|
|
cast send "$VAULT_ADDRESS" \
|
|
"unpause()" \
|
|
--rpc-url "$RPC_URL" \
|
|
--private-key "$PRIVATE_KEY" \
|
|
--gas-price 30000000000 \
|
|
--legacy
|
|
log_success "Vault unpaused"
|
|
fi
|
|
fi
|
|
|
|
log_info ""
|
|
log_info "To fund the vault:"
|
|
log_info "1. Approve tokens to vault:"
|
|
log_info " cast send $OFFICIAL_USDT \\"
|
|
log_info " \"approve(address,uint256)\" \\"
|
|
log_info " $VAULT_ADDRESS \\"
|
|
log_info " <amount> \\"
|
|
log_info " --rpc-url $RPC_URL \\"
|
|
log_info " --private-key \$PRIVATE_KEY"
|
|
log_info ""
|
|
log_info "2. Deposit USDT:"
|
|
log_info " cast send $VAULT_ADDRESS \\"
|
|
log_info " \"depositUSDT(uint256)\" \\"
|
|
log_info " <amount> \\"
|
|
log_info " --rpc-url $RPC_URL \\"
|
|
log_info " --private-key \$PRIVATE_KEY"
|
|
log_info ""
|
|
log_info "3. Deposit USDC (similar for USDC)"
|
|
|