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,98 @@
1
+ /**
2
+ * HTTP client utilities for X10 API
3
+ */
4
+ import { X10BaseModel } from './model';
5
+ export type ApiResponseType<T> = T | T[] | number;
6
+ /**
7
+ * HTTP Request headers
8
+ */
9
+ export declare enum RequestHeader {
10
+ ACCEPT = "Accept",
11
+ API_KEY = "X-Api-Key",
12
+ CONTENT_TYPE = "Content-Type",
13
+ USER_AGENT = "User-Agent"
14
+ }
15
+ /**
16
+ * Response status
17
+ */
18
+ export declare enum ResponseStatus {
19
+ OK = "OK",
20
+ ERROR = "ERROR"
21
+ }
22
+ /**
23
+ * Stream data types
24
+ */
25
+ export declare enum StreamDataType {
26
+ UNKNOWN = "UNKNOWN",
27
+ BALANCE = "BALANCE",
28
+ DELTA = "DELTA",
29
+ DEPOSIT = "DEPOSIT",
30
+ ORDER = "ORDER",
31
+ POSITION = "POSITION",
32
+ SNAPSHOT = "SNAPSHOT",
33
+ TRADE = "TRADE",
34
+ TRANSFER = "TRANSFER",
35
+ WITHDRAWAL = "WITHDRAWAL"
36
+ }
37
+ /**
38
+ * Response error model
39
+ */
40
+ export declare class ResponseError extends X10BaseModel {
41
+ code: number;
42
+ message: string;
43
+ debugInfo?: string;
44
+ constructor(code: number, message: string, debugInfo?: string);
45
+ }
46
+ /**
47
+ * Pagination model
48
+ */
49
+ export declare class Pagination extends X10BaseModel {
50
+ cursor?: number;
51
+ count: number;
52
+ constructor(cursor: number | undefined, count: number);
53
+ }
54
+ /**
55
+ * Wrapped API response
56
+ */
57
+ export declare class WrappedApiResponse<T> extends X10BaseModel {
58
+ status: ResponseStatus;
59
+ data?: T;
60
+ error?: ResponseError;
61
+ pagination?: Pagination;
62
+ constructor(status: ResponseStatus, data?: T, error?: ResponseError, pagination?: Pagination);
63
+ }
64
+ /**
65
+ * Wrapped stream response
66
+ */
67
+ export declare class WrappedStreamResponse<T> extends X10BaseModel {
68
+ type?: StreamDataType;
69
+ data?: T;
70
+ error?: string;
71
+ ts: number;
72
+ seq: number;
73
+ constructor(type: StreamDataType | undefined, data: T | undefined, error: string | undefined, ts: number, seq: number);
74
+ }
75
+ /**
76
+ * Build URL with path parameters and query string
77
+ */
78
+ export declare function getUrl(template: string, options?: {
79
+ query?: Record<string, string | string[]>;
80
+ pathParams?: Record<string, string | number>;
81
+ }): string;
82
+ /**
83
+ * Send GET request
84
+ */
85
+ export declare function sendGetRequest<T>(url: string, apiKey?: string, requestHeaders?: Record<string, string>, responseCodeToException?: Map<number, typeof Error>): Promise<WrappedApiResponse<T>>;
86
+ /**
87
+ * Send POST request
88
+ */
89
+ export declare function sendPostRequest<T>(url: string, json?: any, apiKey?: string, requestHeaders?: Record<string, string>, responseCodeToException?: Map<number, typeof Error>): Promise<WrappedApiResponse<T>>;
90
+ /**
91
+ * Send PATCH request
92
+ */
93
+ export declare function sendPatchRequest<T>(url: string, json?: any, apiKey?: string, requestHeaders?: Record<string, string>, responseCodeToException?: Map<number, typeof Error>): Promise<WrappedApiResponse<T>>;
94
+ /**
95
+ * Send DELETE request
96
+ */
97
+ export declare function sendDeleteRequest<T>(url: string, apiKey?: string, requestHeaders?: Record<string, string>, responseCodeToException?: Map<number, typeof Error>): Promise<WrappedApiResponse<T>>;
98
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,290 @@
1
+ "use strict";
2
+ /**
3
+ * HTTP client utilities for X10 API
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WrappedStreamResponse = exports.WrappedApiResponse = exports.Pagination = exports.ResponseError = exports.StreamDataType = exports.ResponseStatus = exports.RequestHeader = void 0;
7
+ exports.getUrl = getUrl;
8
+ exports.sendGetRequest = sendGetRequest;
9
+ exports.sendPostRequest = sendPostRequest;
10
+ exports.sendPatchRequest = sendPatchRequest;
11
+ exports.sendDeleteRequest = sendDeleteRequest;
12
+ const config_1 = require("../config");
13
+ const errors_1 = require("../errors");
14
+ const model_1 = require("./model");
15
+ /**
16
+ * HTTP Request headers
17
+ */
18
+ var RequestHeader;
19
+ (function (RequestHeader) {
20
+ RequestHeader["ACCEPT"] = "Accept";
21
+ RequestHeader["API_KEY"] = "X-Api-Key";
22
+ RequestHeader["CONTENT_TYPE"] = "Content-Type";
23
+ RequestHeader["USER_AGENT"] = "User-Agent";
24
+ })(RequestHeader || (exports.RequestHeader = RequestHeader = {}));
25
+ /**
26
+ * Response status
27
+ */
28
+ var ResponseStatus;
29
+ (function (ResponseStatus) {
30
+ ResponseStatus["OK"] = "OK";
31
+ ResponseStatus["ERROR"] = "ERROR";
32
+ })(ResponseStatus || (exports.ResponseStatus = ResponseStatus = {}));
33
+ /**
34
+ * Stream data types
35
+ */
36
+ var StreamDataType;
37
+ (function (StreamDataType) {
38
+ StreamDataType["UNKNOWN"] = "UNKNOWN";
39
+ StreamDataType["BALANCE"] = "BALANCE";
40
+ StreamDataType["DELTA"] = "DELTA";
41
+ StreamDataType["DEPOSIT"] = "DEPOSIT";
42
+ StreamDataType["ORDER"] = "ORDER";
43
+ StreamDataType["POSITION"] = "POSITION";
44
+ StreamDataType["SNAPSHOT"] = "SNAPSHOT";
45
+ StreamDataType["TRADE"] = "TRADE";
46
+ StreamDataType["TRANSFER"] = "TRANSFER";
47
+ StreamDataType["WITHDRAWAL"] = "WITHDRAWAL";
48
+ })(StreamDataType || (exports.StreamDataType = StreamDataType = {}));
49
+ /**
50
+ * Response error model
51
+ */
52
+ class ResponseError extends model_1.X10BaseModel {
53
+ code;
54
+ message;
55
+ debugInfo;
56
+ constructor(code, message, debugInfo) {
57
+ super();
58
+ this.code = code;
59
+ this.message = message;
60
+ this.debugInfo = debugInfo;
61
+ }
62
+ }
63
+ exports.ResponseError = ResponseError;
64
+ /**
65
+ * Pagination model
66
+ */
67
+ class Pagination extends model_1.X10BaseModel {
68
+ cursor;
69
+ count;
70
+ constructor(cursor, count) {
71
+ super();
72
+ this.cursor = cursor;
73
+ this.count = count;
74
+ }
75
+ }
76
+ exports.Pagination = Pagination;
77
+ /**
78
+ * Wrapped API response
79
+ */
80
+ class WrappedApiResponse extends model_1.X10BaseModel {
81
+ status;
82
+ data;
83
+ error;
84
+ pagination;
85
+ constructor(status, data, error, pagination) {
86
+ super();
87
+ this.status = status;
88
+ this.data = data;
89
+ this.error = error;
90
+ this.pagination = pagination;
91
+ }
92
+ }
93
+ exports.WrappedApiResponse = WrappedApiResponse;
94
+ /**
95
+ * Wrapped stream response
96
+ */
97
+ class WrappedStreamResponse extends model_1.X10BaseModel {
98
+ type;
99
+ data;
100
+ error;
101
+ ts;
102
+ seq;
103
+ constructor(type, data, error, ts, seq) {
104
+ super();
105
+ this.type = type;
106
+ this.data = data;
107
+ this.error = error;
108
+ this.ts = ts;
109
+ this.seq = seq;
110
+ }
111
+ }
112
+ exports.WrappedStreamResponse = WrappedStreamResponse;
113
+ /**
114
+ * Build URL with path parameters and query string
115
+ */
116
+ function getUrl(template, options = {}) {
117
+ let url = template;
118
+ const { query, pathParams } = options;
119
+ // Replace path parameters
120
+ if (pathParams) {
121
+ for (const [key, value] of Object.entries(pathParams)) {
122
+ const regex = new RegExp(`<\\??${key}>`, 'g');
123
+ url = url.replace(regex, String(value));
124
+ }
125
+ }
126
+ // Remove trailing slash
127
+ url = url.replace(/\/+$/, '');
128
+ // Add query string
129
+ if (query) {
130
+ const queryParts = [];
131
+ for (const [key, value] of Object.entries(query)) {
132
+ if (Array.isArray(value)) {
133
+ for (const item of value) {
134
+ if (item !== null && item !== undefined) {
135
+ queryParts.push(`${key}=${encodeURIComponent(item)}`);
136
+ }
137
+ }
138
+ }
139
+ else if (value !== null && value !== undefined) {
140
+ queryParts.push(`${key}=${encodeURIComponent(value)}`);
141
+ }
142
+ }
143
+ if (queryParts.length > 0) {
144
+ url += '?' + queryParts.join('&');
145
+ }
146
+ }
147
+ return url;
148
+ }
149
+ /**
150
+ * Get HTTP headers for requests
151
+ */
152
+ function getHeaders(apiKey, requestHeaders) {
153
+ const headers = {
154
+ [RequestHeader.ACCEPT]: 'application/json',
155
+ [RequestHeader.CONTENT_TYPE]: 'application/json',
156
+ [RequestHeader.USER_AGENT]: config_1.USER_AGENT,
157
+ };
158
+ if (apiKey) {
159
+ headers[RequestHeader.API_KEY] = apiKey;
160
+ }
161
+ if (requestHeaders) {
162
+ Object.assign(headers, requestHeaders);
163
+ }
164
+ return headers;
165
+ }
166
+ /**
167
+ * Handle HTTP errors
168
+ */
169
+ function handleKnownErrors(url, responseCodeToException, status, responseText) {
170
+ if (status === 401) {
171
+ throw new errors_1.NotAuthorizedException(`Unauthorized response from ${url}: ${responseText}`);
172
+ }
173
+ if (status === 429) {
174
+ throw new errors_1.RateLimitException(`Rate limited response from ${url}: ${responseText}`);
175
+ }
176
+ if (responseCodeToException && status in responseCodeToException) {
177
+ const ExceptionClass = responseCodeToException.get(status);
178
+ if (ExceptionClass) {
179
+ throw new ExceptionClass(responseText);
180
+ }
181
+ }
182
+ if (status > 299) {
183
+ throw new Error(`Error response from ${url}: code ${status} - ${responseText}`);
184
+ }
185
+ }
186
+ /**
187
+ * Send GET request
188
+ */
189
+ async function sendGetRequest(url, apiKey, requestHeaders, responseCodeToException) {
190
+ const headers = getHeaders(apiKey, requestHeaders);
191
+ const controller = new AbortController();
192
+ const timeoutId = setTimeout(() => controller.abort(), config_1.DEFAULT_REQUEST_TIMEOUT_SECONDS * 1000);
193
+ try {
194
+ const response = await fetch(url, {
195
+ method: 'GET',
196
+ headers,
197
+ signal: controller.signal,
198
+ });
199
+ clearTimeout(timeoutId);
200
+ const responseText = await response.text();
201
+ handleKnownErrors(url, responseCodeToException, response.status, responseText);
202
+ const data = JSON.parse(responseText);
203
+ return data;
204
+ }
205
+ catch (error) {
206
+ clearTimeout(timeoutId);
207
+ throw error;
208
+ }
209
+ }
210
+ /**
211
+ * Send POST request
212
+ */
213
+ async function sendPostRequest(url, json, apiKey, requestHeaders, responseCodeToException) {
214
+ const headers = getHeaders(apiKey, requestHeaders);
215
+ const controller = new AbortController();
216
+ const timeoutId = setTimeout(() => controller.abort(), config_1.DEFAULT_REQUEST_TIMEOUT_SECONDS * 1000);
217
+ try {
218
+ const response = await fetch(url, {
219
+ method: 'POST',
220
+ headers,
221
+ body: json ? JSON.stringify(json) : undefined,
222
+ signal: controller.signal,
223
+ });
224
+ clearTimeout(timeoutId);
225
+ const responseText = await response.text();
226
+ handleKnownErrors(url, responseCodeToException, response.status, responseText);
227
+ const data = JSON.parse(responseText);
228
+ if (data.status !== ResponseStatus.OK || data.error) {
229
+ throw new Error(`Error response from POST ${url}: ${JSON.stringify(data.error)}`);
230
+ }
231
+ return data;
232
+ }
233
+ catch (error) {
234
+ clearTimeout(timeoutId);
235
+ throw error;
236
+ }
237
+ }
238
+ /**
239
+ * Send PATCH request
240
+ */
241
+ async function sendPatchRequest(url, json, apiKey, requestHeaders, responseCodeToException) {
242
+ const headers = getHeaders(apiKey, requestHeaders);
243
+ const controller = new AbortController();
244
+ const timeoutId = setTimeout(() => controller.abort(), config_1.DEFAULT_REQUEST_TIMEOUT_SECONDS * 1000);
245
+ try {
246
+ const response = await fetch(url, {
247
+ method: 'PATCH',
248
+ headers,
249
+ body: json ? JSON.stringify(json) : undefined,
250
+ signal: controller.signal,
251
+ });
252
+ clearTimeout(timeoutId);
253
+ let responseText = await response.text();
254
+ if (responseText === '') {
255
+ responseText = '{"status": "OK"}';
256
+ }
257
+ handleKnownErrors(url, responseCodeToException, response.status, responseText);
258
+ const data = JSON.parse(responseText);
259
+ return data;
260
+ }
261
+ catch (error) {
262
+ clearTimeout(timeoutId);
263
+ throw error;
264
+ }
265
+ }
266
+ /**
267
+ * Send DELETE request
268
+ */
269
+ async function sendDeleteRequest(url, apiKey, requestHeaders, responseCodeToException) {
270
+ const headers = getHeaders(apiKey, requestHeaders);
271
+ const controller = new AbortController();
272
+ const timeoutId = setTimeout(() => controller.abort(), config_1.DEFAULT_REQUEST_TIMEOUT_SECONDS * 1000);
273
+ try {
274
+ const response = await fetch(url, {
275
+ method: 'DELETE',
276
+ headers,
277
+ signal: controller.signal,
278
+ });
279
+ clearTimeout(timeoutId);
280
+ const responseText = await response.text();
281
+ handleKnownErrors(url, responseCodeToException, response.status, responseText);
282
+ const data = JSON.parse(responseText);
283
+ return data;
284
+ }
285
+ catch (error) {
286
+ clearTimeout(timeoutId);
287
+ throw error;
288
+ }
289
+ }
290
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/utils/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Base model utilities and types
3
+ */
4
+ /**
5
+ * Hex value type - represented as string in JSON, BigInt in memory
6
+ */
7
+ export type HexValue = string | bigint;
8
+ /**
9
+ * Base model class for all X10 API models
10
+ * Handles camelCase/snake_case conversion
11
+ */
12
+ export declare class X10BaseModel {
13
+ /**
14
+ * Convert model to pretty JSON string
15
+ */
16
+ toPrettyJson(): string;
17
+ /**
18
+ * Convert model to API request JSON (camelCase)
19
+ */
20
+ toApiRequestJson(excludeNone?: boolean): Record<string, any>;
21
+ }
22
+ /**
23
+ * Settlement signature model
24
+ */
25
+ export declare class SettlementSignatureModel extends X10BaseModel {
26
+ r: HexValue;
27
+ s: HexValue;
28
+ constructor(r: HexValue, s: HexValue);
29
+ }
30
+ /**
31
+ * Empty model (for void responses)
32
+ */
33
+ export declare class EmptyModel extends X10BaseModel {
34
+ }
35
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/utils/model.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC;;;GAGG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,gBAAgB,CAAC,WAAW,GAAE,OAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA4CpE;AASD;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,YAAY;IACxD,CAAC,EAAE,QAAQ,CAAC;IACZ,CAAC,EAAE,QAAQ,CAAC;gBAEA,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ;CAKrC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAY;CAAG"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * Base model utilities and types
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.EmptyModel = exports.SettlementSignatureModel = exports.X10BaseModel = void 0;
10
+ const decimal_js_1 = __importDefault(require("decimal.js"));
11
+ /**
12
+ * Base model class for all X10 API models
13
+ * Handles camelCase/snake_case conversion
14
+ */
15
+ class X10BaseModel {
16
+ /**
17
+ * Convert model to pretty JSON string
18
+ */
19
+ toPrettyJson() {
20
+ return JSON.stringify(this, null, 2);
21
+ }
22
+ /**
23
+ * Convert model to API request JSON (camelCase)
24
+ */
25
+ toApiRequestJson(excludeNone = false) {
26
+ const obj = {};
27
+ for (const [key, value] of Object.entries(this)) {
28
+ const camelKey = toCamel(key);
29
+ if (excludeNone && (value === null || value === undefined)) {
30
+ continue;
31
+ }
32
+ let processed = value;
33
+ // Recursively convert nested models
34
+ if (value instanceof X10BaseModel) {
35
+ processed = value.toApiRequestJson(excludeNone);
36
+ }
37
+ // Convert arrays of models
38
+ if (Array.isArray(value)) {
39
+ processed = value.map((item) => item instanceof X10BaseModel ? item.toApiRequestJson(excludeNone) : item);
40
+ }
41
+ // Convert BigInt to hex string
42
+ if (typeof processed === 'bigint') {
43
+ processed = `0x${processed.toString(16)}`;
44
+ }
45
+ // Convert Decimal to string
46
+ if (processed instanceof decimal_js_1.default) {
47
+ processed = processed.toString();
48
+ }
49
+ // Convert snake_case to camelCase
50
+ if (key !== camelKey) {
51
+ obj[camelKey] = processed;
52
+ }
53
+ else {
54
+ obj[key] = processed;
55
+ }
56
+ }
57
+ return obj;
58
+ }
59
+ }
60
+ exports.X10BaseModel = X10BaseModel;
61
+ /**
62
+ * Convert snake_case to camelCase
63
+ */
64
+ function toCamel(str) {
65
+ return str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
66
+ }
67
+ /**
68
+ * Settlement signature model
69
+ */
70
+ class SettlementSignatureModel extends X10BaseModel {
71
+ r;
72
+ s;
73
+ constructor(r, s) {
74
+ super();
75
+ this.r = r;
76
+ this.s = s;
77
+ }
78
+ }
79
+ exports.SettlementSignatureModel = SettlementSignatureModel;
80
+ /**
81
+ * Empty model (for void responses)
82
+ */
83
+ class EmptyModel extends X10BaseModel {
84
+ }
85
+ exports.EmptyModel = EmptyModel;
86
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/utils/model.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AAEH,4DAAiC;AAOjC;;;GAGG;AACH,MAAa,YAAY;IACvB;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,cAAuB,KAAK;QAC3C,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,WAAW,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;gBAC3D,SAAS;YACX,CAAC;YAED,IAAI,SAAS,GAAQ,KAAK,CAAC;YAE3B,oCAAoC;YACpC,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;gBAClC,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAClD,CAAC;YAED,2BAA2B;YAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC7B,IAAI,YAAY,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CACzE,CAAC;YACJ,CAAC;YAED,+BAA+B;YAC/B,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClC,SAAS,GAAG,KAAK,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC5C,CAAC;YAED,4BAA4B;YAC5B,IAAI,SAAS,YAAY,oBAAO,EAAE,CAAC;gBACjC,SAAS,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YACnC,CAAC;YAED,kCAAkC;YAClC,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACrB,GAAG,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAvDD,oCAuDC;AAED;;GAEG;AACH,SAAS,OAAO,CAAC,GAAW;IAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAa,wBAAyB,SAAQ,YAAY;IACxD,CAAC,CAAW;IACZ,CAAC,CAAW;IAEZ,YAAY,CAAW,EAAE,CAAW;QAClC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACb,CAAC;CACF;AATD,4DASC;AAED;;GAEG;AACH,MAAa,UAAW,SAAQ,YAAY;CAAG;AAA/C,gCAA+C"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Nonce generation utilities
3
+ */
4
+ /**
5
+ * Generates a nonce for use in StarkEx transactions
6
+ * Returns a random integer between 0 and 2^32 - 1
7
+ */
8
+ export declare function generateNonce(): number;
9
+ //# sourceMappingURL=nonce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonce.d.ts","sourceRoot":"","sources":["../../src/utils/nonce.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ /**
3
+ * Nonce generation utilities
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateNonce = generateNonce;
7
+ /**
8
+ * Generates a nonce for use in StarkEx transactions
9
+ * Returns a random integer between 0 and 2^32 - 1
10
+ */
11
+ function generateNonce() {
12
+ return Math.floor(Math.random() * (2 ** 32));
13
+ }
14
+ //# sourceMappingURL=nonce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nonce.js","sourceRoot":"","sources":["../../src/utils/nonce.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAMH,sCAEC;AAND;;;GAGG;AACH,SAAgB,aAAa;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * String utility functions
3
+ */
4
+ /**
5
+ * Check if a string is a valid hex string
6
+ * @param s String to check
7
+ * @param checkPrefix Whether to check for '0x' prefix
8
+ */
9
+ export declare function isHexString(s: string, checkPrefix?: boolean): boolean;
10
+ //# sourceMappingURL=string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAS3E"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ /**
3
+ * String utility functions
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.isHexString = isHexString;
7
+ /**
8
+ * Check if a string is a valid hex string
9
+ * @param s String to check
10
+ * @param checkPrefix Whether to check for '0x' prefix
11
+ */
12
+ function isHexString(s, checkPrefix = true) {
13
+ if (checkPrefix && !s.startsWith('0x')) {
14
+ return false;
15
+ }
16
+ const stringToCheck = checkPrefix ? s.slice(2) : s;
17
+ const hexRegex = /^[0-9a-fA-F]+$/;
18
+ return stringToCheck.length > 0 && hexRegex.test(stringToCheck);
19
+ }
20
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/utils/string.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAOH,kCASC;AAdD;;;;GAIG;AACH,SAAgB,WAAW,CAAC,CAAS,EAAE,cAAuB,IAAI;IAChE,IAAI,WAAW,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC;IAElC,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "extended-typescript-sdk",
3
+ "version": "0.0.1",
4
+ "description": "Unofficial TypeScript SDK for Extended Exchange - A perpetual DEX built by ex-Revolut team",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "npm run build:signer && npm run build:ts",
9
+ "build:ts": "tsc",
10
+ "build:signer": "node scripts/build-signer.js",
11
+ "build:signer:custom": "cd wasm-signer && wasm-pack build --target nodejs --out-dir ../wasm && wasm-pack build --target bundler --out-dir ../wasm-web-temp && node -e \"const fs=require('fs');['stark_crypto_wasm.js','stark_crypto_wasm_bg.wasm','stark_crypto_wasm.d.ts'].forEach(f=>{const src=`../wasm-web-temp/${f}`;const dest=`../wasm/${f.replace('.js','-web.js').replace('.wasm','-web.wasm').replace('.d.ts','-web.d.ts')}`;if(fs.existsSync(src))fs.copyFileSync(src,dest);});fs.rmSync('../wasm-web-temp',{recursive:true,force:true});\"",
12
+ "clean": "rm -rf dist wasm wasm-signer/pkg wasm-signer/pkg-web wasm-signer/target",
13
+ "prepublishOnly": "npm run build",
14
+ "test": "npm run build && jest",
15
+ "lint": "eslint src --ext .ts",
16
+ "format": "prettier --write \"src/**/*.ts\""
17
+ },
18
+ "keywords": [
19
+ "x10",
20
+ "starknet",
21
+ "trading",
22
+ "sdk",
23
+ "typescript"
24
+ ],
25
+ "author": "bvvvp009",
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://github.com/Bvvvp009/Extended-TS-SDK.git"
30
+ },
31
+ "dependencies": {
32
+ "decimal.js": "^10.4.3",
33
+ "dotenv": "^16.3.1",
34
+ "ethers": "^6.9.0",
35
+ "ws": "^8.16.0"
36
+ },
37
+ "devDependencies": {
38
+ "@types/jest": "^30.0.0",
39
+ "@types/node": "^20.11.0",
40
+ "@types/ws": "^8.5.10",
41
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
42
+ "@typescript-eslint/parser": "^6.19.0",
43
+ "eslint": "^8.56.0",
44
+ "jest": "^29.7.0",
45
+ "prettier": "^3.2.4",
46
+ "ts-jest": "^29.4.5",
47
+ "ts-node": "^10.9.2",
48
+ "typescript": "^5.3.3"
49
+ },
50
+ "files": [
51
+ "dist",
52
+ "wasm",
53
+ "README.md",
54
+ "LICENSE"
55
+ ]
56
+ }