extended-typescript-sdk 0.0.7 → 0.8.1

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 (255) hide show
  1. package/dist/cjs/config.d.ts +2 -2
  2. package/dist/cjs/config.js +1 -1
  3. package/dist/cjs/index.d.ts +3 -1
  4. package/dist/cjs/index.d.ts.map +1 -1
  5. package/dist/cjs/index.js +12 -3
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/perpetual/amounts.d.ts.map +1 -1
  8. package/dist/cjs/perpetual/amounts.js +1 -8
  9. package/dist/cjs/perpetual/amounts.js.map +1 -1
  10. package/dist/cjs/perpetual/assets.d.ts +1 -1
  11. package/dist/cjs/perpetual/assets.d.ts.map +1 -1
  12. package/dist/cjs/perpetual/assets.js +2 -3
  13. package/dist/cjs/perpetual/assets.js.map +1 -1
  14. package/dist/cjs/perpetual/crypto/signer.d.ts +2 -0
  15. package/dist/cjs/perpetual/crypto/signer.d.ts.map +1 -1
  16. package/dist/cjs/perpetual/crypto/signer.js +11 -1
  17. package/dist/cjs/perpetual/crypto/signer.js.map +1 -1
  18. package/dist/cjs/perpetual/order-object-settlement.d.ts +2 -1
  19. package/dist/cjs/perpetual/order-object-settlement.d.ts.map +1 -1
  20. package/dist/cjs/perpetual/order-object-settlement.js +3 -1
  21. package/dist/cjs/perpetual/order-object-settlement.js.map +1 -1
  22. package/dist/cjs/perpetual/order-object.d.ts.map +1 -1
  23. package/dist/cjs/perpetual/order-object.js +14 -2
  24. package/dist/cjs/perpetual/order-object.js.map +1 -1
  25. package/dist/cjs/perpetual/orderbook.d.ts +48 -0
  26. package/dist/cjs/perpetual/orderbook.d.ts.map +1 -0
  27. package/dist/cjs/perpetual/orderbook.js +266 -0
  28. package/dist/cjs/perpetual/orderbook.js.map +1 -0
  29. package/dist/cjs/perpetual/orders.d.ts +4 -2
  30. package/dist/cjs/perpetual/orders.d.ts.map +1 -1
  31. package/dist/cjs/perpetual/orders.js +3 -1
  32. package/dist/cjs/perpetual/orders.js.map +1 -1
  33. package/dist/cjs/perpetual/simple-client/blocking-trading-client.d.ts +59 -0
  34. package/dist/cjs/perpetual/simple-client/blocking-trading-client.d.ts.map +1 -0
  35. package/dist/cjs/perpetual/simple-client/blocking-trading-client.js +198 -0
  36. package/dist/cjs/perpetual/simple-client/blocking-trading-client.js.map +1 -0
  37. package/dist/config.d.ts +11 -0
  38. package/dist/config.d.ts.map +1 -0
  39. package/dist/config.js +15 -0
  40. package/dist/config.js.map +1 -0
  41. package/dist/errors.d.ts +25 -0
  42. package/dist/errors.d.ts.map +1 -0
  43. package/dist/errors.js +45 -0
  44. package/dist/errors.js.map +1 -0
  45. package/dist/esm/config.d.ts +2 -2
  46. package/dist/esm/config.js +1 -1
  47. package/dist/esm/index.d.ts +3 -1
  48. package/dist/esm/index.d.ts.map +1 -1
  49. package/dist/esm/index.js +4 -1
  50. package/dist/esm/index.js.map +1 -1
  51. package/dist/esm/perpetual/amounts.d.ts.map +1 -1
  52. package/dist/esm/perpetual/amounts.js +1 -8
  53. package/dist/esm/perpetual/amounts.js.map +1 -1
  54. package/dist/esm/perpetual/assets.d.ts +1 -1
  55. package/dist/esm/perpetual/assets.d.ts.map +1 -1
  56. package/dist/esm/perpetual/assets.js +2 -3
  57. package/dist/esm/perpetual/assets.js.map +1 -1
  58. package/dist/esm/perpetual/crypto/signer.d.ts +2 -0
  59. package/dist/esm/perpetual/crypto/signer.d.ts.map +1 -1
  60. package/dist/esm/perpetual/crypto/signer.js +10 -1
  61. package/dist/esm/perpetual/crypto/signer.js.map +1 -1
  62. package/dist/esm/perpetual/order-object-settlement.d.ts +2 -1
  63. package/dist/esm/perpetual/order-object-settlement.d.ts.map +1 -1
  64. package/dist/esm/perpetual/order-object-settlement.js +3 -1
  65. package/dist/esm/perpetual/order-object-settlement.js.map +1 -1
  66. package/dist/esm/perpetual/order-object.d.ts.map +1 -1
  67. package/dist/esm/perpetual/order-object.js +14 -2
  68. package/dist/esm/perpetual/order-object.js.map +1 -1
  69. package/dist/esm/perpetual/orderbook.d.ts +48 -0
  70. package/dist/esm/perpetual/orderbook.d.ts.map +1 -0
  71. package/dist/esm/perpetual/orderbook.js +257 -0
  72. package/dist/esm/perpetual/orderbook.js.map +1 -0
  73. package/dist/esm/perpetual/orders.d.ts +4 -2
  74. package/dist/esm/perpetual/orders.d.ts.map +1 -1
  75. package/dist/esm/perpetual/orders.js +3 -1
  76. package/dist/esm/perpetual/orders.js.map +1 -1
  77. package/dist/esm/perpetual/simple-client/blocking-trading-client.d.ts +59 -0
  78. package/dist/esm/perpetual/simple-client/blocking-trading-client.d.ts.map +1 -0
  79. package/dist/esm/perpetual/simple-client/blocking-trading-client.js +192 -0
  80. package/dist/esm/perpetual/simple-client/blocking-trading-client.js.map +1 -0
  81. package/dist/index.d.ts +42 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +155 -0
  84. package/dist/index.js.map +1 -0
  85. package/dist/perpetual/accounts.d.ts +147 -0
  86. package/dist/perpetual/accounts.d.ts.map +1 -0
  87. package/dist/perpetual/accounts.js +236 -0
  88. package/dist/perpetual/accounts.js.map +1 -0
  89. package/dist/perpetual/amounts.d.ts +41 -0
  90. package/dist/perpetual/amounts.d.ts.map +1 -0
  91. package/dist/perpetual/amounts.js +79 -0
  92. package/dist/perpetual/amounts.js.map +1 -0
  93. package/dist/perpetual/assets.d.ts +74 -0
  94. package/dist/perpetual/assets.d.ts.map +1 -0
  95. package/dist/perpetual/assets.js +119 -0
  96. package/dist/perpetual/assets.js.map +1 -0
  97. package/dist/perpetual/bridges.d.ts +29 -0
  98. package/dist/perpetual/bridges.d.ts.map +1 -0
  99. package/dist/perpetual/bridges.js +45 -0
  100. package/dist/perpetual/bridges.js.map +1 -0
  101. package/dist/perpetual/candles.d.ts +26 -0
  102. package/dist/perpetual/candles.d.ts.map +1 -0
  103. package/dist/perpetual/candles.js +29 -0
  104. package/dist/perpetual/candles.js.map +1 -0
  105. package/dist/perpetual/clients.d.ts +15 -0
  106. package/dist/perpetual/clients.d.ts.map +1 -0
  107. package/dist/perpetual/clients.js +25 -0
  108. package/dist/perpetual/clients.js.map +1 -0
  109. package/dist/perpetual/configuration.d.ts +39 -0
  110. package/dist/perpetual/configuration.d.ts.map +1 -0
  111. package/dist/perpetual/configuration.js +61 -0
  112. package/dist/perpetual/configuration.js.map +1 -0
  113. package/dist/perpetual/crypto/signer.d.ts +166 -0
  114. package/dist/perpetual/crypto/signer.d.ts.map +1 -0
  115. package/dist/perpetual/crypto/signer.js +342 -0
  116. package/dist/perpetual/crypto/signer.js.map +1 -0
  117. package/dist/perpetual/custom-signer.d.ts +51 -0
  118. package/dist/perpetual/custom-signer.d.ts.map +1 -0
  119. package/dist/perpetual/custom-signer.js +18 -0
  120. package/dist/perpetual/custom-signer.js.map +1 -0
  121. package/dist/perpetual/fees.d.ts +20 -0
  122. package/dist/perpetual/fees.d.ts.map +1 -0
  123. package/dist/perpetual/fees.js +35 -0
  124. package/dist/perpetual/fees.js.map +1 -0
  125. package/dist/perpetual/funding-rates.d.ts +15 -0
  126. package/dist/perpetual/funding-rates.d.ts.map +1 -0
  127. package/dist/perpetual/funding-rates.js +23 -0
  128. package/dist/perpetual/funding-rates.js.map +1 -0
  129. package/dist/perpetual/markets.d.ts +83 -0
  130. package/dist/perpetual/markets.d.ts.map +1 -0
  131. package/dist/perpetual/markets.js +124 -0
  132. package/dist/perpetual/markets.js.map +1 -0
  133. package/dist/perpetual/order-object-settlement.d.ts +44 -0
  134. package/dist/perpetual/order-object-settlement.d.ts.map +1 -0
  135. package/dist/perpetual/order-object-settlement.js +123 -0
  136. package/dist/perpetual/order-object-settlement.js.map +1 -0
  137. package/dist/perpetual/order-object.d.ts +38 -0
  138. package/dist/perpetual/order-object.d.ts.map +1 -0
  139. package/dist/perpetual/order-object.js +102 -0
  140. package/dist/perpetual/order-object.js.map +1 -0
  141. package/dist/perpetual/orderbook.d.ts +48 -0
  142. package/dist/perpetual/orderbook.d.ts.map +1 -0
  143. package/dist/perpetual/orderbook.js +265 -0
  144. package/dist/perpetual/orderbook.js.map +1 -0
  145. package/dist/perpetual/orderbooks.d.ts +23 -0
  146. package/dist/perpetual/orderbooks.d.ts.map +1 -0
  147. package/dist/perpetual/orderbooks.js +36 -0
  148. package/dist/perpetual/orderbooks.js.map +1 -0
  149. package/dist/perpetual/orders.d.ts +209 -0
  150. package/dist/perpetual/orders.d.ts.map +1 -0
  151. package/dist/perpetual/orders.js +268 -0
  152. package/dist/perpetual/orders.js.map +1 -0
  153. package/dist/perpetual/positions.d.ts +80 -0
  154. package/dist/perpetual/positions.d.ts.map +1 -0
  155. package/dist/perpetual/positions.js +94 -0
  156. package/dist/perpetual/positions.js.map +1 -0
  157. package/dist/perpetual/simple-client/blocking-trading-client.d.ts +59 -0
  158. package/dist/perpetual/simple-client/blocking-trading-client.d.ts.map +1 -0
  159. package/dist/perpetual/simple-client/blocking-trading-client.js +197 -0
  160. package/dist/perpetual/simple-client/blocking-trading-client.js.map +1 -0
  161. package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts +47 -0
  162. package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts.map +1 -0
  163. package/dist/perpetual/stream-client/perpetual-stream-connection.js +125 -0
  164. package/dist/perpetual/stream-client/perpetual-stream-connection.js.map +1 -0
  165. package/dist/perpetual/stream-client/stream-client.d.ts +62 -0
  166. package/dist/perpetual/stream-client/stream-client.d.ts.map +1 -0
  167. package/dist/perpetual/stream-client/stream-client.js +107 -0
  168. package/dist/perpetual/stream-client/stream-client.js.map +1 -0
  169. package/dist/perpetual/trades.d.ts +44 -0
  170. package/dist/perpetual/trades.d.ts.map +1 -0
  171. package/dist/perpetual/trades.js +48 -0
  172. package/dist/perpetual/trades.js.map +1 -0
  173. package/dist/perpetual/trading-client/account-module.d.ts +192 -0
  174. package/dist/perpetual/trading-client/account-module.d.ts.map +1 -0
  175. package/dist/perpetual/trading-client/account-module.js +359 -0
  176. package/dist/perpetual/trading-client/account-module.js.map +1 -0
  177. package/dist/perpetual/trading-client/base-module.d.ts +27 -0
  178. package/dist/perpetual/trading-client/base-module.d.ts.map +1 -0
  179. package/dist/perpetual/trading-client/base-module.js +49 -0
  180. package/dist/perpetual/trading-client/base-module.js.map +1 -0
  181. package/dist/perpetual/trading-client/info-module.d.ts +24 -0
  182. package/dist/perpetual/trading-client/info-module.d.ts.map +1 -0
  183. package/dist/perpetual/trading-client/info-module.js +33 -0
  184. package/dist/perpetual/trading-client/info-module.js.map +1 -0
  185. package/dist/perpetual/trading-client/markets-information-module.d.ts +53 -0
  186. package/dist/perpetual/trading-client/markets-information-module.d.ts.map +1 -0
  187. package/dist/perpetual/trading-client/markets-information-module.js +106 -0
  188. package/dist/perpetual/trading-client/markets-information-module.js.map +1 -0
  189. package/dist/perpetual/trading-client/order-management-module.d.ts +40 -0
  190. package/dist/perpetual/trading-client/order-management-module.d.ts.map +1 -0
  191. package/dist/perpetual/trading-client/order-management-module.js +71 -0
  192. package/dist/perpetual/trading-client/order-management-module.js.map +1 -0
  193. package/dist/perpetual/trading-client/testnet-module.d.ts +27 -0
  194. package/dist/perpetual/trading-client/testnet-module.d.ts.map +1 -0
  195. package/dist/perpetual/trading-client/testnet-module.js +45 -0
  196. package/dist/perpetual/trading-client/testnet-module.js.map +1 -0
  197. package/dist/perpetual/trading-client/trading-client.d.ts +75 -0
  198. package/dist/perpetual/trading-client/trading-client.d.ts.map +1 -0
  199. package/dist/perpetual/trading-client/trading-client.js +115 -0
  200. package/dist/perpetual/trading-client/trading-client.js.map +1 -0
  201. package/dist/perpetual/transfer-object.d.ts +12 -0
  202. package/dist/perpetual/transfer-object.d.ts.map +1 -0
  203. package/dist/perpetual/transfer-object.js +57 -0
  204. package/dist/perpetual/transfer-object.js.map +1 -0
  205. package/dist/perpetual/transfers.d.ts +54 -0
  206. package/dist/perpetual/transfers.d.ts.map +1 -0
  207. package/dist/perpetual/transfers.js +90 -0
  208. package/dist/perpetual/transfers.js.map +1 -0
  209. package/dist/perpetual/user-client/onboarding.d.ts +101 -0
  210. package/dist/perpetual/user-client/onboarding.d.ts.map +1 -0
  211. package/dist/perpetual/user-client/onboarding.js +247 -0
  212. package/dist/perpetual/user-client/onboarding.js.map +1 -0
  213. package/dist/perpetual/user-client/user-client.d.ts +45 -0
  214. package/dist/perpetual/user-client/user-client.d.ts.map +1 -0
  215. package/dist/perpetual/user-client/user-client.js +185 -0
  216. package/dist/perpetual/user-client/user-client.js.map +1 -0
  217. package/dist/perpetual/withdrawal-object.d.ts +12 -0
  218. package/dist/perpetual/withdrawal-object.d.ts.map +1 -0
  219. package/dist/perpetual/withdrawal-object.js +51 -0
  220. package/dist/perpetual/withdrawal-object.js.map +1 -0
  221. package/dist/perpetual/withdrawals.d.ts +40 -0
  222. package/dist/perpetual/withdrawals.d.ts.map +1 -0
  223. package/dist/perpetual/withdrawals.js +65 -0
  224. package/dist/perpetual/withdrawals.js.map +1 -0
  225. package/dist/utils/date.d.ts +13 -0
  226. package/dist/utils/date.d.ts.map +1 -0
  227. package/dist/utils/date.js +21 -0
  228. package/dist/utils/date.js.map +1 -0
  229. package/dist/utils/env.d.ts +50 -0
  230. package/dist/utils/env.d.ts.map +1 -0
  231. package/dist/utils/env.js +157 -0
  232. package/dist/utils/env.js.map +1 -0
  233. package/dist/utils/http.d.ts +98 -0
  234. package/dist/utils/http.d.ts.map +1 -0
  235. package/dist/utils/http.js +290 -0
  236. package/dist/utils/http.js.map +1 -0
  237. package/dist/utils/model.d.ts +35 -0
  238. package/dist/utils/model.d.ts.map +1 -0
  239. package/dist/utils/model.js +86 -0
  240. package/dist/utils/model.js.map +1 -0
  241. package/dist/utils/nonce.d.ts +9 -0
  242. package/dist/utils/nonce.d.ts.map +1 -0
  243. package/dist/utils/nonce.js +14 -0
  244. package/dist/utils/nonce.js.map +1 -0
  245. package/dist/utils/string.d.ts +10 -0
  246. package/dist/utils/string.d.ts.map +1 -0
  247. package/dist/utils/string.js +20 -0
  248. package/dist/utils/string.js.map +1 -0
  249. package/package.json +91 -91
  250. package/wasm/stark_crypto_wasm.d-web.ts +34 -26
  251. package/wasm/stark_crypto_wasm.d.ts +34 -26
  252. package/wasm/stark_crypto_wasm.js +113 -111
  253. package/wasm/stark_crypto_wasm_bg-web.js +101 -108
  254. package/wasm/stark_crypto_wasm_bg-web.wasm +0 -0
  255. package/wasm/stark_crypto_wasm_bg.wasm +0 -0
@@ -0,0 +1,197 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockingTradingClient = exports.TimedCancel = exports.TimedOpenOrderModel = void 0;
4
+ const order_object_1 = require("../order-object");
5
+ const orders_1 = require("../orders");
6
+ const stream_client_1 = require("../stream-client/stream-client");
7
+ const markets_information_module_1 = require("../trading-client/markets-information-module");
8
+ const order_management_module_1 = require("../trading-client/order-management-module");
9
+ function sleep(ms) {
10
+ return new Promise((resolve) => setTimeout(resolve, ms));
11
+ }
12
+ function withTimeout(promise, timeoutMs, message) {
13
+ return new Promise((resolve, reject) => {
14
+ const timer = setTimeout(() => reject(new Error(message)), timeoutMs);
15
+ promise
16
+ .then((value) => {
17
+ clearTimeout(timer);
18
+ resolve(value);
19
+ })
20
+ .catch((error) => {
21
+ clearTimeout(timer);
22
+ reject(error);
23
+ });
24
+ });
25
+ }
26
+ function externalIdOf(order) {
27
+ return order?.externalId ?? order?.external_id;
28
+ }
29
+ function statusOf(order) {
30
+ return order?.status;
31
+ }
32
+ class TimedOpenOrderModel {
33
+ startNanos;
34
+ endNanos;
35
+ operationMs;
36
+ openOrder;
37
+ constructor(startNanos, endNanos, openOrder) {
38
+ this.startNanos = startNanos;
39
+ this.endNanos = endNanos;
40
+ this.operationMs = (endNanos - startNanos) / 1_000_000;
41
+ this.openOrder = openOrder;
42
+ }
43
+ }
44
+ exports.TimedOpenOrderModel = TimedOpenOrderModel;
45
+ class TimedCancel {
46
+ startNanos;
47
+ endNanos;
48
+ operationMs;
49
+ constructor(startNanos, endNanos) {
50
+ this.startNanos = startNanos;
51
+ this.endNanos = endNanos;
52
+ this.operationMs = (endNanos - startNanos) / 1_000_000;
53
+ }
54
+ }
55
+ exports.TimedCancel = TimedCancel;
56
+ class BlockingTradingClient {
57
+ endpointConfig;
58
+ account;
59
+ marketModule;
60
+ ordersModule;
61
+ markets = null;
62
+ streamClient;
63
+ orderResolvers = new Map();
64
+ cancelResolvers = new Map();
65
+ streamTask;
66
+ stopped = false;
67
+ static async create(endpointConfig, account) {
68
+ const client = new BlockingTradingClient(endpointConfig, account);
69
+ client.startStream();
70
+ return client;
71
+ }
72
+ constructor(endpointConfig, account) {
73
+ this.endpointConfig = endpointConfig;
74
+ this.account = account;
75
+ this.marketModule = new markets_information_module_1.MarketsInformationModule(endpointConfig, { apiKey: account.getApiKey() });
76
+ this.ordersModule = new order_management_module_1.OrderManagementModule(endpointConfig, { apiKey: account.getApiKey() });
77
+ this.streamClient = new stream_client_1.PerpetualStreamClient({ apiUrl: endpointConfig.streamUrl });
78
+ }
79
+ startStream() {
80
+ if (this.streamTask) {
81
+ return;
82
+ }
83
+ this.stopped = false;
84
+ this.streamTask = this.streamLoop();
85
+ }
86
+ async streamLoop() {
87
+ while (!this.stopped) {
88
+ const stream = this.streamClient.subscribeToAccountUpdates(this.account.getApiKey());
89
+ try {
90
+ await stream.connect();
91
+ for await (const event of stream) {
92
+ if (this.stopped) {
93
+ break;
94
+ }
95
+ const orders = event?.data?.orders;
96
+ if (!Array.isArray(orders)) {
97
+ continue;
98
+ }
99
+ for (const order of orders) {
100
+ await this.handleOrder(order);
101
+ }
102
+ }
103
+ }
104
+ catch {
105
+ }
106
+ finally {
107
+ await stream.close();
108
+ }
109
+ if (!this.stopped) {
110
+ await sleep(1000);
111
+ }
112
+ }
113
+ }
114
+ async handleOrder(order) {
115
+ const externalId = externalIdOf(order);
116
+ if (!externalId) {
117
+ return;
118
+ }
119
+ const status = statusOf(order);
120
+ if (status === orders_1.OrderStatus.CANCELLED) {
121
+ const cancelResolver = this.cancelResolvers.get(externalId);
122
+ if (cancelResolver) {
123
+ cancelResolver.resolve();
124
+ this.cancelResolvers.delete(externalId);
125
+ }
126
+ return;
127
+ }
128
+ const orderResolver = this.orderResolvers.get(externalId);
129
+ if (orderResolver) {
130
+ orderResolver.resolve(order);
131
+ this.orderResolvers.delete(externalId);
132
+ }
133
+ }
134
+ async getMarkets() {
135
+ if (!this.markets) {
136
+ this.markets = await this.marketModule.getMarketsDict();
137
+ }
138
+ return this.markets;
139
+ }
140
+ async massCancel(options = {}) {
141
+ await this.ordersModule.massCancel(options);
142
+ }
143
+ async createAndPlaceOrder(options) {
144
+ const market = (await this.getMarkets())[options.marketName];
145
+ if (!market) {
146
+ throw new Error(`Market '${options.marketName}' not found.`);
147
+ }
148
+ const order = await (0, order_object_1.createOrderObject)(this.account, market, options.amountOfSynthetic, options.price, options.side, this.endpointConfig.starknetDomain, {
149
+ postOnly: options.postOnly,
150
+ previousOrderExternalId: options.previousOrderExternalId,
151
+ orderExternalId: options.externalId,
152
+ builderFee: options.builderFee,
153
+ builderId: options.builderId,
154
+ timeInForce: options.timeInForce,
155
+ });
156
+ const externalId = order.id;
157
+ if (this.orderResolvers.has(externalId)) {
158
+ throw new Error(`Order with external id '${externalId}' is already pending.`);
159
+ }
160
+ const startedAt = Date.now() * 1_000_000;
161
+ const orderEventPromise = new Promise((resolve, reject) => {
162
+ this.orderResolvers.set(externalId, { resolve, reject });
163
+ });
164
+ try {
165
+ await this.ordersModule.placeOrder(order);
166
+ const openOrder = await withTimeout(orderEventPromise, 5000, `No placement event received for external id '${externalId}'.`);
167
+ const finishedAt = Date.now() * 1_000_000;
168
+ return new TimedOpenOrderModel(startedAt, finishedAt, openOrder);
169
+ }
170
+ finally {
171
+ this.orderResolvers.delete(externalId);
172
+ }
173
+ }
174
+ async cancelOrder(options) {
175
+ const startedAt = Date.now() * 1_000_000;
176
+ const externalId = options.orderExternalId;
177
+ const cancelEventPromise = new Promise((resolve, reject) => {
178
+ this.cancelResolvers.set(externalId, { resolve, reject });
179
+ });
180
+ try {
181
+ await this.ordersModule.cancelOrderByExternalId(externalId);
182
+ await withTimeout(cancelEventPromise, 5000, `No cancellation event received for external id '${externalId}'.`);
183
+ const finishedAt = Date.now() * 1_000_000;
184
+ return new TimedCancel(startedAt, finishedAt);
185
+ }
186
+ finally {
187
+ this.cancelResolvers.delete(externalId);
188
+ }
189
+ }
190
+ async close() {
191
+ this.stopped = true;
192
+ await this.marketModule.closeSession();
193
+ await this.ordersModule.closeSession();
194
+ }
195
+ }
196
+ exports.BlockingTradingClient = BlockingTradingClient;
197
+ //# sourceMappingURL=blocking-trading-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocking-trading-client.js","sourceRoot":"","sources":["../../../src/perpetual/simple-client/blocking-trading-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Perpetual stream connection for WebSocket streaming
3
+ */
4
+ import { WrappedStreamResponse } from '../../utils/http';
5
+ /**
6
+ * Perpetual stream connection
7
+ */
8
+ export declare class PerpetualStreamConnection<T> {
9
+ private streamUrl;
10
+ private apiKey?;
11
+ private msgsCount;
12
+ private websocket?;
13
+ constructor(streamUrl: string, apiKey?: string);
14
+ /**
15
+ * Send data through WebSocket
16
+ */
17
+ send(data: string | Buffer): Promise<void>;
18
+ /**
19
+ * Receive message from WebSocket
20
+ */
21
+ recv(): Promise<WrappedStreamResponse<T>>;
22
+ /**
23
+ * Close WebSocket connection
24
+ */
25
+ close(): Promise<void>;
26
+ /**
27
+ * Get messages count
28
+ */
29
+ getMsgsCount(): number;
30
+ /**
31
+ * Check if connection is closed
32
+ */
33
+ isClosed(): boolean;
34
+ /**
35
+ * Connect to WebSocket
36
+ */
37
+ connect(): Promise<this>;
38
+ /**
39
+ * Receive message
40
+ */
41
+ private receive;
42
+ /**
43
+ * Async iterator for messages
44
+ */
45
+ [Symbol.asyncIterator](): AsyncIterator<WrappedStreamResponse<T>>;
46
+ }
47
+ //# sourceMappingURL=perpetual-stream-connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perpetual-stream-connection.d.ts","sourceRoot":"","sources":["../../../src/perpetual/stream-client/perpetual-stream-connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;GAEG;AACH,qBAAa,yBAAyB,CAAC,CAAC;IACtC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAY;gBAElB,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAK9C;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAO/C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAOnB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB9B;;OAEG;YACW,OAAO;IAqBrB;;OAEG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;CASzE"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ /**
3
+ * Perpetual stream connection for WebSocket streaming
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PerpetualStreamConnection = void 0;
10
+ const ws_1 = __importDefault(require("ws"));
11
+ const config_1 = require("../../config");
12
+ const http_1 = require("../../utils/http");
13
+ /**
14
+ * Perpetual stream connection
15
+ */
16
+ class PerpetualStreamConnection {
17
+ streamUrl;
18
+ apiKey;
19
+ msgsCount = 0;
20
+ websocket;
21
+ constructor(streamUrl, apiKey) {
22
+ this.streamUrl = streamUrl;
23
+ this.apiKey = apiKey;
24
+ }
25
+ /**
26
+ * Send data through WebSocket
27
+ */
28
+ async send(data) {
29
+ if (!this.websocket || this.websocket.readyState !== ws_1.default.OPEN) {
30
+ throw new Error('WebSocket is not connected');
31
+ }
32
+ this.websocket.send(data);
33
+ }
34
+ /**
35
+ * Receive message from WebSocket
36
+ */
37
+ async recv() {
38
+ if (!this.websocket) {
39
+ throw new Error('WebSocket is not connected');
40
+ }
41
+ return await this.receive();
42
+ }
43
+ /**
44
+ * Close WebSocket connection
45
+ */
46
+ async close() {
47
+ if (this.websocket && this.websocket.readyState === ws_1.default.OPEN) {
48
+ this.websocket.close();
49
+ }
50
+ }
51
+ /**
52
+ * Get messages count
53
+ */
54
+ getMsgsCount() {
55
+ return this.msgsCount;
56
+ }
57
+ /**
58
+ * Check if connection is closed
59
+ */
60
+ isClosed() {
61
+ if (!this.websocket) {
62
+ return true;
63
+ }
64
+ return this.websocket.readyState === ws_1.default.CLOSED;
65
+ }
66
+ /**
67
+ * Connect to WebSocket
68
+ */
69
+ async connect() {
70
+ const extraHeaders = {
71
+ [http_1.RequestHeader.USER_AGENT]: config_1.USER_AGENT,
72
+ };
73
+ if (this.apiKey) {
74
+ extraHeaders[http_1.RequestHeader.API_KEY] = this.apiKey;
75
+ }
76
+ return new Promise((resolve, reject) => {
77
+ this.websocket = new ws_1.default(this.streamUrl, {
78
+ headers: extraHeaders,
79
+ });
80
+ this.websocket.on('open', () => {
81
+ resolve(this);
82
+ });
83
+ this.websocket.on('error', (error) => {
84
+ reject(error);
85
+ });
86
+ });
87
+ }
88
+ /**
89
+ * Receive message
90
+ */
91
+ async receive() {
92
+ if (!this.websocket) {
93
+ throw new Error('WebSocket is not connected');
94
+ }
95
+ return new Promise((resolve, reject) => {
96
+ const messageHandler = (data) => {
97
+ this.msgsCount++;
98
+ try {
99
+ const parsed = JSON.parse(data.toString());
100
+ resolve(parsed);
101
+ }
102
+ catch (error) {
103
+ reject(error);
104
+ }
105
+ };
106
+ this.websocket.once('message', messageHandler);
107
+ this.websocket.on('error', reject);
108
+ });
109
+ }
110
+ /**
111
+ * Async iterator for messages
112
+ */
113
+ async *[Symbol.asyncIterator]() {
114
+ while (!this.isClosed()) {
115
+ try {
116
+ yield await this.receive();
117
+ }
118
+ catch (error) {
119
+ break;
120
+ }
121
+ }
122
+ }
123
+ }
124
+ exports.PerpetualStreamConnection = PerpetualStreamConnection;
125
+ //# sourceMappingURL=perpetual-stream-connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perpetual-stream-connection.js","sourceRoot":"","sources":["../../../src/perpetual/stream-client/perpetual-stream-connection.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,4CAA2B;AAC3B,yCAA0C;AAC1C,2CAAiD;AAGjD;;GAEG;AACH,MAAa,yBAAyB;IAC5B,SAAS,CAAS;IAClB,MAAM,CAAU;IAChB,SAAS,GAAW,CAAC,CAAC;IACtB,SAAS,CAAa;IAE9B,YAAY,SAAiB,EAAE,MAAe;QAC5C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,IAAqB;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,YAAS,CAAC,IAAI,EAAE,CAAC;YACnE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,KAAK,YAAS,CAAC,MAAM,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,YAAY,GAA2B;YAC3C,CAAC,oBAAa,CAAC,UAAU,CAAC,EAAE,mBAAU;SACvC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,YAAY,CAAC,oBAAa,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAS,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC7C,OAAO,EAAE,YAAY;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC7B,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,cAAc,GAAG,CAAC,IAAoB,EAAE,EAAE;gBAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC3C,OAAO,CAAC,MAAkC,CAAC,CAAC;gBAC9C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;YAEF,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YAChD,IAAI,CAAC,SAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAA,CAAE,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAxHD,8DAwHC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Perpetual stream client for WebSocket streaming
3
+ */
4
+ import { PerpetualStreamConnection } from './perpetual-stream-connection';
5
+ /**
6
+ * Perpetual Stream Client for X10 WebSocket v1
7
+ */
8
+ export declare class PerpetualStreamClient {
9
+ private apiUrl;
10
+ constructor(options: {
11
+ apiUrl: string;
12
+ });
13
+ /**
14
+ * Subscribe to orderbooks stream
15
+ * https://api.docs.extended.exchange/#orderbooks-stream
16
+ */
17
+ subscribeToOrderbooks(options?: {
18
+ marketName?: string;
19
+ depth?: number;
20
+ }): PerpetualStreamConnection<any>;
21
+ /**
22
+ * Subscribe to public trades stream
23
+ * https://api.docs.extended.exchange/#trades-stream
24
+ */
25
+ subscribeToPublicTrades(marketName?: string): PerpetualStreamConnection<any>;
26
+ /**
27
+ * Subscribe to funding rates stream
28
+ * https://api.docs.extended.exchange/#funding-rates-stream
29
+ */
30
+ subscribeToFundingRates(marketName?: string): PerpetualStreamConnection<any>;
31
+ /**
32
+ * Subscribe to candles stream
33
+ * https://api.docs.extended.exchange/#candles-stream
34
+ */
35
+ subscribeToCandles(options: {
36
+ marketName: string;
37
+ candleType: string;
38
+ interval: string;
39
+ }): PerpetualStreamConnection<any>;
40
+ /**
41
+ * Subscribe to mark price stream
42
+ * https://api.docs.extended.exchange/#mark-price-stream
43
+ *
44
+ * @param marketName - Optional market name. If not specified, subscribes to all markets
45
+ * @returns PerpetualStreamConnection for mark price updates
46
+ */
47
+ subscribeToMarkPrice(marketName?: string): PerpetualStreamConnection<any>;
48
+ /**
49
+ * Subscribe to index price stream
50
+ * https://api.docs.extended.exchange/#index-price-stream
51
+ *
52
+ * @param marketName - Optional market name. If not specified, subscribes to all markets
53
+ * @returns PerpetualStreamConnection for index price updates
54
+ */
55
+ subscribeToIndexPrice(marketName?: string): PerpetualStreamConnection<any>;
56
+ /**
57
+ * Subscribe to account updates stream
58
+ * https://api.docs.extended.exchange/#account-updates-stream
59
+ */
60
+ subscribeToAccountUpdates(apiKey: string): PerpetualStreamConnection<any>;
61
+ }
62
+ //# sourceMappingURL=stream-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-client.d.ts","sourceRoot":"","sources":["../../../src/perpetual/stream-client/stream-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAI1E;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE;IAIvC;;;OAGG;IACH,qBAAqB,CAAC,OAAO,GAAE;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GAAG,yBAAyB,CAAC,GAAG,CAAC;IAavC;;;OAGG;IACH,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC;IAS5E;;;OAGG;IACH,uBAAuB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC;IAS5E;;;OAGG;IACH,kBAAkB,CAAC,OAAO,EAAE;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,yBAAyB,CAAC,GAAG,CAAC;IAclC;;;;;;OAMG;IACH,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC;IASzE;;;;;;OAMG;IACH,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC;IAS1E;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,yBAAyB,CAAC,GAAG,CAAC;CAI1E"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Perpetual stream client for WebSocket streaming
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.PerpetualStreamClient = void 0;
7
+ const perpetual_stream_connection_1 = require("./perpetual-stream-connection");
8
+ const http_1 = require("../../utils/http");
9
+ /**
10
+ * Perpetual Stream Client for X10 WebSocket v1
11
+ */
12
+ class PerpetualStreamClient {
13
+ apiUrl;
14
+ constructor(options) {
15
+ this.apiUrl = options.apiUrl;
16
+ }
17
+ /**
18
+ * Subscribe to orderbooks stream
19
+ * https://api.docs.extended.exchange/#orderbooks-stream
20
+ */
21
+ subscribeToOrderbooks(options = {}) {
22
+ const path = options.marketName
23
+ ? `/orderbooks/<market>`
24
+ : '/orderbooks';
25
+ const url = (0, http_1.getUrl)(`${this.apiUrl}${path}`, {
26
+ pathParams: options.marketName ? { market: options.marketName } : undefined,
27
+ query: options.depth ? { depth: options.depth.toString() } : undefined,
28
+ });
29
+ return new perpetual_stream_connection_1.PerpetualStreamConnection(url);
30
+ }
31
+ /**
32
+ * Subscribe to public trades stream
33
+ * https://api.docs.extended.exchange/#trades-stream
34
+ */
35
+ subscribeToPublicTrades(marketName) {
36
+ const path = marketName ? '/publicTrades/<market>' : '/publicTrades';
37
+ const url = (0, http_1.getUrl)(`${this.apiUrl}${path}`, {
38
+ pathParams: marketName ? { market: marketName } : undefined,
39
+ });
40
+ return new perpetual_stream_connection_1.PerpetualStreamConnection(url);
41
+ }
42
+ /**
43
+ * Subscribe to funding rates stream
44
+ * https://api.docs.extended.exchange/#funding-rates-stream
45
+ */
46
+ subscribeToFundingRates(marketName) {
47
+ const path = marketName ? '/funding/<market>' : '/funding';
48
+ const url = (0, http_1.getUrl)(`${this.apiUrl}${path}`, {
49
+ pathParams: marketName ? { market: marketName } : undefined,
50
+ });
51
+ return new perpetual_stream_connection_1.PerpetualStreamConnection(url);
52
+ }
53
+ /**
54
+ * Subscribe to candles stream
55
+ * https://api.docs.extended.exchange/#candles-stream
56
+ */
57
+ subscribeToCandles(options) {
58
+ const url = (0, http_1.getUrl)(`${this.apiUrl}/candles/<market>/<candle_type>`, {
59
+ pathParams: {
60
+ market: options.marketName,
61
+ candle_type: options.candleType,
62
+ },
63
+ query: {
64
+ interval: options.interval,
65
+ },
66
+ });
67
+ return new perpetual_stream_connection_1.PerpetualStreamConnection(url);
68
+ }
69
+ /**
70
+ * Subscribe to mark price stream
71
+ * https://api.docs.extended.exchange/#mark-price-stream
72
+ *
73
+ * @param marketName - Optional market name. If not specified, subscribes to all markets
74
+ * @returns PerpetualStreamConnection for mark price updates
75
+ */
76
+ subscribeToMarkPrice(marketName) {
77
+ const path = marketName ? '/prices/mark/<market>' : '/prices/mark';
78
+ const url = (0, http_1.getUrl)(`${this.apiUrl}${path}`, {
79
+ pathParams: marketName ? { market: marketName } : undefined,
80
+ });
81
+ return new perpetual_stream_connection_1.PerpetualStreamConnection(url);
82
+ }
83
+ /**
84
+ * Subscribe to index price stream
85
+ * https://api.docs.extended.exchange/#index-price-stream
86
+ *
87
+ * @param marketName - Optional market name. If not specified, subscribes to all markets
88
+ * @returns PerpetualStreamConnection for index price updates
89
+ */
90
+ subscribeToIndexPrice(marketName) {
91
+ const path = marketName ? '/prices/index/<market>' : '/prices/index';
92
+ const url = (0, http_1.getUrl)(`${this.apiUrl}${path}`, {
93
+ pathParams: marketName ? { market: marketName } : undefined,
94
+ });
95
+ return new perpetual_stream_connection_1.PerpetualStreamConnection(url);
96
+ }
97
+ /**
98
+ * Subscribe to account updates stream
99
+ * https://api.docs.extended.exchange/#account-updates-stream
100
+ */
101
+ subscribeToAccountUpdates(apiKey) {
102
+ const url = (0, http_1.getUrl)(`${this.apiUrl}/account`, {});
103
+ return new perpetual_stream_connection_1.PerpetualStreamConnection(url, apiKey);
104
+ }
105
+ }
106
+ exports.PerpetualStreamClient = PerpetualStreamClient;
107
+ //# sourceMappingURL=stream-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-client.js","sourceRoot":"","sources":["../../../src/perpetual/stream-client/stream-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Trade models
3
+ */
4
+ import Decimal from 'decimal.js';
5
+ import { X10BaseModel } from '../utils/model';
6
+ import { OrderSide } from './orders';
7
+ /**
8
+ * Trade type
9
+ */
10
+ export declare enum TradeType {
11
+ TRADE = "TRADE",
12
+ LIQUIDATION = "LIQUIDATION",
13
+ DELEVERAGE = "DELEVERAGE"
14
+ }
15
+ /**
16
+ * Public trade model
17
+ */
18
+ export declare class PublicTradeModel extends X10BaseModel {
19
+ id: number;
20
+ market: string;
21
+ side: OrderSide;
22
+ tradeType: TradeType;
23
+ timestamp: number;
24
+ price: Decimal;
25
+ qty: Decimal;
26
+ }
27
+ /**
28
+ * Account trade model
29
+ */
30
+ export declare class AccountTradeModel extends X10BaseModel {
31
+ id: number;
32
+ accountId: number;
33
+ market: string;
34
+ orderId: number;
35
+ side: OrderSide;
36
+ price: Decimal;
37
+ qty: Decimal;
38
+ value: Decimal;
39
+ fee: Decimal;
40
+ isTaker: boolean;
41
+ tradeType: TradeType;
42
+ createdTime: number;
43
+ }
44
+ //# sourceMappingURL=trades.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trades.d.ts","sourceRoot":"","sources":["../../src/perpetual/trades.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC;;GAEG;AACH,oBAAY,SAAS;IACnB,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,UAAU,eAAe;CAC1B;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ /**
3
+ * Trade models
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AccountTradeModel = exports.PublicTradeModel = exports.TradeType = void 0;
7
+ const model_1 = require("../utils/model");
8
+ /**
9
+ * Trade type
10
+ */
11
+ var TradeType;
12
+ (function (TradeType) {
13
+ TradeType["TRADE"] = "TRADE";
14
+ TradeType["LIQUIDATION"] = "LIQUIDATION";
15
+ TradeType["DELEVERAGE"] = "DELEVERAGE";
16
+ })(TradeType || (exports.TradeType = TradeType = {}));
17
+ /**
18
+ * Public trade model
19
+ */
20
+ class PublicTradeModel extends model_1.X10BaseModel {
21
+ id;
22
+ market;
23
+ side;
24
+ tradeType;
25
+ timestamp;
26
+ price;
27
+ qty;
28
+ }
29
+ exports.PublicTradeModel = PublicTradeModel;
30
+ /**
31
+ * Account trade model
32
+ */
33
+ class AccountTradeModel extends model_1.X10BaseModel {
34
+ id;
35
+ accountId;
36
+ market;
37
+ orderId;
38
+ side;
39
+ price;
40
+ qty;
41
+ value;
42
+ fee;
43
+ isTaker;
44
+ tradeType;
45
+ createdTime;
46
+ }
47
+ exports.AccountTradeModel = AccountTradeModel;
48
+ //# sourceMappingURL=trades.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trades.js","sourceRoot":"","sources":["../../src/perpetual/trades.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAGH,0CAA8C;AAG9C;;GAEG;AACH,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,wCAA2B,CAAA;IAC3B,sCAAyB,CAAA;AAC3B,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAED;;GAEG;AACH,MAAa,gBAAiB,SAAQ,oBAAY;IAChD,EAAE,CAAS;IACX,MAAM,CAAS;IACf,IAAI,CAAY;IAChB,SAAS,CAAY;IACrB,SAAS,CAAS;IAClB,KAAK,CAAU;IACf,GAAG,CAAU;CACd;AARD,4CAQC;AAED;;GAEG;AACH,MAAa,iBAAkB,SAAQ,oBAAY;IACjD,EAAE,CAAS;IACX,SAAS,CAAS;IAClB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,IAAI,CAAY;IAChB,KAAK,CAAU;IACf,GAAG,CAAU;IACb,KAAK,CAAU;IACf,GAAG,CAAU;IACb,OAAO,CAAU;IACjB,SAAS,CAAY;IACrB,WAAW,CAAS;CACrB;AAbD,8CAaC"}