/** * Contract Balance Types * * Types for contract balance management and token information. */ import type { Address } from "viem"; /** * Type representing a token in the Monaco Markets protocol. * Contains essential token metadata and contract information. * * @property address - Token contract address * @property symbol - Token symbol (e.g. "ETH", "USDC") * @property decimals - Number of decimal places for token amounts * @property name - Full token name */ export interface Token { /** Token contract address */ address: Address; /** Token symbol (e.g. "ETH", "USDC") */ symbol: string; /** Number of decimal places for token amounts */ decimals: number; /** Full token name */ name: string; } /** * Type representing a user's balance for a specific token in contract storage. * * @property token - Token address * @property available - Available balance for trading * @property locked - Locked balance in open orders * @property total - Total balance (available + locked) */ export interface UserBalance { /** Token address */ token: string; /** Available balance for trading */ available: bigint; /** Locked balance in open orders */ locked: bigint; /** Total balance (available + locked) */ total: bigint; }