ccxt 4.2.38 → 4.2.40
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 +3 -3
- package/dist/ccxt.browser.js +1340 -407
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/ascendex.js +28 -24
- package/dist/cjs/src/base/Exchange.js +28 -16
- package/dist/cjs/src/binance.js +528 -181
- package/dist/cjs/src/bingx.js +250 -23
- package/dist/cjs/src/bitget.js +14 -3
- package/dist/cjs/src/bitso.js +18 -2
- package/dist/cjs/src/bitstamp.js +24 -2
- package/dist/cjs/src/bl3p.js +6 -0
- package/dist/cjs/src/blockchaincom.js +21 -0
- package/dist/cjs/src/btcalpha.js +9 -0
- package/dist/cjs/src/btcbox.js +9 -0
- package/dist/cjs/src/btcmarkets.js +19 -0
- package/dist/cjs/src/bybit.js +3 -1
- package/dist/cjs/src/coinbase.js +21 -8
- package/dist/cjs/src/coinbasepro.js +1 -0
- package/dist/cjs/src/coinlist.js +9 -7
- package/dist/cjs/src/coinmetro.js +2 -1
- package/dist/cjs/src/krakenfutures.js +133 -16
- package/dist/cjs/src/luno.js +1 -1
- package/dist/cjs/src/mexc.js +43 -43
- package/dist/cjs/src/okx.js +11 -17
- package/dist/cjs/src/phemex.js +1 -0
- package/dist/cjs/src/poloniexfutures.js +11 -5
- package/dist/cjs/src/pro/bitmart.js +141 -48
- package/dist/cjs/src/pro/bybit.js +5 -5
- package/dist/cjs/src/pro/mexc.js +1 -1
- package/dist/cjs/src/wavesexchange.js +1 -1
- package/dist/cjs/src/woo.js +1 -1
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/bingx.d.ts +4 -0
- package/js/src/abstract/coinbase.d.ts +1 -0
- package/js/src/abstract/coinbasepro.d.ts +1 -0
- package/js/src/abstract/okx.d.ts +1 -0
- package/js/src/ascendex.d.ts +2 -2
- package/js/src/ascendex.js +28 -24
- package/js/src/base/Exchange.d.ts +12 -8
- package/js/src/base/Exchange.js +28 -16
- package/js/src/base/types.d.ts +2 -0
- package/js/src/bigone.d.ts +2 -2
- package/js/src/binance.d.ts +9 -9
- package/js/src/binance.js +528 -181
- package/js/src/bingx.d.ts +6 -5
- package/js/src/bingx.js +250 -23
- package/js/src/bitfinex.d.ts +3 -3
- package/js/src/bitfinex2.d.ts +2 -2
- package/js/src/bitget.d.ts +5 -5
- package/js/src/bitget.js +14 -3
- package/js/src/bitmart.d.ts +2 -2
- package/js/src/bitmex.d.ts +2 -2
- package/js/src/bitrue.d.ts +2 -2
- package/js/src/bitso.d.ts +1 -1
- package/js/src/bitso.js +18 -2
- package/js/src/bitstamp.d.ts +1 -1
- package/js/src/bitstamp.js +24 -2
- package/js/src/bitvavo.d.ts +1 -1
- package/js/src/bl3p.js +6 -0
- package/js/src/blockchaincom.js +21 -0
- package/js/src/blofin.d.ts +2 -2
- package/js/src/btcalpha.js +9 -0
- package/js/src/btcbox.js +9 -0
- package/js/src/btcmarkets.js +19 -0
- package/js/src/bybit.d.ts +7 -7
- package/js/src/bybit.js +3 -1
- package/js/src/cex.d.ts +1 -1
- package/js/src/coinbase.d.ts +2 -2
- package/js/src/coinbase.js +21 -8
- package/js/src/coinbasepro.js +1 -0
- package/js/src/coinex.d.ts +4 -4
- package/js/src/coinlist.d.ts +2 -2
- package/js/src/coinlist.js +9 -7
- package/js/src/coinmetro.js +2 -1
- package/js/src/coinone.d.ts +1 -1
- package/js/src/delta.d.ts +2 -2
- package/js/src/deribit.d.ts +3 -3
- package/js/src/digifinex.d.ts +3 -3
- package/js/src/exmo.d.ts +2 -2
- package/js/src/gate.d.ts +6 -6
- package/js/src/hitbtc.d.ts +2 -2
- package/js/src/hollaex.d.ts +1 -1
- package/js/src/htx.d.ts +3 -3
- package/js/src/huobijp.d.ts +1 -1
- package/js/src/kraken.d.ts +2 -2
- package/js/src/krakenfutures.d.ts +4 -2
- package/js/src/krakenfutures.js +133 -16
- package/js/src/kucoin.d.ts +5 -5
- package/js/src/kucoinfutures.d.ts +2 -2
- package/js/src/latoken.d.ts +1 -1
- package/js/src/lbank.d.ts +2 -2
- package/js/src/luno.d.ts +1 -1
- package/js/src/luno.js +1 -1
- package/js/src/mexc.d.ts +4 -4
- package/js/src/mexc.js +43 -43
- package/js/src/ndax.d.ts +1 -1
- package/js/src/novadax.d.ts +1 -1
- package/js/src/okcoin.d.ts +2 -2
- package/js/src/okx.d.ts +7 -7
- package/js/src/okx.js +11 -17
- package/js/src/paymium.d.ts +2 -2
- package/js/src/phemex.d.ts +4 -4
- package/js/src/phemex.js +1 -0
- package/js/src/poloniex.d.ts +2 -2
- package/js/src/poloniexfutures.d.ts +2 -2
- package/js/src/poloniexfutures.js +11 -5
- package/js/src/pro/bitmart.d.ts +4 -0
- package/js/src/pro/bitmart.js +141 -48
- package/js/src/pro/bitvavo.d.ts +1 -1
- package/js/src/pro/bybit.d.ts +1 -1
- package/js/src/pro/bybit.js +5 -5
- package/js/src/pro/cex.d.ts +2 -2
- package/js/src/pro/coinbase.d.ts +2 -2
- package/js/src/pro/coinex.d.ts +1 -1
- package/js/src/pro/lbank.d.ts +1 -1
- package/js/src/pro/mexc.js +1 -1
- package/js/src/probit.d.ts +1 -1
- package/js/src/timex.d.ts +1 -1
- package/js/src/upbit.d.ts +1 -1
- package/js/src/wavesexchange.js +1 -1
- package/js/src/whitebit.d.ts +2 -2
- package/js/src/woo.d.ts +3 -3
- package/js/src/woo.js +1 -1
- package/js/src/zonda.d.ts +3 -3
- package/package.json +2 -2
|
@@ -1705,13 +1705,13 @@ export default class poloniexfutures extends Exchange {
|
|
|
1705
1705
|
const trades = this.safeValue(data, 'items', {});
|
|
1706
1706
|
return this.parseTrades(trades, market, since, limit);
|
|
1707
1707
|
}
|
|
1708
|
-
async setMarginMode(marginMode, symbol, params = {}) {
|
|
1708
|
+
async setMarginMode(marginMode, symbol = undefined, params = {}) {
|
|
1709
1709
|
/**
|
|
1710
1710
|
* @method
|
|
1711
1711
|
* @name poloniexfutures#setMarginMode
|
|
1712
1712
|
* @description set margin mode to 'cross' or 'isolated'
|
|
1713
1713
|
* @see https://futures-docs.poloniex.com/#change-margin-mode
|
|
1714
|
-
* @param {
|
|
1714
|
+
* @param {string} marginMode "0" (isolated) or "1" (cross)
|
|
1715
1715
|
* @param {string} symbol unified market symbol
|
|
1716
1716
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1717
1717
|
* @returns {object} response from the exchange
|
|
@@ -1719,14 +1719,20 @@ export default class poloniexfutures extends Exchange {
|
|
|
1719
1719
|
if (symbol === undefined) {
|
|
1720
1720
|
throw new ArgumentsRequired(this.id + ' setMarginMode() requires a symbol argument');
|
|
1721
1721
|
}
|
|
1722
|
-
if ((marginMode !== 0) && (marginMode !== 1)) {
|
|
1723
|
-
throw new ArgumentsRequired(this.id + ' setMarginMode() marginMode must be 0
|
|
1722
|
+
if ((marginMode !== '0') && (marginMode !== '1') && (marginMode !== 'isolated') && (marginMode !== 'cross')) {
|
|
1723
|
+
throw new ArgumentsRequired(this.id + ' setMarginMode() marginMode must be 0/isolated or 1/cross');
|
|
1724
1724
|
}
|
|
1725
1725
|
await this.loadMarkets();
|
|
1726
|
+
if (marginMode === 'isolated') {
|
|
1727
|
+
marginMode = '0';
|
|
1728
|
+
}
|
|
1729
|
+
if (marginMode === 'cross') {
|
|
1730
|
+
marginMode = '1';
|
|
1731
|
+
}
|
|
1726
1732
|
const market = this.market(symbol);
|
|
1727
1733
|
const request = {
|
|
1728
1734
|
'symbol': market['id'],
|
|
1729
|
-
'marginType': marginMode,
|
|
1735
|
+
'marginType': this.parseToInt(marginMode),
|
|
1730
1736
|
};
|
|
1731
1737
|
return await this.privatePostMarginTypeChange(request);
|
|
1732
1738
|
}
|
package/js/src/pro/bitmart.d.ts
CHANGED
|
@@ -4,11 +4,14 @@ import Client from '../base/ws/Client.js';
|
|
|
4
4
|
export default class bitmart extends bitmartRest {
|
|
5
5
|
describe(): any;
|
|
6
6
|
subscribe(channel: any, symbol: any, type: any, params?: {}): Promise<any>;
|
|
7
|
+
subscribeMultiple(channel: string, type: string, symbols: string[], params?: {}): Promise<any>;
|
|
7
8
|
watchBalance(params?: {}): Promise<Balances>;
|
|
8
9
|
setBalanceCache(client: Client, type: any, subscribeHash: any): void;
|
|
9
10
|
loadBalanceSnapshot(client: any, messageHash: any, type: any): Promise<void>;
|
|
10
11
|
handleBalance(client: Client, message: any): void;
|
|
11
12
|
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
13
|
+
watchTradesForSymbols(symbols: string[], since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
14
|
+
getParamsForMultipleSub(methodName: string, symbols: string[], limit?: Int, params?: {}): any[];
|
|
12
15
|
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
13
16
|
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
14
17
|
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
@@ -31,6 +34,7 @@ export default class bitmart extends bitmartRest {
|
|
|
31
34
|
handleDeltas(bookside: any, deltas: any): void;
|
|
32
35
|
handleOrderBookMessage(client: Client, message: any, orderbook: any): any;
|
|
33
36
|
handleOrderBook(client: Client, message: any): void;
|
|
37
|
+
watchOrderBookForSymbols(symbols: string[], limit?: Int, params?: {}): Promise<OrderBook>;
|
|
34
38
|
authenticate(type: any, params?: {}): Promise<any>;
|
|
35
39
|
handleSubscriptionStatus(client: Client, message: any): any;
|
|
36
40
|
handleAuthenticate(client: Client, message: any): void;
|
package/js/src/pro/bitmart.js
CHANGED
|
@@ -27,8 +27,10 @@ export default class bitmart extends bitmartRest {
|
|
|
27
27
|
'watchTicker': true,
|
|
28
28
|
'watchTickers': true,
|
|
29
29
|
'watchOrderBook': true,
|
|
30
|
+
'watchOrderBookForSymbols': true,
|
|
30
31
|
'watchOrders': true,
|
|
31
32
|
'watchTrades': true,
|
|
33
|
+
'watchTradesForSymbols': true,
|
|
32
34
|
'watchOHLCV': true,
|
|
33
35
|
'watchPosition': 'emulated',
|
|
34
36
|
'watchPositions': true,
|
|
@@ -53,8 +55,15 @@ export default class bitmart extends bitmartRest {
|
|
|
53
55
|
'fetchBalanceSnapshot': true,
|
|
54
56
|
'awaitBalanceSnapshot': false, // whether to wait for the balance snapshot before providing updates
|
|
55
57
|
},
|
|
58
|
+
//
|
|
59
|
+
// orderbook channels can have:
|
|
60
|
+
// - 'depth5', 'depth20', 'depth50' // these endpoints emit full Orderbooks once in every 500ms
|
|
61
|
+
// - 'depth/increase100' // this endpoint is preferred, because it emits once in 100ms. however, when this value is chosen, it only affects spot-market, but contracts markets automatically `depth50` will be being used
|
|
56
62
|
'watchOrderBook': {
|
|
57
|
-
'depth': 'depth/increase100',
|
|
63
|
+
'depth': 'depth/increase100',
|
|
64
|
+
},
|
|
65
|
+
'watchOrderBookForSymbols': {
|
|
66
|
+
'depth': 'depth/increase100',
|
|
58
67
|
},
|
|
59
68
|
'ws': {
|
|
60
69
|
'inflate': true,
|
|
@@ -101,6 +110,24 @@ export default class bitmart extends bitmartRest {
|
|
|
101
110
|
}
|
|
102
111
|
return await this.watch(url, messageHash, this.deepExtend(request, params), messageHash);
|
|
103
112
|
}
|
|
113
|
+
async subscribeMultiple(channel, type, symbols, params = {}) {
|
|
114
|
+
const url = this.implodeHostname(this.urls['api']['ws'][type]['public']);
|
|
115
|
+
const channelType = (type === 'spot') ? 'spot' : 'futures';
|
|
116
|
+
const actionType = (type === 'spot') ? 'op' : 'action';
|
|
117
|
+
const rawSubscriptions = [];
|
|
118
|
+
const messageHashes = [];
|
|
119
|
+
for (let i = 0; i < symbols.length; i++) {
|
|
120
|
+
const market = this.market(symbols[i]);
|
|
121
|
+
const message = channelType + '/' + channel + ':' + market['id'];
|
|
122
|
+
rawSubscriptions.push(message);
|
|
123
|
+
messageHashes.push(channel + ':' + market['symbol']);
|
|
124
|
+
}
|
|
125
|
+
const request = {
|
|
126
|
+
'args': rawSubscriptions,
|
|
127
|
+
};
|
|
128
|
+
request[actionType] = 'subscribe';
|
|
129
|
+
return await this.watchMultiple(url, messageHashes, this.deepExtend(request, params), rawSubscriptions);
|
|
130
|
+
}
|
|
104
131
|
async watchBalance(params = {}) {
|
|
105
132
|
/**
|
|
106
133
|
* @method
|
|
@@ -248,17 +275,43 @@ export default class bitmart extends bitmartRest {
|
|
|
248
275
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
249
276
|
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
|
|
250
277
|
*/
|
|
278
|
+
return await this.watchTradesForSymbols([symbol], since, limit, params);
|
|
279
|
+
}
|
|
280
|
+
async watchTradesForSymbols(symbols, since = undefined, limit = undefined, params = {}) {
|
|
281
|
+
/**
|
|
282
|
+
* @method
|
|
283
|
+
* @name bitmart#watchTradesForSymbols
|
|
284
|
+
* @see https://developer-pro.bitmart.com/en/spot/#public-trade-channel
|
|
285
|
+
* @description get the list of most recent trades for a list of symbols
|
|
286
|
+
* @param {string[]} symbols unified symbol of the market to fetch trades for
|
|
287
|
+
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
288
|
+
* @param {int} [limit] the maximum amount of trades to fetch
|
|
289
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
290
|
+
* @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
|
|
291
|
+
*/
|
|
251
292
|
await this.loadMarkets();
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
const trades = await this.subscribe('trade', symbol, type, params);
|
|
293
|
+
let marketType = undefined;
|
|
294
|
+
[symbols, marketType, params] = this.getParamsForMultipleSub('watchTradesForSymbols', symbols, limit, params);
|
|
295
|
+
const channelName = 'trade';
|
|
296
|
+
const trades = await this.subscribeMultiple(channelName, marketType, symbols, params);
|
|
257
297
|
if (this.newUpdates) {
|
|
258
|
-
|
|
298
|
+
const first = this.safeDict(trades, 0);
|
|
299
|
+
const tradeSymbol = this.safeString(first, 'symbol');
|
|
300
|
+
limit = trades.getLimit(tradeSymbol, limit);
|
|
259
301
|
}
|
|
260
302
|
return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
|
|
261
303
|
}
|
|
304
|
+
getParamsForMultipleSub(methodName, symbols, limit = undefined, params = {}) {
|
|
305
|
+
symbols = this.marketSymbols(symbols, undefined, false, true);
|
|
306
|
+
const length = symbols.length;
|
|
307
|
+
if (length > 20) {
|
|
308
|
+
throw new NotSupported(this.id + ' ' + methodName + '() accepts a maximum of 20 symbols in one request');
|
|
309
|
+
}
|
|
310
|
+
const market = this.market(symbols[0]);
|
|
311
|
+
let marketType = undefined;
|
|
312
|
+
[marketType, params] = this.handleMarketTypeAndParams(methodName, market, params);
|
|
313
|
+
return [symbols, marketType, params];
|
|
314
|
+
}
|
|
262
315
|
async watchTicker(symbol, params = {}) {
|
|
263
316
|
/**
|
|
264
317
|
* @method
|
|
@@ -796,16 +849,15 @@ export default class bitmart extends bitmartRest {
|
|
|
796
849
|
// ]
|
|
797
850
|
// }
|
|
798
851
|
//
|
|
799
|
-
const channel = this.safeString2(message, 'table', 'group');
|
|
800
|
-
const isSpot = (channel.indexOf('spot') >= 0);
|
|
801
852
|
const data = this.safeValue(message, 'data');
|
|
802
853
|
if (data === undefined) {
|
|
803
854
|
return;
|
|
804
855
|
}
|
|
805
856
|
let stored = undefined;
|
|
857
|
+
let symbol = undefined;
|
|
806
858
|
for (let i = 0; i < data.length; i++) {
|
|
807
859
|
const trade = this.parseWsTrade(data[i]);
|
|
808
|
-
|
|
860
|
+
symbol = trade['symbol'];
|
|
809
861
|
const tradesLimit = this.safeInteger(this.options, 'tradesLimit', 1000);
|
|
810
862
|
stored = this.safeValue(this.trades, symbol);
|
|
811
863
|
if (stored === undefined) {
|
|
@@ -814,10 +866,7 @@ export default class bitmart extends bitmartRest {
|
|
|
814
866
|
}
|
|
815
867
|
stored.append(trade);
|
|
816
868
|
}
|
|
817
|
-
|
|
818
|
-
if (isSpot) {
|
|
819
|
-
messageHash += ':' + this.safeString(data[0], 'symbol');
|
|
820
|
-
}
|
|
869
|
+
const messageHash = 'trade:' + symbol;
|
|
821
870
|
client.resolve(stored, messageHash);
|
|
822
871
|
}
|
|
823
872
|
parseWsTrade(trade, market = undefined) {
|
|
@@ -1159,8 +1208,8 @@ export default class bitmart extends bitmartRest {
|
|
|
1159
1208
|
// "symbol": "BTC_USDT"
|
|
1160
1209
|
// }
|
|
1161
1210
|
//
|
|
1162
|
-
const asks = this.
|
|
1163
|
-
const bids = this.
|
|
1211
|
+
const asks = this.safeList(message, 'asks', []);
|
|
1212
|
+
const bids = this.safeList(message, 'bids', []);
|
|
1164
1213
|
this.handleDeltas(orderbook['asks'], asks);
|
|
1165
1214
|
this.handleDeltas(orderbook['bids'], bids);
|
|
1166
1215
|
const timestamp = this.safeInteger(message, 'ms_t');
|
|
@@ -1174,6 +1223,7 @@ export default class bitmart extends bitmartRest {
|
|
|
1174
1223
|
handleOrderBook(client, message) {
|
|
1175
1224
|
//
|
|
1176
1225
|
// spot depth-all
|
|
1226
|
+
//
|
|
1177
1227
|
// {
|
|
1178
1228
|
// "data": [
|
|
1179
1229
|
// {
|
|
@@ -1193,33 +1243,31 @@ export default class bitmart extends bitmartRest {
|
|
|
1193
1243
|
// ],
|
|
1194
1244
|
// "table": "spot/depth5"
|
|
1195
1245
|
// }
|
|
1246
|
+
//
|
|
1196
1247
|
// spot increse depth snapshot
|
|
1248
|
+
//
|
|
1197
1249
|
// {
|
|
1198
1250
|
// "data":[
|
|
1199
1251
|
// {
|
|
1200
|
-
//
|
|
1201
|
-
//
|
|
1202
|
-
//
|
|
1203
|
-
// "0.02039"
|
|
1204
|
-
// ],
|
|
1205
|
-
// ...
|
|
1206
|
-
// ],
|
|
1207
|
-
// "bids":[
|
|
1208
|
-
// [
|
|
1209
|
-
// "43652.51",
|
|
1210
|
-
// "0.00500"
|
|
1252
|
+
// "asks":[
|
|
1253
|
+
// [ "43652.52", "0.02039" ],
|
|
1254
|
+
// ...
|
|
1211
1255
|
// ],
|
|
1212
|
-
//
|
|
1213
|
-
//
|
|
1214
|
-
//
|
|
1215
|
-
//
|
|
1216
|
-
//
|
|
1217
|
-
//
|
|
1256
|
+
// "bids":[
|
|
1257
|
+
// [ "43652.51", "0.00500" ],
|
|
1258
|
+
// ...
|
|
1259
|
+
// ],
|
|
1260
|
+
// "ms_t":1703376836487,
|
|
1261
|
+
// "symbol":"BTC_USDT",
|
|
1262
|
+
// "type":"snapshot", // or update
|
|
1263
|
+
// "version":2141731
|
|
1218
1264
|
// }
|
|
1219
1265
|
// ],
|
|
1220
1266
|
// "table":"spot/depth/increase100"
|
|
1221
1267
|
// }
|
|
1268
|
+
//
|
|
1222
1269
|
// swap
|
|
1270
|
+
//
|
|
1223
1271
|
// {
|
|
1224
1272
|
// "group":"futures/depth50:BTCUSDT",
|
|
1225
1273
|
// "data":{
|
|
@@ -1240,50 +1288,69 @@ export default class bitmart extends bitmartRest {
|
|
|
1240
1288
|
// }
|
|
1241
1289
|
// }
|
|
1242
1290
|
//
|
|
1243
|
-
const
|
|
1244
|
-
|
|
1291
|
+
const isSpot = ('table' in message);
|
|
1292
|
+
let datas = [];
|
|
1293
|
+
if (isSpot) {
|
|
1294
|
+
datas = this.safeList(message, 'data', datas);
|
|
1295
|
+
}
|
|
1296
|
+
else {
|
|
1297
|
+
const orderBookEntry = this.safeDict(message, 'data');
|
|
1298
|
+
if (orderBookEntry !== undefined) {
|
|
1299
|
+
datas.push(orderBookEntry);
|
|
1300
|
+
}
|
|
1301
|
+
}
|
|
1302
|
+
const length = datas.length;
|
|
1303
|
+
if (length <= 0) {
|
|
1245
1304
|
return;
|
|
1246
1305
|
}
|
|
1247
|
-
const
|
|
1248
|
-
const isSpot = (depths === undefined);
|
|
1249
|
-
const table = this.safeString2(message, 'table', 'group');
|
|
1306
|
+
const channelName = this.safeString2(message, 'table', 'group');
|
|
1250
1307
|
// find limit subscribed to
|
|
1251
1308
|
const limitsToCheck = ['100', '50', '20', '10', '5'];
|
|
1252
1309
|
let limit = 0;
|
|
1253
1310
|
for (let i = 0; i < limitsToCheck.length; i++) {
|
|
1254
1311
|
const limitString = limitsToCheck[i];
|
|
1255
|
-
if (
|
|
1312
|
+
if (channelName.indexOf(limitString) >= 0) {
|
|
1256
1313
|
limit = this.parseToInt(limitString);
|
|
1257
1314
|
break;
|
|
1258
1315
|
}
|
|
1259
1316
|
}
|
|
1260
1317
|
if (isSpot) {
|
|
1261
|
-
|
|
1262
|
-
|
|
1318
|
+
const channel = channelName.replace('spot/', '');
|
|
1319
|
+
for (let i = 0; i < datas.length; i++) {
|
|
1320
|
+
const update = datas[i];
|
|
1263
1321
|
const marketId = this.safeString(update, 'symbol');
|
|
1264
1322
|
const symbol = this.safeSymbol(marketId);
|
|
1265
|
-
let orderbook = this.
|
|
1323
|
+
let orderbook = this.safeDict(this.orderbooks, symbol);
|
|
1266
1324
|
if (orderbook === undefined) {
|
|
1267
1325
|
orderbook = this.orderBook({}, limit);
|
|
1268
1326
|
orderbook['symbol'] = symbol;
|
|
1269
1327
|
this.orderbooks[symbol] = orderbook;
|
|
1270
1328
|
}
|
|
1271
1329
|
const type = this.safeValue(update, 'type');
|
|
1272
|
-
if ((type === 'snapshot') || (!(
|
|
1330
|
+
if ((type === 'snapshot') || (!(channelName.indexOf('increase') >= 0))) {
|
|
1273
1331
|
orderbook.reset({});
|
|
1274
1332
|
}
|
|
1275
1333
|
this.handleOrderBookMessage(client, update, orderbook);
|
|
1276
1334
|
const timestamp = this.safeInteger(update, 'ms_t');
|
|
1277
|
-
orderbook['timestamp']
|
|
1278
|
-
|
|
1279
|
-
|
|
1335
|
+
if (orderbook['timestamp'] === undefined) {
|
|
1336
|
+
orderbook['timestamp'] = timestamp;
|
|
1337
|
+
orderbook['datetime'] = this.iso8601(timestamp);
|
|
1338
|
+
}
|
|
1339
|
+
const messageHash = channelName + ':' + marketId;
|
|
1280
1340
|
client.resolve(orderbook, messageHash);
|
|
1341
|
+
// resolve ForSymbols
|
|
1342
|
+
const messageHashForMulti = channel + ':' + symbol;
|
|
1343
|
+
client.resolve(orderbook, messageHashForMulti);
|
|
1281
1344
|
}
|
|
1282
1345
|
}
|
|
1283
1346
|
else {
|
|
1347
|
+
const tableParts = channelName.split(':');
|
|
1348
|
+
const channel = tableParts[0].replace('futures/', '');
|
|
1349
|
+
const data = datas[0]; // contract markets always contain only one member
|
|
1350
|
+
const depths = data['depths'];
|
|
1284
1351
|
const marketId = this.safeString(data, 'symbol');
|
|
1285
1352
|
const symbol = this.safeSymbol(marketId);
|
|
1286
|
-
let orderbook = this.
|
|
1353
|
+
let orderbook = this.safeDict(this.orderbooks, symbol);
|
|
1287
1354
|
if (orderbook === undefined) {
|
|
1288
1355
|
orderbook = this.orderBook({}, limit);
|
|
1289
1356
|
orderbook['symbol'] = symbol;
|
|
@@ -1312,10 +1379,36 @@ export default class bitmart extends bitmartRest {
|
|
|
1312
1379
|
const timestamp = this.safeInteger(data, 'ms_t');
|
|
1313
1380
|
orderbook['timestamp'] = timestamp;
|
|
1314
1381
|
orderbook['datetime'] = this.iso8601(timestamp);
|
|
1315
|
-
const messageHash =
|
|
1382
|
+
const messageHash = channelName;
|
|
1316
1383
|
client.resolve(orderbook, messageHash);
|
|
1384
|
+
// resolve ForSymbols
|
|
1385
|
+
const messageHashForMulti = channel + ':' + symbol;
|
|
1386
|
+
client.resolve(orderbook, messageHashForMulti);
|
|
1317
1387
|
}
|
|
1318
1388
|
}
|
|
1389
|
+
async watchOrderBookForSymbols(symbols, limit = undefined, params = {}) {
|
|
1390
|
+
/**
|
|
1391
|
+
* @method
|
|
1392
|
+
* @name bitmart#watchOrderBookForSymbols
|
|
1393
|
+
* @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
1394
|
+
* @see https://developer-pro.bitmart.com/en/spot/#public-depth-increase-channel
|
|
1395
|
+
* @param {string[]} symbols unified array of symbols
|
|
1396
|
+
* @param {int} [limit] the maximum amount of order book entries to return
|
|
1397
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1398
|
+
* @param {string} [params.depth] the type of order book to subscribe to, default is 'depth/increase100', also accepts 'depth5' or 'depth20' or depth50
|
|
1399
|
+
* @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
|
|
1400
|
+
*/
|
|
1401
|
+
await this.loadMarkets();
|
|
1402
|
+
let type = undefined;
|
|
1403
|
+
[symbols, type, params] = this.getParamsForMultipleSub('watchOrderBookForSymbols', symbols, limit, params);
|
|
1404
|
+
let channel = undefined;
|
|
1405
|
+
[channel, params] = this.handleOptionAndParams(params, 'watchOrderBookForSymbols', 'depth', 'depth/increase100');
|
|
1406
|
+
if (type === 'swap' && channel === 'depth/increase100') {
|
|
1407
|
+
channel = 'depth50';
|
|
1408
|
+
}
|
|
1409
|
+
const orderbook = await this.subscribeMultiple(channel, type, symbols, params);
|
|
1410
|
+
return orderbook.limit();
|
|
1411
|
+
}
|
|
1319
1412
|
async authenticate(type, params = {}) {
|
|
1320
1413
|
this.checkRequiredCredentials();
|
|
1321
1414
|
const url = this.implodeHostname(this.urls['api']['ws'][type]['private']);
|
package/js/src/pro/bitvavo.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export default class bitvavo extends bitvavoRest {
|
|
|
23
23
|
watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
24
24
|
watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
25
25
|
createOrderWs(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
|
|
26
|
-
editOrderWs(id: string, symbol:
|
|
26
|
+
editOrderWs(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
|
|
27
27
|
cancelOrderWs(id: string, symbol?: string, params?: {}): Promise<any>;
|
|
28
28
|
cancelAllOrdersWs(symbol?: string, params?: {}): Promise<any>;
|
|
29
29
|
handleMultipleOrders(client: Client, message: any): void;
|
package/js/src/pro/bybit.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import Client from '../base/ws/Client.js';
|
|
|
4
4
|
export default class bybit extends bybitRest {
|
|
5
5
|
describe(): any;
|
|
6
6
|
requestId(): any;
|
|
7
|
-
getUrlByMarketType(symbol?: Str, isPrivate?: boolean, method?:
|
|
7
|
+
getUrlByMarketType(symbol?: Str, isPrivate?: boolean, method?: string, params?: {}): any;
|
|
8
8
|
cleanParams(params: any): any;
|
|
9
9
|
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
10
10
|
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
package/js/src/pro/bybit.js
CHANGED
|
@@ -187,7 +187,7 @@ export default class bybit extends bybitRest {
|
|
|
187
187
|
const market = this.market(symbol);
|
|
188
188
|
symbol = market['symbol'];
|
|
189
189
|
const messageHash = 'ticker:' + symbol;
|
|
190
|
-
const url = this.getUrlByMarketType(symbol, false, params);
|
|
190
|
+
const url = this.getUrlByMarketType(symbol, false, 'watchTicker', params);
|
|
191
191
|
params = this.cleanParams(params);
|
|
192
192
|
const options = this.safeValue(this.options, 'watchTicker', {});
|
|
193
193
|
let topic = this.safeString(options, 'name', 'tickers');
|
|
@@ -212,7 +212,7 @@ export default class bybit extends bybitRest {
|
|
|
212
212
|
await this.loadMarkets();
|
|
213
213
|
symbols = this.marketSymbols(symbols, undefined, false);
|
|
214
214
|
const messageHashes = [];
|
|
215
|
-
const url = this.getUrlByMarketType(symbols[0], false, params);
|
|
215
|
+
const url = this.getUrlByMarketType(symbols[0], false, 'watchTickers', params);
|
|
216
216
|
params = this.cleanParams(params);
|
|
217
217
|
const options = this.safeValue(this.options, 'watchTickers', {});
|
|
218
218
|
const topic = this.safeString(options, 'name', 'tickers');
|
|
@@ -379,7 +379,7 @@ export default class bybit extends bybitRest {
|
|
|
379
379
|
await this.loadMarkets();
|
|
380
380
|
const market = this.market(symbol);
|
|
381
381
|
symbol = market['symbol'];
|
|
382
|
-
const url = this.getUrlByMarketType(symbol, false, params);
|
|
382
|
+
const url = this.getUrlByMarketType(symbol, false, 'watchOHLCV', params);
|
|
383
383
|
params = this.cleanParams(params);
|
|
384
384
|
let ohlcv = undefined;
|
|
385
385
|
const timeframeId = this.safeString(this.timeframes, timeframe, timeframe);
|
|
@@ -497,7 +497,7 @@ export default class bybit extends bybitRest {
|
|
|
497
497
|
throw new ArgumentsRequired(this.id + ' watchOrderBookForSymbols() requires a non-empty array of symbols');
|
|
498
498
|
}
|
|
499
499
|
symbols = this.marketSymbols(symbols);
|
|
500
|
-
const url = this.getUrlByMarketType(symbols[0], false, params);
|
|
500
|
+
const url = this.getUrlByMarketType(symbols[0], false, 'watchOrderBook', params);
|
|
501
501
|
params = this.cleanParams(params);
|
|
502
502
|
const market = this.market(symbols[0]);
|
|
503
503
|
if (limit === undefined) {
|
|
@@ -629,7 +629,7 @@ export default class bybit extends bybitRest {
|
|
|
629
629
|
throw new ArgumentsRequired(this.id + ' watchTradesForSymbols() requires a non-empty array of symbols');
|
|
630
630
|
}
|
|
631
631
|
params = this.cleanParams(params);
|
|
632
|
-
const url = this.getUrlByMarketType(symbols[0], false, params);
|
|
632
|
+
const url = this.getUrlByMarketType(symbols[0], false, 'watchTrades', params);
|
|
633
633
|
const topics = [];
|
|
634
634
|
const messageHashes = [];
|
|
635
635
|
for (let i = 0; i < symbols.length; i++) {
|
package/js/src/pro/cex.d.ts
CHANGED
|
@@ -40,9 +40,9 @@ export default class cex extends cexRest {
|
|
|
40
40
|
fetchOrderWs(id: string, symbol?: string, params?: {}): Promise<Order>;
|
|
41
41
|
fetchOpenOrdersWs(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
42
42
|
createOrderWs(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
|
|
43
|
-
editOrderWs(id: string, symbol:
|
|
43
|
+
editOrderWs(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
|
|
44
44
|
cancelOrderWs(id: string, symbol?: string, params?: {}): Promise<Order>;
|
|
45
|
-
cancelOrdersWs(ids:
|
|
45
|
+
cancelOrdersWs(ids: string[], symbol?: string, params?: {}): Promise<Order[]>;
|
|
46
46
|
resolveData(client: Client, message: any): void;
|
|
47
47
|
handleConnected(client: Client, message: any): any;
|
|
48
48
|
handleErrorMessage(client: Client, message: any): void;
|
package/js/src/pro/coinbase.d.ts
CHANGED
|
@@ -3,12 +3,12 @@ import { Strings, Tickers, Ticker, Int, Trade, OrderBook, Order } from '../base/
|
|
|
3
3
|
export default class coinbase extends coinbaseRest {
|
|
4
4
|
describe(): any;
|
|
5
5
|
subscribe(name: any, symbol?: any, params?: {}): Promise<any>;
|
|
6
|
-
watchTicker(symbol:
|
|
6
|
+
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
7
7
|
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
8
8
|
handleTickers(client: any, message: any): any;
|
|
9
9
|
parseWsTicker(ticker: any, market?: any): Ticker;
|
|
10
10
|
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
11
|
-
watchOrders(symbol?:
|
|
11
|
+
watchOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
12
12
|
watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
13
13
|
handleTrade(client: any, message: any): any;
|
|
14
14
|
handleOrder(client: any, message: any): any;
|
package/js/src/pro/coinex.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export default class coinex extends coinexRest {
|
|
|
16
16
|
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
17
17
|
watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
18
18
|
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
19
|
-
fetchOHLCVWs(symbol:
|
|
19
|
+
fetchOHLCVWs(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
20
20
|
handleDelta(bookside: any, delta: any): void;
|
|
21
21
|
handleDeltas(bookside: any, deltas: any): void;
|
|
22
22
|
handleOrderBook(client: Client, message: any): void;
|
package/js/src/pro/lbank.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export default class lbank extends lbankRest {
|
|
|
8
8
|
watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
9
9
|
handleOHLCV(client: any, message: any): void;
|
|
10
10
|
fetchTickerWs(symbol: any, params?: {}): Promise<Ticker>;
|
|
11
|
-
watchTicker(symbol:
|
|
11
|
+
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
12
12
|
handleTicker(client: any, message: any): void;
|
|
13
13
|
parseWsTicker(ticker: any, market?: any): Ticker;
|
|
14
14
|
fetchTradesWs(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
package/js/src/pro/mexc.js
CHANGED
|
@@ -472,7 +472,7 @@ export default class mexc extends mexcRest {
|
|
|
472
472
|
}
|
|
473
473
|
try {
|
|
474
474
|
this.handleDelta(storedOrderBook, data);
|
|
475
|
-
const timestamp = this.
|
|
475
|
+
const timestamp = this.safeInteger2(message, 't', 'ts');
|
|
476
476
|
storedOrderBook['timestamp'] = timestamp;
|
|
477
477
|
storedOrderBook['datetime'] = this.iso8601(timestamp);
|
|
478
478
|
}
|
package/js/src/probit.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export default class probit extends Exchange {
|
|
|
44
44
|
network: string;
|
|
45
45
|
info: any;
|
|
46
46
|
}>;
|
|
47
|
-
fetchDepositAddresses(codes?:
|
|
47
|
+
fetchDepositAddresses(codes?: string[], params?: {}): Promise<{}>;
|
|
48
48
|
withdraw(code: string, amount: number, address: any, tag?: any, params?: {}): Promise<Transaction>;
|
|
49
49
|
fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
|
|
50
50
|
fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
|
package/js/src/timex.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export default class timex extends Exchange {
|
|
|
20
20
|
parseBalance(response: any): Balances;
|
|
21
21
|
fetchBalance(params?: {}): Promise<Balances>;
|
|
22
22
|
createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
|
|
23
|
-
editOrder(id: string, symbol:
|
|
23
|
+
editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
|
|
24
24
|
cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
|
|
25
25
|
cancelOrders(ids: any, symbol?: Str, params?: {}): Promise<any>;
|
|
26
26
|
fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
|
package/js/src/upbit.d.ts
CHANGED
|
@@ -72,7 +72,7 @@ export default class upbit extends Exchange {
|
|
|
72
72
|
fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
73
73
|
fetchCanceledOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
74
74
|
fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
|
|
75
|
-
fetchDepositAddresses(codes?:
|
|
75
|
+
fetchDepositAddresses(codes?: string[], params?: {}): Promise<{}>;
|
|
76
76
|
parseDepositAddress(depositAddress: any, currency?: Currency): {
|
|
77
77
|
currency: string;
|
|
78
78
|
address: string;
|
package/js/src/wavesexchange.js
CHANGED
|
@@ -314,7 +314,7 @@ export default class wavesexchange extends Exchange {
|
|
|
314
314
|
},
|
|
315
315
|
},
|
|
316
316
|
'currencies': {
|
|
317
|
-
'WX': this.safeCurrencyStructure({ 'id': 'EMAMLxDnv3xiz8RXg8Btj33jcEw3wLczL3JKYYmuubpc', 'numericId': undefined, 'code': 'WX', 'precision': this.
|
|
317
|
+
'WX': this.safeCurrencyStructure({ 'id': 'EMAMLxDnv3xiz8RXg8Btj33jcEw3wLczL3JKYYmuubpc', 'numericId': undefined, 'code': 'WX', 'precision': this.parseToInt('8') }),
|
|
318
318
|
},
|
|
319
319
|
'precisionMode': DECIMAL_PLACES,
|
|
320
320
|
'options': {
|
package/js/src/whitebit.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export default class whitebit extends Exchange {
|
|
|
9
9
|
fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
|
|
10
10
|
parseMarket(market: any): Market;
|
|
11
11
|
fetchCurrencies(params?: {}): Promise<{}>;
|
|
12
|
-
fetchTransactionFees(codes?:
|
|
12
|
+
fetchTransactionFees(codes?: string[], params?: {}): Promise<{
|
|
13
13
|
withdraw: {};
|
|
14
14
|
deposit: {};
|
|
15
15
|
info: any;
|
|
@@ -51,7 +51,7 @@ export default class whitebit extends Exchange {
|
|
|
51
51
|
info: any;
|
|
52
52
|
}>;
|
|
53
53
|
setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
|
|
54
|
-
transfer(code: string, amount: number, fromAccount:
|
|
54
|
+
transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
|
|
55
55
|
parseTransfer(transfer: any, currency?: Currency): {
|
|
56
56
|
info: any;
|
|
57
57
|
id: any;
|
package/js/src/woo.d.ts
CHANGED
|
@@ -13,11 +13,11 @@ export default class woo extends Exchange {
|
|
|
13
13
|
parseTokenAndFeeTemp(item: any, feeTokenKey: any, feeAmountKey: any): any;
|
|
14
14
|
fetchTradingFees(params?: {}): Promise<{}>;
|
|
15
15
|
fetchCurrencies(params?: {}): Promise<{}>;
|
|
16
|
-
createMarketBuyOrderWithCost(symbol: string, cost:
|
|
16
|
+
createMarketBuyOrderWithCost(symbol: string, cost: number, params?: {}): Promise<Order>;
|
|
17
17
|
createTrailingAmountOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, trailingAmount?: any, trailingTriggerPrice?: any, params?: {}): Promise<Order>;
|
|
18
18
|
createTrailingPercentOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, trailingPercent?: any, trailingTriggerPrice?: any, params?: {}): Promise<Order>;
|
|
19
19
|
createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
|
|
20
|
-
editOrder(id: string, symbol:
|
|
20
|
+
editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: number, price?: number, params?: {}): Promise<Order>;
|
|
21
21
|
cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
|
|
22
22
|
cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
|
|
23
23
|
fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
|
|
@@ -73,7 +73,7 @@ export default class woo extends Exchange {
|
|
|
73
73
|
fetchDepositsWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
|
|
74
74
|
parseTransaction(transaction: any, currency?: Currency): Transaction;
|
|
75
75
|
parseTransactionStatus(status: any): string;
|
|
76
|
-
transfer(code: string, amount: number, fromAccount:
|
|
76
|
+
transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
|
|
77
77
|
fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
|
|
78
78
|
parseTransfer(transfer: any, currency?: Currency): {
|
|
79
79
|
id: string;
|
package/js/src/woo.js
CHANGED
|
@@ -1068,7 +1068,7 @@ export default class woo extends Exchange {
|
|
|
1068
1068
|
if (stopPrice !== undefined) {
|
|
1069
1069
|
request['triggerPrice'] = this.priceToPrecision(symbol, stopPrice);
|
|
1070
1070
|
}
|
|
1071
|
-
const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activatedPrice', price);
|
|
1071
|
+
const trailingTriggerPrice = this.safeString2(params, 'trailingTriggerPrice', 'activatedPrice', this.numberToString(price));
|
|
1072
1072
|
const trailingAmount = this.safeString2(params, 'trailingAmount', 'callbackValue');
|
|
1073
1073
|
const trailingPercent = this.safeString2(params, 'trailingPercent', 'callbackRate');
|
|
1074
1074
|
const isTrailingAmountOrder = trailingAmount !== undefined;
|
package/js/src/zonda.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export default class zonda extends Exchange {
|
|
|
15
15
|
fetchBalance(params?: {}): Promise<Balances>;
|
|
16
16
|
fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
17
17
|
parseTicker(ticker: any, market?: Market): Ticker;
|
|
18
|
-
fetchTicker(symbol:
|
|
18
|
+
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
19
19
|
fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
20
20
|
fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
|
|
21
21
|
parseLedgerEntry(item: any, currency?: Currency): {
|
|
@@ -57,8 +57,8 @@ export default class zonda extends Exchange {
|
|
|
57
57
|
network: any;
|
|
58
58
|
info: any;
|
|
59
59
|
}>;
|
|
60
|
-
fetchDepositAddresses(codes?:
|
|
61
|
-
transfer(code: string, amount: number, fromAccount:
|
|
60
|
+
fetchDepositAddresses(codes?: string[], params?: {}): Promise<{}>;
|
|
61
|
+
transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
|
|
62
62
|
parseTransfer(transfer: any, currency?: Currency): {
|
|
63
63
|
info: any;
|
|
64
64
|
id: any;
|