Skip to main content

catalog_manager/
lib.rs

1//! Pure catalog policy logic.
2//!
3//! This crate intentionally has no filesystem, network, database, oracle,
4//! metrics, or service lifecycle dependencies. Runtime adapters live in the
5//! `hypercall` crate.
6
7pub mod collateral_registry;
8pub mod config;
9pub mod deribit;
10pub mod expiry;
11pub mod strikes;
12pub mod symbols;
13
14pub use collateral_registry::CollateralRegistry;
15pub use config::{
16    parse_catalog_config, with_secret_placeholder_mode, BlockScholesProviderConfig, CatalogConfig,
17    DatabentoProviderConfig, DatabentoProviderUnderlyingConfig, DeribitProviderConfig,
18    DeribitRegionStepsConfig, DeriveProviderConfig, ExpiryConfig, ExpiryScheduleConfig,
19    ExtensionPolicyConfig, FixedVolOracleProviderConfig, HyperliquidAssetConfig,
20    ObservabilityConfig, PerpCollateralConfig, PolygonProviderConfig,
21    PolygonProviderUnderlyingConfig, PolymarketProviderConfig, RealizedVolProviderConfig,
22    SecretPlaceholderMode, StablecoinCollateralConfig, StickyMoneynessProviderConfig,
23    StrikeSelectionConfig, UnderlyingConfig, VolOracleCatalogConfig, VolOracleProviderConfig,
24};
25pub use deribit::{
26    code_to_deribit_date, group_instruments, hypercall_to_deribit, DeribitInstrument, ExpiryGroup,
27};
28pub use expiry::{
29    code_to_date, date_to_code, generate_expiry_schedule, generate_expiry_schedule_at_date,
30    ExpiryInfo, ExpirySchedule,
31};
32pub use strikes::{
33    generate_strike_set, generate_strike_set_at_time, plan_extension, plan_extension_at_time,
34    ExtensionPlan, ExtensionRequest, StrikeSet,
35};
36pub use symbols::{format_symbol, timestamp_to_code};