UNPKG

ftx-api-typed

Version:

Node.js/typescript connector for FTX's REST APIs and WebSockets

106 lines (105 loc) 2.95 kB
import { OrderSide } from "./orders"; export declare type OptionType = "call" | "put"; export declare type OptionStatus = "open" | "cancelled" | "filled" | string; export interface Option { /** @example "BTC" */ underlying: string; type: OptionType; strike: number; /** @example "2020-01-08T22:35:54.626023+00:00" */ expiry: string; } export interface QuoteRequest { id: number; option: Option; side: OrderSide; /** @example "2020-01-08T22:35:54.626023+00:00" */ time: string; status: OptionStatus; /** @example "2020-01-08T22:35:54.626023+00:00" */ requestExpiry: string; limitPrice: number; } export interface Quote { id: number; status: OptionStatus; collateral: number; price: number; /** @example "2020-01-08T22:35:54.626023+00:00" */ quoteExpiry: string | null; /** @example "2020-01-08T22:35:54.626023+00:00" */ time: string; } export interface MyQuoteRequest extends QuoteRequest { quotes: Quote[]; hideLimitPrice: boolean; size: number; counterpartyId?: number | null; } export interface CancelledQuoteRequest extends MyQuoteRequest { status: "cancelled"; } export interface QuoteForMyQuoteRequest extends Quote { requestId: number; quoterSide: OrderSide; requestSide: OrderSide; size: number; option: Option; requestLimitPrice: number; } export interface CancelledQuote extends QuoteForMyQuoteRequest { state: "cancelled"; } export interface AcceptedOptionsQuote extends QuoteForMyQuoteRequest { state: "filled"; } export interface OptionsAccountInfo { usdBalance: number; liquidationPrice: number; liquidated: boolean; /** * @description you will be liquidated if your account collateral + options usdBalance drops below this number */ maintenanceMarginRequirement: number; initialMarginRequirement: number; } export interface OptionsPosition { netSize: number; entryPrice: number; size: number; option: Option; side: OrderSide; pessimisticValuation?: number | null; pessimisticIndexPrice?: number | null; pessimisticVol?: number | null; } export interface OptionsTrade { id: number; size: number; option: Option; prize: number; time: string; } export interface OptionsFill extends OptionsTrade { liquidity: "maker" | "taker"; fee: number; feeRate: number; side: OrderSide; } interface Options24hVolumeItem { contracts: number; underlying_total: number; } export declare type Options24hVolume = Array<Options24hVolumeItem>; interface OptionsHistoricalVolumeItem { numContracts: number; startTime: string; endTime: string; } export declare type OptionsHistoricalVolumes = Array<OptionsHistoricalVolumeItem>; interface OptionsOpenInterestItem { numContracts: number; time: string; } export declare type OptionsOpenInterest = Array<OptionsOpenInterestItem>; export {};