Skip to main content

hypercall_types/
lib.rs

1//! Hypercall Types - Shared types for the Hypercall trading platform
2//!
3//! This crate provides the core types used across hypercall components:
4//! - `WalletAddress`: Canonical Ethereum wallet address representation
5//! - Trading enums: `Side`, `TimeInForce`, `OptionType`, `OrderStatus`
6//! - Request/response types for the API
7//! - EIP-712 signature types and verification
8
9pub use hypercall_sdk_types as sdk;
10
11pub mod balance_update;
12pub mod engine_messages;
13pub mod fill_accounting;
14pub mod greeks;
15pub mod hypercore_position;
16pub mod liquidation_state;
17pub mod margin_mode;
18pub mod observability;
19pub mod portfolio_greeks;
20pub mod position_metrics;
21pub mod qp_protocol;
22pub mod settlement_events;
23pub mod symbol;
24pub mod topics;
25#[cfg(feature = "rsm-state")]
26pub mod validator_rsm;
27
28pub use sdk::{
29    api_models, directives, enums, expiry_times, option_token_address, requests, responses, routes,
30    utils, wallet_address, ws_protocol,
31};
32
33// Re-exports for convenience
34pub use balance_update::{BalanceUpdate, BalanceUpdateReason};
35pub use engine_messages::*;
36pub use margin_mode::{MarginMode, ParseMarginModeError};
37pub use sdk::*;
38
39// Re-exports from new modules
40pub use fill_accounting::FillAccounting;
41pub use greeks::Greeks;
42pub use hypercore_position::HypercorePositionUpdate;
43pub use settlement_events::{PositionExpiredMessage, SettlementEconomics};
44pub use symbol::{perp_underlying, ParsedOptionSymbol};
45
46pub const RFQ_SELF_TRADE_REJECTION_REASON: &str =
47    "Self-trade prevention: taker wallet equals quote provider wallet";
48
49#[cfg(any(test, feature = "test-utils"))]
50pub use wallet_address::test_wallet;