import os from dotenv import load_dotenv load_dotenv() # Cache TTLs (seconds) PRICE_TTL = int(os.getenv("PRICE_TTL", 10)) OHLCV_TTL = { "1m": int(os.getenv("OHLCV_TTL_1M", 30)), "5m": int(os.getenv("OHLCV_TTL_5M", 60)), "1h": int(os.getenv("OHLCV_TTL_1H", 300)), "4h": int(os.getenv("OHLCV_TTL_4H", 600)), "1d": int(os.getenv("OHLCV_TTL_1D", 3600)), } # Providers COINGECKO_BASE_URL = "https://api.coingecko.com/api/v3" BINANCE_BASE_URL = "https://api.binance.com/api/v3" # Symbol normalization map (add more as needed) SYMBOL_TO_COINGECKO_ID = { "BTC": "bitcoin", "ETH": "ethereum", "SOL": "solana", "BNB": "binancecoin", "XRP": "ripple", "ADA": "cardano", "DOGE": "dogecoin", "AVAX": "avalanche-2", "DOT": "polkadot", "MATIC": "matic-network", "LINK": "chainlink", "UNI": "uniswap", "LTC": "litecoin", "ATOM": "cosmos", "XLM": "stellar", } # Timeframe → Binance interval mapping TIMEFRAME_TO_BINANCE = { "1m": "1m", "5m": "5m", "15m": "15m", "1h": "1h", "4h": "4h", "1d": "1d", } # Default OHLCV limit DEFAULT_OHLCV_LIMIT = 100 MAX_OHLCV_LIMIT = 500