ccxt 4.1.18 → 4.1.20
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 -7
- package/build.sh +2 -0
- package/dist/ccxt.browser.js +661 -351
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/ace.js +2 -5
- package/dist/cjs/src/base/Exchange.js +20 -2
- package/dist/cjs/src/bigone.js +1 -1
- package/dist/cjs/src/binance.js +4 -3
- package/dist/cjs/src/bitfinex.js +1 -1
- package/dist/cjs/src/bitfinex2.js +1 -1
- package/dist/cjs/src/bitget.js +372 -125
- package/dist/cjs/src/bithumb.js +1 -1
- package/dist/cjs/src/bitmart.js +6 -7
- package/dist/cjs/src/bitmex.js +1 -1
- package/dist/cjs/src/bitpanda.js +1 -1
- package/dist/cjs/src/bitstamp.js +2 -3
- package/dist/cjs/src/bittrex.js +3 -3
- package/dist/cjs/src/btcalpha.js +2 -3
- package/dist/cjs/src/bybit.js +3 -3
- package/dist/cjs/src/cex.js +1 -1
- package/dist/cjs/src/coinbase.js +5 -6
- package/dist/cjs/src/coinbasepro.js +1 -1
- package/dist/cjs/src/coinex.js +1 -1
- package/dist/cjs/src/coinfalcon.js +1 -1
- package/dist/cjs/src/coinmate.js +2 -2
- package/dist/cjs/src/coinone.js +1 -1
- package/dist/cjs/src/coinsph.js +1 -0
- package/dist/cjs/src/coinspot.js +1 -1
- package/dist/cjs/src/delta.js +1 -1
- package/dist/cjs/src/deribit.js +1 -1
- package/dist/cjs/src/digifinex.js +8 -9
- package/dist/cjs/src/exmo.js +3 -4
- package/dist/cjs/src/gate.js +2 -1
- package/dist/cjs/src/gemini.js +8 -1
- package/dist/cjs/src/hitbtc.js +1 -1
- package/dist/cjs/src/hollaex.js +1 -1
- package/dist/cjs/src/huobi.js +13 -19
- package/dist/cjs/src/huobijp.js +3 -3
- package/dist/cjs/src/indodax.js +2 -1
- package/dist/cjs/src/kraken.js +3 -2
- package/dist/cjs/src/krakenfutures.js +7 -6
- package/dist/cjs/src/kucoin.js +3 -2
- package/dist/cjs/src/kucoinfutures.js +2 -2
- package/dist/cjs/src/kuna.js +1 -1
- package/dist/cjs/src/lbank.js +2 -2
- package/dist/cjs/src/lbank2.js +11 -8
- package/dist/cjs/src/luno.js +1 -1
- package/dist/cjs/src/lykke.js +2 -2
- package/dist/cjs/src/mexc.js +7 -8
- package/dist/cjs/src/novadax.js +1 -1
- package/dist/cjs/src/oceanex.js +1 -1
- package/dist/cjs/src/okcoin.js +4 -5
- package/dist/cjs/src/okx.js +9 -10
- package/dist/cjs/src/poloniex.js +5 -5
- package/dist/cjs/src/poloniexfutures.js +2 -2
- package/dist/cjs/src/pro/kucoin.js +87 -44
- package/dist/cjs/src/pro/okx.js +6 -5
- package/dist/cjs/src/tidex.js +1 -1
- package/dist/cjs/src/upbit.js +1 -1
- package/dist/cjs/src/wazirx.js +1 -1
- package/dist/cjs/src/whitebit.js +1 -1
- package/dist/cjs/src/woo.js +3 -1
- package/dist/cjs/src/yobit.js +1 -1
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/binance.d.ts +1 -0
- package/js/src/abstract/binancecoinm.d.ts +1 -0
- package/js/src/abstract/binanceus.d.ts +1 -0
- package/js/src/abstract/binanceusdm.d.ts +1 -0
- package/js/src/ace.d.ts +2 -2
- package/js/src/ace.js +2 -5
- package/js/src/ascendex.d.ts +7 -7
- package/js/src/base/Exchange.d.ts +3 -0
- package/js/src/base/Exchange.js +20 -2
- package/js/src/base/types.d.ts +3 -0
- package/js/src/bigone.d.ts +1 -1
- package/js/src/bigone.js +1 -1
- package/js/src/binance.d.ts +1 -1
- package/js/src/binance.js +4 -3
- package/js/src/bitfinex.d.ts +1 -1
- package/js/src/bitfinex.js +1 -1
- package/js/src/bitfinex2.d.ts +3 -3
- package/js/src/bitfinex2.js +1 -1
- package/js/src/bitflyer.d.ts +7 -7
- package/js/src/bitget.d.ts +1 -1
- package/js/src/bitget.js +372 -125
- package/js/src/bithumb.d.ts +1 -1
- package/js/src/bithumb.js +1 -1
- package/js/src/bitmart.d.ts +2 -2
- package/js/src/bitmart.js +6 -7
- package/js/src/bitmex.d.ts +4 -4
- package/js/src/bitmex.js +1 -1
- package/js/src/bitopro.d.ts +2 -2
- package/js/src/bitpanda.d.ts +1 -1
- package/js/src/bitpanda.js +1 -1
- package/js/src/bitstamp.d.ts +1 -1
- package/js/src/bitstamp.js +2 -3
- package/js/src/bittrex.d.ts +2 -2
- package/js/src/bittrex.js +3 -3
- package/js/src/btcalpha.d.ts +1 -1
- package/js/src/btcalpha.js +2 -3
- package/js/src/btcmarkets.d.ts +7 -7
- package/js/src/btcturk.d.ts +6 -6
- package/js/src/bybit.d.ts +2 -2
- package/js/src/bybit.js +3 -3
- package/js/src/cex.d.ts +9 -9
- package/js/src/cex.js +1 -1
- package/js/src/coinbase.d.ts +5 -5
- package/js/src/coinbase.js +5 -6
- package/js/src/coinbasepro.d.ts +1 -1
- package/js/src/coinbasepro.js +1 -1
- package/js/src/coincheck.d.ts +4 -4
- package/js/src/coinex.d.ts +1 -1
- package/js/src/coinex.js +1 -1
- package/js/src/coinfalcon.d.ts +4 -4
- package/js/src/coinfalcon.js +1 -1
- package/js/src/coinmate.d.ts +1 -22
- package/js/src/coinmate.js +2 -2
- package/js/src/coinone.d.ts +1 -1
- package/js/src/coinone.js +1 -1
- package/js/src/coinsph.js +1 -0
- package/js/src/coinspot.d.ts +1 -1
- package/js/src/coinspot.js +1 -1
- package/js/src/cryptocom.d.ts +4 -4
- package/js/src/delta.d.ts +1 -1
- package/js/src/delta.js +1 -1
- package/js/src/deribit.d.ts +4 -4
- package/js/src/deribit.js +1 -1
- package/js/src/digifinex.d.ts +2 -2
- package/js/src/digifinex.js +8 -9
- package/js/src/exmo.d.ts +14 -14
- package/js/src/exmo.js +3 -4
- package/js/src/gate.d.ts +10 -12
- package/js/src/gate.js +2 -1
- package/js/src/gemini.d.ts +7 -7
- package/js/src/gemini.js +8 -1
- package/js/src/hitbtc.d.ts +23 -23
- package/js/src/hitbtc.js +1 -1
- package/js/src/hollaex.d.ts +5 -5
- package/js/src/hollaex.js +1 -1
- package/js/src/huobi.d.ts +8 -27
- package/js/src/huobi.js +13 -19
- package/js/src/huobijp.d.ts +15 -34
- package/js/src/huobijp.js +3 -3
- package/js/src/idex.d.ts +9 -9
- package/js/src/indodax.d.ts +6 -6
- package/js/src/indodax.js +2 -1
- package/js/src/kraken.d.ts +7 -7
- package/js/src/kraken.js +3 -2
- package/js/src/krakenfutures.d.ts +2 -2
- package/js/src/krakenfutures.js +7 -6
- package/js/src/kucoin.d.ts +3 -7
- package/js/src/kucoin.js +3 -2
- package/js/src/kucoinfutures.d.ts +1 -24
- package/js/src/kucoinfutures.js +2 -2
- package/js/src/kuna.d.ts +3 -3
- package/js/src/kuna.js +1 -1
- package/js/src/lbank.d.ts +7 -7
- package/js/src/lbank.js +3 -3
- package/js/src/lbank2.d.ts +6 -6
- package/js/src/lbank2.js +11 -8
- package/js/src/luno.d.ts +1 -1
- package/js/src/luno.js +1 -1
- package/js/src/lykke.d.ts +1 -20
- package/js/src/lykke.js +2 -2
- package/js/src/mercado.d.ts +4 -4
- package/js/src/mexc.d.ts +4 -4
- package/js/src/mexc.js +7 -8
- package/js/src/ndax.d.ts +3 -3
- package/js/src/novadax.d.ts +1 -1
- package/js/src/novadax.js +1 -1
- package/js/src/oceanex.d.ts +14 -14
- package/js/src/oceanex.js +1 -1
- package/js/src/okcoin.d.ts +10 -10
- package/js/src/okcoin.js +4 -5
- package/js/src/okx.d.ts +2 -2
- package/js/src/okx.js +9 -10
- package/js/src/phemex.d.ts +3 -8
- package/js/src/poloniex.d.ts +4 -4
- package/js/src/poloniex.js +5 -5
- package/js/src/poloniexfutures.d.ts +4 -26
- package/js/src/poloniexfutures.js +2 -2
- package/js/src/pro/kucoin.js +87 -44
- package/js/src/pro/okx.js +6 -5
- package/js/src/tidex.d.ts +6 -6
- package/js/src/tidex.js +1 -1
- package/js/src/upbit.d.ts +6 -6
- package/js/src/upbit.js +1 -1
- package/js/src/wavesexchange.d.ts +2 -2
- package/js/src/wazirx.d.ts +1 -1
- package/js/src/wazirx.js +1 -1
- package/js/src/whitebit.d.ts +10 -10
- package/js/src/whitebit.js +1 -1
- package/js/src/woo.d.ts +1 -1
- package/js/src/woo.js +3 -1
- package/js/src/yobit.d.ts +9 -9
- package/js/src/yobit.js +1 -1
- package/js/src/zonda.d.ts +5 -5
- package/package.json +4 -3
package/dist/ccxt.browser.js
CHANGED
|
@@ -1805,7 +1805,7 @@ class ace extends _abstract_ace_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
1805
1805
|
const ticker = this.parseTicker(rawTicker, market);
|
|
1806
1806
|
tickers.push(ticker);
|
|
1807
1807
|
}
|
|
1808
|
-
return this.
|
|
1808
|
+
return this.filterByArrayTickers(tickers, 'symbol', symbols);
|
|
1809
1809
|
}
|
|
1810
1810
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
1811
1811
|
/**
|
|
@@ -2346,10 +2346,7 @@ class ace extends _abstract_ace_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
2346
2346
|
// }
|
|
2347
2347
|
//
|
|
2348
2348
|
const data = this.safeValue(response, 'attachment');
|
|
2349
|
-
const trades = this.safeValue(data, 'trades');
|
|
2350
|
-
if (trades === undefined) {
|
|
2351
|
-
return trades;
|
|
2352
|
-
}
|
|
2349
|
+
const trades = this.safeValue(data, 'trades', []);
|
|
2353
2350
|
return this.parseTrades(trades, market, since, limit);
|
|
2354
2351
|
}
|
|
2355
2352
|
async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -6588,6 +6585,7 @@ class Exchange {
|
|
|
6588
6585
|
this.orderbooks = {};
|
|
6589
6586
|
this.tickers = {};
|
|
6590
6587
|
this.orders = undefined;
|
|
6588
|
+
this.triggerOrders = undefined;
|
|
6591
6589
|
this.transactions = {};
|
|
6592
6590
|
this.positions = {};
|
|
6593
6591
|
this.requiresWeb3 = false;
|
|
@@ -7508,11 +7506,17 @@ class Exchange {
|
|
|
7508
7506
|
// V
|
|
7509
7507
|
client.throttle(cost).then(() => {
|
|
7510
7508
|
client.send(message);
|
|
7511
|
-
}).catch((e) => {
|
|
7509
|
+
}).catch((e) => {
|
|
7510
|
+
delete client.subscriptions[subscribeHash];
|
|
7511
|
+
future.reject(e);
|
|
7512
|
+
});
|
|
7512
7513
|
}
|
|
7513
7514
|
else {
|
|
7514
7515
|
client.send(message)
|
|
7515
|
-
.catch((e) => {
|
|
7516
|
+
.catch((e) => {
|
|
7517
|
+
delete client.subscriptions[subscribeHash];
|
|
7518
|
+
future.reject(e);
|
|
7519
|
+
});
|
|
7516
7520
|
}
|
|
7517
7521
|
}
|
|
7518
7522
|
}).catch((e) => {
|
|
@@ -9826,6 +9830,9 @@ class Exchange {
|
|
|
9826
9830
|
async fetchTickers(symbols = undefined, params = {}) {
|
|
9827
9831
|
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' fetchTickers() is not supported yet');
|
|
9828
9832
|
}
|
|
9833
|
+
async fetchOrderBooks(symbols = undefined, limit = undefined, params = {}) {
|
|
9834
|
+
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' fetchOrderBooks() is not supported yet');
|
|
9835
|
+
}
|
|
9829
9836
|
async watchTickers(symbols = undefined, params = {}) {
|
|
9830
9837
|
throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.NotSupported(this.id + ' watchTickers() is not supported yet');
|
|
9831
9838
|
}
|
|
@@ -10707,6 +10714,14 @@ class Exchange {
|
|
|
10707
10714
|
*/
|
|
10708
10715
|
return this.filterByArray(objects, key, values, indexed);
|
|
10709
10716
|
}
|
|
10717
|
+
filterByArrayTickers(objects, key, values = undefined, indexed = true) {
|
|
10718
|
+
/**
|
|
10719
|
+
* @ignore
|
|
10720
|
+
* @method
|
|
10721
|
+
* @description Typed wrapper for filterByArray that returns a dictionary of tickers
|
|
10722
|
+
*/
|
|
10723
|
+
return this.filterByArray(objects, key, values, indexed);
|
|
10724
|
+
}
|
|
10710
10725
|
resolvePromiseIfMessagehashMatches(client, prefix, symbol, data) {
|
|
10711
10726
|
const messageHashes = this.findMessageHashes(client, prefix);
|
|
10712
10727
|
for (let i = 0; i < messageHashes.length; i++) {
|
|
@@ -14875,7 +14890,7 @@ class bigone extends _abstract_bigone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
14875
14890
|
const symbol = ticker['symbol'];
|
|
14876
14891
|
result[symbol] = ticker;
|
|
14877
14892
|
}
|
|
14878
|
-
return this.
|
|
14893
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
14879
14894
|
}
|
|
14880
14895
|
async fetchTime(params = {}) {
|
|
14881
14896
|
/**
|
|
@@ -16746,6 +16761,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
16746
16761
|
},
|
|
16747
16762
|
'dapiData': {
|
|
16748
16763
|
'get': {
|
|
16764
|
+
'delivery-price': 1,
|
|
16749
16765
|
'openInterestHist': 1,
|
|
16750
16766
|
'topLongShortAccountRatio': 1,
|
|
16751
16767
|
'topLongShortPositionRatio': 1,
|
|
@@ -16968,8 +16984,8 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
16968
16984
|
'get': {
|
|
16969
16985
|
'ping': 0.2,
|
|
16970
16986
|
'time': 0.2,
|
|
16971
|
-
'depth': { 'cost':
|
|
16972
|
-
'trades':
|
|
16987
|
+
'depth': { 'cost': 1, 'byLimit': [[100, 1], [500, 5], [1000, 10], [5000, 50]] },
|
|
16988
|
+
'trades': 2,
|
|
16973
16989
|
'aggTrades': 0.4,
|
|
16974
16990
|
'historicalTrades': 2,
|
|
16975
16991
|
'klines': 0.4,
|
|
@@ -17066,7 +17082,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
17066
17082
|
'margin/marginInterestHistory': 1,
|
|
17067
17083
|
'portfolio/interest-history': 50,
|
|
17068
17084
|
'um/income': 30,
|
|
17069
|
-
'cm/income
|
|
17085
|
+
'cm/income': 30,
|
|
17070
17086
|
'um/account': 5,
|
|
17071
17087
|
'cm/account': 5,
|
|
17072
17088
|
'portfolio/repay-futures-switch': 3,
|
|
@@ -32962,7 +32978,7 @@ class bitfinex extends _abstract_bitfinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
32962
32978
|
const symbol = ticker['symbol'];
|
|
32963
32979
|
result[symbol] = ticker;
|
|
32964
32980
|
}
|
|
32965
|
-
return this.
|
|
32981
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
32966
32982
|
}
|
|
32967
32983
|
async fetchTicker(symbol, params = {}) {
|
|
32968
32984
|
/**
|
|
@@ -34942,7 +34958,7 @@ class bitfinex2 extends _abstract_bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["
|
|
|
34942
34958
|
const symbol = market['symbol'];
|
|
34943
34959
|
result[symbol] = this.parseTicker(ticker, market);
|
|
34944
34960
|
}
|
|
34945
|
-
return this.
|
|
34961
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
34946
34962
|
}
|
|
34947
34963
|
async fetchTicker(symbol, params = {}) {
|
|
34948
34964
|
/**
|
|
@@ -40876,42 +40892,61 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
40876
40892
|
// "symbol": "BTCUSDT_UMCBL"
|
|
40877
40893
|
// }
|
|
40878
40894
|
//
|
|
40879
|
-
//
|
|
40895
|
+
// spot: fetchMyTrades
|
|
40880
40896
|
//
|
|
40881
40897
|
// {
|
|
40882
|
-
// accountId:
|
|
40883
|
-
// symbol:
|
|
40884
|
-
// orderId:
|
|
40885
|
-
// fillId:
|
|
40886
|
-
// orderType:
|
|
40887
|
-
// side:
|
|
40888
|
-
// fillPrice:
|
|
40889
|
-
// fillQuantity:
|
|
40890
|
-
// fillTotalAmount:
|
|
40891
|
-
// feeCcy:
|
|
40892
|
-
// fees:
|
|
40893
|
-
//
|
|
40898
|
+
// "accountId": "7264631750",
|
|
40899
|
+
// "symbol": "BTCUSDT_SPBL",
|
|
40900
|
+
// "orderId": "1098394344925597696",
|
|
40901
|
+
// "fillId": "1098394344974925824",
|
|
40902
|
+
// "orderType": "market",
|
|
40903
|
+
// "side": "sell",
|
|
40904
|
+
// "fillPrice": "28467.68",
|
|
40905
|
+
// "fillQuantity": "0.0002",
|
|
40906
|
+
// "fillTotalAmount": "5.693536",
|
|
40907
|
+
// "feeCcy": "USDT",
|
|
40908
|
+
// "fees": "-0.005693536",
|
|
40909
|
+
// "takerMakerFlag": "taker",
|
|
40910
|
+
// "cTime": "1697603539699"
|
|
40894
40911
|
// }
|
|
40895
40912
|
//
|
|
40913
|
+
// swap and future: fetchMyTrades
|
|
40914
|
+
//
|
|
40896
40915
|
// {
|
|
40897
|
-
// tradeId:
|
|
40898
|
-
// symbol:
|
|
40899
|
-
// orderId:
|
|
40900
|
-
// price:
|
|
40901
|
-
// sizeQty:
|
|
40902
|
-
// fee:
|
|
40903
|
-
// side:
|
|
40904
|
-
// fillAmount:
|
|
40905
|
-
// profit:
|
|
40906
|
-
//
|
|
40916
|
+
// "tradeId": "1099351653724958721",
|
|
40917
|
+
// "symbol": "BTCUSDT_UMCBL",
|
|
40918
|
+
// "orderId": "1099351653682413569",
|
|
40919
|
+
// "price": "29531.3",
|
|
40920
|
+
// "sizeQty": "0.001",
|
|
40921
|
+
// "fee": "-0.01771878",
|
|
40922
|
+
// "side": "close_long",
|
|
40923
|
+
// "fillAmount": "29.5313",
|
|
40924
|
+
// "profit": "0.001",
|
|
40925
|
+
// "enterPointSource": "WEB",
|
|
40926
|
+
// "tradeSide": "close_long",
|
|
40927
|
+
// "holdMode": "double_hold",
|
|
40928
|
+
// "takerMakerFlag": "taker",
|
|
40929
|
+
// "cTime": "1697831779891"
|
|
40930
|
+
// }
|
|
40931
|
+
//
|
|
40932
|
+
// isolated and cross margin: fetchMyTrades
|
|
40933
|
+
//
|
|
40934
|
+
// {
|
|
40935
|
+
// "orderId": "1099353730455318528",
|
|
40936
|
+
// "fillId": "1099353730627092481",
|
|
40937
|
+
// "orderType": "market",
|
|
40938
|
+
// "side": "sell",
|
|
40939
|
+
// "fillPrice": "29543.7",
|
|
40940
|
+
// "fillQuantity": "0.0001",
|
|
40941
|
+
// "fillTotalAmount": "2.95437",
|
|
40942
|
+
// "feeCcy": "USDT",
|
|
40943
|
+
// "fees": "-0.00295437",
|
|
40944
|
+
// "ctime": "1697832275063"
|
|
40907
40945
|
// }
|
|
40908
40946
|
//
|
|
40909
40947
|
const marketId = this.safeString(trade, 'symbol');
|
|
40910
40948
|
const symbol = this.safeSymbol(marketId, market);
|
|
40911
|
-
|
|
40912
|
-
amount = this.safeString(trade, 'sizeQty', amount);
|
|
40913
|
-
let timestamp = this.safeInteger2(trade, 'fillTime', 'timestamp');
|
|
40914
|
-
timestamp = this.safeInteger(trade, 'cTime', timestamp);
|
|
40949
|
+
const timestamp = this.safeIntegerN(trade, ['fillTime', 'timestamp', 'ctime', 'cTime']);
|
|
40915
40950
|
let fee = undefined;
|
|
40916
40951
|
const feeAmount = this.safeString(trade, 'fees');
|
|
40917
40952
|
if (feeAmount !== undefined) {
|
|
@@ -40922,7 +40957,6 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
40922
40957
|
'cost': _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringNeg */ .O.stringNeg(feeAmount),
|
|
40923
40958
|
};
|
|
40924
40959
|
}
|
|
40925
|
-
const datetime = this.iso8601(timestamp);
|
|
40926
40960
|
return this.safeTrade({
|
|
40927
40961
|
'info': trade,
|
|
40928
40962
|
'id': this.safeString2(trade, 'tradeId', 'fillId'),
|
|
@@ -40930,13 +40964,13 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
40930
40964
|
'symbol': symbol,
|
|
40931
40965
|
'side': this.safeStringLower(trade, 'side'),
|
|
40932
40966
|
'type': this.safeString(trade, 'orderType'),
|
|
40933
|
-
'takerOrMaker':
|
|
40967
|
+
'takerOrMaker': this.safeString(trade, 'takerMakerFlag'),
|
|
40934
40968
|
'price': this.safeString2(trade, 'fillPrice', 'price'),
|
|
40935
|
-
'amount':
|
|
40969
|
+
'amount': this.safeStringN(trade, ['fillQuantity', 'size', 'sizeQty']),
|
|
40936
40970
|
'cost': undefined,
|
|
40937
|
-
'fee': fee,
|
|
40938
40971
|
'timestamp': timestamp,
|
|
40939
|
-
'datetime':
|
|
40972
|
+
'datetime': this.iso8601(timestamp),
|
|
40973
|
+
'fee': fee,
|
|
40940
40974
|
}, market);
|
|
40941
40975
|
}
|
|
40942
40976
|
async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
@@ -41612,18 +41646,31 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
41612
41646
|
// "data": "1098753830701928448"
|
|
41613
41647
|
// }
|
|
41614
41648
|
//
|
|
41649
|
+
// isolated and cross margin: fetchOpenOrders, fetchCanceledOrders, fetchClosedOrders
|
|
41650
|
+
//
|
|
41651
|
+
// {
|
|
41652
|
+
// "symbol": "BTCUSDT",
|
|
41653
|
+
// "orderType": "limit",
|
|
41654
|
+
// "source": "WEB",
|
|
41655
|
+
// "orderId": "1099108898629627904",
|
|
41656
|
+
// "clientOid": "f9b55416029e4cc2bbbe2f40ac368c38",
|
|
41657
|
+
// "loanType": "autoLoan",
|
|
41658
|
+
// "price": "25000",
|
|
41659
|
+
// "side": "buy",
|
|
41660
|
+
// "status": "new",
|
|
41661
|
+
// "baseQuantity": "0.0002",
|
|
41662
|
+
// "quoteAmount": "5",
|
|
41663
|
+
// "fillPrice": "0",
|
|
41664
|
+
// "fillQuantity": "0",
|
|
41665
|
+
// "fillTotalAmount": "0",
|
|
41666
|
+
// "ctime": "1697773902588"
|
|
41667
|
+
// }
|
|
41668
|
+
//
|
|
41615
41669
|
const marketId = this.safeString(order, 'symbol');
|
|
41616
41670
|
market = this.safeMarket(marketId, market);
|
|
41617
|
-
const
|
|
41618
|
-
const
|
|
41619
|
-
const
|
|
41620
|
-
const amount = this.safeString2(order, 'quantity', 'size');
|
|
41621
|
-
const filled = this.safeString2(order, 'fillQuantity', 'filledQty');
|
|
41622
|
-
const cost = this.safeString2(order, 'fillTotalAmount', 'filledAmount');
|
|
41623
|
-
const average = this.safeString2(order, 'fillPrice', 'priceAvg');
|
|
41624
|
-
const type = this.safeString(order, 'orderType');
|
|
41625
|
-
const timestamp = this.safeInteger(order, 'cTime');
|
|
41626
|
-
const lastUpdatetimestamp = this.safeInteger(order, 'uTime');
|
|
41671
|
+
const timestamp = this.safeInteger2(order, 'cTime', 'ctime');
|
|
41672
|
+
const updateTimestamp = this.safeInteger(order, 'uTime');
|
|
41673
|
+
const rawStatus = this.safeString2(order, 'status', 'state');
|
|
41627
41674
|
let side = this.safeString2(order, 'side', 'posSide');
|
|
41628
41675
|
if ((side === 'open_long') || (side === 'close_short')) {
|
|
41629
41676
|
side = 'buy';
|
|
@@ -41631,7 +41678,6 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
41631
41678
|
else if ((side === 'close_long') || (side === 'open_short')) {
|
|
41632
41679
|
side = 'sell';
|
|
41633
41680
|
}
|
|
41634
|
-
const clientOrderId = this.safeString2(order, 'clientOrderId', 'clientOid');
|
|
41635
41681
|
let fee = undefined;
|
|
41636
41682
|
const feeCostString = this.safeString(order, 'fee');
|
|
41637
41683
|
if (feeCostString !== undefined) {
|
|
@@ -41651,31 +41697,28 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
41651
41697
|
'currency': this.safeCurrencyCode(this.safeString(first, 'feeCoinCode')),
|
|
41652
41698
|
};
|
|
41653
41699
|
}
|
|
41654
|
-
const rawStatus = this.safeString2(order, 'status', 'state');
|
|
41655
|
-
const status = this.parseOrderStatus(rawStatus);
|
|
41656
|
-
const lastTradeTimestamp = this.safeInteger(order, 'uTime');
|
|
41657
41700
|
return this.safeOrder({
|
|
41658
41701
|
'info': order,
|
|
41659
|
-
'id':
|
|
41660
|
-
'clientOrderId': clientOrderId,
|
|
41702
|
+
'id': this.safeString2(order, 'orderId', 'data'),
|
|
41703
|
+
'clientOrderId': this.safeString2(order, 'clientOrderId', 'clientOid'),
|
|
41661
41704
|
'timestamp': timestamp,
|
|
41662
41705
|
'datetime': this.iso8601(timestamp),
|
|
41663
|
-
'lastTradeTimestamp':
|
|
41664
|
-
'lastUpdateTimestamp':
|
|
41665
|
-
'symbol': symbol,
|
|
41666
|
-
'type':
|
|
41706
|
+
'lastTradeTimestamp': updateTimestamp,
|
|
41707
|
+
'lastUpdateTimestamp': updateTimestamp,
|
|
41708
|
+
'symbol': market['symbol'],
|
|
41709
|
+
'type': this.safeString(order, 'orderType'),
|
|
41667
41710
|
'timeInForce': undefined,
|
|
41668
41711
|
'postOnly': undefined,
|
|
41669
41712
|
'side': side,
|
|
41670
|
-
'price': price,
|
|
41713
|
+
'price': this.safeString2(order, 'price', 'executePrice'),
|
|
41671
41714
|
'stopPrice': this.safeNumber(order, 'triggerPrice'),
|
|
41672
41715
|
'triggerPrice': this.safeNumber(order, 'triggerPrice'),
|
|
41673
|
-
'average':
|
|
41674
|
-
'cost':
|
|
41675
|
-
'amount':
|
|
41676
|
-
'filled':
|
|
41716
|
+
'average': this.safeString2(order, 'fillPrice', 'priceAvg'),
|
|
41717
|
+
'cost': this.safeString2(order, 'fillTotalAmount', 'filledAmount'),
|
|
41718
|
+
'amount': this.safeStringN(order, ['quantity', 'size', 'baseQuantity']),
|
|
41719
|
+
'filled': this.safeString2(order, 'fillQuantity', 'filledQty'),
|
|
41677
41720
|
'remaining': undefined,
|
|
41678
|
-
'status':
|
|
41721
|
+
'status': this.parseOrderStatus(rawStatus),
|
|
41679
41722
|
'fee': fee,
|
|
41680
41723
|
'trades': undefined,
|
|
41681
41724
|
}, market);
|
|
@@ -42414,9 +42457,12 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42414
42457
|
* @name bitget#fetchOpenOrders
|
|
42415
42458
|
* @description fetch all unfilled currently open orders
|
|
42416
42459
|
* @see https://bitgetlimited.github.io/apidoc/en/spot/#get-order-list
|
|
42460
|
+
* @see https://bitgetlimited.github.io/apidoc/en/spot/#get-current-plan-orders
|
|
42417
42461
|
* @see https://bitgetlimited.github.io/apidoc/en/mix/#get-all-open-order
|
|
42418
42462
|
* @see https://bitgetlimited.github.io/apidoc/en/mix/#get-plan-order-tpsl-list
|
|
42419
42463
|
* @see https://bitgetlimited.github.io/apidoc/en/mix/#get-open-order
|
|
42464
|
+
* @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-open-orders
|
|
42465
|
+
* @see https://bitgetlimited.github.io/apidoc/en/margin/#get-cross-open-orders
|
|
42420
42466
|
* @param {string} symbol unified market symbol
|
|
42421
42467
|
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
42422
42468
|
* @param {int} [limit] the maximum number of open order structures to retrieve
|
|
@@ -42425,32 +42471,59 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42425
42471
|
*/
|
|
42426
42472
|
await this.loadMarkets();
|
|
42427
42473
|
const request = {};
|
|
42428
|
-
let marketType = undefined;
|
|
42429
|
-
let query = undefined;
|
|
42430
42474
|
let market = undefined;
|
|
42475
|
+
let marketType = undefined;
|
|
42476
|
+
let marginMode = undefined;
|
|
42477
|
+
let response = undefined;
|
|
42431
42478
|
if (symbol !== undefined) {
|
|
42432
42479
|
market = this.market(symbol);
|
|
42433
|
-
|
|
42480
|
+
const symbolRequest = (marginMode !== undefined) ? (market['info']['symbolName']) : (market['id']);
|
|
42481
|
+
request['symbol'] = symbolRequest;
|
|
42434
42482
|
}
|
|
42435
|
-
[marketType,
|
|
42436
|
-
|
|
42437
|
-
const stop = this.
|
|
42483
|
+
[marketType, params] = this.handleMarketTypeAndParams('fetchOpenOrders', market, params);
|
|
42484
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchOpenOrders', params);
|
|
42485
|
+
const stop = this.safeValue2(params, 'stop', 'trigger');
|
|
42486
|
+
params = this.omit(params, ['stop', 'trigger']);
|
|
42438
42487
|
if (stop) {
|
|
42439
42488
|
this.checkRequiredSymbol('fetchOpenOrders', symbol);
|
|
42440
|
-
query = this.omit(query, 'stop');
|
|
42441
42489
|
if (marketType === 'spot') {
|
|
42442
42490
|
if (limit !== undefined) {
|
|
42443
42491
|
request['pageSize'] = limit;
|
|
42444
42492
|
}
|
|
42445
|
-
response = await this.privateSpotPostPlanCurrentPlan(this.extend(request,
|
|
42493
|
+
response = await this.privateSpotPostPlanCurrentPlan(this.extend(request, params));
|
|
42446
42494
|
}
|
|
42447
42495
|
else {
|
|
42448
|
-
response = await this.privateMixGetPlanCurrentPlan(this.extend(request,
|
|
42496
|
+
response = await this.privateMixGetPlanCurrentPlan(this.extend(request, params));
|
|
42449
42497
|
}
|
|
42450
42498
|
}
|
|
42451
42499
|
else {
|
|
42452
42500
|
if (marketType === 'spot') {
|
|
42453
|
-
|
|
42501
|
+
if (marginMode !== undefined) {
|
|
42502
|
+
const clientOrderId = this.safeString2(params, 'clientOid', 'clientOrderId');
|
|
42503
|
+
const endTime = this.safeIntegerN(params, ['endTime', 'until', 'till']);
|
|
42504
|
+
params = this.omit(params, ['until', 'till', 'clientOrderId']);
|
|
42505
|
+
if (clientOrderId !== undefined) {
|
|
42506
|
+
request['clientOid'] = clientOrderId;
|
|
42507
|
+
}
|
|
42508
|
+
if (endTime !== undefined) {
|
|
42509
|
+
request['endTime'] = endTime;
|
|
42510
|
+
}
|
|
42511
|
+
if (since !== undefined) {
|
|
42512
|
+
request['startTime'] = since;
|
|
42513
|
+
}
|
|
42514
|
+
if (limit !== undefined) {
|
|
42515
|
+
request['pageSize'] = limit;
|
|
42516
|
+
}
|
|
42517
|
+
if (marginMode === 'isolated') {
|
|
42518
|
+
response = await this.privateMarginGetIsolatedOrderOpenOrders(this.extend(request, params));
|
|
42519
|
+
}
|
|
42520
|
+
else if (marginMode === 'cross') {
|
|
42521
|
+
response = await this.privateMarginGetCrossOrderOpenOrders(this.extend(request, params));
|
|
42522
|
+
}
|
|
42523
|
+
}
|
|
42524
|
+
else {
|
|
42525
|
+
response = await this.privateSpotPostTradeOpenOrders(this.extend(request, params));
|
|
42526
|
+
}
|
|
42454
42527
|
}
|
|
42455
42528
|
else {
|
|
42456
42529
|
if (market === undefined) {
|
|
@@ -42462,10 +42535,11 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42462
42535
|
productType = 'S' + productType;
|
|
42463
42536
|
}
|
|
42464
42537
|
request['productType'] = productType;
|
|
42465
|
-
response = await this.privateMixGetOrderMarginCoinCurrent(this.extend(request,
|
|
42538
|
+
response = await this.privateMixGetOrderMarginCoinCurrent(this.extend(request, params));
|
|
42466
42539
|
}
|
|
42467
42540
|
else {
|
|
42468
|
-
|
|
42541
|
+
this.checkRequiredSymbol('fetchOpenOrders', symbol);
|
|
42542
|
+
response = await this.privateMixGetOrderCurrent(this.extend(request, params));
|
|
42469
42543
|
}
|
|
42470
42544
|
}
|
|
42471
42545
|
}
|
|
@@ -42572,10 +42646,45 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42572
42646
|
// }
|
|
42573
42647
|
// }
|
|
42574
42648
|
//
|
|
42649
|
+
// isolated and cross margin
|
|
42650
|
+
//
|
|
42651
|
+
// {
|
|
42652
|
+
// "code": "00000",
|
|
42653
|
+
// "msg": "success",
|
|
42654
|
+
// "requestTime": 1697773997250,
|
|
42655
|
+
// "data": {
|
|
42656
|
+
// "orderList": [
|
|
42657
|
+
// {
|
|
42658
|
+
// "symbol": "BTCUSDT",
|
|
42659
|
+
// "orderType": "limit",
|
|
42660
|
+
// "source": "WEB",
|
|
42661
|
+
// "orderId": "1099108898629627904",
|
|
42662
|
+
// "clientOid": "f9b55416029e4cc2bbbe2f40ac368c38",
|
|
42663
|
+
// "loanType": "autoLoan",
|
|
42664
|
+
// "price": "25000",
|
|
42665
|
+
// "side": "buy",
|
|
42666
|
+
// "status": "new",
|
|
42667
|
+
// "baseQuantity": "0.0002",
|
|
42668
|
+
// "quoteAmount": "5",
|
|
42669
|
+
// "fillPrice": "0",
|
|
42670
|
+
// "fillQuantity": "0",
|
|
42671
|
+
// "fillTotalAmount": "0",
|
|
42672
|
+
// "ctime": "1697773902588"
|
|
42673
|
+
// }
|
|
42674
|
+
// ],
|
|
42675
|
+
// "maxId": "1099108898629627904",
|
|
42676
|
+
// "minId": "1099108898629627904"
|
|
42677
|
+
// }
|
|
42678
|
+
// }
|
|
42679
|
+
//
|
|
42575
42680
|
if (typeof response === 'string') {
|
|
42576
42681
|
response = JSON.parse(response);
|
|
42577
42682
|
}
|
|
42578
42683
|
const data = this.safeValue(response, 'data', []);
|
|
42684
|
+
if (marginMode !== undefined) {
|
|
42685
|
+
const resultList = this.safeValue(data, 'orderList', []);
|
|
42686
|
+
return this.parseOrders(resultList, market, since, limit);
|
|
42687
|
+
}
|
|
42579
42688
|
if (!Array.isArray(data)) {
|
|
42580
42689
|
const result = this.safeValue(data, 'orderList', []);
|
|
42581
42690
|
return this.addPaginationCursorToResult(data, result);
|
|
@@ -42588,9 +42697,11 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42588
42697
|
* @name bitget#fetchClosedOrders
|
|
42589
42698
|
* @description fetches information on multiple closed orders made by the user
|
|
42590
42699
|
* @see https://bitgetlimited.github.io/apidoc/en/spot/#get-order-history
|
|
42700
|
+
* @see https://bitgetlimited.github.io/apidoc/en/spot/#get-history-plan-orders
|
|
42591
42701
|
* @see https://bitgetlimited.github.io/apidoc/en/mix/#get-history-orders
|
|
42592
42702
|
* @see https://bitgetlimited.github.io/apidoc/en/mix/#get-history-plan-orders-tpsl
|
|
42593
|
-
* @see https://bitgetlimited.github.io/apidoc/en/
|
|
42703
|
+
* @see https://bitgetlimited.github.io/apidoc/en/margin/#get-isolated-order-history
|
|
42704
|
+
* @see https://bitgetlimited.github.io/apidoc/en/margin/#get-cross-order-history
|
|
42594
42705
|
* @param {string} symbol unified market symbol of the closed orders
|
|
42595
42706
|
* @param {int} [since] timestamp in ms of the earliest order
|
|
42596
42707
|
* @param {int} [limit] the max number of closed orders to return
|
|
@@ -42626,9 +42737,11 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42626
42737
|
* @name bitget#fetchCanceledOrders
|
|
42627
42738
|
* @description fetches information on multiple canceled orders made by the user
|
|
42628
42739
|
* @see https://bitgetlimited.github.io/apidoc/en/spot/#get-order-history
|
|
42740
|
+
* @see https://bitgetlimited.github.io/apidoc/en/spot/#get-history-plan-orders
|
|
42629
42741
|
* @see https://bitgetlimited.github.io/apidoc/en/mix/#get-history-orders
|
|
42630
42742
|
* @see https://bitgetlimited.github.io/apidoc/en/mix/#get-history-plan-orders-tpsl
|
|
42631
|
-
* @see https://bitgetlimited.github.io/apidoc/en/
|
|
42743
|
+
* @see https://bitgetlimited.github.io/apidoc/en/margin/#get-isolated-order-history
|
|
42744
|
+
* @see https://bitgetlimited.github.io/apidoc/en/margin/#get-cross-order-history
|
|
42632
42745
|
* @param {string} symbol unified market symbol of the canceled orders
|
|
42633
42746
|
* @param {int} [since] timestamp in ms of the earliest order
|
|
42634
42747
|
* @param {int} [limit] the max number of canceled orders to return
|
|
@@ -42662,37 +42775,30 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42662
42775
|
await this.loadMarkets();
|
|
42663
42776
|
const market = this.market(symbol);
|
|
42664
42777
|
let marketType = undefined;
|
|
42778
|
+
let marginMode = undefined;
|
|
42779
|
+
let response = undefined;
|
|
42665
42780
|
[marketType, params] = this.handleMarketTypeAndParams('fetchCanceledAndClosedOrders', market, params);
|
|
42666
|
-
|
|
42667
|
-
|
|
42781
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchCanceledAndClosedOrders', params);
|
|
42782
|
+
const symbolRequest = (marginMode !== undefined) ? (market['info']['symbolName']) : (market['id']);
|
|
42668
42783
|
const request = {
|
|
42669
|
-
'symbol':
|
|
42784
|
+
'symbol': symbolRequest,
|
|
42670
42785
|
};
|
|
42671
|
-
|
|
42672
|
-
|
|
42673
|
-
}
|
|
42674
|
-
let method = this.getSupportedMapping(marketType, {
|
|
42675
|
-
'spot': 'privateSpotPostTradeHistory',
|
|
42676
|
-
'swap': 'privateMixGetOrderHistory',
|
|
42677
|
-
'future': 'privateMixGetOrderHistory',
|
|
42678
|
-
});
|
|
42786
|
+
const now = this.milliseconds();
|
|
42787
|
+
const endTime = this.safeIntegerN(params, ['endTime', 'until', 'till']);
|
|
42679
42788
|
const stop = this.safeValue(params, 'stop');
|
|
42680
|
-
|
|
42681
|
-
|
|
42682
|
-
method = 'privateSpotPostPlanHistoryPlan';
|
|
42683
|
-
}
|
|
42684
|
-
else {
|
|
42685
|
-
method = 'privateMixGetPlanHistoryPlan';
|
|
42686
|
-
}
|
|
42687
|
-
params = this.omit(params, 'stop');
|
|
42688
|
-
}
|
|
42689
|
-
if (marketType === 'swap' || stop) {
|
|
42789
|
+
params = this.omit(params, ['until', 'till', 'stop']);
|
|
42790
|
+
if (stop || (marketType === 'swap') || (marketType === 'future')) {
|
|
42690
42791
|
if (limit === undefined) {
|
|
42691
42792
|
limit = 100;
|
|
42692
42793
|
}
|
|
42693
42794
|
request['pageSize'] = limit;
|
|
42694
42795
|
if (since === undefined) {
|
|
42695
|
-
|
|
42796
|
+
if (marketType === 'spot') {
|
|
42797
|
+
since = now - 7776000000;
|
|
42798
|
+
}
|
|
42799
|
+
else {
|
|
42800
|
+
since = 0;
|
|
42801
|
+
}
|
|
42696
42802
|
}
|
|
42697
42803
|
request['startTime'] = since;
|
|
42698
42804
|
if (endTime === undefined) {
|
|
@@ -42702,15 +42808,52 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42702
42808
|
request['endTime'] = endTime;
|
|
42703
42809
|
}
|
|
42704
42810
|
}
|
|
42811
|
+
if (stop) {
|
|
42812
|
+
if (marketType === 'spot') {
|
|
42813
|
+
response = await this.privateSpotPostPlanHistoryPlan(this.extend(request, params));
|
|
42814
|
+
}
|
|
42815
|
+
else {
|
|
42816
|
+
response = await this.privateMixGetPlanHistoryPlan(this.extend(request, params));
|
|
42817
|
+
}
|
|
42818
|
+
}
|
|
42705
42819
|
else {
|
|
42706
|
-
if (
|
|
42707
|
-
|
|
42820
|
+
if ((marketType === 'swap') || (marketType === 'future')) {
|
|
42821
|
+
response = await this.privateMixGetOrderHistory(this.extend(request, params));
|
|
42708
42822
|
}
|
|
42709
|
-
|
|
42710
|
-
|
|
42823
|
+
else {
|
|
42824
|
+
if (marginMode !== undefined) {
|
|
42825
|
+
if (since === undefined) {
|
|
42826
|
+
since = now - 7776000000;
|
|
42827
|
+
}
|
|
42828
|
+
request['startTime'] = since;
|
|
42829
|
+
if (endTime !== undefined) {
|
|
42830
|
+
request['endTime'] = endTime;
|
|
42831
|
+
}
|
|
42832
|
+
if (limit !== undefined) {
|
|
42833
|
+
request['pageSize'] = limit;
|
|
42834
|
+
}
|
|
42835
|
+
if (marginMode === 'isolated') {
|
|
42836
|
+
response = await this.privateMarginGetIsolatedOrderHistory(this.extend(request, params));
|
|
42837
|
+
}
|
|
42838
|
+
else if (marginMode === 'cross') {
|
|
42839
|
+
response = await this.privateMarginGetCrossOrderHistory(this.extend(request, params));
|
|
42840
|
+
}
|
|
42841
|
+
}
|
|
42842
|
+
else {
|
|
42843
|
+
if (limit !== undefined) {
|
|
42844
|
+
request['limit'] = limit;
|
|
42845
|
+
}
|
|
42846
|
+
if (since !== undefined) {
|
|
42847
|
+
request['after'] = since;
|
|
42848
|
+
}
|
|
42849
|
+
if (endTime !== undefined) {
|
|
42850
|
+
params = this.omit(params, 'endTime');
|
|
42851
|
+
request['before'] = endTime;
|
|
42852
|
+
}
|
|
42853
|
+
response = await this.privateSpotPostTradeHistory(this.extend(request, params));
|
|
42854
|
+
}
|
|
42711
42855
|
}
|
|
42712
42856
|
}
|
|
42713
|
-
const response = await this[method](this.extend(request, params));
|
|
42714
42857
|
//
|
|
42715
42858
|
// spot
|
|
42716
42859
|
//
|
|
@@ -42827,6 +42970,37 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42827
42970
|
// "requestTime":1627354109502
|
|
42828
42971
|
// }
|
|
42829
42972
|
//
|
|
42973
|
+
// isolated and cross margin
|
|
42974
|
+
//
|
|
42975
|
+
// {
|
|
42976
|
+
// "code": "00000",
|
|
42977
|
+
// "msg": "success",
|
|
42978
|
+
// "requestTime": 1697779608818,
|
|
42979
|
+
// "data": {
|
|
42980
|
+
// "orderList": [
|
|
42981
|
+
// {
|
|
42982
|
+
// "symbol": "BTCUSDT",
|
|
42983
|
+
// "orderType": "limit",
|
|
42984
|
+
// "source": "API",
|
|
42985
|
+
// "orderId": "1098761451063619584",
|
|
42986
|
+
// "clientOid": "8d8ac3454ed345fca914c9cd55682121",
|
|
42987
|
+
// "loanType": "normal",
|
|
42988
|
+
// "price": "25000",
|
|
42989
|
+
// "side": "buy",
|
|
42990
|
+
// "status": "cancelled",
|
|
42991
|
+
// "baseQuantity": "0.0002",
|
|
42992
|
+
// "quoteAmount": "0",
|
|
42993
|
+
// "fillPrice": "0",
|
|
42994
|
+
// "fillQuantity": "0",
|
|
42995
|
+
// "fillTotalAmount": "0",
|
|
42996
|
+
// "ctime": "1697691064614"
|
|
42997
|
+
// },
|
|
42998
|
+
// ],
|
|
42999
|
+
// "maxId": "1098761451063619584",
|
|
43000
|
+
// "minId": "1098394690472521728"
|
|
43001
|
+
// }
|
|
43002
|
+
// }
|
|
43003
|
+
//
|
|
42830
43004
|
const data = this.safeValue(response, 'data');
|
|
42831
43005
|
if (data !== undefined) {
|
|
42832
43006
|
if ('orderList' in data) {
|
|
@@ -42965,12 +43139,14 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42965
43139
|
* @description fetch all trades made by the user
|
|
42966
43140
|
* @see https://bitgetlimited.github.io/apidoc/en/spot/#get-transaction-details
|
|
42967
43141
|
* @see https://bitgetlimited.github.io/apidoc/en/mix/#get-order-fill-detail
|
|
43142
|
+
* @see https://bitgetlimited.github.io/apidoc/en/margin/#get-isolated-transaction-details
|
|
43143
|
+
* @see https://bitgetlimited.github.io/apidoc/en/margin/#get-cross-order-fills
|
|
42968
43144
|
* @param {string} symbol unified market symbol
|
|
42969
43145
|
* @param {int} [since] the earliest time in ms to fetch trades for
|
|
42970
43146
|
* @param {int} [limit] the maximum number of trades structures to retrieve
|
|
42971
43147
|
* @param {object} [params] extra parameters specific to the bitget api endpoint
|
|
42972
|
-
* @param {int} [params.until]
|
|
42973
|
-
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [
|
|
43148
|
+
* @param {int} [params.until] the latest time in ms to fetch entries for
|
|
43149
|
+
* @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
|
|
42974
43150
|
* @returns {Trade[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#trade-structure}
|
|
42975
43151
|
*/
|
|
42976
43152
|
this.checkRequiredSymbol('fetchMyTrades', symbol);
|
|
@@ -42986,15 +43162,43 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
42986
43162
|
return await this.fetchPaginatedCallDynamic('fetchMyTrades', symbol, since, limit, params, 500);
|
|
42987
43163
|
}
|
|
42988
43164
|
}
|
|
43165
|
+
let response = undefined;
|
|
43166
|
+
let marginMode = undefined;
|
|
43167
|
+
[marginMode, params] = this.handleMarginModeAndParams('fetchMyTrades', params);
|
|
43168
|
+
const symbolRequest = (marginMode !== undefined) ? (market['info']['symbolName']) : (market['id']);
|
|
42989
43169
|
let request = {
|
|
42990
|
-
'symbol':
|
|
43170
|
+
'symbol': symbolRequest,
|
|
42991
43171
|
};
|
|
42992
|
-
if (limit !== undefined) {
|
|
42993
|
-
request['limit'] = limit;
|
|
42994
|
-
}
|
|
42995
|
-
let response = undefined;
|
|
42996
43172
|
if (market['spot']) {
|
|
42997
|
-
|
|
43173
|
+
if (marginMode !== undefined) {
|
|
43174
|
+
[request, params] = this.handleUntilOption('endTime', request, params);
|
|
43175
|
+
if (since !== undefined) {
|
|
43176
|
+
request['startTime'] = since;
|
|
43177
|
+
}
|
|
43178
|
+
else {
|
|
43179
|
+
const now = this.milliseconds();
|
|
43180
|
+
request['startTime'] = now - 7776000000;
|
|
43181
|
+
}
|
|
43182
|
+
if (limit !== undefined) {
|
|
43183
|
+
request['pageSize'] = limit;
|
|
43184
|
+
}
|
|
43185
|
+
if (marginMode === 'isolated') {
|
|
43186
|
+
response = await this.privateMarginGetIsolatedOrderFills(this.extend(request, params));
|
|
43187
|
+
}
|
|
43188
|
+
else if (marginMode === 'cross') {
|
|
43189
|
+
response = await this.privateMarginGetCrossOrderFills(this.extend(request, params));
|
|
43190
|
+
}
|
|
43191
|
+
}
|
|
43192
|
+
else {
|
|
43193
|
+
[request, params] = this.handleUntilOption('before', request, params);
|
|
43194
|
+
if (since !== undefined) {
|
|
43195
|
+
request['after'] = since;
|
|
43196
|
+
}
|
|
43197
|
+
if (limit !== undefined) {
|
|
43198
|
+
request['limit'] = limit;
|
|
43199
|
+
}
|
|
43200
|
+
response = await this.privateSpotPostTradeFills(this.extend(request, params));
|
|
43201
|
+
}
|
|
42998
43202
|
}
|
|
42999
43203
|
else {
|
|
43000
43204
|
const orderId = this.safeString(params, 'orderId'); // when order id is not defined, startTime and endTime are required
|
|
@@ -43011,29 +43215,88 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
43011
43215
|
response = await this.privateMixGetOrderFills(this.extend(request, params));
|
|
43012
43216
|
}
|
|
43013
43217
|
//
|
|
43218
|
+
// spot
|
|
43219
|
+
//
|
|
43014
43220
|
// {
|
|
43015
|
-
//
|
|
43016
|
-
//
|
|
43017
|
-
//
|
|
43018
|
-
//
|
|
43019
|
-
//
|
|
43020
|
-
//
|
|
43021
|
-
//
|
|
43022
|
-
//
|
|
43023
|
-
//
|
|
43024
|
-
//
|
|
43025
|
-
//
|
|
43026
|
-
//
|
|
43027
|
-
//
|
|
43028
|
-
//
|
|
43029
|
-
//
|
|
43030
|
-
//
|
|
43031
|
-
//
|
|
43221
|
+
// "code": "00000",
|
|
43222
|
+
// "msg": "success",
|
|
43223
|
+
// "requestTime": 1697831543676,
|
|
43224
|
+
// "data": [
|
|
43225
|
+
// {
|
|
43226
|
+
// "accountId": "7264631750",
|
|
43227
|
+
// "symbol": "BTCUSDT_SPBL",
|
|
43228
|
+
// "orderId": "1098394344925597696",
|
|
43229
|
+
// "fillId": "1098394344974925824",
|
|
43230
|
+
// "orderType": "market",
|
|
43231
|
+
// "side": "sell",
|
|
43232
|
+
// "fillPrice": "28467.68",
|
|
43233
|
+
// "fillQuantity": "0.0002",
|
|
43234
|
+
// "fillTotalAmount": "5.693536",
|
|
43235
|
+
// "feeCcy": "USDT",
|
|
43236
|
+
// "fees": "-0.005693536",
|
|
43237
|
+
// "takerMakerFlag": "taker",
|
|
43238
|
+
// "cTime": "1697603539699"
|
|
43239
|
+
// },
|
|
43240
|
+
// ]
|
|
43241
|
+
// }
|
|
43242
|
+
//
|
|
43243
|
+
// swap and future
|
|
43244
|
+
//
|
|
43245
|
+
// {
|
|
43246
|
+
// "code": "00000",
|
|
43247
|
+
// "msg": "success",
|
|
43248
|
+
// "requestTime": 1697831790948,
|
|
43249
|
+
// "data": [
|
|
43250
|
+
// {
|
|
43251
|
+
// "tradeId": "1099351653724958721",
|
|
43252
|
+
// "symbol": "BTCUSDT_UMCBL",
|
|
43253
|
+
// "orderId": "1099351653682413569",
|
|
43254
|
+
// "price": "29531.3",
|
|
43255
|
+
// "sizeQty": "0.001",
|
|
43256
|
+
// "fee": "-0.01771878",
|
|
43257
|
+
// "side": "close_long",
|
|
43258
|
+
// "fillAmount": "29.5313",
|
|
43259
|
+
// "profit": "0.001",
|
|
43260
|
+
// "enterPointSource": "WEB",
|
|
43261
|
+
// "tradeSide": "close_long",
|
|
43262
|
+
// "holdMode": "double_hold",
|
|
43263
|
+
// "takerMakerFlag": "taker",
|
|
43264
|
+
// "cTime": "1697831779891"
|
|
43265
|
+
// },
|
|
43266
|
+
// ]
|
|
43267
|
+
// }
|
|
43268
|
+
//
|
|
43269
|
+
// isolated and cross margin
|
|
43270
|
+
//
|
|
43271
|
+
// {
|
|
43272
|
+
// "code": "00000",
|
|
43273
|
+
// "msg": "success",
|
|
43274
|
+
// "requestTime": 1697832285469,
|
|
43275
|
+
// "data": {
|
|
43276
|
+
// "fills": [
|
|
43277
|
+
// {
|
|
43278
|
+
// "orderId": "1099353730455318528",
|
|
43279
|
+
// "fillId": "1099353730627092481",
|
|
43280
|
+
// "orderType": "market",
|
|
43281
|
+
// "side": "sell",
|
|
43282
|
+
// "fillPrice": "29543.7",
|
|
43283
|
+
// "fillQuantity": "0.0001",
|
|
43284
|
+
// "fillTotalAmount": "2.95437",
|
|
43285
|
+
// "feeCcy": "USDT",
|
|
43286
|
+
// "fees": "-0.00295437",
|
|
43287
|
+
// "ctime": "1697832275063"
|
|
43288
|
+
// },
|
|
43289
|
+
// ],
|
|
43290
|
+
// "minId": "1099353591699161118",
|
|
43291
|
+
// "maxId": "1099353730627092481"
|
|
43032
43292
|
// }
|
|
43033
|
-
// ]
|
|
43034
43293
|
// }
|
|
43035
43294
|
//
|
|
43036
43295
|
const data = this.safeValue(response, 'data');
|
|
43296
|
+
if (marginMode !== undefined) {
|
|
43297
|
+
const fills = this.safeValue(data, 'fills', []);
|
|
43298
|
+
return this.parseTrades(fills, market, since, limit);
|
|
43299
|
+
}
|
|
43037
43300
|
return this.parseTrades(data, market, since, limit);
|
|
43038
43301
|
}
|
|
43039
43302
|
async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -44899,7 +45162,7 @@ class bithumb extends _abstract_bithumb_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
44899
45162
|
result[symbol] = this.parseTicker(ticker, market);
|
|
44900
45163
|
}
|
|
44901
45164
|
}
|
|
44902
|
-
return this.
|
|
45165
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
44903
45166
|
}
|
|
44904
45167
|
async fetchTicker(symbol, params = {}) {
|
|
44905
45168
|
/**
|
|
@@ -46778,7 +47041,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
46778
47041
|
const symbol = ticker['symbol'];
|
|
46779
47042
|
result[symbol] = ticker;
|
|
46780
47043
|
}
|
|
46781
|
-
return this.
|
|
47044
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
46782
47045
|
}
|
|
46783
47046
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
46784
47047
|
/**
|
|
@@ -47759,12 +48022,11 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
47759
48022
|
//
|
|
47760
48023
|
const data = this.safeValue(response, 'data', {});
|
|
47761
48024
|
const order = this.parseOrder(data, market);
|
|
47762
|
-
|
|
47763
|
-
|
|
47764
|
-
|
|
47765
|
-
|
|
47766
|
-
|
|
47767
|
-
});
|
|
48025
|
+
order['type'] = type;
|
|
48026
|
+
order['side'] = side;
|
|
48027
|
+
order['amount'] = amount;
|
|
48028
|
+
order['price'] = price;
|
|
48029
|
+
return order;
|
|
47768
48030
|
}
|
|
47769
48031
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
47770
48032
|
/**
|
|
@@ -51021,7 +51283,7 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
51021
51283
|
result[symbol] = ticker;
|
|
51022
51284
|
}
|
|
51023
51285
|
}
|
|
51024
|
-
return this.
|
|
51286
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
51025
51287
|
}
|
|
51026
51288
|
parseTicker(ticker, market = undefined) {
|
|
51027
51289
|
// see response sample under "fetchMarkets" because same endpoint is being used here
|
|
@@ -54855,7 +55117,7 @@ class bitpanda extends _abstract_bitpanda_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
54855
55117
|
const symbol = ticker['symbol'];
|
|
54856
55118
|
result[symbol] = ticker;
|
|
54857
55119
|
}
|
|
54858
|
-
return this.
|
|
55120
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
54859
55121
|
}
|
|
54860
55122
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
54861
55123
|
/**
|
|
@@ -61362,9 +61624,8 @@ class bitstamp extends _abstract_bitstamp_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
61362
61624
|
}
|
|
61363
61625
|
const response = await this[method](this.extend(request, params));
|
|
61364
61626
|
const order = this.parseOrder(response, market);
|
|
61365
|
-
|
|
61366
|
-
|
|
61367
|
-
});
|
|
61627
|
+
order['type'] = type;
|
|
61628
|
+
return order;
|
|
61368
61629
|
}
|
|
61369
61630
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
61370
61631
|
/**
|
|
@@ -63221,7 +63482,7 @@ class bittrex extends _abstract_bittrex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
63221
63482
|
const ticker = this.parseTicker(response[i]);
|
|
63222
63483
|
tickers.push(ticker);
|
|
63223
63484
|
}
|
|
63224
|
-
return this.
|
|
63485
|
+
return this.filterByArrayTickers(tickers, 'symbol', symbols);
|
|
63225
63486
|
}
|
|
63226
63487
|
async fetchTicker(symbol, params = {}) {
|
|
63227
63488
|
/**
|
|
@@ -64510,8 +64771,8 @@ class bittrex extends _abstract_bittrex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
64510
64771
|
request['marketSymbol'] = market['id'];
|
|
64511
64772
|
}
|
|
64512
64773
|
const response = await this.privateGetExecutions(this.extend(request, params));
|
|
64513
|
-
const trades = this.parseTrades(response, market);
|
|
64514
|
-
return
|
|
64774
|
+
const trades = this.parseTrades(response, market, since, limit);
|
|
64775
|
+
return trades;
|
|
64515
64776
|
}
|
|
64516
64777
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
64517
64778
|
/**
|
|
@@ -69227,9 +69488,8 @@ class btcalpha extends _abstract_btcalpha_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
69227
69488
|
const order = this.parseOrder(response, market);
|
|
69228
69489
|
const orderAmount = order['amount'].toString();
|
|
69229
69490
|
amount = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringGt */ .O.stringGt(orderAmount, '0') ? order['amount'] : amount;
|
|
69230
|
-
|
|
69231
|
-
|
|
69232
|
-
});
|
|
69491
|
+
order['amount'] = this.parseNumber(amount);
|
|
69492
|
+
return order;
|
|
69233
69493
|
}
|
|
69234
69494
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
69235
69495
|
/**
|
|
@@ -75108,7 +75368,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75108
75368
|
tickers[symbol] = ticker;
|
|
75109
75369
|
}
|
|
75110
75370
|
}
|
|
75111
|
-
return this.
|
|
75371
|
+
return this.filterByArrayTickers(tickers, 'symbol', symbols);
|
|
75112
75372
|
}
|
|
75113
75373
|
parseOHLCV(ohlcv, market = undefined) {
|
|
75114
75374
|
//
|
|
@@ -75531,7 +75791,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75531
75791
|
const feeToken = this.safeString(trade, 'feeTokenId');
|
|
75532
75792
|
const feeCurrency = this.safeCurrencyCode(feeToken);
|
|
75533
75793
|
fee = {
|
|
75534
|
-
'cost':
|
|
75794
|
+
'cost': feeCost,
|
|
75535
75795
|
'currency': feeCurrency,
|
|
75536
75796
|
};
|
|
75537
75797
|
}
|
|
@@ -75697,7 +75957,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75697
75957
|
feeCurrencyCode = market['inverse'] ? market['base'] : market['settle'];
|
|
75698
75958
|
}
|
|
75699
75959
|
fee = {
|
|
75700
|
-
'cost':
|
|
75960
|
+
'cost': feeCostString,
|
|
75701
75961
|
'currency': feeCurrencyCode,
|
|
75702
75962
|
};
|
|
75703
75963
|
}
|
|
@@ -80934,7 +81194,7 @@ class cex extends _abstract_cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
80934
81194
|
const symbol = market['symbol'];
|
|
80935
81195
|
result[symbol] = this.parseTicker(ticker, market);
|
|
80936
81196
|
}
|
|
80937
|
-
return this.
|
|
81197
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
80938
81198
|
}
|
|
80939
81199
|
async fetchTicker(symbol, params = {}) {
|
|
80940
81200
|
/**
|
|
@@ -83161,7 +83421,7 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
83161
83421
|
const symbol = market['symbol'];
|
|
83162
83422
|
result[symbol] = this.parseTicker(rates[baseId], market);
|
|
83163
83423
|
}
|
|
83164
|
-
return this.
|
|
83424
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
83165
83425
|
}
|
|
83166
83426
|
async fetchTickersV3(symbols = undefined, params = {}) {
|
|
83167
83427
|
await this.loadMarkets();
|
|
@@ -83213,7 +83473,7 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
83213
83473
|
const symbol = market['symbol'];
|
|
83214
83474
|
result[symbol] = this.parseTicker(entry, market);
|
|
83215
83475
|
}
|
|
83216
|
-
return this.
|
|
83476
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
83217
83477
|
}
|
|
83218
83478
|
async fetchTicker(symbol, params = {}) {
|
|
83219
83479
|
/**
|
|
@@ -83286,10 +83546,9 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
83286
83546
|
//
|
|
83287
83547
|
const data = this.safeValue(response, 'trades', []);
|
|
83288
83548
|
const ticker = this.parseTicker(data[0], market);
|
|
83289
|
-
|
|
83290
|
-
|
|
83291
|
-
|
|
83292
|
-
});
|
|
83549
|
+
ticker['bid'] = this.safeNumber(response, 'best_bid');
|
|
83550
|
+
ticker['ask'] = this.safeNumber(response, 'best_ask');
|
|
83551
|
+
return ticker;
|
|
83293
83552
|
}
|
|
83294
83553
|
parseTicker(ticker, market = undefined) {
|
|
83295
83554
|
//
|
|
@@ -85653,7 +85912,7 @@ class coinbasepro extends _abstract_coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
85653
85912
|
const symbol = market['symbol'];
|
|
85654
85913
|
result[symbol] = this.parseTicker(first, market);
|
|
85655
85914
|
}
|
|
85656
|
-
return this.
|
|
85915
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
85657
85916
|
}
|
|
85658
85917
|
async fetchTicker(symbol, params = {}) {
|
|
85659
85918
|
/**
|
|
@@ -88617,7 +88876,7 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
88617
88876
|
ticker['symbol'] = symbol;
|
|
88618
88877
|
result[symbol] = ticker;
|
|
88619
88878
|
}
|
|
88620
|
-
return this.
|
|
88879
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
88621
88880
|
}
|
|
88622
88881
|
async fetchTime(params = {}) {
|
|
88623
88882
|
/**
|
|
@@ -92928,7 +93187,7 @@ class coinfalcon extends _abstract_coinfalcon_js__WEBPACK_IMPORTED_MODULE_0__/*
|
|
|
92928
93187
|
const symbol = ticker['symbol'];
|
|
92929
93188
|
result[symbol] = ticker;
|
|
92930
93189
|
}
|
|
92931
|
-
return this.
|
|
93190
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
92932
93191
|
}
|
|
92933
93192
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
92934
93193
|
/**
|
|
@@ -94000,7 +94259,7 @@ class coinmate extends _abstract_coinmate_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
94000
94259
|
const ticker = this.safeValue(response, 'data');
|
|
94001
94260
|
const timestamp = this.safeTimestamp(ticker, 'timestamp');
|
|
94002
94261
|
const last = this.safeNumber(ticker, 'last');
|
|
94003
|
-
return {
|
|
94262
|
+
return this.safeTicker({
|
|
94004
94263
|
'symbol': market['symbol'],
|
|
94005
94264
|
'timestamp': timestamp,
|
|
94006
94265
|
'datetime': this.iso8601(timestamp),
|
|
@@ -94021,7 +94280,7 @@ class coinmate extends _abstract_coinmate_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
94021
94280
|
'baseVolume': this.safeNumber(ticker, 'amount'),
|
|
94022
94281
|
'quoteVolume': undefined,
|
|
94023
94282
|
'info': ticker,
|
|
94024
|
-
};
|
|
94283
|
+
}, market);
|
|
94025
94284
|
}
|
|
94026
94285
|
async fetchDepositsWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
94027
94286
|
/**
|
|
@@ -94947,7 +95206,7 @@ class coinone extends _abstract_coinone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
94947
95206
|
result[symbol] = this.parseTicker(ticker, market);
|
|
94948
95207
|
result[symbol]['timestamp'] = timestamp;
|
|
94949
95208
|
}
|
|
94950
|
-
return this.
|
|
95209
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
94951
95210
|
}
|
|
94952
95211
|
async fetchTicker(symbol, params = {}) {
|
|
94953
95212
|
/**
|
|
@@ -96167,6 +96426,7 @@ class coinsph extends _abstract_coinsph_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
96167
96426
|
'max': undefined,
|
|
96168
96427
|
},
|
|
96169
96428
|
},
|
|
96429
|
+
'created': undefined,
|
|
96170
96430
|
'info': market,
|
|
96171
96431
|
});
|
|
96172
96432
|
}
|
|
@@ -97838,7 +98098,7 @@ class coinspot extends _abstract_coinspot_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
97838
98098
|
result[symbol] = this.parseTicker(ticker, market);
|
|
97839
98099
|
}
|
|
97840
98100
|
}
|
|
97841
|
-
return this.
|
|
98101
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
97842
98102
|
}
|
|
97843
98103
|
async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
97844
98104
|
/**
|
|
@@ -104358,7 +104618,7 @@ class delta extends _abstract_delta_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
104358
104618
|
const symbol = ticker['symbol'];
|
|
104359
104619
|
result[symbol] = ticker;
|
|
104360
104620
|
}
|
|
104361
|
-
return this.
|
|
104621
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
104362
104622
|
}
|
|
104363
104623
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
104364
104624
|
/**
|
|
@@ -107329,7 +107589,7 @@ class deribit extends _abstract_deribit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
107329
107589
|
const symbol = ticker['symbol'];
|
|
107330
107590
|
tickers[symbol] = ticker;
|
|
107331
107591
|
}
|
|
107332
|
-
return this.
|
|
107592
|
+
return this.filterByArrayTickers(tickers, 'symbol', symbols);
|
|
107333
107593
|
}
|
|
107334
107594
|
async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
|
|
107335
107595
|
/**
|
|
@@ -110335,7 +110595,7 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
|
|
|
110335
110595
|
const symbol = ticker['symbol'];
|
|
110336
110596
|
result[symbol] = ticker;
|
|
110337
110597
|
}
|
|
110338
|
-
return this.
|
|
110598
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
110339
110599
|
}
|
|
110340
110600
|
async fetchTicker(symbol, params = {}) {
|
|
110341
110601
|
/**
|
|
@@ -110973,14 +111233,13 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
|
|
|
110973
111233
|
// "data": "1590873693003714560"
|
|
110974
111234
|
// }
|
|
110975
111235
|
//
|
|
110976
|
-
const
|
|
110977
|
-
|
|
110978
|
-
|
|
110979
|
-
|
|
110980
|
-
|
|
110981
|
-
|
|
110982
|
-
|
|
110983
|
-
});
|
|
111236
|
+
const order = this.parseOrder(response, market);
|
|
111237
|
+
order['symbol'] = symbol;
|
|
111238
|
+
order['type'] = type;
|
|
111239
|
+
order['side'] = side;
|
|
111240
|
+
order['amount'] = amount;
|
|
111241
|
+
order['price'] = price;
|
|
111242
|
+
return order;
|
|
110984
111243
|
}
|
|
110985
111244
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
110986
111245
|
/**
|
|
@@ -114360,7 +114619,7 @@ class exmo extends _abstract_exmo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
114360
114619
|
const ticker = this.safeValue(response, marketId);
|
|
114361
114620
|
result[symbol] = this.parseTicker(ticker, market);
|
|
114362
114621
|
}
|
|
114363
|
-
return this.
|
|
114622
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
114364
114623
|
}
|
|
114365
114624
|
async fetchTicker(symbol, params = {}) {
|
|
114366
114625
|
/**
|
|
@@ -114815,9 +115074,8 @@ class exmo extends _abstract_exmo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
114815
115074
|
// }
|
|
114816
115075
|
//
|
|
114817
115076
|
const order = this.parseOrder(response);
|
|
114818
|
-
|
|
114819
|
-
|
|
114820
|
-
});
|
|
115077
|
+
order['id'] = id.toString();
|
|
115078
|
+
return order;
|
|
114821
115079
|
}
|
|
114822
115080
|
async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
114823
115081
|
/**
|
|
@@ -118731,7 +118989,8 @@ class gate extends _abstract_gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
118731
118989
|
result[code] = this.parseBalanceHelper(entry);
|
|
118732
118990
|
}
|
|
118733
118991
|
}
|
|
118734
|
-
|
|
118992
|
+
const returnResult = isolated ? result : this.safeBalance(result);
|
|
118993
|
+
return returnResult;
|
|
118735
118994
|
}
|
|
118736
118995
|
async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
|
|
118737
118996
|
/**
|
|
@@ -122986,6 +123245,7 @@ class gemini extends _abstract_gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
122986
123245
|
'max': undefined,
|
|
122987
123246
|
},
|
|
122988
123247
|
},
|
|
123248
|
+
'created': undefined,
|
|
122989
123249
|
'info': row,
|
|
122990
123250
|
});
|
|
122991
123251
|
}
|
|
@@ -123229,7 +123489,13 @@ class gemini extends _abstract_gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
123229
123489
|
* @returns {object} a [ticker structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure}
|
|
123230
123490
|
*/
|
|
123231
123491
|
const method = this.safeValue(this.options, 'fetchTickerMethod', 'fetchTickerV1');
|
|
123232
|
-
|
|
123492
|
+
if (method === 'fetchTickerV1') {
|
|
123493
|
+
return await this.fetchTickerV1(symbol, params);
|
|
123494
|
+
}
|
|
123495
|
+
if (method === 'fetchTickerV2') {
|
|
123496
|
+
return await this.fetchTickerV2(symbol, params);
|
|
123497
|
+
}
|
|
123498
|
+
return await this.fetchTickerV1AndV2(symbol, params);
|
|
123233
123499
|
}
|
|
123234
123500
|
parseTicker(ticker, market = undefined) {
|
|
123235
123501
|
//
|
|
@@ -125334,7 +125600,7 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
125334
125600
|
const entry = response[marketId];
|
|
125335
125601
|
result[symbol] = this.parseTicker(entry, market);
|
|
125336
125602
|
}
|
|
125337
|
-
return this.
|
|
125603
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
125338
125604
|
}
|
|
125339
125605
|
parseTicker(ticker, market = undefined) {
|
|
125340
125606
|
//
|
|
@@ -127988,7 +128254,7 @@ class hollaex extends _abstract_hollaex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
127988
128254
|
const symbol = market['symbol'];
|
|
127989
128255
|
result[symbol] = this.extend(this.parseTicker(ticker, market), params);
|
|
127990
128256
|
}
|
|
127991
|
-
return this.
|
|
128257
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
127992
128258
|
}
|
|
127993
128259
|
parseTicker(ticker, market = undefined) {
|
|
127994
128260
|
//
|
|
@@ -131445,7 +131711,7 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
131445
131711
|
ticker['datetime'] = this.iso8601(timestamp);
|
|
131446
131712
|
result[symbol] = ticker;
|
|
131447
131713
|
}
|
|
131448
|
-
return this.
|
|
131714
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
131449
131715
|
}
|
|
131450
131716
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
131451
131717
|
/**
|
|
@@ -133251,14 +133517,12 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
133251
133517
|
if (contract && (symbol === undefined)) {
|
|
133252
133518
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' fetchOrders() requires a symbol argument for ' + marketType + ' orders');
|
|
133253
133519
|
}
|
|
133254
|
-
let response = undefined;
|
|
133255
133520
|
if (contract) {
|
|
133256
|
-
|
|
133521
|
+
return await this.fetchContractOrders(symbol, since, limit, params);
|
|
133257
133522
|
}
|
|
133258
133523
|
else {
|
|
133259
|
-
|
|
133524
|
+
return await this.fetchSpotOrders(symbol, since, limit, params);
|
|
133260
133525
|
}
|
|
133261
|
-
return response;
|
|
133262
133526
|
}
|
|
133263
133527
|
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
133264
133528
|
/**
|
|
@@ -133291,14 +133555,12 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
133291
133555
|
}
|
|
133292
133556
|
let marketType = undefined;
|
|
133293
133557
|
[marketType, params] = this.handleMarketTypeAndParams('fetchClosedOrders', market, params);
|
|
133294
|
-
let response = undefined;
|
|
133295
133558
|
if (marketType === 'spot') {
|
|
133296
|
-
|
|
133559
|
+
return await this.fetchClosedSpotOrders(symbol, since, limit, params);
|
|
133297
133560
|
}
|
|
133298
133561
|
else {
|
|
133299
|
-
|
|
133562
|
+
return await this.fetchClosedContractOrders(symbol, since, limit, params);
|
|
133300
133563
|
}
|
|
133301
|
-
return response;
|
|
133302
133564
|
}
|
|
133303
133565
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
133304
133566
|
/**
|
|
@@ -133999,14 +134261,12 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
133999
134261
|
await this.loadMarkets();
|
|
134000
134262
|
const market = this.market(symbol);
|
|
134001
134263
|
const [marketType, query] = this.handleMarketTypeAndParams('createOrder', market, params);
|
|
134002
|
-
let response = undefined;
|
|
134003
134264
|
if (marketType === 'spot') {
|
|
134004
|
-
|
|
134265
|
+
return await this.createSpotOrder(symbol, type, side, amount, price, query);
|
|
134005
134266
|
}
|
|
134006
134267
|
else {
|
|
134007
|
-
|
|
134268
|
+
return await this.createContractOrder(symbol, type, side, amount, price, query);
|
|
134008
134269
|
}
|
|
134009
|
-
return response;
|
|
134010
134270
|
}
|
|
134011
134271
|
async createSpotOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
134012
134272
|
/**
|
|
@@ -134123,7 +134383,7 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
134123
134383
|
// {"status":"ok","data":"438398393065481"}
|
|
134124
134384
|
//
|
|
134125
134385
|
const id = this.safeString(response, 'data');
|
|
134126
|
-
return {
|
|
134386
|
+
return this.safeOrder({
|
|
134127
134387
|
'info': response,
|
|
134128
134388
|
'id': id,
|
|
134129
134389
|
'timestamp': undefined,
|
|
@@ -134131,10 +134391,10 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
134131
134391
|
'lastTradeTimestamp': undefined,
|
|
134132
134392
|
'status': undefined,
|
|
134133
134393
|
'symbol': undefined,
|
|
134134
|
-
'type':
|
|
134135
|
-
'side':
|
|
134136
|
-
'price':
|
|
134137
|
-
'amount':
|
|
134394
|
+
'type': type,
|
|
134395
|
+
'side': side,
|
|
134396
|
+
'price': price,
|
|
134397
|
+
'amount': amount,
|
|
134138
134398
|
'filled': undefined,
|
|
134139
134399
|
'remaining': undefined,
|
|
134140
134400
|
'cost': undefined,
|
|
@@ -134142,7 +134402,7 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
134142
134402
|
'fee': undefined,
|
|
134143
134403
|
'clientOrderId': undefined,
|
|
134144
134404
|
'average': undefined,
|
|
134145
|
-
};
|
|
134405
|
+
}, market);
|
|
134146
134406
|
}
|
|
134147
134407
|
async createContractOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
134148
134408
|
/**
|
|
@@ -138416,7 +138676,7 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
138416
138676
|
ticker['datetime'] = this.iso8601(timestamp);
|
|
138417
138677
|
result[symbol] = ticker;
|
|
138418
138678
|
}
|
|
138419
|
-
return this.
|
|
138679
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
138420
138680
|
}
|
|
138421
138681
|
parseTrade(trade, market = undefined) {
|
|
138422
138682
|
//
|
|
@@ -139116,7 +139376,7 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
139116
139376
|
const response = await this[method](this.extend(request, params));
|
|
139117
139377
|
const timestamp = this.milliseconds();
|
|
139118
139378
|
const id = this.safeString(response, 'data');
|
|
139119
|
-
return {
|
|
139379
|
+
return this.safeOrder({
|
|
139120
139380
|
'info': response,
|
|
139121
139381
|
'id': id,
|
|
139122
139382
|
'timestamp': timestamp,
|
|
@@ -139135,7 +139395,7 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
139135
139395
|
'fee': undefined,
|
|
139136
139396
|
'clientOrderId': undefined,
|
|
139137
139397
|
'average': undefined,
|
|
139138
|
-
};
|
|
139398
|
+
}, market);
|
|
139139
139399
|
}
|
|
139140
139400
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
139141
139401
|
/**
|
|
@@ -142765,7 +143025,8 @@ class indodax extends _abstract_indodax_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
142765
143025
|
const response = await this.privatePostGetOrder(this.extend(request, params));
|
|
142766
143026
|
const orders = response['return'];
|
|
142767
143027
|
const order = this.parseOrder(this.extend({ 'id': id }, orders['order']), market);
|
|
142768
|
-
|
|
143028
|
+
order['info'] = response;
|
|
143029
|
+
return order;
|
|
142769
143030
|
}
|
|
142770
143031
|
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
142771
143032
|
/**
|
|
@@ -144041,7 +144302,7 @@ class kraken extends _abstract_kraken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
144041
144302
|
const ticker = tickers[id];
|
|
144042
144303
|
result[symbol] = this.parseTicker(ticker, market);
|
|
144043
144304
|
}
|
|
144044
|
-
return this.
|
|
144305
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
144045
144306
|
}
|
|
144046
144307
|
async fetchTicker(symbol, params = {}) {
|
|
144047
144308
|
/**
|
|
@@ -144940,7 +145201,8 @@ class kraken extends _abstract_kraken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
144940
145201
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound(this.id + ' fetchOrder() could not find order id ' + id);
|
|
144941
145202
|
}
|
|
144942
145203
|
const order = this.parseOrder(this.extend({ 'id': id }, result[id]));
|
|
144943
|
-
|
|
145204
|
+
order['info'] = order;
|
|
145205
|
+
return order;
|
|
144944
145206
|
}
|
|
144945
145207
|
async fetchOrderTrades(id, symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
144946
145208
|
/**
|
|
@@ -146870,7 +147132,8 @@ class krakenfutures extends _abstract_krakenfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
146870
147132
|
const status = this.safeString(response['editStatus'], 'status');
|
|
146871
147133
|
this.verifyOrderActionSuccess(status, 'editOrder', ['filled']);
|
|
146872
147134
|
const order = this.parseOrder(response['editStatus']);
|
|
146873
|
-
|
|
147135
|
+
order['info'] = response;
|
|
147136
|
+
return order;
|
|
146874
147137
|
}
|
|
146875
147138
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
146876
147139
|
/**
|
|
@@ -147288,6 +147551,7 @@ class krakenfutures extends _abstract_krakenfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
147288
147551
|
'type': this.parseOrderType(type),
|
|
147289
147552
|
'timeInForce': timeInForce,
|
|
147290
147553
|
'postOnly': type === 'post',
|
|
147554
|
+
'reduceOnly': this.safeValue(details, 'reduceOnly'),
|
|
147291
147555
|
'side': this.safeString(details, 'side'),
|
|
147292
147556
|
'price': price,
|
|
147293
147557
|
'stopPrice': this.safeString(details, 'triggerPrice'),
|
|
@@ -147453,11 +147717,10 @@ class krakenfutures extends _abstract_krakenfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
147453
147717
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest(this.id + ' fetchBalance has no account for ' + type);
|
|
147454
147718
|
}
|
|
147455
147719
|
const balance = this.parseBalance(account);
|
|
147456
|
-
|
|
147457
|
-
|
|
147458
|
-
|
|
147459
|
-
|
|
147460
|
-
}, balance);
|
|
147720
|
+
balance['info'] = response;
|
|
147721
|
+
balance['timestamp'] = this.parse8601(datetime);
|
|
147722
|
+
balance['datetime'] = datetime;
|
|
147723
|
+
return balance;
|
|
147461
147724
|
}
|
|
147462
147725
|
parseBalance(response) {
|
|
147463
147726
|
//
|
|
@@ -149597,7 +149860,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
149597
149860
|
result[symbol] = ticker;
|
|
149598
149861
|
}
|
|
149599
149862
|
}
|
|
149600
|
-
return this.
|
|
149863
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
149601
149864
|
}
|
|
149602
149865
|
async fetchTicker(symbol, params = {}) {
|
|
149603
149866
|
/**
|
|
@@ -151479,7 +151742,8 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
151479
151742
|
}
|
|
151480
151743
|
}
|
|
151481
151744
|
}
|
|
151482
|
-
|
|
151745
|
+
const returnType = isolated ? result : this.safeBalance(result);
|
|
151746
|
+
return returnType;
|
|
151483
151747
|
}
|
|
151484
151748
|
async transfer(code, amount, fromAccount, toAccount, params = {}) {
|
|
151485
151749
|
/**
|
|
@@ -153556,7 +153820,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
153556
153820
|
// }
|
|
153557
153821
|
//
|
|
153558
153822
|
const data = this.safeValue(response, 'data', {});
|
|
153559
|
-
return {
|
|
153823
|
+
return this.safeOrder({
|
|
153560
153824
|
'id': this.safeString(data, 'orderId'),
|
|
153561
153825
|
'clientOrderId': undefined,
|
|
153562
153826
|
'timestamp': undefined,
|
|
@@ -153579,7 +153843,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
153579
153843
|
'stopPrice': undefined,
|
|
153580
153844
|
'triggerPrice': undefined,
|
|
153581
153845
|
'info': response,
|
|
153582
|
-
};
|
|
153846
|
+
}, market);
|
|
153583
153847
|
}
|
|
153584
153848
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
153585
153849
|
/**
|
|
@@ -155295,7 +155559,7 @@ class kuna extends _abstract_kuna_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
155295
155559
|
const symbol = market['symbol'];
|
|
155296
155560
|
result[symbol] = this.parseTicker(response[id], market);
|
|
155297
155561
|
}
|
|
155298
|
-
return this.
|
|
155562
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
155299
155563
|
}
|
|
155300
155564
|
async fetchTicker(symbol, params = {}) {
|
|
155301
155565
|
/**
|
|
@@ -157502,12 +157766,12 @@ class latoken extends _abstract_latoken_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
157502
157766
|
/* harmony export */ "Z": () => (/* binding */ lbank)
|
|
157503
157767
|
/* harmony export */ });
|
|
157504
157768
|
/* harmony import */ var _abstract_lbank_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6168);
|
|
157505
|
-
/* harmony import */ var
|
|
157769
|
+
/* harmony import */ var _base_errors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6689);
|
|
157506
157770
|
/* harmony import */ var _base_Precise_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2194);
|
|
157507
157771
|
/* harmony import */ var _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9292);
|
|
157508
|
-
/* harmony import */ var
|
|
157509
|
-
/* harmony import */ var
|
|
157510
|
-
/* harmony import */ var
|
|
157772
|
+
/* harmony import */ var _static_dependencies_noble_hashes_md5_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7311);
|
|
157773
|
+
/* harmony import */ var _base_functions_rsa_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5981);
|
|
157774
|
+
/* harmony import */ var _static_dependencies_noble_hashes_sha256_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1372);
|
|
157511
157775
|
// ---------------------------------------------------------------------------
|
|
157512
157776
|
|
|
157513
157777
|
|
|
@@ -157838,7 +158102,7 @@ class lbank extends _abstract_lbank_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
157838
158102
|
const symbol = ticker['symbol'];
|
|
157839
158103
|
result[symbol] = ticker;
|
|
157840
158104
|
}
|
|
157841
|
-
return this.
|
|
158105
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
157842
158106
|
}
|
|
157843
158107
|
async fetchOrderBook(symbol, limit = 60, params = {}) {
|
|
157844
158108
|
/**
|
|
@@ -158172,7 +158436,7 @@ class lbank extends _abstract_lbank_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
158172
158436
|
return orders[0];
|
|
158173
158437
|
}
|
|
158174
158438
|
else {
|
|
158175
|
-
return orders;
|
|
158439
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.BadRequest(this.id + ' fetchOrder() can only return one order at a time. Found ' + numOrders + ' orders.');
|
|
158176
158440
|
}
|
|
158177
158441
|
}
|
|
158178
158442
|
async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -158319,7 +158583,7 @@ class lbank extends _abstract_lbank_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
158319
158583
|
'api_key': this.apiKey,
|
|
158320
158584
|
}, query));
|
|
158321
158585
|
const queryString = this.rawencode(query);
|
|
158322
|
-
const message = this.hash(this.encode(queryString),
|
|
158586
|
+
const message = this.hash(this.encode(queryString), _static_dependencies_noble_hashes_md5_js__WEBPACK_IMPORTED_MODULE_4__/* .md5 */ .F).toUpperCase();
|
|
158323
158587
|
const cacheSecretAsPem = this.safeValue(this.options, 'cacheSecretAsPem', true);
|
|
158324
158588
|
let pem = undefined;
|
|
158325
158589
|
if (cacheSecretAsPem) {
|
|
@@ -158332,7 +158596,7 @@ class lbank extends _abstract_lbank_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
158332
158596
|
else {
|
|
158333
158597
|
pem = this.convertSecretToPem(this.secret);
|
|
158334
158598
|
}
|
|
158335
|
-
query['sign'] = (0,
|
|
158599
|
+
query['sign'] = (0,_base_functions_rsa_js__WEBPACK_IMPORTED_MODULE_5__/* .rsa */ .j)(message, pem, _static_dependencies_noble_hashes_sha256_js__WEBPACK_IMPORTED_MODULE_6__/* .sha256 */ .J);
|
|
158336
158600
|
body = this.urlencode(query);
|
|
158337
158601
|
headers = { 'Content-Type': 'application/x-www-form-urlencoded' };
|
|
158338
158602
|
}
|
|
@@ -158370,21 +158634,21 @@ class lbank extends _abstract_lbank_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
158370
158634
|
'10022': 'Insufficient key authority',
|
|
158371
158635
|
}, errorCode, this.json(response));
|
|
158372
158636
|
const ErrorClass = this.safeValue({
|
|
158373
|
-
'10002':
|
|
158374
|
-
'10004':
|
|
158375
|
-
'10005':
|
|
158376
|
-
'10006':
|
|
158377
|
-
'10007':
|
|
158378
|
-
'10009':
|
|
158379
|
-
'10010':
|
|
158380
|
-
'10011':
|
|
158381
|
-
'10012':
|
|
158382
|
-
'10013':
|
|
158383
|
-
'10014':
|
|
158384
|
-
'10015':
|
|
158385
|
-
'10016':
|
|
158386
|
-
'10022':
|
|
158387
|
-
}, errorCode,
|
|
158637
|
+
'10002': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.AuthenticationError,
|
|
158638
|
+
'10004': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.DDoSProtection,
|
|
158639
|
+
'10005': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.AuthenticationError,
|
|
158640
|
+
'10006': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.AuthenticationError,
|
|
158641
|
+
'10007': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.AuthenticationError,
|
|
158642
|
+
'10009': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.InvalidOrder,
|
|
158643
|
+
'10010': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.InvalidOrder,
|
|
158644
|
+
'10011': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.InvalidOrder,
|
|
158645
|
+
'10012': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.InvalidOrder,
|
|
158646
|
+
'10013': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.InvalidOrder,
|
|
158647
|
+
'10014': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.InvalidOrder,
|
|
158648
|
+
'10015': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.InvalidOrder,
|
|
158649
|
+
'10016': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.InvalidOrder,
|
|
158650
|
+
'10022': _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.AuthenticationError,
|
|
158651
|
+
}, errorCode, _base_errors_js__WEBPACK_IMPORTED_MODULE_3__.ExchangeError);
|
|
158388
158652
|
throw new ErrorClass(message);
|
|
158389
158653
|
}
|
|
158390
158654
|
return undefined;
|
|
@@ -159913,8 +160177,10 @@ class lbank2 extends _abstract_lbank2_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
159913
160177
|
const options = this.safeValue(this.options, 'fetchOrder', {});
|
|
159914
160178
|
method = this.safeString(options, 'method', 'fetchOrderSupplement');
|
|
159915
160179
|
}
|
|
159916
|
-
|
|
159917
|
-
|
|
160180
|
+
if (method === 'fetchOrderSupplement') {
|
|
160181
|
+
return await this.fetchOrderSupplement(id, symbol, params);
|
|
160182
|
+
}
|
|
160183
|
+
return await this.fetchOrderDefault(id, symbol, params);
|
|
159918
160184
|
}
|
|
159919
160185
|
async fetchOrderSupplement(id, symbol = undefined, params = {}) {
|
|
159920
160186
|
this.checkRequiredSymbol('fetchOrder', symbol);
|
|
@@ -159985,12 +160251,13 @@ class lbank2 extends _abstract_lbank2_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
159985
160251
|
return this.parseOrder(result[0]);
|
|
159986
160252
|
}
|
|
159987
160253
|
else {
|
|
159988
|
-
const parsedOrders = [];
|
|
159989
|
-
for (let i = 0; i < numOrders; i++) {
|
|
159990
|
-
|
|
159991
|
-
|
|
159992
|
-
}
|
|
159993
|
-
return parsedOrders;
|
|
160254
|
+
// const parsedOrders = [];
|
|
160255
|
+
// for (let i = 0; i < numOrders; i++) {
|
|
160256
|
+
// const parsedOrder = this.parseOrder (result[i]);
|
|
160257
|
+
// parsedOrders.push (parsedOrder);
|
|
160258
|
+
// }
|
|
160259
|
+
// return parsedOrders;
|
|
160260
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' fetchOrder() can only fetch one order at a time');
|
|
159994
160261
|
}
|
|
159995
160262
|
}
|
|
159996
160263
|
async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -161749,7 +162016,7 @@ class luno extends _abstract_luno_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
161749
162016
|
const ticker = tickers[id];
|
|
161750
162017
|
result[symbol] = this.parseTicker(ticker, market);
|
|
161751
162018
|
}
|
|
161752
|
-
return this.
|
|
162019
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
161753
162020
|
}
|
|
161754
162021
|
async fetchTicker(symbol, params = {}) {
|
|
161755
162022
|
/**
|
|
@@ -163052,7 +163319,7 @@ class lykke extends _abstract_lykke_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
163052
163319
|
if (type === 'market') {
|
|
163053
163320
|
price = this.safeNumber(payload, 'price');
|
|
163054
163321
|
}
|
|
163055
|
-
return {
|
|
163322
|
+
return this.safeOrder({
|
|
163056
163323
|
'id': id,
|
|
163057
163324
|
'info': result,
|
|
163058
163325
|
'clientOrderId': undefined,
|
|
@@ -163071,7 +163338,7 @@ class lykke extends _abstract_lykke_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
163071
163338
|
'status': undefined,
|
|
163072
163339
|
'fee': undefined,
|
|
163073
163340
|
'trades': undefined,
|
|
163074
|
-
};
|
|
163341
|
+
}, market);
|
|
163075
163342
|
}
|
|
163076
163343
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
163077
163344
|
/**
|
|
@@ -166517,10 +166784,9 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
166517
166784
|
if (market['spot']) {
|
|
166518
166785
|
return await this.createSpotOrder(market, type, side, amount, price, marginMode, query);
|
|
166519
166786
|
}
|
|
166520
|
-
else
|
|
166787
|
+
else {
|
|
166521
166788
|
return await this.createSwapOrder(market, type, side, amount, price, marginMode, query);
|
|
166522
166789
|
}
|
|
166523
|
-
return undefined;
|
|
166524
166790
|
}
|
|
166525
166791
|
async createSpotOrder(market, type, side, amount, price = undefined, marginMode = undefined, params = {}) {
|
|
166526
166792
|
const symbol = market['symbol'];
|
|
@@ -166591,12 +166857,12 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
166591
166857
|
// "transactTime": 1661992652132
|
|
166592
166858
|
// }
|
|
166593
166859
|
//
|
|
166594
|
-
|
|
166595
|
-
|
|
166596
|
-
|
|
166597
|
-
|
|
166598
|
-
|
|
166599
|
-
|
|
166860
|
+
const order = this.parseOrder(response, market);
|
|
166861
|
+
order['side'] = side;
|
|
166862
|
+
order['type'] = type;
|
|
166863
|
+
order['price'] = price;
|
|
166864
|
+
order['amount'] = amount;
|
|
166865
|
+
return order;
|
|
166600
166866
|
}
|
|
166601
166867
|
async createSwapOrder(market, type, side, amount, price = undefined, marginMode = undefined, params = {}) {
|
|
166602
166868
|
await this.loadMarkets();
|
|
@@ -172694,7 +172960,7 @@ class novadax extends _abstract_novadax_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
172694
172960
|
const symbol = ticker['symbol'];
|
|
172695
172961
|
result[symbol] = ticker;
|
|
172696
172962
|
}
|
|
172697
|
-
return this.
|
|
172963
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
172698
172964
|
}
|
|
172699
172965
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
172700
172966
|
/**
|
|
@@ -174129,7 +174395,7 @@ class oceanex extends _abstract_oceanex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
174129
174395
|
const symbol = market['symbol'];
|
|
174130
174396
|
result[symbol] = this.parseTicker(ticker, market);
|
|
174131
174397
|
}
|
|
174132
|
-
return this.
|
|
174398
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
174133
174399
|
}
|
|
174134
174400
|
parseTicker(data, market = undefined) {
|
|
174135
174401
|
//
|
|
@@ -176105,7 +176371,7 @@ class okcoin extends _abstract_okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
176105
176371
|
const symbol = ticker['symbol'];
|
|
176106
176372
|
result[symbol] = ticker;
|
|
176107
176373
|
}
|
|
176108
|
-
return this.
|
|
176374
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
176109
176375
|
}
|
|
176110
176376
|
async fetchTickers(symbols = undefined, params = {}) {
|
|
176111
176377
|
/**
|
|
@@ -176838,10 +177104,9 @@ class okcoin extends _abstract_okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
176838
177104
|
// }
|
|
176839
177105
|
//
|
|
176840
177106
|
const order = this.parseOrder(response, market);
|
|
176841
|
-
|
|
176842
|
-
|
|
176843
|
-
|
|
176844
|
-
});
|
|
177107
|
+
order['type'] = type;
|
|
177108
|
+
order['side'] = side;
|
|
177109
|
+
return order;
|
|
176845
177110
|
}
|
|
176846
177111
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
176847
177112
|
/**
|
|
@@ -181478,10 +181743,9 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
181478
181743
|
const data = this.safeValue(response, 'data', []);
|
|
181479
181744
|
const first = this.safeValue(data, 0);
|
|
181480
181745
|
const order = this.parseOrder(first, market);
|
|
181481
|
-
|
|
181482
|
-
|
|
181483
|
-
|
|
181484
|
-
});
|
|
181746
|
+
order['type'] = type;
|
|
181747
|
+
order['side'] = side;
|
|
181748
|
+
return order;
|
|
181485
181749
|
}
|
|
181486
181750
|
editOrderRequest(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
|
|
181487
181751
|
const market = this.market(symbol);
|
|
@@ -181592,10 +181856,9 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
181592
181856
|
const data = this.safeValue(response, 'data', []);
|
|
181593
181857
|
const first = this.safeValue(data, 0);
|
|
181594
181858
|
const order = this.parseOrder(first, market);
|
|
181595
|
-
|
|
181596
|
-
|
|
181597
|
-
|
|
181598
|
-
});
|
|
181859
|
+
order['type'] = type;
|
|
181860
|
+
order['side'] = side;
|
|
181861
|
+
return order;
|
|
181599
181862
|
}
|
|
181600
181863
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
181601
181864
|
/**
|
|
@@ -184520,6 +184783,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
184520
184783
|
* @param {string} marginMode 'cross' or 'isolated'
|
|
184521
184784
|
* @param {string} symbol unified market symbol
|
|
184522
184785
|
* @param {object} [params] extra parameters specific to the okx api endpoint
|
|
184786
|
+
* @param {int} [params.leverage] leverage
|
|
184523
184787
|
* @returns {object} response from the exchange
|
|
184524
184788
|
*/
|
|
184525
184789
|
if (symbol === undefined) {
|
|
@@ -184533,11 +184797,11 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
184533
184797
|
}
|
|
184534
184798
|
await this.loadMarkets();
|
|
184535
184799
|
const market = this.market(symbol);
|
|
184536
|
-
const lever = this.
|
|
184800
|
+
const lever = this.safeInteger2(params, 'lever', 'leverage');
|
|
184537
184801
|
if ((lever === undefined) || (lever < 1) || (lever > 125)) {
|
|
184538
184802
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest(this.id + ' setMarginMode() params["lever"] should be between 1 and 125');
|
|
184539
184803
|
}
|
|
184540
|
-
params = this.omit(params, ['
|
|
184804
|
+
params = this.omit(params, ['leverage']);
|
|
184541
184805
|
const request = {
|
|
184542
184806
|
'lever': lever,
|
|
184543
184807
|
'mgnMode': marginMode,
|
|
@@ -191709,8 +191973,8 @@ class poloniex extends _abstract_poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
191709
191973
|
// }
|
|
191710
191974
|
// ]
|
|
191711
191975
|
//
|
|
191712
|
-
const result = this.parseTrades(response, market);
|
|
191713
|
-
return
|
|
191976
|
+
const result = this.parseTrades(response, market, since, limit);
|
|
191977
|
+
return result;
|
|
191714
191978
|
}
|
|
191715
191979
|
parseOrderStatus(status) {
|
|
191716
191980
|
const statuses = {
|
|
@@ -192192,9 +192456,9 @@ class poloniex extends _abstract_poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
192192
192456
|
// "updateTime": 1646196019020
|
|
192193
192457
|
// }
|
|
192194
192458
|
//
|
|
192195
|
-
|
|
192196
|
-
|
|
192197
|
-
|
|
192459
|
+
const order = this.parseOrder(response);
|
|
192460
|
+
order['id'] = id;
|
|
192461
|
+
return order;
|
|
192198
192462
|
}
|
|
192199
192463
|
async fetchOrderStatus(id, symbol = undefined, params = {}) {
|
|
192200
192464
|
await this.loadMarkets();
|
|
@@ -193912,7 +194176,7 @@ class poloniexfutures extends _abstract_poloniexfutures_js__WEBPACK_IMPORTED_MOD
|
|
|
193912
194176
|
// }
|
|
193913
194177
|
//
|
|
193914
194178
|
const data = this.safeValue(response, 'data', {});
|
|
193915
|
-
return {
|
|
194179
|
+
return this.safeOrder({
|
|
193916
194180
|
'id': this.safeString(data, 'orderId'),
|
|
193917
194181
|
'clientOrderId': undefined,
|
|
193918
194182
|
'timestamp': undefined,
|
|
@@ -193934,7 +194198,7 @@ class poloniexfutures extends _abstract_poloniexfutures_js__WEBPACK_IMPORTED_MOD
|
|
|
193934
194198
|
'postOnly': undefined,
|
|
193935
194199
|
'stopPrice': undefined,
|
|
193936
194200
|
'info': response,
|
|
193937
|
-
};
|
|
194201
|
+
}, market);
|
|
193938
194202
|
}
|
|
193939
194203
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
193940
194204
|
/**
|
|
@@ -229985,13 +230249,16 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
229985
230249
|
* @description watches information on multiple orders made by the user
|
|
229986
230250
|
* @param {string} symbol unified market symbol of the market orders were made in
|
|
229987
230251
|
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
229988
|
-
* @param {int} [limit] the maximum number of
|
|
230252
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
229989
230253
|
* @param {object} [params] extra parameters specific to the kucoin api endpoint
|
|
230254
|
+
* @param {boolean} [params.stop] trigger orders are watched if true
|
|
229990
230255
|
* @returns {object[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
229991
230256
|
*/
|
|
229992
230257
|
await this.loadMarkets();
|
|
230258
|
+
const stop = this.safeValue2(params, 'stop', 'trigger');
|
|
230259
|
+
params = this.omit(params, ['stop', 'trigger']);
|
|
229993
230260
|
const url = await this.negotiate(true);
|
|
229994
|
-
const topic = '/spotMarket/tradeOrders';
|
|
230261
|
+
const topic = stop ? '/spotMarket/advancedOrders' : '/spotMarket/tradeOrders';
|
|
229995
230262
|
const request = {
|
|
229996
230263
|
'privateChannel': true,
|
|
229997
230264
|
};
|
|
@@ -230014,59 +230281,79 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
230014
230281
|
'match': 'open',
|
|
230015
230282
|
'update': 'open',
|
|
230016
230283
|
'canceled': 'canceled',
|
|
230284
|
+
'cancel': 'canceled',
|
|
230285
|
+
'TRIGGERED': 'triggered',
|
|
230017
230286
|
};
|
|
230018
230287
|
return this.safeString(statuses, status, status);
|
|
230019
230288
|
}
|
|
230020
230289
|
parseWsOrder(order, market = undefined) {
|
|
230021
230290
|
//
|
|
230022
|
-
//
|
|
230023
|
-
//
|
|
230024
|
-
//
|
|
230025
|
-
//
|
|
230026
|
-
//
|
|
230027
|
-
//
|
|
230028
|
-
//
|
|
230029
|
-
//
|
|
230030
|
-
//
|
|
230031
|
-
//
|
|
230032
|
-
//
|
|
230033
|
-
//
|
|
230034
|
-
//
|
|
230035
|
-
//
|
|
230036
|
-
//
|
|
230291
|
+
// /spotMarket/tradeOrders
|
|
230292
|
+
//
|
|
230293
|
+
// {
|
|
230294
|
+
// 'symbol': 'XCAD-USDT',
|
|
230295
|
+
// 'orderType': 'limit',
|
|
230296
|
+
// 'side': 'buy',
|
|
230297
|
+
// 'orderId': '6249167327218b000135e749',
|
|
230298
|
+
// 'type': 'canceled',
|
|
230299
|
+
// 'orderTime': 1648957043065280224,
|
|
230300
|
+
// 'size': '100.452',
|
|
230301
|
+
// 'filledSize': '0',
|
|
230302
|
+
// 'price': '2.9635',
|
|
230303
|
+
// 'clientOid': 'buy-XCAD-USDT-1648957043010159',
|
|
230304
|
+
// 'remainSize': '0',
|
|
230305
|
+
// 'status': 'done',
|
|
230306
|
+
// 'ts': 1648957054031001037
|
|
230307
|
+
// }
|
|
230308
|
+
//
|
|
230309
|
+
// /spotMarket/advancedOrders
|
|
230310
|
+
//
|
|
230311
|
+
// {
|
|
230312
|
+
// "createdAt": 1589789942337,
|
|
230313
|
+
// "orderId": "5ec244f6a8a75e0009958237",
|
|
230314
|
+
// "orderPrice": "0.00062",
|
|
230315
|
+
// "orderType": "stop",
|
|
230316
|
+
// "side": "sell",
|
|
230317
|
+
// "size": "1",
|
|
230318
|
+
// "stop": "entry",
|
|
230319
|
+
// "stopPrice": "0.00062",
|
|
230320
|
+
// "symbol": "KCS-BTC",
|
|
230321
|
+
// "tradeType": "TRADE",
|
|
230322
|
+
// "triggerSuccess": true,
|
|
230323
|
+
// "ts": 1589790121382281286,
|
|
230324
|
+
// "type": "triggered"
|
|
230325
|
+
// }
|
|
230037
230326
|
//
|
|
230038
|
-
const id = this.safeString(order, 'orderId');
|
|
230039
|
-
const clientOrderId = this.safeString(order, 'clientOid');
|
|
230040
|
-
const orderType = this.safeStringLower(order, 'orderType');
|
|
230041
|
-
const price = this.safeString(order, 'price');
|
|
230042
|
-
const filled = this.safeString(order, 'filledSize');
|
|
230043
|
-
const amount = this.safeString(order, 'size');
|
|
230044
230327
|
const rawType = this.safeString(order, 'type');
|
|
230045
|
-
|
|
230046
|
-
const timestamp = this.
|
|
230328
|
+
let status = this.parseWsOrderStatus(rawType);
|
|
230329
|
+
const timestamp = this.safeInteger2(order, 'orderTime', 'createdAt');
|
|
230047
230330
|
const marketId = this.safeString(order, 'symbol');
|
|
230048
230331
|
market = this.safeMarket(marketId, market);
|
|
230049
|
-
const
|
|
230050
|
-
const
|
|
230332
|
+
const triggerPrice = this.safeString(order, 'stopPrice');
|
|
230333
|
+
const triggerSuccess = this.safeValue(order, 'triggerSuccess');
|
|
230334
|
+
const triggerFail = (triggerSuccess !== true) && (triggerSuccess !== undefined); // TODO: updated to triggerSuccess === False once transpiler transpiles it correctly
|
|
230335
|
+
if ((status === 'triggered') && triggerFail) {
|
|
230336
|
+
status = 'canceled';
|
|
230337
|
+
}
|
|
230051
230338
|
return this.safeOrder({
|
|
230052
230339
|
'info': order,
|
|
230053
|
-
'symbol': symbol,
|
|
230054
|
-
'id':
|
|
230055
|
-
'clientOrderId':
|
|
230340
|
+
'symbol': market['symbol'],
|
|
230341
|
+
'id': this.safeString(order, 'orderId'),
|
|
230342
|
+
'clientOrderId': this.safeString(order, 'clientOid'),
|
|
230056
230343
|
'timestamp': timestamp,
|
|
230057
230344
|
'datetime': this.iso8601(timestamp),
|
|
230058
230345
|
'lastTradeTimestamp': undefined,
|
|
230059
|
-
'type': orderType,
|
|
230346
|
+
'type': this.safeStringLower(order, 'orderType'),
|
|
230060
230347
|
'timeInForce': undefined,
|
|
230061
230348
|
'postOnly': undefined,
|
|
230062
|
-
'side': side,
|
|
230063
|
-
'price': price,
|
|
230064
|
-
'stopPrice':
|
|
230065
|
-
'triggerPrice':
|
|
230066
|
-
'amount':
|
|
230349
|
+
'side': this.safeStringLower(order, 'side'),
|
|
230350
|
+
'price': this.safeString2(order, 'price', 'orderPrice'),
|
|
230351
|
+
'stopPrice': triggerPrice,
|
|
230352
|
+
'triggerPrice': triggerPrice,
|
|
230353
|
+
'amount': this.safeString(order, 'size'),
|
|
230067
230354
|
'cost': undefined,
|
|
230068
230355
|
'average': undefined,
|
|
230069
|
-
'filled':
|
|
230356
|
+
'filled': this.safeString(order, 'filledSize'),
|
|
230070
230357
|
'remaining': undefined,
|
|
230071
230358
|
'status': status,
|
|
230072
230359
|
'fee': undefined,
|
|
@@ -230074,32 +230361,51 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
230074
230361
|
}, market);
|
|
230075
230362
|
}
|
|
230076
230363
|
handleOrder(client, message) {
|
|
230364
|
+
//
|
|
230365
|
+
// Trigger Orders
|
|
230366
|
+
//
|
|
230367
|
+
// {
|
|
230368
|
+
// createdAt: 1692745706437,
|
|
230369
|
+
// error: 'Balance insufficient!', // not always there
|
|
230370
|
+
// orderId: 'vs86kp757vlda6ni003qs70v',
|
|
230371
|
+
// orderPrice: '0.26',
|
|
230372
|
+
// orderType: 'stop',
|
|
230373
|
+
// side: 'sell',
|
|
230374
|
+
// size: '5',
|
|
230375
|
+
// stop: 'loss',
|
|
230376
|
+
// stopPrice: '0.26',
|
|
230377
|
+
// symbol: 'ADA-USDT',
|
|
230378
|
+
// tradeType: 'TRADE',
|
|
230379
|
+
// triggerSuccess: false, // not always there
|
|
230380
|
+
// ts: '1692745706442929298',
|
|
230381
|
+
// type: 'open'
|
|
230382
|
+
// }
|
|
230383
|
+
//
|
|
230077
230384
|
const messageHash = 'orders';
|
|
230078
230385
|
const data = this.safeValue(message, 'data');
|
|
230079
230386
|
const parsed = this.parseWsOrder(data);
|
|
230080
230387
|
const symbol = this.safeString(parsed, 'symbol');
|
|
230081
230388
|
const orderId = this.safeString(parsed, 'id');
|
|
230389
|
+
const triggerPrice = this.safeValue(parsed, 'triggerPrice');
|
|
230390
|
+
const isTriggerOrder = (triggerPrice !== undefined);
|
|
230082
230391
|
if (this.orders === undefined) {
|
|
230083
230392
|
const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
|
|
230084
230393
|
this.orders = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_1__/* .ArrayCacheBySymbolById */ .hl(limit);
|
|
230394
|
+
this.triggerOrders = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_1__/* .ArrayCacheBySymbolById */ .hl(limit);
|
|
230085
230395
|
}
|
|
230086
|
-
const cachedOrders = this.orders;
|
|
230396
|
+
const cachedOrders = isTriggerOrder ? this.triggerOrders : this.orders;
|
|
230087
230397
|
const orders = this.safeValue(cachedOrders.hashmap, symbol, {});
|
|
230088
230398
|
const order = this.safeValue(orders, orderId);
|
|
230089
230399
|
if (order !== undefined) {
|
|
230090
230400
|
// todo add others to calculate average etc
|
|
230091
|
-
const stopPrice = this.safeValue(order, 'stopPrice');
|
|
230092
|
-
if (stopPrice !== undefined) {
|
|
230093
|
-
parsed['stopPrice'] = stopPrice;
|
|
230094
|
-
}
|
|
230095
230401
|
if (order['status'] === 'closed') {
|
|
230096
230402
|
parsed['status'] = 'closed';
|
|
230097
230403
|
}
|
|
230098
230404
|
}
|
|
230099
230405
|
cachedOrders.append(parsed);
|
|
230100
|
-
client.resolve(
|
|
230406
|
+
client.resolve(cachedOrders, messageHash);
|
|
230101
230407
|
const symbolSpecificMessageHash = messageHash + ':' + symbol;
|
|
230102
|
-
client.resolve(
|
|
230408
|
+
client.resolve(cachedOrders, symbolSpecificMessageHash);
|
|
230103
230409
|
}
|
|
230104
230410
|
async watchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
230105
230411
|
/**
|
|
@@ -230296,6 +230602,7 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
230296
230602
|
'account.balance': this.handleBalance,
|
|
230297
230603
|
'/spot/tradeFills': this.handleMyTrade,
|
|
230298
230604
|
'orderChange': this.handleOrder,
|
|
230605
|
+
'stopOrder': this.handleOrder,
|
|
230299
230606
|
};
|
|
230300
230607
|
const method = this.safeValue(methods, subject);
|
|
230301
230608
|
if (method === undefined) {
|
|
@@ -234883,8 +235190,8 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
234883
235190
|
let type = undefined;
|
|
234884
235191
|
// By default, receive order updates from any instrument type
|
|
234885
235192
|
[type, params] = this.handleOptionAndParams(params, 'watchOrders', 'type', 'ANY');
|
|
234886
|
-
const isStop = this.
|
|
234887
|
-
params = this.omit(params, ['stop']);
|
|
235193
|
+
const isStop = this.safeValue2(params, 'stop', 'trigger', false);
|
|
235194
|
+
params = this.omit(params, ['stop', 'trigger']);
|
|
234888
235195
|
await this.loadMarkets();
|
|
234889
235196
|
await this.authenticate({ 'access': isStop ? 'business' : 'private' });
|
|
234890
235197
|
let market = undefined;
|
|
@@ -234971,8 +235278,9 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
234971
235278
|
const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
|
|
234972
235279
|
if (this.orders === undefined) {
|
|
234973
235280
|
this.orders = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCacheBySymbolById */ .hl(limit);
|
|
235281
|
+
this.triggerOrders = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCacheBySymbolById */ .hl(limit);
|
|
234974
235282
|
}
|
|
234975
|
-
const stored = this.orders;
|
|
235283
|
+
const stored = (channel === 'orders-algo') ? this.triggerOrders : this.orders;
|
|
234976
235284
|
const marketIds = [];
|
|
234977
235285
|
const parsed = this.parseOrders(orders);
|
|
234978
235286
|
for (let i = 0; i < parsed.length; i++) {
|
|
@@ -234982,10 +235290,10 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
234982
235290
|
const market = this.market(symbol);
|
|
234983
235291
|
marketIds.push(market['id']);
|
|
234984
235292
|
}
|
|
234985
|
-
client.resolve(
|
|
235293
|
+
client.resolve(stored, channel);
|
|
234986
235294
|
for (let i = 0; i < marketIds.length; i++) {
|
|
234987
235295
|
const messageHash = channel + ':' + marketIds[i];
|
|
234988
|
-
client.resolve(
|
|
235296
|
+
client.resolve(stored, messageHash);
|
|
234989
235297
|
}
|
|
234990
235298
|
}
|
|
234991
235299
|
}
|
|
@@ -253701,7 +254009,7 @@ class tidex extends _abstract_tidex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
253701
254009
|
const symbol = market['symbol'];
|
|
253702
254010
|
result[symbol] = this.parseTicker(response[id], market);
|
|
253703
254011
|
}
|
|
253704
|
-
return this.
|
|
254012
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
253705
254013
|
}
|
|
253706
254014
|
async fetchTicker(symbol, params = {}) {
|
|
253707
254015
|
/**
|
|
@@ -259067,7 +259375,7 @@ class upbit extends _abstract_upbit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
259067
259375
|
const symbol = ticker['symbol'];
|
|
259068
259376
|
result[symbol] = ticker;
|
|
259069
259377
|
}
|
|
259070
|
-
return this.
|
|
259378
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
259071
259379
|
}
|
|
259072
259380
|
async fetchTicker(symbol, params = {}) {
|
|
259073
259381
|
/**
|
|
@@ -263224,7 +263532,7 @@ class wazirx extends _abstract_wazirx_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
263224
263532
|
const symbol = parsedTicker['symbol'];
|
|
263225
263533
|
result[symbol] = parsedTicker;
|
|
263226
263534
|
}
|
|
263227
|
-
return result;
|
|
263535
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
263228
263536
|
}
|
|
263229
263537
|
async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
263230
263538
|
/**
|
|
@@ -264553,7 +264861,7 @@ class whitebit extends _abstract_whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
264553
264861
|
const symbol = ticker['symbol'];
|
|
264554
264862
|
result[symbol] = ticker;
|
|
264555
264863
|
}
|
|
264556
|
-
return this.
|
|
264864
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
264557
264865
|
}
|
|
264558
264866
|
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
264559
264867
|
/**
|
|
@@ -266917,7 +267225,9 @@ class woo extends _abstract_woo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
266917
267225
|
const rows = this.safeValue(data, 'rows', []);
|
|
266918
267226
|
return this.parseOrder(rows[0], market);
|
|
266919
267227
|
}
|
|
266920
|
-
|
|
267228
|
+
const order = this.parseOrder(response, market);
|
|
267229
|
+
order['type'] = type;
|
|
267230
|
+
return order;
|
|
266921
267231
|
}
|
|
266922
267232
|
async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
|
|
266923
267233
|
/**
|
|
@@ -269228,7 +269538,7 @@ class yobit extends _abstract_yobit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
269228
269538
|
const symbol = market['symbol'];
|
|
269229
269539
|
result[symbol] = this.parseTicker(ticker, market);
|
|
269230
269540
|
}
|
|
269231
|
-
return this.
|
|
269541
|
+
return this.filterByArrayTickers(result, 'symbol', symbols);
|
|
269232
269542
|
}
|
|
269233
269543
|
async fetchTicker(symbol, params = {}) {
|
|
269234
269544
|
/**
|
|
@@ -278170,7 +278480,7 @@ SOFTWARE.
|
|
|
278170
278480
|
|
|
278171
278481
|
//-----------------------------------------------------------------------------
|
|
278172
278482
|
// this is updated by vss.js when building
|
|
278173
|
-
const version = '4.1.
|
|
278483
|
+
const version = '4.1.20';
|
|
278174
278484
|
_src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
|
|
278175
278485
|
//-----------------------------------------------------------------------------
|
|
278176
278486
|
|