Types.sol and are imported by every contract. This page is the canonical reference — individual contract pages link here rather than duplicating definitions.
Enums
Side
Tenors (no enum)
There is noTenor enum. Tenors are stored as raw uint32 tenorSeconds values in a dynamic registry on Config. New maturities are added permissionlessly via Config.registerTenor(tenorSeconds) and removed via Config.disableTenor(tenorSeconds).
Currently registered on Sepolia:
Read the live set with
Config.getEnabledTenors(). The TypeScript and Rust SDKs ship a bundled cache (TENORS) sourced from the canonical defaults file, but consumers should prefer the on-chain getter for authoritative state.
PositionStatus
CloseReason
Mode
MarginMode
FeeType
Used as the indexedfeeType of SettlementEngine.FeesCollected. The subgraph indexes these into the FeeEvent entity.
Structs
Position
Every position is stored onchain as aPosition struct:
The
imLocked field is the only mutable economic field on an open position. It changes when the trader adds or removes margin. All snapshot* fields are immutable after position creation.OpenPositionParams
MarginConfig
FeeDestination
PricingConfig
FixingConfig
OracleConfig
DegradedConfig
ForwardRound
Constants
Related Pages
Contract Overview
Architecture diagram and contract summary.
Parameter Reference
Default parameter values and configuration.
Errors Reference
Custom errors by contract.