ccxt 4.5.63 → 4.5.64
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/README.md +6 -8
- package/dist/ccxt.browser.min.js +4 -4
- package/dist/cjs/ccxt.js +6 -12
- package/dist/cjs/src/aster.js +2 -2
- package/dist/cjs/src/base/Exchange.js +34 -3
- package/dist/cjs/src/bitget.js +5 -3
- package/dist/cjs/src/bitmex.js +1 -1
- package/dist/cjs/src/bitstamp.js +2 -1
- package/dist/cjs/src/bitvavo.js +1 -0
- package/dist/cjs/src/btcbox.js +1 -1
- package/dist/cjs/src/bullish.js +1 -1
- package/dist/cjs/src/bybiteu.js +3 -0
- package/dist/cjs/src/coinbase.js +3 -2
- package/dist/cjs/src/coinbaseinternational.js +1 -1
- package/dist/cjs/src/delta.js +23 -1
- package/dist/cjs/src/derive.js +1 -1
- package/dist/cjs/src/digifinex.js +12 -0
- package/dist/cjs/src/dydx.js +2 -2
- package/dist/cjs/src/extended.js +1 -1
- package/dist/cjs/src/gateeu.js +1 -0
- package/dist/cjs/src/grvt.js +1 -1
- package/dist/cjs/src/hashkey.js +127 -6
- package/dist/cjs/src/hibachi.js +20 -10
- package/dist/cjs/src/hyperliquid.js +1 -1
- package/dist/cjs/src/kraken.js +2 -0
- package/dist/cjs/src/kucoin.js +1 -1
- package/dist/cjs/src/kucoineu.js +3 -0
- package/dist/cjs/src/lighter.js +6 -4
- package/dist/cjs/src/mudrex.js +1328 -0
- package/dist/cjs/src/myokx.js +3 -0
- package/dist/cjs/src/okxus.js +1 -5
- package/dist/cjs/src/onetrading.js +1 -0
- package/dist/cjs/src/pacifica.js +1 -1
- package/dist/cjs/src/poloniex.js +1 -1
- package/dist/cjs/src/pro/bingx.js +4 -2
- package/dist/cjs/src/pro/bitget.js +9 -7
- package/dist/cjs/src/pro/grvt.js +1 -1
- package/dist/cjs/src/pro/hashkey.js +1 -1
- package/dist/cjs/src/pro/kraken.js +1 -1
- package/dist/cjs/src/pro/mudrex.js +226 -0
- package/dist/cjs/src/pro/okxus.js +1 -1
- package/js/ccxt.d.ts +8 -14
- package/js/ccxt.js +6 -10
- package/js/src/abstract/binance.d.ts +3 -0
- package/js/src/abstract/binancecoinm.d.ts +3 -0
- package/js/src/abstract/binanceus.d.ts +3 -0
- package/js/src/abstract/binanceusdm.d.ts +3 -0
- package/js/src/abstract/bybit.d.ts +39 -0
- package/js/src/abstract/bybiteu.d.ts +39 -0
- package/js/src/abstract/coincheck.d.ts +3 -0
- package/js/src/abstract/coinsph.d.ts +8 -1
- package/js/src/abstract/kucoineu.js +0 -6
- package/js/src/abstract/mudrex.d.ts +33 -0
- package/js/src/aster.js +2 -2
- package/js/src/base/Exchange.d.ts +10 -1
- package/js/src/base/Exchange.js +34 -3
- package/js/src/bitget.js +5 -3
- package/js/src/bitmex.js +1 -1
- package/js/src/bitstamp.js +2 -1
- package/js/src/bitvavo.js +1 -0
- package/js/src/btcbox.js +1 -1
- package/js/src/bullish.js +1 -1
- package/js/src/bybiteu.js +3 -0
- package/js/src/coinbase.js +3 -2
- package/js/src/coinbaseinternational.js +1 -1
- package/js/src/delta.d.ts +12 -0
- package/js/src/delta.js +23 -1
- package/js/src/derive.js +1 -1
- package/js/src/digifinex.d.ts +12 -0
- package/js/src/digifinex.js +12 -0
- package/js/src/dydx.d.ts +2 -2
- package/js/src/dydx.js +2 -2
- package/js/src/extended.js +1 -1
- package/js/src/gateeu.js +1 -0
- package/js/src/grvt.d.ts +1 -1
- package/js/src/grvt.js +1 -1
- package/js/src/hashkey.d.ts +40 -3
- package/js/src/hashkey.js +127 -6
- package/js/src/hibachi.d.ts +9 -5
- package/js/src/hibachi.js +20 -10
- package/js/src/hyperliquid.js +1 -1
- package/js/src/kraken.js +2 -0
- package/js/src/kucoin.js +1 -1
- package/js/src/kucoineu.js +3 -0
- package/js/src/lighter.js +6 -4
- package/js/src/mudrex.d.ts +310 -0
- package/js/src/mudrex.js +1321 -0
- package/js/src/myokx.js +3 -0
- package/js/src/okxus.js +1 -5
- package/js/src/onetrading.js +1 -0
- package/js/src/pacifica.js +1 -1
- package/js/src/poloniex.js +1 -1
- package/js/src/pro/bingx.js +4 -2
- package/js/src/pro/bitget.js +9 -7
- package/js/src/pro/grvt.d.ts +1 -1
- package/js/src/pro/grvt.js +1 -1
- package/js/src/pro/hashkey.d.ts +1 -1
- package/js/src/pro/hashkey.js +1 -1
- package/js/src/pro/kraken.js +1 -1
- package/js/src/pro/mudrex.d.ts +23 -0
- package/js/src/pro/mudrex.js +219 -0
- package/js/src/pro/okxus.js +1 -1
- package/package.json +3 -3
- package/dist/cjs/src/abstract/coinmetro.js +0 -11
- package/dist/cjs/src/abstract/novadax.js +0 -11
- package/dist/cjs/src/ascendex.js +0 -3780
- package/dist/cjs/src/coinmetro.js +0 -2030
- package/dist/cjs/src/novadax.js +0 -1678
- package/dist/cjs/src/pro/ascendex.js +0 -1013
- package/js/src/abstract/ascendex.d.ts +0 -80
- package/js/src/abstract/coinmetro.d.ts +0 -37
- package/js/src/abstract/coinmetro.js +0 -5
- package/js/src/abstract/novadax.d.ts +0 -32
- package/js/src/abstract/novadax.js +0 -5
- package/js/src/ascendex.d.ts +0 -436
- package/js/src/ascendex.js +0 -3773
- package/js/src/coinmetro.d.ts +0 -245
- package/js/src/coinmetro.js +0 -2023
- package/js/src/novadax.d.ts +0 -279
- package/js/src/novadax.js +0 -1671
- package/js/src/pro/ascendex.d.ts +0 -99
- package/js/src/pro/ascendex.js +0 -1006
- /package/dist/cjs/src/abstract/{ascendex.js → mudrex.js} +0 -0
- /package/js/src/abstract/{ascendex.js → mudrex.js} +0 -0
package/dist/cjs/src/myokx.js
CHANGED
package/dist/cjs/src/okxus.js
CHANGED
|
@@ -34,15 +34,11 @@ class okxus extends okx["default"] {
|
|
|
34
34
|
'CORS': undefined,
|
|
35
35
|
'spot': true,
|
|
36
36
|
'margin': undefined,
|
|
37
|
-
'swap':
|
|
37
|
+
'swap': true,
|
|
38
38
|
'future': false,
|
|
39
39
|
'option': false,
|
|
40
40
|
},
|
|
41
41
|
'features': {
|
|
42
|
-
'swap': {
|
|
43
|
-
'linear': undefined,
|
|
44
|
-
'inverse': undefined,
|
|
45
|
-
},
|
|
46
42
|
'future': {
|
|
47
43
|
'linear': undefined,
|
|
48
44
|
'inverse': undefined,
|
package/dist/cjs/src/pacifica.js
CHANGED
package/dist/cjs/src/poloniex.js
CHANGED
|
@@ -985,7 +985,7 @@ class bingx extends bingx$1["default"] {
|
|
|
985
985
|
}
|
|
986
986
|
const uuid = this.uuid();
|
|
987
987
|
let baseUrl = undefined;
|
|
988
|
-
let request =
|
|
988
|
+
let request = undefined;
|
|
989
989
|
if (type === 'swap') {
|
|
990
990
|
if (subType === 'inverse') {
|
|
991
991
|
throw new errors.NotSupported(this.id + ' watchOrders is not supported for inverse swap markets yet');
|
|
@@ -1098,13 +1098,15 @@ class bingx extends bingx$1["default"] {
|
|
|
1098
1098
|
const swapMessageHash = 'swap:balance';
|
|
1099
1099
|
const messageHash = isSpot ? spotMessageHash : swapMessageHash;
|
|
1100
1100
|
const subscriptionHash = isSpot ? spotSubHash : swapSubHash;
|
|
1101
|
-
let request =
|
|
1101
|
+
let request = undefined;
|
|
1102
1102
|
let baseUrl = undefined;
|
|
1103
1103
|
const uuid = this.uuid();
|
|
1104
1104
|
if (type === 'swap') {
|
|
1105
1105
|
if (subType === 'inverse') {
|
|
1106
1106
|
throw new errors.NotSupported(this.id + ' watchBalance is not supported for inverse swap markets yet');
|
|
1107
1107
|
}
|
|
1108
|
+
// swap balance updates are pushed automatically over the listenKey connection,
|
|
1109
|
+
// so we must not send a subscription message (an empty one is rejected with 80014)
|
|
1108
1110
|
baseUrl = this.safeString(this.urls['api']['ws'], subType);
|
|
1109
1111
|
}
|
|
1110
1112
|
else {
|
|
@@ -886,7 +886,10 @@ class bitget extends bitget$1["default"] {
|
|
|
886
886
|
storedOrderBook['datetime'] = this.iso8601(timestamp);
|
|
887
887
|
const checksum = this.handleOption('watchOrderBook', 'checksum', true);
|
|
888
888
|
const isSnapshot = this.safeString(message, 'action') === 'snapshot'; // snapshot does not have a checksum
|
|
889
|
-
|
|
889
|
+
// UTA order books do not provide a crc32 checksum (they rely on seq/pseq for integrity),
|
|
890
|
+
// so only validate the checksum when the exchange actually sends one
|
|
891
|
+
const responseChecksum = this.safeInteger(rawOrderBook, 'checksum');
|
|
892
|
+
if (!isSnapshot && checksum && (responseChecksum !== undefined)) {
|
|
890
893
|
const storedAsks = storedOrderBook['asks'];
|
|
891
894
|
const storedBids = storedOrderBook['bids'];
|
|
892
895
|
const asksLength = storedAsks.length;
|
|
@@ -904,12 +907,7 @@ class bitget extends bitget$1["default"] {
|
|
|
904
907
|
}
|
|
905
908
|
const payload = payloadArray.join(':');
|
|
906
909
|
const calculatedChecksum = this.crc32(payload, true);
|
|
907
|
-
const responseChecksum = this.safeInteger(rawOrderBook, 'checksum');
|
|
908
910
|
if (calculatedChecksum !== responseChecksum) {
|
|
909
|
-
// if (messageHash in client.subscriptions) {
|
|
910
|
-
// // delete client.subscriptions[messageHash];
|
|
911
|
-
// // delete this.orderbooks[symbol];
|
|
912
|
-
// }
|
|
913
911
|
this.spawn(this.handleCheckSumError, client, symbol, messageHash);
|
|
914
912
|
return;
|
|
915
913
|
}
|
|
@@ -2698,10 +2696,14 @@ class bitget extends bitget$1["default"] {
|
|
|
2698
2696
|
//
|
|
2699
2697
|
// {"event":"unsubscribe","arg":{"instType":"SPOT","channel":"books","instId":"BTCUSDT"}}
|
|
2700
2698
|
//
|
|
2699
|
+
// UTA
|
|
2700
|
+
//
|
|
2701
|
+
// {"event":"unsubscribe","arg":{"instType":"spot","topic":"books","symbol":"BTCUSDT"}}
|
|
2702
|
+
//
|
|
2701
2703
|
const arg = this.safeDict(message, 'arg', {});
|
|
2702
2704
|
const instType = this.safeStringLower(arg, 'instType');
|
|
2703
2705
|
const type = (instType === 'spot') ? 'spot' : 'contract';
|
|
2704
|
-
const instId = this.
|
|
2706
|
+
const instId = this.safeString2(arg, 'instId', 'symbol');
|
|
2705
2707
|
const market = this.safeMarket(instId, undefined, undefined, type);
|
|
2706
2708
|
const symbol = market['symbol'];
|
|
2707
2709
|
const messageHash = 'unsubscribe:orderbook:' + market['symbol'];
|
package/dist/cjs/src/pro/grvt.js
CHANGED
|
@@ -144,7 +144,7 @@ class grvt extends grvt$1["default"] {
|
|
|
144
144
|
* @method
|
|
145
145
|
* @name grvt#watchTickers
|
|
146
146
|
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
147
|
-
* @see https://docs.
|
|
147
|
+
* @see https://api-docs.grvt.io/market_data_streams/#mini-ticker-snap-feed-selector
|
|
148
148
|
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
149
149
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
150
150
|
* @returns {object} a [ticker structure]{@link https://docs.ccxt.com/?id=ticker-structure}
|
|
@@ -166,7 +166,7 @@ class hashkey extends hashkey$1["default"] {
|
|
|
166
166
|
}
|
|
167
167
|
/**
|
|
168
168
|
* @method
|
|
169
|
-
* @name
|
|
169
|
+
* @name hashkey#watchTicker
|
|
170
170
|
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
171
171
|
* @see https://hashkeyglobal-apidoc.readme.io/reference/websocket-api#public-stream
|
|
172
172
|
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
@@ -631,7 +631,7 @@ class kraken extends kraken$1["default"] {
|
|
|
631
631
|
const ohlcvsLength = data.length;
|
|
632
632
|
for (let i = 0; i < ohlcvsLength; i++) {
|
|
633
633
|
const candle = data[ohlcvsLength - i - 1];
|
|
634
|
-
const datetime = this.safeString(candle, '
|
|
634
|
+
const datetime = this.safeString(candle, 'interval_begin');
|
|
635
635
|
const timestamp = this.parse8601(datetime);
|
|
636
636
|
const parsed = [
|
|
637
637
|
timestamp,
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var mudrex$1 = require('../mudrex.js');
|
|
6
|
+
var errors = require('../base/errors.js');
|
|
7
|
+
var Cache = require('../base/ws/Cache.js');
|
|
8
|
+
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
// ---------------------------------------------------------------------------
|
|
11
|
+
class mudrex extends mudrex$1["default"] {
|
|
12
|
+
describe() {
|
|
13
|
+
return this.deepExtend(super.describe(), {
|
|
14
|
+
'has': {
|
|
15
|
+
'ws': true,
|
|
16
|
+
'watchOHLCV': true,
|
|
17
|
+
'watchTicker': true,
|
|
18
|
+
'watchTickers': true,
|
|
19
|
+
},
|
|
20
|
+
'urls': {
|
|
21
|
+
'api': {
|
|
22
|
+
'ws': 'wss://trade.mudrex.com/fapi/v1/price/ws/linear',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
'options': {
|
|
26
|
+
'broker': '42ce8902-8585-448c-a1e8-0371a6ca7ca8',
|
|
27
|
+
},
|
|
28
|
+
'streaming': {
|
|
29
|
+
'ping': this.ping,
|
|
30
|
+
'keepAlive': 20000,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
ping(client) {
|
|
35
|
+
return {
|
|
36
|
+
'id': this.requestId(),
|
|
37
|
+
'method': 'PING',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
requestId() {
|
|
41
|
+
const reqid = this.sum(this.safeInteger(this.options, 'correlationId', 0), 1);
|
|
42
|
+
this.options['correlationId'] = reqid;
|
|
43
|
+
return reqid;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* @ignore
|
|
47
|
+
* @method
|
|
48
|
+
* @description injects the broker Partner-Id into the websocket connection headers
|
|
49
|
+
*/
|
|
50
|
+
setBrokerHeaders() {
|
|
51
|
+
const brokerId = this.safeString(this.options, 'broker');
|
|
52
|
+
if (brokerId === undefined) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const wsOptions = this.safeDict(this.options, 'ws', {});
|
|
56
|
+
const innerOptions = this.safeDict(wsOptions, 'options', {});
|
|
57
|
+
const headers = this.safeDict(innerOptions, 'headers', {});
|
|
58
|
+
headers['Partner-Id'] = brokerId;
|
|
59
|
+
innerOptions['headers'] = headers;
|
|
60
|
+
wsOptions['options'] = innerOptions;
|
|
61
|
+
this.options['ws'] = wsOptions;
|
|
62
|
+
}
|
|
63
|
+
async watchTicker(symbol, params = {}) {
|
|
64
|
+
await this.loadMarkets();
|
|
65
|
+
const market = this.market(symbol);
|
|
66
|
+
symbol = market['symbol'];
|
|
67
|
+
const messageHash = 'ticker:' + symbol;
|
|
68
|
+
const url = this.urls['api']['ws'];
|
|
69
|
+
this.setBrokerHeaders();
|
|
70
|
+
const subscribe = {
|
|
71
|
+
'id': this.requestId(),
|
|
72
|
+
'method': 'SUBSCRIBE',
|
|
73
|
+
'params': ['ticker@1s'],
|
|
74
|
+
'assets': [market['baseId'].toLowerCase() + market['quoteId'].toLowerCase()],
|
|
75
|
+
};
|
|
76
|
+
const request = this.extend(subscribe, params);
|
|
77
|
+
return await this.watch(url, messageHash, request, messageHash);
|
|
78
|
+
}
|
|
79
|
+
async watchTickers(symbols = undefined, params = {}) {
|
|
80
|
+
await this.loadMarkets();
|
|
81
|
+
symbols = this.marketSymbols(symbols);
|
|
82
|
+
const messageHashes = [];
|
|
83
|
+
const assets = [];
|
|
84
|
+
if (symbols !== undefined) {
|
|
85
|
+
for (let i = 0; i < symbols.length; i++) {
|
|
86
|
+
const market = this.market(symbols[i]);
|
|
87
|
+
messageHashes.push('ticker:' + market['symbol']);
|
|
88
|
+
assets.push(market['baseId'].toLowerCase() + market['quoteId'].toLowerCase());
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const url = this.urls['api']['ws'];
|
|
92
|
+
this.setBrokerHeaders();
|
|
93
|
+
const subscribe = {
|
|
94
|
+
'id': this.requestId(),
|
|
95
|
+
'method': 'SUBSCRIBE',
|
|
96
|
+
'params': ['ticker@1s'],
|
|
97
|
+
'assets': assets,
|
|
98
|
+
};
|
|
99
|
+
const request = this.extend(subscribe, params);
|
|
100
|
+
const ticker = await this.watchMultiple(url, messageHashes, request, messageHashes);
|
|
101
|
+
if (this.newUpdates) {
|
|
102
|
+
const result = {};
|
|
103
|
+
result[ticker['symbol']] = ticker;
|
|
104
|
+
return result;
|
|
105
|
+
}
|
|
106
|
+
return this.filterByArrayTickers(this.tickers, 'symbol', symbols);
|
|
107
|
+
}
|
|
108
|
+
async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
|
|
109
|
+
await this.loadMarkets();
|
|
110
|
+
const market = this.market(symbol);
|
|
111
|
+
symbol = market['symbol'];
|
|
112
|
+
const priceType = this.safeString(params, 'price');
|
|
113
|
+
params = this.omit(params, 'price');
|
|
114
|
+
const interval = this.safeString(this.timeframes, timeframe, timeframe);
|
|
115
|
+
if (interval !== '1s' && interval !== '1m') {
|
|
116
|
+
throw new errors.NotSupported(this.id + ' watchOHLCV() supports 1s and 1m timeframes only');
|
|
117
|
+
}
|
|
118
|
+
let prefix = 'kline';
|
|
119
|
+
if (priceType === 'mark') {
|
|
120
|
+
prefix = 'markKline';
|
|
121
|
+
}
|
|
122
|
+
const stream = prefix + '@' + interval + '@' + market['baseId'].toLowerCase() + market['quoteId'].toLowerCase();
|
|
123
|
+
const messageHash = stream;
|
|
124
|
+
const url = this.urls['api']['ws'];
|
|
125
|
+
this.setBrokerHeaders();
|
|
126
|
+
const subscribe = {
|
|
127
|
+
'id': this.requestId(),
|
|
128
|
+
'method': 'SUBSCRIBE',
|
|
129
|
+
'params': [stream],
|
|
130
|
+
};
|
|
131
|
+
const request = this.extend(subscribe, params);
|
|
132
|
+
const ohlcv = await this.watch(url, messageHash, request, messageHash);
|
|
133
|
+
if (this.newUpdates) {
|
|
134
|
+
limit = ohlcv.getLimit(symbol, limit);
|
|
135
|
+
}
|
|
136
|
+
return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
|
|
137
|
+
}
|
|
138
|
+
handleMessage(client, message) {
|
|
139
|
+
if (this.safeString(message, 'method') === 'PONG') {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const error = this.safeDict(message, 'error');
|
|
143
|
+
if (error !== undefined) {
|
|
144
|
+
this.handleErrorMessage(client, message);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const stream = this.safeString(message, 'stream');
|
|
148
|
+
if (stream !== undefined) {
|
|
149
|
+
if (stream.indexOf('kline') >= 0 || stream.indexOf('markKline') >= 0) {
|
|
150
|
+
this.handleOHLCV(client, message);
|
|
151
|
+
}
|
|
152
|
+
else if (stream.indexOf('ticker') >= 0) {
|
|
153
|
+
this.handleTicker(client, message);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
handleErrorMessage(client, message) {
|
|
158
|
+
const error = this.safeDict(message, 'error', {});
|
|
159
|
+
const code = this.safeString(error, 'code');
|
|
160
|
+
const msg = this.safeString(error, 'msg');
|
|
161
|
+
const feedback = this.id + ' ' + msg;
|
|
162
|
+
if (code === '429') {
|
|
163
|
+
throw new errors.RateLimitExceeded(feedback);
|
|
164
|
+
}
|
|
165
|
+
throw new errors.ExchangeError(feedback);
|
|
166
|
+
}
|
|
167
|
+
handleOHLCV(client, message) {
|
|
168
|
+
const stream = this.safeString(message, 'stream');
|
|
169
|
+
const parts = stream.split('@');
|
|
170
|
+
const interval = parts[1];
|
|
171
|
+
const tf = this.findTimeframe(interval);
|
|
172
|
+
const data = this.safeDict(message, 'data', {});
|
|
173
|
+
const s = this.safeString(data, 's');
|
|
174
|
+
if (s === undefined) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const market = this.safeMarket(s.toUpperCase());
|
|
178
|
+
const symbol = market['symbol'];
|
|
179
|
+
const parsed = [
|
|
180
|
+
this.safeTimestamp(data, 't'),
|
|
181
|
+
this.safeNumber(data, 'o'),
|
|
182
|
+
this.safeNumber(data, 'h'),
|
|
183
|
+
this.safeNumber(data, 'l'),
|
|
184
|
+
this.safeNumber(data, 'c'),
|
|
185
|
+
this.safeNumber(data, 'v'),
|
|
186
|
+
];
|
|
187
|
+
this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
|
|
188
|
+
let stored = this.safeValue(this.ohlcvs[symbol], tf);
|
|
189
|
+
if (stored === undefined) {
|
|
190
|
+
const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
|
|
191
|
+
stored = new Cache.ArrayCacheByTimestamp(limit);
|
|
192
|
+
this.ohlcvs[symbol][tf] = stored;
|
|
193
|
+
}
|
|
194
|
+
stored.append(parsed);
|
|
195
|
+
const messageHash = stream;
|
|
196
|
+
client.resolve(stored, messageHash);
|
|
197
|
+
}
|
|
198
|
+
handleTicker(client, message) {
|
|
199
|
+
const data = this.safeList(message, 'data', []);
|
|
200
|
+
for (let i = 0; i < data.length; i++) {
|
|
201
|
+
const t = data[i];
|
|
202
|
+
const s = this.safeString(t, 's');
|
|
203
|
+
if (s === undefined) {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
const market = this.safeMarket(s.toUpperCase());
|
|
207
|
+
const symbol = market['symbol'];
|
|
208
|
+
const timestamp = this.milliseconds();
|
|
209
|
+
const last = this.safeNumber(t, 'p');
|
|
210
|
+
const result = this.safeTicker({
|
|
211
|
+
'symbol': symbol,
|
|
212
|
+
'timestamp': timestamp,
|
|
213
|
+
'datetime': this.iso8601(timestamp),
|
|
214
|
+
'last': last,
|
|
215
|
+
'close': last,
|
|
216
|
+
'info': t,
|
|
217
|
+
});
|
|
218
|
+
this.tickers[symbol] = result;
|
|
219
|
+
const messageHash = 'ticker:' + symbol;
|
|
220
|
+
client.resolve(result, messageHash);
|
|
221
|
+
client.resolve(result, 'tickers');
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
exports["default"] = mudrex;
|
package/js/ccxt.d.ts
CHANGED
|
@@ -4,11 +4,10 @@ import * as functions from './src/base/functions.js';
|
|
|
4
4
|
import * as errors from './src/base/errors.js';
|
|
5
5
|
import type { Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, Dictionary, NestedDictionary, MinMax, FeeInterface, TradingFeeInterface, MarketInterface, Trade, Order, OrderBook, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarketMarginModes, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, LongShortRatio, OrderBooks, OpenInterests, ConstructorArgs, ADL } from './src/base/types.js';
|
|
6
6
|
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
|
|
7
|
-
declare const version = "4.5.
|
|
7
|
+
declare const version = "4.5.63";
|
|
8
8
|
import aftermath from './src/aftermath.js';
|
|
9
9
|
import alpaca from './src/alpaca.js';
|
|
10
10
|
import apex from './src/apex.js';
|
|
11
|
-
import ascendex from './src/ascendex.js';
|
|
12
11
|
import aster from './src/aster.js';
|
|
13
12
|
import backpack from './src/backpack.js';
|
|
14
13
|
import bequant from './src/bequant.js';
|
|
@@ -50,7 +49,6 @@ import coinbaseinternational from './src/coinbaseinternational.js';
|
|
|
50
49
|
import coincheck from './src/coincheck.js';
|
|
51
50
|
import coinex from './src/coinex.js';
|
|
52
51
|
import coinmate from './src/coinmate.js';
|
|
53
|
-
import coinmetro from './src/coinmetro.js';
|
|
54
52
|
import coinone from './src/coinone.js';
|
|
55
53
|
import coinsph from './src/coinsph.js';
|
|
56
54
|
import coinspot from './src/coinspot.js';
|
|
@@ -90,9 +88,9 @@ import luno from './src/luno.js';
|
|
|
90
88
|
import mercado from './src/mercado.js';
|
|
91
89
|
import mexc from './src/mexc.js';
|
|
92
90
|
import modetrade from './src/modetrade.js';
|
|
91
|
+
import mudrex from './src/mudrex.js';
|
|
93
92
|
import myokx from './src/myokx.js';
|
|
94
93
|
import ndax from './src/ndax.js';
|
|
95
|
-
import novadax from './src/novadax.js';
|
|
96
94
|
import okx from './src/okx.js';
|
|
97
95
|
import okxus from './src/okxus.js';
|
|
98
96
|
import onetrading from './src/onetrading.js';
|
|
@@ -115,7 +113,6 @@ import zebpay from './src/zebpay.js';
|
|
|
115
113
|
import aftermathPro from './src/pro/aftermath.js';
|
|
116
114
|
import alpacaPro from './src/pro/alpaca.js';
|
|
117
115
|
import apexPro from './src/pro/apex.js';
|
|
118
|
-
import ascendexPro from './src/pro/ascendex.js';
|
|
119
116
|
import asterPro from './src/pro/aster.js';
|
|
120
117
|
import backpackPro from './src/pro/backpack.js';
|
|
121
118
|
import bequantPro from './src/pro/bequant.js';
|
|
@@ -174,6 +171,7 @@ import lighterPro from './src/pro/lighter.js';
|
|
|
174
171
|
import lunoPro from './src/pro/luno.js';
|
|
175
172
|
import mexcPro from './src/pro/mexc.js';
|
|
176
173
|
import modetradePro from './src/pro/modetrade.js';
|
|
174
|
+
import mudrexPro from './src/pro/mudrex.js';
|
|
177
175
|
import myokxPro from './src/pro/myokx.js';
|
|
178
176
|
import ndaxPro from './src/pro/ndax.js';
|
|
179
177
|
import okxPro from './src/pro/okx.js';
|
|
@@ -195,7 +193,6 @@ declare const exchanges: {
|
|
|
195
193
|
aftermath: typeof aftermath;
|
|
196
194
|
alpaca: typeof alpaca;
|
|
197
195
|
apex: typeof apex;
|
|
198
|
-
ascendex: typeof ascendex;
|
|
199
196
|
aster: typeof aster;
|
|
200
197
|
backpack: typeof backpack;
|
|
201
198
|
bequant: typeof bequant;
|
|
@@ -237,7 +234,6 @@ declare const exchanges: {
|
|
|
237
234
|
coincheck: typeof coincheck;
|
|
238
235
|
coinex: typeof coinex;
|
|
239
236
|
coinmate: typeof coinmate;
|
|
240
|
-
coinmetro: typeof coinmetro;
|
|
241
237
|
coinone: typeof coinone;
|
|
242
238
|
coinsph: typeof coinsph;
|
|
243
239
|
coinspot: typeof coinspot;
|
|
@@ -277,9 +273,9 @@ declare const exchanges: {
|
|
|
277
273
|
mercado: typeof mercado;
|
|
278
274
|
mexc: typeof mexc;
|
|
279
275
|
modetrade: typeof modetrade;
|
|
276
|
+
mudrex: typeof mudrex;
|
|
280
277
|
myokx: typeof myokx;
|
|
281
278
|
ndax: typeof ndax;
|
|
282
|
-
novadax: typeof novadax;
|
|
283
279
|
okx: typeof okx;
|
|
284
280
|
okxus: typeof okxus;
|
|
285
281
|
onetrading: typeof onetrading;
|
|
@@ -304,7 +300,6 @@ declare const pro: {
|
|
|
304
300
|
aftermath: typeof aftermathPro;
|
|
305
301
|
alpaca: typeof alpacaPro;
|
|
306
302
|
apex: typeof apexPro;
|
|
307
|
-
ascendex: typeof ascendexPro;
|
|
308
303
|
aster: typeof asterPro;
|
|
309
304
|
backpack: typeof backpackPro;
|
|
310
305
|
bequant: typeof bequantPro;
|
|
@@ -363,6 +358,7 @@ declare const pro: {
|
|
|
363
358
|
luno: typeof lunoPro;
|
|
364
359
|
mexc: typeof mexcPro;
|
|
365
360
|
modetrade: typeof modetradePro;
|
|
361
|
+
mudrex: typeof mudrexPro;
|
|
366
362
|
myokx: typeof myokxPro;
|
|
367
363
|
ndax: typeof ndaxPro;
|
|
368
364
|
okx: typeof okxPro;
|
|
@@ -390,7 +386,6 @@ declare const ccxt: {
|
|
|
390
386
|
aftermath: typeof aftermathPro;
|
|
391
387
|
alpaca: typeof alpacaPro;
|
|
392
388
|
apex: typeof apexPro;
|
|
393
|
-
ascendex: typeof ascendexPro;
|
|
394
389
|
aster: typeof asterPro;
|
|
395
390
|
backpack: typeof backpackPro;
|
|
396
391
|
bequant: typeof bequantPro;
|
|
@@ -449,6 +444,7 @@ declare const ccxt: {
|
|
|
449
444
|
luno: typeof lunoPro;
|
|
450
445
|
mexc: typeof mexcPro;
|
|
451
446
|
modetrade: typeof modetradePro;
|
|
447
|
+
mudrex: typeof mudrexPro;
|
|
452
448
|
myokx: typeof myokxPro;
|
|
453
449
|
ndax: typeof ndaxPro;
|
|
454
450
|
okx: typeof okxPro;
|
|
@@ -471,7 +467,6 @@ declare const ccxt: {
|
|
|
471
467
|
aftermath: typeof aftermath;
|
|
472
468
|
alpaca: typeof alpaca;
|
|
473
469
|
apex: typeof apex;
|
|
474
|
-
ascendex: typeof ascendex;
|
|
475
470
|
aster: typeof aster;
|
|
476
471
|
backpack: typeof backpack;
|
|
477
472
|
bequant: typeof bequant;
|
|
@@ -513,7 +508,6 @@ declare const ccxt: {
|
|
|
513
508
|
coincheck: typeof coincheck;
|
|
514
509
|
coinex: typeof coinex;
|
|
515
510
|
coinmate: typeof coinmate;
|
|
516
|
-
coinmetro: typeof coinmetro;
|
|
517
511
|
coinone: typeof coinone;
|
|
518
512
|
coinsph: typeof coinsph;
|
|
519
513
|
coinspot: typeof coinspot;
|
|
@@ -553,9 +547,9 @@ declare const ccxt: {
|
|
|
553
547
|
mercado: typeof mercado;
|
|
554
548
|
mexc: typeof mexc;
|
|
555
549
|
modetrade: typeof modetrade;
|
|
550
|
+
mudrex: typeof mudrex;
|
|
556
551
|
myokx: typeof myokx;
|
|
557
552
|
ndax: typeof ndax;
|
|
558
|
-
novadax: typeof novadax;
|
|
559
553
|
okx: typeof okx;
|
|
560
554
|
okxus: typeof okxus;
|
|
561
555
|
onetrading: typeof onetrading;
|
|
@@ -576,5 +570,5 @@ declare const ccxt: {
|
|
|
576
570
|
zaif: typeof zaif;
|
|
577
571
|
zebpay: typeof zebpay;
|
|
578
572
|
} & typeof functions & typeof errors;
|
|
579
|
-
export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, ConstructorArgs, Dictionary, NestedDictionary, MinMax, FeeInterface, TradingFeeInterface, MarketMarginModes, MarketInterface, Trade, Order, OrderBook, OrderBooks, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, OpenInterests, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, LongShortRatio, ADL, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, aftermath, alpaca, apex,
|
|
573
|
+
export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, Int, int, Str, Strings, Num, Bool, IndexType, OrderSide, OrderType, MarketType, SubType, Dict, NullableDict, List, NullableList, Fee, OHLCV, OHLCVC, implicitReturnType, Market, Currency, ConstructorArgs, Dictionary, NestedDictionary, MinMax, FeeInterface, TradingFeeInterface, MarketMarginModes, MarketInterface, Trade, Order, OrderBook, OrderBooks, Ticker, Transaction, Tickers, CurrencyInterface, Balance, BalanceAccount, Account, PartialBalances, Balances, DepositAddress, WithdrawalResponse, FundingRate, FundingRates, Position, BorrowInterest, LeverageTier, LedgerEntry, DepositWithdrawFeeNetwork, DepositWithdrawFee, TransferEntry, CrossBorrowRate, IsolatedBorrowRate, FundingRateHistory, OpenInterest, OpenInterests, Liquidation, OrderRequest, CancellationRequest, FundingHistory, MarginMode, Greeks, Conversion, Option, LastPrice, Leverage, LongShortRatio, ADL, MarginModification, Leverages, LastPrices, Currencies, TradingFees, MarginModes, OptionChain, IsolatedBorrowRates, CrossBorrowRates, LeverageTiers, aftermath, alpaca, apex, aster, backpack, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitrue, bitso, bitstamp, bitteam, bittrade, bitvavo, blockchaincom, blofin, btcbox, btcmarkets, btcturk, bullish, bybit, bybiteu, bydfi, cex, coinbase, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinmate, coinone, coinsph, coinspot, cryptocom, cryptomus, deepcoin, delta, deribit, derive, digifinex, dydx, exmo, extended, fmfwio, foxbit, gate, gateeu, gemini, grvt, hashkey, hibachi, hitbtc, hollaex, htx, hyperliquid, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoineu, kucoinfutures, latoken, lbank, lighter, luno, mercado, mexc, modetrade, mudrex, myokx, ndax, okx, okxus, onetrading, p2b, pacifica, paradex, paymium, phemex, poloniex, tokocrypto, toobit, upbit, weex, whitebit, woo, woofipro, xt, zaif, zebpay, };
|
|
580
574
|
export default ccxt;
|
package/js/ccxt.js
CHANGED
|
@@ -32,12 +32,11 @@ import * as errors from './src/base/errors.js';
|
|
|
32
32
|
import { BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError } from './src/base/errors.js';
|
|
33
33
|
//-----------------------------------------------------------------------------
|
|
34
34
|
// this is updated by vss.js when building
|
|
35
|
-
const version = '4.5.
|
|
35
|
+
const version = '4.5.63';
|
|
36
36
|
//-----------------------------------------------------------------------------
|
|
37
37
|
import aftermath from './src/aftermath.js';
|
|
38
38
|
import alpaca from './src/alpaca.js';
|
|
39
39
|
import apex from './src/apex.js';
|
|
40
|
-
import ascendex from './src/ascendex.js';
|
|
41
40
|
import aster from './src/aster.js';
|
|
42
41
|
import backpack from './src/backpack.js';
|
|
43
42
|
import bequant from './src/bequant.js';
|
|
@@ -79,7 +78,6 @@ import coinbaseinternational from './src/coinbaseinternational.js';
|
|
|
79
78
|
import coincheck from './src/coincheck.js';
|
|
80
79
|
import coinex from './src/coinex.js';
|
|
81
80
|
import coinmate from './src/coinmate.js';
|
|
82
|
-
import coinmetro from './src/coinmetro.js';
|
|
83
81
|
import coinone from './src/coinone.js';
|
|
84
82
|
import coinsph from './src/coinsph.js';
|
|
85
83
|
import coinspot from './src/coinspot.js';
|
|
@@ -119,9 +117,9 @@ import luno from './src/luno.js';
|
|
|
119
117
|
import mercado from './src/mercado.js';
|
|
120
118
|
import mexc from './src/mexc.js';
|
|
121
119
|
import modetrade from './src/modetrade.js';
|
|
120
|
+
import mudrex from './src/mudrex.js';
|
|
122
121
|
import myokx from './src/myokx.js';
|
|
123
122
|
import ndax from './src/ndax.js';
|
|
124
|
-
import novadax from './src/novadax.js';
|
|
125
123
|
import okx from './src/okx.js';
|
|
126
124
|
import okxus from './src/okxus.js';
|
|
127
125
|
import onetrading from './src/onetrading.js';
|
|
@@ -145,7 +143,6 @@ import zebpay from './src/zebpay.js';
|
|
|
145
143
|
import aftermathPro from './src/pro/aftermath.js';
|
|
146
144
|
import alpacaPro from './src/pro/alpaca.js';
|
|
147
145
|
import apexPro from './src/pro/apex.js';
|
|
148
|
-
import ascendexPro from './src/pro/ascendex.js';
|
|
149
146
|
import asterPro from './src/pro/aster.js';
|
|
150
147
|
import backpackPro from './src/pro/backpack.js';
|
|
151
148
|
import bequantPro from './src/pro/bequant.js';
|
|
@@ -204,6 +201,7 @@ import lighterPro from './src/pro/lighter.js';
|
|
|
204
201
|
import lunoPro from './src/pro/luno.js';
|
|
205
202
|
import mexcPro from './src/pro/mexc.js';
|
|
206
203
|
import modetradePro from './src/pro/modetrade.js';
|
|
204
|
+
import mudrexPro from './src/pro/mudrex.js';
|
|
207
205
|
import myokxPro from './src/pro/myokx.js';
|
|
208
206
|
import ndaxPro from './src/pro/ndax.js';
|
|
209
207
|
import okxPro from './src/pro/okx.js';
|
|
@@ -225,7 +223,6 @@ const exchanges = {
|
|
|
225
223
|
'aftermath': aftermath,
|
|
226
224
|
'alpaca': alpaca,
|
|
227
225
|
'apex': apex,
|
|
228
|
-
'ascendex': ascendex,
|
|
229
226
|
'aster': aster,
|
|
230
227
|
'backpack': backpack,
|
|
231
228
|
'bequant': bequant,
|
|
@@ -267,7 +264,6 @@ const exchanges = {
|
|
|
267
264
|
'coincheck': coincheck,
|
|
268
265
|
'coinex': coinex,
|
|
269
266
|
'coinmate': coinmate,
|
|
270
|
-
'coinmetro': coinmetro,
|
|
271
267
|
'coinone': coinone,
|
|
272
268
|
'coinsph': coinsph,
|
|
273
269
|
'coinspot': coinspot,
|
|
@@ -307,9 +303,9 @@ const exchanges = {
|
|
|
307
303
|
'mercado': mercado,
|
|
308
304
|
'mexc': mexc,
|
|
309
305
|
'modetrade': modetrade,
|
|
306
|
+
'mudrex': mudrex,
|
|
310
307
|
'myokx': myokx,
|
|
311
308
|
'ndax': ndax,
|
|
312
|
-
'novadax': novadax,
|
|
313
309
|
'okx': okx,
|
|
314
310
|
'okxus': okxus,
|
|
315
311
|
'onetrading': onetrading,
|
|
@@ -334,7 +330,6 @@ const pro = {
|
|
|
334
330
|
'aftermath': aftermathPro,
|
|
335
331
|
'alpaca': alpacaPro,
|
|
336
332
|
'apex': apexPro,
|
|
337
|
-
'ascendex': ascendexPro,
|
|
338
333
|
'aster': asterPro,
|
|
339
334
|
'backpack': backpackPro,
|
|
340
335
|
'bequant': bequantPro,
|
|
@@ -393,6 +388,7 @@ const pro = {
|
|
|
393
388
|
'luno': lunoPro,
|
|
394
389
|
'mexc': mexcPro,
|
|
395
390
|
'modetrade': modetradePro,
|
|
391
|
+
'mudrex': mudrexPro,
|
|
396
392
|
'myokx': myokxPro,
|
|
397
393
|
'ndax': ndaxPro,
|
|
398
394
|
'okx': okxPro,
|
|
@@ -423,6 +419,6 @@ pro.exchanges = Object.keys(pro);
|
|
|
423
419
|
pro['Exchange'] = Exchange; // now the same for rest and ts
|
|
424
420
|
//-----------------------------------------------------------------------------
|
|
425
421
|
const ccxt = Object.assign({ version, Exchange, Precise, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, functions, errors);
|
|
426
|
-
export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, aftermath, alpaca, apex,
|
|
422
|
+
export { version, Exchange, exchanges, pro, Precise, functions, errors, BaseError, ExchangeError, AuthenticationError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, OperationRejected, NoChange, MarginModeAlreadySet, MarketClosed, ManualInteractionNeeded, RestrictedLocation, InsufficientFunds, InvalidAddress, AddressPending, InvalidOrder, OrderNotFound, OrderNotCached, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, ContractUnavailable, NotSupported, InvalidProxySettings, ExchangeClosedByUser, OperationFailed, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, ChecksumError, RequestTimeout, BadResponse, NullResponse, CancelPending, UnsubscribeError, aftermath, alpaca, apex, aster, backpack, bequant, bigone, binance, binancecoinm, binanceus, binanceusdm, bingx, bit2c, bitbank, bitbns, bitfinex, bitflyer, bitget, bithumb, bitmart, bitmex, bitopro, bitrue, bitso, bitstamp, bitteam, bittrade, bitvavo, blockchaincom, blofin, btcbox, btcmarkets, btcturk, bullish, bybit, bybiteu, bydfi, cex, coinbase, coinbaseexchange, coinbaseinternational, coincheck, coinex, coinmate, coinone, coinsph, coinspot, cryptocom, cryptomus, deepcoin, delta, deribit, derive, digifinex, dydx, exmo, extended, fmfwio, foxbit, gate, gateeu, gemini, grvt, hashkey, hibachi, hitbtc, hollaex, htx, hyperliquid, independentreserve, indodax, kraken, krakenfutures, kucoin, kucoineu, kucoinfutures, latoken, lbank, lighter, luno, mercado, mexc, modetrade, mudrex, myokx, ndax, okx, okxus, onetrading, p2b, pacifica, paradex, paymium, phemex, poloniex, tokocrypto, toobit, upbit, weex, whitebit, woo, woofipro, xt, zaif, zebpay, };
|
|
427
423
|
export default ccxt;
|
|
428
424
|
//-----------------------------------------------------------------------------
|