extended-typescript-sdk 0.0.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 (173) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +445 -0
  3. package/dist/config.d.ts +11 -0
  4. package/dist/config.d.ts.map +1 -0
  5. package/dist/config.js +15 -0
  6. package/dist/config.js.map +1 -0
  7. package/dist/errors.d.ts +25 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +45 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/index.d.ts +39 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +142 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/perpetual/accounts.d.ts +88 -0
  16. package/dist/perpetual/accounts.d.ts.map +1 -0
  17. package/dist/perpetual/accounts.js +152 -0
  18. package/dist/perpetual/accounts.js.map +1 -0
  19. package/dist/perpetual/amounts.d.ts +41 -0
  20. package/dist/perpetual/amounts.d.ts.map +1 -0
  21. package/dist/perpetual/amounts.js +79 -0
  22. package/dist/perpetual/amounts.js.map +1 -0
  23. package/dist/perpetual/assets.d.ts +74 -0
  24. package/dist/perpetual/assets.d.ts.map +1 -0
  25. package/dist/perpetual/assets.js +119 -0
  26. package/dist/perpetual/assets.js.map +1 -0
  27. package/dist/perpetual/bridges.d.ts +29 -0
  28. package/dist/perpetual/bridges.d.ts.map +1 -0
  29. package/dist/perpetual/bridges.js +45 -0
  30. package/dist/perpetual/bridges.js.map +1 -0
  31. package/dist/perpetual/candles.d.ts +26 -0
  32. package/dist/perpetual/candles.d.ts.map +1 -0
  33. package/dist/perpetual/candles.js +29 -0
  34. package/dist/perpetual/candles.js.map +1 -0
  35. package/dist/perpetual/clients.d.ts +15 -0
  36. package/dist/perpetual/clients.d.ts.map +1 -0
  37. package/dist/perpetual/clients.js +25 -0
  38. package/dist/perpetual/clients.js.map +1 -0
  39. package/dist/perpetual/configuration.d.ts +39 -0
  40. package/dist/perpetual/configuration.d.ts.map +1 -0
  41. package/dist/perpetual/configuration.js +61 -0
  42. package/dist/perpetual/configuration.js.map +1 -0
  43. package/dist/perpetual/crypto/signer.d.ts +164 -0
  44. package/dist/perpetual/crypto/signer.d.ts.map +1 -0
  45. package/dist/perpetual/crypto/signer.js +318 -0
  46. package/dist/perpetual/crypto/signer.js.map +1 -0
  47. package/dist/perpetual/fees.d.ts +20 -0
  48. package/dist/perpetual/fees.d.ts.map +1 -0
  49. package/dist/perpetual/fees.js +35 -0
  50. package/dist/perpetual/fees.js.map +1 -0
  51. package/dist/perpetual/funding-rates.d.ts +15 -0
  52. package/dist/perpetual/funding-rates.d.ts.map +1 -0
  53. package/dist/perpetual/funding-rates.js +23 -0
  54. package/dist/perpetual/funding-rates.js.map +1 -0
  55. package/dist/perpetual/markets.d.ts +83 -0
  56. package/dist/perpetual/markets.d.ts.map +1 -0
  57. package/dist/perpetual/markets.js +124 -0
  58. package/dist/perpetual/markets.js.map +1 -0
  59. package/dist/perpetual/order-object-settlement.d.ts +43 -0
  60. package/dist/perpetual/order-object-settlement.d.ts.map +1 -0
  61. package/dist/perpetual/order-object-settlement.js +121 -0
  62. package/dist/perpetual/order-object-settlement.js.map +1 -0
  63. package/dist/perpetual/order-object.d.ts +38 -0
  64. package/dist/perpetual/order-object.d.ts.map +1 -0
  65. package/dist/perpetual/order-object.js +90 -0
  66. package/dist/perpetual/order-object.js.map +1 -0
  67. package/dist/perpetual/orderbooks.d.ts +23 -0
  68. package/dist/perpetual/orderbooks.d.ts.map +1 -0
  69. package/dist/perpetual/orderbooks.js +36 -0
  70. package/dist/perpetual/orderbooks.js.map +1 -0
  71. package/dist/perpetual/orders.d.ts +207 -0
  72. package/dist/perpetual/orders.d.ts.map +1 -0
  73. package/dist/perpetual/orders.js +266 -0
  74. package/dist/perpetual/orders.js.map +1 -0
  75. package/dist/perpetual/positions.d.ts +80 -0
  76. package/dist/perpetual/positions.d.ts.map +1 -0
  77. package/dist/perpetual/positions.js +94 -0
  78. package/dist/perpetual/positions.js.map +1 -0
  79. package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts +47 -0
  80. package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts.map +1 -0
  81. package/dist/perpetual/stream-client/perpetual-stream-connection.js +125 -0
  82. package/dist/perpetual/stream-client/perpetual-stream-connection.js.map +1 -0
  83. package/dist/perpetual/stream-client/stream-client.d.ts +46 -0
  84. package/dist/perpetual/stream-client/stream-client.d.ts.map +1 -0
  85. package/dist/perpetual/stream-client/stream-client.js +79 -0
  86. package/dist/perpetual/stream-client/stream-client.js.map +1 -0
  87. package/dist/perpetual/trades.d.ts +44 -0
  88. package/dist/perpetual/trades.d.ts.map +1 -0
  89. package/dist/perpetual/trades.js +48 -0
  90. package/dist/perpetual/trades.js.map +1 -0
  91. package/dist/perpetual/trading-client/account-module.d.ts +192 -0
  92. package/dist/perpetual/trading-client/account-module.d.ts.map +1 -0
  93. package/dist/perpetual/trading-client/account-module.js +357 -0
  94. package/dist/perpetual/trading-client/account-module.js.map +1 -0
  95. package/dist/perpetual/trading-client/base-module.d.ts +27 -0
  96. package/dist/perpetual/trading-client/base-module.d.ts.map +1 -0
  97. package/dist/perpetual/trading-client/base-module.js +49 -0
  98. package/dist/perpetual/trading-client/base-module.js.map +1 -0
  99. package/dist/perpetual/trading-client/info-module.d.ts +24 -0
  100. package/dist/perpetual/trading-client/info-module.d.ts.map +1 -0
  101. package/dist/perpetual/trading-client/info-module.js +33 -0
  102. package/dist/perpetual/trading-client/info-module.js.map +1 -0
  103. package/dist/perpetual/trading-client/markets-information-module.d.ts +53 -0
  104. package/dist/perpetual/trading-client/markets-information-module.d.ts.map +1 -0
  105. package/dist/perpetual/trading-client/markets-information-module.js +106 -0
  106. package/dist/perpetual/trading-client/markets-information-module.js.map +1 -0
  107. package/dist/perpetual/trading-client/order-management-module.d.ts +40 -0
  108. package/dist/perpetual/trading-client/order-management-module.d.ts.map +1 -0
  109. package/dist/perpetual/trading-client/order-management-module.js +71 -0
  110. package/dist/perpetual/trading-client/order-management-module.js.map +1 -0
  111. package/dist/perpetual/trading-client/testnet-module.d.ts +27 -0
  112. package/dist/perpetual/trading-client/testnet-module.d.ts.map +1 -0
  113. package/dist/perpetual/trading-client/testnet-module.js +45 -0
  114. package/dist/perpetual/trading-client/testnet-module.js.map +1 -0
  115. package/dist/perpetual/trading-client/trading-client.d.ts +75 -0
  116. package/dist/perpetual/trading-client/trading-client.d.ts.map +1 -0
  117. package/dist/perpetual/trading-client/trading-client.js +115 -0
  118. package/dist/perpetual/trading-client/trading-client.js.map +1 -0
  119. package/dist/perpetual/transfer-object.d.ts +12 -0
  120. package/dist/perpetual/transfer-object.d.ts.map +1 -0
  121. package/dist/perpetual/transfer-object.js +57 -0
  122. package/dist/perpetual/transfer-object.js.map +1 -0
  123. package/dist/perpetual/transfers.d.ts +54 -0
  124. package/dist/perpetual/transfers.d.ts.map +1 -0
  125. package/dist/perpetual/transfers.js +90 -0
  126. package/dist/perpetual/transfers.js.map +1 -0
  127. package/dist/perpetual/user-client/onboarding.d.ts +101 -0
  128. package/dist/perpetual/user-client/onboarding.d.ts.map +1 -0
  129. package/dist/perpetual/user-client/onboarding.js +247 -0
  130. package/dist/perpetual/user-client/onboarding.js.map +1 -0
  131. package/dist/perpetual/user-client/user-client.d.ts +45 -0
  132. package/dist/perpetual/user-client/user-client.d.ts.map +1 -0
  133. package/dist/perpetual/user-client/user-client.js +185 -0
  134. package/dist/perpetual/user-client/user-client.js.map +1 -0
  135. package/dist/perpetual/withdrawal-object.d.ts +12 -0
  136. package/dist/perpetual/withdrawal-object.d.ts.map +1 -0
  137. package/dist/perpetual/withdrawal-object.js +51 -0
  138. package/dist/perpetual/withdrawal-object.js.map +1 -0
  139. package/dist/perpetual/withdrawals.d.ts +40 -0
  140. package/dist/perpetual/withdrawals.d.ts.map +1 -0
  141. package/dist/perpetual/withdrawals.js +65 -0
  142. package/dist/perpetual/withdrawals.js.map +1 -0
  143. package/dist/utils/date.d.ts +13 -0
  144. package/dist/utils/date.d.ts.map +1 -0
  145. package/dist/utils/date.js +21 -0
  146. package/dist/utils/date.js.map +1 -0
  147. package/dist/utils/env.d.ts +50 -0
  148. package/dist/utils/env.d.ts.map +1 -0
  149. package/dist/utils/env.js +157 -0
  150. package/dist/utils/env.js.map +1 -0
  151. package/dist/utils/http.d.ts +98 -0
  152. package/dist/utils/http.d.ts.map +1 -0
  153. package/dist/utils/http.js +290 -0
  154. package/dist/utils/http.js.map +1 -0
  155. package/dist/utils/model.d.ts +35 -0
  156. package/dist/utils/model.d.ts.map +1 -0
  157. package/dist/utils/model.js +86 -0
  158. package/dist/utils/model.js.map +1 -0
  159. package/dist/utils/nonce.d.ts +9 -0
  160. package/dist/utils/nonce.d.ts.map +1 -0
  161. package/dist/utils/nonce.js +14 -0
  162. package/dist/utils/nonce.js.map +1 -0
  163. package/dist/utils/string.d.ts +10 -0
  164. package/dist/utils/string.d.ts.map +1 -0
  165. package/dist/utils/string.js +20 -0
  166. package/dist/utils/string.js.map +1 -0
  167. package/package.json +56 -0
  168. package/wasm/stark_crypto_wasm-web.js +5 -0
  169. package/wasm/stark_crypto_wasm.d-web.ts +63 -0
  170. package/wasm/stark_crypto_wasm.d.ts +63 -0
  171. package/wasm/stark_crypto_wasm.js +362 -0
  172. package/wasm/stark_crypto_wasm_bg-web.wasm +0 -0
  173. package/wasm/stark_crypto_wasm_bg.wasm +0 -0
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ /**
3
+ * Markets information module for trading client
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MarketsInformationModule = void 0;
7
+ const base_module_1 = require("./base-module");
8
+ const http_1 = require("../../utils/http");
9
+ const markets_1 = require("../markets");
10
+ const date_1 = require("../../utils/date");
11
+ /**
12
+ * Markets information module for market data
13
+ */
14
+ class MarketsInformationModule extends base_module_1.BaseModule {
15
+ /**
16
+ * Get markets
17
+ * https://api.docs.extended.exchange/#get-markets
18
+ */
19
+ async getMarkets(options = {}) {
20
+ const url = this.getUrl('/info/markets', {
21
+ query: {
22
+ market: options.marketNames,
23
+ },
24
+ });
25
+ return await (0, http_1.sendGetRequest)(url, this.getApiKey());
26
+ }
27
+ /**
28
+ * Get markets as dictionary
29
+ */
30
+ async getMarketsDict() {
31
+ const response = await this.getMarkets();
32
+ if (!response.data) {
33
+ return {};
34
+ }
35
+ const markets = {};
36
+ for (const market of response.data) {
37
+ // Hydrate plain JSON into proper model instances so getters work
38
+ const model = Object.assign(new markets_1.MarketModel(), market);
39
+ if (market.l2Config) {
40
+ model.l2Config = Object.assign(model.l2Config ?? {}, market.l2Config);
41
+ }
42
+ if (market.tradingConfig) {
43
+ model.tradingConfig = Object.assign(model.tradingConfig ?? {}, market.tradingConfig);
44
+ }
45
+ if (market.marketStats) {
46
+ model.marketStats = Object.assign(model.marketStats ?? {}, market.marketStats);
47
+ }
48
+ markets[model.name] = model;
49
+ }
50
+ return markets;
51
+ }
52
+ /**
53
+ * Get market statistics
54
+ * https://api.docs.extended.exchange/#get-market-statistics
55
+ */
56
+ async getMarketStatistics(marketName) {
57
+ const url = this.getUrl('/info/markets/<market>/stats', {
58
+ pathParams: { market: marketName },
59
+ });
60
+ return await (0, http_1.sendGetRequest)(url, this.getApiKey());
61
+ }
62
+ /**
63
+ * Get candles history
64
+ * https://api.docs.extended.exchange/#get-candles-history
65
+ */
66
+ async getCandlesHistory(options) {
67
+ const url = this.getUrl('/info/candles/<market>/<candle_type>', {
68
+ pathParams: {
69
+ market: options.marketName,
70
+ candle_type: options.candleType,
71
+ },
72
+ query: {
73
+ interval: options.interval,
74
+ limit: options.limit?.toString(),
75
+ endTime: options.endTime ? (0, date_1.toEpochMillis)(options.endTime).toString() : undefined,
76
+ },
77
+ });
78
+ return await (0, http_1.sendGetRequest)(url, this.getApiKey());
79
+ }
80
+ /**
81
+ * Get funding rates history
82
+ * https://api.docs.extended.exchange/#get-funding-rates-history
83
+ */
84
+ async getFundingRatesHistory(options) {
85
+ const url = this.getUrl('/info/<market>/funding', {
86
+ pathParams: { market: options.marketName },
87
+ query: {
88
+ startTime: (0, date_1.toEpochMillis)(options.startTime).toString(),
89
+ endTime: (0, date_1.toEpochMillis)(options.endTime).toString(),
90
+ },
91
+ });
92
+ return await (0, http_1.sendGetRequest)(url, this.getApiKey());
93
+ }
94
+ /**
95
+ * Get orderbook snapshot
96
+ * https://api.docs.extended.exchange/#get-market-order-book
97
+ */
98
+ async getOrderbookSnapshot(marketName) {
99
+ const url = this.getUrl('/info/markets/<market>/orderbook', {
100
+ pathParams: { market: marketName },
101
+ });
102
+ return await (0, http_1.sendGetRequest)(url, this.getApiKey());
103
+ }
104
+ }
105
+ exports.MarketsInformationModule = MarketsInformationModule;
106
+ //# sourceMappingURL=markets-information-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markets-information-module.js","sourceRoot":"","sources":["../../../src/perpetual/trading-client/markets-information-module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Order management module for trading client
3
+ */
4
+ import { BaseModule } from './base-module';
5
+ import { WrappedApiResponse } from '../../utils/http';
6
+ import { EmptyModel } from '../../utils/model';
7
+ import { NewOrderModel, PlacedOrderModel } from '../orders';
8
+ /**
9
+ * Order management module for managing orders
10
+ */
11
+ export declare class OrderManagementModule extends BaseModule {
12
+ /**
13
+ * Place a new order on the exchange
14
+ * https://api.docs.extended.exchange/#create-order
15
+ *
16
+ * @param order Order object created by `createOrderObject` method
17
+ */
18
+ placeOrder(order: NewOrderModel): Promise<WrappedApiResponse<PlacedOrderModel>>;
19
+ /**
20
+ * Cancel order by ID
21
+ * https://api.docs.extended.exchange/#cancel-order
22
+ */
23
+ cancelOrder(orderId: number): Promise<WrappedApiResponse<EmptyModel>>;
24
+ /**
25
+ * Cancel order by external ID
26
+ * https://api.docs.extended.exchange/#cancel-order
27
+ */
28
+ cancelOrderByExternalId(orderExternalId: string): Promise<WrappedApiResponse<EmptyModel>>;
29
+ /**
30
+ * Mass cancel orders
31
+ * https://api.docs.extended.exchange/#mass-cancel
32
+ */
33
+ massCancel(options?: {
34
+ orderIds?: number[];
35
+ externalOrderIds?: string[];
36
+ markets?: string[];
37
+ cancelAll?: boolean;
38
+ }): Promise<WrappedApiResponse<EmptyModel>>;
39
+ }
40
+ //# sourceMappingURL=order-management-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-management-module.d.ts","sourceRoot":"","sources":["../../../src/perpetual/trading-client/order-management-module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAGnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAgB,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAyB5D;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;IACnD;;;;;OAKG;IACG,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IASrF;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAO3E;;;OAGG;IACG,uBAAuB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAO/F;;;OAGG;IACG,UAAU,CAAC,OAAO,GAAE;QACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KAChB,GAAG,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;CAcjD"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * Order management module for trading client
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.OrderManagementModule = void 0;
7
+ const base_module_1 = require("./base-module");
8
+ const http_1 = require("../../utils/http");
9
+ const model_1 = require("../../utils/model");
10
+ /**
11
+ * Mass cancel request model
12
+ */
13
+ class MassCancelRequestModel extends model_1.X10BaseModel {
14
+ orderIds;
15
+ externalOrderIds;
16
+ markets;
17
+ cancelAll;
18
+ constructor(orderIds, externalOrderIds, markets, cancelAll) {
19
+ super();
20
+ this.orderIds = orderIds;
21
+ this.externalOrderIds = externalOrderIds;
22
+ this.markets = markets;
23
+ this.cancelAll = cancelAll;
24
+ }
25
+ }
26
+ /**
27
+ * Order management module for managing orders
28
+ */
29
+ class OrderManagementModule extends base_module_1.BaseModule {
30
+ /**
31
+ * Place a new order on the exchange
32
+ * https://api.docs.extended.exchange/#create-order
33
+ *
34
+ * @param order Order object created by `createOrderObject` method
35
+ */
36
+ async placeOrder(order) {
37
+ const url = this.getUrl('/user/order');
38
+ return await (0, http_1.sendPostRequest)(url, order.toApiRequestJson(true), this.getApiKey());
39
+ }
40
+ /**
41
+ * Cancel order by ID
42
+ * https://api.docs.extended.exchange/#cancel-order
43
+ */
44
+ async cancelOrder(orderId) {
45
+ const url = this.getUrl('/user/order/<order_id>', {
46
+ pathParams: { order_id: orderId },
47
+ });
48
+ return await (0, http_1.sendDeleteRequest)(url, this.getApiKey());
49
+ }
50
+ /**
51
+ * Cancel order by external ID
52
+ * https://api.docs.extended.exchange/#cancel-order
53
+ */
54
+ async cancelOrderByExternalId(orderExternalId) {
55
+ const url = this.getUrl('/user/order', {
56
+ query: { externalId: orderExternalId },
57
+ });
58
+ return await (0, http_1.sendDeleteRequest)(url, this.getApiKey());
59
+ }
60
+ /**
61
+ * Mass cancel orders
62
+ * https://api.docs.extended.exchange/#mass-cancel
63
+ */
64
+ async massCancel(options = {}) {
65
+ const url = this.getUrl('/user/order/massCancel');
66
+ const requestModel = new MassCancelRequestModel(options.orderIds, options.externalOrderIds, options.markets, options.cancelAll);
67
+ return await (0, http_1.sendPostRequest)(url, requestModel.toApiRequestJson(true), this.getApiKey());
68
+ }
69
+ }
70
+ exports.OrderManagementModule = OrderManagementModule;
71
+ //# sourceMappingURL=order-management-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order-management-module.js","sourceRoot":"","sources":["../../../src/perpetual/trading-client/order-management-module.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+CAA2C;AAC3C,2CAI0B;AAC1B,6CAA6D;AAG7D;;GAEG;AACH,MAAM,sBAAuB,SAAQ,oBAAY;IAC/C,QAAQ,CAAY;IACpB,gBAAgB,CAAY;IAC5B,OAAO,CAAY;IACnB,SAAS,CAAW;IAEpB,YACE,QAAmB,EACnB,gBAA2B,EAC3B,OAAkB,EAClB,SAAmB;QAEnB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAa,qBAAsB,SAAQ,wBAAU;IACnD;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,KAAoB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,OAAO,MAAM,IAAA,sBAAe,EAC1B,GAAG,EACH,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAC5B,IAAI,CAAC,SAAS,EAAE,CACjB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,wBAAwB,EAAE;YAChD,UAAU,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE;SAClC,CAAC,CAAC;QACH,OAAO,MAAM,IAAA,wBAAiB,EAAa,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB,CAAC,eAAuB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE;YACrC,KAAK,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE;SACvC,CAAC,CAAC;QACH,OAAO,MAAM,IAAA,wBAAiB,EAAa,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,UAKb,EAAE;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,IAAI,sBAAsB,CAC7C,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,SAAS,CAClB,CAAC;QACF,OAAO,MAAM,IAAA,sBAAe,EAC1B,GAAG,EACH,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,EACnC,IAAI,CAAC,SAAS,EAAE,CACjB,CAAC;IACJ,CAAC;CACF;AA7DD,sDA6DC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Testnet module for trading client
3
+ */
4
+ import { BaseModule } from './base-module';
5
+ import { AccountModule } from './account-module';
6
+ import { WrappedApiResponse } from '../../utils/http';
7
+ import { X10BaseModel } from '../../utils/model';
8
+ /**
9
+ * Claim response model
10
+ */
11
+ declare class ClaimResponseModel extends X10BaseModel {
12
+ id: number;
13
+ constructor(id: number);
14
+ }
15
+ /**
16
+ * Testnet module for testnet-specific operations
17
+ */
18
+ export declare class TestnetModule extends BaseModule {
19
+ private accountModule;
20
+ constructor(endpointConfig: any, apiKey: string | undefined, accountModule: AccountModule);
21
+ /**
22
+ * Claim testing funds
23
+ */
24
+ claimTestingFunds(): Promise<WrappedApiResponse<ClaimResponseModel>>;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=testnet-module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testnet-module.d.ts","sourceRoot":"","sources":["../../../src/perpetual/trading-client/testnet-module.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;GAEG;AACH,cAAM,kBAAmB,SAAQ,YAAY;IAC3C,EAAE,EAAE,MAAM,CAAC;gBAEC,EAAE,EAAE,MAAM;CAIvB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,OAAO,CAAC,aAAa,CAAgB;gBAGnC,cAAc,EAAE,GAAG,EACnB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,aAAa,EAAE,aAAa;IAM9B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;CAiB3E"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * Testnet module for trading client
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TestnetModule = void 0;
7
+ const base_module_1 = require("./base-module");
8
+ const http_1 = require("../../utils/http");
9
+ const model_1 = require("../../utils/model");
10
+ /**
11
+ * Claim response model
12
+ */
13
+ class ClaimResponseModel extends model_1.X10BaseModel {
14
+ id;
15
+ constructor(id) {
16
+ super();
17
+ this.id = id;
18
+ }
19
+ }
20
+ /**
21
+ * Testnet module for testnet-specific operations
22
+ */
23
+ class TestnetModule extends base_module_1.BaseModule {
24
+ accountModule;
25
+ constructor(endpointConfig, apiKey, accountModule) {
26
+ super(endpointConfig, { apiKey });
27
+ this.accountModule = accountModule;
28
+ }
29
+ /**
30
+ * Claim testing funds
31
+ */
32
+ async claimTestingFunds() {
33
+ const url = this.getUrl('/user/claim');
34
+ const response = await (0, http_1.sendPostRequest)(url, {}, this.getApiKey());
35
+ // Wait for claim to complete (simplified - no retry logic in this implementation)
36
+ if (response.data && this.accountModule) {
37
+ // Poll asset operations until completed
38
+ // In production, add retry logic here
39
+ await this.accountModule.assetOperations({ id: response.data.id });
40
+ }
41
+ return response;
42
+ }
43
+ }
44
+ exports.TestnetModule = TestnetModule;
45
+ //# sourceMappingURL=testnet-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testnet-module.js","sourceRoot":"","sources":["../../../src/perpetual/trading-client/testnet-module.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,+CAA2C;AAE3C,2CAAuE;AACvE,6CAAiD;AAEjD;;GAEG;AACH,MAAM,kBAAmB,SAAQ,oBAAY;IAC3C,EAAE,CAAS;IAEX,YAAY,EAAU;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;CACF;AAED;;GAEG;AACH,MAAa,aAAc,SAAQ,wBAAU;IACnC,aAAa,CAAgB;IAErC,YACE,cAAmB,EACnB,MAA0B,EAC1B,aAA4B;QAE5B,KAAK,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAA,sBAAe,EACpC,GAAG,EACH,EAAE,EACF,IAAI,CAAC,SAAS,EAAE,CACjB,CAAC;QAEF,kFAAkF;QAClF,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,wCAAwC;YACxC,sCAAsC;YACtC,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAhCD,sCAgCC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Perpetual Trading Client
3
+ * Main client for X10 Perpetual Trading API
4
+ */
5
+ import Decimal from 'decimal.js';
6
+ import { EndpointConfig } from '../configuration';
7
+ import { StarkPerpetualAccount } from '../accounts';
8
+ import { OrderSide, OrderTpslType, PlacedOrderModel, SelfTradeProtectionLevel, TimeInForce } from '../orders';
9
+ import { OrderTpslTriggerParam } from '../order-object';
10
+ import { WrappedApiResponse } from '../../utils/http';
11
+ import { AccountModule } from './account-module';
12
+ import { OrderManagementModule } from './order-management-module';
13
+ import { MarketsInformationModule } from './markets-information-module';
14
+ import { InfoModule } from './info-module';
15
+ import { TestnetModule } from './testnet-module';
16
+ /**
17
+ * Perpetual Trading Client for X10 REST API v1
18
+ */
19
+ export declare class PerpetualTradingClient {
20
+ private markets;
21
+ private starkAccount?;
22
+ private infoModule;
23
+ private marketsInfoModule;
24
+ private accountModule;
25
+ private orderManagementModule;
26
+ private testnetModule;
27
+ private config;
28
+ constructor(endpointConfig: EndpointConfig, starkAccount?: StarkPerpetualAccount);
29
+ /**
30
+ * Place an order
31
+ */
32
+ placeOrder(options: {
33
+ marketName: string;
34
+ amountOfSynthetic: Decimal;
35
+ price: Decimal;
36
+ side: OrderSide;
37
+ postOnly?: boolean;
38
+ previousOrderId?: string;
39
+ expireTime?: Date;
40
+ timeInForce?: TimeInForce;
41
+ selfTradeProtectionLevel?: SelfTradeProtectionLevel;
42
+ externalId?: string;
43
+ builderFee?: Decimal;
44
+ builderId?: number;
45
+ reduceOnly?: boolean;
46
+ tpSlType?: OrderTpslType;
47
+ takeProfit?: OrderTpslTriggerParam;
48
+ stopLoss?: OrderTpslTriggerParam;
49
+ }): Promise<WrappedApiResponse<PlacedOrderModel>>;
50
+ /**
51
+ * Close all sessions
52
+ */
53
+ close(): Promise<void>;
54
+ /**
55
+ * Info module
56
+ */
57
+ get info(): InfoModule;
58
+ /**
59
+ * Markets info module
60
+ */
61
+ get marketsInfo(): MarketsInformationModule;
62
+ /**
63
+ * Account module
64
+ */
65
+ get account(): AccountModule;
66
+ /**
67
+ * Orders module
68
+ */
69
+ get orders(): OrderManagementModule;
70
+ /**
71
+ * Testnet module
72
+ */
73
+ get testnet(): TestnetModule;
74
+ }
75
+ //# sourceMappingURL=trading-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trading-client.d.ts","sourceRoot":"","sources":["../../../src/perpetual/trading-client/trading-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,WAAW,EACZ,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,qBAAqB,EAAqB,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,YAAY,CAAC,CAAwB;IAC7C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,MAAM,CAAiB;gBAEnB,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAgBhF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,OAAO,CAAC;QAC3B,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,SAAS,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,IAAI,CAAC;QAClB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;QACpD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;QACzB,UAAU,CAAC,EAAE,qBAAqB,CAAC;QACnC,QAAQ,CAAC,EAAE,qBAAqB,CAAC;KAClC,GAAG,OAAO,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IA8CjD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B;;OAEG;IACH,IAAI,IAAI,IAAI,UAAU,CAErB;IAED;;OAEG;IACH,IAAI,WAAW,IAAI,wBAAwB,CAE1C;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,qBAAqB,CAElC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,aAAa,CAE3B;CACF"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /**
3
+ * Perpetual Trading Client
4
+ * Main client for X10 Perpetual Trading API
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.PerpetualTradingClient = void 0;
8
+ const order_object_1 = require("../order-object");
9
+ const date_1 = require("../../utils/date");
10
+ const account_module_1 = require("./account-module");
11
+ const order_management_module_1 = require("./order-management-module");
12
+ const markets_information_module_1 = require("./markets-information-module");
13
+ const info_module_1 = require("./info-module");
14
+ const testnet_module_1 = require("./testnet-module");
15
+ /**
16
+ * Perpetual Trading Client for X10 REST API v1
17
+ */
18
+ class PerpetualTradingClient {
19
+ markets = null;
20
+ starkAccount;
21
+ infoModule;
22
+ marketsInfoModule;
23
+ accountModule;
24
+ orderManagementModule;
25
+ testnetModule;
26
+ config;
27
+ constructor(endpointConfig, starkAccount) {
28
+ const apiKey = starkAccount?.getApiKey();
29
+ this.config = endpointConfig;
30
+ this.starkAccount = starkAccount;
31
+ this.infoModule = new info_module_1.InfoModule(endpointConfig);
32
+ this.marketsInfoModule = new markets_information_module_1.MarketsInformationModule(endpointConfig, { apiKey });
33
+ this.accountModule = new account_module_1.AccountModule(endpointConfig, {
34
+ apiKey,
35
+ starkAccount,
36
+ });
37
+ this.orderManagementModule = new order_management_module_1.OrderManagementModule(endpointConfig, { apiKey });
38
+ this.testnetModule = new testnet_module_1.TestnetModule(endpointConfig, apiKey, this.accountModule);
39
+ }
40
+ /**
41
+ * Place an order
42
+ */
43
+ async placeOrder(options) {
44
+ if (!this.starkAccount) {
45
+ throw new Error('Stark account is not set');
46
+ }
47
+ if (!this.markets) {
48
+ this.markets = await this.marketsInfoModule.getMarketsDict();
49
+ }
50
+ const market = this.markets[options.marketName];
51
+ if (!market) {
52
+ throw new Error(`Market ${options.marketName} not found`);
53
+ }
54
+ const expireTime = options.expireTime || (() => {
55
+ const dt = new Date((0, date_1.utcNow)());
56
+ dt.setHours(dt.getHours() + 1);
57
+ return dt;
58
+ })();
59
+ const order = (0, order_object_1.createOrderObject)(this.starkAccount, market, options.amountOfSynthetic, options.price, options.side, this.config.starknetDomain, {
60
+ postOnly: options.postOnly,
61
+ previousOrderExternalId: options.previousOrderId,
62
+ expireTime,
63
+ orderExternalId: options.externalId,
64
+ timeInForce: options.timeInForce,
65
+ selfTradeProtectionLevel: options.selfTradeProtectionLevel,
66
+ builderFee: options.builderFee,
67
+ builderId: options.builderId,
68
+ reduceOnly: options.reduceOnly,
69
+ tpSlType: options.tpSlType,
70
+ takeProfit: options.takeProfit,
71
+ stopLoss: options.stopLoss,
72
+ });
73
+ return await this.orderManagementModule.placeOrder(order);
74
+ }
75
+ /**
76
+ * Close all sessions
77
+ */
78
+ async close() {
79
+ await this.marketsInfoModule.closeSession();
80
+ await this.accountModule.closeSession();
81
+ await this.orderManagementModule.closeSession();
82
+ }
83
+ /**
84
+ * Info module
85
+ */
86
+ get info() {
87
+ return this.infoModule;
88
+ }
89
+ /**
90
+ * Markets info module
91
+ */
92
+ get marketsInfo() {
93
+ return this.marketsInfoModule;
94
+ }
95
+ /**
96
+ * Account module
97
+ */
98
+ get account() {
99
+ return this.accountModule;
100
+ }
101
+ /**
102
+ * Orders module
103
+ */
104
+ get orders() {
105
+ return this.orderManagementModule;
106
+ }
107
+ /**
108
+ * Testnet module
109
+ */
110
+ get testnet() {
111
+ return this.testnetModule;
112
+ }
113
+ }
114
+ exports.PerpetualTradingClient = PerpetualTradingClient;
115
+ //# sourceMappingURL=trading-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trading-client.js","sourceRoot":"","sources":["../../../src/perpetual/trading-client/trading-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Transfer object creation
3
+ */
4
+ import Decimal from 'decimal.js';
5
+ import { EndpointConfig } from './configuration';
6
+ import { StarkPerpetualAccount } from './accounts';
7
+ import { OnChainPerpetualTransferModel } from './transfers';
8
+ /**
9
+ * Create transfer object
10
+ */
11
+ export declare function createTransferObject(fromVault: number, toVault: number, toL2Key: number | string, amount: Decimal, config: EndpointConfig, starkAccount: StarkPerpetualAccount, nonce?: number): OnChainPerpetualTransferModel;
12
+ //# sourceMappingURL=transfer-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-object.d.ts","sourceRoot":"","sources":["../../src/perpetual/transfer-object.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAkB,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,6BAA6B,EAA2B,MAAM,aAAa,CAAC;AAerF;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,qBAAqB,EACnC,KAAK,CAAC,EAAE,MAAM,GACb,6BAA6B,CAqD/B"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ /**
3
+ * Transfer object creation
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createTransferObject = createTransferObject;
7
+ const transfers_1 = require("./transfers");
8
+ const model_1 = require("../utils/model");
9
+ const signer_1 = require("./crypto/signer");
10
+ const nonce_1 = require("../utils/nonce");
11
+ const date_1 = require("../utils/date");
12
+ /**
13
+ * Calculate expiration timestamp (21 days from now)
14
+ */
15
+ function calcExpirationTimestamp() {
16
+ const expireTime = new Date((0, date_1.utcNow)());
17
+ expireTime.setDate(expireTime.getDate() + 21); // 7 days + 14 days buffer
18
+ return Math.ceil(expireTime.getTime() / 1000);
19
+ }
20
+ /**
21
+ * Create transfer object
22
+ */
23
+ function createTransferObject(fromVault, toVault, toL2Key, amount, config, starkAccount, nonce) {
24
+ const expirationTimestamp = calcExpirationTimestamp();
25
+ // Scale amount by decimals
26
+ const scaledAmount = amount.mul(Math.pow(10, config.collateralDecimals));
27
+ const starkAmount = Math.round(scaledAmount.toNumber());
28
+ const starknetDomain = config.starknetDomain;
29
+ const finalNonce = nonce || (0, nonce_1.generateNonce)();
30
+ // Convert to_l2_key to number if it's a string
31
+ let toL2KeyNum;
32
+ if (typeof toL2Key === 'string') {
33
+ toL2KeyNum = parseInt(toL2Key, 16);
34
+ }
35
+ else {
36
+ toL2KeyNum = toL2Key;
37
+ }
38
+ const transferHash = (0, signer_1.getTransferMsgHash)({
39
+ recipientPositionId: toVault,
40
+ senderPositionId: fromVault,
41
+ amount: starkAmount.toString(),
42
+ expiration: expirationTimestamp,
43
+ salt: finalNonce.toString(),
44
+ userPublicKey: '0x' + starkAccount.getPublicKey().toString(16),
45
+ domainName: starknetDomain.name,
46
+ domainVersion: starknetDomain.version,
47
+ domainChainId: starknetDomain.chainId,
48
+ domainRevision: starknetDomain.revision,
49
+ collateralId: config.collateralAssetOnChainId,
50
+ });
51
+ const [transferSignatureR, transferSignatureS] = starkAccount.sign(transferHash);
52
+ const settlement = new transfers_1.StarkTransferSettlement(starkAmount, config.collateralAssetOnChainId, // Already a hex string
53
+ expirationTimestamp, finalNonce, toVault, `0x${toL2KeyNum.toString(16)}`, // Convert to hex string
54
+ fromVault, starkAccount.getPublicKeyHex(), new model_1.SettlementSignatureModel(transferSignatureR, transferSignatureS));
55
+ return new transfers_1.OnChainPerpetualTransferModel(fromVault, toVault, amount, settlement, config.collateralAssetId);
56
+ }
57
+ //# sourceMappingURL=transfer-object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-object.js","sourceRoot":"","sources":["../../src/perpetual/transfer-object.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAuBH,oDA6DC;AA/ED,2CAAqF;AACrF,0CAA0D;AAC1D,4CAAqD;AACrD,0CAA+C;AAC/C,wCAAuC;AAEvC;;GAEG;AACH,SAAS,uBAAuB;IAC9B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAA,aAAM,GAAE,CAAC,CAAC;IACtC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,0BAA0B;IACzE,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,SAAiB,EACjB,OAAe,EACf,OAAwB,EACxB,MAAe,EACf,MAAsB,EACtB,YAAmC,EACnC,KAAc;IAEd,MAAM,mBAAmB,GAAG,uBAAuB,EAAE,CAAC;IAEtD,2BAA2B;IAC3B,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;IAExD,MAAM,cAAc,GAAmB,MAAM,CAAC,cAAc,CAAC;IAC7D,MAAM,UAAU,GAAG,KAAK,IAAI,IAAA,qBAAa,GAAE,CAAC;IAE5C,+CAA+C;IAC/C,IAAI,UAAkB,CAAC;IACvB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,UAAU,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,OAAO,CAAC;IACvB,CAAC;IAED,MAAM,YAAY,GAAG,IAAA,2BAAkB,EAAC;QACtC,mBAAmB,EAAE,OAAO;QAC5B,gBAAgB,EAAE,SAAS;QAC3B,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE;QAC9B,UAAU,EAAE,mBAAmB;QAC/B,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE;QAC3B,aAAa,EAAE,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9D,UAAU,EAAE,cAAc,CAAC,IAAI;QAC/B,aAAa,EAAE,cAAc,CAAC,OAAO;QACrC,aAAa,EAAE,cAAc,CAAC,OAAO;QACrC,cAAc,EAAE,cAAc,CAAC,QAAQ;QACvC,YAAY,EAAE,MAAM,CAAC,wBAAwB;KAC9C,CAAC,CAAC;IAEH,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAEjF,MAAM,UAAU,GAAG,IAAI,mCAAuB,CAC5C,WAAW,EACX,MAAM,CAAC,wBAAwB,EAAE,uBAAuB;IACxD,mBAAmB,EACnB,UAAU,EACV,OAAO,EACP,KAAK,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,wBAAwB;IACxD,SAAS,EACT,YAAY,CAAC,eAAe,EAAE,EAC9B,IAAI,gCAAwB,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CACrE,CAAC;IAEF,OAAO,IAAI,yCAA6B,CACtC,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,MAAM,CAAC,iBAAiB,CACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Transfer models
3
+ */
4
+ import Decimal from 'decimal.js';
5
+ import { X10BaseModel, HexValue } from '../utils/model';
6
+ import { SettlementSignatureModel } from '../utils/model';
7
+ /**
8
+ * Stark transfer settlement
9
+ */
10
+ export declare class StarkTransferSettlement extends X10BaseModel {
11
+ amount: number;
12
+ assetId: HexValue;
13
+ expirationTimestamp: number;
14
+ nonce: number;
15
+ receiverPositionId: number;
16
+ receiverPublicKey: HexValue;
17
+ senderPositionId: number;
18
+ senderPublicKey: HexValue;
19
+ signature: SettlementSignatureModel;
20
+ constructor(amount: number, assetId: HexValue, expirationTimestamp: number, nonce: number, receiverPositionId: number, receiverPublicKey: HexValue, senderPositionId: number, senderPublicKey: HexValue, signature: SettlementSignatureModel);
21
+ }
22
+ /**
23
+ * Perpetual transfer model
24
+ */
25
+ export declare class PerpetualTransferModel extends X10BaseModel {
26
+ fromAccount: number;
27
+ toAccount: number;
28
+ amount: Decimal;
29
+ transferredAsset: string;
30
+ settlement: StarkTransferSettlement;
31
+ constructor(fromAccount: number, toAccount: number, amount: Decimal, transferredAsset: string, settlement: StarkTransferSettlement);
32
+ }
33
+ /**
34
+ * On-chain perpetual transfer model
35
+ */
36
+ export declare class OnChainPerpetualTransferModel extends X10BaseModel {
37
+ fromVault: number;
38
+ toVault: number;
39
+ amount: Decimal;
40
+ settlement: StarkTransferSettlement;
41
+ transferredAsset: string;
42
+ constructor(fromVault: number, toVault: number, amount: Decimal, settlement: StarkTransferSettlement, transferredAsset: string);
43
+ }
44
+ /**
45
+ * Transfer response model
46
+ */
47
+ export declare class TransferResponseModel extends X10BaseModel {
48
+ validSignature: boolean;
49
+ id?: number;
50
+ hashCalculated?: string;
51
+ starkExRepresentation?: Record<string, any>;
52
+ constructor(validSignature: boolean, id?: number, hashCalculated?: string, starkExRepresentation?: Record<string, any>);
53
+ }
54
+ //# sourceMappingURL=transfers.d.ts.map