@siebly/kraken-api 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +624 -0
  3. package/dist/cjs/DerivativesClient.d.ts +657 -0
  4. package/dist/cjs/DerivativesClient.js +726 -0
  5. package/dist/cjs/DerivativesClient.js.map +1 -0
  6. package/dist/cjs/InstitutionalClient.d.ts +183 -0
  7. package/dist/cjs/InstitutionalClient.js +266 -0
  8. package/dist/cjs/InstitutionalClient.js.map +1 -0
  9. package/dist/cjs/PartnerClient.d.ts +257 -0
  10. package/dist/cjs/PartnerClient.js +344 -0
  11. package/dist/cjs/PartnerClient.js.map +1 -0
  12. package/dist/cjs/SpotClient.d.ts +547 -0
  13. package/dist/cjs/SpotClient.js +607 -0
  14. package/dist/cjs/SpotClient.js.map +1 -0
  15. package/dist/cjs/WebsocketAPIClient.d.ts +95 -0
  16. package/dist/cjs/WebsocketAPIClient.js +136 -0
  17. package/dist/cjs/WebsocketAPIClient.js.map +1 -0
  18. package/dist/cjs/WebsocketClient.d.ts +120 -0
  19. package/dist/cjs/WebsocketClient.js +669 -0
  20. package/dist/cjs/WebsocketClient.js.map +1 -0
  21. package/dist/cjs/index.d.ts +24 -0
  22. package/dist/cjs/index.js +41 -0
  23. package/dist/cjs/index.js.map +1 -0
  24. package/dist/cjs/lib/BaseRestClient.d.ts +66 -0
  25. package/dist/cjs/lib/BaseRestClient.js +548 -0
  26. package/dist/cjs/lib/BaseRestClient.js.map +1 -0
  27. package/dist/cjs/lib/BaseWSClient.d.ts +230 -0
  28. package/dist/cjs/lib/BaseWSClient.js +935 -0
  29. package/dist/cjs/lib/BaseWSClient.js.map +1 -0
  30. package/dist/cjs/lib/misc-util.d.ts +1 -0
  31. package/dist/cjs/lib/misc-util.js +7 -0
  32. package/dist/cjs/lib/misc-util.js.map +1 -0
  33. package/dist/cjs/lib/requestUtils.d.ts +68 -0
  34. package/dist/cjs/lib/requestUtils.js +82 -0
  35. package/dist/cjs/lib/requestUtils.js.map +1 -0
  36. package/dist/cjs/lib/webCryptoAPI.d.ts +15 -0
  37. package/dist/cjs/lib/webCryptoAPI.js +85 -0
  38. package/dist/cjs/lib/webCryptoAPI.js.map +1 -0
  39. package/dist/cjs/lib/websocket/WsStore.d.ts +75 -0
  40. package/dist/cjs/lib/websocket/WsStore.js +303 -0
  41. package/dist/cjs/lib/websocket/WsStore.js.map +1 -0
  42. package/dist/cjs/lib/websocket/WsStore.types.d.ts +51 -0
  43. package/dist/cjs/lib/websocket/WsStore.types.js +14 -0
  44. package/dist/cjs/lib/websocket/WsStore.types.js.map +1 -0
  45. package/dist/cjs/lib/websocket/logger.d.ts +7 -0
  46. package/dist/cjs/lib/websocket/logger.js +16 -0
  47. package/dist/cjs/lib/websocket/logger.js.map +1 -0
  48. package/dist/cjs/lib/websocket/rest-client-cache.d.ts +22 -0
  49. package/dist/cjs/lib/websocket/rest-client-cache.js +66 -0
  50. package/dist/cjs/lib/websocket/rest-client-cache.js.map +1 -0
  51. package/dist/cjs/lib/websocket/websocket-util.d.ts +76 -0
  52. package/dist/cjs/lib/websocket/websocket-util.js +59 -0
  53. package/dist/cjs/lib/websocket/websocket-util.js.map +1 -0
  54. package/dist/cjs/package.json +3 -0
  55. package/dist/cjs/types/request/derivatives.types.d.ts +186 -0
  56. package/dist/cjs/types/request/derivatives.types.js +6 -0
  57. package/dist/cjs/types/request/derivatives.types.js.map +1 -0
  58. package/dist/cjs/types/request/institutional.types.d.ts +313 -0
  59. package/dist/cjs/types/request/institutional.types.js +4 -0
  60. package/dist/cjs/types/request/institutional.types.js.map +1 -0
  61. package/dist/cjs/types/request/partner.types.d.ts +291 -0
  62. package/dist/cjs/types/request/partner.types.js +4 -0
  63. package/dist/cjs/types/request/partner.types.js.map +1 -0
  64. package/dist/cjs/types/request/spot.types.d.ts +324 -0
  65. package/dist/cjs/types/request/spot.types.js +6 -0
  66. package/dist/cjs/types/request/spot.types.js.map +1 -0
  67. package/dist/cjs/types/request/wsapi.types.d.ts +90 -0
  68. package/dist/cjs/types/request/wsapi.types.js +6 -0
  69. package/dist/cjs/types/request/wsapi.types.js.map +1 -0
  70. package/dist/cjs/types/response/derivatives.types.d.ts +712 -0
  71. package/dist/cjs/types/response/derivatives.types.js +6 -0
  72. package/dist/cjs/types/response/derivatives.types.js.map +1 -0
  73. package/dist/cjs/types/response/institutional.types.d.ts +318 -0
  74. package/dist/cjs/types/response/institutional.types.js +4 -0
  75. package/dist/cjs/types/response/institutional.types.js.map +1 -0
  76. package/dist/cjs/types/response/partner.types.d.ts +332 -0
  77. package/dist/cjs/types/response/partner.types.js +4 -0
  78. package/dist/cjs/types/response/partner.types.js.map +1 -0
  79. package/dist/cjs/types/response/shared.types.d.ts +27 -0
  80. package/dist/cjs/types/response/shared.types.js +3 -0
  81. package/dist/cjs/types/response/shared.types.js.map +1 -0
  82. package/dist/cjs/types/response/spot.types.d.ts +590 -0
  83. package/dist/cjs/types/response/spot.types.js +6 -0
  84. package/dist/cjs/types/response/spot.types.js.map +1 -0
  85. package/dist/cjs/types/response/ws.d.ts +11 -0
  86. package/dist/cjs/types/response/ws.js +3 -0
  87. package/dist/cjs/types/response/ws.js.map +1 -0
  88. package/dist/cjs/types/response/wsapi.types.d.ts +44 -0
  89. package/dist/cjs/types/response/wsapi.types.js +6 -0
  90. package/dist/cjs/types/response/wsapi.types.js.map +1 -0
  91. package/dist/cjs/types/websockets/ws-api.d.ts +71 -0
  92. package/dist/cjs/types/websockets/ws-api.js +18 -0
  93. package/dist/cjs/types/websockets/ws-api.js.map +1 -0
  94. package/dist/cjs/types/websockets/ws-events.d.ts +11 -0
  95. package/dist/cjs/types/websockets/ws-events.js +11 -0
  96. package/dist/cjs/types/websockets/ws-events.js.map +1 -0
  97. package/dist/cjs/types/websockets/ws-general.d.ts +67 -0
  98. package/dist/cjs/types/websockets/ws-general.js +3 -0
  99. package/dist/cjs/types/websockets/ws-general.js.map +1 -0
  100. package/dist/cjs/types/websockets/ws-subscriptions.d.ts +11 -0
  101. package/dist/cjs/types/websockets/ws-subscriptions.js +31 -0
  102. package/dist/cjs/types/websockets/ws-subscriptions.js.map +1 -0
  103. package/dist/mjs/DerivativesClient.d.ts +657 -0
  104. package/dist/mjs/DerivativesClient.js +722 -0
  105. package/dist/mjs/DerivativesClient.js.map +1 -0
  106. package/dist/mjs/InstitutionalClient.d.ts +183 -0
  107. package/dist/mjs/InstitutionalClient.js +262 -0
  108. package/dist/mjs/InstitutionalClient.js.map +1 -0
  109. package/dist/mjs/PartnerClient.d.ts +257 -0
  110. package/dist/mjs/PartnerClient.js +340 -0
  111. package/dist/mjs/PartnerClient.js.map +1 -0
  112. package/dist/mjs/SpotClient.d.ts +547 -0
  113. package/dist/mjs/SpotClient.js +603 -0
  114. package/dist/mjs/SpotClient.js.map +1 -0
  115. package/dist/mjs/WebsocketAPIClient.d.ts +95 -0
  116. package/dist/mjs/WebsocketAPIClient.js +132 -0
  117. package/dist/mjs/WebsocketAPIClient.js.map +1 -0
  118. package/dist/mjs/WebsocketClient.d.ts +120 -0
  119. package/dist/mjs/WebsocketClient.js +665 -0
  120. package/dist/mjs/WebsocketClient.js.map +1 -0
  121. package/dist/mjs/index.d.ts +24 -0
  122. package/dist/mjs/index.js +25 -0
  123. package/dist/mjs/index.js.map +1 -0
  124. package/dist/mjs/lib/BaseRestClient.d.ts +66 -0
  125. package/dist/mjs/lib/BaseRestClient.js +541 -0
  126. package/dist/mjs/lib/BaseRestClient.js.map +1 -0
  127. package/dist/mjs/lib/BaseWSClient.d.ts +230 -0
  128. package/dist/mjs/lib/BaseWSClient.js +928 -0
  129. package/dist/mjs/lib/BaseWSClient.js.map +1 -0
  130. package/dist/mjs/lib/misc-util.d.ts +1 -0
  131. package/dist/mjs/lib/misc-util.js +4 -0
  132. package/dist/mjs/lib/misc-util.js.map +1 -0
  133. package/dist/mjs/lib/requestUtils.d.ts +68 -0
  134. package/dist/mjs/lib/requestUtils.js +76 -0
  135. package/dist/mjs/lib/requestUtils.js.map +1 -0
  136. package/dist/mjs/lib/webCryptoAPI.d.ts +15 -0
  137. package/dist/mjs/lib/webCryptoAPI.js +80 -0
  138. package/dist/mjs/lib/webCryptoAPI.js.map +1 -0
  139. package/dist/mjs/lib/websocket/WsStore.d.ts +75 -0
  140. package/dist/mjs/lib/websocket/WsStore.js +298 -0
  141. package/dist/mjs/lib/websocket/WsStore.js.map +1 -0
  142. package/dist/mjs/lib/websocket/WsStore.types.d.ts +51 -0
  143. package/dist/mjs/lib/websocket/WsStore.types.js +11 -0
  144. package/dist/mjs/lib/websocket/WsStore.types.js.map +1 -0
  145. package/dist/mjs/lib/websocket/logger.d.ts +7 -0
  146. package/dist/mjs/lib/websocket/logger.js +13 -0
  147. package/dist/mjs/lib/websocket/logger.js.map +1 -0
  148. package/dist/mjs/lib/websocket/rest-client-cache.d.ts +22 -0
  149. package/dist/mjs/lib/websocket/rest-client-cache.js +62 -0
  150. package/dist/mjs/lib/websocket/rest-client-cache.js.map +1 -0
  151. package/dist/mjs/lib/websocket/websocket-util.d.ts +76 -0
  152. package/dist/mjs/lib/websocket/websocket-util.js +54 -0
  153. package/dist/mjs/lib/websocket/websocket-util.js.map +1 -0
  154. package/dist/mjs/package.json +3 -0
  155. package/dist/mjs/types/request/derivatives.types.d.ts +186 -0
  156. package/dist/mjs/types/request/derivatives.types.js +5 -0
  157. package/dist/mjs/types/request/derivatives.types.js.map +1 -0
  158. package/dist/mjs/types/request/institutional.types.d.ts +313 -0
  159. package/dist/mjs/types/request/institutional.types.js +3 -0
  160. package/dist/mjs/types/request/institutional.types.js.map +1 -0
  161. package/dist/mjs/types/request/partner.types.d.ts +291 -0
  162. package/dist/mjs/types/request/partner.types.js +3 -0
  163. package/dist/mjs/types/request/partner.types.js.map +1 -0
  164. package/dist/mjs/types/request/spot.types.d.ts +324 -0
  165. package/dist/mjs/types/request/spot.types.js +5 -0
  166. package/dist/mjs/types/request/spot.types.js.map +1 -0
  167. package/dist/mjs/types/request/wsapi.types.d.ts +90 -0
  168. package/dist/mjs/types/request/wsapi.types.js +5 -0
  169. package/dist/mjs/types/request/wsapi.types.js.map +1 -0
  170. package/dist/mjs/types/response/derivatives.types.d.ts +712 -0
  171. package/dist/mjs/types/response/derivatives.types.js +5 -0
  172. package/dist/mjs/types/response/derivatives.types.js.map +1 -0
  173. package/dist/mjs/types/response/institutional.types.d.ts +318 -0
  174. package/dist/mjs/types/response/institutional.types.js +3 -0
  175. package/dist/mjs/types/response/institutional.types.js.map +1 -0
  176. package/dist/mjs/types/response/partner.types.d.ts +332 -0
  177. package/dist/mjs/types/response/partner.types.js +3 -0
  178. package/dist/mjs/types/response/partner.types.js.map +1 -0
  179. package/dist/mjs/types/response/shared.types.d.ts +27 -0
  180. package/dist/mjs/types/response/shared.types.js +2 -0
  181. package/dist/mjs/types/response/shared.types.js.map +1 -0
  182. package/dist/mjs/types/response/spot.types.d.ts +590 -0
  183. package/dist/mjs/types/response/spot.types.js +5 -0
  184. package/dist/mjs/types/response/spot.types.js.map +1 -0
  185. package/dist/mjs/types/response/ws.d.ts +11 -0
  186. package/dist/mjs/types/response/ws.js +2 -0
  187. package/dist/mjs/types/response/ws.js.map +1 -0
  188. package/dist/mjs/types/response/wsapi.types.d.ts +44 -0
  189. package/dist/mjs/types/response/wsapi.types.js +5 -0
  190. package/dist/mjs/types/response/wsapi.types.js.map +1 -0
  191. package/dist/mjs/types/websockets/ws-api.d.ts +71 -0
  192. package/dist/mjs/types/websockets/ws-api.js +15 -0
  193. package/dist/mjs/types/websockets/ws-api.js.map +1 -0
  194. package/dist/mjs/types/websockets/ws-events.d.ts +11 -0
  195. package/dist/mjs/types/websockets/ws-events.js +8 -0
  196. package/dist/mjs/types/websockets/ws-events.js.map +1 -0
  197. package/dist/mjs/types/websockets/ws-general.d.ts +67 -0
  198. package/dist/mjs/types/websockets/ws-general.js +2 -0
  199. package/dist/mjs/types/websockets/ws-general.js.map +1 -0
  200. package/dist/mjs/types/websockets/ws-subscriptions.d.ts +11 -0
  201. package/dist/mjs/types/websockets/ws-subscriptions.js +28 -0
  202. package/dist/mjs/types/websockets/ws-subscriptions.js.map +1 -0
  203. package/llms.txt +10925 -0
  204. package/package.json +89 -0
@@ -0,0 +1,712 @@
1
+ /**
2
+ * Market Data
3
+ */
4
+ export interface FuturesTradeHistoryItem {
5
+ price: number;
6
+ side?: string;
7
+ size?: string;
8
+ time: string;
9
+ trade_id?: number;
10
+ type?: 'fill' | 'liquidation' | 'assignment' | 'termination' | 'block';
11
+ uid?: string;
12
+ instrument_identification_type?: string;
13
+ isin?: string;
14
+ execution_venue?: string;
15
+ price_notation?: string;
16
+ price_currency?: string;
17
+ notional_amount?: number;
18
+ notional_currency?: string;
19
+ publication_time?: string;
20
+ publication_venue?: string;
21
+ transaction_identification_code?: string;
22
+ to_be_cleared?: boolean;
23
+ }
24
+ export interface FuturesOrderBook {
25
+ asks: [number, number][];
26
+ bids: [number, number][];
27
+ }
28
+ export interface TickerGreeks {
29
+ iv: number;
30
+ delta: number;
31
+ gamma: number | null;
32
+ vega: number | null;
33
+ theta: number | null;
34
+ rho: number | null;
35
+ }
36
+ export interface FuturesTicker {
37
+ symbol: string;
38
+ last?: number;
39
+ lastTime?: string;
40
+ lastSize?: number;
41
+ tag: 'perpetual' | 'month' | 'quarter' | 'semiannual';
42
+ pair: string;
43
+ markPrice: number;
44
+ bid?: number;
45
+ bidSize?: number;
46
+ ask?: number;
47
+ askSize?: number;
48
+ vol24h: number;
49
+ volumeQuote: number;
50
+ openInterest: number;
51
+ open24h?: number;
52
+ high24h?: number;
53
+ low24h?: number;
54
+ extrinsicValue?: number;
55
+ fundingRate?: number;
56
+ fundingRatePrediction?: number;
57
+ suspended: boolean;
58
+ indexPrice: number;
59
+ postOnly: boolean;
60
+ change24h: number;
61
+ greeks?: TickerGreeks;
62
+ isUnderlyingMarketClosed?: boolean;
63
+ }
64
+ /**
65
+ * Instrument Details
66
+ */
67
+ export interface FuturesMarginLevel {
68
+ contracts?: number | null;
69
+ numNonContractUnits?: number | null;
70
+ initialMargin: number;
71
+ maintenanceMargin: number;
72
+ }
73
+ export interface FuturesMarginSchedule {
74
+ retail: FuturesMarginLevel[];
75
+ professional: FuturesMarginLevel[];
76
+ }
77
+ export interface FuturesInstrument {
78
+ symbol: string;
79
+ type: 'flexible_futures' | 'futures_inverse' | 'futures_vanilla';
80
+ tradeable: boolean;
81
+ tradfi: boolean;
82
+ pair?: string;
83
+ base?: string;
84
+ quote?: string;
85
+ underlying?: string;
86
+ tickSize?: number;
87
+ contractSize?: number;
88
+ contractValueTradePrecision?: number;
89
+ impactMidSize?: number;
90
+ maxPositionSize?: number;
91
+ openingDate?: string;
92
+ lastTradingTime?: string;
93
+ category?: string;
94
+ fundingRateCoefficient?: number;
95
+ maxRelativeFundingRate?: number;
96
+ isin?: string;
97
+ marginSchedules?: Record<string, FuturesMarginSchedule>;
98
+ retailMarginLevels?: FuturesMarginLevel[];
99
+ marginLevels?: FuturesMarginLevel[];
100
+ postOnly?: boolean;
101
+ feeScheduleUid?: string;
102
+ tags?: string[];
103
+ underlyingFuture?: string;
104
+ mtf?: boolean;
105
+ }
106
+ export interface FuturesInstrumentStatus {
107
+ tradeable: string;
108
+ experiencingDislocation: boolean;
109
+ priceDislocationDirection: 'ABOVE_UPPER_BOUND' | 'BELOW_LOWER_BOUND' | null;
110
+ experiencingExtremeVolatility: boolean;
111
+ extremeVolatilityInitialMarginMultiplier: number;
112
+ }
113
+ /**
114
+ * Order Management
115
+ */
116
+ export interface FuturesOrderJson {
117
+ orderId: string;
118
+ cliOrdId?: string | null;
119
+ type: 'lmt' | 'ioc' | 'post' | 'liquidation' | 'assignment' | 'stp' | 'unwind' | 'block' | 'fok';
120
+ symbol: string;
121
+ side: 'buy' | 'sell';
122
+ quantity: number;
123
+ filled: number;
124
+ limitPrice: number;
125
+ reduceOnly: boolean;
126
+ timestamp: string;
127
+ lastUpdateTimestamp: string;
128
+ reducedQuantity?: number | null;
129
+ }
130
+ export interface FuturesOrderTriggerJson {
131
+ uid: string;
132
+ clientId: string | null;
133
+ type: 'lmt' | 'ioc' | 'post' | 'liquidation' | 'assignment' | 'stp' | 'unwind' | 'fok';
134
+ symbol: string;
135
+ side: 'buy' | 'sell';
136
+ quantity: number | null;
137
+ limitPrice: number | null;
138
+ triggerPrice: number | null;
139
+ triggerSide: 'trigger_above' | 'trigger_below' | null;
140
+ triggerSignal: 'mark_price' | 'last_price' | 'spot_price' | null;
141
+ reduceOnly: boolean;
142
+ timestamp: string;
143
+ lastUpdateTimestamp: string;
144
+ startTime: string | null;
145
+ }
146
+ export interface FuturesPlaceEvent {
147
+ type: 'PLACE';
148
+ order: FuturesOrderJson;
149
+ }
150
+ export interface FuturesCancelEvent {
151
+ type: 'CANCEL';
152
+ uid: string;
153
+ order: FuturesOrderJson;
154
+ }
155
+ export interface FuturesEditEvent {
156
+ type: 'EDIT';
157
+ old: FuturesOrderJson;
158
+ new: FuturesOrderJson & {
159
+ reducedQuantity: number | null;
160
+ };
161
+ }
162
+ export interface FuturesRejectEvent {
163
+ type: 'REJECT';
164
+ uid: string;
165
+ order: FuturesOrderJson;
166
+ reason: 'POST_WOULD_EXECUTE' | 'IOC_WOULD_NOT_EXECUTE';
167
+ }
168
+ export interface FuturesExecuteEvent {
169
+ type: 'EXECUTION';
170
+ executionId: string;
171
+ price: number;
172
+ amount: number;
173
+ orderPriorEdit: FuturesOrderJson;
174
+ orderPriorExecution: FuturesOrderJson & {
175
+ takerReducedQuantity: number | null;
176
+ };
177
+ }
178
+ export interface FuturesPlaceTriggerEvent {
179
+ type: 'PLACE';
180
+ orderTrigger: FuturesOrderTriggerJson;
181
+ }
182
+ export interface FuturesCancelTriggerEvent {
183
+ type: 'CANCEL';
184
+ uid: string;
185
+ orderTrigger: FuturesOrderTriggerJson;
186
+ }
187
+ export interface FuturesRejectTriggerEvent {
188
+ type: 'REJECT';
189
+ uid: string;
190
+ orderTrigger: FuturesOrderTriggerJson;
191
+ reason: 'MARKET_SUSPENDED' | 'MARKET_NOT_FOUND' | 'INVALID_PRICE' | 'INVALID_QUANTITY' | 'SMALL_ORDER_LIMIT_EXCEEDED' | 'INSUFFICIENT_MARGIN' | 'WOULD_CAUSE_LIQUIDATION' | 'CLIENT_ORDER_ID_IN_USE' | 'CLIENT_ORDER_ID_TOO_LONG' | 'MAX_POSITION_EXCEEDED' | 'PRICE_COLLAR' | 'PRICE_DISLOCATION' | 'EDIT_HAS_NO_EFFECT' | 'ORDER_FOR_CANCELLATION_NOT_FOUND' | 'ORDER_FOR_EDIT_NOT_FOUND' | 'ORDER_CANNOT_HAVE_TRIGGER_PRICE' | 'POST_WOULD_EXECUTE' | 'IOC_WOULD_NOT_EXECUTE' | 'WOULD_EXECUTE_SELF' | 'WOULD_NOT_REDUCE_POSITION' | 'REJECTED_AFTER_EXECUTION' | 'MARKET_IS_POST_ONLY' | 'ORDER_LIMIT_EXCEEDED' | 'FIXED_LEVERAGE_TOO_HIGH' | 'CANNOT_EDIT_TRIGGER_PRICE_OF_TRAILING_STOP' | 'CANNOT_EDIT_LIMIT_PRICE_OF_TRAILING_STOP' | 'TRAILING_STOP_ORDER_LIMIT_EXCEEDED' | 'TRAILING_STOP_PERCENT_DEVIATION_EXCEEDS_MAX_DECIMAL_PLACES' | 'TRAILING_STOP_QUOTE_DEVIATION_NOT_MULTIPLE_OF_TICK_SIZE' | 'TRAILING_STOP_MAX_DEVIATION_TOO_LARGE' | 'TRAILING_STOP_MAX_DEVIATION_TOO_SMALL' | 'INSUFFICIENT_HEADROOM_AROUND_CURRENT_PRICE_TO_EDIT_TRAILING_STOP' | 'NO_REFERENCE_PRICE_AVAILABLE_FOR_CALCULATING_TRAILING_STOP_TRIGGER_PRICE' | 'INSUFFICIENT_CLOSING_MARGIN' | 'LIMIT_PRICE_SET_AS_ABSOLUTE_AND_RELATIVE' | 'LIMIT_PRICE_OFFSET_VALUE_INVALID' | 'LIMIT_PRICE_OFFSET_UNIT_INVALID' | 'LIMIT_PRICE_OFFSET_MUST_HAVE_VALUE_AND_UNIT' | 'LIMIT_PRICE_OFFSET_QUOTE_CURRENCY_VALUE_MUST_BE_MULTIPLE_OF_TICK_SIZE' | 'LIMIT_PRICE_OFFSET_PERCENT_VALUE_TOO_MANY_DECIMAL_PLACES' | 'LIMIT_PRICE_OFFSET_TOO_HIGH' | 'LIMIT_PRICE_OFFSET_TOO_LOW';
192
+ }
193
+ export type FuturesOrderEvent = FuturesPlaceEvent | FuturesCancelEvent | FuturesEditEvent | FuturesRejectEvent | FuturesExecuteEvent | FuturesPlaceTriggerEvent | FuturesCancelTriggerEvent | FuturesRejectTriggerEvent;
194
+ export interface FuturesBatchOrderStatus {
195
+ cliOrdId?: string;
196
+ dateTimeReceived?: string | null;
197
+ orderEvents: FuturesOrderEvent[];
198
+ order_id?: string | null;
199
+ order_tag?: string | null;
200
+ status: 'placed' | 'edited' | 'cancelled' | 'invalidOrderType' | 'invalidSide' | 'invalidSize' | 'invalidPrice' | 'insufficientAvailableFunds' | 'selfFill' | 'tooManySmallOrders' | 'marketSuspended' | 'marketInactive' | 'clientOrderIdAlreadyExist' | 'clientOrderIdTooLong' | 'outsidePriceCollar' | 'postWouldExecute' | 'iocWouldNotExecute';
201
+ }
202
+ export interface FuturesCancelledOrder {
203
+ cliOrdId?: string | null;
204
+ order_id: string;
205
+ }
206
+ export interface FuturesCancelAllOrdersStatus {
207
+ cancelOnly: string;
208
+ cancelledOrders: FuturesCancelledOrder[];
209
+ orderEvents: FuturesOrderEvent[];
210
+ receivedTime: string;
211
+ status: 'noOrdersToCancel' | 'cancelled';
212
+ }
213
+ export interface FuturesDeadMansSwitchStatus {
214
+ currentTime: string;
215
+ triggerTime: string;
216
+ }
217
+ export interface FuturesCancelOrderStatus {
218
+ cliOrdId?: string | null;
219
+ orderEvents?: FuturesOrderEvent[];
220
+ order_id?: string;
221
+ receivedTime?: string;
222
+ status: 'cancelled' | 'filled' | 'notFound';
223
+ }
224
+ export interface FuturesEditOrderStatus {
225
+ orderId?: string | null;
226
+ cliOrdId?: string | null;
227
+ orderEvents: FuturesOrderEvent[];
228
+ receivedTime?: string | null;
229
+ status: 'edited' | 'invalidSize' | 'invalidPrice' | 'insufficientAvailableFunds' | 'selfFill' | 'tooManySmallOrders' | 'outsidePriceCollar' | 'postWouldExecute' | 'wouldNotReducePosition' | 'orderForEditNotFound' | 'orderForEditNotAStop';
230
+ }
231
+ export interface FuturesOpenOrder {
232
+ order_id: string;
233
+ cliOrdId?: string;
234
+ status: 'untouched' | 'partiallyFilled';
235
+ side: 'buy' | 'sell';
236
+ orderType: 'lmt' | 'stop' | 'take_profit';
237
+ symbol: string;
238
+ limitPrice?: number;
239
+ stopPrice?: number;
240
+ filledSize: number;
241
+ unfilledSize?: number;
242
+ reduceOnly: boolean;
243
+ triggerSignal?: 'mark' | 'last' | 'spot';
244
+ lastUpdateTime: string;
245
+ receivedTime: string;
246
+ }
247
+ export interface FuturesSendOrderStatus {
248
+ cliOrdId?: string;
249
+ orderEvents?: FuturesOrderEvent[];
250
+ order_id?: string;
251
+ receivedTime?: string;
252
+ status: 'placed' | 'partiallyFilled' | 'filled' | 'cancelled' | 'edited' | 'marketSuspended' | 'marketInactive' | 'invalidPrice' | 'invalidSize' | 'tooManySmallOrders' | 'insufficientAvailableFunds' | 'wouldCauseLiquidation' | 'clientOrderIdAlreadyExist' | 'clientOrderIdTooBig' | 'maxPositionViolation' | 'outsidePriceCollar' | 'wouldIncreasePriceDislocation' | 'notFound' | 'orderForEditNotAStop' | 'orderForEditNotFound' | 'postWouldExecute' | 'iocWouldNotExecute' | 'selfFill' | 'wouldNotReducePosition' | 'marketIsPostOnly' | 'tooManyOrders' | 'fixedLeverageTooHigh' | 'clientOrderIdInvalid' | 'cannotEditTriggerPriceOfTrailingStop' | 'cannotEditLimitPriceOfTrailingStop' | 'wouldProcessAfterSpecifiedTime';
253
+ }
254
+ export interface FuturesTriggerOptions {
255
+ triggerPrice: number;
256
+ triggerSide: 'TRIGGER_ABOVE' | 'TRIGGER_BELOW';
257
+ triggerSignal: 'MARK_PRICE' | 'LAST_PRICE' | 'SPOT_PRICE';
258
+ triggerTime: string | null;
259
+ }
260
+ export interface FuturesOrderStatusInfo {
261
+ order: {
262
+ type: 'TRIGGER_ORDER' | 'ORDER';
263
+ orderId: string;
264
+ cliOrdId: string | null;
265
+ symbol: string;
266
+ side: string;
267
+ quantity: number | null;
268
+ filled: number | null;
269
+ limitPrice: number | null;
270
+ reduceOnly: boolean;
271
+ timestamp: string;
272
+ lastUpdateTimestamp: string;
273
+ priceTriggerOptions?: FuturesTriggerOptions;
274
+ };
275
+ status: 'ENTERED_BOOK' | 'FULLY_EXECUTED' | 'REJECTED' | 'CANCELLED' | 'TRIGGER_PLACED' | 'TRIGGER_ACTIVATION_FAILURE';
276
+ updateReason: 'LOADING_MARKET' | 'NEW_USER_ORDER' | 'LIQUIDATION_ORDER' | 'STOP_ORDER_TRIGGERED' | 'LIMIT_FROM_STOP' | 'PARTIAL_FILL' | 'FULL_FILL' | 'CANCELLED_BY_USER' | 'CONTRACT_EXPIRED' | 'NOT_ENOUGH_MARGIN' | 'MARKET_INACTIVE' | 'DEAD_MAN_SWITCH' | 'CANCELLED_BY_ADMIN' | 'POST_WOULD_EXECUTE_REASON' | 'IOC_WOULD_NOT_EXECUTE_REASON' | 'WOULD_EXECUTE_SELF_REASON' | 'WOULD_NOT_REDUCE_POSITION' | 'EDITED_BY_USER' | 'ORDER_FOR_EDIT_NOT_FOUND_REASON' | 'EXPIRED' | 'TRAILING_STOP_PRICE_UPDATED' | 'TRAILING_STOP_CANCELLED_AND_REPLACED_BY_ADMIN';
277
+ error?: string;
278
+ }
279
+ /**
280
+ * Multi-Collateral
281
+ */
282
+ export interface FuturesPnlPreference {
283
+ symbol: string;
284
+ pnlCurrency: string;
285
+ }
286
+ export interface FuturesLeveragePreference {
287
+ symbol: string;
288
+ maxLeverage: number;
289
+ }
290
+ /**
291
+ * Account Information
292
+ */
293
+ export interface FuturesFlexCurrencySummary {
294
+ quantity: number;
295
+ value: number;
296
+ collateral: number;
297
+ }
298
+ export interface FuturesPortfolioMarginBreakdown {
299
+ totalCrossAssetNettedMarketRisk: number;
300
+ totalMarketRisk: number;
301
+ totalScenarioPnls: number[];
302
+ totalAbsoluteOptionPositionDeltaNotional: number;
303
+ netPortfolioDelta: number;
304
+ totalPremium: number;
305
+ isBuyOnly: boolean;
306
+ futuresMaintenanceMargin: number;
307
+ }
308
+ export interface FuturesFlexAccount {
309
+ type: 'multiCollateralMarginAccount';
310
+ currencies: Record<string, FuturesFlexCurrencySummary>;
311
+ available: number;
312
+ initialMargin: number;
313
+ initialMarginWithOrders: number;
314
+ maintenanceMargin: number;
315
+ balanceValue: number;
316
+ portfolioValue: number;
317
+ collateralValue: number;
318
+ pnl: number;
319
+ unrealizedFunding: number;
320
+ totalUnrealized: number;
321
+ totalUnrealizedAsMargin: number;
322
+ availableMargin: number;
323
+ marginEquity: number;
324
+ portfolioMarginBreakdown?: FuturesPortfolioMarginBreakdown;
325
+ }
326
+ export interface FuturesCashAccount {
327
+ type: 'cashAccount';
328
+ balances: Record<string, string>;
329
+ }
330
+ export interface FuturesMarginAccount {
331
+ type: 'marginAccount';
332
+ currency: string;
333
+ balances: Record<string, string>;
334
+ auxiliary: {
335
+ usd: number;
336
+ pv: number;
337
+ pnl: number;
338
+ af: number;
339
+ funding: number;
340
+ };
341
+ marginRequirements: {
342
+ im: number;
343
+ mm: number;
344
+ lt: number;
345
+ tt: number;
346
+ };
347
+ triggerEstimates: {
348
+ im: number;
349
+ mm: number;
350
+ lt: number;
351
+ tt: number;
352
+ };
353
+ }
354
+ export interface FuturesAccounts {
355
+ cash?: FuturesCashAccount;
356
+ flex?: FuturesFlexAccount;
357
+ [key: string]: FuturesMarginAccount | FuturesCashAccount | FuturesFlexAccount | undefined;
358
+ }
359
+ export interface FuturesOpenPosition {
360
+ symbol: string;
361
+ side: 'long' | 'short';
362
+ size: number;
363
+ price: number;
364
+ fillTime: string;
365
+ unrealizedFunding: number | null;
366
+ pnlCurrency?: string | null;
367
+ maxFixedLeverage?: number | null;
368
+ }
369
+ export interface FuturesUnwindQueuePosition {
370
+ symbol: string;
371
+ percentile: number;
372
+ }
373
+ export interface FuturesOptionsUserLimitsPerBaseCurrency {
374
+ maxTotalPositionSize: number;
375
+ maxTotalOpenOrdersSize: number;
376
+ }
377
+ export interface FuturesPortfolioMarginParameters {
378
+ crossAssetNettingFactor: number;
379
+ extremePriceShockMultiplier: number;
380
+ volShockMultiplicationFactor: number;
381
+ volShockExponentFactor: number;
382
+ optionExpiryTimeShockHours: number;
383
+ optionsInitialMarginFactor: number;
384
+ totalOptionOrdersConsideredInInitialMarginCalc: number;
385
+ priceShockLevels: number[];
386
+ optionsUserLimits: {
387
+ maxNetPositionDelta: number;
388
+ limitsPerBaseCurrency: Record<string, FuturesOptionsUserLimitsPerBaseCurrency>;
389
+ };
390
+ }
391
+ export interface FuturesOptionGreeks {
392
+ iv: number;
393
+ delta: number;
394
+ gamma: number | null;
395
+ vega: number | null;
396
+ theta: number | null;
397
+ rho: number | null;
398
+ }
399
+ export interface FuturesPortfolioSimulation {
400
+ maintenanceMargin: number;
401
+ initialMargin: number;
402
+ pnl: number;
403
+ portfolioMarginBreakdown: FuturesPortfolioMarginBreakdown;
404
+ greeks: Record<string, FuturesOptionGreeks>;
405
+ }
406
+ /**
407
+ * Assignment Program
408
+ */
409
+ export interface FuturesAssignmentProgramParticipant {
410
+ contractType: string;
411
+ contract: string | null;
412
+ maxSize: number | null;
413
+ maxPosition: number | null;
414
+ acceptLong: boolean;
415
+ acceptShort: boolean;
416
+ timeFrame: 'all' | 'weekdays' | 'weekends';
417
+ enabled: boolean;
418
+ }
419
+ export interface FuturesAssignmentProgram {
420
+ id: number;
421
+ participant: FuturesAssignmentProgramParticipant;
422
+ contractType: string;
423
+ contract: string | null;
424
+ maxSize: number | null;
425
+ maxPosition: number | null;
426
+ acceptLong: boolean;
427
+ acceptShort: boolean;
428
+ timeFrame: 'all' | 'weekdays' | 'weekends';
429
+ enabled: boolean;
430
+ }
431
+ export interface FuturesAssignmentProgramHistory {
432
+ deleted: boolean;
433
+ participant: FuturesAssignmentProgramParticipant;
434
+ contractType: string;
435
+ contract: string | null;
436
+ maxSize: number | null;
437
+ maxPosition: number | null;
438
+ acceptLong: boolean;
439
+ acceptShort: boolean;
440
+ timeFrame: 'all' | 'weekdays' | 'weekends';
441
+ enabled: boolean;
442
+ timestamp: string;
443
+ }
444
+ /**
445
+ * Fee Schedules
446
+ */
447
+ export interface FuturesFeeTier {
448
+ makerFee: number;
449
+ takerFee: number;
450
+ usdVolume: number;
451
+ }
452
+ export interface FuturesFeeSchedule {
453
+ tiers: FuturesFeeTier[];
454
+ name: string;
455
+ uid: string;
456
+ }
457
+ /**
458
+ * General
459
+ */
460
+ export interface FuturesNotification {
461
+ effectiveTime: string;
462
+ note: string;
463
+ priority: 'low' | 'medium' | 'high';
464
+ type: 'new_feature' | 'bug_fix' | 'settlement' | 'general' | 'maintenance' | 'market';
465
+ expectedDowntimeMinutes?: number;
466
+ }
467
+ /**
468
+ * Historical Data
469
+ */
470
+ export interface FuturesFill {
471
+ cliOrdId?: string | null;
472
+ fillTime: string;
473
+ fillType: 'maker' | 'taker' | 'liquidation' | 'assignor' | 'assignee' | 'takerAfterEdit' | 'unwindBankrupt' | 'unwindCounterparty';
474
+ fill_id: string;
475
+ order_id: string;
476
+ price: number;
477
+ side: 'buy' | 'sell';
478
+ size: number;
479
+ symbol: string;
480
+ }
481
+ /**
482
+ * Historical Funding Rates
483
+ */
484
+ export interface FuturesHistoricalFundingRate {
485
+ fundingRate: number;
486
+ relativeFundingRate: number;
487
+ timestamp: string;
488
+ }
489
+ /**
490
+ * Subaccounts
491
+ */
492
+ export interface FuturesHoldingAccount {
493
+ currency: string;
494
+ amount: number;
495
+ }
496
+ export interface FuturesSingleCollateralAccount {
497
+ name: string;
498
+ availableMargin: number;
499
+ }
500
+ export interface FuturesSubaccountFlexCurrency {
501
+ currency: string;
502
+ quantity: number;
503
+ value: number;
504
+ collateral: number;
505
+ available: number;
506
+ }
507
+ export interface FuturesSubaccountFlexAccount {
508
+ currencies: FuturesSubaccountFlexCurrency[];
509
+ initialMargin: number;
510
+ initialMarginWithOrders: number;
511
+ maintenanceMargin: number;
512
+ balanceValue: number;
513
+ portfolioValue: number;
514
+ collateralValue: number;
515
+ pnl: number;
516
+ unrealizedFunding: number;
517
+ totalUnrealized: number;
518
+ totalUnrealizedAsMargin: number;
519
+ availableMargin: number;
520
+ marginEquity: number;
521
+ portfolioMarginBreakdown?: FuturesPortfolioMarginBreakdown;
522
+ }
523
+ export interface FuturesSubaccount {
524
+ accountUid: string;
525
+ email: string;
526
+ fullName: string | null;
527
+ holdingAccounts: FuturesHoldingAccount[];
528
+ futuresAccounts: FuturesSingleCollateralAccount[];
529
+ flexAccount: FuturesSubaccountFlexAccount;
530
+ }
531
+ export interface FuturesSubaccountsInfo {
532
+ masterAccountUid: string;
533
+ subaccounts: FuturesSubaccount[];
534
+ }
535
+ /**
536
+ * RFQs
537
+ */
538
+ export interface FuturesRfqLeg {
539
+ symbol: string;
540
+ size: number;
541
+ markPrice: number;
542
+ }
543
+ export interface FuturesRfq {
544
+ rfqUid: string;
545
+ expiry: string;
546
+ markPrice: number;
547
+ legs: FuturesRfqLeg[];
548
+ }
549
+ export interface FuturesOpenOffer {
550
+ uid: string;
551
+ rfqUid: string;
552
+ placementDate: string;
553
+ lastUpdateDate: string;
554
+ bid?: string;
555
+ ask?: string;
556
+ }
557
+ /**
558
+ * Account History
559
+ */
560
+ export interface FuturesHistoryResponse<T> {
561
+ accountUid: string;
562
+ len: number;
563
+ serverTime: string;
564
+ elements: T[];
565
+ continuationToken?: string;
566
+ }
567
+ export interface FuturesHistoryEventElement<T> {
568
+ uid: string;
569
+ timestamp: number;
570
+ event: T;
571
+ }
572
+ export type FuturesHistoryExecutionEvent = FuturesHistoryEventElement<any>;
573
+ export type FuturesHistoryOrderEvent = FuturesHistoryEventElement<any>;
574
+ export type FuturesHistoryTriggerEvent = FuturesHistoryEventElement<any>;
575
+ export interface FuturesPositionUpdateEvent {
576
+ accountUid: string;
577
+ tradeable: string;
578
+ oldPosition: string;
579
+ oldAverageEntryPrice: string | null;
580
+ newPosition: string;
581
+ newAverageEntryPrice: string;
582
+ fillTime?: number | null;
583
+ fee?: string;
584
+ feeCurrency?: string;
585
+ realizedPnL?: string;
586
+ positionChange: 'open' | 'close' | 'increase' | 'decrease' | 'reverse' | 'noChange';
587
+ executionUid?: string;
588
+ executionPrice?: string;
589
+ executionSize?: string;
590
+ tradeType?: 'userExecution' | 'liquidation' | 'assignment' | 'unwind';
591
+ fundingRealizationTime?: number;
592
+ realizedFunding?: string;
593
+ settlementPrice?: string;
594
+ timestamp: number;
595
+ updateReason: 'trade' | 'fundingRealisation' | 'settlement';
596
+ }
597
+ export interface FuturesAccountLogEntry {
598
+ asset: string;
599
+ booking_uid: string;
600
+ collateral: string | null;
601
+ contract: string | null;
602
+ date: string;
603
+ execution: string | null;
604
+ fee: number | null;
605
+ funding_rate: number | null;
606
+ id: number;
607
+ info: string;
608
+ margin_account: string;
609
+ mark_price: number | null;
610
+ new_average_entry_price: number | null;
611
+ new_balance: number;
612
+ old_average_entry_price: number | null;
613
+ old_balance: number;
614
+ realized_funding: number | null;
615
+ realized_pnl: number | null;
616
+ trade_price: number | null;
617
+ conversion_spread_percentage?: number | null;
618
+ liquidation_fee?: number | null;
619
+ exchange_rate?: number;
620
+ conversion_fee?: number;
621
+ exchange_rate_from?: string;
622
+ }
623
+ export interface FuturesAccountLog {
624
+ accountUid: string;
625
+ logs: FuturesAccountLogEntry[];
626
+ }
627
+ /**
628
+ * Market History
629
+ */
630
+ export interface FuturesMarketHistoryResponse<T> {
631
+ len: number;
632
+ elements: T[];
633
+ continuationToken?: string;
634
+ }
635
+ export interface FuturesMarketHistoryEventElement<T> {
636
+ uid: string;
637
+ timestamp: number;
638
+ event: T;
639
+ }
640
+ export type FuturesPublicExecutionEvent = FuturesMarketHistoryEventElement<any>;
641
+ export type FuturesPublicOrderEvent = FuturesMarketHistoryEventElement<any>;
642
+ export interface FuturesPublicMarkPriceEvent {
643
+ uid: string;
644
+ timestamp: number;
645
+ event: {
646
+ price: string;
647
+ };
648
+ }
649
+ /**
650
+ * Charts - Candles
651
+ */
652
+ export type FuturesTickType = 'spot' | 'mark' | 'trade';
653
+ export type FuturesResolution = '1m' | '5m' | '15m' | '30m' | '1h' | '4h' | '12h' | '1d' | '1w';
654
+ export interface FuturesCandle {
655
+ time: number;
656
+ high: string;
657
+ low: string;
658
+ open: string;
659
+ close: string;
660
+ volume: number;
661
+ }
662
+ export interface FuturesCandles {
663
+ candles: FuturesCandle[];
664
+ more_candles: boolean;
665
+ }
666
+ /**
667
+ * Charts - Analytics
668
+ */
669
+ export type FuturesAnalyticsType = 'open-interest' | 'aggressor-differential' | 'trade-volume' | 'trade-count' | 'liquidation-volume' | 'rolling-volatility' | 'long-short-ratio' | 'long-short-info' | 'cvd' | 'top-traders' | 'orderbook' | 'spreads' | 'liquidity' | 'slippage' | 'future-basis';
670
+ export interface FuturesAnalyticsError {
671
+ severity: string;
672
+ error_class: string;
673
+ type: string;
674
+ msg: string;
675
+ value?: string;
676
+ field?: string;
677
+ }
678
+ export interface FuturesAnalyticsResponse {
679
+ result: {
680
+ timestamp: number[];
681
+ more: boolean;
682
+ data: any;
683
+ };
684
+ errors: FuturesAnalyticsError[];
685
+ }
686
+ /**
687
+ * Auth - API Keys
688
+ */
689
+ export type FuturesApiKeyV3AccessLevel = 'NO_ACCESS' | 'READ_ONLY' | 'FULL_ACCESS';
690
+ export interface FuturesApiKeyV3Check {
691
+ apiKey: string;
692
+ accountUid: string;
693
+ iiban: string;
694
+ createdAt: string;
695
+ permissions: {
696
+ general: FuturesApiKeyV3AccessLevel;
697
+ transfer: FuturesApiKeyV3AccessLevel;
698
+ };
699
+ allowedCidrBlock: string | null;
700
+ }
701
+ /**
702
+ * Stats - Market Share
703
+ */
704
+ export interface FuturesMarketShareContract {
705
+ marketShare: string;
706
+ volume: string;
707
+ usdRebateCredited: string;
708
+ }
709
+ export interface FuturesMarketShare {
710
+ contracts: Record<string, FuturesMarketShareContract>;
711
+ }
712
+ export type FuturesSelfTradeStrategy = 'REJECT_TAKER' | 'CANCEL_MAKER_SELF' | 'CANCEL_MAKER_CHILD' | 'CANCEL_MAKER_ANY';