"""Stub crypto_guard - wallet reputation and auth"""

from typing import Any

from fastapi import HTTPException, Request


def check_wallet_reputation(address: str, chain: str = "base") -> dict[str, Any]:
    """Check wallet reputation."""
    return {
        "address": address,
        "chain": chain,
        "reputation": "neither_good_nor_bad",
        "risk_score": 0,
        "flags": [],
    }


def rate_limit_by_tier(user_tier: str, endpoint: str) -> dict[str, Any]:
    """Apply rate limiting based on user tier."""
    limits = {
        "FREE": {"requests_per_hour": 10, "daily_limit": 100},
        "BASIC": {"requests_per_hour": 50, "daily_limit": 500},
        "PREMIUM": {"requests_per_hour": 200, "daily_limit": 2000},
    }
    return {"tier": user_tier, "endpoint": endpoint, **limits.get(user_tier, limits["FREE"])}


async def require_crypto_auth(request: Request) -> dict[str, Any]:
    """Require crypto authentication."""
    auth = request.headers.get("Authorization", "")
    if not auth:
        raise HTTPException(status_code=401, detail="Crypto auth required")
    return {"authenticated": True, "wallet": "unknown"}
