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.
- package/LICENSE +28 -0
- package/README.md +445 -0
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +15 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +25 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +45 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +142 -0
- package/dist/index.js.map +1 -0
- package/dist/perpetual/accounts.d.ts +88 -0
- package/dist/perpetual/accounts.d.ts.map +1 -0
- package/dist/perpetual/accounts.js +152 -0
- package/dist/perpetual/accounts.js.map +1 -0
- package/dist/perpetual/amounts.d.ts +41 -0
- package/dist/perpetual/amounts.d.ts.map +1 -0
- package/dist/perpetual/amounts.js +79 -0
- package/dist/perpetual/amounts.js.map +1 -0
- package/dist/perpetual/assets.d.ts +74 -0
- package/dist/perpetual/assets.d.ts.map +1 -0
- package/dist/perpetual/assets.js +119 -0
- package/dist/perpetual/assets.js.map +1 -0
- package/dist/perpetual/bridges.d.ts +29 -0
- package/dist/perpetual/bridges.d.ts.map +1 -0
- package/dist/perpetual/bridges.js +45 -0
- package/dist/perpetual/bridges.js.map +1 -0
- package/dist/perpetual/candles.d.ts +26 -0
- package/dist/perpetual/candles.d.ts.map +1 -0
- package/dist/perpetual/candles.js +29 -0
- package/dist/perpetual/candles.js.map +1 -0
- package/dist/perpetual/clients.d.ts +15 -0
- package/dist/perpetual/clients.d.ts.map +1 -0
- package/dist/perpetual/clients.js +25 -0
- package/dist/perpetual/clients.js.map +1 -0
- package/dist/perpetual/configuration.d.ts +39 -0
- package/dist/perpetual/configuration.d.ts.map +1 -0
- package/dist/perpetual/configuration.js +61 -0
- package/dist/perpetual/configuration.js.map +1 -0
- package/dist/perpetual/crypto/signer.d.ts +164 -0
- package/dist/perpetual/crypto/signer.d.ts.map +1 -0
- package/dist/perpetual/crypto/signer.js +318 -0
- package/dist/perpetual/crypto/signer.js.map +1 -0
- package/dist/perpetual/fees.d.ts +20 -0
- package/dist/perpetual/fees.d.ts.map +1 -0
- package/dist/perpetual/fees.js +35 -0
- package/dist/perpetual/fees.js.map +1 -0
- package/dist/perpetual/funding-rates.d.ts +15 -0
- package/dist/perpetual/funding-rates.d.ts.map +1 -0
- package/dist/perpetual/funding-rates.js +23 -0
- package/dist/perpetual/funding-rates.js.map +1 -0
- package/dist/perpetual/markets.d.ts +83 -0
- package/dist/perpetual/markets.d.ts.map +1 -0
- package/dist/perpetual/markets.js +124 -0
- package/dist/perpetual/markets.js.map +1 -0
- package/dist/perpetual/order-object-settlement.d.ts +43 -0
- package/dist/perpetual/order-object-settlement.d.ts.map +1 -0
- package/dist/perpetual/order-object-settlement.js +121 -0
- package/dist/perpetual/order-object-settlement.js.map +1 -0
- package/dist/perpetual/order-object.d.ts +38 -0
- package/dist/perpetual/order-object.d.ts.map +1 -0
- package/dist/perpetual/order-object.js +90 -0
- package/dist/perpetual/order-object.js.map +1 -0
- package/dist/perpetual/orderbooks.d.ts +23 -0
- package/dist/perpetual/orderbooks.d.ts.map +1 -0
- package/dist/perpetual/orderbooks.js +36 -0
- package/dist/perpetual/orderbooks.js.map +1 -0
- package/dist/perpetual/orders.d.ts +207 -0
- package/dist/perpetual/orders.d.ts.map +1 -0
- package/dist/perpetual/orders.js +266 -0
- package/dist/perpetual/orders.js.map +1 -0
- package/dist/perpetual/positions.d.ts +80 -0
- package/dist/perpetual/positions.d.ts.map +1 -0
- package/dist/perpetual/positions.js +94 -0
- package/dist/perpetual/positions.js.map +1 -0
- package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts +47 -0
- package/dist/perpetual/stream-client/perpetual-stream-connection.d.ts.map +1 -0
- package/dist/perpetual/stream-client/perpetual-stream-connection.js +125 -0
- package/dist/perpetual/stream-client/perpetual-stream-connection.js.map +1 -0
- package/dist/perpetual/stream-client/stream-client.d.ts +46 -0
- package/dist/perpetual/stream-client/stream-client.d.ts.map +1 -0
- package/dist/perpetual/stream-client/stream-client.js +79 -0
- package/dist/perpetual/stream-client/stream-client.js.map +1 -0
- package/dist/perpetual/trades.d.ts +44 -0
- package/dist/perpetual/trades.d.ts.map +1 -0
- package/dist/perpetual/trades.js +48 -0
- package/dist/perpetual/trades.js.map +1 -0
- package/dist/perpetual/trading-client/account-module.d.ts +192 -0
- package/dist/perpetual/trading-client/account-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/account-module.js +357 -0
- package/dist/perpetual/trading-client/account-module.js.map +1 -0
- package/dist/perpetual/trading-client/base-module.d.ts +27 -0
- package/dist/perpetual/trading-client/base-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/base-module.js +49 -0
- package/dist/perpetual/trading-client/base-module.js.map +1 -0
- package/dist/perpetual/trading-client/info-module.d.ts +24 -0
- package/dist/perpetual/trading-client/info-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/info-module.js +33 -0
- package/dist/perpetual/trading-client/info-module.js.map +1 -0
- package/dist/perpetual/trading-client/markets-information-module.d.ts +53 -0
- package/dist/perpetual/trading-client/markets-information-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/markets-information-module.js +106 -0
- package/dist/perpetual/trading-client/markets-information-module.js.map +1 -0
- package/dist/perpetual/trading-client/order-management-module.d.ts +40 -0
- package/dist/perpetual/trading-client/order-management-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/order-management-module.js +71 -0
- package/dist/perpetual/trading-client/order-management-module.js.map +1 -0
- package/dist/perpetual/trading-client/testnet-module.d.ts +27 -0
- package/dist/perpetual/trading-client/testnet-module.d.ts.map +1 -0
- package/dist/perpetual/trading-client/testnet-module.js +45 -0
- package/dist/perpetual/trading-client/testnet-module.js.map +1 -0
- package/dist/perpetual/trading-client/trading-client.d.ts +75 -0
- package/dist/perpetual/trading-client/trading-client.d.ts.map +1 -0
- package/dist/perpetual/trading-client/trading-client.js +115 -0
- package/dist/perpetual/trading-client/trading-client.js.map +1 -0
- package/dist/perpetual/transfer-object.d.ts +12 -0
- package/dist/perpetual/transfer-object.d.ts.map +1 -0
- package/dist/perpetual/transfer-object.js +57 -0
- package/dist/perpetual/transfer-object.js.map +1 -0
- package/dist/perpetual/transfers.d.ts +54 -0
- package/dist/perpetual/transfers.d.ts.map +1 -0
- package/dist/perpetual/transfers.js +90 -0
- package/dist/perpetual/transfers.js.map +1 -0
- package/dist/perpetual/user-client/onboarding.d.ts +101 -0
- package/dist/perpetual/user-client/onboarding.d.ts.map +1 -0
- package/dist/perpetual/user-client/onboarding.js +247 -0
- package/dist/perpetual/user-client/onboarding.js.map +1 -0
- package/dist/perpetual/user-client/user-client.d.ts +45 -0
- package/dist/perpetual/user-client/user-client.d.ts.map +1 -0
- package/dist/perpetual/user-client/user-client.js +185 -0
- package/dist/perpetual/user-client/user-client.js.map +1 -0
- package/dist/perpetual/withdrawal-object.d.ts +12 -0
- package/dist/perpetual/withdrawal-object.d.ts.map +1 -0
- package/dist/perpetual/withdrawal-object.js +51 -0
- package/dist/perpetual/withdrawal-object.js.map +1 -0
- package/dist/perpetual/withdrawals.d.ts +40 -0
- package/dist/perpetual/withdrawals.d.ts.map +1 -0
- package/dist/perpetual/withdrawals.js +65 -0
- package/dist/perpetual/withdrawals.js.map +1 -0
- package/dist/utils/date.d.ts +13 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +21 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/env.d.ts +50 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +157 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/http.d.ts +98 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +290 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/model.d.ts +35 -0
- package/dist/utils/model.d.ts.map +1 -0
- package/dist/utils/model.js +86 -0
- package/dist/utils/model.js.map +1 -0
- package/dist/utils/nonce.d.ts +9 -0
- package/dist/utils/nonce.d.ts.map +1 -0
- package/dist/utils/nonce.js +14 -0
- package/dist/utils/nonce.js.map +1 -0
- package/dist/utils/string.d.ts +10 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +20 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +56 -0
- package/wasm/stark_crypto_wasm-web.js +5 -0
- package/wasm/stark_crypto_wasm.d-web.ts +63 -0
- package/wasm/stark_crypto_wasm.d.ts +63 -0
- package/wasm/stark_crypto_wasm.js +362 -0
- package/wasm/stark_crypto_wasm_bg-web.wasm +0 -0
- 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
|