Source code for y.prices.utils.debug

import logging
from typing import Optional

from brownie import chain
import y

# Set up logging similar to scripts/debug-price.py
y_logger = logging.getLogger("y")
y_logger.setLevel(logging.DEBUG)
if not y_logger.hasHandlers():
    y_logger.addHandler(logging.StreamHandler())


[docs] def debug_price(token: str, block: Optional[int] = None) -> float: """ Debug token price retrieval. Args: token (str): The address of the token to debug. block (Optional[int]): The block number at which to retrieve the token price. If not specified, uses the current block height. Returns: float: The price of the token at the specified block. Raises: ValueError: If token is not provided. """ if not token: raise ValueError("You must specify a token address to debug.") if block is None: block = chain.height y_logger.warning("No `block` specified, using %s", block) price = y.get_price(token, int(block), skip_cache=True) y_logger.info("Price for token %s at block %s: %s", token, block, price) return price