chore: sync submodule state (parent ref update)
Made-with: Cursor
This commit is contained in:
65
scripts/deployment/check-env-required.sh
Executable file
65
scripts/deployment/check-env-required.sh
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/usr/bin/env bash
|
||||
# Check smom-dbis-138/.env for required and optional variable names (no values printed).
|
||||
# Usage: ./scripts/deployment/check-env-required.sh
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
||||
ENV_FILE="${PROJECT_ROOT}/.env"
|
||||
|
||||
echo "=== .env check (keys only, no values) ==="
|
||||
echo ""
|
||||
|
||||
if [ ! -f "$ENV_FILE" ]; then
|
||||
echo " .env: MISSING"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Build list of key names (strip values; never print values)
|
||||
keys_file=$(mktemp)
|
||||
trap 'rm -f "$keys_file"' EXIT
|
||||
grep -E '^[A-Za-z_][A-Za-z0-9_]*=' "$ENV_FILE" 2>/dev/null | sed 's/=.*//' > "$keys_file" || true
|
||||
grep -E '^export [A-Za-z_][A-Za-z0-9_]*=' "$ENV_FILE" 2>/dev/null | sed 's/^export //; s/=.*//' >> "$keys_file" || true
|
||||
sort -u "$keys_file" -o "$keys_file"
|
||||
|
||||
check() { grep -qx "$1" "$keys_file" 2>/dev/null; }
|
||||
total=$(wc -l < "$keys_file")
|
||||
echo " .env: EXISTS ($total keys)"
|
||||
echo ""
|
||||
|
||||
# Required for deploy-contracts-unified.sh and most Chain 138 scripts
|
||||
echo "--- Required (deploy / Chain 138) ---"
|
||||
for k in PRIVATE_KEY RPC_URL RPC_URL_138; do
|
||||
check "$k" && echo " OK $k" || echo " MISS $k"
|
||||
done
|
||||
|
||||
# PRIVATE_KEY format: 64 hex chars (no value printed)
|
||||
if check "PRIVATE_KEY"; then
|
||||
len=$(awk -F= '/^PRIVATE_KEY=/ { v=$2; gsub(/^0x/,"",v); print length(v) }' "$ENV_FILE" 2>/dev/null || echo "0")
|
||||
[ "$len" = "64" ] && echo " PRIVATE_KEY format: 64-char hex" || echo " PRIVATE_KEY format: WARN (length=$len, expected 64)"
|
||||
fi
|
||||
echo ""
|
||||
|
||||
# Optional for PMM pool script (create-all-dodo-pools-from-token-api.sh)
|
||||
echo "--- Optional (PMM pools: DODO_PMM_INTEGRATION or DODO_PMM_INTEGRATION_ADDRESS, QUOTE_TOKEN or QUOTE_TOKEN_ADDRESS / WETH_ADDRESS_138) ---"
|
||||
for k in DODO_PMM_INTEGRATION DODO_PMM_INTEGRATION_ADDRESS QUOTE_TOKEN QUOTE_TOKEN_ADDRESS WETH_ADDRESS_138; do
|
||||
check "$k" && echo " OK $k" || echo " -- $k"
|
||||
done
|
||||
echo ""
|
||||
|
||||
# Optional for mainnet dry-run
|
||||
echo "--- Optional (mainnet dry-run) ---"
|
||||
for k in ETHEREUM_MAINNET_RPC; do
|
||||
check "$k" && echo " OK $k" || echo " -- $k"
|
||||
done
|
||||
echo ""
|
||||
|
||||
# Common CCIP / bridge
|
||||
echo "--- Optional (CCIP / bridge) ---"
|
||||
for k in CCIP_ROUTER LINK_TOKEN CCIPWETH9_BRIDGE_CHAIN138 CCIPWETH10_BRIDGE_CHAIN138; do
|
||||
check "$k" && echo " OK $k" || echo " -- $k"
|
||||
done
|
||||
echo ""
|
||||
|
||||
echo "Done. Fix any MISS above; -- means optional and can be set when needed."
|
||||
Reference in New Issue
Block a user