Source code for ccxt_pandas.wrappers.schemas.balance_schema
"""Balance and wallet data schema."""
import pandera.pandas as pa
from pandera.typing import Series
from ccxt_pandas.wrappers.schemas.base_schemas import BaseExchangeSchema
[docs]
class BalanceSchema(BaseExchangeSchema):
"""Balance/wallet data schema for spot balances.
Used by methods like fetch_balance, watch_balance.
Returns balance information for spot/wallet accounts with currency code
and balance amounts (free, used, total, debt).
"""
# Required fields
code: Series[str] = pa.Field(title="Code", description="Currency code")
free: Series[float] = pa.Field(ge=0, title="Free", description="Available balance")
used: Series[float] = pa.Field(ge=0, title="Used", description="Balance in open orders")
total: Series[float] = pa.Field(ge=0, title="Total", description="Total balance (free + used)")
# Optional fields
debt: Series[float] | None = pa.Field(
ge=0, nullable=True, title="Debt", description="Borrowed amount (margin)"
)
# Note: exchange field comes from BaseExchangeSchema (Optional)