Skip to main content

hypercall_sdk_types/
lib.rs

1//! Hypercall SDK Types - Public wire and request/response types for Hypercall clients.
2//!
3//! This crate is the public type surface consumed by `hypercall-client`.
4//! Internal runtime state, persistence records, and replay-only messages belong
5//! in `hypercall-types`.
6
7pub mod api_models;
8pub mod directives;
9pub mod enums;
10pub mod expiry_times;
11pub mod option_token_address;
12pub mod requests;
13pub mod responses;
14pub mod routes;
15pub mod utils;
16pub mod wallet_address;
17pub mod ws_protocol;
18
19pub use api_models::{Instrument, MarketInfo, MarketsResponse};
20pub use enums::{
21    FillSource, MarketAction, MarketUpdateStatus, OptionType, OrderAction, OrderStatus,
22    OrderUpdateStatus, QpStatus, QpTier, RfqStatus, Side, TimeInForce, TradeSide, TradingModes,
23    TransactionStatus,
24};
25pub use expiry_times::{
26    expiry_times, install_expiry_times, ExpiryTime, ExpiryTimeParseError, ExpiryTimes,
27    ExpiryTimesInstallError, DEFAULT_EXPIRY_TIME,
28};
29pub use option_token_address::{
30    derive_option_token_address, derive_option_token_address_for_type, encode_short_string_bytes32,
31    OptionTokenDeployment, OptionTokenDerivationError, ShortStringEncodingError,
32};
33pub use requests::{
34    AcceptRfqRequest, ApproveAgentRequest, BulkCancelOrderRequest, BulkPlaceOrderRequest,
35    CancelOrderByClientIdRequest, CancelOrderByCloidRequest, CancelOrderRequest, PlaceOrderRequest,
36    RegisterQuoteProviderRequest, ReplaceOrderRequest, RevokeAgentRequest, RfqLegRequest,
37    SetMarginModeRequest, SubmitRfqRequest,
38};
39pub use responses::{
40    ApiResponse, ApproveAgentResponse, AuthorizedAgentsResponse, BulkCancelOrderResponse,
41    BulkOrderResult, BulkPlaceOrderResponse, CompetitionAccountPnl, CompetitionAccountResponse,
42    CompetitionConnectedUserRank, CompetitionLeaderboardResponse, CompetitionLeaderboardRow,
43    CompetitionPnlStanding, CompetitionPnlSummary, CompetitionPnlSummaryResponse, Fill,
44    HistoricalPnlInterval, HistoricalPnlPoint, HistoricalPnlResponse, HistoricalTheoInterval,
45    HistoricalTheoPoint, HistoricalTheoResponse, InstrumentResponse, InstrumentSpecResponse,
46    JsonRpcError, JsonRpcResponse, L2Message, L2Update, MarginSummary, Market, MarketResponse,
47    MarketUpdateMessage, OptionGreeks, OptionSummary, OrderBookGreeks, OrderBookResponse,
48    OrderBookStats, OrderInfo, OrderMessage, OrderUpdateMessage, OrderbookUpdate, OrdersResponse,
49    Pagination, PortfolioPosition, PortfolioResponse, QuoteProviderResponse, RevokeAgentResponse,
50    RfqAcceptResponse, RfqHistoryResponse, RfqLegResponse, RfqQuoteLegResponse, RfqQuoteResponse,
51    RfqStatusResponse, TickSizeStep, TradeMessage, HISTORICAL_PNL_INTERVAL_1D_MS,
52    HISTORICAL_PNL_INTERVAL_1H_MS, HISTORICAL_PNL_INTERVAL_5M_MS, HISTORICAL_THEO_INTERVAL_1D_MS,
53    HISTORICAL_THEO_INTERVAL_1H_MS, HISTORICAL_THEO_INTERVAL_5M_MS,
54};
55pub use routes::*;
56pub use utils::{
57    count_significant_figures, decimal_to_f64_checked, expiry_date_to_timestamp,
58    expiry_date_to_timestamp_at_time_checked, expiry_date_to_timestamp_checked, round_to_sig_figs,
59    strike_to_e8, to_contract_units, to_contract_units_decimal, to_human_readable,
60    to_human_readable_decimal, validate_price_precision, DecimalConversionError,
61    ExpiryDateConversionError, StrikeScaleError, CONTRACT_UNIT_MULTIPLIER,
62    CONTRACT_UNIT_MULTIPLIER_DECIMAL, MAX_PRICE_SIGNIFICANT_FIGURES, STRIKE_SCALE_1E8,
63    STRIKE_SCALE_1E8_DECIMAL,
64};
65pub use wallet_address::WalletAddress;
66pub use ws_protocol::*;
67
68pub const RFQ_SELF_TRADE_REJECTION_REASON: &str =
69    "Self-trade prevention: taker wallet equals quote provider wallet";
70
71#[cfg(any(test, feature = "test-utils"))]
72pub use wallet_address::test_wallet;