@solncebro/exchange-engine 0.1.2 → 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.
Files changed (117) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/constants/binance.d.ts +4 -5
  3. package/dist/constants/binance.d.ts.map +1 -1
  4. package/dist/constants/binance.js +5 -21
  5. package/dist/constants/binance.js.map +1 -1
  6. package/dist/constants/bybit.d.ts +6 -6
  7. package/dist/constants/bybit.d.ts.map +1 -1
  8. package/dist/constants/bybit.js +7 -7
  9. package/dist/constants/bybit.js.map +1 -1
  10. package/dist/constants/mappings.d.ts +9 -0
  11. package/dist/constants/mappings.d.ts.map +1 -0
  12. package/dist/constants/mappings.js +40 -0
  13. package/dist/constants/mappings.js.map +1 -0
  14. package/dist/exchanges/BaseExchangeClient.d.ts +9 -8
  15. package/dist/exchanges/BaseExchangeClient.d.ts.map +1 -1
  16. package/dist/exchanges/BaseExchangeClient.js +26 -26
  17. package/dist/exchanges/BaseExchangeClient.js.map +1 -1
  18. package/dist/exchanges/BinanceBaseClient.d.ts +5 -5
  19. package/dist/exchanges/BinanceBaseClient.d.ts.map +1 -1
  20. package/dist/exchanges/BinanceBaseClient.js +7 -8
  21. package/dist/exchanges/BinanceBaseClient.js.map +1 -1
  22. package/dist/exchanges/BinanceFutures.d.ts +4 -2
  23. package/dist/exchanges/BinanceFutures.d.ts.map +1 -1
  24. package/dist/exchanges/BinanceFutures.js +12 -6
  25. package/dist/exchanges/BinanceFutures.js.map +1 -1
  26. package/dist/exchanges/BinanceSpot.d.ts +3 -1
  27. package/dist/exchanges/BinanceSpot.d.ts.map +1 -1
  28. package/dist/exchanges/BinanceSpot.js +5 -2
  29. package/dist/exchanges/BinanceSpot.js.map +1 -1
  30. package/dist/exchanges/BybitLinear.d.ts +8 -6
  31. package/dist/exchanges/BybitLinear.d.ts.map +1 -1
  32. package/dist/exchanges/BybitLinear.js +19 -15
  33. package/dist/exchanges/BybitLinear.js.map +1 -1
  34. package/dist/exchanges/BybitSpot.d.ts +7 -5
  35. package/dist/exchanges/BybitSpot.d.ts.map +1 -1
  36. package/dist/exchanges/BybitSpot.js +13 -9
  37. package/dist/exchanges/BybitSpot.js.map +1 -1
  38. package/dist/exchanges/Exchange.d.ts +1 -1
  39. package/dist/exchanges/Exchange.d.ts.map +1 -1
  40. package/dist/exchanges/Exchange.js +3 -2
  41. package/dist/exchanges/Exchange.js.map +1 -1
  42. package/dist/http/BaseHttpClient.d.ts.map +1 -1
  43. package/dist/http/BaseHttpClient.js.map +1 -1
  44. package/dist/http/BinanceBaseHttpClient.d.ts +7 -7
  45. package/dist/http/BinanceBaseHttpClient.d.ts.map +1 -1
  46. package/dist/http/BinanceBaseHttpClient.js.map +1 -1
  47. package/dist/http/BinanceFuturesHttpClient.d.ts +6 -6
  48. package/dist/http/BinanceFuturesHttpClient.d.ts.map +1 -1
  49. package/dist/http/BinanceFuturesHttpClient.js +2 -5
  50. package/dist/http/BinanceFuturesHttpClient.js.map +1 -1
  51. package/dist/http/BybitHttpClient.d.ts +14 -13
  52. package/dist/http/BybitHttpClient.d.ts.map +1 -1
  53. package/dist/http/BybitHttpClient.js.map +1 -1
  54. package/dist/index.d.ts +3 -4
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +9 -6
  57. package/dist/index.js.map +1 -1
  58. package/dist/normalizers/binanceNormalizer.d.ts +28 -19
  59. package/dist/normalizers/binanceNormalizer.d.ts.map +1 -1
  60. package/dist/normalizers/binanceNormalizer.js +47 -30
  61. package/dist/normalizers/binanceNormalizer.js.map +1 -1
  62. package/dist/normalizers/bybitNormalizer.d.ts +21 -21
  63. package/dist/normalizers/bybitNormalizer.d.ts.map +1 -1
  64. package/dist/normalizers/bybitNormalizer.js +39 -40
  65. package/dist/normalizers/bybitNormalizer.js.map +1 -1
  66. package/dist/precision/precision.d.ts +3 -3
  67. package/dist/precision/precision.d.ts.map +1 -1
  68. package/dist/precision/precision.js +4 -4
  69. package/dist/precision/precision.js.map +1 -1
  70. package/dist/types/common.d.ts +54 -21
  71. package/dist/types/common.d.ts.map +1 -1
  72. package/dist/types/common.js +40 -0
  73. package/dist/types/common.js.map +1 -1
  74. package/dist/types/exchange.d.ts +9 -7
  75. package/dist/types/exchange.d.ts.map +1 -1
  76. package/dist/types/index.d.ts +2 -2
  77. package/dist/types/index.d.ts.map +1 -1
  78. package/dist/types/stream.d.ts +1 -2
  79. package/dist/types/stream.d.ts.map +1 -1
  80. package/dist/utils/httpParams.d.ts +2 -2
  81. package/dist/utils/httpParams.d.ts.map +1 -1
  82. package/dist/utils/httpParams.js.map +1 -1
  83. package/dist/ws/BinanceFuturesPublicStream.d.ts +4 -4
  84. package/dist/ws/BinanceFuturesPublicStream.d.ts.map +1 -1
  85. package/dist/ws/BinanceFuturesPublicStream.js +40 -41
  86. package/dist/ws/BinanceFuturesPublicStream.js.map +1 -1
  87. package/dist/ws/BinanceSpotPublicStream.d.ts +2 -2
  88. package/dist/ws/BinanceSpotPublicStream.d.ts.map +1 -1
  89. package/dist/ws/BinanceSpotPublicStream.js +15 -17
  90. package/dist/ws/BinanceSpotPublicStream.js.map +1 -1
  91. package/dist/ws/BinanceUserDataStream.d.ts +2 -2
  92. package/dist/ws/BinanceUserDataStream.d.ts.map +1 -1
  93. package/dist/ws/BinanceUserDataStream.js +3 -3
  94. package/dist/ws/BinanceUserDataStream.js.map +1 -1
  95. package/dist/ws/BybitPrivateStream.js +5 -5
  96. package/dist/ws/BybitPrivateStream.js.map +1 -1
  97. package/dist/ws/BybitPublicStream.d.ts.map +1 -1
  98. package/dist/ws/BybitPublicStream.js +9 -10
  99. package/dist/ws/BybitPublicStream.js.map +1 -1
  100. package/dist/ws/BybitTradeStream.d.ts.map +1 -1
  101. package/dist/ws/BybitTradeStream.js +12 -8
  102. package/dist/ws/BybitTradeStream.js.map +1 -1
  103. package/dist/ws/{binanceWsUtils.d.ts → binanceWebSocketUtils.d.ts} +1 -1
  104. package/dist/ws/binanceWebSocketUtils.d.ts.map +1 -0
  105. package/dist/ws/binanceWebSocketUtils.js +7 -0
  106. package/dist/ws/binanceWebSocketUtils.js.map +1 -0
  107. package/dist/ws/bybitWebSocketUtils.d.ts +28 -0
  108. package/dist/ws/bybitWebSocketUtils.d.ts.map +1 -0
  109. package/dist/ws/{bybitWsUtils.js → bybitWebSocketUtils.js} +3 -3
  110. package/dist/ws/bybitWebSocketUtils.js.map +1 -0
  111. package/package.json +6 -2
  112. package/dist/ws/binanceWsUtils.d.ts.map +0 -1
  113. package/dist/ws/binanceWsUtils.js +0 -13
  114. package/dist/ws/binanceWsUtils.js.map +0 -1
  115. package/dist/ws/bybitWsUtils.d.ts +0 -29
  116. package/dist/ws/bybitWsUtils.d.ts.map +0 -1
  117. package/dist/ws/bybitWsUtils.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,30 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.2.0] - 2026-03-06
9
+
10
+ ### Breaking Changes
11
+ - Renamed `Market` → `TradeSymbol`, `MarketBySymbol` → `TradeSymbolBySymbol`, `MarketFilter` → `TradeSymbolFilter`, `MarketType` → `TradeSymbolType`
12
+ - Renamed `loadMarkets()` → `loadTradeSymbols()`, property `markets` → `tradeSymbols`
13
+ - Renamed `FetchKlinesArgs` → `FetchPageWithLimitArgs`
14
+ - Renamed Kline fields: `open` → `openPrice`, `high` → `highPrice`, `low` → `lowPrice`, `close` → `closePrice`, `quoteVolume` → `quoteAssetVolume`, `trades` → `numberOfTrades`
15
+ - Added Kline fields: `takerBuyBaseAssetVolume`, `takerBuyQuoteAssetVolume`
16
+
17
+ ### Added
18
+ - `FundingRateHistory` type and `fetchFundingRateHistory()` method (Binance Futures)
19
+ - `BinanceFundingRateHistoryRaw` type and `normalizeBinanceFundingRateHistory()` normalizer
20
+ - ESLint integration with TypeScript support (`eslint.config.mjs`)
21
+ - `yarn lint` script — runs ESLint on `src/` and `test/`
22
+ - ESLint check added to `prepublishOnly` pipeline
23
+
24
+ ### Fixed
25
+ - Unused imports in WebSocket streams (`Kline`, `isBybitPongResponse`)
26
+ - `test/tsconfig.json`: added `"node"` to `types` for `console` support in smoke tests
27
+
28
+ ### Internal
29
+ - Code style alignment across all source and test files
30
+ - All abbreviations expanded (`opts` → `options`, etc.)
31
+
8
32
  ## [0.1.2] - 2026-03-03
9
33
 
10
34
  ### Added
@@ -67,5 +91,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
67
91
  - Private endpoints (balance, position, orders) require valid credentials
68
92
  - WebSocket subscriptions are stateless and can be re-established on reconnect
69
93
 
94
+ [0.2.0]: https://github.com/solncebro/exchange-engine/releases/tag/v0.2.0
70
95
  [0.1.2]: https://github.com/solncebro/exchange-engine/releases/tag/v0.1.2
71
96
  [0.1.0]: https://github.com/solncebro/exchange-engine/releases/tag/v0.1.0
@@ -2,12 +2,11 @@ export declare const BINANCE_SPOT_BASE_URL = "https://api.binance.com";
2
2
  export declare const BINANCE_FUTURES_BASE_URL = "https://fapi.binance.com";
3
3
  export declare const BINANCE_DEMO_SPOT_BASE_URL = "https://demo-api.binance.com";
4
4
  export declare const BINANCE_DEMO_FUTURES_BASE_URL = "https://demo-fapi.binance.com";
5
- export declare const BINANCE_FUTURES_WS_STREAM_URL = "wss://fstream.binance.com/ws";
6
- export declare const BINANCE_FUTURES_WS_COMBINED_URL = "wss://fstream.binance.com/stream";
7
- export declare const BINANCE_SPOT_WS_STREAM_URL = "wss://stream.binance.com:9443/ws";
8
- export declare const BINANCE_DEMO_FUTURES_WS_COMBINED_URL = "wss://fstream.binancefuture.com/stream";
5
+ export declare const BINANCE_FUTURES_WEBSOCKET_STREAM_URL = "wss://fstream.binance.com/ws";
6
+ export declare const BINANCE_FUTURES_WEBSOCKET_COMBINED_URL = "wss://fstream.binance.com/stream";
7
+ export declare const BINANCE_SPOT_WEBSOCKET_STREAM_URL = "wss://stream.binance.com:9443/ws";
8
+ export declare const BINANCE_DEMO_FUTURES_WEBSOCKET_COMBINED_URL = "wss://fstream.binancefuture.com/stream";
9
9
  export declare const BINANCE_REQUEST_TIMEOUT = 30000;
10
10
  export declare const BINANCE_KLINE_LIMIT_SPOT = 1000;
11
11
  export declare const BINANCE_KLINE_LIMIT_FUTURES = 499;
12
- export declare const BINANCE_KLINE_INTERVAL: Record<string, string>;
13
12
  //# sourceMappingURL=binance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"binance.d.ts","sourceRoot":"","sources":["../../src/constants/binance.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,eAAO,MAAM,0BAA0B,iCAAiC,CAAC;AACzE,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAE7E,eAAO,MAAM,6BAA6B,iCAAiC,CAAC;AAC5E,eAAO,MAAM,+BAA+B,qCAAqC,CAAC;AAClF,eAAO,MAAM,0BAA0B,qCAAqC,CAAC;AAE7E,eAAO,MAAM,oCAAoC,2CAA2C,CAAC;AAE7F,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAezD,CAAC"}
1
+ {"version":3,"file":"binance.d.ts","sourceRoot":"","sources":["../../src/constants/binance.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,4BAA4B,CAAC;AAC/D,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,eAAO,MAAM,0BAA0B,iCAAiC,CAAC;AACzE,eAAO,MAAM,6BAA6B,kCAAkC,CAAC;AAE7E,eAAO,MAAM,oCAAoC,iCAAiC,CAAC;AACnF,eAAO,MAAM,sCAAsC,qCAAqC,CAAC;AACzF,eAAO,MAAM,iCAAiC,qCAAqC,CAAC;AAEpF,eAAO,MAAM,2CAA2C,2CAA2C,CAAC;AAEpG,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAC7C,eAAO,MAAM,2BAA2B,MAAM,CAAC"}
@@ -1,31 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BINANCE_KLINE_INTERVAL = exports.BINANCE_KLINE_LIMIT_FUTURES = exports.BINANCE_KLINE_LIMIT_SPOT = exports.BINANCE_REQUEST_TIMEOUT = exports.BINANCE_DEMO_FUTURES_WS_COMBINED_URL = exports.BINANCE_SPOT_WS_STREAM_URL = exports.BINANCE_FUTURES_WS_COMBINED_URL = exports.BINANCE_FUTURES_WS_STREAM_URL = exports.BINANCE_DEMO_FUTURES_BASE_URL = exports.BINANCE_DEMO_SPOT_BASE_URL = exports.BINANCE_FUTURES_BASE_URL = exports.BINANCE_SPOT_BASE_URL = void 0;
3
+ exports.BINANCE_KLINE_LIMIT_FUTURES = exports.BINANCE_KLINE_LIMIT_SPOT = exports.BINANCE_REQUEST_TIMEOUT = exports.BINANCE_DEMO_FUTURES_WEBSOCKET_COMBINED_URL = exports.BINANCE_SPOT_WEBSOCKET_STREAM_URL = exports.BINANCE_FUTURES_WEBSOCKET_COMBINED_URL = exports.BINANCE_FUTURES_WEBSOCKET_STREAM_URL = exports.BINANCE_DEMO_FUTURES_BASE_URL = exports.BINANCE_DEMO_SPOT_BASE_URL = exports.BINANCE_FUTURES_BASE_URL = exports.BINANCE_SPOT_BASE_URL = void 0;
4
4
  exports.BINANCE_SPOT_BASE_URL = 'https://api.binance.com';
5
5
  exports.BINANCE_FUTURES_BASE_URL = 'https://fapi.binance.com';
6
6
  exports.BINANCE_DEMO_SPOT_BASE_URL = 'https://demo-api.binance.com';
7
7
  exports.BINANCE_DEMO_FUTURES_BASE_URL = 'https://demo-fapi.binance.com';
8
- exports.BINANCE_FUTURES_WS_STREAM_URL = 'wss://fstream.binance.com/ws';
9
- exports.BINANCE_FUTURES_WS_COMBINED_URL = 'wss://fstream.binance.com/stream';
10
- exports.BINANCE_SPOT_WS_STREAM_URL = 'wss://stream.binance.com:9443/ws';
11
- exports.BINANCE_DEMO_FUTURES_WS_COMBINED_URL = 'wss://fstream.binancefuture.com/stream';
8
+ exports.BINANCE_FUTURES_WEBSOCKET_STREAM_URL = 'wss://fstream.binance.com/ws';
9
+ exports.BINANCE_FUTURES_WEBSOCKET_COMBINED_URL = 'wss://fstream.binance.com/stream';
10
+ exports.BINANCE_SPOT_WEBSOCKET_STREAM_URL = 'wss://stream.binance.com:9443/ws';
11
+ exports.BINANCE_DEMO_FUTURES_WEBSOCKET_COMBINED_URL = 'wss://fstream.binancefuture.com/stream';
12
12
  exports.BINANCE_REQUEST_TIMEOUT = 30000;
13
13
  exports.BINANCE_KLINE_LIMIT_SPOT = 1000;
14
14
  exports.BINANCE_KLINE_LIMIT_FUTURES = 499;
15
- exports.BINANCE_KLINE_INTERVAL = {
16
- '1m': '1m',
17
- '3m': '3m',
18
- '5m': '5m',
19
- '15m': '15m',
20
- '30m': '30m',
21
- '1h': '1h',
22
- '2h': '2h',
23
- '4h': '4h',
24
- '6h': '6h',
25
- '12h': '12h',
26
- '1d': '1d',
27
- '3d': '3d',
28
- '1w': '1w',
29
- '1M': '1M',
30
- };
31
15
  //# sourceMappingURL=binance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"binance.js","sourceRoot":"","sources":["../../src/constants/binance.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,yBAAyB,CAAC;AAClD,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AAEtD,QAAA,0BAA0B,GAAG,8BAA8B,CAAC;AAC5D,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAEhE,QAAA,6BAA6B,GAAG,8BAA8B,CAAC;AAC/D,QAAA,+BAA+B,GAAG,kCAAkC,CAAC;AACrE,QAAA,0BAA0B,GAAG,kCAAkC,CAAC;AAEhE,QAAA,oCAAoC,GAAG,wCAAwC,CAAC;AAEhF,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAEhC,QAAA,wBAAwB,GAAG,IAAI,CAAC;AAChC,QAAA,2BAA2B,GAAG,GAAG,CAAC;AAElC,QAAA,sBAAsB,GAA2B;IAC5D,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACX,CAAC"}
1
+ {"version":3,"file":"binance.js","sourceRoot":"","sources":["../../src/constants/binance.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,yBAAyB,CAAC;AAClD,QAAA,wBAAwB,GAAG,0BAA0B,CAAC;AAEtD,QAAA,0BAA0B,GAAG,8BAA8B,CAAC;AAC5D,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAEhE,QAAA,oCAAoC,GAAG,8BAA8B,CAAC;AACtE,QAAA,sCAAsC,GAAG,kCAAkC,CAAC;AAC5E,QAAA,iCAAiC,GAAG,kCAAkC,CAAC;AAEvE,QAAA,2CAA2C,GAAG,wCAAwC,CAAC;AAEvF,QAAA,uBAAuB,GAAG,KAAK,CAAC;AAEhC,QAAA,wBAAwB,GAAG,IAAI,CAAC;AAChC,QAAA,2BAA2B,GAAG,GAAG,CAAC"}
@@ -1,11 +1,11 @@
1
1
  export declare const BYBIT_BASE_URL = "https://api.bybit.com";
2
2
  export declare const BYBIT_DEMO_BASE_URL = "https://api-demo.bybit.com";
3
- export declare const BYBIT_PUBLIC_LINEAR_WS_URL = "wss://stream.bybit.com/v5/public/linear";
4
- export declare const BYBIT_PUBLIC_SPOT_WS_URL = "wss://stream.bybit.com/v5/public/spot";
5
- export declare const BYBIT_PRIVATE_WS_URL = "wss://stream.bybit.com/v5/private";
6
- export declare const BYBIT_TRADE_WS_URL = "wss://stream.bybit.com/v5/trade";
7
- export declare const BYBIT_DEMO_PUBLIC_LINEAR_WS_URL = "wss://stream-demo.bybit.com/v5/public/linear";
8
- export declare const BYBIT_DEMO_PUBLIC_SPOT_WS_URL = "wss://stream-demo.bybit.com/v5/public/spot";
3
+ export declare const BYBIT_PUBLIC_LINEAR_WEBSOCKET_URL = "wss://stream.bybit.com/v5/public/linear";
4
+ export declare const BYBIT_PUBLIC_SPOT_WEBSOCKET_URL = "wss://stream.bybit.com/v5/public/spot";
5
+ export declare const BYBIT_PRIVATE_WEBSOCKET_URL = "wss://stream.bybit.com/v5/private";
6
+ export declare const BYBIT_TRADE_WEBSOCKET_URL = "wss://stream.bybit.com/v5/trade";
7
+ export declare const BYBIT_DEMO_PUBLIC_LINEAR_WEBSOCKET_URL = "wss://stream-demo.bybit.com/v5/public/linear";
8
+ export declare const BYBIT_DEMO_PUBLIC_SPOT_WEBSOCKET_URL = "wss://stream-demo.bybit.com/v5/public/spot";
9
9
  export declare const BYBIT_RECV_WINDOW = 7000;
10
10
  export declare const BYBIT_REQUEST_TIMEOUT = 30000;
11
11
  export declare const BYBIT_KLINE_INTERVAL: Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../src/constants/bybit.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,0BAA0B,CAAC;AAEtD,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE,eAAO,MAAM,0BAA0B,4CAA4C,CAAC;AACpF,eAAO,MAAM,wBAAwB,0CAA0C,CAAC;AAChF,eAAO,MAAM,oBAAoB,sCAAsC,CAAC;AACxE,eAAO,MAAM,kBAAkB,oCAAoC,CAAC;AAEpE,eAAO,MAAM,+BAA+B,iDAAiD,CAAC;AAC9F,eAAO,MAAM,6BAA6B,+CAA+C,CAAC;AAE1F,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAevD,CAAC"}
1
+ {"version":3,"file":"bybit.d.ts","sourceRoot":"","sources":["../../src/constants/bybit.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,0BAA0B,CAAC;AAEtD,eAAO,MAAM,mBAAmB,+BAA+B,CAAC;AAEhE,eAAO,MAAM,iCAAiC,4CAA4C,CAAC;AAC3F,eAAO,MAAM,+BAA+B,0CAA0C,CAAC;AACvF,eAAO,MAAM,2BAA2B,sCAAsC,CAAC;AAC/E,eAAO,MAAM,yBAAyB,oCAAoC,CAAC;AAE3E,eAAO,MAAM,sCAAsC,iDAAiD,CAAC;AACrG,eAAO,MAAM,oCAAoC,+CAA+C,CAAC;AAEjG,eAAO,MAAM,iBAAiB,OAAO,CAAC;AACtC,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAevD,CAAC"}
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BYBIT_KLINE_INTERVAL = exports.BYBIT_REQUEST_TIMEOUT = exports.BYBIT_RECV_WINDOW = exports.BYBIT_DEMO_PUBLIC_SPOT_WS_URL = exports.BYBIT_DEMO_PUBLIC_LINEAR_WS_URL = exports.BYBIT_TRADE_WS_URL = exports.BYBIT_PRIVATE_WS_URL = exports.BYBIT_PUBLIC_SPOT_WS_URL = exports.BYBIT_PUBLIC_LINEAR_WS_URL = exports.BYBIT_DEMO_BASE_URL = exports.BYBIT_BASE_URL = void 0;
3
+ exports.BYBIT_KLINE_INTERVAL = exports.BYBIT_REQUEST_TIMEOUT = exports.BYBIT_RECV_WINDOW = exports.BYBIT_DEMO_PUBLIC_SPOT_WEBSOCKET_URL = exports.BYBIT_DEMO_PUBLIC_LINEAR_WEBSOCKET_URL = exports.BYBIT_TRADE_WEBSOCKET_URL = exports.BYBIT_PRIVATE_WEBSOCKET_URL = exports.BYBIT_PUBLIC_SPOT_WEBSOCKET_URL = exports.BYBIT_PUBLIC_LINEAR_WEBSOCKET_URL = exports.BYBIT_DEMO_BASE_URL = exports.BYBIT_BASE_URL = void 0;
4
4
  exports.BYBIT_BASE_URL = 'https://api.bybit.com';
5
5
  exports.BYBIT_DEMO_BASE_URL = 'https://api-demo.bybit.com';
6
- exports.BYBIT_PUBLIC_LINEAR_WS_URL = 'wss://stream.bybit.com/v5/public/linear';
7
- exports.BYBIT_PUBLIC_SPOT_WS_URL = 'wss://stream.bybit.com/v5/public/spot';
8
- exports.BYBIT_PRIVATE_WS_URL = 'wss://stream.bybit.com/v5/private';
9
- exports.BYBIT_TRADE_WS_URL = 'wss://stream.bybit.com/v5/trade';
10
- exports.BYBIT_DEMO_PUBLIC_LINEAR_WS_URL = 'wss://stream-demo.bybit.com/v5/public/linear';
11
- exports.BYBIT_DEMO_PUBLIC_SPOT_WS_URL = 'wss://stream-demo.bybit.com/v5/public/spot';
6
+ exports.BYBIT_PUBLIC_LINEAR_WEBSOCKET_URL = 'wss://stream.bybit.com/v5/public/linear';
7
+ exports.BYBIT_PUBLIC_SPOT_WEBSOCKET_URL = 'wss://stream.bybit.com/v5/public/spot';
8
+ exports.BYBIT_PRIVATE_WEBSOCKET_URL = 'wss://stream.bybit.com/v5/private';
9
+ exports.BYBIT_TRADE_WEBSOCKET_URL = 'wss://stream.bybit.com/v5/trade';
10
+ exports.BYBIT_DEMO_PUBLIC_LINEAR_WEBSOCKET_URL = 'wss://stream-demo.bybit.com/v5/public/linear';
11
+ exports.BYBIT_DEMO_PUBLIC_SPOT_WEBSOCKET_URL = 'wss://stream-demo.bybit.com/v5/public/spot';
12
12
  exports.BYBIT_RECV_WINDOW = 7000;
13
13
  exports.BYBIT_REQUEST_TIMEOUT = 30000;
14
14
  exports.BYBIT_KLINE_INTERVAL = {
@@ -1 +1 @@
1
- {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/constants/bybit.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,uBAAuB,CAAC;AAEzC,QAAA,mBAAmB,GAAG,4BAA4B,CAAC;AAEnD,QAAA,0BAA0B,GAAG,yCAAyC,CAAC;AACvE,QAAA,wBAAwB,GAAG,uCAAuC,CAAC;AACnE,QAAA,oBAAoB,GAAG,mCAAmC,CAAC;AAC3D,QAAA,kBAAkB,GAAG,iCAAiC,CAAC;AAEvD,QAAA,+BAA+B,GAAG,8CAA8C,CAAC;AACjF,QAAA,6BAA6B,GAAG,4CAA4C,CAAC;AAE7E,QAAA,iBAAiB,GAAG,IAAI,CAAC;AACzB,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE9B,QAAA,oBAAoB,GAA2B;IAC1D,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;CACV,CAAC"}
1
+ {"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/constants/bybit.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,uBAAuB,CAAC;AAEzC,QAAA,mBAAmB,GAAG,4BAA4B,CAAC;AAEnD,QAAA,iCAAiC,GAAG,yCAAyC,CAAC;AAC9E,QAAA,+BAA+B,GAAG,uCAAuC,CAAC;AAC1E,QAAA,2BAA2B,GAAG,mCAAmC,CAAC;AAClE,QAAA,yBAAyB,GAAG,iCAAiC,CAAC;AAE9D,QAAA,sCAAsC,GAAG,8CAA8C,CAAC;AACxF,QAAA,oCAAoC,GAAG,4CAA4C,CAAC;AAEpF,QAAA,iBAAiB,GAAG,IAAI,CAAC;AACzB,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAE9B,QAAA,oBAAoB,GAA2B;IAC1D,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;CACV,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { PositionSide, OrderSide, OrderType } from '../types/common';
2
+ export declare const BINANCE_POSITION_SIDE: Record<string, PositionSide>;
3
+ export declare const BYBIT_POSITION_SIDE: Record<string, PositionSide>;
4
+ export declare const BYBIT_ORDER_STATUS: Record<string, string>;
5
+ export declare const BINANCE_ORDER_SIDE: Record<string, OrderSide>;
6
+ export declare const BINANCE_ORDER_TYPE: Record<string, OrderType>;
7
+ export declare const BYBIT_ORDER_SIDE: Record<string, OrderSide>;
8
+ export declare const BYBIT_ORDER_TYPE: Record<string, OrderType>;
9
+ //# sourceMappingURL=mappings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.d.ts","sourceRoot":"","sources":["../../src/constants/mappings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAErE,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAI9D,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAG5D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASrD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAGxD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAGxD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAGtD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAGtD,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BYBIT_ORDER_TYPE = exports.BYBIT_ORDER_SIDE = exports.BINANCE_ORDER_TYPE = exports.BINANCE_ORDER_SIDE = exports.BYBIT_ORDER_STATUS = exports.BYBIT_POSITION_SIDE = exports.BINANCE_POSITION_SIDE = void 0;
4
+ const common_1 = require("../types/common");
5
+ exports.BINANCE_POSITION_SIDE = {
6
+ LONG: common_1.PositionSide.Long,
7
+ SHORT: common_1.PositionSide.Short,
8
+ BOTH: common_1.PositionSide.Both,
9
+ };
10
+ exports.BYBIT_POSITION_SIDE = {
11
+ Buy: common_1.PositionSide.Long,
12
+ Sell: common_1.PositionSide.Short,
13
+ };
14
+ exports.BYBIT_ORDER_STATUS = {
15
+ New: 'open',
16
+ PartiallyFilled: 'open',
17
+ Untriggered: 'open',
18
+ Filled: 'closed',
19
+ Cancelled: 'canceled',
20
+ PartiallyFilledCanceled: 'canceled',
21
+ Rejected: 'rejected',
22
+ Deactivated: 'canceled',
23
+ };
24
+ exports.BINANCE_ORDER_SIDE = {
25
+ BUY: common_1.OrderSide.Buy,
26
+ SELL: common_1.OrderSide.Sell,
27
+ };
28
+ exports.BINANCE_ORDER_TYPE = {
29
+ MARKET: common_1.OrderType.Market,
30
+ LIMIT: common_1.OrderType.Limit,
31
+ };
32
+ exports.BYBIT_ORDER_SIDE = {
33
+ Buy: common_1.OrderSide.Buy,
34
+ Sell: common_1.OrderSide.Sell,
35
+ };
36
+ exports.BYBIT_ORDER_TYPE = {
37
+ Market: common_1.OrderType.Market,
38
+ Limit: common_1.OrderType.Limit,
39
+ };
40
+ //# sourceMappingURL=mappings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappings.js","sourceRoot":"","sources":["../../src/constants/mappings.ts"],"names":[],"mappings":";;;AAAA,4CAAqE;AAExD,QAAA,qBAAqB,GAAiC;IACjE,IAAI,EAAE,qBAAY,CAAC,IAAI;IACvB,KAAK,EAAE,qBAAY,CAAC,KAAK;IACzB,IAAI,EAAE,qBAAY,CAAC,IAAI;CACxB,CAAC;AAEW,QAAA,mBAAmB,GAAiC;IAC/D,GAAG,EAAE,qBAAY,CAAC,IAAI;IACtB,IAAI,EAAE,qBAAY,CAAC,KAAK;CACzB,CAAC;AAEW,QAAA,kBAAkB,GAA2B;IACxD,GAAG,EAAE,MAAM;IACX,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,UAAU;IACrB,uBAAuB,EAAE,UAAU;IACnC,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,UAAU;CACxB,CAAC;AAEW,QAAA,kBAAkB,GAA8B;IAC3D,GAAG,EAAE,kBAAS,CAAC,GAAG;IAClB,IAAI,EAAE,kBAAS,CAAC,IAAI;CACrB,CAAC;AAEW,QAAA,kBAAkB,GAA8B;IAC3D,MAAM,EAAE,kBAAS,CAAC,MAAM;IACxB,KAAK,EAAE,kBAAS,CAAC,KAAK;CACvB,CAAC;AAEW,QAAA,gBAAgB,GAA8B;IACzD,GAAG,EAAE,kBAAS,CAAC,GAAG;IAClB,IAAI,EAAE,kBAAS,CAAC,IAAI;CACrB,CAAC;AAEW,QAAA,gBAAgB,GAA8B;IACzD,MAAM,EAAE,kBAAS,CAAC,MAAM;IACxB,KAAK,EAAE,kBAAS,CAAC,KAAK;CACvB,CAAC"}
@@ -1,22 +1,22 @@
1
- import type { ExchangeClient, ExchangeArgs, FetchKlinesArgs, SubscribeKlinesArgs } from '../types/exchange';
2
- import type { ExchangeLogger, Kline, KlineInterval, MarketBySymbol, TickerBySymbol, BalanceByAsset } from '../types/common';
1
+ import type { ExchangeClient, ExchangeArgs, FetchPageWithLimitArgs, SubscribeKlinesArgs } from '../types/exchange';
2
+ import type { ExchangeLogger, Kline, KlineInterval, TradeSymbolBySymbol, TickerBySymbol, BalanceByAsset } from '../types/common';
3
3
  import type { PublicStreamLike } from '../types/stream';
4
4
  declare abstract class BaseExchangeClient implements ExchangeClient {
5
5
  readonly apiKey: string;
6
- readonly markets: MarketBySymbol;
6
+ readonly tradeSymbols: TradeSymbolBySymbol;
7
7
  protected readonly logger: ExchangeLogger;
8
8
  protected readonly onNotify?: (message: string) => void | Promise<void>;
9
9
  protected abstract readonly marketLabel: string;
10
10
  protected abstract readonly klineLimit: number;
11
11
  constructor(args: ExchangeArgs);
12
12
  protected abstract getPublicStream(): PublicStreamLike;
13
- protected abstract fetchAndNormalizeMarkets(): Promise<MarketBySymbol>;
13
+ protected abstract fetchAndNormalizeTradeSymbols(): Promise<TradeSymbolBySymbol>;
14
14
  protected abstract fetchAndNormalizeTickers(): Promise<TickerBySymbol>;
15
- protected abstract fetchAndNormalizeKlines(symbol: string, interval: KlineInterval, options?: FetchKlinesArgs): Promise<Kline[]>;
15
+ protected abstract fetchAndNormalizeKlines(symbol: string, interval: KlineInterval, options?: FetchPageWithLimitArgs): Promise<Kline[]>;
16
16
  protected abstract fetchAndNormalizeBalance(): Promise<BalanceByAsset>;
17
- loadMarkets(reload?: boolean): Promise<MarketBySymbol>;
17
+ loadTradeSymbols(shouldReload?: boolean): Promise<TradeSymbolBySymbol>;
18
18
  fetchTickers(): Promise<TickerBySymbol>;
19
- fetchKlines(symbol: string, interval: KlineInterval, options?: FetchKlinesArgs): Promise<Kline[]>;
19
+ fetchKlines(symbol: string, interval: KlineInterval, options?: FetchPageWithLimitArgs): Promise<Kline[]>;
20
20
  fetchAllKlines(symbolList: string[], interval: KlineInterval): Promise<Map<string, Kline[]>>;
21
21
  fetchBalance(): Promise<BalanceByAsset>;
22
22
  watchTickers(): AsyncGenerator<TickerBySymbol>;
@@ -26,7 +26,8 @@ declare abstract class BaseExchangeClient implements ExchangeClient {
26
26
  priceToPrecision(symbol: string, price: number): string;
27
27
  getMinOrderQty(symbol: string): number;
28
28
  getMinNotional(symbol: string): number;
29
- abstract createOrderWs(...args: Parameters<ExchangeClient['createOrderWs']>): ReturnType<ExchangeClient['createOrderWs']>;
29
+ abstract createOrderWebSocket(...args: Parameters<ExchangeClient['createOrderWebSocket']>): ReturnType<ExchangeClient['createOrderWebSocket']>;
30
+ abstract fetchFundingRateHistory(...args: Parameters<ExchangeClient['fetchFundingRateHistory']>): ReturnType<ExchangeClient['fetchFundingRateHistory']>;
30
31
  abstract fetchPosition(...args: Parameters<ExchangeClient['fetchPosition']>): ReturnType<ExchangeClient['fetchPosition']>;
31
32
  abstract setLeverage(...args: Parameters<ExchangeClient['setLeverage']>): ReturnType<ExchangeClient['setLeverage']>;
32
33
  abstract setMarginMode(...args: Parameters<ExchangeClient['setMarginMode']>): ReturnType<ExchangeClient['setMarginMode']>;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseExchangeClient.d.ts","sourceRoot":"","sources":["../../src/exchanges/BaseExchangeClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseExchangeClient.d.ts","sourceRoot":"","sources":["../../src/exchanges/BaseExchangeClient.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ const klineLoader_1 = require("../utils/klineLoader");
5
5
  const precision_1 = require("../precision/precision");
6
6
  class BaseExchangeClient {
7
7
  apiKey;
8
- markets = new Map();
8
+ tradeSymbols = new Map();
9
9
  logger;
10
10
  onNotify;
11
11
  constructor(args) {
@@ -13,17 +13,17 @@ class BaseExchangeClient {
13
13
  this.logger = args.logger;
14
14
  this.onNotify = args.onNotify;
15
15
  }
16
- async loadMarkets(reload = false) {
17
- if (!reload && this.markets.size > 0) {
18
- return this.markets;
16
+ async loadTradeSymbols(shouldReload = false) {
17
+ if (!shouldReload && this.tradeSymbols.size > 0) {
18
+ return this.tradeSymbols;
19
19
  }
20
- this.logger.info(`Loading ${this.marketLabel} markets`);
21
- const normalized = await this.fetchAndNormalizeMarkets();
22
- for (const [symbol, market] of normalized) {
23
- this.markets.set(symbol, market);
20
+ this.logger.info(`Loading ${this.marketLabel} trade symbols`);
21
+ const normalized = await this.fetchAndNormalizeTradeSymbols();
22
+ for (const [symbol, tradeSymbol] of normalized) {
23
+ this.tradeSymbols.set(symbol, tradeSymbol);
24
24
  }
25
- this.logger.info(`Loaded ${this.markets.size} ${this.marketLabel} markets`);
26
- return this.markets;
25
+ this.logger.info(`Loaded ${this.tradeSymbols.size} ${this.marketLabel} trade symbols`);
26
+ return this.tradeSymbols;
27
27
  }
28
28
  async fetchTickers() {
29
29
  this.logger.debug(`Fetching ${this.marketLabel} tickers`);
@@ -55,36 +55,36 @@ class BaseExchangeClient {
55
55
  this.getPublicStream().unsubscribeKlines(args.symbol, args.interval, args.handler);
56
56
  }
57
57
  amountToPrecision(symbol, amount) {
58
- const market = this.markets.get(symbol);
59
- if (!market) {
60
- this.logger.warn(`Market ${symbol} not found, using raw amount`);
58
+ const tradeSymbol = this.tradeSymbols.get(symbol);
59
+ if (!tradeSymbol) {
60
+ this.logger.warn(`TradeSymbol ${symbol} not found, using raw amount`);
61
61
  return String(amount);
62
62
  }
63
- return (0, precision_1.amountToPrecision)(market, amount);
63
+ return (0, precision_1.amountToPrecision)(tradeSymbol, amount);
64
64
  }
65
65
  priceToPrecision(symbol, price) {
66
- const market = this.markets.get(symbol);
67
- if (!market) {
68
- this.logger.warn(`Market ${symbol} not found, using raw price`);
66
+ const tradeSymbol = this.tradeSymbols.get(symbol);
67
+ if (!tradeSymbol) {
68
+ this.logger.warn(`TradeSymbol ${symbol} not found, using raw price`);
69
69
  return String(price);
70
70
  }
71
- return (0, precision_1.priceToPrecision)(market, price);
71
+ return (0, precision_1.priceToPrecision)(tradeSymbol, price);
72
72
  }
73
73
  getMinOrderQty(symbol) {
74
- const market = this.markets.get(symbol);
75
- if (!market) {
76
- this.logger.warn(`Market ${symbol} not found, returning 0 for minOrderQty`);
74
+ const tradeSymbol = this.tradeSymbols.get(symbol);
75
+ if (!tradeSymbol) {
76
+ this.logger.warn(`TradeSymbol ${symbol} not found, returning 0 for minOrderQty`);
77
77
  return 0;
78
78
  }
79
- return parseFloat(market.filter.minQty);
79
+ return parseFloat(tradeSymbol.filter.minQty);
80
80
  }
81
81
  getMinNotional(symbol) {
82
- const market = this.markets.get(symbol);
83
- if (!market) {
84
- this.logger.warn(`Market ${symbol} not found, returning 0 for minNotional`);
82
+ const tradeSymbol = this.tradeSymbols.get(symbol);
83
+ if (!tradeSymbol) {
84
+ this.logger.warn(`TradeSymbol ${symbol} not found, returning 0 for minNotional`);
85
85
  return 0;
86
86
  }
87
- return parseFloat(market.filter.minNotional);
87
+ return parseFloat(tradeSymbol.filter.minNotional);
88
88
  }
89
89
  }
90
90
  exports.BaseExchangeClient = BaseExchangeClient;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseExchangeClient.js","sourceRoot":"","sources":["../../src/exchanges/BaseExchangeClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseExchangeClient.js","sourceRoot":"","sources":["../../src/exchanges/BaseExchangeClient.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { CreateOrderWsArgs, ExchangeArgs, FetchKlinesArgs } from '../types/exchange';
2
- import type { Kline, KlineInterval, MarketBySymbol, TickerBySymbol, BalanceByAsset, Order } from '../types/common';
1
+ import type { CreateOrderWebSocketArgs, ExchangeArgs, FetchPageWithLimitArgs } from '../types/exchange';
2
+ import type { Kline, KlineInterval, TradeSymbolBySymbol, TickerBySymbol, BalanceByAsset, Order } from '../types/common';
3
3
  import type { PublicStreamLike } from '../types/stream';
4
4
  import type { BinanceBaseHttpClient } from '../http/BinanceBaseHttpClient';
5
5
  import { BinanceUserDataStream } from '../ws/BinanceUserDataStream';
@@ -10,11 +10,11 @@ declare abstract class BinanceBaseClient<T extends BinanceBaseHttpClient> extend
10
10
  private readonly publicStream;
11
11
  constructor(args: ExchangeArgs, httpClient: T, publicStream: PublicStreamLike);
12
12
  protected getPublicStream(): PublicStreamLike;
13
- protected fetchAndNormalizeMarkets(): Promise<MarketBySymbol>;
13
+ protected fetchAndNormalizeTradeSymbols(): Promise<TradeSymbolBySymbol>;
14
14
  protected fetchAndNormalizeTickers(): Promise<TickerBySymbol>;
15
- protected fetchAndNormalizeKlines(symbol: string, interval: KlineInterval, options?: FetchKlinesArgs): Promise<Kline[]>;
15
+ protected fetchAndNormalizeKlines(symbol: string, interval: KlineInterval, options?: FetchPageWithLimitArgs): Promise<Kline[]>;
16
16
  protected fetchAndNormalizeBalance(): Promise<BalanceByAsset>;
17
- createOrderWs(args: CreateOrderWsArgs): Promise<Order>;
17
+ createOrderWebSocket(args: CreateOrderWebSocketArgs): Promise<Order>;
18
18
  close(): Promise<void>;
19
19
  }
20
20
  export { BinanceBaseClient };
@@ -1 +1 @@
1
- {"version":3,"file":"BinanceBaseClient.d.ts","sourceRoot":"","sources":["../../src/exchanges/BinanceBaseClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,cAAc,EACd,cAAc,EACd,cAAc,EACd,KAAK,EACN,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAQ3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,uBAAe,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,CAAE,SAAQ,kBAAkB;IAC1F,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,SAAS,CAAC,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAQ;IAE9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;gBAEpC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB;IAM7E,SAAS,CAAC,eAAe,IAAI,gBAAgB;cAI7B,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC;cAMnD,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC;cAMnD,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,EACvB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,KAAK,EAAE,CAAC;cAOH,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC;IAM7D,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC;IA0BtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"BinanceBaseClient.d.ts","sourceRoot":"","sources":["../../src/exchanges/BinanceBaseClient.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,KAAK,EACN,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAQ3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,uBAAe,iBAAiB,CAAC,CAAC,SAAS,qBAAqB,CAAE,SAAQ,kBAAkB;IAC1F,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACjC,SAAS,CAAC,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAQ;IAE9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;gBAEpC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB;IAM7E,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;cAMH,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC;IAM7D,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC;IA0BpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BinanceBaseClient = void 0;
4
+ const common_1 = require("../types/common");
4
5
  const binanceNormalizer_1 = require("../normalizers/binanceNormalizer");
5
- const binance_1 = require("../constants/binance");
6
6
  const BaseExchangeClient_1 = require("./BaseExchangeClient");
7
7
  class BinanceBaseClient extends BaseExchangeClient_1.BaseExchangeClient {
8
8
  httpClient;
@@ -16,24 +16,23 @@ class BinanceBaseClient extends BaseExchangeClient_1.BaseExchangeClient {
16
16
  getPublicStream() {
17
17
  return this.publicStream;
18
18
  }
19
- async fetchAndNormalizeMarkets() {
19
+ async fetchAndNormalizeTradeSymbols() {
20
20
  const raw = await this.httpClient.fetchExchangeInfo();
21
- return (0, binanceNormalizer_1.normalizeBinanceMarkets)(raw);
21
+ return (0, binanceNormalizer_1.normalizeBinanceTradeSymbols)(raw);
22
22
  }
23
23
  async fetchAndNormalizeTickers() {
24
24
  const rawTickerList = await this.httpClient.fetchTickers();
25
25
  return (0, binanceNormalizer_1.normalizeBinanceTickers)(rawTickerList);
26
26
  }
27
27
  async fetchAndNormalizeKlines(symbol, interval, options) {
28
- const binanceInterval = binance_1.BINANCE_KLINE_INTERVAL[interval];
29
- const rawKlineList = await this.httpClient.fetchKlines(symbol, binanceInterval, options);
28
+ const rawKlineList = await this.httpClient.fetchKlines(symbol, interval, options);
30
29
  return (0, binanceNormalizer_1.normalizeBinanceKlines)(rawKlineList);
31
30
  }
32
31
  async fetchAndNormalizeBalance() {
33
32
  const raw = await this.httpClient.fetchAccount();
34
33
  return (0, binanceNormalizer_1.normalizeBinanceBalance)(raw);
35
34
  }
36
- async createOrderWs(args) {
35
+ async createOrderWebSocket(args) {
37
36
  this.logger.debug(`Creating order via REST: ${args.symbol}`);
38
37
  const orderParams = {
39
38
  symbol: args.symbol,
@@ -42,12 +41,12 @@ class BinanceBaseClient extends BaseExchangeClient_1.BaseExchangeClient {
42
41
  quantity: this.amountToPrecision(args.symbol, args.amount),
43
42
  ...args.params,
44
43
  };
45
- if (args.type === 'limit') {
44
+ if (args.type === common_1.OrderType.Limit) {
46
45
  if (args.price > 0) {
47
46
  orderParams.price = this.priceToPrecision(args.symbol, args.price);
48
47
  }
49
48
  if (orderParams.timeInForce === undefined) {
50
- orderParams.timeInForce = 'GTC';
49
+ orderParams.timeInForce = common_1.TimeInForce.Gtc;
51
50
  }
52
51
  }
53
52
  const raw = await this.httpClient.createOrder(orderParams);
@@ -1 +1 @@
1
- {"version":3,"file":"BinanceBaseClient.js","sourceRoot":"","sources":["../../src/exchanges/BinanceBaseClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BinanceBaseClient.js","sourceRoot":"","sources":["../../src/exchanges/BinanceBaseClient.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
- import type { ExchangeArgs } from '../types/exchange';
2
- import type { Position, MarginMode } from '../types/common';
1
+ import type { ExchangeArgs, FetchPageWithLimitArgs } from '../types/exchange';
2
+ import type { Position, FundingRateHistory } from '../types/common';
3
+ import { MarginMode } from '../types/common';
3
4
  import { BinanceFuturesHttpClient } from '../http/BinanceFuturesHttpClient';
4
5
  import { BinanceBaseClient } from './BinanceBaseClient';
5
6
  declare class BinanceFutures extends BinanceBaseClient<BinanceFuturesHttpClient> {
6
7
  protected readonly marketLabel = "futures";
7
8
  protected readonly klineLimit = 499;
8
9
  constructor(args: ExchangeArgs);
10
+ fetchFundingRateHistory(symbol: string, options?: FetchPageWithLimitArgs): Promise<FundingRateHistory[]>;
9
11
  fetchPosition(symbol: string): Promise<Position>;
10
12
  setLeverage(leverage: number, symbol: string): Promise<void>;
11
13
  setMarginMode(marginMode: MarginMode, symbol: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"BinanceFutures.d.ts","sourceRoot":"","sources":["../../src/exchanges/BinanceFutures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5D,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,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
+ {"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,6 +1,7 @@
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");
@@ -10,21 +11,26 @@ class BinanceFutures extends BinanceBaseClient_1.BinanceBaseClient {
10
11
  marketLabel = 'futures';
11
12
  klineLimit = binance_1.BINANCE_KLINE_LIMIT_FUTURES;
12
13
  constructor(args) {
13
- const baseUrl = args.config.demoMode === true
14
+ const baseUrl = args.config.isDemoMode === true
14
15
  ? binance_1.BINANCE_DEMO_FUTURES_BASE_URL
15
16
  : binance_1.BINANCE_FUTURES_BASE_URL;
16
- const wsCombinedUrl = args.config.demoMode === true
17
- ? binance_1.BINANCE_DEMO_FUTURES_WS_COMBINED_URL
18
- : binance_1.BINANCE_FUTURES_WS_COMBINED_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;
19
20
  const httpClient = new BinanceFuturesHttpClient_1.BinanceFuturesHttpClient({
20
21
  baseUrl,
21
22
  apiKey: args.config.apiKey,
22
23
  secret: args.config.secret,
23
24
  logger: args.logger,
24
25
  });
25
- const publicStream = new BinanceFuturesPublicStream_1.BinanceFuturesPublicStream(wsCombinedUrl, args.logger, args.onNotify);
26
+ const publicStream = new BinanceFuturesPublicStream_1.BinanceFuturesPublicStream(webSocketCombinedUrl, args.logger, args.onNotify);
26
27
  super(args, httpClient, publicStream);
27
28
  }
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);
33
+ }
28
34
  async fetchPosition(symbol) {
29
35
  this.logger.debug(`Fetching position for ${symbol}`);
30
36
  const rawPositionList = await this.httpClient.fetchPositionRisk(symbol);
@@ -40,7 +46,7 @@ class BinanceFutures extends BinanceBaseClient_1.BinanceBaseClient {
40
46
  }
41
47
  async setMarginMode(marginMode, symbol) {
42
48
  this.logger.info(`Setting margin mode to ${marginMode} for ${symbol}`);
43
- const marginType = marginMode === 'isolated' ? 'ISOLATED' : 'CROSSED';
49
+ const marginType = marginMode === common_1.MarginMode.Isolated ? 'ISOLATED' : 'CROSSED';
44
50
  await this.httpClient.setMarginType(symbol, marginType);
45
51
  }
46
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BinanceFutures.js","sourceRoot":"","sources":["../../src/exchanges/BinanceFutures.ts"],"names":[],"mappings":";;;AAEA,+EAA4E;AAC5E,wEAA4E;AAC5E,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,QAAQ,KAAK,IAAI;YAC3C,CAAC,CAAC,uCAA6B;YAC/B,CAAC,CAAC,kCAAwB,CAAC;QAE7B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI;YACjD,CAAC,CAAC,8CAAoC;YACtC,CAAC,CAAC,yCAA+B,CAAC;QAEpC,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,aAAa,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/F,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IACxC,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,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;CACF;AAEQ,wCAAc"}
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,11 +1,13 @@
1
1
  import type { ExchangeArgs } from '../types/exchange';
2
- import type { Position, MarginMode } from '../types/common';
2
+ import type { Position, FundingRateHistory } from '../types/common';
3
+ import { MarginMode } from '../types/common';
3
4
  import { BinanceSpotHttpClient } from '../http/BinanceSpotHttpClient';
4
5
  import { BinanceBaseClient } from './BinanceBaseClient';
5
6
  declare class BinanceSpot extends BinanceBaseClient<BinanceSpotHttpClient> {
6
7
  protected readonly marketLabel = "spot";
7
8
  protected readonly klineLimit = 1000;
8
9
  constructor(args: ExchangeArgs);
10
+ fetchFundingRateHistory(): Promise<FundingRateHistory[]>;
9
11
  fetchPosition(_symbol: string): Promise<Position>;
10
12
  setLeverage(_leverage: number, _symbol: string): Promise<void>;
11
13
  setMarginMode(_marginMode: MarginMode, _symbol: string): Promise<void>;