@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.
Files changed (108) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/LICENSE +21 -0
  3. package/README.md +390 -0
  4. package/dist/auth/binanceAuth.d.ts +9 -0
  5. package/dist/auth/binanceAuth.d.ts.map +1 -0
  6. package/dist/auth/binanceAuth.js +31 -0
  7. package/dist/auth/binanceAuth.js.map +1 -0
  8. package/dist/auth/bybitAuth.d.ts +10 -0
  9. package/dist/auth/bybitAuth.d.ts.map +1 -0
  10. package/dist/auth/bybitAuth.js +23 -0
  11. package/dist/auth/bybitAuth.js.map +1 -0
  12. package/dist/constants/binance.d.ts +9 -0
  13. package/dist/constants/binance.d.ts.map +1 -0
  14. package/dist/constants/binance.js +28 -0
  15. package/dist/constants/binance.js.map +1 -0
  16. package/dist/constants/bybit.d.ts +14 -0
  17. package/dist/constants/bybit.d.ts.map +1 -0
  18. package/dist/constants/bybit.js +33 -0
  19. package/dist/constants/bybit.js.map +1 -0
  20. package/dist/exchanges/BinanceFutures.d.ts +28 -0
  21. package/dist/exchanges/BinanceFutures.d.ts.map +1 -0
  22. package/dist/exchanges/BinanceFutures.js +125 -0
  23. package/dist/exchanges/BinanceFutures.js.map +1 -0
  24. package/dist/exchanges/BinanceSpot.d.ts +28 -0
  25. package/dist/exchanges/BinanceSpot.d.ts.map +1 -0
  26. package/dist/exchanges/BinanceSpot.js +116 -0
  27. package/dist/exchanges/BinanceSpot.js.map +1 -0
  28. package/dist/exchanges/BybitLinear.d.ts +28 -0
  29. package/dist/exchanges/BybitLinear.d.ts.map +1 -0
  30. package/dist/exchanges/BybitLinear.js +131 -0
  31. package/dist/exchanges/BybitLinear.js.map +1 -0
  32. package/dist/exchanges/BybitSpot.d.ts +27 -0
  33. package/dist/exchanges/BybitSpot.d.ts.map +1 -0
  34. package/dist/exchanges/BybitSpot.js +113 -0
  35. package/dist/exchanges/BybitSpot.js.map +1 -0
  36. package/dist/exchanges/Exchange.d.ts +11 -0
  37. package/dist/exchanges/Exchange.d.ts.map +1 -0
  38. package/dist/exchanges/Exchange.js +32 -0
  39. package/dist/exchanges/Exchange.js.map +1 -0
  40. package/dist/http/BaseHttpClient.d.ts +14 -0
  41. package/dist/http/BaseHttpClient.d.ts.map +1 -0
  42. package/dist/http/BaseHttpClient.js +77 -0
  43. package/dist/http/BaseHttpClient.js.map +1 -0
  44. package/dist/http/BinanceFuturesHttpClient.d.ts +53 -0
  45. package/dist/http/BinanceFuturesHttpClient.d.ts.map +1 -0
  46. package/dist/http/BinanceFuturesHttpClient.js +235 -0
  47. package/dist/http/BinanceFuturesHttpClient.js.map +1 -0
  48. package/dist/http/BinanceSpotHttpClient.d.ts +26 -0
  49. package/dist/http/BinanceSpotHttpClient.d.ts.map +1 -0
  50. package/dist/http/BinanceSpotHttpClient.js +98 -0
  51. package/dist/http/BinanceSpotHttpClient.js.map +1 -0
  52. package/dist/http/BybitHttpClient.d.ts +143 -0
  53. package/dist/http/BybitHttpClient.d.ts.map +1 -0
  54. package/dist/http/BybitHttpClient.js +233 -0
  55. package/dist/http/BybitHttpClient.js.map +1 -0
  56. package/dist/index.d.ts +4 -0
  57. package/dist/index.d.ts.map +1 -0
  58. package/dist/index.js +6 -0
  59. package/dist/index.js.map +1 -0
  60. package/dist/normalizers/binanceNormalizer.d.ts +79 -0
  61. package/dist/normalizers/binanceNormalizer.d.ts.map +1 -0
  62. package/dist/normalizers/binanceNormalizer.js +133 -0
  63. package/dist/normalizers/binanceNormalizer.js.map +1 -0
  64. package/dist/normalizers/bybitNormalizer.d.ts +79 -0
  65. package/dist/normalizers/bybitNormalizer.d.ts.map +1 -0
  66. package/dist/normalizers/bybitNormalizer.js +150 -0
  67. package/dist/normalizers/bybitNormalizer.js.map +1 -0
  68. package/dist/precision/precision.d.ts +6 -0
  69. package/dist/precision/precision.d.ts.map +1 -0
  70. package/dist/precision/precision.js +29 -0
  71. package/dist/precision/precision.js.map +1 -0
  72. package/dist/types/common.d.ts +86 -0
  73. package/dist/types/common.d.ts.map +1 -0
  74. package/dist/types/common.js +3 -0
  75. package/dist/types/common.js.map +1 -0
  76. package/dist/types/exchange.d.ts +43 -0
  77. package/dist/types/exchange.d.ts.map +1 -0
  78. package/dist/types/exchange.js +3 -0
  79. package/dist/types/exchange.js.map +1 -0
  80. package/dist/types/index.d.ts +3 -0
  81. package/dist/types/index.d.ts.map +1 -0
  82. package/dist/types/index.js +3 -0
  83. package/dist/types/index.js.map +1 -0
  84. package/dist/ws/BinanceFuturesPublicStream.d.ts +30 -0
  85. package/dist/ws/BinanceFuturesPublicStream.d.ts.map +1 -0
  86. package/dist/ws/BinanceFuturesPublicStream.js +216 -0
  87. package/dist/ws/BinanceFuturesPublicStream.js.map +1 -0
  88. package/dist/ws/BinanceSpotPublicStream.d.ts +24 -0
  89. package/dist/ws/BinanceSpotPublicStream.d.ts.map +1 -0
  90. package/dist/ws/BinanceSpotPublicStream.js +186 -0
  91. package/dist/ws/BinanceSpotPublicStream.js.map +1 -0
  92. package/dist/ws/BinanceUserDataStream.d.ts +23 -0
  93. package/dist/ws/BinanceUserDataStream.d.ts.map +1 -0
  94. package/dist/ws/BinanceUserDataStream.js +48 -0
  95. package/dist/ws/BinanceUserDataStream.js.map +1 -0
  96. package/dist/ws/BybitPrivateStream.d.ts +25 -0
  97. package/dist/ws/BybitPrivateStream.d.ts.map +1 -0
  98. package/dist/ws/BybitPrivateStream.js +79 -0
  99. package/dist/ws/BybitPrivateStream.js.map +1 -0
  100. package/dist/ws/BybitPublicStream.d.ts +25 -0
  101. package/dist/ws/BybitPublicStream.d.ts.map +1 -0
  102. package/dist/ws/BybitPublicStream.js +178 -0
  103. package/dist/ws/BybitPublicStream.js.map +1 -0
  104. package/dist/ws/BybitTradeStream.d.ts +27 -0
  105. package/dist/ws/BybitTradeStream.d.ts.map +1 -0
  106. package/dist/ws/BybitTradeStream.js +146 -0
  107. package/dist/ws/BybitTradeStream.js.map +1 -0
  108. 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"}