Files
proxmox/docs/04-configuration/coingecko/scripts/prepare-token-logos-512x512.sh
defiQUG b3a8fe4496
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
chore: sync all changes to Gitea
- Config, docs, scripts, and backup manifests
- Submodule refs unchanged (m = modified content in submodules)

Made-with: Cursor
2026-03-02 11:37:34 -08:00

86 lines
3.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# Prepare 512×512 PNG logos for CoinGecko/CMC token submission.
# Downloads logos from Trust Wallet (or provided URLs) and resizes to 512×512.
# Output: docs/04-configuration/coingecko/logos/ (gitignored by default).
#
# Requires: curl, and one of: convert (ImageMagick), magick (ImageMagick 7), sips (macOS), or python3+PIL
# Install ImageMagick for resize: apt install imagemagick / brew install imagemagick
# Usage: ./prepare-token-logos-512x512.sh [OUTPUT_DIR]
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
OUTPUT_DIR="${1:-${SCRIPT_DIR}/../logos}"
mkdir -p "$OUTPUT_DIR"
LOGO_BASE="https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets"
# Symbol -> URL (Trust Wallet mainnet addresses for USDC, USDT, WETH)
declare -A LOGOS=(
["WETH"]="${LOGO_BASE}/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"
["WETH10"]="${LOGO_BASE}/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"
["cUSDC"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["cUSDT"]="${LOGO_BASE}/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png"
["cEURC"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["cEURT"]="${LOGO_BASE}/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png"
["cGBPC"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["cGBPT"]="${LOGO_BASE}/0xdAC17F958D2ee523a2206206994597C13D831ec7/logo.png"
["cAUDC"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["cJPYC"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["cCHFC"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["cCADC"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["cXAUC"]="${LOGO_BASE}/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"
["cXAUT"]="${LOGO_BASE}/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"
["LiXAU"]="${LOGO_BASE}/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"
["USDW"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["EURW"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["GBPW"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["AUDW"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["JPYW"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["CHFW"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["CADW"]="${LOGO_BASE}/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
["LINK"]="${LOGO_BASE}/0x514910771AF9Ca656af840dff83E8264EcF986CA/logo.png"
["ETH-USD"]="${LOGO_BASE}/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png"
)
resize_to_512() {
local src="$1"
local dst="$2"
if command -v convert &>/dev/null; then
convert "$src" -resize 512x512! -background none -gravity center -extent 512x512 "$dst"
elif command -v magick &>/dev/null; then
magick "$src" -resize 512x512! -background none -gravity center -extent 512x512 "$dst"
elif command -v sips &>/dev/null; then
sips -z 512 512 "$src" --out "$dst"
elif python3 -c "from PIL import Image" 2>/dev/null; then
python3 -c "
from PIL import Image
img = Image.open('$src').convert('RGBA')
img = img.resize((512, 512), Image.Resampling.LANCZOS)
img.save('$dst')
"
else
echo "No ImageMagick, sips, or PIL found. Copying without resize (may not be 512×512)." >&2
cp "$src" "$dst"
fi
}
echo "Preparing 512×512 PNG logos in $OUTPUT_DIR"
for symbol in "${!LOGOS[@]}"; do
url="${LOGOS[$symbol]}"
out="$OUTPUT_DIR/${symbol}-512x512.png"
tmp="$OUTPUT_DIR/.tmp-${symbol}.png"
if curl -sS -L -o "$tmp" "$url" 2>/dev/null && [ -s "$tmp" ]; then
resize_to_512 "$tmp" "$out"
rm -f "$tmp"
echo "$symbol -> $out"
else
echo "$symbol: failed to fetch $url"
rm -f "$tmp"
fi
done
echo ""
echo "Done. Logos in $OUTPUT_DIR"
echo "Use these for CoinGecko/CMC submission (512×512 PNG required)."