@solncebro/exchange-engine 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/README.md +7 -7
- package/dist/auth/binanceAuth.js +3 -6
- package/dist/auth/binanceAuth.js.map +1 -1
- package/dist/auth/bybitAuth.d.ts +0 -1
- package/dist/auth/bybitAuth.d.ts.map +1 -1
- package/dist/auth/bybitAuth.js +2 -9
- package/dist/auth/bybitAuth.js.map +1 -1
- package/dist/constants/binance.d.ts +8 -5
- package/dist/constants/binance.d.ts.map +1 -1
- package/dist/constants/binance.js +10 -23
- package/dist/constants/binance.js.map +1 -1
- package/dist/constants/bybit.d.ts +7 -9
- package/dist/constants/bybit.d.ts.map +1 -1
- package/dist/constants/bybit.js +10 -13
- package/dist/constants/bybit.js.map +1 -1
- package/dist/constants/mappings.d.ts +9 -0
- package/dist/constants/mappings.d.ts.map +1 -0
- package/dist/constants/mappings.js +40 -0
- package/dist/constants/mappings.js.map +1 -0
- package/dist/exchanges/BaseExchangeClient.d.ts +37 -0
- package/dist/exchanges/BaseExchangeClient.d.ts.map +1 -0
- package/dist/exchanges/BaseExchangeClient.js +91 -0
- package/dist/exchanges/BaseExchangeClient.js.map +1 -0
- package/dist/exchanges/BinanceBaseClient.d.ts +21 -0
- package/dist/exchanges/BinanceBaseClient.d.ts.map +1 -0
- package/dist/exchanges/BinanceBaseClient.js +64 -0
- package/dist/exchanges/BinanceBaseClient.js.map +1 -0
- package/dist/exchanges/BinanceFutures.d.ts +9 -21
- package/dist/exchanges/BinanceFutures.d.ts.map +1 -1
- package/dist/exchanges/BinanceFutures.js +23 -94
- package/dist/exchanges/BinanceFutures.js.map +1 -1
- package/dist/exchanges/BinanceSpot.d.ts +9 -21
- package/dist/exchanges/BinanceSpot.d.ts.map +1 -1
- package/dist/exchanges/BinanceSpot.js +16 -94
- package/dist/exchanges/BinanceSpot.js.map +1 -1
- package/dist/exchanges/BybitLinear.d.ts +19 -20
- package/dist/exchanges/BybitLinear.d.ts.map +1 -1
- package/dist/exchanges/BybitLinear.js +66 -71
- package/dist/exchanges/BybitLinear.js.map +1 -1
- package/dist/exchanges/BybitSpot.d.ts +17 -19
- package/dist/exchanges/BybitSpot.d.ts.map +1 -1
- package/dist/exchanges/BybitSpot.js +42 -64
- package/dist/exchanges/BybitSpot.js.map +1 -1
- package/dist/exchanges/Exchange.d.ts +1 -1
- package/dist/exchanges/Exchange.d.ts.map +1 -1
- package/dist/exchanges/Exchange.js +3 -2
- package/dist/exchanges/Exchange.js.map +1 -1
- package/dist/http/BaseHttpClient.d.ts +10 -1
- package/dist/http/BaseHttpClient.d.ts.map +1 -1
- package/dist/http/BaseHttpClient.js +27 -5
- package/dist/http/BaseHttpClient.js.map +1 -1
- package/dist/http/BinanceBaseHttpClient.d.ts +49 -0
- package/dist/http/BinanceBaseHttpClient.d.ts.map +1 -0
- package/dist/http/BinanceBaseHttpClient.js +86 -0
- package/dist/http/BinanceBaseHttpClient.js.map +1 -0
- package/dist/http/BinanceFuturesHttpClient.d.ts +11 -40
- package/dist/http/BinanceFuturesHttpClient.d.ts.map +1 -1
- package/dist/http/BinanceFuturesHttpClient.js +38 -185
- package/dist/http/BinanceFuturesHttpClient.js.map +1 -1
- package/dist/http/BinanceSpotHttpClient.d.ts +5 -24
- package/dist/http/BinanceSpotHttpClient.d.ts.map +1 -1
- package/dist/http/BinanceSpotHttpClient.js +15 -90
- package/dist/http/BinanceSpotHttpClient.js.map +1 -1
- package/dist/http/BybitHttpClient.d.ts +82 -134
- package/dist/http/BybitHttpClient.d.ts.map +1 -1
- package/dist/http/BybitHttpClient.js +61 -94
- package/dist/http/BybitHttpClient.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/normalizers/binanceNormalizer.d.ts +29 -19
- package/dist/normalizers/binanceNormalizer.d.ts.map +1 -1
- package/dist/normalizers/binanceNormalizer.js +55 -35
- package/dist/normalizers/binanceNormalizer.js.map +1 -1
- package/dist/normalizers/bybitNormalizer.d.ts +25 -19
- package/dist/normalizers/bybitNormalizer.d.ts.map +1 -1
- package/dist/normalizers/bybitNormalizer.js +60 -45
- package/dist/normalizers/bybitNormalizer.js.map +1 -1
- package/dist/precision/precision.d.ts +3 -3
- package/dist/precision/precision.d.ts.map +1 -1
- package/dist/precision/precision.js +4 -4
- package/dist/precision/precision.js.map +1 -1
- package/dist/types/common.d.ts +57 -22
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +40 -0
- package/dist/types/common.js.map +1 -1
- package/dist/types/exchange.d.ts +14 -8
- package/dist/types/exchange.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/stream.d.ts +9 -0
- package/dist/types/stream.d.ts.map +1 -0
- package/dist/types/stream.js +3 -0
- package/dist/types/stream.js.map +1 -0
- package/dist/utils/crypto.d.ts +2 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +11 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/httpParams.d.ts +3 -0
- package/dist/utils/httpParams.d.ts.map +1 -0
- package/dist/utils/httpParams.js +15 -0
- package/dist/utils/httpParams.js.map +1 -0
- package/dist/utils/klineLoader.d.ts +10 -0
- package/dist/utils/klineLoader.d.ts.map +1 -0
- package/dist/utils/klineLoader.js +19 -0
- package/dist/utils/klineLoader.js.map +1 -0
- package/dist/ws/BinanceFuturesPublicStream.d.ts +8 -7
- package/dist/ws/BinanceFuturesPublicStream.d.ts.map +1 -1
- package/dist/ws/BinanceFuturesPublicStream.js +49 -79
- package/dist/ws/BinanceFuturesPublicStream.js.map +1 -1
- package/dist/ws/BinanceSpotPublicStream.d.ts +7 -5
- package/dist/ws/BinanceSpotPublicStream.d.ts.map +1 -1
- package/dist/ws/BinanceSpotPublicStream.js +24 -31
- package/dist/ws/BinanceSpotPublicStream.js.map +1 -1
- package/dist/ws/BinanceUserDataStream.d.ts +3 -3
- package/dist/ws/BinanceUserDataStream.d.ts.map +1 -1
- package/dist/ws/BinanceUserDataStream.js +10 -10
- package/dist/ws/BinanceUserDataStream.js.map +1 -1
- package/dist/ws/BybitPrivateStream.d.ts +1 -1
- package/dist/ws/BybitPrivateStream.d.ts.map +1 -1
- package/dist/ws/BybitPrivateStream.js +12 -29
- package/dist/ws/BybitPrivateStream.js.map +1 -1
- package/dist/ws/BybitPublicStream.d.ts +5 -4
- package/dist/ws/BybitPublicStream.d.ts.map +1 -1
- package/dist/ws/BybitPublicStream.js +18 -24
- package/dist/ws/BybitPublicStream.js.map +1 -1
- package/dist/ws/BybitTradeStream.d.ts +4 -2
- package/dist/ws/BybitTradeStream.d.ts.map +1 -1
- package/dist/ws/BybitTradeStream.js +32 -44
- package/dist/ws/BybitTradeStream.js.map +1 -1
- package/dist/ws/binanceWebSocketUtils.d.ts +4 -0
- package/dist/ws/binanceWebSocketUtils.d.ts.map +1 -0
- package/dist/ws/binanceWebSocketUtils.js +7 -0
- package/dist/ws/binanceWebSocketUtils.js.map +1 -0
- package/dist/ws/bybitWebSocketUtils.d.ts +28 -0
- package/dist/ws/bybitWebSocketUtils.d.ts.map +1 -0
- package/dist/ws/bybitWebSocketUtils.js +29 -0
- package/dist/ws/bybitWebSocketUtils.js.map +1 -0
- package/package.json +21 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,46 @@ 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
|
+
|
|
32
|
+
## [0.1.2] - 2026-03-03
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
- Test suite: 204 tests (Jest + ts-jest) covering auth, HTTP clients, normalizers, WebSocket utils, exchange clients, precision formatting, and public exports
|
|
36
|
+
- HTTP retry for GET requests with exponential backoff
|
|
37
|
+
- `package.json` exports map and `sideEffects: false` for tree-shaking support
|
|
38
|
+
- Test gate in `prepublishOnly` script
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
- README: corrected Kline field names (`openTimestamp`/`closeTimestamp`), Map API for markets, `FetchKlinesArgs` parameter type
|
|
42
|
+
|
|
43
|
+
### Internal
|
|
44
|
+
- Utility modules: `crypto.ts`, `httpParams.ts`, `klineLoader.ts`
|
|
45
|
+
- WebSocket helpers: `binanceWsUtils.ts`, `bybitWsUtils.ts`
|
|
46
|
+
- Base classes: `BaseExchangeClient`, `BinanceBaseClient`, `BinanceBaseHttpClient`
|
|
47
|
+
|
|
8
48
|
## [0.1.0] - 2026-02-25
|
|
9
49
|
|
|
10
50
|
### Added
|
|
@@ -51,4 +91,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
51
91
|
- Private endpoints (balance, position, orders) require valid credentials
|
|
52
92
|
- WebSocket subscriptions are stateless and can be re-established on reconnect
|
|
53
93
|
|
|
94
|
+
[0.2.0]: https://github.com/solncebro/exchange-engine/releases/tag/v0.2.0
|
|
95
|
+
[0.1.2]: https://github.com/solncebro/exchange-engine/releases/tag/v0.1.2
|
|
54
96
|
[0.1.0]: https://github.com/solncebro/exchange-engine/releases/tag/v0.1.0
|
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ await exchange.futures.loadMarkets();
|
|
|
37
37
|
|
|
38
38
|
// Fetch historical klines
|
|
39
39
|
const klines = await exchange.futures.fetchKlines('BTCUSDT', '1h', { limit: 100 });
|
|
40
|
-
console.log(klines[0]); // {
|
|
40
|
+
console.log(klines[0]); // { openTimestamp, open, high, low, close, volume, ... }
|
|
41
41
|
|
|
42
42
|
// Get current tickers
|
|
43
43
|
const tickers = await exchange.futures.fetchTickers();
|
|
@@ -47,7 +47,7 @@ exchange.futures.subscribeKlines({
|
|
|
47
47
|
symbol: 'BTCUSDT',
|
|
48
48
|
interval: '1m',
|
|
49
49
|
handler: (kline) => {
|
|
50
|
-
console.log(`[${kline.
|
|
50
|
+
console.log(`[${kline.openTimestamp}] ${kline.close}`);
|
|
51
51
|
},
|
|
52
52
|
});
|
|
53
53
|
|
|
@@ -102,7 +102,7 @@ All four classes (BinanceFutures, BinanceSpot, BybitLinear, BybitSpot) implement
|
|
|
102
102
|
await client.loadMarkets(reload?: boolean): Promise<MarketBySymbol>;
|
|
103
103
|
|
|
104
104
|
// Get all markets (already loaded)
|
|
105
|
-
const markets = client.markets; //
|
|
105
|
+
const markets = client.markets; // Map<string, Market>
|
|
106
106
|
|
|
107
107
|
// Fetch current ticker prices
|
|
108
108
|
await client.fetchTickers(): Promise<TickerBySymbol>;
|
|
@@ -111,7 +111,7 @@ await client.fetchTickers(): Promise<TickerBySymbol>;
|
|
|
111
111
|
await client.fetchKlines(
|
|
112
112
|
symbol: string,
|
|
113
113
|
interval: KlineInterval,
|
|
114
|
-
|
|
114
|
+
options?: FetchKlinesArgs
|
|
115
115
|
): Promise<Kline[]>;
|
|
116
116
|
|
|
117
117
|
// Get account balance
|
|
@@ -176,13 +176,13 @@ All types are normalized across exchanges. No raw exchange formats leak out.
|
|
|
176
176
|
```typescript
|
|
177
177
|
// Candlestick
|
|
178
178
|
interface Kline {
|
|
179
|
-
|
|
179
|
+
openTimestamp: number;
|
|
180
180
|
open: number;
|
|
181
181
|
high: number;
|
|
182
182
|
low: number;
|
|
183
183
|
close: number;
|
|
184
184
|
volume: number;
|
|
185
|
-
|
|
185
|
+
closeTimestamp: number;
|
|
186
186
|
quoteVolume: number;
|
|
187
187
|
trades: number;
|
|
188
188
|
}
|
|
@@ -314,7 +314,7 @@ These differences are transparent — the same code works for both.
|
|
|
314
314
|
2. **Reuse markets** — call `loadMarkets()` once at startup
|
|
315
315
|
```typescript
|
|
316
316
|
await client.loadMarkets();
|
|
317
|
-
const symbols =
|
|
317
|
+
const symbols = [...client.markets.keys()];
|
|
318
318
|
```
|
|
319
319
|
|
|
320
320
|
3. **Limit historical data** — fetch only needed range
|
package/dist/auth/binanceAuth.js
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.buildBinanceSignature = buildBinanceSignature;
|
|
7
4
|
exports.buildBinanceSignedParams = buildBinanceSignedParams;
|
|
8
5
|
exports.buildBinanceAuthHeaders = buildBinanceAuthHeaders;
|
|
9
|
-
const crypto_1 =
|
|
6
|
+
const crypto_1 = require("../utils/crypto");
|
|
10
7
|
function buildBinanceSignature(queryString, secret) {
|
|
11
|
-
return crypto_1.
|
|
8
|
+
return (0, crypto_1.hmacSha256)(queryString, secret);
|
|
12
9
|
}
|
|
13
10
|
function buildBinanceSignedParams(args) {
|
|
14
11
|
const { params, secret, recvWindow = 5000 } = args;
|
|
@@ -18,7 +15,7 @@ function buildBinanceSignedParams(args) {
|
|
|
18
15
|
timestamp,
|
|
19
16
|
recvWindow,
|
|
20
17
|
};
|
|
21
|
-
const queryString = new URLSearchParams(Object.entries(signedParams).map(([
|
|
18
|
+
const queryString = new URLSearchParams(Object.entries(signedParams).map(([key, value]) => [key, String(value)])).toString();
|
|
22
19
|
const signature = buildBinanceSignature(queryString, secret);
|
|
23
20
|
signedParams.signature = signature;
|
|
24
21
|
return signedParams;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binanceAuth.js","sourceRoot":"","sources":["../../src/auth/binanceAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"binanceAuth.js","sourceRoot":"","sources":["../../src/auth/binanceAuth.ts"],"names":[],"mappings":";;AAEA,sDAEC;AAQD,4DAkBC;AAED,0DAIC;AApCD,4CAA6C;AAE7C,SAAgB,qBAAqB,CAAC,WAAmB,EAAE,MAAc;IACvE,OAAO,IAAA,mBAAU,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAQD,SAAgB,wBAAwB,CAAC,IAAkC;IACzE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAoC;QACpD,GAAG,MAAM;QACT,SAAS;QACT,UAAU;KACX,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,eAAe,CACrC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAuB,CAC/F,CAAC,QAAQ,EAAE,CAAC;IAEb,MAAM,SAAS,GAAG,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE7D,YAAY,CAAC,SAAS,GAAG,SAAS,CAAC;IAEnC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAgB,uBAAuB,CAAC,MAAc;IACpD,OAAO;QACL,cAAc,EAAE,MAAM;KACvB,CAAC;AACJ,CAAC"}
|
package/dist/auth/bybitAuth.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bybitAuth.d.ts","sourceRoot":"","sources":["../../src/auth/bybitAuth.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAW7F
|
|
1
|
+
{"version":3,"file":"bybitAuth.d.ts","sourceRoot":"","sources":["../../src/auth/bybitAuth.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAW7F"}
|
package/dist/auth/bybitAuth.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.buildBybitAuthHeaders = buildBybitAuthHeaders;
|
|
7
|
-
|
|
8
|
-
const crypto_1 = __importDefault(require("crypto"));
|
|
4
|
+
const crypto_1 = require("../utils/crypto");
|
|
9
5
|
function buildBybitAuthHeaders(args) {
|
|
10
6
|
const { apiKey, secret, timestamp, recvWindow = 5000, payload } = args;
|
|
11
7
|
const signPayload = `${timestamp}${apiKey}${recvWindow}${payload}`;
|
|
12
|
-
const signature = crypto_1.
|
|
8
|
+
const signature = (0, crypto_1.hmacSha256)(signPayload, secret);
|
|
13
9
|
return {
|
|
14
10
|
'X-BAPI-API-KEY': apiKey,
|
|
15
11
|
'X-BAPI-TIMESTAMP': String(timestamp),
|
|
@@ -17,7 +13,4 @@ function buildBybitAuthHeaders(args) {
|
|
|
17
13
|
'X-BAPI-RECV-WINDOW': String(recvWindow),
|
|
18
14
|
};
|
|
19
15
|
}
|
|
20
|
-
function getCurrentTimestamp() {
|
|
21
|
-
return Date.now();
|
|
22
|
-
}
|
|
23
16
|
//# sourceMappingURL=bybitAuth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bybitAuth.js","sourceRoot":"","sources":["../../src/auth/bybitAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bybitAuth.js","sourceRoot":"","sources":["../../src/auth/bybitAuth.ts"],"names":[],"mappings":";;AAUA,sDAWC;AArBD,4CAA6C;AAU7C,SAAgB,qBAAqB,CAAC,IAA+B;IACnE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACvE,MAAM,WAAW,GAAG,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,EAAE,CAAC;IACnE,MAAM,SAAS,GAAG,IAAA,mBAAU,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAElD,OAAO;QACL,gBAAgB,EAAE,MAAM;QACxB,kBAAkB,EAAE,MAAM,CAAC,SAAS,CAAC;QACrC,aAAa,EAAE,SAAS;QACxB,oBAAoB,EAAE,MAAM,CAAC,UAAU,CAAC;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
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
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
3
|
+
export declare const BINANCE_DEMO_SPOT_BASE_URL = "https://demo-api.binance.com";
|
|
4
|
+
export declare const BINANCE_DEMO_FUTURES_BASE_URL = "https://demo-fapi.binance.com";
|
|
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";
|
|
7
9
|
export declare const BINANCE_REQUEST_TIMEOUT = 30000;
|
|
8
|
-
export declare const
|
|
10
|
+
export declare const BINANCE_KLINE_LIMIT_SPOT = 1000;
|
|
11
|
+
export declare const BINANCE_KLINE_LIMIT_FUTURES = 499;
|
|
9
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;
|
|
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,28 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
|
|
12
|
-
exports.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
'5m': '5m',
|
|
16
|
-
'15m': '15m',
|
|
17
|
-
'30m': '30m',
|
|
18
|
-
'1h': '1h',
|
|
19
|
-
'2h': '2h',
|
|
20
|
-
'4h': '4h',
|
|
21
|
-
'6h': '6h',
|
|
22
|
-
'12h': '12h',
|
|
23
|
-
'1d': '1d',
|
|
24
|
-
'3d': '3d',
|
|
25
|
-
'1w': '1w',
|
|
26
|
-
'1M': '1M',
|
|
27
|
-
};
|
|
6
|
+
exports.BINANCE_DEMO_SPOT_BASE_URL = 'https://demo-api.binance.com';
|
|
7
|
+
exports.BINANCE_DEMO_FUTURES_BASE_URL = 'https://demo-fapi.binance.com';
|
|
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
|
+
exports.BINANCE_REQUEST_TIMEOUT = 30000;
|
|
13
|
+
exports.BINANCE_KLINE_LIMIT_SPOT = 1000;
|
|
14
|
+
exports.BINANCE_KLINE_LIMIT_FUTURES = 499;
|
|
28
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;
|
|
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,13 +1,11 @@
|
|
|
1
1
|
export declare const BYBIT_BASE_URL = "https://api.bybit.com";
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const BYBIT_PRIVATE_WS_TESTNET_URL = "wss://stream-testnet.bybit.com/v5/private";
|
|
10
|
-
export declare const BYBIT_TRADE_WS_TESTNET_URL = "wss://stream-testnet.bybit.com/v5/trade";
|
|
2
|
+
export declare const BYBIT_DEMO_BASE_URL = "https://api-demo.bybit.com";
|
|
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";
|
|
11
9
|
export declare const BYBIT_RECV_WINDOW = 7000;
|
|
12
10
|
export declare const BYBIT_REQUEST_TIMEOUT = 30000;
|
|
13
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;
|
|
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"}
|
package/dist/constants/bybit.js
CHANGED
|
@@ -1,19 +1,16 @@
|
|
|
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.
|
|
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
|
-
exports.
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.
|
|
11
|
-
exports.
|
|
12
|
-
exports.
|
|
13
|
-
exports.
|
|
14
|
-
exports.BYBIT_RECV_WINDOW = 7000; // milliseconds
|
|
15
|
-
exports.BYBIT_REQUEST_TIMEOUT = 30000; // 30 seconds
|
|
16
|
-
// Маппинг KlineInterval -> формат Bybit (числа минут или D/W/M)
|
|
5
|
+
exports.BYBIT_DEMO_BASE_URL = 'https://api-demo.bybit.com';
|
|
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
|
+
exports.BYBIT_RECV_WINDOW = 7000;
|
|
13
|
+
exports.BYBIT_REQUEST_TIMEOUT = 30000;
|
|
17
14
|
exports.BYBIT_KLINE_INTERVAL = {
|
|
18
15
|
'1m': '1',
|
|
19
16
|
'3m': '3',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bybit.js","sourceRoot":"","sources":["../../src/constants/bybit.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG,uBAAuB,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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ExchangeClient, ExchangeArgs, FetchPageWithLimitArgs, SubscribeKlinesArgs } from '../types/exchange';
|
|
2
|
+
import type { ExchangeLogger, Kline, KlineInterval, TradeSymbolBySymbol, TickerBySymbol, BalanceByAsset } from '../types/common';
|
|
3
|
+
import type { PublicStreamLike } from '../types/stream';
|
|
4
|
+
declare abstract class BaseExchangeClient implements ExchangeClient {
|
|
5
|
+
readonly apiKey: string;
|
|
6
|
+
readonly tradeSymbols: TradeSymbolBySymbol;
|
|
7
|
+
protected readonly logger: ExchangeLogger;
|
|
8
|
+
protected readonly onNotify?: (message: string) => void | Promise<void>;
|
|
9
|
+
protected abstract readonly marketLabel: string;
|
|
10
|
+
protected abstract readonly klineLimit: number;
|
|
11
|
+
constructor(args: ExchangeArgs);
|
|
12
|
+
protected abstract getPublicStream(): PublicStreamLike;
|
|
13
|
+
protected abstract fetchAndNormalizeTradeSymbols(): Promise<TradeSymbolBySymbol>;
|
|
14
|
+
protected abstract fetchAndNormalizeTickers(): Promise<TickerBySymbol>;
|
|
15
|
+
protected abstract fetchAndNormalizeKlines(symbol: string, interval: KlineInterval, options?: FetchPageWithLimitArgs): Promise<Kline[]>;
|
|
16
|
+
protected abstract fetchAndNormalizeBalance(): Promise<BalanceByAsset>;
|
|
17
|
+
loadTradeSymbols(shouldReload?: boolean): Promise<TradeSymbolBySymbol>;
|
|
18
|
+
fetchTickers(): Promise<TickerBySymbol>;
|
|
19
|
+
fetchKlines(symbol: string, interval: KlineInterval, options?: FetchPageWithLimitArgs): Promise<Kline[]>;
|
|
20
|
+
fetchAllKlines(symbolList: string[], interval: KlineInterval): Promise<Map<string, Kline[]>>;
|
|
21
|
+
fetchBalance(): Promise<BalanceByAsset>;
|
|
22
|
+
watchTickers(): AsyncGenerator<TickerBySymbol>;
|
|
23
|
+
subscribeKlines(args: SubscribeKlinesArgs): void;
|
|
24
|
+
unsubscribeKlines(args: SubscribeKlinesArgs): void;
|
|
25
|
+
amountToPrecision(symbol: string, amount: number): string;
|
|
26
|
+
priceToPrecision(symbol: string, price: number): string;
|
|
27
|
+
getMinOrderQty(symbol: string): number;
|
|
28
|
+
getMinNotional(symbol: string): number;
|
|
29
|
+
abstract createOrderWebSocket(...args: Parameters<ExchangeClient['createOrderWebSocket']>): ReturnType<ExchangeClient['createOrderWebSocket']>;
|
|
30
|
+
abstract fetchFundingRateHistory(...args: Parameters<ExchangeClient['fetchFundingRateHistory']>): ReturnType<ExchangeClient['fetchFundingRateHistory']>;
|
|
31
|
+
abstract fetchPosition(...args: Parameters<ExchangeClient['fetchPosition']>): ReturnType<ExchangeClient['fetchPosition']>;
|
|
32
|
+
abstract setLeverage(...args: Parameters<ExchangeClient['setLeverage']>): ReturnType<ExchangeClient['setLeverage']>;
|
|
33
|
+
abstract setMarginMode(...args: Parameters<ExchangeClient['setMarginMode']>): ReturnType<ExchangeClient['setMarginMode']>;
|
|
34
|
+
abstract close(): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
export { BaseExchangeClient };
|
|
37
|
+
//# sourceMappingURL=BaseExchangeClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseExchangeClient.d.ts","sourceRoot":"","sources":["../../src/exchanges/BaseExchangeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseExchangeClient = void 0;
|
|
4
|
+
const klineLoader_1 = require("../utils/klineLoader");
|
|
5
|
+
const precision_1 = require("../precision/precision");
|
|
6
|
+
class BaseExchangeClient {
|
|
7
|
+
apiKey;
|
|
8
|
+
tradeSymbols = new Map();
|
|
9
|
+
logger;
|
|
10
|
+
onNotify;
|
|
11
|
+
constructor(args) {
|
|
12
|
+
this.apiKey = args.config.apiKey;
|
|
13
|
+
this.logger = args.logger;
|
|
14
|
+
this.onNotify = args.onNotify;
|
|
15
|
+
}
|
|
16
|
+
async loadTradeSymbols(shouldReload = false) {
|
|
17
|
+
if (!shouldReload && this.tradeSymbols.size > 0) {
|
|
18
|
+
return this.tradeSymbols;
|
|
19
|
+
}
|
|
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
|
+
}
|
|
25
|
+
this.logger.info(`Loaded ${this.tradeSymbols.size} ${this.marketLabel} trade symbols`);
|
|
26
|
+
return this.tradeSymbols;
|
|
27
|
+
}
|
|
28
|
+
async fetchTickers() {
|
|
29
|
+
this.logger.debug(`Fetching ${this.marketLabel} tickers`);
|
|
30
|
+
return this.fetchAndNormalizeTickers();
|
|
31
|
+
}
|
|
32
|
+
async fetchKlines(symbol, interval, options) {
|
|
33
|
+
this.logger.debug(`Fetching klines for ${symbol} ${interval}`);
|
|
34
|
+
return this.fetchAndNormalizeKlines(symbol, interval, options);
|
|
35
|
+
}
|
|
36
|
+
async fetchAllKlines(symbolList, interval) {
|
|
37
|
+
return (0, klineLoader_1.loadKlinesInChunks)({
|
|
38
|
+
fetchKlines: (symbol) => this.fetchKlines(symbol, interval, { limit: this.klineLimit }),
|
|
39
|
+
symbolList,
|
|
40
|
+
logger: this.logger,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async fetchBalance() {
|
|
44
|
+
this.logger.debug('Fetching balance');
|
|
45
|
+
return this.fetchAndNormalizeBalance();
|
|
46
|
+
}
|
|
47
|
+
async *watchTickers() {
|
|
48
|
+
this.getPublicStream().subscribeAllTickers(() => { });
|
|
49
|
+
yield await this.fetchTickers();
|
|
50
|
+
}
|
|
51
|
+
subscribeKlines(args) {
|
|
52
|
+
this.getPublicStream().subscribeKlines(args.symbol, args.interval, args.handler);
|
|
53
|
+
}
|
|
54
|
+
unsubscribeKlines(args) {
|
|
55
|
+
this.getPublicStream().unsubscribeKlines(args.symbol, args.interval, args.handler);
|
|
56
|
+
}
|
|
57
|
+
amountToPrecision(symbol, amount) {
|
|
58
|
+
const tradeSymbol = this.tradeSymbols.get(symbol);
|
|
59
|
+
if (!tradeSymbol) {
|
|
60
|
+
this.logger.warn(`TradeSymbol ${symbol} not found, using raw amount`);
|
|
61
|
+
return String(amount);
|
|
62
|
+
}
|
|
63
|
+
return (0, precision_1.amountToPrecision)(tradeSymbol, amount);
|
|
64
|
+
}
|
|
65
|
+
priceToPrecision(symbol, price) {
|
|
66
|
+
const tradeSymbol = this.tradeSymbols.get(symbol);
|
|
67
|
+
if (!tradeSymbol) {
|
|
68
|
+
this.logger.warn(`TradeSymbol ${symbol} not found, using raw price`);
|
|
69
|
+
return String(price);
|
|
70
|
+
}
|
|
71
|
+
return (0, precision_1.priceToPrecision)(tradeSymbol, price);
|
|
72
|
+
}
|
|
73
|
+
getMinOrderQty(symbol) {
|
|
74
|
+
const tradeSymbol = this.tradeSymbols.get(symbol);
|
|
75
|
+
if (!tradeSymbol) {
|
|
76
|
+
this.logger.warn(`TradeSymbol ${symbol} not found, returning 0 for minOrderQty`);
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
79
|
+
return parseFloat(tradeSymbol.filter.minQty);
|
|
80
|
+
}
|
|
81
|
+
getMinNotional(symbol) {
|
|
82
|
+
const tradeSymbol = this.tradeSymbols.get(symbol);
|
|
83
|
+
if (!tradeSymbol) {
|
|
84
|
+
this.logger.warn(`TradeSymbol ${symbol} not found, returning 0 for minNotional`);
|
|
85
|
+
return 0;
|
|
86
|
+
}
|
|
87
|
+
return parseFloat(tradeSymbol.filter.minNotional);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.BaseExchangeClient = BaseExchangeClient;
|
|
91
|
+
//# sourceMappingURL=BaseExchangeClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseExchangeClient.js","sourceRoot":"","sources":["../../src/exchanges/BaseExchangeClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { CreateOrderWebSocketArgs, ExchangeArgs, FetchPageWithLimitArgs } from '../types/exchange';
|
|
2
|
+
import type { Kline, KlineInterval, TradeSymbolBySymbol, TickerBySymbol, BalanceByAsset, Order } from '../types/common';
|
|
3
|
+
import type { PublicStreamLike } from '../types/stream';
|
|
4
|
+
import type { BinanceBaseHttpClient } from '../http/BinanceBaseHttpClient';
|
|
5
|
+
import { BinanceUserDataStream } from '../ws/BinanceUserDataStream';
|
|
6
|
+
import { BaseExchangeClient } from './BaseExchangeClient';
|
|
7
|
+
declare abstract class BinanceBaseClient<T extends BinanceBaseHttpClient> extends BaseExchangeClient {
|
|
8
|
+
protected readonly httpClient: T;
|
|
9
|
+
protected userDataStream: BinanceUserDataStream | null;
|
|
10
|
+
private readonly publicStream;
|
|
11
|
+
constructor(args: ExchangeArgs, httpClient: T, publicStream: PublicStreamLike);
|
|
12
|
+
protected getPublicStream(): PublicStreamLike;
|
|
13
|
+
protected fetchAndNormalizeTradeSymbols(): Promise<TradeSymbolBySymbol>;
|
|
14
|
+
protected fetchAndNormalizeTickers(): Promise<TickerBySymbol>;
|
|
15
|
+
protected fetchAndNormalizeKlines(symbol: string, interval: KlineInterval, options?: FetchPageWithLimitArgs): Promise<Kline[]>;
|
|
16
|
+
protected fetchAndNormalizeBalance(): Promise<BalanceByAsset>;
|
|
17
|
+
createOrderWebSocket(args: CreateOrderWebSocketArgs): Promise<Order>;
|
|
18
|
+
close(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export { BinanceBaseClient };
|
|
21
|
+
//# sourceMappingURL=BinanceBaseClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|