@solncebro/exchange-engine 0.1.1 → 0.2.0
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/CHANGELOG.md +42 -0
- package/README.md +7 -7
- package/dist/auth/binanceAuth.js +3 -6
- package/dist/auth/binanceAuth.js.map +1 -1
- package/dist/auth/bybitAuth.d.ts +0 -1
- package/dist/auth/bybitAuth.d.ts.map +1 -1
- package/dist/auth/bybitAuth.js +2 -9
- package/dist/auth/bybitAuth.js.map +1 -1
- package/dist/constants/binance.d.ts +8 -5
- package/dist/constants/binance.d.ts.map +1 -1
- package/dist/constants/binance.js +10 -23
- package/dist/constants/binance.js.map +1 -1
- package/dist/constants/bybit.d.ts +7 -9
- package/dist/constants/bybit.d.ts.map +1 -1
- package/dist/constants/bybit.js +10 -13
- package/dist/constants/bybit.js.map +1 -1
- package/dist/constants/mappings.d.ts +9 -0
- package/dist/constants/mappings.d.ts.map +1 -0
- package/dist/constants/mappings.js +40 -0
- package/dist/constants/mappings.js.map +1 -0
- package/dist/exchanges/BaseExchangeClient.d.ts +37 -0
- package/dist/exchanges/BaseExchangeClient.d.ts.map +1 -0
- package/dist/exchanges/BaseExchangeClient.js +91 -0
- package/dist/exchanges/BaseExchangeClient.js.map +1 -0
- package/dist/exchanges/BinanceBaseClient.d.ts +21 -0
- package/dist/exchanges/BinanceBaseClient.d.ts.map +1 -0
- package/dist/exchanges/BinanceBaseClient.js +64 -0
- package/dist/exchanges/BinanceBaseClient.js.map +1 -0
- package/dist/exchanges/BinanceFutures.d.ts +9 -21
- package/dist/exchanges/BinanceFutures.d.ts.map +1 -1
- package/dist/exchanges/BinanceFutures.js +23 -94
- package/dist/exchanges/BinanceFutures.js.map +1 -1
- package/dist/exchanges/BinanceSpot.d.ts +9 -21
- package/dist/exchanges/BinanceSpot.d.ts.map +1 -1
- package/dist/exchanges/BinanceSpot.js +16 -94
- package/dist/exchanges/BinanceSpot.js.map +1 -1
- package/dist/exchanges/BybitLinear.d.ts +19 -20
- package/dist/exchanges/BybitLinear.d.ts.map +1 -1
- package/dist/exchanges/BybitLinear.js +66 -71
- package/dist/exchanges/BybitLinear.js.map +1 -1
- package/dist/exchanges/BybitSpot.d.ts +17 -19
- package/dist/exchanges/BybitSpot.d.ts.map +1 -1
- package/dist/exchanges/BybitSpot.js +42 -64
- package/dist/exchanges/BybitSpot.js.map +1 -1
- package/dist/exchanges/Exchange.d.ts +1 -1
- package/dist/exchanges/Exchange.d.ts.map +1 -1
- package/dist/exchanges/Exchange.js +3 -2
- package/dist/exchanges/Exchange.js.map +1 -1
- package/dist/http/BaseHttpClient.d.ts +10 -1
- package/dist/http/BaseHttpClient.d.ts.map +1 -1
- package/dist/http/BaseHttpClient.js +27 -5
- package/dist/http/BaseHttpClient.js.map +1 -1
- package/dist/http/BinanceBaseHttpClient.d.ts +49 -0
- package/dist/http/BinanceBaseHttpClient.d.ts.map +1 -0
- package/dist/http/BinanceBaseHttpClient.js +86 -0
- package/dist/http/BinanceBaseHttpClient.js.map +1 -0
- package/dist/http/BinanceFuturesHttpClient.d.ts +11 -40
- package/dist/http/BinanceFuturesHttpClient.d.ts.map +1 -1
- package/dist/http/BinanceFuturesHttpClient.js +38 -185
- package/dist/http/BinanceFuturesHttpClient.js.map +1 -1
- package/dist/http/BinanceSpotHttpClient.d.ts +5 -24
- package/dist/http/BinanceSpotHttpClient.d.ts.map +1 -1
- package/dist/http/BinanceSpotHttpClient.js +15 -90
- package/dist/http/BinanceSpotHttpClient.js.map +1 -1
- package/dist/http/BybitHttpClient.d.ts +82 -134
- package/dist/http/BybitHttpClient.d.ts.map +1 -1
- package/dist/http/BybitHttpClient.js +61 -94
- package/dist/http/BybitHttpClient.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/normalizers/binanceNormalizer.d.ts +29 -19
- package/dist/normalizers/binanceNormalizer.d.ts.map +1 -1
- package/dist/normalizers/binanceNormalizer.js +55 -35
- package/dist/normalizers/binanceNormalizer.js.map +1 -1
- package/dist/normalizers/bybitNormalizer.d.ts +25 -19
- package/dist/normalizers/bybitNormalizer.d.ts.map +1 -1
- package/dist/normalizers/bybitNormalizer.js +60 -45
- package/dist/normalizers/bybitNormalizer.js.map +1 -1
- package/dist/precision/precision.d.ts +3 -3
- package/dist/precision/precision.d.ts.map +1 -1
- package/dist/precision/precision.js +4 -4
- package/dist/precision/precision.js.map +1 -1
- package/dist/types/common.d.ts +57 -22
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +40 -0
- package/dist/types/common.js.map +1 -1
- package/dist/types/exchange.d.ts +14 -8
- package/dist/types/exchange.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/stream.d.ts +9 -0
- package/dist/types/stream.d.ts.map +1 -0
- package/dist/types/stream.js +3 -0
- package/dist/types/stream.js.map +1 -0
- package/dist/utils/crypto.d.ts +2 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +11 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/httpParams.d.ts +3 -0
- package/dist/utils/httpParams.d.ts.map +1 -0
- package/dist/utils/httpParams.js +15 -0
- package/dist/utils/httpParams.js.map +1 -0
- package/dist/utils/klineLoader.d.ts +10 -0
- package/dist/utils/klineLoader.d.ts.map +1 -0
- package/dist/utils/klineLoader.js +19 -0
- package/dist/utils/klineLoader.js.map +1 -0
- package/dist/ws/BinanceFuturesPublicStream.d.ts +8 -7
- package/dist/ws/BinanceFuturesPublicStream.d.ts.map +1 -1
- package/dist/ws/BinanceFuturesPublicStream.js +49 -79
- package/dist/ws/BinanceFuturesPublicStream.js.map +1 -1
- package/dist/ws/BinanceSpotPublicStream.d.ts +7 -5
- package/dist/ws/BinanceSpotPublicStream.d.ts.map +1 -1
- package/dist/ws/BinanceSpotPublicStream.js +24 -31
- package/dist/ws/BinanceSpotPublicStream.js.map +1 -1
- package/dist/ws/BinanceUserDataStream.d.ts +3 -3
- package/dist/ws/BinanceUserDataStream.d.ts.map +1 -1
- package/dist/ws/BinanceUserDataStream.js +10 -10
- package/dist/ws/BinanceUserDataStream.js.map +1 -1
- package/dist/ws/BybitPrivateStream.d.ts +1 -1
- package/dist/ws/BybitPrivateStream.d.ts.map +1 -1
- package/dist/ws/BybitPrivateStream.js +12 -29
- package/dist/ws/BybitPrivateStream.js.map +1 -1
- package/dist/ws/BybitPublicStream.d.ts +5 -4
- package/dist/ws/BybitPublicStream.d.ts.map +1 -1
- package/dist/ws/BybitPublicStream.js +18 -24
- package/dist/ws/BybitPublicStream.js.map +1 -1
- package/dist/ws/BybitTradeStream.d.ts +4 -2
- package/dist/ws/BybitTradeStream.d.ts.map +1 -1
- package/dist/ws/BybitTradeStream.js +32 -44
- package/dist/ws/BybitTradeStream.js.map +1 -1
- package/dist/ws/binanceWebSocketUtils.d.ts +4 -0
- package/dist/ws/binanceWebSocketUtils.d.ts.map +1 -0
- package/dist/ws/binanceWebSocketUtils.js +7 -0
- package/dist/ws/binanceWebSocketUtils.js.map +1 -0
- package/dist/ws/bybitWebSocketUtils.d.ts +28 -0
- package/dist/ws/bybitWebSocketUtils.d.ts.map +1 -0
- package/dist/ws/bybitWebSocketUtils.js +29 -0
- package/dist/ws/bybitWebSocketUtils.js.map +1 -0
- package/package.json +21 -3
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BinanceBaseClient = void 0;
|
|
4
|
+
const common_1 = require("../types/common");
|
|
5
|
+
const binanceNormalizer_1 = require("../normalizers/binanceNormalizer");
|
|
6
|
+
const BaseExchangeClient_1 = require("./BaseExchangeClient");
|
|
7
|
+
class BinanceBaseClient extends BaseExchangeClient_1.BaseExchangeClient {
|
|
8
|
+
httpClient;
|
|
9
|
+
userDataStream = null;
|
|
10
|
+
publicStream;
|
|
11
|
+
constructor(args, httpClient, publicStream) {
|
|
12
|
+
super(args);
|
|
13
|
+
this.httpClient = httpClient;
|
|
14
|
+
this.publicStream = publicStream;
|
|
15
|
+
}
|
|
16
|
+
getPublicStream() {
|
|
17
|
+
return this.publicStream;
|
|
18
|
+
}
|
|
19
|
+
async fetchAndNormalizeTradeSymbols() {
|
|
20
|
+
const raw = await this.httpClient.fetchExchangeInfo();
|
|
21
|
+
return (0, binanceNormalizer_1.normalizeBinanceTradeSymbols)(raw);
|
|
22
|
+
}
|
|
23
|
+
async fetchAndNormalizeTickers() {
|
|
24
|
+
const rawTickerList = await this.httpClient.fetchTickers();
|
|
25
|
+
return (0, binanceNormalizer_1.normalizeBinanceTickers)(rawTickerList);
|
|
26
|
+
}
|
|
27
|
+
async fetchAndNormalizeKlines(symbol, interval, options) {
|
|
28
|
+
const rawKlineList = await this.httpClient.fetchKlines(symbol, interval, options);
|
|
29
|
+
return (0, binanceNormalizer_1.normalizeBinanceKlines)(rawKlineList);
|
|
30
|
+
}
|
|
31
|
+
async fetchAndNormalizeBalance() {
|
|
32
|
+
const raw = await this.httpClient.fetchAccount();
|
|
33
|
+
return (0, binanceNormalizer_1.normalizeBinanceBalance)(raw);
|
|
34
|
+
}
|
|
35
|
+
async createOrderWebSocket(args) {
|
|
36
|
+
this.logger.debug(`Creating order via REST: ${args.symbol}`);
|
|
37
|
+
const orderParams = {
|
|
38
|
+
symbol: args.symbol,
|
|
39
|
+
side: args.side.toUpperCase(),
|
|
40
|
+
type: args.type.toUpperCase(),
|
|
41
|
+
quantity: this.amountToPrecision(args.symbol, args.amount),
|
|
42
|
+
...args.params,
|
|
43
|
+
};
|
|
44
|
+
if (args.type === common_1.OrderType.Limit) {
|
|
45
|
+
if (args.price > 0) {
|
|
46
|
+
orderParams.price = this.priceToPrecision(args.symbol, args.price);
|
|
47
|
+
}
|
|
48
|
+
if (orderParams.timeInForce === undefined) {
|
|
49
|
+
orderParams.timeInForce = common_1.TimeInForce.Gtc;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const raw = await this.httpClient.createOrder(orderParams);
|
|
53
|
+
return (0, binanceNormalizer_1.normalizeBinanceOrder)(raw);
|
|
54
|
+
}
|
|
55
|
+
async close() {
|
|
56
|
+
this.logger.info(`Closing Binance ${this.marketLabel} connection`);
|
|
57
|
+
if (this.userDataStream) {
|
|
58
|
+
this.userDataStream.close();
|
|
59
|
+
}
|
|
60
|
+
this.publicStream.close();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.BinanceBaseClient = BinanceBaseClient;
|
|
64
|
+
//# sourceMappingURL=BinanceBaseClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinanceBaseClient.js","sourceRoot":"","sources":["../../src/exchanges/BinanceBaseClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,16 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private logger;
|
|
10
|
-
private onNotify?;
|
|
1
|
+
import type { ExchangeArgs, FetchPageWithLimitArgs } from '../types/exchange';
|
|
2
|
+
import type { Position, FundingRateHistory } from '../types/common';
|
|
3
|
+
import { MarginMode } from '../types/common';
|
|
4
|
+
import { BinanceFuturesHttpClient } from '../http/BinanceFuturesHttpClient';
|
|
5
|
+
import { BinanceBaseClient } from './BinanceBaseClient';
|
|
6
|
+
declare class BinanceFutures extends BinanceBaseClient<BinanceFuturesHttpClient> {
|
|
7
|
+
protected readonly marketLabel = "futures";
|
|
8
|
+
protected readonly klineLimit = 499;
|
|
11
9
|
constructor(args: ExchangeArgs);
|
|
12
|
-
|
|
13
|
-
fetchTickers(): Promise<TickerBySymbol>;
|
|
14
|
-
fetchKlines(symbol: string, interval: KlineInterval, options?: FetchKlinesArgs): Promise<Kline[]>;
|
|
15
|
-
watchTickers(): AsyncGenerator<TickerBySymbol>;
|
|
16
|
-
subscribeKlines(args: SubscribeKlinesArgs): void;
|
|
17
|
-
unsubscribeKlines(args: SubscribeKlinesArgs): void;
|
|
18
|
-
createOrderWs(args: CreateOrderWsArgs): Promise<Order>;
|
|
10
|
+
fetchFundingRateHistory(symbol: string, options?: FetchPageWithLimitArgs): Promise<FundingRateHistory[]>;
|
|
19
11
|
fetchPosition(symbol: string): Promise<Position>;
|
|
20
12
|
setLeverage(leverage: number, symbol: string): Promise<void>;
|
|
21
13
|
setMarginMode(marginMode: MarginMode, symbol: string): Promise<void>;
|
|
22
|
-
fetchBalance(): Promise<BalanceByAsset>;
|
|
23
|
-
amountToPrecision(symbol: string, amount: number): string;
|
|
24
|
-
priceToPrecision(symbol: string, price: number): string;
|
|
25
|
-
close(): Promise<void>;
|
|
26
14
|
}
|
|
27
15
|
export { BinanceFutures };
|
|
28
16
|
//# sourceMappingURL=BinanceFutures.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinanceFutures.d.ts","sourceRoot":"","sources":["../../src/exchanges/BinanceFutures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"BinanceFutures.d.ts","sourceRoot":"","sources":["../../src/exchanges/BinanceFutures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAU5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,cAAM,cAAe,SAAQ,iBAAiB,CAAC,wBAAwB,CAAC;IACtE,SAAS,CAAC,QAAQ,CAAC,WAAW,aAAa;IAC3C,SAAS,CAAC,QAAQ,CAAC,UAAU,OAA+B;gBAEhD,IAAI,EAAE,YAAY;IAqBxB,uBAAuB,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAO1B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYhD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3E;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,78 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BinanceFutures = void 0;
|
|
4
|
+
const common_1 = require("../types/common");
|
|
4
5
|
const BinanceFuturesHttpClient_1 = require("../http/BinanceFuturesHttpClient");
|
|
5
6
|
const binanceNormalizer_1 = require("../normalizers/binanceNormalizer");
|
|
6
7
|
const BinanceFuturesPublicStream_1 = require("../ws/BinanceFuturesPublicStream");
|
|
7
8
|
const binance_1 = require("../constants/binance");
|
|
8
|
-
const
|
|
9
|
-
class BinanceFutures {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
httpClient;
|
|
13
|
-
publicStream;
|
|
14
|
-
userDataStream = null;
|
|
15
|
-
logger;
|
|
16
|
-
onNotify;
|
|
9
|
+
const BinanceBaseClient_1 = require("./BinanceBaseClient");
|
|
10
|
+
class BinanceFutures extends BinanceBaseClient_1.BinanceBaseClient {
|
|
11
|
+
marketLabel = 'futures';
|
|
12
|
+
klineLimit = binance_1.BINANCE_KLINE_LIMIT_FUTURES;
|
|
17
13
|
constructor(args) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const raw = await this.httpClient.fetchExchangeInfo();
|
|
30
|
-
const normalized = (0, binanceNormalizer_1.normalizeBinanceMarkets)(raw);
|
|
31
|
-
for (const [symbol, market] of normalized) {
|
|
32
|
-
this.markets.set(symbol, market);
|
|
33
|
-
}
|
|
34
|
-
this.logger.info(`Loaded ${this.markets.size} futures markets`);
|
|
35
|
-
return this.markets;
|
|
36
|
-
}
|
|
37
|
-
async fetchTickers() {
|
|
38
|
-
this.logger.debug('Fetching futures tickers');
|
|
39
|
-
const rawTickerList = await this.httpClient.fetchTickers();
|
|
40
|
-
return (0, binanceNormalizer_1.normalizeBinanceTickers)(rawTickerList);
|
|
41
|
-
}
|
|
42
|
-
async fetchKlines(symbol, interval, options) {
|
|
43
|
-
this.logger.debug(`Fetching klines for ${symbol} ${interval}`);
|
|
44
|
-
const binanceInterval = binance_1.BINANCE_KLINE_INTERVAL[interval];
|
|
45
|
-
const rawKlineList = await this.httpClient.fetchKlines(symbol, binanceInterval, {
|
|
46
|
-
startTime: options?.startTime,
|
|
47
|
-
endTime: options?.endTime,
|
|
48
|
-
limit: options?.limit,
|
|
14
|
+
const baseUrl = args.config.isDemoMode === true
|
|
15
|
+
? binance_1.BINANCE_DEMO_FUTURES_BASE_URL
|
|
16
|
+
: binance_1.BINANCE_FUTURES_BASE_URL;
|
|
17
|
+
const webSocketCombinedUrl = args.config.isDemoMode === true
|
|
18
|
+
? binance_1.BINANCE_DEMO_FUTURES_WEBSOCKET_COMBINED_URL
|
|
19
|
+
: binance_1.BINANCE_FUTURES_WEBSOCKET_COMBINED_URL;
|
|
20
|
+
const httpClient = new BinanceFuturesHttpClient_1.BinanceFuturesHttpClient({
|
|
21
|
+
baseUrl,
|
|
22
|
+
apiKey: args.config.apiKey,
|
|
23
|
+
secret: args.config.secret,
|
|
24
|
+
logger: args.logger,
|
|
49
25
|
});
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
async *watchTickers() {
|
|
53
|
-
this.publicStream.subscribeAllTickers(() => { });
|
|
54
|
-
yield await this.fetchTickers();
|
|
55
|
-
}
|
|
56
|
-
subscribeKlines(args) {
|
|
57
|
-
this.publicStream.subscribeKlines(args.symbol, args.interval, args.handler);
|
|
58
|
-
}
|
|
59
|
-
unsubscribeKlines(args) {
|
|
60
|
-
this.publicStream.unsubscribeKlines(args.symbol, args.interval, args.handler);
|
|
26
|
+
const publicStream = new BinanceFuturesPublicStream_1.BinanceFuturesPublicStream(webSocketCombinedUrl, args.logger, args.onNotify);
|
|
27
|
+
super(args, httpClient, publicStream);
|
|
61
28
|
}
|
|
62
|
-
async
|
|
63
|
-
this.logger.debug(`
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
side: args.side.toUpperCase(),
|
|
67
|
-
type: args.type.toUpperCase(),
|
|
68
|
-
quantity: this.amountToPrecision(args.symbol, args.amount),
|
|
69
|
-
...args.params,
|
|
70
|
-
};
|
|
71
|
-
if (args.price > 0) {
|
|
72
|
-
orderParams.price = this.priceToPrecision(args.symbol, args.price);
|
|
73
|
-
}
|
|
74
|
-
const raw = await this.httpClient.createOrder(orderParams);
|
|
75
|
-
return (0, binanceNormalizer_1.normalizeBinanceOrder)(raw);
|
|
29
|
+
async fetchFundingRateHistory(symbol, options) {
|
|
30
|
+
this.logger.debug(`Fetching funding rate history for ${symbol}`);
|
|
31
|
+
const raw = await this.httpClient.fetchFundingRateHistory(symbol, options);
|
|
32
|
+
return (0, binanceNormalizer_1.normalizeBinanceFundingRateHistory)(raw);
|
|
76
33
|
}
|
|
77
34
|
async fetchPosition(symbol) {
|
|
78
35
|
this.logger.debug(`Fetching position for ${symbol}`);
|
|
@@ -89,37 +46,9 @@ class BinanceFutures {
|
|
|
89
46
|
}
|
|
90
47
|
async setMarginMode(marginMode, symbol) {
|
|
91
48
|
this.logger.info(`Setting margin mode to ${marginMode} for ${symbol}`);
|
|
92
|
-
const marginType = marginMode ===
|
|
49
|
+
const marginType = marginMode === common_1.MarginMode.Isolated ? 'ISOLATED' : 'CROSSED';
|
|
93
50
|
await this.httpClient.setMarginType(symbol, marginType);
|
|
94
51
|
}
|
|
95
|
-
async fetchBalance() {
|
|
96
|
-
this.logger.debug('Fetching balance');
|
|
97
|
-
const raw = await this.httpClient.fetchAccount();
|
|
98
|
-
return (0, binanceNormalizer_1.normalizeBinanceBalance)(raw);
|
|
99
|
-
}
|
|
100
|
-
amountToPrecision(symbol, amount) {
|
|
101
|
-
const market = this.markets.get(symbol);
|
|
102
|
-
if (!market) {
|
|
103
|
-
this.logger.warn(`Market ${symbol} not found, using raw amount`);
|
|
104
|
-
return String(amount);
|
|
105
|
-
}
|
|
106
|
-
return (0, precision_1.amountToPrecision)(market, amount);
|
|
107
|
-
}
|
|
108
|
-
priceToPrecision(symbol, price) {
|
|
109
|
-
const market = this.markets.get(symbol);
|
|
110
|
-
if (!market) {
|
|
111
|
-
this.logger.warn(`Market ${symbol} not found, using raw price`);
|
|
112
|
-
return String(price);
|
|
113
|
-
}
|
|
114
|
-
return (0, precision_1.priceToPrecision)(market, price);
|
|
115
|
-
}
|
|
116
|
-
async close() {
|
|
117
|
-
this.logger.info('Closing Binance Futures connection');
|
|
118
|
-
if (this.userDataStream) {
|
|
119
|
-
this.userDataStream.close();
|
|
120
|
-
}
|
|
121
|
-
this.publicStream.close();
|
|
122
|
-
}
|
|
123
52
|
}
|
|
124
53
|
exports.BinanceFutures = BinanceFutures;
|
|
125
54
|
//# sourceMappingURL=BinanceFutures.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinanceFutures.js","sourceRoot":"","sources":["../../src/exchanges/BinanceFutures.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"BinanceFutures.js","sourceRoot":"","sources":["../../src/exchanges/BinanceFutures.ts"],"names":[],"mappings":";;;AAEA,4CAA6C;AAC7C,+EAA4E;AAC5E,wEAAgH;AAChH,iFAA8E;AAC9E,kDAM8B;AAC9B,2DAAwD;AAExD,MAAM,cAAe,SAAQ,qCAA2C;IACnD,WAAW,GAAG,SAAS,CAAC;IACxB,UAAU,GAAG,qCAA2B,CAAC;IAE5D,YAAY,IAAkB;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI;YAC7C,CAAC,CAAC,uCAA6B;YAC/B,CAAC,CAAC,kCAAwB,CAAC;QAE7B,MAAM,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI;YAC1D,CAAC,CAAC,qDAA2C;YAC7C,CAAC,CAAC,gDAAsC,CAAC;QAE3C,MAAM,UAAU,GAAG,IAAI,mDAAwB,CAAC;YAC9C,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,uDAA0B,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEtG,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,uBAAuB,CAC3B,MAAc,EACd,OAAgC;QAEhC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,MAAM,EAAE,CAAC,CAAC;QACjE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE3E,OAAO,IAAA,sDAAkC,EAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,MAAM,EAAE,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAElE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,IAAA,4CAAwB,EAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,MAAc;QAChD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,QAAQ,SAAS,MAAM,EAAE,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAsB,EAAE,MAAc;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,UAAU,QAAQ,MAAM,EAAE,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,UAAU,KAAK,mBAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;CACF;AAEQ,wCAAc"}
|
|
@@ -1,28 +1,16 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private logger;
|
|
10
|
-
private onNotify?;
|
|
1
|
+
import type { ExchangeArgs } from '../types/exchange';
|
|
2
|
+
import type { Position, FundingRateHistory } from '../types/common';
|
|
3
|
+
import { MarginMode } from '../types/common';
|
|
4
|
+
import { BinanceSpotHttpClient } from '../http/BinanceSpotHttpClient';
|
|
5
|
+
import { BinanceBaseClient } from './BinanceBaseClient';
|
|
6
|
+
declare class BinanceSpot extends BinanceBaseClient<BinanceSpotHttpClient> {
|
|
7
|
+
protected readonly marketLabel = "spot";
|
|
8
|
+
protected readonly klineLimit = 1000;
|
|
11
9
|
constructor(args: ExchangeArgs);
|
|
12
|
-
|
|
13
|
-
fetchTickers(): Promise<TickerBySymbol>;
|
|
14
|
-
fetchKlines(symbol: string, interval: KlineInterval, options?: FetchKlinesArgs): Promise<Kline[]>;
|
|
15
|
-
watchTickers(): AsyncGenerator<TickerBySymbol>;
|
|
16
|
-
subscribeKlines(args: SubscribeKlinesArgs): void;
|
|
17
|
-
unsubscribeKlines(args: SubscribeKlinesArgs): void;
|
|
18
|
-
createOrderWs(args: CreateOrderWsArgs): Promise<Order>;
|
|
10
|
+
fetchFundingRateHistory(): Promise<FundingRateHistory[]>;
|
|
19
11
|
fetchPosition(_symbol: string): Promise<Position>;
|
|
20
12
|
setLeverage(_leverage: number, _symbol: string): Promise<void>;
|
|
21
13
|
setMarginMode(_marginMode: MarginMode, _symbol: string): Promise<void>;
|
|
22
|
-
fetchBalance(): Promise<BalanceByAsset>;
|
|
23
|
-
amountToPrecision(symbol: string, amount: number): string;
|
|
24
|
-
priceToPrecision(symbol: string, price: number): string;
|
|
25
|
-
close(): Promise<void>;
|
|
26
14
|
}
|
|
27
15
|
export { BinanceSpot };
|
|
28
16
|
//# sourceMappingURL=BinanceSpot.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinanceSpot.d.ts","sourceRoot":"","sources":["../../src/exchanges/BinanceSpot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"BinanceSpot.d.ts","sourceRoot":"","sources":["../../src/exchanges/BinanceSpot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAQtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,cAAM,WAAY,SAAQ,iBAAiB,CAAC,qBAAqB,CAAC;IAChE,SAAS,CAAC,QAAQ,CAAC,WAAW,UAAU;IACxC,SAAS,CAAC,QAAQ,CAAC,UAAU,QAA4B;gBAE7C,IAAI,EAAE,YAAY;IAiBxB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAIxD,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIjD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG7E;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -2,77 +2,27 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BinanceSpot = void 0;
|
|
4
4
|
const BinanceSpotHttpClient_1 = require("../http/BinanceSpotHttpClient");
|
|
5
|
-
const binanceNormalizer_1 = require("../normalizers/binanceNormalizer");
|
|
6
5
|
const BinanceSpotPublicStream_1 = require("../ws/BinanceSpotPublicStream");
|
|
7
6
|
const binance_1 = require("../constants/binance");
|
|
8
|
-
const
|
|
9
|
-
class BinanceSpot {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
httpClient;
|
|
13
|
-
publicStream;
|
|
14
|
-
userDataStream = null;
|
|
15
|
-
logger;
|
|
16
|
-
onNotify;
|
|
7
|
+
const BinanceBaseClient_1 = require("./BinanceBaseClient");
|
|
8
|
+
class BinanceSpot extends BinanceBaseClient_1.BinanceBaseClient {
|
|
9
|
+
marketLabel = 'spot';
|
|
10
|
+
klineLimit = binance_1.BINANCE_KLINE_LIMIT_SPOT;
|
|
17
11
|
constructor(args) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return this.markets;
|
|
27
|
-
}
|
|
28
|
-
this.logger.info('Loading spot markets');
|
|
29
|
-
const raw = await this.httpClient.fetchExchangeInfo();
|
|
30
|
-
const normalized = (0, binanceNormalizer_1.normalizeBinanceMarkets)(raw);
|
|
31
|
-
for (const [symbol, market] of normalized) {
|
|
32
|
-
this.markets.set(symbol, market);
|
|
33
|
-
}
|
|
34
|
-
this.logger.info(`Loaded ${this.markets.size} spot markets`);
|
|
35
|
-
return this.markets;
|
|
36
|
-
}
|
|
37
|
-
async fetchTickers() {
|
|
38
|
-
this.logger.debug('Fetching spot tickers');
|
|
39
|
-
const rawTickerList = await this.httpClient.fetchTickers();
|
|
40
|
-
return (0, binanceNormalizer_1.normalizeBinanceTickers)(rawTickerList);
|
|
41
|
-
}
|
|
42
|
-
async fetchKlines(symbol, interval, options) {
|
|
43
|
-
this.logger.debug(`Fetching klines for ${symbol} ${interval}`);
|
|
44
|
-
const binanceInterval = binance_1.BINANCE_KLINE_INTERVAL[interval];
|
|
45
|
-
const rawKlineList = await this.httpClient.fetchKlines(symbol, binanceInterval, {
|
|
46
|
-
startTime: options?.startTime,
|
|
47
|
-
endTime: options?.endTime,
|
|
48
|
-
limit: options?.limit,
|
|
12
|
+
const baseUrl = args.config.isDemoMode === true
|
|
13
|
+
? binance_1.BINANCE_DEMO_SPOT_BASE_URL
|
|
14
|
+
: binance_1.BINANCE_SPOT_BASE_URL;
|
|
15
|
+
const httpClient = new BinanceSpotHttpClient_1.BinanceSpotHttpClient({
|
|
16
|
+
baseUrl,
|
|
17
|
+
apiKey: args.config.apiKey,
|
|
18
|
+
secret: args.config.secret,
|
|
19
|
+
logger: args.logger,
|
|
49
20
|
});
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
async *watchTickers() {
|
|
53
|
-
this.publicStream.subscribeAllTickers(() => { });
|
|
54
|
-
yield await this.fetchTickers();
|
|
55
|
-
}
|
|
56
|
-
subscribeKlines(args) {
|
|
57
|
-
this.publicStream.subscribeKlines(args.symbol, args.interval, args.handler);
|
|
58
|
-
}
|
|
59
|
-
unsubscribeKlines(args) {
|
|
60
|
-
this.publicStream.unsubscribeKlines(args.symbol, args.interval, args.handler);
|
|
21
|
+
const publicStream = new BinanceSpotPublicStream_1.BinanceSpotPublicStream(binance_1.BINANCE_SPOT_WEBSOCKET_STREAM_URL, args.logger, args.onNotify);
|
|
22
|
+
super(args, httpClient, publicStream);
|
|
61
23
|
}
|
|
62
|
-
async
|
|
63
|
-
|
|
64
|
-
const orderParams = {
|
|
65
|
-
symbol: args.symbol,
|
|
66
|
-
side: args.side.toUpperCase(),
|
|
67
|
-
type: args.type.toUpperCase(),
|
|
68
|
-
quantity: this.amountToPrecision(args.symbol, args.amount),
|
|
69
|
-
...args.params,
|
|
70
|
-
};
|
|
71
|
-
if (args.price > 0) {
|
|
72
|
-
orderParams.price = this.priceToPrecision(args.symbol, args.price);
|
|
73
|
-
}
|
|
74
|
-
const raw = await this.httpClient.createOrder(orderParams);
|
|
75
|
-
return (0, binanceNormalizer_1.normalizeBinanceOrder)(raw);
|
|
24
|
+
async fetchFundingRateHistory() {
|
|
25
|
+
throw new Error('Not supported for spot market');
|
|
76
26
|
}
|
|
77
27
|
async fetchPosition(_symbol) {
|
|
78
28
|
throw new Error('Not supported for spot market');
|
|
@@ -83,34 +33,6 @@ class BinanceSpot {
|
|
|
83
33
|
async setMarginMode(_marginMode, _symbol) {
|
|
84
34
|
throw new Error('Not supported for spot market');
|
|
85
35
|
}
|
|
86
|
-
async fetchBalance() {
|
|
87
|
-
this.logger.debug('Fetching balance');
|
|
88
|
-
const raw = await this.httpClient.fetchAccount();
|
|
89
|
-
return (0, binanceNormalizer_1.normalizeBinanceBalance)(raw);
|
|
90
|
-
}
|
|
91
|
-
amountToPrecision(symbol, amount) {
|
|
92
|
-
const market = this.markets.get(symbol);
|
|
93
|
-
if (!market) {
|
|
94
|
-
this.logger.warn(`Market ${symbol} not found, using raw amount`);
|
|
95
|
-
return String(amount);
|
|
96
|
-
}
|
|
97
|
-
return (0, precision_1.amountToPrecision)(market, amount);
|
|
98
|
-
}
|
|
99
|
-
priceToPrecision(symbol, price) {
|
|
100
|
-
const market = this.markets.get(symbol);
|
|
101
|
-
if (!market) {
|
|
102
|
-
this.logger.warn(`Market ${symbol} not found, using raw price`);
|
|
103
|
-
return String(price);
|
|
104
|
-
}
|
|
105
|
-
return (0, precision_1.priceToPrecision)(market, price);
|
|
106
|
-
}
|
|
107
|
-
async close() {
|
|
108
|
-
this.logger.info('Closing Binance Spot connection');
|
|
109
|
-
if (this.userDataStream) {
|
|
110
|
-
this.userDataStream.close();
|
|
111
|
-
}
|
|
112
|
-
this.publicStream.close();
|
|
113
|
-
}
|
|
114
36
|
}
|
|
115
37
|
exports.BinanceSpot = BinanceSpot;
|
|
116
38
|
//# sourceMappingURL=BinanceSpot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinanceSpot.js","sourceRoot":"","sources":["../../src/exchanges/BinanceSpot.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"BinanceSpot.js","sourceRoot":"","sources":["../../src/exchanges/BinanceSpot.ts"],"names":[],"mappings":";;;AAGA,yEAAsE;AACtE,2EAAwE;AACxE,kDAK8B;AAC9B,2DAAwD;AAExD,MAAM,WAAY,SAAQ,qCAAwC;IAC7C,WAAW,GAAG,MAAM,CAAC;IACrB,UAAU,GAAG,kCAAwB,CAAC;IAEzD,YAAY,IAAkB;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI;YAC7C,CAAC,CAAC,oCAA0B;YAC5B,CAAC,CAAC,+BAAqB,CAAC;QAE1B,MAAM,UAAU,GAAG,IAAI,6CAAqB,CAAC;YAC3C,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,iDAAuB,CAAC,2CAAiC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEhH,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAe;QACjC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,OAAe;QAClD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,WAAuB,EAAE,OAAe;QAC1D,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;CACF;AAEQ,kCAAW"}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Kline, KlineInterval,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
private
|
|
10
|
-
private
|
|
1
|
+
import type { CreateOrderWebSocketArgs, ExchangeArgs, FetchPageWithLimitArgs } from '../types/exchange';
|
|
2
|
+
import type { Kline, KlineInterval, TradeSymbolBySymbol, TickerBySymbol, BalanceByAsset, Position, Order, FundingRateHistory } from '../types/common';
|
|
3
|
+
import { MarginMode } from '../types/common';
|
|
4
|
+
import type { PublicStreamLike } from '../types/stream';
|
|
5
|
+
import { BaseExchangeClient } from './BaseExchangeClient';
|
|
6
|
+
declare class BybitLinear extends BaseExchangeClient {
|
|
7
|
+
protected readonly marketLabel = "linear";
|
|
8
|
+
protected readonly klineLimit = 200;
|
|
9
|
+
private readonly isDemoMode;
|
|
10
|
+
private readonly httpClient;
|
|
11
|
+
private readonly publicStream;
|
|
12
|
+
private readonly tradeStream;
|
|
11
13
|
constructor(args: ExchangeArgs);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
protected getPublicStream(): PublicStreamLike;
|
|
15
|
+
protected fetchAndNormalizeTradeSymbols(): Promise<TradeSymbolBySymbol>;
|
|
16
|
+
protected fetchAndNormalizeTickers(): Promise<TickerBySymbol>;
|
|
17
|
+
protected fetchAndNormalizeKlines(symbol: string, interval: KlineInterval, options?: FetchPageWithLimitArgs): Promise<Kline[]>;
|
|
18
|
+
protected fetchAndNormalizeBalance(): Promise<BalanceByAsset>;
|
|
19
|
+
createOrderWebSocket(args: CreateOrderWebSocketArgs): Promise<Order>;
|
|
20
|
+
fetchFundingRateHistory(): Promise<FundingRateHistory[]>;
|
|
19
21
|
fetchPosition(symbol: string): Promise<Position>;
|
|
20
22
|
setLeverage(leverage: number, symbol: string): Promise<void>;
|
|
21
23
|
setMarginMode(marginMode: MarginMode, symbol: string): Promise<void>;
|
|
22
|
-
fetchBalance(): Promise<BalanceByAsset>;
|
|
23
|
-
amountToPrecision(symbol: string, amount: number): string;
|
|
24
|
-
priceToPrecision(symbol: string, price: number): string;
|
|
25
24
|
close(): Promise<void>;
|
|
26
25
|
}
|
|
27
26
|
export { BybitLinear };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BybitLinear.d.ts","sourceRoot":"","sources":["../../src/exchanges/BybitLinear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"BybitLinear.d.ts","sourceRoot":"","sources":["../../src/exchanges/BybitLinear.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,QAAQ,EACR,KAAK,EACL,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAoBxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,cAAM,WAAY,SAAQ,kBAAkB;IAC1C,SAAS,CAAC,QAAQ,CAAC,WAAW,YAAY;IAC1C,SAAS,CAAC,QAAQ,CAAC,UAAU,OAAO;IAEpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;gBAE1C,IAAI,EAAE,YAAY;IAkC9B,SAAS,CAAC,eAAe,IAAI,gBAAgB;cAI7B,6BAA6B,IAAI,OAAO,CAAC,mBAAmB,CAAC;cAM7D,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC;cAMnD,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;cAYH,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC;IAM7D,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC;IA0BpE,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAIxD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYhD,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
|