Add Chain 138 Snap: deploy/verify scripts, runbook, CI, security, version/health, token list validation
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
74
chain138-snap/scripts/validate-token-lists.sh
Normal file
74
chain138-snap/scripts/validate-token-lists.sh
Normal file
@@ -0,0 +1,74 @@
|
||||
#!/usr/bin/env bash
|
||||
# Validate that token/bridge/networks list URLs return valid JSON.
|
||||
# Usage: ./validate-token-lists.sh [URL1] [URL2] ...
|
||||
# If no URLs given, reads from env: TOKEN_LIST_JSON_URL, BRIDGE_LIST_JSON_URL, NETWORKS_JSON_URL.
|
||||
# Requires: curl, jq (or python3 for fallback).
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
VALID=0
|
||||
INVALID=0
|
||||
|
||||
validate_url() {
|
||||
local url="$1"
|
||||
local name="${2:-$url}"
|
||||
local body
|
||||
if ! body="$(curl -sS -L --connect-timeout 15 --max-time 30 "$url" 2>/dev/null)"; then
|
||||
echo "❌ $name: failed to fetch"
|
||||
((INVALID++)) || true
|
||||
return 1
|
||||
fi
|
||||
if [ -z "$body" ]; then
|
||||
echo "❌ $name: empty response"
|
||||
((INVALID++)) || true
|
||||
return 1
|
||||
fi
|
||||
if command -v jq &>/dev/null; then
|
||||
if echo "$body" | jq . &>/dev/null; then
|
||||
echo "✅ $name: valid JSON"
|
||||
((VALID++)) || true
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
if echo "$body" | python3 -c "import sys,json; json.load(sys.stdin)" 2>/dev/null; then
|
||||
echo "✅ $name: valid JSON"
|
||||
((VALID++)) || true
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
echo "❌ $name: invalid JSON"
|
||||
((INVALID++)) || true
|
||||
return 1
|
||||
}
|
||||
|
||||
echo "=============================================="
|
||||
echo "Token / bridge / networks list JSON validation"
|
||||
echo "=============================================="
|
||||
echo ""
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
for url in "$@"; do
|
||||
validate_url "$url" "$url"
|
||||
done
|
||||
else
|
||||
for var in TOKEN_LIST_JSON_URL BRIDGE_LIST_JSON_URL NETWORKS_JSON_URL; do
|
||||
url="${!var:-}"
|
||||
if [ -n "$url" ]; then
|
||||
validate_url "$url" "$var"
|
||||
else
|
||||
echo "⏭ $var not set, skipping"
|
||||
fi
|
||||
done
|
||||
if [ "$VALID" -eq 0 ] && [ "$INVALID" -eq 0 ]; then
|
||||
echo "Set TOKEN_LIST_JSON_URL, BRIDGE_LIST_JSON_URL, or NETWORKS_JSON_URL, or pass URLs as arguments."
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Result: $VALID valid, $INVALID invalid"
|
||||
if [ "$INVALID" -gt 0 ]; then
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
||||
Reference in New Issue
Block a user