pub mod assets;
pub mod binary;
pub mod book;
pub mod books;
pub mod candles;
pub mod funding;
pub mod stats;
pub mod system;
pub mod trades;
pub use assets::{
AssetClass, AssetDetail, AssetMarginMode, OracleInfo, OracleMarket, OraclePrice, SyntheticSpot, Token, TokenMarket,
asset_detail, asset_details, price_oracle_info, synthetic_spot_info, token_list,
};
pub use binary::{
BinaryMarket, BinaryStats, Event, EventKind, EventMetadata, EventPage, EventQuery, EventSort, Outcome,
UpDownCandle, UpDownPage, UpDownResolution, events, up_down_candles,
};
pub use book::{Book, BookOrder, FilledOrder, Level, MOST_BOOK_ORDERS, Walk, order_book_orders, orders_filled};
pub use books::{
MarketConfig, MarketDetail, MarketFilter, MarketListing, MarketStatus, Markets, listing, market_detail,
order_book_details, order_books, underlying,
};
pub use candles::{
Bar, CANDLES_PER_CALL, Candle, CandleQuery, CandleWindow, MarkCandle, PriceChart, Resolution, UnknownResolution,
candle_history, candle_window, candles, mark_price_candles, market_price_charts,
};
pub use funding::{
Exchange, FUNDING_INTERVAL_MS, Funding, FundingRate, FundingResolution, Payer, funding_history, funding_rates,
fundings, next_funding,
};
pub use stats::{
BinaryFeeTier, ExchangeStats, ExecuteStat, FeeFilter, FeeTiers, MarketStats, Metric, MetricKind, Period, Slippage,
StakingFeeTier, UserFeeTier, exchange_metrics, exchange_stats, execute_stats, fee_tiers, stat_value,
};
pub use system::{
Announcement, L1Info, L1Provider, NamedContract, SystemConfig, Validator, announcements, contract_address,
layer1_basic_info, system_config, withdrawal_delay,
};
pub use trades::{MOST_TRADES, Role, SortBy, Trade, TradeKind, TradePage, TradeQuery, recent_trades, trades};
use serde::{Deserialize, Deserializer};
pub(crate) fn listed<'de, D: Deserializer<'de>, T: Deserialize<'de>>(deserializer: D) -> Result<Vec<T>, D::Error> {
Ok(Option::<Vec<T>>::deserialize(deserializer)?.unwrap_or_default())
}