@solncebro/exchange-engine 0.1.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 +54 -0
- package/LICENSE +21 -0
- package/README.md +390 -0
- package/dist/auth/binanceAuth.d.ts +9 -0
- package/dist/auth/binanceAuth.d.ts.map +1 -0
- package/dist/auth/binanceAuth.js +31 -0
- package/dist/auth/binanceAuth.js.map +1 -0
- package/dist/auth/bybitAuth.d.ts +10 -0
- package/dist/auth/bybitAuth.d.ts.map +1 -0
- package/dist/auth/bybitAuth.js +23 -0
- package/dist/auth/bybitAuth.js.map +1 -0
- package/dist/constants/binance.d.ts +9 -0
- package/dist/constants/binance.d.ts.map +1 -0
- package/dist/constants/binance.js +28 -0
- package/dist/constants/binance.js.map +1 -0
- package/dist/constants/bybit.d.ts +14 -0
- package/dist/constants/bybit.d.ts.map +1 -0
- package/dist/constants/bybit.js +33 -0
- package/dist/constants/bybit.js.map +1 -0
- package/dist/exchanges/BinanceFutures.d.ts +28 -0
- package/dist/exchanges/BinanceFutures.d.ts.map +1 -0
- package/dist/exchanges/BinanceFutures.js +125 -0
- package/dist/exchanges/BinanceFutures.js.map +1 -0
- package/dist/exchanges/BinanceSpot.d.ts +28 -0
- package/dist/exchanges/BinanceSpot.d.ts.map +1 -0
- package/dist/exchanges/BinanceSpot.js +116 -0
- package/dist/exchanges/BinanceSpot.js.map +1 -0
- package/dist/exchanges/BybitLinear.d.ts +28 -0
- package/dist/exchanges/BybitLinear.d.ts.map +1 -0
- package/dist/exchanges/BybitLinear.js +131 -0
- package/dist/exchanges/BybitLinear.js.map +1 -0
- package/dist/exchanges/BybitSpot.d.ts +27 -0
- package/dist/exchanges/BybitSpot.d.ts.map +1 -0
- package/dist/exchanges/BybitSpot.js +113 -0
- package/dist/exchanges/BybitSpot.js.map +1 -0
- package/dist/exchanges/Exchange.d.ts +11 -0
- package/dist/exchanges/Exchange.d.ts.map +1 -0
- package/dist/exchanges/Exchange.js +32 -0
- package/dist/exchanges/Exchange.js.map +1 -0
- package/dist/http/BaseHttpClient.d.ts +14 -0
- package/dist/http/BaseHttpClient.d.ts.map +1 -0
- package/dist/http/BaseHttpClient.js +77 -0
- package/dist/http/BaseHttpClient.js.map +1 -0
- package/dist/http/BinanceFuturesHttpClient.d.ts +53 -0
- package/dist/http/BinanceFuturesHttpClient.d.ts.map +1 -0
- package/dist/http/BinanceFuturesHttpClient.js +235 -0
- package/dist/http/BinanceFuturesHttpClient.js.map +1 -0
- package/dist/http/BinanceSpotHttpClient.d.ts +26 -0
- package/dist/http/BinanceSpotHttpClient.d.ts.map +1 -0
- package/dist/http/BinanceSpotHttpClient.js +98 -0
- package/dist/http/BinanceSpotHttpClient.js.map +1 -0
- package/dist/http/BybitHttpClient.d.ts +143 -0
- package/dist/http/BybitHttpClient.d.ts.map +1 -0
- package/dist/http/BybitHttpClient.js +233 -0
- package/dist/http/BybitHttpClient.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/normalizers/binanceNormalizer.d.ts +79 -0
- package/dist/normalizers/binanceNormalizer.d.ts.map +1 -0
- package/dist/normalizers/binanceNormalizer.js +133 -0
- package/dist/normalizers/binanceNormalizer.js.map +1 -0
- package/dist/normalizers/bybitNormalizer.d.ts +79 -0
- package/dist/normalizers/bybitNormalizer.d.ts.map +1 -0
- package/dist/normalizers/bybitNormalizer.js +150 -0
- package/dist/normalizers/bybitNormalizer.js.map +1 -0
- package/dist/precision/precision.d.ts +6 -0
- package/dist/precision/precision.d.ts.map +1 -0
- package/dist/precision/precision.js +29 -0
- package/dist/precision/precision.js.map +1 -0
- package/dist/types/common.d.ts +86 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +3 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/exchange.d.ts +43 -0
- package/dist/types/exchange.d.ts.map +1 -0
- package/dist/types/exchange.js +3 -0
- package/dist/types/exchange.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ws/BinanceFuturesPublicStream.d.ts +30 -0
- package/dist/ws/BinanceFuturesPublicStream.d.ts.map +1 -0
- package/dist/ws/BinanceFuturesPublicStream.js +216 -0
- package/dist/ws/BinanceFuturesPublicStream.js.map +1 -0
- package/dist/ws/BinanceSpotPublicStream.d.ts +24 -0
- package/dist/ws/BinanceSpotPublicStream.d.ts.map +1 -0
- package/dist/ws/BinanceSpotPublicStream.js +186 -0
- package/dist/ws/BinanceSpotPublicStream.js.map +1 -0
- package/dist/ws/BinanceUserDataStream.d.ts +23 -0
- package/dist/ws/BinanceUserDataStream.d.ts.map +1 -0
- package/dist/ws/BinanceUserDataStream.js +48 -0
- package/dist/ws/BinanceUserDataStream.js.map +1 -0
- package/dist/ws/BybitPrivateStream.d.ts +25 -0
- package/dist/ws/BybitPrivateStream.d.ts.map +1 -0
- package/dist/ws/BybitPrivateStream.js +79 -0
- package/dist/ws/BybitPrivateStream.js.map +1 -0
- package/dist/ws/BybitPublicStream.d.ts +25 -0
- package/dist/ws/BybitPublicStream.d.ts.map +1 -0
- package/dist/ws/BybitPublicStream.js +178 -0
- package/dist/ws/BybitPublicStream.js.map +1 -0
- package/dist/ws/BybitTradeStream.d.ts +27 -0
- package/dist/ws/BybitTradeStream.d.ts.map +1 -0
- package/dist/ws/BybitTradeStream.js +146 -0
- package/dist/ws/BybitTradeStream.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BybitSpot = void 0;
|
|
4
|
+
const BybitHttpClient_1 = require("../http/BybitHttpClient");
|
|
5
|
+
const bybitNormalizer_1 = require("../normalizers/bybitNormalizer");
|
|
6
|
+
const BybitPublicStream_1 = require("../ws/BybitPublicStream");
|
|
7
|
+
const bybit_1 = require("../constants/bybit");
|
|
8
|
+
const precision_1 = require("../precision/precision");
|
|
9
|
+
class BybitSpot {
|
|
10
|
+
apiKey;
|
|
11
|
+
markets = new Map();
|
|
12
|
+
httpClient;
|
|
13
|
+
publicStream;
|
|
14
|
+
logger;
|
|
15
|
+
onNotify;
|
|
16
|
+
constructor(args) {
|
|
17
|
+
this.apiKey = args.config.apiKey;
|
|
18
|
+
this.logger = args.logger;
|
|
19
|
+
this.onNotify = args.onNotify;
|
|
20
|
+
this.httpClient = new BybitHttpClient_1.BybitHttpClient(args.config.apiKey, args.config.secret, args.logger);
|
|
21
|
+
this.publicStream = new BybitPublicStream_1.BybitPublicStream(bybit_1.BYBIT_PUBLIC_SPOT_WS_URL, args.logger, args.onNotify);
|
|
22
|
+
}
|
|
23
|
+
async loadMarkets(reload = false) {
|
|
24
|
+
if (!reload && this.markets.size > 0) {
|
|
25
|
+
return this.markets;
|
|
26
|
+
}
|
|
27
|
+
this.logger.info('Loading spot markets');
|
|
28
|
+
const raw = await this.httpClient.fetchInstrumentsInfo('spot');
|
|
29
|
+
const normalized = (0, bybitNormalizer_1.normalizeBybitMarkets)(raw.result.list);
|
|
30
|
+
for (const [symbol, market] of normalized) {
|
|
31
|
+
this.markets.set(symbol, market);
|
|
32
|
+
}
|
|
33
|
+
this.logger.info(`Loaded ${this.markets.size} spot markets`);
|
|
34
|
+
return this.markets;
|
|
35
|
+
}
|
|
36
|
+
async fetchTickers() {
|
|
37
|
+
this.logger.debug('Fetching spot tickers');
|
|
38
|
+
const raw = await this.httpClient.fetchTickers('spot');
|
|
39
|
+
return (0, bybitNormalizer_1.normalizeBybitTickers)(raw.result.list);
|
|
40
|
+
}
|
|
41
|
+
async fetchKlines(symbol, interval, options) {
|
|
42
|
+
this.logger.debug(`Fetching klines for ${symbol} ${interval}`);
|
|
43
|
+
const bybitInterval = bybit_1.BYBIT_KLINE_INTERVAL[interval];
|
|
44
|
+
const raw = await this.httpClient.fetchKline('spot', symbol, bybitInterval, {
|
|
45
|
+
startTime: options?.startTime,
|
|
46
|
+
endTime: options?.endTime,
|
|
47
|
+
limit: options?.limit,
|
|
48
|
+
});
|
|
49
|
+
return (0, bybitNormalizer_1.normalizeBybitKlines)(raw.result.list);
|
|
50
|
+
}
|
|
51
|
+
async *watchTickers() {
|
|
52
|
+
this.publicStream.subscribeAllTickers(() => { });
|
|
53
|
+
yield await this.fetchTickers();
|
|
54
|
+
}
|
|
55
|
+
subscribeKlines(args) {
|
|
56
|
+
this.publicStream.subscribeKlines(args.symbol, args.interval, args.handler);
|
|
57
|
+
}
|
|
58
|
+
unsubscribeKlines(args) {
|
|
59
|
+
this.publicStream.unsubscribeKlines(args.symbol, args.interval, args.handler);
|
|
60
|
+
}
|
|
61
|
+
async createOrderWs(args) {
|
|
62
|
+
this.logger.debug(`Creating order via REST: ${args.symbol}`);
|
|
63
|
+
const orderParams = {
|
|
64
|
+
category: 'spot',
|
|
65
|
+
symbol: args.symbol,
|
|
66
|
+
orderType: args.type === 'market' ? 'Market' : 'Limit',
|
|
67
|
+
side: args.side === 'buy' ? 'Buy' : 'Sell',
|
|
68
|
+
qty: 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, bybitNormalizer_1.normalizeBybitOrder)(raw.result);
|
|
76
|
+
}
|
|
77
|
+
async fetchPosition(_symbol) {
|
|
78
|
+
throw new Error('Not supported for spot market');
|
|
79
|
+
}
|
|
80
|
+
async setLeverage(_leverage, _symbol) {
|
|
81
|
+
throw new Error('Not supported for spot market');
|
|
82
|
+
}
|
|
83
|
+
async setMarginMode(_marginMode, _symbol) {
|
|
84
|
+
throw new Error('Not supported for spot market');
|
|
85
|
+
}
|
|
86
|
+
async fetchBalance() {
|
|
87
|
+
this.logger.debug('Fetching balance');
|
|
88
|
+
const raw = await this.httpClient.fetchWalletBalance('UNIFIED');
|
|
89
|
+
return (0, bybitNormalizer_1.normalizeBybitBalance)(raw.result);
|
|
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 Bybit Spot connection');
|
|
109
|
+
this.publicStream.close();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.BybitSpot = BybitSpot;
|
|
113
|
+
//# sourceMappingURL=BybitSpot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BybitSpot.js","sourceRoot":"","sources":["../../src/exchanges/BybitSpot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ExchangeClient, ExchangeArgs } from '../types/exchange';
|
|
2
|
+
import type { ExchangeName } from '../types/common';
|
|
3
|
+
declare class Exchange {
|
|
4
|
+
readonly name: ExchangeName;
|
|
5
|
+
readonly futures: ExchangeClient;
|
|
6
|
+
readonly spot: ExchangeClient;
|
|
7
|
+
constructor(name: ExchangeName, args: ExchangeArgs);
|
|
8
|
+
close(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export { Exchange };
|
|
11
|
+
//# sourceMappingURL=Exchange.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Exchange.d.ts","sourceRoot":"","sources":["../../src/exchanges/Exchange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMpD,cAAM,QAAQ;IACZ,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;gBAElB,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY;IAgB5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Exchange = void 0;
|
|
4
|
+
const BinanceFutures_1 = require("./BinanceFutures");
|
|
5
|
+
const BinanceSpot_1 = require("./BinanceSpot");
|
|
6
|
+
const BybitLinear_1 = require("./BybitLinear");
|
|
7
|
+
const BybitSpot_1 = require("./BybitSpot");
|
|
8
|
+
class Exchange {
|
|
9
|
+
name;
|
|
10
|
+
futures;
|
|
11
|
+
spot;
|
|
12
|
+
constructor(name, args) {
|
|
13
|
+
this.name = name;
|
|
14
|
+
if (name === 'binance') {
|
|
15
|
+
this.futures = new BinanceFutures_1.BinanceFutures(args);
|
|
16
|
+
this.spot = new BinanceSpot_1.BinanceSpot(args);
|
|
17
|
+
}
|
|
18
|
+
else if (name === 'bybit') {
|
|
19
|
+
this.futures = new BybitLinear_1.BybitLinear(args);
|
|
20
|
+
this.spot = new BybitSpot_1.BybitSpot(args);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
const exhaustiveCheck = name;
|
|
24
|
+
throw new Error(`Unknown exchange: ${exhaustiveCheck}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async close() {
|
|
28
|
+
await Promise.all([this.futures.close(), this.spot.close()]);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.Exchange = Exchange;
|
|
32
|
+
//# sourceMappingURL=Exchange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Exchange.js","sourceRoot":"","sources":["../../src/exchanges/Exchange.ts"],"names":[],"mappings":";;;AAEA,qDAAkD;AAClD,+CAA4C;AAC5C,+CAA4C;AAC5C,2CAAwC;AAExC,MAAM,QAAQ;IACH,IAAI,CAAe;IACnB,OAAO,CAAiB;IACxB,IAAI,CAAiB;IAE9B,YAAY,IAAkB,EAAE,IAAkB;QAChD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,+BAAc,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,IAAI,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,MAAM,eAAe,GAAU,IAAI,CAAC;YAEpC,MAAM,IAAI,KAAK,CAAC,qBAAqB,eAAe,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;CACF;AAEQ,4BAAQ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { ExchangeLogger } from '../types/common';
|
|
3
|
+
export declare abstract class BaseHttpClient {
|
|
4
|
+
protected readonly axiosInstance: AxiosInstance;
|
|
5
|
+
protected readonly logger: ExchangeLogger;
|
|
6
|
+
protected readonly apiKey: string;
|
|
7
|
+
constructor(baseURL: string, apiKey: string, logger: ExchangeLogger, timeout?: number);
|
|
8
|
+
protected get<T>(url: string, params?: Record<string, string | number | boolean>, headers?: Record<string, string>): Promise<T>;
|
|
9
|
+
protected post<T>(url: string, data?: Record<string, unknown>, headers?: Record<string, string>): Promise<T>;
|
|
10
|
+
protected put<T>(url: string, data?: Record<string, unknown>, headers?: Record<string, string>): Promise<T>;
|
|
11
|
+
protected delete<T>(url: string, params?: Record<string, string | number | boolean>, headers?: Record<string, string>): Promise<T>;
|
|
12
|
+
private handleError;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=BaseHttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseHttpClient.d.ts","sourceRoot":"","sources":["../../src/http/BaseHttpClient.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAc,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,8BAAsB,cAAc;IAClC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAChD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM;cASrE,GAAG,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAClD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;cAWG,IAAI,CAAC,CAAC,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;cAWG,GAAG,CAAC,CAAC,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;cAWG,MAAM,CAAC,CAAC,EACtB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAClD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,CAAC,CAAC;IAWb,OAAO,CAAC,WAAW;CAWpB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BaseHttpClient = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
class BaseHttpClient {
|
|
9
|
+
axiosInstance;
|
|
10
|
+
logger;
|
|
11
|
+
apiKey;
|
|
12
|
+
constructor(baseURL, apiKey, logger, timeout) {
|
|
13
|
+
this.apiKey = apiKey;
|
|
14
|
+
this.logger = logger;
|
|
15
|
+
this.axiosInstance = axios_1.default.create({
|
|
16
|
+
baseURL,
|
|
17
|
+
timeout: timeout || 30000,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
async get(url, params, headers) {
|
|
21
|
+
try {
|
|
22
|
+
this.logger.debug(`GET ${url} with params: ${JSON.stringify(params)}`);
|
|
23
|
+
const response = await this.axiosInstance.get(url, { params, headers });
|
|
24
|
+
return response.data;
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
this.handleError(error);
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async post(url, data, headers) {
|
|
32
|
+
try {
|
|
33
|
+
this.logger.debug(`POST ${url} with data: ${JSON.stringify(data)}`);
|
|
34
|
+
const response = await this.axiosInstance.post(url, data, { headers });
|
|
35
|
+
return response.data;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
this.handleError(error);
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async put(url, data, headers) {
|
|
43
|
+
try {
|
|
44
|
+
this.logger.debug(`PUT ${url} with data: ${JSON.stringify(data)}`);
|
|
45
|
+
const response = await this.axiosInstance.put(url, data, { headers });
|
|
46
|
+
return response.data;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
this.handleError(error);
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async delete(url, params, headers) {
|
|
54
|
+
try {
|
|
55
|
+
this.logger.debug(`DELETE ${url} with params: ${JSON.stringify(params)}`);
|
|
56
|
+
const response = await this.axiosInstance.delete(url, { params, headers });
|
|
57
|
+
return response.data;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
this.handleError(error);
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
handleError(error) {
|
|
65
|
+
if (error.response) {
|
|
66
|
+
this.logger.error(`HTTP ${error.response.status}: ${JSON.stringify(error.response.data)}`);
|
|
67
|
+
}
|
|
68
|
+
else if (error.request) {
|
|
69
|
+
this.logger.error(`No response: ${error.message}`);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
this.logger.error(`Request error: ${error.message}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.BaseHttpClient = BaseHttpClient;
|
|
77
|
+
//# sourceMappingURL=BaseHttpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseHttpClient.js","sourceRoot":"","sources":["../../src/http/BaseHttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ExchangeLogger } from '../types/common';
|
|
2
|
+
import { BaseHttpClient } from './BaseHttpClient';
|
|
3
|
+
export declare class BinanceFuturesHttpClient extends BaseHttpClient {
|
|
4
|
+
private readonly secret;
|
|
5
|
+
constructor(apiKey: string, secret: string, logger: ExchangeLogger);
|
|
6
|
+
fetchExchangeInfo(): Promise<Record<string, unknown>>;
|
|
7
|
+
fetchTickers(): Promise<Array<Record<string, unknown>>>;
|
|
8
|
+
fetchOrderBook(symbol: string, limit?: number): Promise<Record<string, unknown>>;
|
|
9
|
+
fetchKlines(symbol: string, interval: string, options?: {
|
|
10
|
+
startTime?: number;
|
|
11
|
+
endTime?: number;
|
|
12
|
+
limit?: number;
|
|
13
|
+
}): Promise<Array<unknown[]>>;
|
|
14
|
+
fetchTrades(symbol: string, limit?: number): Promise<Array<Record<string, unknown>>>;
|
|
15
|
+
fetchMarkPrice(symbol?: string): Promise<Record<string, unknown> | Array<Record<string, unknown>>>;
|
|
16
|
+
fetchFundingRate(symbol?: string, options?: {
|
|
17
|
+
startTime?: number;
|
|
18
|
+
endTime?: number;
|
|
19
|
+
limit?: number;
|
|
20
|
+
}): Promise<Array<Record<string, unknown>>>;
|
|
21
|
+
fetchOpenInterest(symbol: string): Promise<Record<string, unknown>>;
|
|
22
|
+
createOrder(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
23
|
+
modifyOrder(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
24
|
+
cancelOrder(symbol: string, orderId: string): Promise<Record<string, unknown>>;
|
|
25
|
+
cancelAllOrders(symbol: string): Promise<Array<Record<string, unknown>>>;
|
|
26
|
+
getOrder(symbol: string, orderId: string): Promise<Record<string, unknown>>;
|
|
27
|
+
getOpenOrders(symbol?: string): Promise<Array<Record<string, unknown>>>;
|
|
28
|
+
getAllOrders(symbol: string, options?: {
|
|
29
|
+
startTime?: number;
|
|
30
|
+
endTime?: number;
|
|
31
|
+
limit?: number;
|
|
32
|
+
}): Promise<Array<Record<string, unknown>>>;
|
|
33
|
+
createBatchOrders(orderList: Array<Record<string, unknown>>): Promise<Array<Record<string, unknown>>>;
|
|
34
|
+
cancelBatchOrders(symbol: string, orderIdList: string[]): Promise<Array<Record<string, unknown>>>;
|
|
35
|
+
fetchAccount(): Promise<Record<string, unknown>>;
|
|
36
|
+
fetchPositionRisk(symbol?: string): Promise<Array<Record<string, unknown>>>;
|
|
37
|
+
fetchCommissionRate(symbol: string): Promise<Record<string, unknown>>;
|
|
38
|
+
fetchIncome(options?: {
|
|
39
|
+
startTime?: number;
|
|
40
|
+
endTime?: number;
|
|
41
|
+
limit?: number;
|
|
42
|
+
}): Promise<Array<Record<string, unknown>>>;
|
|
43
|
+
setLeverage(symbol: string, leverage: number): Promise<Record<string, unknown>>;
|
|
44
|
+
setMarginType(symbol: string, marginType: string): Promise<Record<string, unknown>>;
|
|
45
|
+
setPositionMode(dualSidePosition: boolean): Promise<Record<string, unknown>>;
|
|
46
|
+
modifyPositionMargin(symbol: string, amount: number, type: number): Promise<Record<string, unknown>>;
|
|
47
|
+
createListenKey(): Promise<{
|
|
48
|
+
listenKey: string;
|
|
49
|
+
}>;
|
|
50
|
+
keepAliveListenKey(listenKey: string): Promise<void>;
|
|
51
|
+
deleteListenKey(listenKey: string): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=BinanceFuturesHttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinanceFuturesHttpClient.d.ts","sourceRoot":"","sources":["../../src/http/BinanceFuturesHttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BinanceFuturesHttpClient = void 0;
|
|
4
|
+
const binanceAuth_1 = require("../auth/binanceAuth");
|
|
5
|
+
const binance_1 = require("../constants/binance");
|
|
6
|
+
const BaseHttpClient_1 = require("./BaseHttpClient");
|
|
7
|
+
class BinanceFuturesHttpClient extends BaseHttpClient_1.BaseHttpClient {
|
|
8
|
+
secret;
|
|
9
|
+
constructor(apiKey, secret, logger) {
|
|
10
|
+
super(binance_1.BINANCE_FUTURES_BASE_URL, apiKey, logger, binance_1.BINANCE_REQUEST_TIMEOUT);
|
|
11
|
+
this.secret = secret;
|
|
12
|
+
}
|
|
13
|
+
async fetchExchangeInfo() {
|
|
14
|
+
return this.get('/fapi/v1/exchangeInfo');
|
|
15
|
+
}
|
|
16
|
+
async fetchTickers() {
|
|
17
|
+
return this.get('/fapi/v1/ticker/24hr');
|
|
18
|
+
}
|
|
19
|
+
async fetchOrderBook(symbol, limit) {
|
|
20
|
+
const params = { symbol };
|
|
21
|
+
if (limit !== undefined) {
|
|
22
|
+
params.limit = limit;
|
|
23
|
+
}
|
|
24
|
+
return this.get('/fapi/v1/depth', params);
|
|
25
|
+
}
|
|
26
|
+
async fetchKlines(symbol, interval, options) {
|
|
27
|
+
const params = { symbol, interval };
|
|
28
|
+
if (options?.startTime !== undefined) {
|
|
29
|
+
params.startTime = options.startTime;
|
|
30
|
+
}
|
|
31
|
+
if (options?.endTime !== undefined) {
|
|
32
|
+
params.endTime = options.endTime;
|
|
33
|
+
}
|
|
34
|
+
if (options?.limit !== undefined) {
|
|
35
|
+
params.limit = options.limit;
|
|
36
|
+
}
|
|
37
|
+
return this.get('/fapi/v1/klines', params);
|
|
38
|
+
}
|
|
39
|
+
async fetchTrades(symbol, limit) {
|
|
40
|
+
const params = { symbol };
|
|
41
|
+
if (limit !== undefined) {
|
|
42
|
+
params.limit = limit;
|
|
43
|
+
}
|
|
44
|
+
return this.get('/fapi/v1/trades', params);
|
|
45
|
+
}
|
|
46
|
+
async fetchMarkPrice(symbol) {
|
|
47
|
+
const params = {};
|
|
48
|
+
if (symbol !== undefined) {
|
|
49
|
+
params.symbol = symbol;
|
|
50
|
+
}
|
|
51
|
+
return this.get('/fapi/v1/premiumIndex', params);
|
|
52
|
+
}
|
|
53
|
+
async fetchFundingRate(symbol, options) {
|
|
54
|
+
const params = {};
|
|
55
|
+
if (symbol !== undefined) {
|
|
56
|
+
params.symbol = symbol;
|
|
57
|
+
}
|
|
58
|
+
if (options?.startTime !== undefined) {
|
|
59
|
+
params.startTime = options.startTime;
|
|
60
|
+
}
|
|
61
|
+
if (options?.endTime !== undefined) {
|
|
62
|
+
params.endTime = options.endTime;
|
|
63
|
+
}
|
|
64
|
+
if (options?.limit !== undefined) {
|
|
65
|
+
params.limit = options.limit;
|
|
66
|
+
}
|
|
67
|
+
return this.get('/fapi/v1/fundingRate', params);
|
|
68
|
+
}
|
|
69
|
+
async fetchOpenInterest(symbol) {
|
|
70
|
+
return this.get('/fapi/v1/openInterest', { symbol });
|
|
71
|
+
}
|
|
72
|
+
async createOrder(params) {
|
|
73
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
74
|
+
params: params,
|
|
75
|
+
secret: this.secret,
|
|
76
|
+
});
|
|
77
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
78
|
+
return this.post('/fapi/v1/order', signedParams, headers);
|
|
79
|
+
}
|
|
80
|
+
async modifyOrder(params) {
|
|
81
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
82
|
+
params: params,
|
|
83
|
+
secret: this.secret,
|
|
84
|
+
});
|
|
85
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
86
|
+
return this.put('/fapi/v1/order', signedParams, headers);
|
|
87
|
+
}
|
|
88
|
+
async cancelOrder(symbol, orderId) {
|
|
89
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
90
|
+
params: { symbol, orderId },
|
|
91
|
+
secret: this.secret,
|
|
92
|
+
});
|
|
93
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
94
|
+
return this.delete('/fapi/v1/order', signedParams, headers);
|
|
95
|
+
}
|
|
96
|
+
async cancelAllOrders(symbol) {
|
|
97
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
98
|
+
params: { symbol },
|
|
99
|
+
secret: this.secret,
|
|
100
|
+
});
|
|
101
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
102
|
+
return this.delete('/fapi/v1/allOpenOrders', signedParams, headers);
|
|
103
|
+
}
|
|
104
|
+
async getOrder(symbol, orderId) {
|
|
105
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
106
|
+
params: { symbol, orderId },
|
|
107
|
+
secret: this.secret,
|
|
108
|
+
});
|
|
109
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
110
|
+
return this.get('/fapi/v1/order', signedParams, headers);
|
|
111
|
+
}
|
|
112
|
+
async getOpenOrders(symbol) {
|
|
113
|
+
const rawParams = {};
|
|
114
|
+
if (symbol !== undefined) {
|
|
115
|
+
rawParams.symbol = symbol;
|
|
116
|
+
}
|
|
117
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({ params: rawParams, secret: this.secret });
|
|
118
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
119
|
+
return this.get('/fapi/v1/openOrders', signedParams, headers);
|
|
120
|
+
}
|
|
121
|
+
async getAllOrders(symbol, options) {
|
|
122
|
+
const rawParams = { symbol };
|
|
123
|
+
if (options?.startTime !== undefined) {
|
|
124
|
+
rawParams.startTime = options.startTime;
|
|
125
|
+
}
|
|
126
|
+
if (options?.endTime !== undefined) {
|
|
127
|
+
rawParams.endTime = options.endTime;
|
|
128
|
+
}
|
|
129
|
+
if (options?.limit !== undefined) {
|
|
130
|
+
rawParams.limit = options.limit;
|
|
131
|
+
}
|
|
132
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({ params: rawParams, secret: this.secret });
|
|
133
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
134
|
+
return this.get('/fapi/v1/allOrders', signedParams, headers);
|
|
135
|
+
}
|
|
136
|
+
async createBatchOrders(orderList) {
|
|
137
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
138
|
+
params: { batchOrders: JSON.stringify(orderList) },
|
|
139
|
+
secret: this.secret,
|
|
140
|
+
});
|
|
141
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
142
|
+
return this.post('/fapi/v1/batchOrders', signedParams, headers);
|
|
143
|
+
}
|
|
144
|
+
async cancelBatchOrders(symbol, orderIdList) {
|
|
145
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
146
|
+
params: { symbol, orderIdList: JSON.stringify(orderIdList) },
|
|
147
|
+
secret: this.secret,
|
|
148
|
+
});
|
|
149
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
150
|
+
return this.delete('/fapi/v1/batchOrders', signedParams, headers);
|
|
151
|
+
}
|
|
152
|
+
async fetchAccount() {
|
|
153
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({ params: {}, secret: this.secret });
|
|
154
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
155
|
+
return this.get('/fapi/v2/account', signedParams, headers);
|
|
156
|
+
}
|
|
157
|
+
async fetchPositionRisk(symbol) {
|
|
158
|
+
const rawParams = {};
|
|
159
|
+
if (symbol !== undefined) {
|
|
160
|
+
rawParams.symbol = symbol;
|
|
161
|
+
}
|
|
162
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({ params: rawParams, secret: this.secret });
|
|
163
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
164
|
+
return this.get('/fapi/v2/positionRisk', signedParams, headers);
|
|
165
|
+
}
|
|
166
|
+
async fetchCommissionRate(symbol) {
|
|
167
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
168
|
+
params: { symbol },
|
|
169
|
+
secret: this.secret,
|
|
170
|
+
});
|
|
171
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
172
|
+
return this.get('/fapi/v1/commissionRate', signedParams, headers);
|
|
173
|
+
}
|
|
174
|
+
async fetchIncome(options) {
|
|
175
|
+
const rawParams = {};
|
|
176
|
+
if (options?.startTime !== undefined) {
|
|
177
|
+
rawParams.startTime = options.startTime;
|
|
178
|
+
}
|
|
179
|
+
if (options?.endTime !== undefined) {
|
|
180
|
+
rawParams.endTime = options.endTime;
|
|
181
|
+
}
|
|
182
|
+
if (options?.limit !== undefined) {
|
|
183
|
+
rawParams.limit = options.limit;
|
|
184
|
+
}
|
|
185
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({ params: rawParams, secret: this.secret });
|
|
186
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
187
|
+
return this.get('/fapi/v1/income', signedParams, headers);
|
|
188
|
+
}
|
|
189
|
+
async setLeverage(symbol, leverage) {
|
|
190
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
191
|
+
params: { symbol, leverage },
|
|
192
|
+
secret: this.secret,
|
|
193
|
+
});
|
|
194
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
195
|
+
return this.post('/fapi/v1/leverage', signedParams, headers);
|
|
196
|
+
}
|
|
197
|
+
async setMarginType(symbol, marginType) {
|
|
198
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
199
|
+
params: { symbol, marginType },
|
|
200
|
+
secret: this.secret,
|
|
201
|
+
});
|
|
202
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
203
|
+
return this.post('/fapi/v1/marginType', signedParams, headers);
|
|
204
|
+
}
|
|
205
|
+
async setPositionMode(dualSidePosition) {
|
|
206
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
207
|
+
params: { dualSidePosition },
|
|
208
|
+
secret: this.secret,
|
|
209
|
+
});
|
|
210
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
211
|
+
return this.post('/fapi/v1/positionSide/dual', signedParams, headers);
|
|
212
|
+
}
|
|
213
|
+
async modifyPositionMargin(symbol, amount, type) {
|
|
214
|
+
const signedParams = (0, binanceAuth_1.buildBinanceSignedParams)({
|
|
215
|
+
params: { symbol, amount, type },
|
|
216
|
+
secret: this.secret,
|
|
217
|
+
});
|
|
218
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
219
|
+
return this.post('/fapi/v1/positionMargin', signedParams, headers);
|
|
220
|
+
}
|
|
221
|
+
async createListenKey() {
|
|
222
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
223
|
+
return this.post('/fapi/v1/listenKey', {}, headers);
|
|
224
|
+
}
|
|
225
|
+
async keepAliveListenKey(listenKey) {
|
|
226
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
227
|
+
await this.put('/fapi/v1/listenKey', { listenKey }, headers);
|
|
228
|
+
}
|
|
229
|
+
async deleteListenKey(listenKey) {
|
|
230
|
+
const headers = (0, binanceAuth_1.buildBinanceAuthHeaders)(this.apiKey);
|
|
231
|
+
await this.delete('/fapi/v1/listenKey', { listenKey }, headers);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
exports.BinanceFuturesHttpClient = BinanceFuturesHttpClient;
|
|
235
|
+
//# sourceMappingURL=BinanceFuturesHttpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinanceFuturesHttpClient.js","sourceRoot":"","sources":["../../src/http/BinanceFuturesHttpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ExchangeLogger } from '../types/common';
|
|
2
|
+
import { BaseHttpClient } from './BaseHttpClient';
|
|
3
|
+
export declare class BinanceSpotHttpClient extends BaseHttpClient {
|
|
4
|
+
private readonly secret;
|
|
5
|
+
constructor(apiKey: string, secret: string, logger: ExchangeLogger);
|
|
6
|
+
fetchExchangeInfo(): Promise<Record<string, unknown>>;
|
|
7
|
+
fetchTickers(): Promise<Array<Record<string, unknown>>>;
|
|
8
|
+
fetchOrderBook(symbol: string, limit?: number): Promise<Record<string, unknown>>;
|
|
9
|
+
fetchKlines(symbol: string, interval: string, options?: {
|
|
10
|
+
startTime?: number;
|
|
11
|
+
endTime?: number;
|
|
12
|
+
limit?: number;
|
|
13
|
+
}): Promise<Array<unknown[]>>;
|
|
14
|
+
fetchTrades(symbol: string, limit?: number): Promise<Array<Record<string, unknown>>>;
|
|
15
|
+
createOrder(params: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
16
|
+
cancelOrder(symbol: string, orderId: string): Promise<Record<string, unknown>>;
|
|
17
|
+
getOrder(symbol: string, orderId: string): Promise<Record<string, unknown>>;
|
|
18
|
+
getOpenOrders(symbol?: string): Promise<Array<Record<string, unknown>>>;
|
|
19
|
+
fetchAccount(): Promise<Record<string, unknown>>;
|
|
20
|
+
createListenKey(): Promise<{
|
|
21
|
+
listenKey: string;
|
|
22
|
+
}>;
|
|
23
|
+
keepAliveListenKey(listenKey: string): Promise<void>;
|
|
24
|
+
deleteListenKey(listenKey: string): Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=BinanceSpotHttpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BinanceSpotHttpClient.d.ts","sourceRoot":"","sources":["../../src/http/BinanceSpotHttpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,qBAAa,qBAAsB,SAAQ,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAK5D,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIrD,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAIvD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAUhF,WAAW,CACf,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACjE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAkBtB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAUpF,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAc9E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAc9E,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAc3E,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAiBvE,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAWhD,eAAe,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAMjD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMpD,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CASxD"}
|