ccxt 4.0.100 → 4.0.102
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 +5 -6
- package/dist/ccxt.browser.js +965 -2559
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -4
- package/dist/cjs/src/binance.js +36 -1
- package/dist/cjs/src/bingx.js +41 -4
- package/dist/cjs/src/bitbank.js +11 -0
- package/dist/cjs/src/bitfinex.js +12 -8
- package/dist/cjs/src/bitflyer.js +39 -10
- package/dist/cjs/src/bitforex.js +0 -8
- package/dist/cjs/src/bitget.js +15 -5
- package/dist/cjs/src/bitmart.js +69 -0
- package/dist/cjs/src/bitstamp1.js +22 -0
- package/dist/cjs/src/bl3p.js +32 -0
- package/dist/cjs/src/bybit.js +147 -48
- package/dist/cjs/src/coinbasepro.js +11 -0
- package/dist/cjs/src/currencycom.js +1 -1
- package/dist/cjs/src/gemini.js +1 -0
- package/dist/cjs/src/huobi.js +1 -1
- package/dist/cjs/src/huobijp.js +1 -1
- package/dist/cjs/src/idex.js +1 -1
- package/dist/cjs/src/kucoinfutures.js +46 -51
- package/dist/cjs/src/lbank.js +1 -1
- package/dist/cjs/src/lbank2.js +1 -1
- package/dist/cjs/src/pro/binance.js +7 -7
- package/dist/cjs/src/pro/bybit.js +18 -17
- package/dist/cjs/src/pro/coinbasepro.js +10 -10
- package/dist/cjs/src/pro/huobijp.js +1 -2
- package/dist/cjs/src/pro/krakenfutures.js +7 -7
- package/dist/cjs/src/pro/kucoin.js +51 -2
- package/dist/cjs/src/pro/kucoinfutures.js +3 -3
- package/dist/cjs/src/pro/phemex.js +2 -2
- package/js/ccxt.d.ts +2 -5
- package/js/ccxt.js +2 -4
- package/js/src/abstract/binance.d.ts +8 -0
- package/js/src/abstract/binancecoinm.d.ts +8 -0
- package/js/src/abstract/binanceus.d.ts +8 -0
- package/js/src/abstract/binanceusdm.d.ts +8 -0
- package/js/src/abstract/bingx.d.ts +16 -1
- package/js/src/binance.js +36 -1
- package/js/src/bingx.js +41 -4
- package/js/src/bitbank.js +11 -0
- package/js/src/bitfinex.js +12 -8
- package/js/src/bitflyer.js +39 -10
- package/js/src/bitforex.js +0 -8
- package/js/src/bitget.js +15 -5
- package/js/src/bitmart.d.ts +38 -0
- package/js/src/bitmart.js +69 -0
- package/js/src/bitstamp1.js +22 -0
- package/js/src/bl3p.js +32 -0
- package/js/src/bybit.js +147 -48
- package/js/src/coinbasepro.js +11 -0
- package/js/src/currencycom.js +1 -1
- package/js/src/gemini.js +1 -0
- package/js/src/huobi.js +1 -1
- package/js/src/huobijp.js +1 -1
- package/js/src/idex.js +1 -1
- package/js/src/kucoinfutures.js +46 -51
- package/js/src/lbank.js +1 -1
- package/js/src/lbank2.js +1 -1
- package/js/src/pro/binance.js +7 -7
- package/js/src/pro/bybit.js +18 -17
- package/js/src/pro/coinbasepro.js +10 -10
- package/js/src/pro/huobijp.js +1 -2
- package/js/src/pro/krakenfutures.js +7 -7
- package/js/src/pro/kucoin.d.ts +1 -0
- package/js/src/pro/kucoin.js +51 -2
- package/js/src/pro/kucoinfutures.js +3 -3
- package/js/src/pro/phemex.js +2 -2
- package/package.json +1 -1
- package/skip-tests.json +3 -7
- package/js/src/abstract/bkex.d.ts +0 -61
- package/js/src/abstract/bkex.js +0 -11
package/dist/ccxt.browser.js
CHANGED
|
@@ -400,22 +400,6 @@ class Exchange extends _base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchang
|
|
|
400
400
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Exchange);
|
|
401
401
|
|
|
402
402
|
|
|
403
|
-
/***/ }),
|
|
404
|
-
|
|
405
|
-
/***/ 5569:
|
|
406
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
407
|
-
|
|
408
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
409
|
-
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
410
|
-
/* harmony export */ });
|
|
411
|
-
/* harmony import */ var _base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
|
|
412
|
-
// -------------------------------------------------------------------------------
|
|
413
|
-
|
|
414
|
-
class Exchange extends _base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e {
|
|
415
|
-
}
|
|
416
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Exchange);
|
|
417
|
-
|
|
418
|
-
|
|
419
403
|
/***/ }),
|
|
420
404
|
|
|
421
405
|
/***/ 858:
|
|
@@ -16075,6 +16059,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
16075
16059
|
'portfolio/interest-history': 0.6667,
|
|
16076
16060
|
'portfolio/asset-index-price': 0.1,
|
|
16077
16061
|
'portfolio/repay-futures-switch': 3,
|
|
16062
|
+
'portfolio/margin-asset-leverage': 5,
|
|
16078
16063
|
// staking
|
|
16079
16064
|
'staking/productList': 0.1,
|
|
16080
16065
|
'staking/position': 0.1,
|
|
@@ -16087,6 +16072,11 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
16087
16072
|
'lending/auto-invest/plan/list': 0.1,
|
|
16088
16073
|
'lending/auto-invest/plan/id': 0.1,
|
|
16089
16074
|
'lending/auto-invest/history/list': 0.1,
|
|
16075
|
+
'lending/auto-invest/index/info': 0.1,
|
|
16076
|
+
'lending/auto-invest/index/user-summary': 0.1,
|
|
16077
|
+
'lending/auto-invest/one-off/status': 0.1,
|
|
16078
|
+
'lending/auto-invest/redeem/history': 0.1,
|
|
16079
|
+
'lending/auto-invest/rebalance/history': 0.1,
|
|
16090
16080
|
// simple earn
|
|
16091
16081
|
'simple-earn/flexible/list': 15,
|
|
16092
16082
|
'simple-earn/locked/list': 15,
|
|
@@ -16214,6 +16204,8 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
16214
16204
|
'lending/auto-invest/plan/add': 0.1,
|
|
16215
16205
|
'lending/auto-invest/plan/edit': 0.1,
|
|
16216
16206
|
'lending/auto-invest/plan/edit-status': 0.1,
|
|
16207
|
+
'lending/auto-invest/one-off': 0.1,
|
|
16208
|
+
'lending/auto-invest/redeem': 0.1,
|
|
16217
16209
|
// simple earn
|
|
16218
16210
|
'simple-earn/flexible/subscribe': 0.1,
|
|
16219
16211
|
'simple-earn/locked/subscribe': 0.1,
|
|
@@ -19095,6 +19087,18 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
19095
19087
|
// "M": true // Was the trade the best price match?
|
|
19096
19088
|
// }
|
|
19097
19089
|
//
|
|
19090
|
+
// REST: aggregate trades for swap & future (both linear and inverse)
|
|
19091
|
+
//
|
|
19092
|
+
// {
|
|
19093
|
+
// "a": "269772814",
|
|
19094
|
+
// "p": "25864.1",
|
|
19095
|
+
// "q": "3",
|
|
19096
|
+
// "f": "662149354",
|
|
19097
|
+
// "l": "662149355",
|
|
19098
|
+
// "T": "1694209776022",
|
|
19099
|
+
// "m": false,
|
|
19100
|
+
// }
|
|
19101
|
+
//
|
|
19098
19102
|
// recent public trades and old public trades
|
|
19099
19103
|
// https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#recent-trades-list
|
|
19100
19104
|
// https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#old-trade-lookup-market_data
|
|
@@ -19348,7 +19352,8 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
19348
19352
|
}
|
|
19349
19353
|
}
|
|
19350
19354
|
if (limit !== undefined) {
|
|
19351
|
-
|
|
19355
|
+
const isFutureOrSwap = (market['swap'] || market['future']);
|
|
19356
|
+
request['limit'] = isFutureOrSwap ? Math.min(limit, 1000) : limit; // default = 500, maximum = 1000
|
|
19352
19357
|
}
|
|
19353
19358
|
params = this.omit(params, ['until', 'fetchTradesMethod']);
|
|
19354
19359
|
//
|
|
@@ -19377,6 +19382,20 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
19377
19382
|
// }
|
|
19378
19383
|
// ]
|
|
19379
19384
|
//
|
|
19385
|
+
// inverse (swap & future)
|
|
19386
|
+
//
|
|
19387
|
+
// [
|
|
19388
|
+
// {
|
|
19389
|
+
// "a": "269772814",
|
|
19390
|
+
// "p": "25864.1",
|
|
19391
|
+
// "q": "3",
|
|
19392
|
+
// "f": "662149354",
|
|
19393
|
+
// "l": "662149355",
|
|
19394
|
+
// "T": "1694209776022",
|
|
19395
|
+
// "m": false,
|
|
19396
|
+
// },
|
|
19397
|
+
// ]
|
|
19398
|
+
//
|
|
19380
19399
|
// recent public trades and historical public trades
|
|
19381
19400
|
//
|
|
19382
19401
|
// [
|
|
@@ -24857,6 +24876,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
24857
24876
|
'quote/klines': 1,
|
|
24858
24877
|
'quote/openInterest': 1,
|
|
24859
24878
|
'quote/ticker': 1,
|
|
24879
|
+
'quote/bookTicker': 1,
|
|
24860
24880
|
},
|
|
24861
24881
|
},
|
|
24862
24882
|
'private': {
|
|
@@ -24908,11 +24928,17 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
24908
24928
|
'private': {
|
|
24909
24929
|
'get': {
|
|
24910
24930
|
'capital/config/getall': 3,
|
|
24931
|
+
'capital/deposit/address': 1,
|
|
24932
|
+
'capital/innerTransfer/records': 1,
|
|
24933
|
+
'capital/subAccount/deposit/address': 1,
|
|
24934
|
+
'capital/deposit/subHisrec': 1,
|
|
24935
|
+
'capital/subAccount/innerTransfer/records': 1,
|
|
24911
24936
|
},
|
|
24912
24937
|
'post': {
|
|
24913
24938
|
'capital/withdraw/apply': 3,
|
|
24914
24939
|
'capital/innerTransfer/apply': 3,
|
|
24915
24940
|
'capital/subAccountInnerTransfer/apply': 3,
|
|
24941
|
+
'capital/deposit/createSubAddress': 1,
|
|
24916
24942
|
},
|
|
24917
24943
|
},
|
|
24918
24944
|
},
|
|
@@ -24923,6 +24949,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
24923
24949
|
'get': {
|
|
24924
24950
|
'list': 3,
|
|
24925
24951
|
'assets': 3,
|
|
24952
|
+
'apiKey/query': 1,
|
|
24926
24953
|
},
|
|
24927
24954
|
'post': {
|
|
24928
24955
|
'create': 3,
|
|
@@ -24937,13 +24964,42 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
24937
24964
|
'account': {
|
|
24938
24965
|
'v1': {
|
|
24939
24966
|
'private': {
|
|
24967
|
+
'get': {
|
|
24968
|
+
'uid': 1,
|
|
24969
|
+
},
|
|
24940
24970
|
'post': {
|
|
24941
|
-
'uid': 3,
|
|
24942
24971
|
'innerTransfer/authorizeSubAccount': 3,
|
|
24943
24972
|
},
|
|
24944
24973
|
},
|
|
24945
24974
|
},
|
|
24946
24975
|
},
|
|
24976
|
+
'copyTrading': {
|
|
24977
|
+
'v1': {
|
|
24978
|
+
'private': {
|
|
24979
|
+
'get': {
|
|
24980
|
+
'swap/trace/currentTrack': 1,
|
|
24981
|
+
},
|
|
24982
|
+
'post': {
|
|
24983
|
+
'swap/trace/closeTrackOrder': 1,
|
|
24984
|
+
'swap/trace/setTPSL': 1,
|
|
24985
|
+
},
|
|
24986
|
+
},
|
|
24987
|
+
},
|
|
24988
|
+
},
|
|
24989
|
+
'api': {
|
|
24990
|
+
'v3': {
|
|
24991
|
+
'private': {
|
|
24992
|
+
'get': {
|
|
24993
|
+
'asset/transfer': 1,
|
|
24994
|
+
'capital/deposit/hisrec': 1,
|
|
24995
|
+
'capital/withdraw/history': 1,
|
|
24996
|
+
},
|
|
24997
|
+
'post': {
|
|
24998
|
+
'post/asset/transfer': 1,
|
|
24999
|
+
},
|
|
25000
|
+
},
|
|
25001
|
+
},
|
|
25002
|
+
},
|
|
24947
25003
|
},
|
|
24948
25004
|
'timeframes': {
|
|
24949
25005
|
'1m': '1m',
|
|
@@ -26207,9 +26263,9 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
26207
26263
|
* @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
|
26208
26264
|
* @param {object} [params] extra parameters specific to the bingx api endpoint
|
|
26209
26265
|
* @param {bool} [params.postOnly] true to place a post only order
|
|
26210
|
-
* @param {
|
|
26211
|
-
* @param {float} [params.stopLossPrice] stop loss trigger price
|
|
26212
|
-
* @param {float} [params.takeProfitPrice] take profit trigger price
|
|
26266
|
+
* @param {float} [params.triggerPrice] *swap only* triggerPrice at which the attached take profit / stop loss order will be triggered
|
|
26267
|
+
* @param {float} [params.stopLossPrice] *swap only* stop loss trigger price
|
|
26268
|
+
* @param {float} [params.takeProfitPrice] *swap only* take profit trigger price
|
|
26213
26269
|
* @returns {object} an [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
26214
26270
|
*/
|
|
26215
26271
|
await this.loadMarkets();
|
|
@@ -28891,6 +28947,17 @@ class bitbank extends _abstract_bitbank_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
28891
28947
|
return this.parseOrderBook(orderbook, market['symbol'], timestamp);
|
|
28892
28948
|
}
|
|
28893
28949
|
parseTrade(trade, market = undefined) {
|
|
28950
|
+
//
|
|
28951
|
+
// fetchTrades
|
|
28952
|
+
//
|
|
28953
|
+
// {
|
|
28954
|
+
// "transaction_id": "1143247037",
|
|
28955
|
+
// "side": "buy",
|
|
28956
|
+
// "price": "3836025",
|
|
28957
|
+
// "amount": "0.0005",
|
|
28958
|
+
// "executed_at": "1694249441593"
|
|
28959
|
+
// }
|
|
28960
|
+
//
|
|
28894
28961
|
const timestamp = this.safeInteger(trade, 'executed_at');
|
|
28895
28962
|
market = this.safeMarket(undefined, market);
|
|
28896
28963
|
const priceString = this.safeString(trade, 'price');
|
|
@@ -31725,14 +31792,6 @@ class bitfinex extends _abstract_bitfinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
31725
31792
|
// "type":"sell"
|
|
31726
31793
|
// }
|
|
31727
31794
|
//
|
|
31728
|
-
// { "timestamp":1637258238,
|
|
31729
|
-
// "tid":894452800,
|
|
31730
|
-
// "price":"0.99958",
|
|
31731
|
-
// "amount":"261.90514",
|
|
31732
|
-
// "exchange":"bitfinex",
|
|
31733
|
-
// "type":"buy"
|
|
31734
|
-
// }
|
|
31735
|
-
//
|
|
31736
31795
|
// fetchMyTrades (private) v1
|
|
31737
31796
|
//
|
|
31738
31797
|
// {
|
|
@@ -31811,6 +31870,18 @@ class bitfinex extends _abstract_bitfinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
31811
31870
|
request['timestamp'] = this.parseToInt(since / 1000);
|
|
31812
31871
|
}
|
|
31813
31872
|
const response = await this.publicGetTradesSymbol(this.extend(request, params));
|
|
31873
|
+
//
|
|
31874
|
+
// [
|
|
31875
|
+
// {
|
|
31876
|
+
// "timestamp": "1694284565",
|
|
31877
|
+
// "tid": "1415415034",
|
|
31878
|
+
// "price": "25862.0",
|
|
31879
|
+
// "amount": "0.00020685",
|
|
31880
|
+
// "exchange": "bitfinex",
|
|
31881
|
+
// "type": "buy"
|
|
31882
|
+
// },
|
|
31883
|
+
// ]
|
|
31884
|
+
//
|
|
31814
31885
|
return this.parseTrades(response, market, since, limit);
|
|
31815
31886
|
}
|
|
31816
31887
|
async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
@@ -35803,7 +35874,7 @@ class bitflyer extends _abstract_bitflyer_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
35803
35874
|
//
|
|
35804
35875
|
// fetchTrades (public) v1
|
|
35805
35876
|
//
|
|
35806
|
-
//
|
|
35877
|
+
// {
|
|
35807
35878
|
// "id":2278466664,
|
|
35808
35879
|
// "side":"SELL",
|
|
35809
35880
|
// "price":56810.7,
|
|
@@ -35813,16 +35884,18 @@ class bitflyer extends _abstract_bitflyer_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
35813
35884
|
// "sell_child_order_acceptance_id":"JRF20211119-114639-236919"
|
|
35814
35885
|
// }
|
|
35815
35886
|
//
|
|
35816
|
-
//
|
|
35817
|
-
// "id":2278463423,
|
|
35818
|
-
// "side":"BUY",
|
|
35819
|
-
// "price":56757.83,
|
|
35820
|
-
// "size":0.6003,"exec_date":"2021-11-19T11:28:00.523",
|
|
35821
|
-
// "buy_child_order_acceptance_id":"JRF20211119-112800-236526",
|
|
35822
|
-
// "sell_child_order_acceptance_id":"JRF20211119-112734-062017"
|
|
35823
|
-
// }
|
|
35824
|
-
//
|
|
35887
|
+
// fetchMyTrades
|
|
35825
35888
|
//
|
|
35889
|
+
// {
|
|
35890
|
+
// "id": 37233,
|
|
35891
|
+
// "side": "BUY",
|
|
35892
|
+
// "price": 33470,
|
|
35893
|
+
// "size": 0.01,
|
|
35894
|
+
// "exec_date": "2015-07-07T09:57:40.397",
|
|
35895
|
+
// "child_order_id": "JOR20150707-060559-021935",
|
|
35896
|
+
// "child_order_acceptance_id": "JRF20150707-060559-396699"
|
|
35897
|
+
// "commission": 0,
|
|
35898
|
+
// },
|
|
35826
35899
|
//
|
|
35827
35900
|
let side = this.safeStringLower(trade, 'side');
|
|
35828
35901
|
if (side !== undefined) {
|
|
@@ -35881,6 +35954,19 @@ class bitflyer extends _abstract_bitflyer_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
35881
35954
|
request['count'] = limit;
|
|
35882
35955
|
}
|
|
35883
35956
|
const response = await this.publicGetGetexecutions(this.extend(request, params));
|
|
35957
|
+
//
|
|
35958
|
+
// [
|
|
35959
|
+
// {
|
|
35960
|
+
// "id": 39287,
|
|
35961
|
+
// "side": "BUY",
|
|
35962
|
+
// "price": 31690,
|
|
35963
|
+
// "size": 27.04,
|
|
35964
|
+
// "exec_date": "2015-07-08T02:43:34.823",
|
|
35965
|
+
// "buy_child_order_acceptance_id": "JRF20150707-200203-452209",
|
|
35966
|
+
// "sell_child_order_acceptance_id": "JRF20150708-024334-060234"
|
|
35967
|
+
// },
|
|
35968
|
+
// ]
|
|
35969
|
+
//
|
|
35884
35970
|
return this.parseTrades(response, market, since, limit);
|
|
35885
35971
|
}
|
|
35886
35972
|
async fetchTradingFee(symbol, params = {}) {
|
|
@@ -36117,6 +36203,20 @@ class bitflyer extends _abstract_bitflyer_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
36117
36203
|
request['count'] = limit;
|
|
36118
36204
|
}
|
|
36119
36205
|
const response = await this.privateGetGetexecutions(this.extend(request, params));
|
|
36206
|
+
//
|
|
36207
|
+
// [
|
|
36208
|
+
// {
|
|
36209
|
+
// "id": 37233,
|
|
36210
|
+
// "side": "BUY",
|
|
36211
|
+
// "price": 33470,
|
|
36212
|
+
// "size": 0.01,
|
|
36213
|
+
// "exec_date": "2015-07-07T09:57:40.397",
|
|
36214
|
+
// "child_order_id": "JOR20150707-060559-021935",
|
|
36215
|
+
// "child_order_acceptance_id": "JRF20150707-060559-396699"
|
|
36216
|
+
// "commission": 0,
|
|
36217
|
+
// },
|
|
36218
|
+
// ]
|
|
36219
|
+
//
|
|
36120
36220
|
return this.parseTrades(response, market, since, limit);
|
|
36121
36221
|
}
|
|
36122
36222
|
async fetchPositions(symbols = undefined, params = {}) {
|
|
@@ -36649,14 +36749,6 @@ class bitforex extends _abstract_bitforex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
|
|
|
36649
36749
|
// "tid":"1131019666"
|
|
36650
36750
|
// }
|
|
36651
36751
|
//
|
|
36652
|
-
// {
|
|
36653
|
-
// "price":57591.33,
|
|
36654
|
-
// "amount":0.002,
|
|
36655
|
-
// "time":1637329685322,
|
|
36656
|
-
// "direction":1,
|
|
36657
|
-
// "tid":"1131019639"
|
|
36658
|
-
// }
|
|
36659
|
-
//
|
|
36660
36752
|
// fetchMyTrades (private)
|
|
36661
36753
|
//
|
|
36662
36754
|
// {
|
|
@@ -39384,7 +39476,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
39384
39476
|
// "fillTime": "1692073691000"
|
|
39385
39477
|
// }
|
|
39386
39478
|
//
|
|
39387
|
-
// swap
|
|
39479
|
+
// swap (public trades)
|
|
39388
39480
|
//
|
|
39389
39481
|
// {
|
|
39390
39482
|
// "tradeId": "1075199767891652609",
|
|
@@ -39516,6 +39608,16 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
39516
39608
|
params = this.omit(params, 'method');
|
|
39517
39609
|
if (swapMethod === 'publicMixGetMarketFillsHistory') {
|
|
39518
39610
|
response = await this.publicMixGetMarketFillsHistory(this.extend(request, params));
|
|
39611
|
+
//
|
|
39612
|
+
// {
|
|
39613
|
+
// "tradeId": "1084459062491590657",
|
|
39614
|
+
// "price": "25874",
|
|
39615
|
+
// "size": "1.624",
|
|
39616
|
+
// "side": "Buy",
|
|
39617
|
+
// "timestamp": "1694281109000",
|
|
39618
|
+
// "symbol": "BTCUSDT_UMCBL",
|
|
39619
|
+
// }
|
|
39620
|
+
//
|
|
39519
39621
|
}
|
|
39520
39622
|
else if (swapMethod === 'publicMixGetMarketFills') {
|
|
39521
39623
|
response = await this.publicMixGetMarketFills(this.extend(request, params));
|
|
@@ -40216,12 +40318,12 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
40216
40318
|
}
|
|
40217
40319
|
else if (isStopLossOrTakeProfit) {
|
|
40218
40320
|
if (isStopLoss) {
|
|
40219
|
-
const
|
|
40220
|
-
request['presetStopLossPrice'] = this.priceToPrecision(symbol,
|
|
40321
|
+
const slTriggerPrice = this.safeValue2(stopLoss, 'triggerPrice', 'stopPrice');
|
|
40322
|
+
request['presetStopLossPrice'] = this.priceToPrecision(symbol, slTriggerPrice);
|
|
40221
40323
|
}
|
|
40222
40324
|
if (isTakeProfit) {
|
|
40223
|
-
const
|
|
40224
|
-
request['presetTakeProfitPrice'] = this.priceToPrecision(symbol,
|
|
40325
|
+
const tpTriggerPrice = this.safeValue2(takeProfit, 'triggerPrice', 'stopPrice');
|
|
40326
|
+
request['presetTakeProfitPrice'] = this.priceToPrecision(symbol, tpTriggerPrice);
|
|
40225
40327
|
}
|
|
40226
40328
|
}
|
|
40227
40329
|
}
|
|
@@ -43503,6 +43605,9 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
43503
43605
|
'fetchDepositWithdrawFee': true,
|
|
43504
43606
|
'fetchDepositWithdrawFees': false,
|
|
43505
43607
|
'fetchFundingHistory': undefined,
|
|
43608
|
+
'fetchFundingRate': true,
|
|
43609
|
+
'fetchFundingRateHistory': false,
|
|
43610
|
+
'fetchFundingRates': false,
|
|
43506
43611
|
'fetchMarginMode': false,
|
|
43507
43612
|
'fetchMarkets': true,
|
|
43508
43613
|
'fetchMyTrades': true,
|
|
@@ -46696,6 +46801,72 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
46696
46801
|
};
|
|
46697
46802
|
return await this.privatePostContractPrivateSubmitLeverage(this.extend(request, params));
|
|
46698
46803
|
}
|
|
46804
|
+
async fetchFundingRate(symbol, params = {}) {
|
|
46805
|
+
/**
|
|
46806
|
+
* @method
|
|
46807
|
+
* @name bitmart#fetchFundingRate
|
|
46808
|
+
* @description fetch the current funding rate
|
|
46809
|
+
* @see https://developer-pro.bitmart.com/en/futures/#get-current-funding-rate
|
|
46810
|
+
* @param {string} symbol unified market symbol
|
|
46811
|
+
* @param {object} [params] extra parameters specific to the bitmart api endpoint
|
|
46812
|
+
* @returns {object} a [funding rate structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-structure}
|
|
46813
|
+
*/
|
|
46814
|
+
await this.loadMarkets();
|
|
46815
|
+
const market = this.market(symbol);
|
|
46816
|
+
if (!market['swap']) {
|
|
46817
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol(this.id + ' fetchFundingRate() supports swap contracts only');
|
|
46818
|
+
}
|
|
46819
|
+
const request = {
|
|
46820
|
+
'symbol': market['id'],
|
|
46821
|
+
};
|
|
46822
|
+
const response = await this.publicGetContractPublicFundingRate(this.extend(request, params));
|
|
46823
|
+
//
|
|
46824
|
+
// {
|
|
46825
|
+
// "code": 1000,
|
|
46826
|
+
// "message": "Ok",
|
|
46827
|
+
// "data": {
|
|
46828
|
+
// "timestamp": 1695184410697,
|
|
46829
|
+
// "symbol": "BTCUSDT",
|
|
46830
|
+
// "rate_value": "-0.00002614",
|
|
46831
|
+
// "expected_rate": "-0.00002"
|
|
46832
|
+
// },
|
|
46833
|
+
// "trace": "4cad855074654097ac7ba5257c47305d.54.16951844206655589"
|
|
46834
|
+
// }
|
|
46835
|
+
//
|
|
46836
|
+
const data = this.safeValue(response, 'data', {});
|
|
46837
|
+
return this.parseFundingRate(data, market);
|
|
46838
|
+
}
|
|
46839
|
+
parseFundingRate(contract, market = undefined) {
|
|
46840
|
+
//
|
|
46841
|
+
// {
|
|
46842
|
+
// "timestamp": 1695184410697,
|
|
46843
|
+
// "symbol": "BTCUSDT",
|
|
46844
|
+
// "rate_value": "-0.00002614",
|
|
46845
|
+
// "expected_rate": "-0.00002"
|
|
46846
|
+
// }
|
|
46847
|
+
//
|
|
46848
|
+
const marketId = this.safeString(contract, 'symbol');
|
|
46849
|
+
const timestamp = this.safeInteger(contract, 'timestamp');
|
|
46850
|
+
return {
|
|
46851
|
+
'info': contract,
|
|
46852
|
+
'symbol': this.safeSymbol(marketId, market),
|
|
46853
|
+
'markPrice': undefined,
|
|
46854
|
+
'indexPrice': undefined,
|
|
46855
|
+
'interestRate': undefined,
|
|
46856
|
+
'estimatedSettlePrice': undefined,
|
|
46857
|
+
'timestamp': timestamp,
|
|
46858
|
+
'datetime': this.iso8601(timestamp),
|
|
46859
|
+
'fundingRate': this.safeNumber(contract, 'expected_rate'),
|
|
46860
|
+
'fundingTimestamp': undefined,
|
|
46861
|
+
'fundingDatetime': undefined,
|
|
46862
|
+
'nextFundingRate': undefined,
|
|
46863
|
+
'nextFundingTimestamp': undefined,
|
|
46864
|
+
'nextFundingDatetime': undefined,
|
|
46865
|
+
'previousFundingRate': this.safeNumber(contract, 'rate_value'),
|
|
46866
|
+
'previousFundingTimestamp': undefined,
|
|
46867
|
+
'previousFundingDatetime': undefined,
|
|
46868
|
+
};
|
|
46869
|
+
}
|
|
46699
46870
|
nonce() {
|
|
46700
46871
|
return this.milliseconds();
|
|
46701
46872
|
}
|
|
@@ -59359,6 +59530,17 @@ class bitstamp1 extends _abstract_bitstamp1_js__WEBPACK_IMPORTED_MODULE_0__/* ["
|
|
|
59359
59530
|
return this.parseTicker(ticker, market);
|
|
59360
59531
|
}
|
|
59361
59532
|
parseTrade(trade, market = undefined) {
|
|
59533
|
+
//
|
|
59534
|
+
// public trade
|
|
59535
|
+
//
|
|
59536
|
+
// {
|
|
59537
|
+
// "amount": "0.00114000",
|
|
59538
|
+
// "date": "1694287856",
|
|
59539
|
+
// "price": "25865",
|
|
59540
|
+
// "tid": 298730788,
|
|
59541
|
+
// "type": 0
|
|
59542
|
+
// }
|
|
59543
|
+
//
|
|
59362
59544
|
const timestamp = this.safeTimestamp2(trade, 'date', 'datetime');
|
|
59363
59545
|
const side = (trade['type'] === 0) ? 'buy' : 'sell';
|
|
59364
59546
|
const orderId = this.safeString(trade, 'order_id');
|
|
@@ -59403,6 +59585,17 @@ class bitstamp1 extends _abstract_bitstamp1_js__WEBPACK_IMPORTED_MODULE_0__/* ["
|
|
|
59403
59585
|
'time': 'minute',
|
|
59404
59586
|
};
|
|
59405
59587
|
const response = await this.publicGetTransactions(this.extend(request, params));
|
|
59588
|
+
//
|
|
59589
|
+
// [
|
|
59590
|
+
// {
|
|
59591
|
+
// "amount": "0.00114000",
|
|
59592
|
+
// "date": "1694287856",
|
|
59593
|
+
// "price": "25865",
|
|
59594
|
+
// "tid": 298730788,
|
|
59595
|
+
// "type": 0
|
|
59596
|
+
// },
|
|
59597
|
+
// ]
|
|
59598
|
+
//
|
|
59406
59599
|
return this.parseTrades(response, market, since, limit);
|
|
59407
59600
|
}
|
|
59408
59601
|
parseBalance(response) {
|
|
@@ -63746,1976 +63939,6 @@ class bitvavo extends _abstract_bitvavo_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
63746
63939
|
}
|
|
63747
63940
|
|
|
63748
63941
|
|
|
63749
|
-
/***/ }),
|
|
63750
|
-
|
|
63751
|
-
/***/ 2574:
|
|
63752
|
-
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
63753
|
-
|
|
63754
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
63755
|
-
/* harmony export */ "Z": () => (/* binding */ bkex)
|
|
63756
|
-
/* harmony export */ });
|
|
63757
|
-
/* harmony import */ var _abstract_bkex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5569);
|
|
63758
|
-
/* harmony import */ var _base_errors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6689);
|
|
63759
|
-
/* harmony import */ var _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9292);
|
|
63760
|
-
/* harmony import */ var _static_dependencies_noble_hashes_sha256_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1372);
|
|
63761
|
-
// ---------------------------------------------------------------------------
|
|
63762
|
-
|
|
63763
|
-
|
|
63764
|
-
|
|
63765
|
-
|
|
63766
|
-
// ---------------------------------------------------------------------------
|
|
63767
|
-
/**
|
|
63768
|
-
* @class bkex
|
|
63769
|
-
* @extends Exchange
|
|
63770
|
-
*/
|
|
63771
|
-
class bkex extends _abstract_bkex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
63772
|
-
describe() {
|
|
63773
|
-
return this.deepExtend(super.describe(), {
|
|
63774
|
-
'id': 'bkex',
|
|
63775
|
-
'name': 'BKEX',
|
|
63776
|
-
'countries': ['BVI'],
|
|
63777
|
-
'rateLimit': 100,
|
|
63778
|
-
'version': 'v2',
|
|
63779
|
-
'certified': false,
|
|
63780
|
-
'has': {
|
|
63781
|
-
'CORS': undefined,
|
|
63782
|
-
'spot': true,
|
|
63783
|
-
'margin': undefined,
|
|
63784
|
-
'swap': true,
|
|
63785
|
-
'future': undefined,
|
|
63786
|
-
'option': undefined,
|
|
63787
|
-
'addMargin': undefined,
|
|
63788
|
-
'cancelAllOrders': undefined,
|
|
63789
|
-
'cancelOrder': true,
|
|
63790
|
-
'cancelOrders': true,
|
|
63791
|
-
'createDepositAddress': undefined,
|
|
63792
|
-
'createLimitOrder': undefined,
|
|
63793
|
-
'createMarketOrder': undefined,
|
|
63794
|
-
'createOrder': true,
|
|
63795
|
-
'editOrder': undefined,
|
|
63796
|
-
'fetchAccounts': undefined,
|
|
63797
|
-
'fetchBalance': true,
|
|
63798
|
-
'fetchBidsAsks': undefined,
|
|
63799
|
-
'fetchBorrowRate': undefined,
|
|
63800
|
-
'fetchBorrowRateHistory': undefined,
|
|
63801
|
-
'fetchBorrowRates': undefined,
|
|
63802
|
-
'fetchBorrowRatesPerSymbol': undefined,
|
|
63803
|
-
'fetchCanceledOrders': undefined,
|
|
63804
|
-
'fetchClosedOrder': undefined,
|
|
63805
|
-
'fetchClosedOrders': true,
|
|
63806
|
-
'fetchCurrencies': true,
|
|
63807
|
-
'fetchDeposit': false,
|
|
63808
|
-
'fetchDepositAddress': true,
|
|
63809
|
-
'fetchDepositAddresses': undefined,
|
|
63810
|
-
'fetchDepositAddressesByNetwork': undefined,
|
|
63811
|
-
'fetchDeposits': true,
|
|
63812
|
-
'fetchDepositWithdrawFee': 'emulated',
|
|
63813
|
-
'fetchDepositWithdrawFees': true,
|
|
63814
|
-
'fetchFundingHistory': undefined,
|
|
63815
|
-
'fetchFundingRate': undefined,
|
|
63816
|
-
'fetchFundingRateHistory': true,
|
|
63817
|
-
'fetchFundingRates': undefined,
|
|
63818
|
-
'fetchIndexOHLCV': undefined,
|
|
63819
|
-
'fetchL2OrderBook': undefined,
|
|
63820
|
-
'fetchLedger': undefined,
|
|
63821
|
-
'fetchLedgerEntry': undefined,
|
|
63822
|
-
'fetchLeverageTiers': undefined,
|
|
63823
|
-
'fetchMarginMode': false,
|
|
63824
|
-
'fetchMarketLeverageTiers': true,
|
|
63825
|
-
'fetchMarkets': true,
|
|
63826
|
-
'fetchMarkOHLCV': undefined,
|
|
63827
|
-
'fetchMyTrades': undefined,
|
|
63828
|
-
'fetchOHLCV': true,
|
|
63829
|
-
'fetchOpenOrder': true,
|
|
63830
|
-
'fetchOpenOrders': true,
|
|
63831
|
-
'fetchOrder': false,
|
|
63832
|
-
'fetchOrderBook': true,
|
|
63833
|
-
'fetchOrderBooks': undefined,
|
|
63834
|
-
'fetchOrders': undefined,
|
|
63835
|
-
'fetchOrderTrades': undefined,
|
|
63836
|
-
'fetchPosition': undefined,
|
|
63837
|
-
'fetchPositionMode': false,
|
|
63838
|
-
'fetchPositions': undefined,
|
|
63839
|
-
'fetchPositionsRisk': undefined,
|
|
63840
|
-
'fetchPremiumIndexOHLCV': undefined,
|
|
63841
|
-
'fetchStatus': true,
|
|
63842
|
-
'fetchTicker': true,
|
|
63843
|
-
'fetchTickers': true,
|
|
63844
|
-
'fetchTime': true,
|
|
63845
|
-
'fetchTrades': true,
|
|
63846
|
-
'fetchTradingFee': false,
|
|
63847
|
-
'fetchTradingFees': false,
|
|
63848
|
-
'fetchTradingLimits': undefined,
|
|
63849
|
-
'fetchTransactionFee': 'emulated',
|
|
63850
|
-
'fetchTransactionFees': true,
|
|
63851
|
-
'fetchTransactions': undefined,
|
|
63852
|
-
'fetchTransfer': false,
|
|
63853
|
-
'fetchTransfers': false,
|
|
63854
|
-
'fetchWithdrawal': false,
|
|
63855
|
-
'fetchWithdrawals': true,
|
|
63856
|
-
'reduceMargin': undefined,
|
|
63857
|
-
'setLeverage': undefined,
|
|
63858
|
-
'setMarginMode': undefined,
|
|
63859
|
-
'setPositionMode': undefined,
|
|
63860
|
-
'signIn': undefined,
|
|
63861
|
-
'transfer': false,
|
|
63862
|
-
'withdraw': false,
|
|
63863
|
-
},
|
|
63864
|
-
'timeframes': {
|
|
63865
|
-
'1m': '1m',
|
|
63866
|
-
'5m': '5m',
|
|
63867
|
-
'15m': '15m',
|
|
63868
|
-
'30m': '30m',
|
|
63869
|
-
'1h': '1h',
|
|
63870
|
-
'4h': '4h',
|
|
63871
|
-
'6h': '6h',
|
|
63872
|
-
'12h': '12h',
|
|
63873
|
-
'1d': '1d',
|
|
63874
|
-
'1w': '1w',
|
|
63875
|
-
},
|
|
63876
|
-
'urls': {
|
|
63877
|
-
'logo': 'https://user-images.githubusercontent.com/1294454/158043180-bb079a65-69e8-45a2-b393-f094d334e610.jpg',
|
|
63878
|
-
'api': {
|
|
63879
|
-
'spot': 'https://api.bkex.com',
|
|
63880
|
-
'swap': 'https://fapi.bkex.com',
|
|
63881
|
-
},
|
|
63882
|
-
'www': 'https://www.bkex.com/',
|
|
63883
|
-
'doc': [
|
|
63884
|
-
'https://bkexapi.github.io/docs/api_en.htm',
|
|
63885
|
-
],
|
|
63886
|
-
'fees': [
|
|
63887
|
-
'https://www.bkex.com/help/instruction/33',
|
|
63888
|
-
],
|
|
63889
|
-
},
|
|
63890
|
-
'api': {
|
|
63891
|
-
'public': {
|
|
63892
|
-
'spot': {
|
|
63893
|
-
'get': {
|
|
63894
|
-
'/common/symbols': 1,
|
|
63895
|
-
'/common/currencys': 1,
|
|
63896
|
-
'/common/timestamp': 1,
|
|
63897
|
-
'/q/kline': 1,
|
|
63898
|
-
'/q/tickers': 1,
|
|
63899
|
-
'/q/ticker/price': 1,
|
|
63900
|
-
'/q/depth': 1,
|
|
63901
|
-
'/q/deals': 1,
|
|
63902
|
-
},
|
|
63903
|
-
},
|
|
63904
|
-
'swap': {
|
|
63905
|
-
'get': {
|
|
63906
|
-
'/market/candle': 1,
|
|
63907
|
-
'/market/deals': 1,
|
|
63908
|
-
'/market/depth': 1,
|
|
63909
|
-
'/market/fundingRate': 1,
|
|
63910
|
-
'/market/index': 1,
|
|
63911
|
-
'/market/riskLimit': 1,
|
|
63912
|
-
'/market/symbols': 1,
|
|
63913
|
-
'/market/ticker/price': 1,
|
|
63914
|
-
'/market/tickers': 1,
|
|
63915
|
-
'/server/ping': 1,
|
|
63916
|
-
},
|
|
63917
|
-
},
|
|
63918
|
-
},
|
|
63919
|
-
'private': {
|
|
63920
|
-
'spot': {
|
|
63921
|
-
'get': {
|
|
63922
|
-
'/u/api/info': 1,
|
|
63923
|
-
'/u/account/balance': 1,
|
|
63924
|
-
'/u/wallet/address': 1,
|
|
63925
|
-
'/u/wallet/depositRecord': 1,
|
|
63926
|
-
'/u/wallet/withdrawRecord': 1,
|
|
63927
|
-
'/u/order/openOrders': 1,
|
|
63928
|
-
'/u/order/openOrder/detail': 1,
|
|
63929
|
-
'/u/order/historyOrders': 1,
|
|
63930
|
-
},
|
|
63931
|
-
'post': {
|
|
63932
|
-
'/u/account/transfer': 1,
|
|
63933
|
-
'/u/wallet/withdraw': 1,
|
|
63934
|
-
'/u/order/create': 1,
|
|
63935
|
-
'/u/order/cancel': 1,
|
|
63936
|
-
'/u/order/batchCreate': 1,
|
|
63937
|
-
'/u/order/batchCancel': 1,
|
|
63938
|
-
},
|
|
63939
|
-
},
|
|
63940
|
-
'swap': {
|
|
63941
|
-
'get': {
|
|
63942
|
-
'/account/balance': 1,
|
|
63943
|
-
'/account/balanceRecord': 1,
|
|
63944
|
-
'/account/order': 1,
|
|
63945
|
-
'/account/orderForced': 1,
|
|
63946
|
-
'/account/position': 1,
|
|
63947
|
-
'/entrust/finished': 1,
|
|
63948
|
-
'/entrust/unFinish': 1,
|
|
63949
|
-
'/order/finished': 1,
|
|
63950
|
-
'/order/finishedInfo': 1,
|
|
63951
|
-
'/order/unFinish': 1,
|
|
63952
|
-
'/position/info': 1,
|
|
63953
|
-
},
|
|
63954
|
-
'post': {
|
|
63955
|
-
'/account/setLeverage': 1,
|
|
63956
|
-
'/entrust/add': 1,
|
|
63957
|
-
'/entrust/cancel': 1,
|
|
63958
|
-
'/order/batchCancel': 1,
|
|
63959
|
-
'/order/batchOpen': 1,
|
|
63960
|
-
'/order/cancel': 1,
|
|
63961
|
-
'/order/close': 1,
|
|
63962
|
-
'/order/closeAll': 1,
|
|
63963
|
-
'/order/open': 1,
|
|
63964
|
-
'/position/setSpSl': 1,
|
|
63965
|
-
'/position/update': 1,
|
|
63966
|
-
},
|
|
63967
|
-
},
|
|
63968
|
-
},
|
|
63969
|
-
},
|
|
63970
|
-
'fees': {
|
|
63971
|
-
'trading': {
|
|
63972
|
-
'tierBased': false,
|
|
63973
|
-
'percentage': true,
|
|
63974
|
-
'maker': this.parseNumber('0.0015'),
|
|
63975
|
-
'taker': this.parseNumber('0.002'),
|
|
63976
|
-
},
|
|
63977
|
-
},
|
|
63978
|
-
'options': {
|
|
63979
|
-
'timeframes': {
|
|
63980
|
-
'spot': {
|
|
63981
|
-
'1m': '1m',
|
|
63982
|
-
'5m': '5m',
|
|
63983
|
-
'15m': '15m',
|
|
63984
|
-
'30m': '30m',
|
|
63985
|
-
'1h': '1h',
|
|
63986
|
-
'4h': '4h',
|
|
63987
|
-
'6h': '6h',
|
|
63988
|
-
'12h': '12h',
|
|
63989
|
-
'1d': '1d',
|
|
63990
|
-
'1w': '1w',
|
|
63991
|
-
},
|
|
63992
|
-
'swap': {
|
|
63993
|
-
'1m': 'M1',
|
|
63994
|
-
'5m': 'M5',
|
|
63995
|
-
'15m': 'M15',
|
|
63996
|
-
'30m': 'M30',
|
|
63997
|
-
'1h': 'H1',
|
|
63998
|
-
'4h': 'H4',
|
|
63999
|
-
'6h': 'H6',
|
|
64000
|
-
'1d': 'D1',
|
|
64001
|
-
},
|
|
64002
|
-
},
|
|
64003
|
-
'defaultType': 'spot',
|
|
64004
|
-
'networks': {
|
|
64005
|
-
'TRX': 'TRC-20',
|
|
64006
|
-
'TRC20': 'TRC-20',
|
|
64007
|
-
'ETH': 'ERC-20',
|
|
64008
|
-
'ERC20': 'ERC-20',
|
|
64009
|
-
'BEP20': 'BEP-20(BSC)',
|
|
64010
|
-
},
|
|
64011
|
-
},
|
|
64012
|
-
'commonCurrencies': {
|
|
64013
|
-
'SHINJA': 'SHINJA(1M)',
|
|
64014
|
-
},
|
|
64015
|
-
'precisionMode': _base_functions_number_js__WEBPACK_IMPORTED_MODULE_1__/* .TICK_SIZE */ .sh,
|
|
64016
|
-
'exceptions': {
|
|
64017
|
-
'exact': {
|
|
64018
|
-
'1005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
|
|
64019
|
-
},
|
|
64020
|
-
'broad': {
|
|
64021
|
-
'Not Enough balance': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
|
|
64022
|
-
'Order does not exist': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
|
|
64023
|
-
'System busy, please try again later': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
|
|
64024
|
-
'System busy. Please try again later': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable, // as seen https://app.travis-ci.com/github/ccxt/ccxt/builds/265039537#L2152
|
|
64025
|
-
},
|
|
64026
|
-
},
|
|
64027
|
-
});
|
|
64028
|
-
}
|
|
64029
|
-
async fetchMarkets(params = {}) {
|
|
64030
|
-
/**
|
|
64031
|
-
* @method
|
|
64032
|
-
* @name bkex#fetchMarkets
|
|
64033
|
-
* @description retrieves data on all markets for bkex
|
|
64034
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#basicInformation-1
|
|
64035
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#contract-market-symbols
|
|
64036
|
-
* @param {object} [params] extra parameters specific to the exchange api endpoint
|
|
64037
|
-
* @returns {object[]} an array of objects representing market data
|
|
64038
|
-
*/
|
|
64039
|
-
let promises = [
|
|
64040
|
-
this.publicSpotGetCommonSymbols(params),
|
|
64041
|
-
this.publicSwapGetMarketSymbols(params),
|
|
64042
|
-
];
|
|
64043
|
-
promises = await Promise.all(promises);
|
|
64044
|
-
const spotMarkets = promises[0];
|
|
64045
|
-
//
|
|
64046
|
-
// {
|
|
64047
|
-
// "code": "0",
|
|
64048
|
-
// "data": [
|
|
64049
|
-
// {
|
|
64050
|
-
// "minimumOrderSize": "0",
|
|
64051
|
-
// "minimumTradeVolume": "0E-18",
|
|
64052
|
-
// "pricePrecision": "11",
|
|
64053
|
-
// "supportTrade": true,
|
|
64054
|
-
// "symbol": "COMT_USDT",
|
|
64055
|
-
// "volumePrecision": 0
|
|
64056
|
-
// },
|
|
64057
|
-
// ],
|
|
64058
|
-
// "msg": "success",
|
|
64059
|
-
// "status": 0
|
|
64060
|
-
// }
|
|
64061
|
-
//
|
|
64062
|
-
const swapMarkets = promises[1];
|
|
64063
|
-
//
|
|
64064
|
-
// {
|
|
64065
|
-
// "code": 0,
|
|
64066
|
-
// "msg": "success",
|
|
64067
|
-
// "data": [
|
|
64068
|
-
// {
|
|
64069
|
-
// "symbol": "luna_usdt",
|
|
64070
|
-
// "supportTrade": false,
|
|
64071
|
-
// "volumePrecision": 0,
|
|
64072
|
-
// "pricePrecision": 3,
|
|
64073
|
-
// "marketMiniAmount": "1",
|
|
64074
|
-
// "limitMiniAmount": "1"
|
|
64075
|
-
// },
|
|
64076
|
-
// ]
|
|
64077
|
-
// }
|
|
64078
|
-
//
|
|
64079
|
-
const spotData = this.safeValue(spotMarkets, 'data', []);
|
|
64080
|
-
const swapData = this.safeValue(swapMarkets, 'data', []);
|
|
64081
|
-
const data = this.arrayConcat(spotData, swapData);
|
|
64082
|
-
const result = [];
|
|
64083
|
-
for (let i = 0; i < data.length; i++) {
|
|
64084
|
-
const market = data[i];
|
|
64085
|
-
const marketId = this.safeString(market, 'symbol');
|
|
64086
|
-
const id = this.safeStringUpper(market, 'symbol');
|
|
64087
|
-
const [baseId, quoteId] = id.split('_');
|
|
64088
|
-
const base = this.safeCurrencyCode(baseId);
|
|
64089
|
-
const quote = this.safeCurrencyCode(quoteId);
|
|
64090
|
-
const minimumOrderSize = this.safeString(market, 'minimumOrderSize');
|
|
64091
|
-
const type = (minimumOrderSize !== undefined) ? 'spot' : 'swap';
|
|
64092
|
-
const swap = (type === 'swap');
|
|
64093
|
-
let symbol = base + '/' + quote;
|
|
64094
|
-
let settleId = undefined;
|
|
64095
|
-
let settle = undefined;
|
|
64096
|
-
if (swap) {
|
|
64097
|
-
settleId = quoteId;
|
|
64098
|
-
settle = quote;
|
|
64099
|
-
symbol = base + '/' + quote + ':' + settle;
|
|
64100
|
-
}
|
|
64101
|
-
const linear = swap ? true : undefined;
|
|
64102
|
-
result.push({
|
|
64103
|
-
'id': marketId,
|
|
64104
|
-
'symbol': symbol,
|
|
64105
|
-
'base': base,
|
|
64106
|
-
'quote': quote,
|
|
64107
|
-
'settle': settle,
|
|
64108
|
-
'baseId': baseId,
|
|
64109
|
-
'quoteId': quoteId,
|
|
64110
|
-
'settleId': settleId,
|
|
64111
|
-
'type': type,
|
|
64112
|
-
'spot': (type === 'spot'),
|
|
64113
|
-
'margin': false,
|
|
64114
|
-
'future': false,
|
|
64115
|
-
'swap': swap,
|
|
64116
|
-
'option': false,
|
|
64117
|
-
'active': this.safeValue(market, 'supportTrade'),
|
|
64118
|
-
'contract': swap,
|
|
64119
|
-
'linear': linear,
|
|
64120
|
-
'inverse': undefined,
|
|
64121
|
-
'contractSize': undefined,
|
|
64122
|
-
'expiry': undefined,
|
|
64123
|
-
'expiryDatetime': undefined,
|
|
64124
|
-
'strike': undefined,
|
|
64125
|
-
'optionType': undefined,
|
|
64126
|
-
'precision': {
|
|
64127
|
-
'amount': this.parseNumber(this.parsePrecision(this.safeString(market, 'volumePrecision'))),
|
|
64128
|
-
'price': this.parseNumber(this.parsePrecision(this.safeString(market, 'pricePrecision'))),
|
|
64129
|
-
},
|
|
64130
|
-
'limits': {
|
|
64131
|
-
'leverage': {
|
|
64132
|
-
'min': undefined,
|
|
64133
|
-
'max': undefined,
|
|
64134
|
-
},
|
|
64135
|
-
'amount': {
|
|
64136
|
-
'min': this.safeNumberN(market, ['minimumOrderSize', 'marketMiniAmount', 'limitMiniAmount']),
|
|
64137
|
-
'max': undefined,
|
|
64138
|
-
},
|
|
64139
|
-
'price': {
|
|
64140
|
-
'min': undefined,
|
|
64141
|
-
'max': undefined,
|
|
64142
|
-
},
|
|
64143
|
-
'cost': {
|
|
64144
|
-
'min': this.safeNumber(market, 'minimumTradeVolume'),
|
|
64145
|
-
'max': undefined,
|
|
64146
|
-
},
|
|
64147
|
-
},
|
|
64148
|
-
'info': market,
|
|
64149
|
-
});
|
|
64150
|
-
}
|
|
64151
|
-
return result;
|
|
64152
|
-
}
|
|
64153
|
-
async fetchCurrencies(params = {}) {
|
|
64154
|
-
/**
|
|
64155
|
-
* @method
|
|
64156
|
-
* @name bkex#fetchCurrencies
|
|
64157
|
-
* @description fetches all available currencies on an exchange
|
|
64158
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64159
|
-
* @returns {object} an associative dictionary of currencies
|
|
64160
|
-
*/
|
|
64161
|
-
const response = await this.publicSpotGetCommonCurrencys(params);
|
|
64162
|
-
//
|
|
64163
|
-
// {
|
|
64164
|
-
// "code": "0",
|
|
64165
|
-
// "data": [
|
|
64166
|
-
// {
|
|
64167
|
-
// "currency": "ETH",
|
|
64168
|
-
// "maxWithdrawOneDay": "100.000000000000000000",
|
|
64169
|
-
// "maxWithdrawSingle": "50.000000000000000000",
|
|
64170
|
-
// "minWithdrawSingle": "0.005000000000000000",
|
|
64171
|
-
// "supportDeposit": true,
|
|
64172
|
-
// "supportTrade": true,
|
|
64173
|
-
// "supportWithdraw": true,
|
|
64174
|
-
// "withdrawFee": 0.01
|
|
64175
|
-
// },
|
|
64176
|
-
// ],
|
|
64177
|
-
// "msg": "success",
|
|
64178
|
-
// "status": 0
|
|
64179
|
-
// }
|
|
64180
|
-
//
|
|
64181
|
-
const data = this.safeValue(response, 'data', []);
|
|
64182
|
-
const result = {};
|
|
64183
|
-
for (let i = 0; i < data.length; i++) {
|
|
64184
|
-
const currency = data[i];
|
|
64185
|
-
const id = this.safeString(currency, 'currency');
|
|
64186
|
-
const code = this.safeCurrencyCode(id);
|
|
64187
|
-
const name = this.safeString(currency, 'name');
|
|
64188
|
-
const withdrawEnabled = this.safeValue(currency, 'supportWithdraw');
|
|
64189
|
-
const depositEnabled = this.safeValue(currency, 'supportDeposit');
|
|
64190
|
-
const tradeEnabled = this.safeValue(currency, 'supportTrade');
|
|
64191
|
-
const active = withdrawEnabled && depositEnabled && tradeEnabled;
|
|
64192
|
-
result[code] = {
|
|
64193
|
-
'id': id,
|
|
64194
|
-
'code': code,
|
|
64195
|
-
'name': name,
|
|
64196
|
-
'deposit': depositEnabled,
|
|
64197
|
-
'withdraw': withdrawEnabled,
|
|
64198
|
-
'active': active,
|
|
64199
|
-
'fee': this.safeNumber(currency, 'withdrawFee'),
|
|
64200
|
-
'precision': undefined,
|
|
64201
|
-
'limits': {
|
|
64202
|
-
'amount': { 'min': undefined, 'max': undefined },
|
|
64203
|
-
'price': { 'min': undefined, 'max': undefined },
|
|
64204
|
-
'cost': { 'min': undefined, 'max': undefined },
|
|
64205
|
-
'withdraw': { 'min': this.safeNumber(currency, 'minWithdrawSingle'), 'max': this.safeNumber(currency, 'maxWithdrawSingle') },
|
|
64206
|
-
},
|
|
64207
|
-
'info': currency,
|
|
64208
|
-
};
|
|
64209
|
-
}
|
|
64210
|
-
return result;
|
|
64211
|
-
}
|
|
64212
|
-
async fetchTime(params = {}) {
|
|
64213
|
-
/**
|
|
64214
|
-
* @method
|
|
64215
|
-
* @name bkex#fetchTime
|
|
64216
|
-
* @description fetches the current integer timestamp in milliseconds from the exchange server
|
|
64217
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64218
|
-
* @returns {int} the current integer timestamp in milliseconds from the exchange server
|
|
64219
|
-
*/
|
|
64220
|
-
const response = await this.publicSpotGetCommonTimestamp(params);
|
|
64221
|
-
//
|
|
64222
|
-
// {
|
|
64223
|
-
// "code": '0',
|
|
64224
|
-
// "data": 1573542445411,
|
|
64225
|
-
// "msg": "success",
|
|
64226
|
-
// "status": 0
|
|
64227
|
-
// }
|
|
64228
|
-
//
|
|
64229
|
-
return this.safeInteger(response, 'data');
|
|
64230
|
-
}
|
|
64231
|
-
async fetchStatus(params = {}) {
|
|
64232
|
-
/**
|
|
64233
|
-
* @method
|
|
64234
|
-
* @name bkex#fetchStatus
|
|
64235
|
-
* @description the latest known information on the availability of the exchange API
|
|
64236
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64237
|
-
* @returns {object} a [status structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#exchange-status-structure}
|
|
64238
|
-
*/
|
|
64239
|
-
const response = await this.publicSpotGetCommonTimestamp(params);
|
|
64240
|
-
//
|
|
64241
|
-
// {
|
|
64242
|
-
// "code": '0',
|
|
64243
|
-
// "data": 1573542445411,
|
|
64244
|
-
// "msg": "success",
|
|
64245
|
-
// "status": 0
|
|
64246
|
-
// }
|
|
64247
|
-
//
|
|
64248
|
-
const statusRaw = this.safeInteger(response, 'status');
|
|
64249
|
-
const codeRaw = this.safeInteger(response, 'code');
|
|
64250
|
-
const updated = this.safeInteger(response, 'data');
|
|
64251
|
-
return {
|
|
64252
|
-
'status': (statusRaw === 0 && codeRaw === 0) ? 'ok' : statusRaw,
|
|
64253
|
-
'updated': updated,
|
|
64254
|
-
'eta': undefined,
|
|
64255
|
-
'url': undefined,
|
|
64256
|
-
'info': response,
|
|
64257
|
-
};
|
|
64258
|
-
}
|
|
64259
|
-
async fetchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
|
|
64260
|
-
/**
|
|
64261
|
-
* @method
|
|
64262
|
-
* @name bkex#fetchOHLCV
|
|
64263
|
-
* @description fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
|
64264
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#quotationData-1
|
|
64265
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#contract-kline
|
|
64266
|
-
* @param {string} symbol unified symbol of the market to fetch OHLCV data for
|
|
64267
|
-
* @param {string} timeframe the length of time each candle represents
|
|
64268
|
-
* @param {int} [since] timestamp in ms of the earliest candle to fetch
|
|
64269
|
-
* @param {int} [limit] the maximum amount of candles to fetch
|
|
64270
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64271
|
-
* @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
|
|
64272
|
-
*/
|
|
64273
|
-
await this.loadMarkets();
|
|
64274
|
-
const market = this.market(symbol);
|
|
64275
|
-
const swap = market['swap'];
|
|
64276
|
-
const request = {
|
|
64277
|
-
'symbol': market['id'],
|
|
64278
|
-
};
|
|
64279
|
-
let method = 'publicSpotGetQKline';
|
|
64280
|
-
const timeframes = this.safeValue(this.options, 'timeframes');
|
|
64281
|
-
if (swap) {
|
|
64282
|
-
const swapTimeframes = this.safeValue(timeframes, 'swap');
|
|
64283
|
-
method = 'publicSwapGetMarketCandle';
|
|
64284
|
-
request['period'] = this.safeString(swapTimeframes, timeframe, timeframe);
|
|
64285
|
-
if (limit !== undefined) {
|
|
64286
|
-
request['count'] = limit;
|
|
64287
|
-
}
|
|
64288
|
-
}
|
|
64289
|
-
else {
|
|
64290
|
-
const spotTimeframes = this.safeValue(timeframes, 'spot');
|
|
64291
|
-
request['symbol'] = market['id'];
|
|
64292
|
-
request['period'] = this.safeString(spotTimeframes, timeframe, timeframe);
|
|
64293
|
-
}
|
|
64294
|
-
if (limit !== undefined) {
|
|
64295
|
-
const limitRequest = swap ? 'count' : 'size';
|
|
64296
|
-
request[limitRequest] = limit;
|
|
64297
|
-
}
|
|
64298
|
-
// their docs says that 'from/to' arguments are mandatory, however that's not true in reality
|
|
64299
|
-
if (since !== undefined) {
|
|
64300
|
-
const sinceRequest = swap ? 'start' : 'from';
|
|
64301
|
-
request[sinceRequest] = since;
|
|
64302
|
-
// when 'since' [from] argument is set, then exchange also requires 'to' value to be set. So we have to set 'to' argument depending 'limit' amount (if limit was not provided, then exchange-default 500).
|
|
64303
|
-
if (limit === undefined) {
|
|
64304
|
-
limit = 500;
|
|
64305
|
-
}
|
|
64306
|
-
const duration = this.parseTimeframe(timeframe);
|
|
64307
|
-
const timerange = limit * duration * 1000;
|
|
64308
|
-
const toRequest = swap ? 'end' : 'to';
|
|
64309
|
-
request[toRequest] = this.sum(request[sinceRequest], timerange);
|
|
64310
|
-
}
|
|
64311
|
-
const response = await this[method](request);
|
|
64312
|
-
//
|
|
64313
|
-
// spot
|
|
64314
|
-
//
|
|
64315
|
-
// {
|
|
64316
|
-
// "code": "0",
|
|
64317
|
-
// "data": [
|
|
64318
|
-
// {
|
|
64319
|
-
// "close": "43414.68",
|
|
64320
|
-
// "high": "43446.47",
|
|
64321
|
-
// "low": "43403.05",
|
|
64322
|
-
// "open": "43406.05",
|
|
64323
|
-
// "quoteVolume": "61500.40099",
|
|
64324
|
-
// "symbol": "BTC_USDT",
|
|
64325
|
-
// "ts": "1646152440000",
|
|
64326
|
-
// "volume": 1.41627
|
|
64327
|
-
// },
|
|
64328
|
-
// ],
|
|
64329
|
-
// "msg": "success",
|
|
64330
|
-
// "status": 0
|
|
64331
|
-
// }
|
|
64332
|
-
//
|
|
64333
|
-
// swap
|
|
64334
|
-
//
|
|
64335
|
-
// {
|
|
64336
|
-
// "code": 0,
|
|
64337
|
-
// "msg": "success",
|
|
64338
|
-
// "data": [
|
|
64339
|
-
// {
|
|
64340
|
-
// "symbol": "btc_usdt",
|
|
64341
|
-
// "amount": "10.26",
|
|
64342
|
-
// "volume": "172540.9433",
|
|
64343
|
-
// "open": "16817.29",
|
|
64344
|
-
// "close": "1670476440000",
|
|
64345
|
-
// "high": "16816.45",
|
|
64346
|
-
// "low": "16817.29",
|
|
64347
|
-
// "ts": 1670476440000
|
|
64348
|
-
// },
|
|
64349
|
-
// ]
|
|
64350
|
-
// }
|
|
64351
|
-
//
|
|
64352
|
-
const data = this.safeValue(response, 'data', []);
|
|
64353
|
-
return this.parseOHLCVs(data, market, timeframe, since, limit);
|
|
64354
|
-
}
|
|
64355
|
-
parseOHLCV(ohlcv, market = undefined) {
|
|
64356
|
-
const baseCurrencyVolume = market['swap'] ? 'amount' : 'volume';
|
|
64357
|
-
return [
|
|
64358
|
-
this.safeInteger(ohlcv, 'ts'),
|
|
64359
|
-
this.safeFloat(ohlcv, 'open'),
|
|
64360
|
-
this.safeFloat(ohlcv, 'high'),
|
|
64361
|
-
this.safeFloat(ohlcv, 'low'),
|
|
64362
|
-
this.safeFloat(ohlcv, 'close'),
|
|
64363
|
-
this.safeFloat(ohlcv, baseCurrencyVolume),
|
|
64364
|
-
];
|
|
64365
|
-
}
|
|
64366
|
-
async fetchTicker(symbol, params = {}) {
|
|
64367
|
-
/**
|
|
64368
|
-
* @method
|
|
64369
|
-
* @name bkex#fetchTicker
|
|
64370
|
-
* @description fetches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
|
|
64371
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#quotationData-2
|
|
64372
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#contract-ticker-data
|
|
64373
|
-
* @param {string} symbol unified symbol of the market to fetch the ticker for
|
|
64374
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64375
|
-
* @returns {object} a [ticker structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure}
|
|
64376
|
-
*/
|
|
64377
|
-
await this.loadMarkets();
|
|
64378
|
-
const market = this.market(symbol);
|
|
64379
|
-
const request = {
|
|
64380
|
-
'symbol': market['id'],
|
|
64381
|
-
};
|
|
64382
|
-
const [marketType, query] = this.handleMarketTypeAndParams('fetchTicker', market, params);
|
|
64383
|
-
const method = (marketType === 'swap') ? 'publicSwapGetMarketTickers' : 'publicSpotGetQTickers';
|
|
64384
|
-
const response = await this[method](this.extend(request, query));
|
|
64385
|
-
//
|
|
64386
|
-
// spot
|
|
64387
|
-
//
|
|
64388
|
-
// {
|
|
64389
|
-
// "code": "0",
|
|
64390
|
-
// "data": [
|
|
64391
|
-
// {
|
|
64392
|
-
// "change": "6.52",
|
|
64393
|
-
// "close": "43573.470000",
|
|
64394
|
-
// "high": "44940.540000",
|
|
64395
|
-
// "low": "40799.840000",
|
|
64396
|
-
// "open": "40905.780000",
|
|
64397
|
-
// "quoteVolume": "225621691.5991",
|
|
64398
|
-
// "symbol": "BTC_USDT",
|
|
64399
|
-
// "ts": "1646156490781",
|
|
64400
|
-
// "volume": 5210.349
|
|
64401
|
-
// }
|
|
64402
|
-
// ],
|
|
64403
|
-
// "msg": "success",
|
|
64404
|
-
// "status": 0
|
|
64405
|
-
// }
|
|
64406
|
-
//
|
|
64407
|
-
// swap
|
|
64408
|
-
//
|
|
64409
|
-
// {
|
|
64410
|
-
// "code": 0,
|
|
64411
|
-
// "msg": "success",
|
|
64412
|
-
// "data": [
|
|
64413
|
-
// {
|
|
64414
|
-
// "symbol": "btc_usdt",
|
|
64415
|
-
// "amount": "171035.45",
|
|
64416
|
-
// "volume": "2934757466.3859",
|
|
64417
|
-
// "open": "17111.43",
|
|
64418
|
-
// "close": "17135.74",
|
|
64419
|
-
// "high": "17225.99",
|
|
64420
|
-
// "low": "17105.77",
|
|
64421
|
-
// "lastPrice": "17135.74",
|
|
64422
|
-
// "lastAmount": "1.05",
|
|
64423
|
-
// "lastTime": 1670709364912,
|
|
64424
|
-
// "change": "0.14"
|
|
64425
|
-
// }
|
|
64426
|
-
// ]
|
|
64427
|
-
// }
|
|
64428
|
-
//
|
|
64429
|
-
const tickers = this.safeValue(response, 'data', []);
|
|
64430
|
-
const ticker = this.safeValue(tickers, 0);
|
|
64431
|
-
return this.parseTicker(ticker, market);
|
|
64432
|
-
}
|
|
64433
|
-
async fetchTickers(symbols = undefined, params = {}) {
|
|
64434
|
-
/**
|
|
64435
|
-
* @method
|
|
64436
|
-
* @name bkex#fetchTickers
|
|
64437
|
-
* @description fetches price tickers for multiple markets, statistical calculations with the information calculated over the past 24 hours each market
|
|
64438
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#quotationData-2
|
|
64439
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#contract-ticker-data
|
|
64440
|
-
* @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
64441
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64442
|
-
* @returns {object} a dictionary of [ticker structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure}
|
|
64443
|
-
*/
|
|
64444
|
-
await this.loadMarkets();
|
|
64445
|
-
const request = {};
|
|
64446
|
-
if (symbols !== undefined) {
|
|
64447
|
-
if (!Array.isArray(symbols)) {
|
|
64448
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' fetchTickers() symbols argument should be an array');
|
|
64449
|
-
}
|
|
64450
|
-
}
|
|
64451
|
-
let market = undefined;
|
|
64452
|
-
if (symbols !== undefined) {
|
|
64453
|
-
const marketIds = this.marketIds(symbols);
|
|
64454
|
-
const symbol = this.safeString(symbols, 0);
|
|
64455
|
-
market = this.market(symbol);
|
|
64456
|
-
if (market['swap']) {
|
|
64457
|
-
if (Array.isArray(symbols)) {
|
|
64458
|
-
const symbolsLength = symbols.length;
|
|
64459
|
-
if (symbolsLength > 1) {
|
|
64460
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' fetchTickers() symbols argument cannot contain more than 1 symbol for swap markets');
|
|
64461
|
-
}
|
|
64462
|
-
}
|
|
64463
|
-
request['symbol'] = market['id'];
|
|
64464
|
-
}
|
|
64465
|
-
else {
|
|
64466
|
-
request['symbol'] = marketIds.join(',');
|
|
64467
|
-
}
|
|
64468
|
-
}
|
|
64469
|
-
const [marketType, query] = this.handleMarketTypeAndParams('fetchTickers', market, params);
|
|
64470
|
-
const method = (marketType === 'swap') ? 'publicSwapGetMarketTickers' : 'publicSpotGetQTickers';
|
|
64471
|
-
const response = await this[method](this.extend(request, query));
|
|
64472
|
-
//
|
|
64473
|
-
// spot
|
|
64474
|
-
//
|
|
64475
|
-
// {
|
|
64476
|
-
// "code": "0",
|
|
64477
|
-
// "data": [
|
|
64478
|
-
// {
|
|
64479
|
-
// "change": "6.52",
|
|
64480
|
-
// "close": "43573.470000",
|
|
64481
|
-
// "high": "44940.540000",
|
|
64482
|
-
// "low": "40799.840000",
|
|
64483
|
-
// "open": "40905.780000",
|
|
64484
|
-
// "quoteVolume": "225621691.5991",
|
|
64485
|
-
// "symbol": "BTC_USDT",
|
|
64486
|
-
// "ts": "1646156490781",
|
|
64487
|
-
// "volume": 5210.349
|
|
64488
|
-
// }
|
|
64489
|
-
// ],
|
|
64490
|
-
// "msg": "success",
|
|
64491
|
-
// "status": 0
|
|
64492
|
-
// }
|
|
64493
|
-
//
|
|
64494
|
-
// swap
|
|
64495
|
-
//
|
|
64496
|
-
// {
|
|
64497
|
-
// "code": 0,
|
|
64498
|
-
// "msg": "success",
|
|
64499
|
-
// "data": [
|
|
64500
|
-
// {
|
|
64501
|
-
// "symbol": "btc_usdt",
|
|
64502
|
-
// "amount": "171035.45",
|
|
64503
|
-
// "volume": "2934757466.3859",
|
|
64504
|
-
// "open": "17111.43",
|
|
64505
|
-
// "close": "17135.74",
|
|
64506
|
-
// "high": "17225.99",
|
|
64507
|
-
// "low": "17105.77",
|
|
64508
|
-
// "lastPrice": "17135.74",
|
|
64509
|
-
// "lastAmount": "1.05",
|
|
64510
|
-
// "lastTime": 1670709364912,
|
|
64511
|
-
// "change": "0.14"
|
|
64512
|
-
// }
|
|
64513
|
-
// ]
|
|
64514
|
-
// }
|
|
64515
|
-
//
|
|
64516
|
-
const tickers = this.safeValue(response, 'data', []);
|
|
64517
|
-
return this.parseTickers(tickers, symbols, query);
|
|
64518
|
-
}
|
|
64519
|
-
parseTicker(ticker, market = undefined) {
|
|
64520
|
-
//
|
|
64521
|
-
// spot
|
|
64522
|
-
//
|
|
64523
|
-
// {
|
|
64524
|
-
// "change":-0.46,
|
|
64525
|
-
// "close":29664.46,
|
|
64526
|
-
// "high":30784.99,
|
|
64527
|
-
// "low":29455.36,
|
|
64528
|
-
// "open":29803.38,
|
|
64529
|
-
// "quoteVolume":714653752.6991,
|
|
64530
|
-
// "symbol":"BTC_USDT",
|
|
64531
|
-
// "ts":1652812048118,
|
|
64532
|
-
// "volume":23684.9416
|
|
64533
|
-
// }
|
|
64534
|
-
//
|
|
64535
|
-
// swap
|
|
64536
|
-
//
|
|
64537
|
-
// {
|
|
64538
|
-
// "symbol": "btc_usdt",
|
|
64539
|
-
// "amount": "171035.45",
|
|
64540
|
-
// "volume": "2934757466.3859",
|
|
64541
|
-
// "open": "17111.43",
|
|
64542
|
-
// "close": "17135.74",
|
|
64543
|
-
// "high": "17225.99",
|
|
64544
|
-
// "low": "17105.77",
|
|
64545
|
-
// "lastPrice": "17135.74",
|
|
64546
|
-
// "lastAmount": "1.05",
|
|
64547
|
-
// "lastTime": 1670709364912,
|
|
64548
|
-
// "change": "0.14"
|
|
64549
|
-
// }
|
|
64550
|
-
//
|
|
64551
|
-
const marketId = this.safeString(ticker, 'symbol');
|
|
64552
|
-
market = this.safeMarket(marketId, market);
|
|
64553
|
-
const symbol = this.safeSymbol(marketId, market);
|
|
64554
|
-
const timestamp = this.safeInteger2(ticker, 'ts', 'lastTime');
|
|
64555
|
-
const baseCurrencyVolume = market['swap'] ? 'amount' : 'volume';
|
|
64556
|
-
const quoteCurrencyVolume = market['swap'] ? 'volume' : 'quoteVolume';
|
|
64557
|
-
const lastPrice = market['swap'] ? 'lastPrice' : 'close';
|
|
64558
|
-
return this.safeTicker({
|
|
64559
|
-
'symbol': symbol,
|
|
64560
|
-
'timestamp': timestamp,
|
|
64561
|
-
'datetime': this.iso8601(timestamp),
|
|
64562
|
-
'high': this.safeString(ticker, 'high'),
|
|
64563
|
-
'low': this.safeString(ticker, 'low'),
|
|
64564
|
-
'bid': undefined,
|
|
64565
|
-
'bidVolume': undefined,
|
|
64566
|
-
'ask': undefined,
|
|
64567
|
-
'askVolume': undefined,
|
|
64568
|
-
'vwap': undefined,
|
|
64569
|
-
'open': this.safeString(ticker, 'open'),
|
|
64570
|
-
'close': this.safeString(ticker, 'close'),
|
|
64571
|
-
'last': this.safeString(ticker, lastPrice),
|
|
64572
|
-
'previousClose': undefined,
|
|
64573
|
-
'change': undefined,
|
|
64574
|
-
'percentage': this.safeString(ticker, 'change'),
|
|
64575
|
-
'average': undefined,
|
|
64576
|
-
'baseVolume': this.safeString(ticker, baseCurrencyVolume),
|
|
64577
|
-
'quoteVolume': this.safeString(ticker, quoteCurrencyVolume),
|
|
64578
|
-
'info': ticker,
|
|
64579
|
-
}, market);
|
|
64580
|
-
}
|
|
64581
|
-
async fetchOrderBook(symbol, limit = undefined, params = {}) {
|
|
64582
|
-
/**
|
|
64583
|
-
* @method
|
|
64584
|
-
* @name bkex#fetchOrderBook
|
|
64585
|
-
* @description fetches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
|
|
64586
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#quotationData-4
|
|
64587
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#contract-deep-data
|
|
64588
|
-
* @param {string} symbol unified symbol of the market to fetch the order book for
|
|
64589
|
-
* @param {int} [limit] the maximum amount of order book entries to return
|
|
64590
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64591
|
-
* @returns {object} A dictionary of [order book structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-book-structure} indexed by market symbols
|
|
64592
|
-
*/
|
|
64593
|
-
await this.loadMarkets();
|
|
64594
|
-
const market = this.market(symbol);
|
|
64595
|
-
const swap = market['swap'];
|
|
64596
|
-
const request = {
|
|
64597
|
-
'symbol': market['id'],
|
|
64598
|
-
};
|
|
64599
|
-
let method = 'publicSpotGetQDepth';
|
|
64600
|
-
if (swap) {
|
|
64601
|
-
method = 'publicSwapGetMarketDepth';
|
|
64602
|
-
}
|
|
64603
|
-
else {
|
|
64604
|
-
if (limit !== undefined) {
|
|
64605
|
-
request['depth'] = Math.min(limit, 50);
|
|
64606
|
-
}
|
|
64607
|
-
}
|
|
64608
|
-
const response = await this[method](this.extend(request, params));
|
|
64609
|
-
//
|
|
64610
|
-
// spot
|
|
64611
|
-
//
|
|
64612
|
-
// {
|
|
64613
|
-
// "code": "0",
|
|
64614
|
-
// "data": {
|
|
64615
|
-
// "ask": [
|
|
64616
|
-
// ["43820.07","0.86947"],
|
|
64617
|
-
// ["43820.25","0.07503"],
|
|
64618
|
-
// ],
|
|
64619
|
-
// "bid": [
|
|
64620
|
-
// ["43815.94","0.43743"],
|
|
64621
|
-
// ["43815.72","0.08901"],
|
|
64622
|
-
// ],
|
|
64623
|
-
// "symbol": "BTC_USDT",
|
|
64624
|
-
// "timestamp": 1646161595841
|
|
64625
|
-
// },
|
|
64626
|
-
// "msg": "success",
|
|
64627
|
-
// "status": 0
|
|
64628
|
-
// }
|
|
64629
|
-
//
|
|
64630
|
-
// swap
|
|
64631
|
-
//
|
|
64632
|
-
// {
|
|
64633
|
-
// "code": 0,
|
|
64634
|
-
// "msg": "success",
|
|
64635
|
-
// "data": {
|
|
64636
|
-
// "bid": [
|
|
64637
|
-
// ["16803.170000","4.96"],
|
|
64638
|
-
// ["16803.140000","11.07"],
|
|
64639
|
-
// ],
|
|
64640
|
-
// "ask": [
|
|
64641
|
-
// ["16803.690000","9.2"],
|
|
64642
|
-
// ["16804.180000","9.43"],
|
|
64643
|
-
// ]
|
|
64644
|
-
// }
|
|
64645
|
-
// }
|
|
64646
|
-
//
|
|
64647
|
-
const data = this.safeValue(response, 'data');
|
|
64648
|
-
const timestamp = this.safeInteger(data, 'timestamp');
|
|
64649
|
-
return this.parseOrderBook(data, market['symbol'], timestamp, 'bid', 'ask');
|
|
64650
|
-
}
|
|
64651
|
-
async fetchTrades(symbol, since = undefined, limit = undefined, params = {}) {
|
|
64652
|
-
/**
|
|
64653
|
-
* @method
|
|
64654
|
-
* @name bkex#fetchTrades
|
|
64655
|
-
* @description get the list of most recent trades for a particular symbol
|
|
64656
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#quotationData-5
|
|
64657
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#contract-trades-history
|
|
64658
|
-
* @param {string} symbol unified symbol of the market to fetch trades for
|
|
64659
|
-
* @param {int} [since] timestamp in ms of the earliest trade to fetch
|
|
64660
|
-
* @param {int} [limit] the maximum amount of trades to fetch
|
|
64661
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64662
|
-
* @returns {Trade[]} a list of [trade structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#public-trades}
|
|
64663
|
-
*/
|
|
64664
|
-
await this.loadMarkets();
|
|
64665
|
-
const market = this.market(symbol);
|
|
64666
|
-
const swap = market['swap'];
|
|
64667
|
-
const request = {
|
|
64668
|
-
'symbol': market['id'],
|
|
64669
|
-
};
|
|
64670
|
-
let method = 'publicSpotGetQDeals';
|
|
64671
|
-
if (swap) {
|
|
64672
|
-
method = 'publicSwapGetMarketDeals';
|
|
64673
|
-
}
|
|
64674
|
-
else {
|
|
64675
|
-
if (limit !== undefined) {
|
|
64676
|
-
request['size'] = Math.min(limit, 50);
|
|
64677
|
-
}
|
|
64678
|
-
}
|
|
64679
|
-
const response = await this[method](this.extend(request, params));
|
|
64680
|
-
//
|
|
64681
|
-
// spot
|
|
64682
|
-
//
|
|
64683
|
-
// {
|
|
64684
|
-
// "code": "0",
|
|
64685
|
-
// "data": [
|
|
64686
|
-
// {
|
|
64687
|
-
// "direction": "S",
|
|
64688
|
-
// "price": "43930.63",
|
|
64689
|
-
// "symbol": "BTC_USDT",
|
|
64690
|
-
// "ts": "1646224171992",
|
|
64691
|
-
// "volume": 0.030653
|
|
64692
|
-
// }, // first item is most recent
|
|
64693
|
-
// ],
|
|
64694
|
-
// "msg": "success",
|
|
64695
|
-
// "status": 0
|
|
64696
|
-
// }
|
|
64697
|
-
//
|
|
64698
|
-
// swap
|
|
64699
|
-
//
|
|
64700
|
-
// {
|
|
64701
|
-
// "code": 0,
|
|
64702
|
-
// "msg": "success",
|
|
64703
|
-
// "data": [
|
|
64704
|
-
// {
|
|
64705
|
-
// "symbol": "btc_usdt",
|
|
64706
|
-
// "amount": "0.06",
|
|
64707
|
-
// "price": "17134.66",
|
|
64708
|
-
// "side": "sell",
|
|
64709
|
-
// "time": 1670651851646
|
|
64710
|
-
// },
|
|
64711
|
-
// ]
|
|
64712
|
-
// }
|
|
64713
|
-
//
|
|
64714
|
-
const trades = this.safeValue(response, 'data');
|
|
64715
|
-
return this.parseTrades(trades, market, since, limit);
|
|
64716
|
-
}
|
|
64717
|
-
parseTrade(trade, market = undefined) {
|
|
64718
|
-
const timestamp = this.safeInteger2(trade, 'ts', 'time');
|
|
64719
|
-
const marketId = this.safeString(trade, 'symbol');
|
|
64720
|
-
market = this.safeMarket(marketId, market);
|
|
64721
|
-
const side = this.parseTradeSide(this.safeString2(trade, 'direction', 'side'));
|
|
64722
|
-
const amount = this.safeNumber2(trade, 'volume', 'amount');
|
|
64723
|
-
const price = this.safeNumber(trade, 'price');
|
|
64724
|
-
const type = undefined;
|
|
64725
|
-
let id = this.safeString(trade, 'tid');
|
|
64726
|
-
if (id === undefined) {
|
|
64727
|
-
id = this.syntheticTradeId(market, timestamp, side, amount, price, type);
|
|
64728
|
-
}
|
|
64729
|
-
return this.safeTrade({
|
|
64730
|
-
'id': id,
|
|
64731
|
-
'timestamp': timestamp,
|
|
64732
|
-
'datetime': this.iso8601(timestamp),
|
|
64733
|
-
'symbol': market['symbol'],
|
|
64734
|
-
'order': undefined,
|
|
64735
|
-
'type': type,
|
|
64736
|
-
'side': side,
|
|
64737
|
-
'takerOrMaker': undefined,
|
|
64738
|
-
'price': price,
|
|
64739
|
-
'amount': amount,
|
|
64740
|
-
'cost': undefined,
|
|
64741
|
-
'fee': undefined,
|
|
64742
|
-
'info': trade,
|
|
64743
|
-
}, market);
|
|
64744
|
-
}
|
|
64745
|
-
parseTradeSide(side) {
|
|
64746
|
-
const sides = {
|
|
64747
|
-
'B': 'buy',
|
|
64748
|
-
'S': 'sell',
|
|
64749
|
-
'buy': 'buy',
|
|
64750
|
-
'sell': 'sell',
|
|
64751
|
-
};
|
|
64752
|
-
return this.safeString(sides, side, side);
|
|
64753
|
-
}
|
|
64754
|
-
syntheticTradeId(market = undefined, timestamp = undefined, side = undefined, amount = undefined, price = undefined, orderType = undefined, takerOrMaker = undefined) {
|
|
64755
|
-
// TODO: can be unified method? this approach is being used by multiple exchanges (mexc, woo-coinsbit, dydx, ...)
|
|
64756
|
-
let id = '';
|
|
64757
|
-
if (timestamp !== undefined) {
|
|
64758
|
-
id = this.numberToString(timestamp) + '-' + this.safeString(market, 'id', '_');
|
|
64759
|
-
if (side !== undefined) {
|
|
64760
|
-
id += '-' + side;
|
|
64761
|
-
}
|
|
64762
|
-
if (orderType !== undefined) {
|
|
64763
|
-
id += '-' + orderType;
|
|
64764
|
-
}
|
|
64765
|
-
if (takerOrMaker !== undefined) {
|
|
64766
|
-
id += '-' + takerOrMaker;
|
|
64767
|
-
}
|
|
64768
|
-
if (amount !== undefined) {
|
|
64769
|
-
id += '-' + this.numberToString(amount);
|
|
64770
|
-
}
|
|
64771
|
-
if (price !== undefined) {
|
|
64772
|
-
id += '-' + this.numberToString(price);
|
|
64773
|
-
}
|
|
64774
|
-
}
|
|
64775
|
-
return id;
|
|
64776
|
-
}
|
|
64777
|
-
async fetchBalance(params = {}) {
|
|
64778
|
-
/**
|
|
64779
|
-
* @method
|
|
64780
|
-
* @name bkex#fetchBalance
|
|
64781
|
-
* @description query for balance and get the amount of funds available for trading or funds locked in orders
|
|
64782
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64783
|
-
* @returns {object} a [balance structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#balance-structure}
|
|
64784
|
-
*/
|
|
64785
|
-
await this.loadMarkets();
|
|
64786
|
-
const query = this.omit(params, 'type');
|
|
64787
|
-
const response = await this.privateSpotGetUAccountBalance(query);
|
|
64788
|
-
//
|
|
64789
|
-
// {
|
|
64790
|
-
// "code": "0",
|
|
64791
|
-
// "data": {
|
|
64792
|
-
// "WALLET": [
|
|
64793
|
-
// {
|
|
64794
|
-
// "available": "0.221212121000000000",
|
|
64795
|
-
// "currency": "PHX",
|
|
64796
|
-
// "frozen": "0E-18",
|
|
64797
|
-
// "total": 0.221212121
|
|
64798
|
-
// },
|
|
64799
|
-
// {
|
|
64800
|
-
// "available": "44.959577229600000000",
|
|
64801
|
-
// "currency": "USDT",
|
|
64802
|
-
// "frozen": "0E-18",
|
|
64803
|
-
// "total": 44.9595772296
|
|
64804
|
-
// }
|
|
64805
|
-
// ]
|
|
64806
|
-
// },
|
|
64807
|
-
// "msg": "success",
|
|
64808
|
-
// "status": 0
|
|
64809
|
-
// }
|
|
64810
|
-
//
|
|
64811
|
-
const balances = this.safeValue(response, 'data');
|
|
64812
|
-
const wallets = this.safeValue(balances, 'WALLET', []);
|
|
64813
|
-
const result = { 'info': wallets };
|
|
64814
|
-
for (let i = 0; i < wallets.length; i++) {
|
|
64815
|
-
const wallet = wallets[i];
|
|
64816
|
-
const currencyId = wallet['currency'];
|
|
64817
|
-
const code = this.safeCurrencyCode(currencyId);
|
|
64818
|
-
const account = this.account();
|
|
64819
|
-
account['free'] = this.safeNumber(wallet, 'available');
|
|
64820
|
-
account['used'] = this.safeNumber(wallet, 'frozen');
|
|
64821
|
-
account['total'] = this.safeNumber(wallet, 'total');
|
|
64822
|
-
result[code] = account;
|
|
64823
|
-
}
|
|
64824
|
-
return this.safeBalance(result);
|
|
64825
|
-
}
|
|
64826
|
-
async fetchDepositAddress(code, params = {}) {
|
|
64827
|
-
/**
|
|
64828
|
-
* @method
|
|
64829
|
-
* @name bkex#fetchDepositAddress
|
|
64830
|
-
* @description fetch the deposit address for a currency associated with this account
|
|
64831
|
-
* @param {string} code unified currency code
|
|
64832
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64833
|
-
* @returns {object} an [address structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#address-structure}
|
|
64834
|
-
*/
|
|
64835
|
-
await this.loadMarkets();
|
|
64836
|
-
const currency = this.currency(code);
|
|
64837
|
-
const request = {
|
|
64838
|
-
'currency': currency['id'],
|
|
64839
|
-
};
|
|
64840
|
-
const response = await this.privateSpotGetUWalletAddress(this.extend(request, params));
|
|
64841
|
-
// NOTE: You can only retrieve addresses of already generated wallets - so should already have generated that COIN deposit address in UI. Otherwise, it seems from API you can't create/obtain addresses for those coins.
|
|
64842
|
-
//
|
|
64843
|
-
// {
|
|
64844
|
-
// "code": "0",
|
|
64845
|
-
// "data": [
|
|
64846
|
-
// {
|
|
64847
|
-
// "currency": "BTC",
|
|
64848
|
-
// "address": "1m4k2yUKTSrX6SM9FGgvwMyxQbYtRVi2N",
|
|
64849
|
-
// "memo": ""
|
|
64850
|
-
// }
|
|
64851
|
-
// ],
|
|
64852
|
-
// "msg": "success",
|
|
64853
|
-
// "status": 0
|
|
64854
|
-
// }
|
|
64855
|
-
//
|
|
64856
|
-
const data = this.safeValue(response, 'data', {});
|
|
64857
|
-
return this.parseDepositAddress(data, currency);
|
|
64858
|
-
}
|
|
64859
|
-
parseDepositAddress(data, currency = undefined) {
|
|
64860
|
-
const depositObject = this.safeValue(data, 0);
|
|
64861
|
-
const address = this.safeString(depositObject, 'address');
|
|
64862
|
-
const tag = this.safeString(depositObject, 'memo');
|
|
64863
|
-
const currencyId = this.safeString(depositObject, 'currency');
|
|
64864
|
-
currency = this.safeCurrency(currencyId, currency);
|
|
64865
|
-
return {
|
|
64866
|
-
'currency': currency['code'],
|
|
64867
|
-
'address': address,
|
|
64868
|
-
'tag': tag,
|
|
64869
|
-
'network': undefined,
|
|
64870
|
-
'info': data,
|
|
64871
|
-
};
|
|
64872
|
-
}
|
|
64873
|
-
async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
64874
|
-
/**
|
|
64875
|
-
* @method
|
|
64876
|
-
* @name bkex#fetchDeposits
|
|
64877
|
-
* @description fetch all deposits made to an account
|
|
64878
|
-
* @param {string} code unified currency code
|
|
64879
|
-
* @param {int} [since] the earliest time in ms to fetch deposits for
|
|
64880
|
-
* @param {int} [limit] the maximum number of deposits structures to retrieve
|
|
64881
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64882
|
-
* @returns {object[]} a list of [transaction structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#transaction-structure}
|
|
64883
|
-
*/
|
|
64884
|
-
if (code === undefined) {
|
|
64885
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchDeposits() requires code argument');
|
|
64886
|
-
}
|
|
64887
|
-
await this.loadMarkets();
|
|
64888
|
-
const currency = this.currency(code);
|
|
64889
|
-
const request = {
|
|
64890
|
-
'currency': currency['id'],
|
|
64891
|
-
};
|
|
64892
|
-
if (since !== undefined) {
|
|
64893
|
-
request['startTime'] = since;
|
|
64894
|
-
const endTime = this.milliseconds();
|
|
64895
|
-
request['endTime'] = endTime;
|
|
64896
|
-
}
|
|
64897
|
-
if (limit !== undefined) {
|
|
64898
|
-
request['Size'] = limit; // Todo: id api-docs, 'size' is incorrectly required to be in Uppercase
|
|
64899
|
-
}
|
|
64900
|
-
const response = await this.privateSpotGetUWalletDepositRecord(this.extend(request, params));
|
|
64901
|
-
//
|
|
64902
|
-
// {
|
|
64903
|
-
// "code": "0",
|
|
64904
|
-
// "data": {
|
|
64905
|
-
// "data": [
|
|
64906
|
-
// {
|
|
64907
|
-
// "createTime": "1622274255000",
|
|
64908
|
-
// "currency": "BNB",
|
|
64909
|
-
// "fromAddress": "bnb10af52w77pkehgxhnwgeca50q2t2354q4xexa5y",
|
|
64910
|
-
// "hash": "97B982F497782C2777C0F6AD16CEAAC65A93A364B684A23A71CFBB8C010DEEA6",
|
|
64911
|
-
// "id": "2021052923441510234383337",
|
|
64912
|
-
// "status": "0",
|
|
64913
|
-
// "toAddress": "bnb13w64gkc42c0l45m2p5me4qn35z0a3ej9ldks3j_82784659",
|
|
64914
|
-
// "volume": 0.073
|
|
64915
|
-
// }
|
|
64916
|
-
// ],
|
|
64917
|
-
// "total": 1
|
|
64918
|
-
// },
|
|
64919
|
-
// "msg": "success",
|
|
64920
|
-
// "status": 0
|
|
64921
|
-
// }
|
|
64922
|
-
//
|
|
64923
|
-
const data = this.safeValue(response, 'data', {});
|
|
64924
|
-
const dataInner = this.safeValue(data, 'data', []);
|
|
64925
|
-
for (let i = 0; i < dataInner.length; i++) {
|
|
64926
|
-
dataInner[i]['transactType'] = 'deposit';
|
|
64927
|
-
}
|
|
64928
|
-
return this.parseTransactions(dataInner, currency, since, limit, params);
|
|
64929
|
-
}
|
|
64930
|
-
async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
64931
|
-
/**
|
|
64932
|
-
* @method
|
|
64933
|
-
* @name bkex#fetchWithdrawals
|
|
64934
|
-
* @description fetch all withdrawals made from an account
|
|
64935
|
-
* @param {string} code unified currency code
|
|
64936
|
-
* @param {int} [since] the earliest time in ms to fetch withdrawals for
|
|
64937
|
-
* @param {int} [limit] the maximum number of withdrawals structures to retrieve
|
|
64938
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
64939
|
-
* @returns {object[]} a list of [transaction structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#transaction-structure}
|
|
64940
|
-
*/
|
|
64941
|
-
if (code === undefined) {
|
|
64942
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchWithdrawals() requires code argument');
|
|
64943
|
-
}
|
|
64944
|
-
await this.loadMarkets();
|
|
64945
|
-
const currency = this.currency(code);
|
|
64946
|
-
const request = {
|
|
64947
|
-
'currency': currency['id'],
|
|
64948
|
-
};
|
|
64949
|
-
if (since !== undefined) {
|
|
64950
|
-
request['startTime'] = since;
|
|
64951
|
-
const endTime = this.milliseconds();
|
|
64952
|
-
request['endTime'] = endTime;
|
|
64953
|
-
}
|
|
64954
|
-
if (limit !== undefined) {
|
|
64955
|
-
request['Size'] = limit; // Todo: id api-docs, 'size' is incorrectly required to be in Uppercase
|
|
64956
|
-
}
|
|
64957
|
-
const response = await this.privateSpotGetUWalletWithdrawRecord(this.extend(request, params));
|
|
64958
|
-
//
|
|
64959
|
-
// {
|
|
64960
|
-
// "code": "0",
|
|
64961
|
-
// "data": {
|
|
64962
|
-
// "data": [
|
|
64963
|
-
// {
|
|
64964
|
-
// ...
|
|
64965
|
-
// }
|
|
64966
|
-
// ],
|
|
64967
|
-
// "total": 1
|
|
64968
|
-
// },
|
|
64969
|
-
// "msg": "success",
|
|
64970
|
-
// "status": 0
|
|
64971
|
-
// }
|
|
64972
|
-
//
|
|
64973
|
-
const data = this.safeValue(response, 'data', {});
|
|
64974
|
-
const dataInner = this.safeValue(data, 'data', []);
|
|
64975
|
-
for (let i = 0; i < dataInner.length; i++) {
|
|
64976
|
-
dataInner[i]['transactType'] = 'withdrawal';
|
|
64977
|
-
}
|
|
64978
|
-
return this.parseTransactions(dataInner, currency, since, limit, params);
|
|
64979
|
-
}
|
|
64980
|
-
parseTransaction(transaction, currency = undefined) {
|
|
64981
|
-
//
|
|
64982
|
-
// fetchDeposits
|
|
64983
|
-
//
|
|
64984
|
-
// {
|
|
64985
|
-
// "createTime": "1622274255000",
|
|
64986
|
-
// "currency": "BNB",
|
|
64987
|
-
// "fromAddress": "bnb10af52w77pkehgxhnwgeca50q2t2354q4xexa5y",
|
|
64988
|
-
// "hash": "97B982F497782C2777C0F6AD16CEAAC65A93A364B684A23A71CFBB8C010DEEA6",
|
|
64989
|
-
// "id": "2021052923441510234383337",
|
|
64990
|
-
// "status": "0",
|
|
64991
|
-
// "toAddress": "bnb13w64gkc42c0l45m2p5me4qn35z0a3ej9ldks3j_82784659",
|
|
64992
|
-
// "volume": 0.073
|
|
64993
|
-
// }
|
|
64994
|
-
//
|
|
64995
|
-
const id = this.safeString(transaction, 'id');
|
|
64996
|
-
const amount = this.safeNumber(transaction, 'volume');
|
|
64997
|
-
const addressTo = this.safeValue(transaction, 'toAddress', {});
|
|
64998
|
-
const addressFrom = this.safeString(transaction, 'fromAddress');
|
|
64999
|
-
const txid = this.safeString(transaction, 'hash');
|
|
65000
|
-
const type = this.safeString(transaction, 'transactType');
|
|
65001
|
-
const timestamp = this.safeInteger(transaction, 'createTime');
|
|
65002
|
-
const currencyId = this.safeString(transaction, 'currency');
|
|
65003
|
-
const code = this.safeCurrencyCode(currencyId, currency);
|
|
65004
|
-
const status = this.parseTransactionStatus(this.safeString(transaction, 'status'));
|
|
65005
|
-
return {
|
|
65006
|
-
'id': id,
|
|
65007
|
-
'currency': code,
|
|
65008
|
-
'amount': amount,
|
|
65009
|
-
'network': undefined,
|
|
65010
|
-
'address': addressTo,
|
|
65011
|
-
'addressTo': addressTo,
|
|
65012
|
-
'addressFrom': addressFrom,
|
|
65013
|
-
'tag': undefined,
|
|
65014
|
-
'tagTo': undefined,
|
|
65015
|
-
'tagFrom': undefined,
|
|
65016
|
-
'status': status,
|
|
65017
|
-
'type': type,
|
|
65018
|
-
'updated': undefined,
|
|
65019
|
-
'txid': txid,
|
|
65020
|
-
'timestamp': timestamp,
|
|
65021
|
-
'datetime': this.iso8601(timestamp),
|
|
65022
|
-
'fee': {
|
|
65023
|
-
'currency': code,
|
|
65024
|
-
'cost': undefined,
|
|
65025
|
-
},
|
|
65026
|
-
'info': transaction,
|
|
65027
|
-
};
|
|
65028
|
-
}
|
|
65029
|
-
parseTransactionStatus(status) {
|
|
65030
|
-
const statuses = {
|
|
65031
|
-
'-1': 'failed',
|
|
65032
|
-
'0': 'ok',
|
|
65033
|
-
'3': 'pending',
|
|
65034
|
-
'5': 'pending',
|
|
65035
|
-
};
|
|
65036
|
-
return this.safeString(statuses, status, status);
|
|
65037
|
-
}
|
|
65038
|
-
async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
65039
|
-
/**
|
|
65040
|
-
* @method
|
|
65041
|
-
* @name bkex#createOrder
|
|
65042
|
-
* @description create a trade order
|
|
65043
|
-
* @param {string} symbol unified symbol of the market to create an order in
|
|
65044
|
-
* @param {string} type 'market' or 'limit'
|
|
65045
|
-
* @param {string} side 'buy' or 'sell'
|
|
65046
|
-
* @param {float} amount how much of currency you want to trade in units of base currency
|
|
65047
|
-
* @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
|
65048
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65049
|
-
* @returns {object} an [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
65050
|
-
*/
|
|
65051
|
-
await this.loadMarkets();
|
|
65052
|
-
const market = this.market(symbol);
|
|
65053
|
-
const direction = (side === 'buy') ? 'BID' : 'ASK';
|
|
65054
|
-
const request = {
|
|
65055
|
-
'symbol': market['id'],
|
|
65056
|
-
'type': type.toUpperCase(),
|
|
65057
|
-
'volume': this.amountToPrecision(symbol, amount),
|
|
65058
|
-
'direction': direction,
|
|
65059
|
-
};
|
|
65060
|
-
if ((type !== 'market') && (price !== undefined)) {
|
|
65061
|
-
request['price'] = this.priceToPrecision(symbol, price);
|
|
65062
|
-
}
|
|
65063
|
-
const response = await this.privateSpotPostUOrderCreate(this.extend(request, params));
|
|
65064
|
-
//
|
|
65065
|
-
// {
|
|
65066
|
-
// "code": "0",
|
|
65067
|
-
// "data": "2022030302410146630023187",
|
|
65068
|
-
// "msg": "Create Order Successfully",
|
|
65069
|
-
// "status": 0
|
|
65070
|
-
// }
|
|
65071
|
-
//
|
|
65072
|
-
return this.parseOrder(response, market);
|
|
65073
|
-
}
|
|
65074
|
-
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
65075
|
-
/**
|
|
65076
|
-
* @method
|
|
65077
|
-
* @name bkex#cancelOrder
|
|
65078
|
-
* @description cancels an open order
|
|
65079
|
-
* @param {string} id order id
|
|
65080
|
-
* @param {string} symbol unified symbol of the market the order was made in
|
|
65081
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65082
|
-
* @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
65083
|
-
*/
|
|
65084
|
-
await this.loadMarkets();
|
|
65085
|
-
const market = (symbol !== undefined) ? this.market(symbol) : undefined;
|
|
65086
|
-
const request = {
|
|
65087
|
-
'orderId': id,
|
|
65088
|
-
};
|
|
65089
|
-
const response = await this.privateSpotPostUOrderCancel(this.extend(request, params));
|
|
65090
|
-
//
|
|
65091
|
-
// {
|
|
65092
|
-
// "code": "0",
|
|
65093
|
-
// "data": "2022030303032700030025325",
|
|
65094
|
-
// "status": 0
|
|
65095
|
-
// }
|
|
65096
|
-
//
|
|
65097
|
-
return this.parseOrder(response, market);
|
|
65098
|
-
}
|
|
65099
|
-
async cancelOrders(ids, symbol = undefined, params = {}) {
|
|
65100
|
-
/**
|
|
65101
|
-
* @method
|
|
65102
|
-
* @name bkex#cancelOrders
|
|
65103
|
-
* @description cancel multiple orders
|
|
65104
|
-
* @param {string[]} ids order ids
|
|
65105
|
-
* @param {string} symbol unified market symbol, default is undefined
|
|
65106
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65107
|
-
* @returns {object} an list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
65108
|
-
*/
|
|
65109
|
-
if (!Array.isArray(ids)) {
|
|
65110
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' cancelOrders() ids argument should be an array');
|
|
65111
|
-
}
|
|
65112
|
-
await this.loadMarkets();
|
|
65113
|
-
const request = {
|
|
65114
|
-
'orders': this.json(ids),
|
|
65115
|
-
};
|
|
65116
|
-
const response = await this.privateSpotPostUOrderBatchCancel(this.extend(request, params));
|
|
65117
|
-
// {
|
|
65118
|
-
// "code": 0,
|
|
65119
|
-
// "msg": "success",
|
|
65120
|
-
// "data": {
|
|
65121
|
-
// "success": 2,
|
|
65122
|
-
// "fail": 0,
|
|
65123
|
-
// "results": ["2019062312313131231"," 2019063123131312313"]
|
|
65124
|
-
// }
|
|
65125
|
-
// }
|
|
65126
|
-
const data = this.safeValue(response, 'data');
|
|
65127
|
-
const results = this.safeValue(data, 'results');
|
|
65128
|
-
const market = (symbol !== undefined) ? this.market(symbol) : undefined;
|
|
65129
|
-
return this.parseOrders(results, market, undefined, undefined, params);
|
|
65130
|
-
}
|
|
65131
|
-
async fetchOpenOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
65132
|
-
/**
|
|
65133
|
-
* @method
|
|
65134
|
-
* @name bkex#fetchOpenOrders
|
|
65135
|
-
* @description fetch all unfilled currently open orders
|
|
65136
|
-
* @param {string} symbol unified market symbol
|
|
65137
|
-
* @param {int} [since] the earliest time in ms to fetch open orders for
|
|
65138
|
-
* @param {int} [limit] the maximum number of open orders structures to retrieve
|
|
65139
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65140
|
-
* @returns {Order[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
65141
|
-
*/
|
|
65142
|
-
if (symbol === undefined) {
|
|
65143
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchOpenOrders() requires a symbol argument');
|
|
65144
|
-
}
|
|
65145
|
-
await this.loadMarkets();
|
|
65146
|
-
const market = this.market(symbol);
|
|
65147
|
-
const request = {
|
|
65148
|
-
'symbol': market['id'],
|
|
65149
|
-
};
|
|
65150
|
-
if (limit !== undefined) {
|
|
65151
|
-
request['size'] = limit; // Todo: id api-docs, 'size' is incorrectly required to be in Uppercase
|
|
65152
|
-
}
|
|
65153
|
-
const response = await this.privateSpotGetUOrderOpenOrders(this.extend(request, params));
|
|
65154
|
-
//
|
|
65155
|
-
// {
|
|
65156
|
-
// "code": "0",
|
|
65157
|
-
// "data": {
|
|
65158
|
-
// "data": [
|
|
65159
|
-
// {
|
|
65160
|
-
// "createdTime": "1646248301418",
|
|
65161
|
-
// "dealVolume": "0E-18",
|
|
65162
|
-
// "direction": "BID",
|
|
65163
|
-
// "frozenVolumeByOrder": "2.421300000000000000",
|
|
65164
|
-
// "id": "2022030303114141830007699",
|
|
65165
|
-
// "price": "0.150000000000000000",
|
|
65166
|
-
// "source": "WALLET",
|
|
65167
|
-
// "status": "0",
|
|
65168
|
-
// "symbol": "BKK_USDT",
|
|
65169
|
-
// "totalVolume": "16.142000000000000000",
|
|
65170
|
-
// "type": "LIMIT"
|
|
65171
|
-
// }
|
|
65172
|
-
// ],
|
|
65173
|
-
// "pageRequest": {
|
|
65174
|
-
// "asc": false,
|
|
65175
|
-
// "orderBy": "id",
|
|
65176
|
-
// "page": "1",
|
|
65177
|
-
// "size": 10
|
|
65178
|
-
// },
|
|
65179
|
-
// "total": 1
|
|
65180
|
-
// },
|
|
65181
|
-
// "msg": "success",
|
|
65182
|
-
// "status": 0
|
|
65183
|
-
// }
|
|
65184
|
-
//
|
|
65185
|
-
const result = this.safeValue(response, 'data');
|
|
65186
|
-
const innerData = this.safeValue(result, 'data');
|
|
65187
|
-
return this.parseOrders(innerData, market, since, limit, params);
|
|
65188
|
-
}
|
|
65189
|
-
async fetchOpenOrder(id, symbol = undefined, params = {}) {
|
|
65190
|
-
/**
|
|
65191
|
-
* @method
|
|
65192
|
-
* @name bkex#fetchOpenOrder
|
|
65193
|
-
* @description fetch an open order by it's id
|
|
65194
|
-
* @param {string} id order id
|
|
65195
|
-
* @param {string} symbol unified market symbol, default is undefined
|
|
65196
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65197
|
-
* @returns {object} an [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
65198
|
-
*/
|
|
65199
|
-
const request = {
|
|
65200
|
-
'orderId': id,
|
|
65201
|
-
};
|
|
65202
|
-
const response = await this.privateSpotGetUOrderOpenOrderDetail(this.extend(request, params));
|
|
65203
|
-
//
|
|
65204
|
-
// {
|
|
65205
|
-
// "code": "0",
|
|
65206
|
-
// "data": {
|
|
65207
|
-
// "createdTime": "1646248301418",
|
|
65208
|
-
// "dealAvgPrice": "0",
|
|
65209
|
-
// "dealVolume": "0E-18",
|
|
65210
|
-
// "direction": "BID",
|
|
65211
|
-
// "frozenVolumeByOrder": "2.421300000000000000",
|
|
65212
|
-
// "id": "2022030303114141830002452",
|
|
65213
|
-
// "price": "0.150000000000000000",
|
|
65214
|
-
// "source": "WALLET",
|
|
65215
|
-
// "status": "0",
|
|
65216
|
-
// "symbol": "BKK_USDT",
|
|
65217
|
-
// "totalVolume": "16.142000000000000000",
|
|
65218
|
-
// "type": "LIMIT",
|
|
65219
|
-
// "updateTime": 1646248301418
|
|
65220
|
-
// },
|
|
65221
|
-
// "msg": "success",
|
|
65222
|
-
// "status": 0
|
|
65223
|
-
// }
|
|
65224
|
-
//
|
|
65225
|
-
const data = this.safeValue(response, 'data');
|
|
65226
|
-
const market = (symbol !== undefined) ? this.market(symbol) : undefined;
|
|
65227
|
-
return this.parseOrder(data, market);
|
|
65228
|
-
}
|
|
65229
|
-
async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
65230
|
-
/**
|
|
65231
|
-
* @method
|
|
65232
|
-
* @name bkex#fetchClosedOrders
|
|
65233
|
-
* @description fetches information on multiple closed orders made by the user
|
|
65234
|
-
* @param {string} symbol unified market symbol of the market orders were made in
|
|
65235
|
-
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
65236
|
-
* @param {int} [limit] the maximum number of orde structures to retrieve
|
|
65237
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65238
|
-
* @returns {Order[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
65239
|
-
*/
|
|
65240
|
-
if (symbol === undefined) {
|
|
65241
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchClosedOrders() requires a symbol argument');
|
|
65242
|
-
}
|
|
65243
|
-
await this.loadMarkets();
|
|
65244
|
-
const market = this.market(symbol);
|
|
65245
|
-
const request = {
|
|
65246
|
-
'symbol': market['id'],
|
|
65247
|
-
};
|
|
65248
|
-
if (limit !== undefined) {
|
|
65249
|
-
request['size'] = limit; // Todo: id api-docs, 'size' is incorrectly required to be in Uppercase
|
|
65250
|
-
}
|
|
65251
|
-
if (since !== undefined) {
|
|
65252
|
-
request['startTime'] = since;
|
|
65253
|
-
}
|
|
65254
|
-
const response = await this.privateSpotGetUOrderHistoryOrders(this.extend(request, params));
|
|
65255
|
-
//
|
|
65256
|
-
// {
|
|
65257
|
-
// "code": "0",
|
|
65258
|
-
// "data": {
|
|
65259
|
-
// "data": [
|
|
65260
|
-
// {
|
|
65261
|
-
// "createdTime": "1646247807000",
|
|
65262
|
-
// "dealAvgPrice": "0",
|
|
65263
|
-
// "dealVolume": "0",
|
|
65264
|
-
// "direction": "BID",
|
|
65265
|
-
// "frozenVolumeByOrder": "1.65",
|
|
65266
|
-
// "id": "2022030303032700030025943",
|
|
65267
|
-
// "price": "0.15",
|
|
65268
|
-
// "source": "WALLET",
|
|
65269
|
-
// "status": "2",
|
|
65270
|
-
// "symbol": "BKK_USDT",
|
|
65271
|
-
// "totalVolume": "11",
|
|
65272
|
-
// "type": "LIMIT",
|
|
65273
|
-
// "updateTime": 1646247852558
|
|
65274
|
-
// },
|
|
65275
|
-
// ],
|
|
65276
|
-
// "pageRequest": {
|
|
65277
|
-
// "asc": false,
|
|
65278
|
-
// "orderBy": "id",
|
|
65279
|
-
// "page": "1",
|
|
65280
|
-
// "size": 10
|
|
65281
|
-
// },
|
|
65282
|
-
// "total": 6
|
|
65283
|
-
// },
|
|
65284
|
-
// "msg": "success",
|
|
65285
|
-
// "status": 0
|
|
65286
|
-
// }
|
|
65287
|
-
//
|
|
65288
|
-
const result = this.safeValue(response, 'data');
|
|
65289
|
-
const innerData = this.safeValue(result, 'data');
|
|
65290
|
-
return this.parseOrders(innerData, market, since, limit, params);
|
|
65291
|
-
}
|
|
65292
|
-
parseOrder(order, market = undefined) {
|
|
65293
|
-
//
|
|
65294
|
-
// fetchOpenOrders
|
|
65295
|
-
//
|
|
65296
|
-
// {
|
|
65297
|
-
// "createdTime": "1646248301418",
|
|
65298
|
-
// "dealVolume": "0E-18",
|
|
65299
|
-
// "direction": "BID",
|
|
65300
|
-
// "frozenVolumeByOrder": "2.421300000000000000",
|
|
65301
|
-
// "id": "2022030303114141830007699",
|
|
65302
|
-
// "price": "0.150000000000000000",
|
|
65303
|
-
// "source": "WALLET",
|
|
65304
|
-
// "status": "0",
|
|
65305
|
-
// "symbol": "BKK_USDT",
|
|
65306
|
-
// "totalVolume": "16.142000000000000000",
|
|
65307
|
-
// "type": "LIMIT"
|
|
65308
|
-
// "stopPrice": "0.14", // present only for 'stop' order types
|
|
65309
|
-
// "operator": ">=" // present only for 'stop' order types
|
|
65310
|
-
// "dealAvgPrice": "0", // only present in 'fetchOrder' & 'fetchClosedOrders'
|
|
65311
|
-
// "updateTime": 1646248301418 // only present in 'fetchOrder' & 'fetchClosedOrders'
|
|
65312
|
-
// }
|
|
65313
|
-
//
|
|
65314
|
-
const timestamp = this.safeInteger(order, 'createdTime');
|
|
65315
|
-
const updateTime = this.safeInteger(order, 'updateTime');
|
|
65316
|
-
const filled = this.safeString(order, 'dealVolume');
|
|
65317
|
-
const side = this.parseOrderSide(this.safeString(order, 'direction'));
|
|
65318
|
-
const id = this.safeString2(order, 'id', 'data');
|
|
65319
|
-
const price = this.safeString(order, 'price');
|
|
65320
|
-
const rawStatus = this.safeString(order, 'status');
|
|
65321
|
-
const rawType = this.safeString(order, 'type');
|
|
65322
|
-
const type = this.parseOrderType(rawType);
|
|
65323
|
-
let postOnly = false;
|
|
65324
|
-
if (rawType === 'LIMIT_MAKER') {
|
|
65325
|
-
postOnly = true;
|
|
65326
|
-
}
|
|
65327
|
-
let status = undefined;
|
|
65328
|
-
if (timestamp !== undefined) {
|
|
65329
|
-
// cancelOrder handling
|
|
65330
|
-
status = this.parseOrderStatus(rawStatus);
|
|
65331
|
-
}
|
|
65332
|
-
const marketId = this.safeString(order, 'symbol');
|
|
65333
|
-
market = this.safeMarket(marketId, market);
|
|
65334
|
-
const amount = this.safeString(order, 'totalVolume');
|
|
65335
|
-
const stopPrice = this.safeNumber(order, 'stopPrice');
|
|
65336
|
-
const average = this.safeString(order, 'dealAvgPrice');
|
|
65337
|
-
return this.safeOrder({
|
|
65338
|
-
'id': id,
|
|
65339
|
-
'clientOrderId': undefined,
|
|
65340
|
-
'timestamp': timestamp,
|
|
65341
|
-
'datetime': this.iso8601(timestamp),
|
|
65342
|
-
'lastTradeTimestamp': updateTime,
|
|
65343
|
-
'status': status,
|
|
65344
|
-
'symbol': market['symbol'],
|
|
65345
|
-
'type': type,
|
|
65346
|
-
'timeInForce': undefined,
|
|
65347
|
-
'postOnly': postOnly,
|
|
65348
|
-
'side': side,
|
|
65349
|
-
'price': price,
|
|
65350
|
-
'stopPrice': stopPrice,
|
|
65351
|
-
'triggerPrice': stopPrice,
|
|
65352
|
-
'average': average,
|
|
65353
|
-
'amount': amount,
|
|
65354
|
-
'filled': filled,
|
|
65355
|
-
'remaining': undefined,
|
|
65356
|
-
'cost': undefined,
|
|
65357
|
-
'trades': undefined,
|
|
65358
|
-
'fee': undefined,
|
|
65359
|
-
'info': order,
|
|
65360
|
-
}, market);
|
|
65361
|
-
}
|
|
65362
|
-
parseOrderSide(side) {
|
|
65363
|
-
const sides = {
|
|
65364
|
-
'BID': 'buy',
|
|
65365
|
-
'ASK': 'sell',
|
|
65366
|
-
};
|
|
65367
|
-
return this.safeString(sides, side, side);
|
|
65368
|
-
}
|
|
65369
|
-
parseOrderStatus(status) {
|
|
65370
|
-
const statuses = {
|
|
65371
|
-
'0': 'open',
|
|
65372
|
-
'1': 'closed',
|
|
65373
|
-
'2': 'canceled',
|
|
65374
|
-
'3': 'open',
|
|
65375
|
-
};
|
|
65376
|
-
return this.safeString(statuses, status, status);
|
|
65377
|
-
}
|
|
65378
|
-
parseOrderType(status) {
|
|
65379
|
-
const statuses = {
|
|
65380
|
-
'MARKET': 'market',
|
|
65381
|
-
'LIMIT': 'limit',
|
|
65382
|
-
'LIMIT_MAKER': 'limit',
|
|
65383
|
-
'STOP_LIMIT': 'limit',
|
|
65384
|
-
};
|
|
65385
|
-
return this.safeString(statuses, status, status);
|
|
65386
|
-
}
|
|
65387
|
-
async fetchTransactionFees(codes = undefined, params = {}) {
|
|
65388
|
-
/**
|
|
65389
|
-
* @method
|
|
65390
|
-
* @name bkex#fetchTransactionFees
|
|
65391
|
-
* @deprecated
|
|
65392
|
-
* @description please use fetchDepositWithdrawFees instead
|
|
65393
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#basicInformation-2
|
|
65394
|
-
* @param {string[]|undefined} codes list of unified currency codes
|
|
65395
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65396
|
-
* @returns {object} a list of [fee structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#fee-structure}
|
|
65397
|
-
*/
|
|
65398
|
-
await this.loadMarkets();
|
|
65399
|
-
const response = await this.publicSpotGetCommonCurrencys(params);
|
|
65400
|
-
//
|
|
65401
|
-
// {
|
|
65402
|
-
// "msg": "success",
|
|
65403
|
-
// "code": "0",
|
|
65404
|
-
// "data": [
|
|
65405
|
-
// {
|
|
65406
|
-
// "currency": "ETH",
|
|
65407
|
-
// "maxWithdrawOneDay": 2000,
|
|
65408
|
-
// "maxWithdrawSingle": 2000,
|
|
65409
|
-
// "minWithdrawSingle": 0.1,
|
|
65410
|
-
// "supportDeposit": true,
|
|
65411
|
-
// "supportTrade": true,
|
|
65412
|
-
// "supportWithdraw": true,
|
|
65413
|
-
// "withdrawFee": 0.008
|
|
65414
|
-
// },
|
|
65415
|
-
// {
|
|
65416
|
-
// "currency": "BTC",
|
|
65417
|
-
// "maxWithdrawOneDay": 100,
|
|
65418
|
-
// "maxWithdrawSingle": 100,
|
|
65419
|
-
// "minWithdrawSingle": 0.01,
|
|
65420
|
-
// "supportDeposit": true,
|
|
65421
|
-
// "supportTrade": true,
|
|
65422
|
-
// "supportWithdraw": true,
|
|
65423
|
-
// "withdrawFee": 0.008
|
|
65424
|
-
// }
|
|
65425
|
-
// ]
|
|
65426
|
-
// }
|
|
65427
|
-
//
|
|
65428
|
-
return this.parseTransactionFees(response, codes);
|
|
65429
|
-
}
|
|
65430
|
-
parseTransactionFees(response, codes = undefined) {
|
|
65431
|
-
const data = this.safeValue(response, 'data');
|
|
65432
|
-
const result = {};
|
|
65433
|
-
for (let i = 0; i < data.length; i++) {
|
|
65434
|
-
const entry = data[i];
|
|
65435
|
-
const currencyId = this.safeString(entry, 'currency');
|
|
65436
|
-
const currency = this.safeCurrency(currencyId);
|
|
65437
|
-
const code = this.safeString(currency, 'code');
|
|
65438
|
-
if ((codes === undefined) || (this.inArray(code, codes))) {
|
|
65439
|
-
result[code] = {
|
|
65440
|
-
'withdraw': this.parseTransactionFee(entry),
|
|
65441
|
-
'deposit': undefined,
|
|
65442
|
-
'info': entry,
|
|
65443
|
-
};
|
|
65444
|
-
}
|
|
65445
|
-
}
|
|
65446
|
-
return result;
|
|
65447
|
-
}
|
|
65448
|
-
parseTransactionFee(transaction, currency = undefined) {
|
|
65449
|
-
//
|
|
65450
|
-
// {
|
|
65451
|
-
// "currency": "ETH",
|
|
65452
|
-
// "maxWithdrawOneDay": 2000,
|
|
65453
|
-
// "maxWithdrawSingle": 2000,
|
|
65454
|
-
// "minWithdrawSingle": 0.1,
|
|
65455
|
-
// "supportDeposit": true,
|
|
65456
|
-
// "supportTrade": true,
|
|
65457
|
-
// "supportWithdraw": true,
|
|
65458
|
-
// "withdrawFee": 0.008
|
|
65459
|
-
// }
|
|
65460
|
-
//
|
|
65461
|
-
return this.safeNumber(transaction, 'withdrawFee');
|
|
65462
|
-
}
|
|
65463
|
-
async fetchDepositWithdrawFees(codes = undefined, params = {}) {
|
|
65464
|
-
/**
|
|
65465
|
-
* @method
|
|
65466
|
-
* @name bkex#fetchDepositWithdrawFees
|
|
65467
|
-
* @description fetch deposit and withdraw fees
|
|
65468
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#basicInformation-2
|
|
65469
|
-
* @param {string[]|undefined} codes list of unified currency codes
|
|
65470
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65471
|
-
* @returns {object} a list of [fee structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#fee-structure}
|
|
65472
|
-
*/
|
|
65473
|
-
await this.loadMarkets();
|
|
65474
|
-
const response = await this.publicSpotGetCommonCurrencys(params);
|
|
65475
|
-
//
|
|
65476
|
-
// {
|
|
65477
|
-
// "msg": "success",
|
|
65478
|
-
// "code": "0",
|
|
65479
|
-
// "data": [
|
|
65480
|
-
// {
|
|
65481
|
-
// "currency": "ETH",
|
|
65482
|
-
// "maxWithdrawOneDay": 2000,
|
|
65483
|
-
// "maxWithdrawSingle": 2000,
|
|
65484
|
-
// "minWithdrawSingle": 0.1,
|
|
65485
|
-
// "supportDeposit": true,
|
|
65486
|
-
// "supportTrade": true,
|
|
65487
|
-
// "supportWithdraw": true,
|
|
65488
|
-
// "withdrawFee": 0.008
|
|
65489
|
-
// },
|
|
65490
|
-
// {
|
|
65491
|
-
// "currency": "BTC",
|
|
65492
|
-
// "maxWithdrawOneDay": 100,
|
|
65493
|
-
// "maxWithdrawSingle": 100,
|
|
65494
|
-
// "minWithdrawSingle": 0.01,
|
|
65495
|
-
// "supportDeposit": true,
|
|
65496
|
-
// "supportTrade": true,
|
|
65497
|
-
// "supportWithdraw": true,
|
|
65498
|
-
// "withdrawFee": 0.008
|
|
65499
|
-
// }
|
|
65500
|
-
// ]
|
|
65501
|
-
// }
|
|
65502
|
-
//
|
|
65503
|
-
const data = this.safeValue(response, 'data');
|
|
65504
|
-
return this.parseDepositWithdrawFees(data, codes, 'currency');
|
|
65505
|
-
}
|
|
65506
|
-
parseDepositWithdrawFee(fee, currency = undefined) {
|
|
65507
|
-
//
|
|
65508
|
-
// {
|
|
65509
|
-
// "currency": "ETH",
|
|
65510
|
-
// "maxWithdrawOneDay": 2000,
|
|
65511
|
-
// "maxWithdrawSingle": 2000,
|
|
65512
|
-
// "minWithdrawSingle": 0.1,
|
|
65513
|
-
// "supportDeposit": true,
|
|
65514
|
-
// "supportTrade": true,
|
|
65515
|
-
// "supportWithdraw": true,
|
|
65516
|
-
// "withdrawFee": 0.008
|
|
65517
|
-
// }
|
|
65518
|
-
//
|
|
65519
|
-
const result = this.depositWithdrawFee(fee);
|
|
65520
|
-
result['withdraw']['fee'] = this.safeNumber(fee, 'withdrawFee');
|
|
65521
|
-
return result;
|
|
65522
|
-
}
|
|
65523
|
-
async fetchFundingRateHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
65524
|
-
/**
|
|
65525
|
-
* @method
|
|
65526
|
-
* @name bkex#fetchFundingRateHistory
|
|
65527
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#contract-fundingRate
|
|
65528
|
-
* @description fetches historical funding rate prices
|
|
65529
|
-
* @param {string} symbol unified symbol of the market to fetch the funding rate history for
|
|
65530
|
-
* @param {int} [since] timestamp in ms of the earliest funding rate to fetch
|
|
65531
|
-
* @param {int} [limit] the maximum amount of [funding rate structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure} to fetch
|
|
65532
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65533
|
-
* @returns {object[]} a list of [funding rate structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#funding-rate-history-structure}
|
|
65534
|
-
*/
|
|
65535
|
-
if (symbol === undefined) {
|
|
65536
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchFundingRateHistory() requires a symbol argument');
|
|
65537
|
-
}
|
|
65538
|
-
await this.loadMarkets();
|
|
65539
|
-
const market = this.market(symbol);
|
|
65540
|
-
const request = {
|
|
65541
|
-
'symbol': market['id'],
|
|
65542
|
-
};
|
|
65543
|
-
const response = await this.publicSwapGetMarketFundingRate(this.extend(request, params));
|
|
65544
|
-
//
|
|
65545
|
-
// {
|
|
65546
|
-
// "code": 0,
|
|
65547
|
-
// "msg": "success",
|
|
65548
|
-
// "data": [
|
|
65549
|
-
// {
|
|
65550
|
-
// "symbol": "btc_usdt",
|
|
65551
|
-
// "rate": "-0.00008654",
|
|
65552
|
-
// "time": 1670658302128
|
|
65553
|
-
// },
|
|
65554
|
-
// ]
|
|
65555
|
-
// }
|
|
65556
|
-
//
|
|
65557
|
-
const data = this.safeValue(response, 'data', []);
|
|
65558
|
-
const rates = [];
|
|
65559
|
-
for (let i = 0; i < data.length; i++) {
|
|
65560
|
-
const entry = data[i];
|
|
65561
|
-
const marketId = this.safeString(entry, 'symbol');
|
|
65562
|
-
const symbolInner = this.safeSymbol(marketId);
|
|
65563
|
-
const timestamp = this.safeInteger(entry, 'time');
|
|
65564
|
-
rates.push({
|
|
65565
|
-
'info': entry,
|
|
65566
|
-
'symbol': symbolInner,
|
|
65567
|
-
'fundingRate': this.safeNumber(entry, 'rate'),
|
|
65568
|
-
'timestamp': timestamp,
|
|
65569
|
-
'datetime': this.iso8601(timestamp),
|
|
65570
|
-
});
|
|
65571
|
-
}
|
|
65572
|
-
const sorted = this.sortBy(rates, 'timestamp');
|
|
65573
|
-
return this.filterBySymbolSinceLimit(sorted, market['symbol'], since, limit);
|
|
65574
|
-
}
|
|
65575
|
-
async fetchMarketLeverageTiers(symbol, params = {}) {
|
|
65576
|
-
/**
|
|
65577
|
-
* @method
|
|
65578
|
-
* @name bkex#fetchMarketLeverageTiers
|
|
65579
|
-
* @see https://bkexapi.github.io/docs/api_en.htm?shell#contract-riskLimit
|
|
65580
|
-
* @description retrieve information on the maximum leverage, for different trade sizes for a single market
|
|
65581
|
-
* @param {string} symbol unified market symbol
|
|
65582
|
-
* @param {object} [params] extra parameters specific to the bkex api endpoint
|
|
65583
|
-
* @returns {object} a [leverage tiers structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#leverage-tiers-structure}
|
|
65584
|
-
*/
|
|
65585
|
-
await this.loadMarkets();
|
|
65586
|
-
const market = this.market(symbol);
|
|
65587
|
-
if (!market['swap']) {
|
|
65588
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' fetchMarketLeverageTiers() supports swap markets only');
|
|
65589
|
-
}
|
|
65590
|
-
const request = {
|
|
65591
|
-
'symbol': market['id'],
|
|
65592
|
-
};
|
|
65593
|
-
const response = await this.publicSwapGetMarketRiskLimit(this.extend(request, params));
|
|
65594
|
-
//
|
|
65595
|
-
// {
|
|
65596
|
-
// "code": 0,
|
|
65597
|
-
// "msg": "success",
|
|
65598
|
-
// "data": [
|
|
65599
|
-
// {
|
|
65600
|
-
// "symbol": "btc_usdt",
|
|
65601
|
-
// "minValue": "0",
|
|
65602
|
-
// "maxValue": "500000",
|
|
65603
|
-
// "maxLeverage": 100,
|
|
65604
|
-
// "maintenanceMarginRate": "0.005"
|
|
65605
|
-
// },
|
|
65606
|
-
// ]
|
|
65607
|
-
// }
|
|
65608
|
-
//
|
|
65609
|
-
const data = this.safeValue(response, 'data', []);
|
|
65610
|
-
return this.parseMarketLeverageTiers(data, market);
|
|
65611
|
-
}
|
|
65612
|
-
parseMarketLeverageTiers(info, market = undefined) {
|
|
65613
|
-
//
|
|
65614
|
-
// [
|
|
65615
|
-
// {
|
|
65616
|
-
// "symbol": "btc_usdt",
|
|
65617
|
-
// "minValue": "0",
|
|
65618
|
-
// "maxValue": "500000",
|
|
65619
|
-
// "maxLeverage": 100,
|
|
65620
|
-
// "maintenanceMarginRate": "0.005"
|
|
65621
|
-
// },
|
|
65622
|
-
// ]
|
|
65623
|
-
//
|
|
65624
|
-
const tiers = [];
|
|
65625
|
-
for (let i = 0; i < info.length; i++) {
|
|
65626
|
-
const tier = info[i];
|
|
65627
|
-
const marketId = this.safeString(info, 'symbol');
|
|
65628
|
-
market = this.safeMarket(marketId, market);
|
|
65629
|
-
tiers.push({
|
|
65630
|
-
'tier': this.sum(i, 1),
|
|
65631
|
-
'currency': market['settle'],
|
|
65632
|
-
'minNotional': this.safeNumber(tier, 'minValue'),
|
|
65633
|
-
'maxNotional': this.safeNumber(tier, 'maxValue'),
|
|
65634
|
-
'maintenanceMarginRate': this.safeNumber(tier, 'maintenanceMarginRate'),
|
|
65635
|
-
'maxLeverage': this.safeNumber(tier, 'maxLeverage'),
|
|
65636
|
-
'info': tier,
|
|
65637
|
-
});
|
|
65638
|
-
}
|
|
65639
|
-
return tiers;
|
|
65640
|
-
}
|
|
65641
|
-
sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
65642
|
-
const signed = api[0] === 'private';
|
|
65643
|
-
const endpoint = api[1];
|
|
65644
|
-
const pathPart = (endpoint === 'spot') ? this.version : 'fapi/' + this.version;
|
|
65645
|
-
let url = this.urls['api'][endpoint] + '/' + pathPart + this.implodeParams(path, params);
|
|
65646
|
-
params = this.omit(params, this.extractParams(path));
|
|
65647
|
-
let paramsSortedEncoded = '';
|
|
65648
|
-
if (Object.keys(params).length) {
|
|
65649
|
-
paramsSortedEncoded = this.rawencode(this.keysort(params));
|
|
65650
|
-
if (method === 'GET') {
|
|
65651
|
-
url += '?' + paramsSortedEncoded;
|
|
65652
|
-
}
|
|
65653
|
-
}
|
|
65654
|
-
if (signed) {
|
|
65655
|
-
this.checkRequiredCredentials();
|
|
65656
|
-
const signature = this.hmac(this.encode(paramsSortedEncoded), this.encode(this.secret), _static_dependencies_noble_hashes_sha256_js__WEBPACK_IMPORTED_MODULE_3__/* .sha256 */ .J);
|
|
65657
|
-
headers = {
|
|
65658
|
-
'Cache-Control': 'no-cache',
|
|
65659
|
-
'Content-type': 'application/x-www-form-urlencoded',
|
|
65660
|
-
'X_ACCESS_KEY': this.apiKey,
|
|
65661
|
-
'X_SIGNATURE': signature,
|
|
65662
|
-
};
|
|
65663
|
-
if (method !== 'GET') {
|
|
65664
|
-
body = paramsSortedEncoded;
|
|
65665
|
-
}
|
|
65666
|
-
}
|
|
65667
|
-
return { 'url': url, 'method': method, 'body': body, 'headers': headers };
|
|
65668
|
-
}
|
|
65669
|
-
handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
|
|
65670
|
-
if (response === undefined) {
|
|
65671
|
-
return undefined;
|
|
65672
|
-
}
|
|
65673
|
-
//
|
|
65674
|
-
// success
|
|
65675
|
-
//
|
|
65676
|
-
// {
|
|
65677
|
-
// "code": "0",
|
|
65678
|
-
// "msg": "success",
|
|
65679
|
-
// "status": 0,
|
|
65680
|
-
// "data": [...],
|
|
65681
|
-
// }
|
|
65682
|
-
//
|
|
65683
|
-
//
|
|
65684
|
-
// action error
|
|
65685
|
-
//
|
|
65686
|
-
// {
|
|
65687
|
-
// "code":1005,
|
|
65688
|
-
// "msg":"BKK:Not Enough balance",
|
|
65689
|
-
// "status":0
|
|
65690
|
-
// }
|
|
65691
|
-
//
|
|
65692
|
-
//
|
|
65693
|
-
// HTTP error
|
|
65694
|
-
//
|
|
65695
|
-
// {
|
|
65696
|
-
// "timestamp": "1646041085490",
|
|
65697
|
-
// "status": "403",
|
|
65698
|
-
// "error": "Forbidden",
|
|
65699
|
-
// "message": "签名错误",
|
|
65700
|
-
// "path": "/whatever/incorrect/path"
|
|
65701
|
-
// }
|
|
65702
|
-
//
|
|
65703
|
-
const message = this.safeValue(response, 'msg');
|
|
65704
|
-
if (message === 'success') {
|
|
65705
|
-
return undefined;
|
|
65706
|
-
}
|
|
65707
|
-
const responseCode = this.safeString(response, 'code');
|
|
65708
|
-
if (responseCode !== '0') {
|
|
65709
|
-
const feedback = this.id + ' ' + body;
|
|
65710
|
-
this.throwExactlyMatchedException(this.exceptions['exact'], responseCode, feedback);
|
|
65711
|
-
this.throwBroadlyMatchedException(this.exceptions['broad'], body, feedback);
|
|
65712
|
-
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(feedback);
|
|
65713
|
-
}
|
|
65714
|
-
return undefined;
|
|
65715
|
-
}
|
|
65716
|
-
}
|
|
65717
|
-
|
|
65718
|
-
|
|
65719
63942
|
/***/ }),
|
|
65720
63943
|
|
|
65721
63944
|
/***/ 9476:
|
|
@@ -65759,6 +63982,9 @@ class bl3p extends _abstract_bl3p_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
65759
63982
|
'cancelOrder': true,
|
|
65760
63983
|
'createOrder': true,
|
|
65761
63984
|
'createReduceOnlyOrder': false,
|
|
63985
|
+
'createStopLimitOrder': false,
|
|
63986
|
+
'createStopMarketOrder': false,
|
|
63987
|
+
'createStopOrder': false,
|
|
65762
63988
|
'fetchBalance': true,
|
|
65763
63989
|
'fetchBorrowRate': false,
|
|
65764
63990
|
'fetchBorrowRateHistories': false,
|
|
@@ -65968,6 +64194,16 @@ class bl3p extends _abstract_bl3p_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
65968
64194
|
return this.parseTicker(ticker, market);
|
|
65969
64195
|
}
|
|
65970
64196
|
parseTrade(trade, market = undefined) {
|
|
64197
|
+
//
|
|
64198
|
+
// fetchTrades
|
|
64199
|
+
//
|
|
64200
|
+
// {
|
|
64201
|
+
// "trade_id": "2518789",
|
|
64202
|
+
// "date": "1694348697745",
|
|
64203
|
+
// "amount_int": "2959153",
|
|
64204
|
+
// "price_int": "2416231440"
|
|
64205
|
+
// }
|
|
64206
|
+
//
|
|
65971
64207
|
const id = this.safeString(trade, 'trade_id');
|
|
65972
64208
|
const timestamp = this.safeInteger(trade, 'date');
|
|
65973
64209
|
const price = this.safeString(trade, 'price_int');
|
|
@@ -66004,6 +64240,20 @@ class bl3p extends _abstract_bl3p_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
66004
64240
|
const response = await this.publicGetMarketTrades(this.extend({
|
|
66005
64241
|
'market': market['id'],
|
|
66006
64242
|
}, params));
|
|
64243
|
+
//
|
|
64244
|
+
// {
|
|
64245
|
+
// "result": "success",
|
|
64246
|
+
// "data": {
|
|
64247
|
+
// "trades": [
|
|
64248
|
+
// {
|
|
64249
|
+
// "trade_id": "2518789",
|
|
64250
|
+
// "date": "1694348697745",
|
|
64251
|
+
// "amount_int": "2959153",
|
|
64252
|
+
// "price_int": "2416231440"
|
|
64253
|
+
// },
|
|
64254
|
+
// ]
|
|
64255
|
+
// }
|
|
64256
|
+
// }
|
|
66007
64257
|
const result = this.parseTrades(response['data']['trades'], market, since, limit);
|
|
66008
64258
|
return result;
|
|
66009
64259
|
}
|
|
@@ -66067,12 +64317,17 @@ class bl3p extends _abstract_bl3p_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
66067
64317
|
* @method
|
|
66068
64318
|
* @name bl3p#createOrder
|
|
66069
64319
|
* @description create a trade order
|
|
64320
|
+
* @see https://github.com/BitonicNL/bl3p-api/blob/master/examples/nodejs/example.md#21---create-an-order
|
|
66070
64321
|
* @param {string} symbol unified symbol of the market to create an order in
|
|
66071
64322
|
* @param {string} type 'market' or 'limit'
|
|
66072
64323
|
* @param {string} side 'buy' or 'sell'
|
|
66073
64324
|
* @param {float} amount how much of currency you want to trade in units of base currency
|
|
66074
64325
|
* @param {float} [price] the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
|
|
66075
64326
|
* @param {object} [params] extra parameters specific to the bl3p api endpoint
|
|
64327
|
+
*
|
|
64328
|
+
* EXCHANGE SPECIFIC PARAMETERS
|
|
64329
|
+
* @param {int} [params.amount_funds] maximal EUR amount to spend (*1e5)
|
|
64330
|
+
* @param {string} [params.fee_currency] 'EUR' or 'BTC'
|
|
66076
64331
|
* @returns {object} an [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
66077
64332
|
*/
|
|
66078
64333
|
const market = this.market(symbol);
|
|
@@ -72347,7 +70602,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
72347
70602
|
'110023': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidOrder,
|
|
72348
70603
|
'110024': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidOrder,
|
|
72349
70604
|
'110025': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidOrder,
|
|
72350
|
-
'110026': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.
|
|
70605
|
+
'110026': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest,
|
|
72351
70606
|
'110027': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidOrder,
|
|
72352
70607
|
'110028': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidOrder,
|
|
72353
70608
|
'110029': _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.InvalidOrder,
|
|
@@ -74022,20 +72277,14 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
74022
72277
|
request['limit'] = limit; // max 1000, default 1000
|
|
74023
72278
|
}
|
|
74024
72279
|
request['interval'] = this.safeString(this.timeframes, timeframe, timeframe);
|
|
74025
|
-
let
|
|
72280
|
+
let response = undefined;
|
|
74026
72281
|
if (market['spot']) {
|
|
74027
72282
|
request['category'] = 'spot';
|
|
74028
|
-
|
|
72283
|
+
response = await this.publicGetV5MarketKline(this.extend(request, params));
|
|
74029
72284
|
}
|
|
74030
72285
|
else {
|
|
74031
72286
|
const price = this.safeString(params, 'price');
|
|
74032
72287
|
params = this.omit(params, 'price');
|
|
74033
|
-
const methods = {
|
|
74034
|
-
'mark': 'publicGetV5MarketMarkPriceKline',
|
|
74035
|
-
'index': 'publicGetV5MarketIndexPriceKline',
|
|
74036
|
-
'premiumIndex': 'publicGetV5MarketPremiumIndexPriceKline',
|
|
74037
|
-
};
|
|
74038
|
-
method = this.safeValue(methods, price, 'publicGetV5MarketKline');
|
|
74039
72288
|
if (market['linear']) {
|
|
74040
72289
|
request['category'] = 'linear';
|
|
74041
72290
|
}
|
|
@@ -74045,8 +72294,19 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
74045
72294
|
else {
|
|
74046
72295
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' fetchOHLCV() is not supported for option markets');
|
|
74047
72296
|
}
|
|
72297
|
+
if (price === 'mark') {
|
|
72298
|
+
response = await this.publicGetV5MarketMarkPriceKline(this.extend(request, params));
|
|
72299
|
+
}
|
|
72300
|
+
else if (price === 'index') {
|
|
72301
|
+
response = await this.publicGetV5MarketIndexPriceKline(this.extend(request, params));
|
|
72302
|
+
}
|
|
72303
|
+
else if (price === 'premiumIndex') {
|
|
72304
|
+
response = await this.publicGetV5MarketPremiumIndexPriceKline(this.extend(request, params));
|
|
72305
|
+
}
|
|
72306
|
+
else {
|
|
72307
|
+
response = await this.publicGetV5MarketKline(this.extend(request, params));
|
|
72308
|
+
}
|
|
74048
72309
|
}
|
|
74049
|
-
const response = await this[method](this.extend(request, params));
|
|
74050
72310
|
//
|
|
74051
72311
|
// {
|
|
74052
72312
|
// "retCode": 0,
|
|
@@ -75219,6 +73479,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75219
73479
|
* @param {boolean} [params.isLeverage] *unified spot only* false then spot trading true then margin trading
|
|
75220
73480
|
* @param {string} [params.tpslMode] *contract only* 'full' or 'partial'
|
|
75221
73481
|
* @param {string} [params.mmp] *option only* market maker protection
|
|
73482
|
+
* @param {int} [params.triggerDirection] *contract only* conditional orders, 1: triggered when market price rises to triggerPrice, 2: triggered when market price falls to triggerPrice
|
|
75222
73483
|
* @returns {object} an [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
|
|
75223
73484
|
*/
|
|
75224
73485
|
await this.loadMarkets();
|
|
@@ -75326,7 +73587,6 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75326
73587
|
const isBuy = side === 'buy';
|
|
75327
73588
|
const ascending = stopLossTriggerPrice ? !isBuy : isBuy;
|
|
75328
73589
|
if (triggerPrice !== undefined) {
|
|
75329
|
-
request['triggerDirection'] = ascending ? 2 : 1;
|
|
75330
73590
|
request['triggerPrice'] = this.priceToPrecision(symbol, triggerPrice);
|
|
75331
73591
|
}
|
|
75332
73592
|
else if (isStopLossTriggerOrder || isTakeProfitTriggerOrder) {
|
|
@@ -75337,12 +73597,12 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75337
73597
|
}
|
|
75338
73598
|
else if (isStopLoss || isTakeProfit) {
|
|
75339
73599
|
if (isStopLoss) {
|
|
75340
|
-
const
|
|
75341
|
-
request['stopLoss'] = this.priceToPrecision(symbol,
|
|
73600
|
+
const slTriggerPrice = this.safeValue2(stopLoss, 'triggerPrice', 'stopPrice', stopLoss);
|
|
73601
|
+
request['stopLoss'] = this.priceToPrecision(symbol, slTriggerPrice);
|
|
75342
73602
|
}
|
|
75343
73603
|
if (isTakeProfit) {
|
|
75344
|
-
const
|
|
75345
|
-
request['takeProfit'] = this.priceToPrecision(symbol,
|
|
73604
|
+
const tpTriggerPrice = this.safeValue2(takeProfit, 'triggerPrice', 'stopPrice', takeProfit);
|
|
73605
|
+
request['takeProfit'] = this.priceToPrecision(symbol, tpTriggerPrice);
|
|
75346
73606
|
}
|
|
75347
73607
|
}
|
|
75348
73608
|
if (market['spot']) {
|
|
@@ -75451,12 +73711,12 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75451
73711
|
}
|
|
75452
73712
|
else if (isStopLoss || isTakeProfit) {
|
|
75453
73713
|
if (isStopLoss) {
|
|
75454
|
-
const
|
|
75455
|
-
request['stopLoss'] = this.priceToPrecision(symbol,
|
|
73714
|
+
const slTriggerPrice = this.safeValue2(stopLoss, 'triggerPrice', 'stopPrice', stopLoss);
|
|
73715
|
+
request['stopLoss'] = this.priceToPrecision(symbol, slTriggerPrice);
|
|
75456
73716
|
}
|
|
75457
73717
|
if (isTakeProfit) {
|
|
75458
|
-
const
|
|
75459
|
-
request['takeProfit'] = this.priceToPrecision(symbol,
|
|
73718
|
+
const tpTriggerPrice = this.safeValue2(takeProfit, 'triggerPrice', 'stopPrice', takeProfit);
|
|
73719
|
+
request['takeProfit'] = this.priceToPrecision(symbol, tpTriggerPrice);
|
|
75460
73720
|
}
|
|
75461
73721
|
}
|
|
75462
73722
|
else {
|
|
@@ -75472,8 +73732,13 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75472
73732
|
request['orderLinkId'] = this.uuid16();
|
|
75473
73733
|
}
|
|
75474
73734
|
params = this.omit(params, ['stopPrice', 'timeInForce', 'triggerPrice', 'stopLossPrice', 'takeProfitPrice', 'postOnly', 'clientOrderId']);
|
|
75475
|
-
|
|
75476
|
-
|
|
73735
|
+
let response = undefined;
|
|
73736
|
+
if (market['option']) {
|
|
73737
|
+
response = await this.privatePostOptionUsdcOpenapiPrivateV1PlaceOrder(this.extend(request, params));
|
|
73738
|
+
}
|
|
73739
|
+
else {
|
|
73740
|
+
response = await this.privatePostPerpetualUsdcOpenapiPrivateV1PlaceOrder(this.extend(request, params));
|
|
73741
|
+
}
|
|
75477
73742
|
//
|
|
75478
73743
|
// {
|
|
75479
73744
|
// "retCode":0,
|
|
@@ -75515,12 +73780,11 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75515
73780
|
if (price !== undefined) {
|
|
75516
73781
|
request['orderPrice'] = this.priceToPrecision(symbol, price);
|
|
75517
73782
|
}
|
|
75518
|
-
let
|
|
73783
|
+
let response = undefined;
|
|
75519
73784
|
if (market['option']) {
|
|
75520
|
-
|
|
73785
|
+
response = await this.privatePostOptionUsdcOpenapiPrivateV1ReplaceOrder(this.extend(request, params));
|
|
75521
73786
|
}
|
|
75522
73787
|
else {
|
|
75523
|
-
method = 'privatePostPerpetualUsdcOpenapiPrivateV1ReplaceOrder';
|
|
75524
73788
|
const isStop = this.safeValue(params, 'stop', false);
|
|
75525
73789
|
const triggerPrice = this.safeValue2(params, 'stopPrice', 'triggerPrice');
|
|
75526
73790
|
const stopLossPrice = this.safeValue(params, 'stopLossPrice');
|
|
@@ -75541,8 +73805,8 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75541
73805
|
}
|
|
75542
73806
|
}
|
|
75543
73807
|
params = this.omit(params, ['stop', 'stopPrice', 'triggerPrice', 'stopLossPrice', 'takeProfitPrice']);
|
|
73808
|
+
response = await this.privatePostPerpetualUsdcOpenapiPrivateV1ReplaceOrder(this.extend(request, params));
|
|
75544
73809
|
}
|
|
75545
|
-
const response = await this[method](this.extend(request, params));
|
|
75546
73810
|
//
|
|
75547
73811
|
// {
|
|
75548
73812
|
// "retCode": 0,
|
|
@@ -75633,12 +73897,12 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75633
73897
|
}
|
|
75634
73898
|
if (isStopLoss || isTakeProfit) {
|
|
75635
73899
|
if (isStopLoss) {
|
|
75636
|
-
const
|
|
75637
|
-
request['stopLoss'] = this.priceToPrecision(symbol,
|
|
73900
|
+
const slTriggerPrice = this.safeValue2(stopLoss, 'triggerPrice', 'stopPrice', stopLoss);
|
|
73901
|
+
request['stopLoss'] = this.priceToPrecision(symbol, slTriggerPrice);
|
|
75638
73902
|
}
|
|
75639
73903
|
if (isTakeProfit) {
|
|
75640
|
-
const
|
|
75641
|
-
request['takeProfit'] = this.priceToPrecision(symbol,
|
|
73904
|
+
const tpTriggerPrice = this.safeValue2(takeProfit, 'triggerPrice', 'stopPrice', takeProfit);
|
|
73905
|
+
request['takeProfit'] = this.priceToPrecision(symbol, tpTriggerPrice);
|
|
75642
73906
|
}
|
|
75643
73907
|
}
|
|
75644
73908
|
const clientOrderId = this.safeString(params, 'clientOrderId');
|
|
@@ -75676,18 +73940,17 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
75676
73940
|
};
|
|
75677
73941
|
const isStop = this.safeValue(params, 'stop', false);
|
|
75678
73942
|
params = this.omit(params, ['stop']);
|
|
75679
|
-
let method = undefined;
|
|
75680
73943
|
if (id !== undefined) { // The user can also use argument params["order_link_id"]
|
|
75681
73944
|
request['orderId'] = id;
|
|
75682
73945
|
}
|
|
73946
|
+
let response = undefined;
|
|
75683
73947
|
if (market['option']) {
|
|
75684
|
-
|
|
73948
|
+
response = await this.privatePostOptionUsdcOpenapiPrivateV1CancelOrder(this.extend(request, params));
|
|
75685
73949
|
}
|
|
75686
73950
|
else {
|
|
75687
|
-
method = 'privatePostPerpetualUsdcOpenapiPrivateV1CancelOrder';
|
|
75688
73951
|
request['orderFilter'] = isStop ? 'StopOrder' : 'Order';
|
|
73952
|
+
response = await this.privatePostPerpetualUsdcOpenapiPrivateV1CancelOrder(this.extend(request, params));
|
|
75689
73953
|
}
|
|
75690
|
-
const response = await this[method](this.extend(request, params));
|
|
75691
73954
|
//
|
|
75692
73955
|
// {
|
|
75693
73956
|
// "retCode": 0,
|
|
@@ -76860,7 +75123,6 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
76860
75123
|
request['start_date'] = this.yyyymmdd(since);
|
|
76861
75124
|
}
|
|
76862
75125
|
}
|
|
76863
|
-
const method = (enableUnified[1]) ? 'privateGetV5AccountTransactionLog' : 'privateGetV2PrivateWalletFundRecords';
|
|
76864
75126
|
if (code !== undefined) {
|
|
76865
75127
|
currency = this.currency(code);
|
|
76866
75128
|
request[currencyKey] = currency['id'];
|
|
@@ -76868,7 +75130,13 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
76868
75130
|
if (limit !== undefined) {
|
|
76869
75131
|
request['limit'] = limit;
|
|
76870
75132
|
}
|
|
76871
|
-
|
|
75133
|
+
let response = undefined;
|
|
75134
|
+
if (enableUnified[1]) {
|
|
75135
|
+
response = await this.privateGetV5AccountTransactionLog(this.extend(request, params));
|
|
75136
|
+
}
|
|
75137
|
+
else {
|
|
75138
|
+
response = await this.privateGetV2PrivateWalletFundRecords(this.extend(request, params));
|
|
75139
|
+
}
|
|
76872
75140
|
//
|
|
76873
75141
|
// {
|
|
76874
75142
|
// "ret_code": 0,
|
|
@@ -77589,21 +75857,107 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
77589
75857
|
});
|
|
77590
75858
|
}
|
|
77591
75859
|
async setMarginMode(marginMode, symbol = undefined, params = {}) {
|
|
75860
|
+
/**
|
|
75861
|
+
* @method
|
|
75862
|
+
* @name bybit#setMarginMode
|
|
75863
|
+
* @description set margin mode (account) or trade mode (symbol)
|
|
75864
|
+
* @see https://bybit-exchange.github.io/docs/v5/account/set-margin-mode
|
|
75865
|
+
* @see https://bybit-exchange.github.io/docs/v5/position/cross-isolate
|
|
75866
|
+
* @param {string} marginMode account mode must be either [isolated, cross, portfolio], trade mode must be either [isolated, cross]
|
|
75867
|
+
* @param {string} symbol unified market symbol of the market the position is held in, default is undefined
|
|
75868
|
+
* @param {object} [params] extra parameters specific to the bybit api endpoint
|
|
75869
|
+
* @param {string} [params.leverage] the rate of leverage, is required if setting trade mode (symbol)
|
|
75870
|
+
* @returns {object} response from the exchange
|
|
75871
|
+
*/
|
|
77592
75872
|
await this.loadMarkets();
|
|
77593
75873
|
const [enableUnifiedMargin, enableUnifiedAccount] = await this.isUnifiedEnabled();
|
|
77594
75874
|
const isUnifiedAccount = (enableUnifiedMargin || enableUnifiedAccount);
|
|
77595
|
-
|
|
77596
|
-
|
|
77597
|
-
|
|
75875
|
+
let market = undefined;
|
|
75876
|
+
let response = undefined;
|
|
75877
|
+
if (isUnifiedAccount) {
|
|
75878
|
+
if (marginMode === 'isolated') {
|
|
75879
|
+
marginMode = 'ISOLATED_MARGIN';
|
|
77598
75880
|
}
|
|
75881
|
+
else if (marginMode === 'cross') {
|
|
75882
|
+
marginMode = 'REGULAR_MARGIN';
|
|
75883
|
+
}
|
|
75884
|
+
else if (marginMode === 'portfolio') {
|
|
75885
|
+
marginMode = 'PORTFOLIO_MARGIN';
|
|
75886
|
+
}
|
|
75887
|
+
else {
|
|
75888
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' setMarginMode() marginMode must be either [isolated, cross, portfolio]');
|
|
75889
|
+
}
|
|
75890
|
+
const request = {
|
|
75891
|
+
'setMarginMode': marginMode,
|
|
75892
|
+
};
|
|
75893
|
+
response = await this.privatePostV5AccountSetMarginMode(this.extend(request, params));
|
|
77599
75894
|
}
|
|
77600
|
-
else
|
|
77601
|
-
|
|
75895
|
+
else {
|
|
75896
|
+
if (symbol === undefined) {
|
|
75897
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' setMarginMode() requires a symbol parameter for non unified account');
|
|
75898
|
+
}
|
|
75899
|
+
market = this.market(symbol);
|
|
75900
|
+
const isUsdcSettled = market['settle'] === 'USDC';
|
|
75901
|
+
if (isUsdcSettled) {
|
|
75902
|
+
if (marginMode === 'cross') {
|
|
75903
|
+
marginMode = 'REGULAR_MARGIN';
|
|
75904
|
+
}
|
|
75905
|
+
else if (marginMode === 'portfolio') {
|
|
75906
|
+
marginMode = 'PORTFOLIO_MARGIN';
|
|
75907
|
+
}
|
|
75908
|
+
else {
|
|
75909
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' setMarginMode() for usdc market marginMode must be either [cross, portfolio]');
|
|
75910
|
+
}
|
|
75911
|
+
const request = {
|
|
75912
|
+
'setMarginMode': marginMode,
|
|
75913
|
+
};
|
|
75914
|
+
response = await this.privatePostV5AccountSetMarginMode(this.extend(request, params));
|
|
75915
|
+
}
|
|
75916
|
+
else {
|
|
75917
|
+
let type = undefined;
|
|
75918
|
+
[type, params] = this.getBybitType('setPositionMode', market, params);
|
|
75919
|
+
let tradeMode = undefined;
|
|
75920
|
+
if (marginMode === 'cross') {
|
|
75921
|
+
tradeMode = 0;
|
|
75922
|
+
}
|
|
75923
|
+
else if (marginMode === 'isolated') {
|
|
75924
|
+
tradeMode = 1;
|
|
75925
|
+
}
|
|
75926
|
+
else {
|
|
75927
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' setMarginMode() with symbol marginMode must be either [isolated, cross]');
|
|
75928
|
+
}
|
|
75929
|
+
let sellLeverage = undefined;
|
|
75930
|
+
let buyLeverage = undefined;
|
|
75931
|
+
const leverage = this.safeString(params, 'leverage');
|
|
75932
|
+
if (leverage === undefined) {
|
|
75933
|
+
sellLeverage = this.safeString2(params, 'sell_leverage', 'sellLeverage');
|
|
75934
|
+
buyLeverage = this.safeString2(params, 'buy_leverage', 'buyLeverage');
|
|
75935
|
+
if (sellLeverage === undefined && buyLeverage === undefined) {
|
|
75936
|
+
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' setMarginMode() requires a leverage parameter or sell_leverage and buy_leverage parameters');
|
|
75937
|
+
}
|
|
75938
|
+
if (buyLeverage === undefined) {
|
|
75939
|
+
buyLeverage = sellLeverage;
|
|
75940
|
+
}
|
|
75941
|
+
if (sellLeverage === undefined) {
|
|
75942
|
+
sellLeverage = buyLeverage;
|
|
75943
|
+
}
|
|
75944
|
+
params = this.omit(params, ['buy_leverage', 'sell_leverage', 'sellLeverage', 'buyLeverage']);
|
|
75945
|
+
}
|
|
75946
|
+
else {
|
|
75947
|
+
sellLeverage = leverage;
|
|
75948
|
+
buyLeverage = leverage;
|
|
75949
|
+
params = this.omit(params, 'leverage');
|
|
75950
|
+
}
|
|
75951
|
+
const request = {
|
|
75952
|
+
'category': type,
|
|
75953
|
+
'symbol': market['id'],
|
|
75954
|
+
'tradeMode': tradeMode,
|
|
75955
|
+
'buyLeverage': buyLeverage,
|
|
75956
|
+
'sellLeverage': sellLeverage,
|
|
75957
|
+
};
|
|
75958
|
+
response = await this.privatePostV5PositionSwitchIsolated(this.extend(request, params));
|
|
75959
|
+
}
|
|
77602
75960
|
}
|
|
77603
|
-
const request = {
|
|
77604
|
-
'setMarginMode': marginMode,
|
|
77605
|
-
};
|
|
77606
|
-
const response = await this.privatePostV5AccountSetMarginMode(this.extend(request, params));
|
|
77607
75961
|
return response;
|
|
77608
75962
|
}
|
|
77609
75963
|
async setLeverage(leverage, symbol = undefined, params = {}) {
|
|
@@ -77635,15 +75989,14 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
77635
75989
|
'buyLeverage': leverage,
|
|
77636
75990
|
'sellLeverage': leverage,
|
|
77637
75991
|
};
|
|
77638
|
-
let
|
|
75992
|
+
let response = undefined;
|
|
77639
75993
|
if (isUsdcSettled && !isUnifiedAccount) {
|
|
77640
75994
|
request['leverage'] = leverage;
|
|
77641
|
-
|
|
75995
|
+
response = await this.privatePostPerpetualUsdcOpenapiPrivateV1PositionLeverageSave(this.extend(request, params));
|
|
77642
75996
|
}
|
|
77643
75997
|
else {
|
|
77644
75998
|
request['buyLeverage'] = leverage;
|
|
77645
75999
|
request['sellLeverage'] = leverage;
|
|
77646
|
-
method = 'privatePostV5PositionSetLeverage';
|
|
77647
76000
|
if (market['linear']) {
|
|
77648
76001
|
request['category'] = 'linear';
|
|
77649
76002
|
}
|
|
@@ -77653,8 +76006,9 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
77653
76006
|
else {
|
|
77654
76007
|
throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.NotSupported(this.id + ' setLeverage() only support linear and inverse market');
|
|
77655
76008
|
}
|
|
76009
|
+
response = await this.privatePostV5PositionSetLeverage(this.extend(request, params));
|
|
77656
76010
|
}
|
|
77657
|
-
return
|
|
76011
|
+
return response;
|
|
77658
76012
|
}
|
|
77659
76013
|
async setPositionMode(hedged, symbol = undefined, params = {}) {
|
|
77660
76014
|
/**
|
|
@@ -84365,6 +82719,17 @@ class coinbasepro extends _abstract_coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
84365
82719
|
request['limit'] = limit; // default 100
|
|
84366
82720
|
}
|
|
84367
82721
|
const response = await this.publicGetProductsIdTrades(this.extend(request, params));
|
|
82722
|
+
//
|
|
82723
|
+
// [
|
|
82724
|
+
// {
|
|
82725
|
+
// "trade_id": "15035219",
|
|
82726
|
+
// "side": "sell",
|
|
82727
|
+
// "size": "0.27426731",
|
|
82728
|
+
// "price": "25820.42000000",
|
|
82729
|
+
// "time": "2023-09-10T13:47:41.447577Z"
|
|
82730
|
+
// },
|
|
82731
|
+
// ]
|
|
82732
|
+
//
|
|
84368
82733
|
return this.parseTrades(response, market, since, limit);
|
|
84369
82734
|
}
|
|
84370
82735
|
async fetchTradingFees(params = {}) {
|
|
@@ -100557,7 +98922,7 @@ class currencycom extends _abstract_currencycom_js__WEBPACK_IMPORTED_MODULE_0__/
|
|
|
100557
98922
|
// 'limit': 500, // default 500, max 1000
|
|
100558
98923
|
};
|
|
100559
98924
|
if (limit !== undefined) {
|
|
100560
|
-
request['limit'] = limit; // default 500, max 1000
|
|
98925
|
+
request['limit'] = Math.min(limit, 1000); // default 500, max 1000
|
|
100561
98926
|
}
|
|
100562
98927
|
if (since !== undefined) {
|
|
100563
98928
|
request['startTime'] = since;
|
|
@@ -120383,6 +118748,7 @@ class gemini extends _abstract_gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
120383
118748
|
'InsufficientFunds': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
|
|
120384
118749
|
'InvalidJson': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
|
|
120385
118750
|
'InvalidNonce': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidNonce,
|
|
118751
|
+
'InvalidApiKey': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
|
|
120386
118752
|
'InvalidOrderType': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
|
|
120387
118753
|
'InvalidPrice': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
|
|
120388
118754
|
'InvalidQuantity': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
|
|
@@ -129539,7 +127905,7 @@ class huobi extends _abstract_huobi_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
129539
127905
|
}
|
|
129540
127906
|
request[fieldName] = market['id'];
|
|
129541
127907
|
if (limit !== undefined) {
|
|
129542
|
-
request['size'] = limit; // max 2000
|
|
127908
|
+
request['size'] = Math.min(limit, 2000); // max 2000
|
|
129543
127909
|
}
|
|
129544
127910
|
const response = await this[method](this.extend(request, params));
|
|
129545
127911
|
//
|
|
@@ -136036,7 +134402,7 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
|
|
|
136036
134402
|
'symbol': market['id'],
|
|
136037
134403
|
};
|
|
136038
134404
|
if (limit !== undefined) {
|
|
136039
|
-
request['size'] = limit;
|
|
134405
|
+
request['size'] = Math.min(limit, 2000);
|
|
136040
134406
|
}
|
|
136041
134407
|
const response = await this.marketGetHistoryTrade(this.extend(request, params));
|
|
136042
134408
|
//
|
|
@@ -137601,7 +135967,7 @@ class idex extends _abstract_idex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
|
|
|
137601
135967
|
request['start'] = since;
|
|
137602
135968
|
}
|
|
137603
135969
|
if (limit !== undefined) {
|
|
137604
|
-
request['limit'] = limit;
|
|
135970
|
+
request['limit'] = Math.min(limit, 1000);
|
|
137605
135971
|
}
|
|
137606
135972
|
// [
|
|
137607
135973
|
// {
|
|
@@ -150528,58 +148894,53 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
150528
148894
|
const request = {
|
|
150529
148895
|
'symbol': market['id'],
|
|
150530
148896
|
};
|
|
150531
|
-
const response = await this.
|
|
148897
|
+
const response = await this.futuresPrivateGetPosition(this.extend(request, params));
|
|
150532
148898
|
//
|
|
150533
|
-
//
|
|
150534
|
-
//
|
|
150535
|
-
//
|
|
150536
|
-
//
|
|
150537
|
-
//
|
|
150538
|
-
//
|
|
150539
|
-
//
|
|
150540
|
-
//
|
|
150541
|
-
//
|
|
150542
|
-
//
|
|
150543
|
-
//
|
|
150544
|
-
//
|
|
150545
|
-
//
|
|
150546
|
-
//
|
|
150547
|
-
//
|
|
150548
|
-
//
|
|
150549
|
-
//
|
|
150550
|
-
//
|
|
150551
|
-
//
|
|
150552
|
-
//
|
|
150553
|
-
//
|
|
150554
|
-
//
|
|
150555
|
-
//
|
|
150556
|
-
//
|
|
150557
|
-
//
|
|
150558
|
-
//
|
|
150559
|
-
//
|
|
150560
|
-
//
|
|
150561
|
-
//
|
|
150562
|
-
//
|
|
150563
|
-
//
|
|
150564
|
-
//
|
|
150565
|
-
//
|
|
150566
|
-
//
|
|
150567
|
-
//
|
|
150568
|
-
//
|
|
150569
|
-
//
|
|
150570
|
-
//
|
|
150571
|
-
//
|
|
150572
|
-
//
|
|
150573
|
-
//
|
|
150574
|
-
//
|
|
150575
|
-
// "isInverse": false,
|
|
150576
|
-
// "maintainMargin": 0.004
|
|
150577
|
-
// }
|
|
150578
|
-
// ]
|
|
150579
|
-
// }
|
|
148899
|
+
// {
|
|
148900
|
+
// "code": "200000",
|
|
148901
|
+
// "data": {
|
|
148902
|
+
// "id": "6505ee6eaff4070001f651c4",
|
|
148903
|
+
// "symbol": "XBTUSDTM",
|
|
148904
|
+
// "autoDeposit": false,
|
|
148905
|
+
// "maintMarginReq": 0,
|
|
148906
|
+
// "riskLimit": 200,
|
|
148907
|
+
// "realLeverage": 0.0,
|
|
148908
|
+
// "crossMode": false,
|
|
148909
|
+
// "delevPercentage": 0.0,
|
|
148910
|
+
// "currentTimestamp": 1694887534594,
|
|
148911
|
+
// "currentQty": 0,
|
|
148912
|
+
// "currentCost": 0.0,
|
|
148913
|
+
// "currentComm": 0.0,
|
|
148914
|
+
// "unrealisedCost": 0.0,
|
|
148915
|
+
// "realisedGrossCost": 0.0,
|
|
148916
|
+
// "realisedCost": 0.0,
|
|
148917
|
+
// "isOpen": false,
|
|
148918
|
+
// "markPrice": 26611.71,
|
|
148919
|
+
// "markValue": 0.0,
|
|
148920
|
+
// "posCost": 0.0,
|
|
148921
|
+
// "posCross": 0,
|
|
148922
|
+
// "posInit": 0.0,
|
|
148923
|
+
// "posComm": 0.0,
|
|
148924
|
+
// "posLoss": 0.0,
|
|
148925
|
+
// "posMargin": 0.0,
|
|
148926
|
+
// "posMaint": 0.0,
|
|
148927
|
+
// "maintMargin": 0.0,
|
|
148928
|
+
// "realisedGrossPnl": 0.0,
|
|
148929
|
+
// "realisedPnl": 0.0,
|
|
148930
|
+
// "unrealisedPnl": 0.0,
|
|
148931
|
+
// "unrealisedPnlPcnt": 0,
|
|
148932
|
+
// "unrealisedRoePcnt": 0,
|
|
148933
|
+
// "avgEntryPrice": 0.0,
|
|
148934
|
+
// "liquidationPrice": 0.0,
|
|
148935
|
+
// "bankruptPrice": 0.0,
|
|
148936
|
+
// "settleCurrency": "USDT",
|
|
148937
|
+
// "maintainMargin": 0,
|
|
148938
|
+
// "riskLimitLevel": 1
|
|
148939
|
+
// }
|
|
148940
|
+
// }
|
|
150580
148941
|
//
|
|
150581
|
-
const data = this.safeValue(response, 'data',
|
|
150582
|
-
return this.parsePosition(data
|
|
148942
|
+
const data = this.safeValue(response, 'data', {});
|
|
148943
|
+
return this.parsePosition(data, market);
|
|
150583
148944
|
}
|
|
150584
148945
|
async fetchPositions(symbols = undefined, params = {}) {
|
|
150585
148946
|
/**
|
|
@@ -150725,7 +149086,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
|
|
|
150725
149086
|
'unrealizedPnl': this.parseNumber(unrealisedPnl),
|
|
150726
149087
|
'contracts': this.parseNumber(_base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringAbs */ .O.stringAbs(size)),
|
|
150727
149088
|
'contractSize': this.safeValue(market, 'contractSize'),
|
|
150728
|
-
'realizedPnl': this.safeNumber(position, '
|
|
149089
|
+
'realizedPnl': this.safeNumber(position, 'realisedPnl'),
|
|
150729
149090
|
'marginRatio': undefined,
|
|
150730
149091
|
'liquidationPrice': this.safeNumber(position, 'liquidationPrice'),
|
|
150731
149092
|
'markPrice': this.safeNumber(position, 'markPrice'),
|
|
@@ -154998,7 +153359,7 @@ class lbank extends _abstract_lbank_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
|
|
|
154998
153359
|
request['time'] = since;
|
|
154999
153360
|
}
|
|
155000
153361
|
if (limit !== undefined) {
|
|
155001
|
-
request['size'] = limit;
|
|
153362
|
+
request['size'] = Math.min(limit, 600);
|
|
155002
153363
|
}
|
|
155003
153364
|
const response = await this.publicGetTrades(this.extend(request, params));
|
|
155004
153365
|
return this.parseTrades(response, market, since, limit);
|
|
@@ -156408,7 +154769,7 @@ class lbank2 extends _abstract_lbank2_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
|
|
|
156408
154769
|
request['time'] = since;
|
|
156409
154770
|
}
|
|
156410
154771
|
if (limit !== undefined) {
|
|
156411
|
-
request['size'] = limit;
|
|
154772
|
+
request['size'] = Math.min(limit, 600);
|
|
156412
154773
|
}
|
|
156413
154774
|
else {
|
|
156414
154775
|
request['size'] = 600; // max
|
|
@@ -193875,8 +192236,8 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
193875
192236
|
for (let i = 0; i < symbols.length; i++) {
|
|
193876
192237
|
const symbol = symbols[i];
|
|
193877
192238
|
const market = this.market(symbol);
|
|
193878
|
-
const
|
|
193879
|
-
subParams.push(
|
|
192239
|
+
const currentMessageHash = market['lowercaseId'] + '@' + name;
|
|
192240
|
+
subParams.push(currentMessageHash);
|
|
193880
192241
|
}
|
|
193881
192242
|
const messageHash = 'multipleTrades::' + symbols.join(',');
|
|
193882
192243
|
const query = this.omit(params, 'type');
|
|
@@ -194194,10 +192555,10 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
194194
192555
|
const hashes = [];
|
|
194195
192556
|
for (let i = 0; i < symbolsAndTimeframes.length; i++) {
|
|
194196
192557
|
const data = symbolsAndTimeframes[i];
|
|
194197
|
-
const
|
|
194198
|
-
const
|
|
194199
|
-
const interval = this.safeString(this.timeframes,
|
|
194200
|
-
const market = this.market(
|
|
192558
|
+
const symbolString = data[0];
|
|
192559
|
+
const timeframeString = data[1];
|
|
192560
|
+
const interval = this.safeString(this.timeframes, timeframeString, timeframeString);
|
|
192561
|
+
const market = this.market(symbolString);
|
|
194201
192562
|
let marketId = market['lowercaseId'];
|
|
194202
192563
|
if (name === 'indexPriceKline') {
|
|
194203
192564
|
// weird behavior for index price kline we can't use the perp suffix
|
|
@@ -194205,7 +192566,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
194205
192566
|
}
|
|
194206
192567
|
const topic = marketId + '@' + name + '_' + interval;
|
|
194207
192568
|
subParams.push(topic);
|
|
194208
|
-
hashes.push(
|
|
192569
|
+
hashes.push(symbolString + '#' + timeframeString);
|
|
194209
192570
|
}
|
|
194210
192571
|
const messageHash = 'multipleOHLCV::' + hashes.join(',');
|
|
194211
192572
|
const url = this.urls['api']['ws'][type] + '/' + this.stream(type, messageHash);
|
|
@@ -206961,17 +205322,17 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
206961
205322
|
let firstSymbol = undefined;
|
|
206962
205323
|
for (let i = 0; i < symbolsAndTimeframes.length; i++) {
|
|
206963
205324
|
const data = symbolsAndTimeframes[i];
|
|
206964
|
-
let
|
|
206965
|
-
const
|
|
206966
|
-
const market = this.market(
|
|
206967
|
-
|
|
205325
|
+
let symbolString = this.safeString(data, 0);
|
|
205326
|
+
const timeframeString = this.safeString(data, 1);
|
|
205327
|
+
const market = this.market(symbolString);
|
|
205328
|
+
symbolString = market['symbol'];
|
|
206968
205329
|
if (i === 0) {
|
|
206969
205330
|
firstSymbol = market['symbol'];
|
|
206970
205331
|
}
|
|
206971
|
-
const timeframeId = this.safeString(this.timeframes,
|
|
205332
|
+
const timeframeId = this.safeString(this.timeframes, timeframeString, timeframeString);
|
|
206972
205333
|
const topic = 'kline.' + timeframeId + '.' + market['id'];
|
|
206973
205334
|
topics.push(topic);
|
|
206974
|
-
hashes.push(
|
|
205335
|
+
hashes.push(symbolString + '#' + timeframeString);
|
|
206975
205336
|
}
|
|
206976
205337
|
const messageHash = 'multipleOHLCV::' + hashes.join(',');
|
|
206977
205338
|
const url = this.getUrlByMarketType(firstSymbol, false, params);
|
|
@@ -207518,8 +205879,8 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
207518
205879
|
}
|
|
207519
205880
|
const keys = Object.keys(symbols);
|
|
207520
205881
|
for (let i = 0; i < keys.length; i++) {
|
|
207521
|
-
const
|
|
207522
|
-
client.resolve(trades,
|
|
205882
|
+
const currentMessageHash = 'myTrades:' + keys[i];
|
|
205883
|
+
client.resolve(trades, currentMessageHash);
|
|
207523
205884
|
}
|
|
207524
205885
|
// non-symbol specific
|
|
207525
205886
|
const messageHash = 'myTrades';
|
|
@@ -207651,25 +206012,26 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
|
|
|
207651
206012
|
const first = this.safeValue(rawOrders, 0, {});
|
|
207652
206013
|
const category = this.safeString(first, 'category');
|
|
207653
206014
|
const isSpot = category === 'spot';
|
|
207654
|
-
|
|
207655
|
-
if (isSpot) {
|
|
207656
|
-
parser = 'parseWsSpotOrder';
|
|
207657
|
-
}
|
|
207658
|
-
else {
|
|
207659
|
-
parser = 'parseContractOrder';
|
|
206015
|
+
if (!isSpot) {
|
|
207660
206016
|
rawOrders = this.safeValue(rawOrders, 'result', rawOrders);
|
|
207661
206017
|
}
|
|
207662
206018
|
const symbols = {};
|
|
207663
206019
|
for (let i = 0; i < rawOrders.length; i++) {
|
|
207664
|
-
|
|
206020
|
+
let parsed = undefined;
|
|
206021
|
+
if (isSpot) {
|
|
206022
|
+
parsed = this.parseWsSpotOrder(rawOrders[i]);
|
|
206023
|
+
}
|
|
206024
|
+
else {
|
|
206025
|
+
parsed = this.parseOrder(rawOrders[i]);
|
|
206026
|
+
}
|
|
207665
206027
|
const symbol = parsed['symbol'];
|
|
207666
206028
|
symbols[symbol] = true;
|
|
207667
206029
|
orders.append(parsed);
|
|
207668
206030
|
}
|
|
207669
206031
|
const symbolsArray = Object.keys(symbols);
|
|
207670
206032
|
for (let i = 0; i < symbolsArray.length; i++) {
|
|
207671
|
-
const
|
|
207672
|
-
client.resolve(orders,
|
|
206033
|
+
const currentMessageHash = 'orders:' + symbolsArray[i];
|
|
206034
|
+
client.resolve(orders, currentMessageHash);
|
|
207673
206035
|
}
|
|
207674
206036
|
const messageHash = 'orders';
|
|
207675
206037
|
client.resolve(orders, messageHash);
|
|
@@ -210668,11 +209030,11 @@ class coinbasepro extends _coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/* ["defau
|
|
|
210668
209030
|
// reason: 'filled'
|
|
210669
209031
|
// }
|
|
210670
209032
|
//
|
|
210671
|
-
let
|
|
210672
|
-
if (
|
|
209033
|
+
let currentOrders = this.orders;
|
|
209034
|
+
if (currentOrders === undefined) {
|
|
210673
209035
|
const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
|
|
210674
|
-
|
|
210675
|
-
this.orders =
|
|
209036
|
+
currentOrders = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_3__/* .ArrayCacheBySymbolById */ .hl(limit);
|
|
209037
|
+
this.orders = currentOrders;
|
|
210676
209038
|
}
|
|
210677
209039
|
const type = this.safeString(message, 'type');
|
|
210678
209040
|
const marketId = this.safeString(message, 'product_id');
|
|
@@ -210709,9 +209071,9 @@ class coinbasepro extends _coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/* ["defau
|
|
|
210709
209071
|
let totalAmount = 0;
|
|
210710
209072
|
const trades = previousOrder['trades'];
|
|
210711
209073
|
for (let i = 0; i < trades.length; i++) {
|
|
210712
|
-
const
|
|
210713
|
-
totalCost = this.sum(totalCost,
|
|
210714
|
-
totalAmount = this.sum(totalAmount,
|
|
209074
|
+
const tradeEntry = trades[i];
|
|
209075
|
+
totalCost = this.sum(totalCost, tradeEntry['cost']);
|
|
209076
|
+
totalAmount = this.sum(totalAmount, tradeEntry['amount']);
|
|
210715
209077
|
}
|
|
210716
209078
|
if (totalAmount > 0) {
|
|
210717
209079
|
previousOrder['average'] = totalCost / totalAmount;
|
|
@@ -210839,12 +209201,12 @@ class coinbasepro extends _coinbasepro_js__WEBPACK_IMPORTED_MODULE_0__/* ["defau
|
|
|
210839
209201
|
client.resolve(ticker, messageHash);
|
|
210840
209202
|
const messageHashes = this.findMessageHashes(client, 'tickers::');
|
|
210841
209203
|
for (let i = 0; i < messageHashes.length; i++) {
|
|
210842
|
-
const
|
|
210843
|
-
const parts =
|
|
209204
|
+
const currentMessageHash = messageHashes[i];
|
|
209205
|
+
const parts = currentMessageHash.split('::');
|
|
210844
209206
|
const symbolsString = parts[1];
|
|
210845
209207
|
const symbols = symbolsString.split(',');
|
|
210846
209208
|
if (this.inArray(symbol, symbols)) {
|
|
210847
|
-
client.resolve(ticker,
|
|
209209
|
+
client.resolve(ticker, currentMessageHash);
|
|
210848
209210
|
}
|
|
210849
209211
|
}
|
|
210850
209212
|
}
|
|
@@ -221089,8 +219451,7 @@ class huobijp extends _huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
|
|
|
221089
219451
|
// unroll the accumulated deltas
|
|
221090
219452
|
const messages = orderbook.cache;
|
|
221091
219453
|
for (let i = 0; i < messages.length; i++) {
|
|
221092
|
-
|
|
221093
|
-
this.handleOrderBookMessage(client, message, orderbook);
|
|
219454
|
+
this.handleOrderBookMessage(client, messages[i], orderbook);
|
|
221094
219455
|
}
|
|
221095
219456
|
this.orderbooks[symbol] = orderbook;
|
|
221096
219457
|
client.resolve(orderbook, messageHash);
|
|
@@ -224300,9 +222661,9 @@ class krakenfutures extends _krakenfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
224300
222661
|
let totalAmount = '0';
|
|
224301
222662
|
const trades = previousOrder['trades'];
|
|
224302
222663
|
for (let i = 0; i < trades.length; i++) {
|
|
224303
|
-
const
|
|
224304
|
-
totalCost = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringAdd */ .O.stringAdd(totalCost, this.numberToString(
|
|
224305
|
-
totalAmount = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringAdd */ .O.stringAdd(totalAmount, this.numberToString(
|
|
222664
|
+
const currentTrade = trades[i];
|
|
222665
|
+
totalCost = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringAdd */ .O.stringAdd(totalCost, this.numberToString(currentTrade['cost']));
|
|
222666
|
+
totalAmount = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringAdd */ .O.stringAdd(totalAmount, this.numberToString(currentTrade['amount']));
|
|
224306
222667
|
}
|
|
224307
222668
|
if (_base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringGt */ .O.stringGt(totalAmount, '0')) {
|
|
224308
222669
|
previousOrder['average'] = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringDiv */ .O.stringDiv(totalCost, totalAmount);
|
|
@@ -224337,13 +222698,13 @@ class krakenfutures extends _krakenfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
224337
222698
|
if (isCancel) {
|
|
224338
222699
|
// get order without symbol
|
|
224339
222700
|
for (let i = 0; i < orders.length; i++) {
|
|
224340
|
-
const
|
|
224341
|
-
if (
|
|
224342
|
-
orders[i] = this.extend(
|
|
222701
|
+
const currentOrder = orders[i];
|
|
222702
|
+
if (currentOrder['id'] === message['order_id']) {
|
|
222703
|
+
orders[i] = this.extend(currentOrder, {
|
|
224343
222704
|
'status': 'canceled',
|
|
224344
222705
|
});
|
|
224345
222706
|
client.resolve(orders, 'orders');
|
|
224346
|
-
client.resolve(orders, 'orders:' +
|
|
222707
|
+
client.resolve(orders, 'orders:' + currentOrder['symbol']);
|
|
224347
222708
|
break;
|
|
224348
222709
|
}
|
|
224349
222710
|
}
|
|
@@ -225130,7 +223491,7 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
225130
223491
|
'watchOrderBook': true,
|
|
225131
223492
|
'watchOrders': true,
|
|
225132
223493
|
'watchMyTrades': true,
|
|
225133
|
-
'watchTickers':
|
|
223494
|
+
'watchTickers': true,
|
|
225134
223495
|
'watchTicker': true,
|
|
225135
223496
|
'watchTrades': true,
|
|
225136
223497
|
'watchTradesForSymbols': true,
|
|
@@ -225248,6 +223609,29 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
225248
223609
|
const messageHash = 'ticker:' + symbol;
|
|
225249
223610
|
return await this.subscribe(url, messageHash, topic, query);
|
|
225250
223611
|
}
|
|
223612
|
+
async watchTickers(symbols = undefined, params = {}) {
|
|
223613
|
+
/**
|
|
223614
|
+
* @method
|
|
223615
|
+
* @name kucoin#watchTickers
|
|
223616
|
+
* @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
|
|
223617
|
+
* @param {string[]} symbols unified symbol of the market to fetch the ticker for
|
|
223618
|
+
* @param {object} [params] extra parameters specific to the kucoin api endpoint
|
|
223619
|
+
* @returns {object} a [ticker structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure}
|
|
223620
|
+
*/
|
|
223621
|
+
await this.loadMarkets();
|
|
223622
|
+
symbols = this.marketSymbols(symbols);
|
|
223623
|
+
let messageHash = 'tickers';
|
|
223624
|
+
if (symbols !== undefined) {
|
|
223625
|
+
messageHash = 'tickers::' + symbols.join(',');
|
|
223626
|
+
}
|
|
223627
|
+
const url = await this.negotiate(false);
|
|
223628
|
+
const topic = '/market/ticker:all';
|
|
223629
|
+
const tickers = await this.subscribe(url, messageHash, topic, params);
|
|
223630
|
+
if (this.newUpdates) {
|
|
223631
|
+
return tickers;
|
|
223632
|
+
}
|
|
223633
|
+
return this.filterByArray(this.tickers, 'symbol', symbols);
|
|
223634
|
+
}
|
|
225251
223635
|
handleTicker(client, message) {
|
|
225252
223636
|
//
|
|
225253
223637
|
// market/snapshot
|
|
@@ -225307,7 +223691,14 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
225307
223691
|
let market = undefined;
|
|
225308
223692
|
if (topic !== undefined) {
|
|
225309
223693
|
const parts = topic.split(':');
|
|
225310
|
-
const
|
|
223694
|
+
const first = this.safeString(parts, 1);
|
|
223695
|
+
let marketId = undefined;
|
|
223696
|
+
if (first === 'all') {
|
|
223697
|
+
marketId = this.safeString(message, 'subject');
|
|
223698
|
+
}
|
|
223699
|
+
else {
|
|
223700
|
+
marketId = first;
|
|
223701
|
+
}
|
|
225311
223702
|
market = this.safeMarket(marketId, market, '-');
|
|
225312
223703
|
}
|
|
225313
223704
|
const data = this.safeValue(message, 'data', {});
|
|
@@ -225317,6 +223708,21 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
225317
223708
|
this.tickers[symbol] = ticker;
|
|
225318
223709
|
const messageHash = 'ticker:' + symbol;
|
|
225319
223710
|
client.resolve(ticker, messageHash);
|
|
223711
|
+
// watchTickers
|
|
223712
|
+
client.resolve(ticker, 'tickers');
|
|
223713
|
+
const messageHashes = this.findMessageHashes(client, 'tickers::');
|
|
223714
|
+
for (let i = 0; i < messageHashes.length; i++) {
|
|
223715
|
+
const currentMessageHash = messageHashes[i];
|
|
223716
|
+
const parts = currentMessageHash.split('::');
|
|
223717
|
+
const symbolsString = parts[1];
|
|
223718
|
+
const symbols = symbolsString.split(',');
|
|
223719
|
+
const tickers = this.filterByArray(this.tickers, 'symbol', symbols);
|
|
223720
|
+
const tickersSymbols = Object.keys(tickers);
|
|
223721
|
+
const numTickers = tickersSymbols.length;
|
|
223722
|
+
if (numTickers > 0) {
|
|
223723
|
+
client.resolve(tickers, currentMessageHash);
|
|
223724
|
+
}
|
|
223725
|
+
}
|
|
225320
223726
|
}
|
|
225321
223727
|
async watchOHLCV(symbol, timeframe = '1m', since = undefined, limit = undefined, params = {}) {
|
|
225322
223728
|
/**
|
|
@@ -225996,6 +224402,10 @@ class kucoin extends _kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
225996
224402
|
// }
|
|
225997
224403
|
// }
|
|
225998
224404
|
//
|
|
224405
|
+
const topic = this.safeString(message, 'topic');
|
|
224406
|
+
if (topic === '/market/ticker:all') {
|
|
224407
|
+
return this.handleTicker(client, message);
|
|
224408
|
+
}
|
|
225999
224409
|
const subject = this.safeString(message, 'subject');
|
|
226000
224410
|
const methods = {
|
|
226001
224411
|
'trade.l2update': this.handleOrderBook,
|
|
@@ -226458,9 +224868,9 @@ class kucoinfutures extends _kucoinfutures_js__WEBPACK_IMPORTED_MODULE_0__/* ["d
|
|
|
226458
224868
|
const deltaEnd = this.safeInteger(data, 'sequence');
|
|
226459
224869
|
if (nonce === undefined) {
|
|
226460
224870
|
const cacheLength = storedOrderBook.cache.length;
|
|
226461
|
-
const
|
|
226462
|
-
const topicSymbol = this.safeString(
|
|
226463
|
-
const topicChannel = this.safeString(
|
|
224871
|
+
const topicPartsNew = topic.split(':');
|
|
224872
|
+
const topicSymbol = this.safeString(topicPartsNew, 1);
|
|
224873
|
+
const topicChannel = this.safeString(topicPartsNew, 0);
|
|
226464
224874
|
const subscriptions = Object.keys(client.subscriptions);
|
|
226465
224875
|
let subscription = undefined;
|
|
226466
224876
|
for (let i = 0; i < subscriptions.length; i++) {
|
|
@@ -232592,8 +231002,8 @@ class phemex extends _phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
|
|
|
232592
231002
|
return method.call(this, client, message);
|
|
232593
231003
|
}
|
|
232594
231004
|
}
|
|
232595
|
-
const
|
|
232596
|
-
if (('market24h' in message) || ('spot_market24h' in message) || (
|
|
231005
|
+
const methodName = this.safeString(message, 'method', '');
|
|
231006
|
+
if (('market24h' in message) || ('spot_market24h' in message) || (methodName.indexOf('perp_market24h_pack_p') >= 0)) {
|
|
232597
231007
|
return this.handleTicker(client, message);
|
|
232598
231008
|
}
|
|
232599
231009
|
else if (('trades' in message) || ('trades_p' in message)) {
|
|
@@ -273424,38 +271834,38 @@ var __webpack_exports__ = {};
|
|
|
273424
271834
|
(() => {
|
|
273425
271835
|
__webpack_require__.r(__webpack_exports__);
|
|
273426
271836
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
273427
|
-
/* harmony export */ "AccountNotEnabled": () => (/* reexport safe */
|
|
273428
|
-
/* harmony export */ "AccountSuspended": () => (/* reexport safe */
|
|
273429
|
-
/* harmony export */ "AddressPending": () => (/* reexport safe */
|
|
273430
|
-
/* harmony export */ "ArgumentsRequired": () => (/* reexport safe */
|
|
273431
|
-
/* harmony export */ "AuthenticationError": () => (/* reexport safe */
|
|
273432
|
-
/* harmony export */ "BadRequest": () => (/* reexport safe */
|
|
273433
|
-
/* harmony export */ "BadResponse": () => (/* reexport safe */
|
|
273434
|
-
/* harmony export */ "BadSymbol": () => (/* reexport safe */
|
|
273435
|
-
/* harmony export */ "BaseError": () => (/* reexport safe */
|
|
273436
|
-
/* harmony export */ "CancelPending": () => (/* reexport safe */
|
|
273437
|
-
/* harmony export */ "DDoSProtection": () => (/* reexport safe */
|
|
273438
|
-
/* harmony export */ "DuplicateOrderId": () => (/* reexport safe */
|
|
271837
|
+
/* harmony export */ "AccountNotEnabled": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.AccountNotEnabled),
|
|
271838
|
+
/* harmony export */ "AccountSuspended": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.AccountSuspended),
|
|
271839
|
+
/* harmony export */ "AddressPending": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.AddressPending),
|
|
271840
|
+
/* harmony export */ "ArgumentsRequired": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.ArgumentsRequired),
|
|
271841
|
+
/* harmony export */ "AuthenticationError": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.AuthenticationError),
|
|
271842
|
+
/* harmony export */ "BadRequest": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.BadRequest),
|
|
271843
|
+
/* harmony export */ "BadResponse": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.BadResponse),
|
|
271844
|
+
/* harmony export */ "BadSymbol": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.BadSymbol),
|
|
271845
|
+
/* harmony export */ "BaseError": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.BaseError),
|
|
271846
|
+
/* harmony export */ "CancelPending": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.CancelPending),
|
|
271847
|
+
/* harmony export */ "DDoSProtection": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.DDoSProtection),
|
|
271848
|
+
/* harmony export */ "DuplicateOrderId": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.DuplicateOrderId),
|
|
273439
271849
|
/* harmony export */ "Exchange": () => (/* reexport safe */ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__.e),
|
|
273440
|
-
/* harmony export */ "ExchangeError": () => (/* reexport safe */
|
|
273441
|
-
/* harmony export */ "ExchangeNotAvailable": () => (/* reexport safe */
|
|
273442
|
-
/* harmony export */ "InsufficientFunds": () => (/* reexport safe */
|
|
273443
|
-
/* harmony export */ "InvalidAddress": () => (/* reexport safe */
|
|
273444
|
-
/* harmony export */ "InvalidNonce": () => (/* reexport safe */
|
|
273445
|
-
/* harmony export */ "InvalidOrder": () => (/* reexport safe */
|
|
273446
|
-
/* harmony export */ "MarginModeAlreadySet": () => (/* reexport safe */
|
|
273447
|
-
/* harmony export */ "NetworkError": () => (/* reexport safe */
|
|
273448
|
-
/* harmony export */ "NotSupported": () => (/* reexport safe */
|
|
273449
|
-
/* harmony export */ "NullResponse": () => (/* reexport safe */
|
|
273450
|
-
/* harmony export */ "OnMaintenance": () => (/* reexport safe */
|
|
273451
|
-
/* harmony export */ "OrderImmediatelyFillable": () => (/* reexport safe */
|
|
273452
|
-
/* harmony export */ "OrderNotCached": () => (/* reexport safe */
|
|
273453
|
-
/* harmony export */ "OrderNotFillable": () => (/* reexport safe */
|
|
273454
|
-
/* harmony export */ "OrderNotFound": () => (/* reexport safe */
|
|
273455
|
-
/* harmony export */ "PermissionDenied": () => (/* reexport safe */
|
|
273456
|
-
/* harmony export */ "Precise": () => (/* reexport safe */
|
|
273457
|
-
/* harmony export */ "RateLimitExceeded": () => (/* reexport safe */
|
|
273458
|
-
/* harmony export */ "RequestTimeout": () => (/* reexport safe */
|
|
271850
|
+
/* harmony export */ "ExchangeError": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.ExchangeError),
|
|
271851
|
+
/* harmony export */ "ExchangeNotAvailable": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.ExchangeNotAvailable),
|
|
271852
|
+
/* harmony export */ "InsufficientFunds": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.InsufficientFunds),
|
|
271853
|
+
/* harmony export */ "InvalidAddress": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.InvalidAddress),
|
|
271854
|
+
/* harmony export */ "InvalidNonce": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.InvalidNonce),
|
|
271855
|
+
/* harmony export */ "InvalidOrder": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.InvalidOrder),
|
|
271856
|
+
/* harmony export */ "MarginModeAlreadySet": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.MarginModeAlreadySet),
|
|
271857
|
+
/* harmony export */ "NetworkError": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.NetworkError),
|
|
271858
|
+
/* harmony export */ "NotSupported": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.NotSupported),
|
|
271859
|
+
/* harmony export */ "NullResponse": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.NullResponse),
|
|
271860
|
+
/* harmony export */ "OnMaintenance": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.OnMaintenance),
|
|
271861
|
+
/* harmony export */ "OrderImmediatelyFillable": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.OrderImmediatelyFillable),
|
|
271862
|
+
/* harmony export */ "OrderNotCached": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.OrderNotCached),
|
|
271863
|
+
/* harmony export */ "OrderNotFillable": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.OrderNotFillable),
|
|
271864
|
+
/* harmony export */ "OrderNotFound": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.OrderNotFound),
|
|
271865
|
+
/* harmony export */ "PermissionDenied": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.PermissionDenied),
|
|
271866
|
+
/* harmony export */ "Precise": () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_165__.O),
|
|
271867
|
+
/* harmony export */ "RateLimitExceeded": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.RateLimitExceeded),
|
|
271868
|
+
/* harmony export */ "RequestTimeout": () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__.RequestTimeout),
|
|
273459
271869
|
/* harmony export */ "ace": () => (/* reexport safe */ _src_ace_js__WEBPACK_IMPORTED_MODULE_1__.Z),
|
|
273460
271870
|
/* harmony export */ "alpaca": () => (/* reexport safe */ _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__.Z),
|
|
273461
271871
|
/* harmony export */ "ascendex": () => (/* reexport safe */ _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__.Z),
|
|
@@ -273487,92 +271897,91 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
273487
271897
|
/* harmony export */ "bitstamp1": () => (/* reexport safe */ _src_bitstamp1_js__WEBPACK_IMPORTED_MODULE_29__.Z),
|
|
273488
271898
|
/* harmony export */ "bittrex": () => (/* reexport safe */ _src_bittrex_js__WEBPACK_IMPORTED_MODULE_30__.Z),
|
|
273489
271899
|
/* harmony export */ "bitvavo": () => (/* reexport safe */ _src_bitvavo_js__WEBPACK_IMPORTED_MODULE_31__.Z),
|
|
273490
|
-
/* harmony export */ "
|
|
273491
|
-
/* harmony export */ "
|
|
273492
|
-
/* harmony export */ "
|
|
273493
|
-
/* harmony export */ "
|
|
273494
|
-
/* harmony export */ "
|
|
273495
|
-
/* harmony export */ "
|
|
273496
|
-
/* harmony export */ "
|
|
273497
|
-
/* harmony export */ "
|
|
273498
|
-
/* harmony export */ "
|
|
273499
|
-
/* harmony export */ "
|
|
273500
|
-
/* harmony export */ "
|
|
273501
|
-
/* harmony export */ "
|
|
273502
|
-
/* harmony export */ "
|
|
273503
|
-
/* harmony export */ "
|
|
273504
|
-
/* harmony export */ "
|
|
273505
|
-
/* harmony export */ "
|
|
273506
|
-
/* harmony export */ "
|
|
273507
|
-
/* harmony export */ "
|
|
273508
|
-
/* harmony export */ "
|
|
273509
|
-
/* harmony export */ "
|
|
273510
|
-
/* harmony export */ "
|
|
273511
|
-
/* harmony export */ "currencycom": () => (/* reexport safe */ _src_currencycom_js__WEBPACK_IMPORTED_MODULE_53__.Z),
|
|
271900
|
+
/* harmony export */ "bl3p": () => (/* reexport safe */ _src_bl3p_js__WEBPACK_IMPORTED_MODULE_32__.Z),
|
|
271901
|
+
/* harmony export */ "blockchaincom": () => (/* reexport safe */ _src_blockchaincom_js__WEBPACK_IMPORTED_MODULE_33__.Z),
|
|
271902
|
+
/* harmony export */ "btcalpha": () => (/* reexport safe */ _src_btcalpha_js__WEBPACK_IMPORTED_MODULE_34__.Z),
|
|
271903
|
+
/* harmony export */ "btcbox": () => (/* reexport safe */ _src_btcbox_js__WEBPACK_IMPORTED_MODULE_35__.Z),
|
|
271904
|
+
/* harmony export */ "btcmarkets": () => (/* reexport safe */ _src_btcmarkets_js__WEBPACK_IMPORTED_MODULE_36__.Z),
|
|
271905
|
+
/* harmony export */ "btctradeua": () => (/* reexport safe */ _src_btctradeua_js__WEBPACK_IMPORTED_MODULE_37__.Z),
|
|
271906
|
+
/* harmony export */ "btcturk": () => (/* reexport safe */ _src_btcturk_js__WEBPACK_IMPORTED_MODULE_38__.Z),
|
|
271907
|
+
/* harmony export */ "bybit": () => (/* reexport safe */ _src_bybit_js__WEBPACK_IMPORTED_MODULE_39__.Z),
|
|
271908
|
+
/* harmony export */ "cex": () => (/* reexport safe */ _src_cex_js__WEBPACK_IMPORTED_MODULE_40__.Z),
|
|
271909
|
+
/* harmony export */ "coinbase": () => (/* reexport safe */ _src_coinbase_js__WEBPACK_IMPORTED_MODULE_41__.Z),
|
|
271910
|
+
/* harmony export */ "coinbaseprime": () => (/* reexport safe */ _src_coinbaseprime_js__WEBPACK_IMPORTED_MODULE_42__.Z),
|
|
271911
|
+
/* harmony export */ "coinbasepro": () => (/* reexport safe */ _src_coinbasepro_js__WEBPACK_IMPORTED_MODULE_43__.Z),
|
|
271912
|
+
/* harmony export */ "coincheck": () => (/* reexport safe */ _src_coincheck_js__WEBPACK_IMPORTED_MODULE_44__.Z),
|
|
271913
|
+
/* harmony export */ "coinex": () => (/* reexport safe */ _src_coinex_js__WEBPACK_IMPORTED_MODULE_45__.Z),
|
|
271914
|
+
/* harmony export */ "coinfalcon": () => (/* reexport safe */ _src_coinfalcon_js__WEBPACK_IMPORTED_MODULE_46__.Z),
|
|
271915
|
+
/* harmony export */ "coinmate": () => (/* reexport safe */ _src_coinmate_js__WEBPACK_IMPORTED_MODULE_47__.Z),
|
|
271916
|
+
/* harmony export */ "coinone": () => (/* reexport safe */ _src_coinone_js__WEBPACK_IMPORTED_MODULE_48__.Z),
|
|
271917
|
+
/* harmony export */ "coinsph": () => (/* reexport safe */ _src_coinsph_js__WEBPACK_IMPORTED_MODULE_49__.Z),
|
|
271918
|
+
/* harmony export */ "coinspot": () => (/* reexport safe */ _src_coinspot_js__WEBPACK_IMPORTED_MODULE_50__.Z),
|
|
271919
|
+
/* harmony export */ "cryptocom": () => (/* reexport safe */ _src_cryptocom_js__WEBPACK_IMPORTED_MODULE_51__.Z),
|
|
271920
|
+
/* harmony export */ "currencycom": () => (/* reexport safe */ _src_currencycom_js__WEBPACK_IMPORTED_MODULE_52__.Z),
|
|
273512
271921
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
273513
|
-
/* harmony export */ "delta": () => (/* reexport safe */
|
|
273514
|
-
/* harmony export */ "deribit": () => (/* reexport safe */
|
|
273515
|
-
/* harmony export */ "digifinex": () => (/* reexport safe */
|
|
273516
|
-
/* harmony export */ "errors": () => (/* reexport module object */
|
|
271922
|
+
/* harmony export */ "delta": () => (/* reexport safe */ _src_delta_js__WEBPACK_IMPORTED_MODULE_53__.Z),
|
|
271923
|
+
/* harmony export */ "deribit": () => (/* reexport safe */ _src_deribit_js__WEBPACK_IMPORTED_MODULE_54__.Z),
|
|
271924
|
+
/* harmony export */ "digifinex": () => (/* reexport safe */ _src_digifinex_js__WEBPACK_IMPORTED_MODULE_55__.Z),
|
|
271925
|
+
/* harmony export */ "errors": () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__),
|
|
273517
271926
|
/* harmony export */ "exchanges": () => (/* binding */ exchanges),
|
|
273518
|
-
/* harmony export */ "exmo": () => (/* reexport safe */
|
|
273519
|
-
/* harmony export */ "fmfwio": () => (/* reexport safe */
|
|
273520
|
-
/* harmony export */ "functions": () => (/* reexport module object */
|
|
273521
|
-
/* harmony export */ "gate": () => (/* reexport safe */
|
|
273522
|
-
/* harmony export */ "gateio": () => (/* reexport safe */
|
|
273523
|
-
/* harmony export */ "gemini": () => (/* reexport safe */
|
|
273524
|
-
/* harmony export */ "hitbtc": () => (/* reexport safe */
|
|
273525
|
-
/* harmony export */ "hitbtc3": () => (/* reexport safe */
|
|
273526
|
-
/* harmony export */ "hollaex": () => (/* reexport safe */
|
|
273527
|
-
/* harmony export */ "huobi": () => (/* reexport safe */
|
|
273528
|
-
/* harmony export */ "huobijp": () => (/* reexport safe */
|
|
273529
|
-
/* harmony export */ "huobipro": () => (/* reexport safe */
|
|
273530
|
-
/* harmony export */ "idex": () => (/* reexport safe */
|
|
273531
|
-
/* harmony export */ "independentreserve": () => (/* reexport safe */
|
|
273532
|
-
/* harmony export */ "indodax": () => (/* reexport safe */
|
|
273533
|
-
/* harmony export */ "kraken": () => (/* reexport safe */
|
|
273534
|
-
/* harmony export */ "krakenfutures": () => (/* reexport safe */
|
|
273535
|
-
/* harmony export */ "kucoin": () => (/* reexport safe */
|
|
273536
|
-
/* harmony export */ "kucoinfutures": () => (/* reexport safe */
|
|
273537
|
-
/* harmony export */ "kuna": () => (/* reexport safe */
|
|
273538
|
-
/* harmony export */ "latoken": () => (/* reexport safe */
|
|
273539
|
-
/* harmony export */ "lbank": () => (/* reexport safe */
|
|
273540
|
-
/* harmony export */ "lbank2": () => (/* reexport safe */
|
|
273541
|
-
/* harmony export */ "luno": () => (/* reexport safe */
|
|
273542
|
-
/* harmony export */ "lykke": () => (/* reexport safe */
|
|
273543
|
-
/* harmony export */ "mercado": () => (/* reexport safe */
|
|
273544
|
-
/* harmony export */ "mexc": () => (/* reexport safe */
|
|
273545
|
-
/* harmony export */ "mexc3": () => (/* reexport safe */
|
|
273546
|
-
/* harmony export */ "ndax": () => (/* reexport safe */
|
|
273547
|
-
/* harmony export */ "novadax": () => (/* reexport safe */
|
|
273548
|
-
/* harmony export */ "oceanex": () => (/* reexport safe */
|
|
273549
|
-
/* harmony export */ "okcoin": () => (/* reexport safe */
|
|
273550
|
-
/* harmony export */ "okex": () => (/* reexport safe */
|
|
273551
|
-
/* harmony export */ "okex5": () => (/* reexport safe */
|
|
273552
|
-
/* harmony export */ "okx": () => (/* reexport safe */
|
|
273553
|
-
/* harmony export */ "paymium": () => (/* reexport safe */
|
|
273554
|
-
/* harmony export */ "phemex": () => (/* reexport safe */
|
|
273555
|
-
/* harmony export */ "poloniex": () => (/* reexport safe */
|
|
273556
|
-
/* harmony export */ "poloniexfutures": () => (/* reexport safe */
|
|
271927
|
+
/* harmony export */ "exmo": () => (/* reexport safe */ _src_exmo_js__WEBPACK_IMPORTED_MODULE_56__.Z),
|
|
271928
|
+
/* harmony export */ "fmfwio": () => (/* reexport safe */ _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_57__.Z),
|
|
271929
|
+
/* harmony export */ "functions": () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_166__),
|
|
271930
|
+
/* harmony export */ "gate": () => (/* reexport safe */ _src_gate_js__WEBPACK_IMPORTED_MODULE_58__.Z),
|
|
271931
|
+
/* harmony export */ "gateio": () => (/* reexport safe */ _src_gateio_js__WEBPACK_IMPORTED_MODULE_59__.Z),
|
|
271932
|
+
/* harmony export */ "gemini": () => (/* reexport safe */ _src_gemini_js__WEBPACK_IMPORTED_MODULE_60__.Z),
|
|
271933
|
+
/* harmony export */ "hitbtc": () => (/* reexport safe */ _src_hitbtc_js__WEBPACK_IMPORTED_MODULE_61__.Z),
|
|
271934
|
+
/* harmony export */ "hitbtc3": () => (/* reexport safe */ _src_hitbtc3_js__WEBPACK_IMPORTED_MODULE_62__.Z),
|
|
271935
|
+
/* harmony export */ "hollaex": () => (/* reexport safe */ _src_hollaex_js__WEBPACK_IMPORTED_MODULE_63__.Z),
|
|
271936
|
+
/* harmony export */ "huobi": () => (/* reexport safe */ _src_huobi_js__WEBPACK_IMPORTED_MODULE_64__.Z),
|
|
271937
|
+
/* harmony export */ "huobijp": () => (/* reexport safe */ _src_huobijp_js__WEBPACK_IMPORTED_MODULE_65__.Z),
|
|
271938
|
+
/* harmony export */ "huobipro": () => (/* reexport safe */ _src_huobipro_js__WEBPACK_IMPORTED_MODULE_66__.Z),
|
|
271939
|
+
/* harmony export */ "idex": () => (/* reexport safe */ _src_idex_js__WEBPACK_IMPORTED_MODULE_67__.Z),
|
|
271940
|
+
/* harmony export */ "independentreserve": () => (/* reexport safe */ _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_68__.Z),
|
|
271941
|
+
/* harmony export */ "indodax": () => (/* reexport safe */ _src_indodax_js__WEBPACK_IMPORTED_MODULE_69__.Z),
|
|
271942
|
+
/* harmony export */ "kraken": () => (/* reexport safe */ _src_kraken_js__WEBPACK_IMPORTED_MODULE_70__.Z),
|
|
271943
|
+
/* harmony export */ "krakenfutures": () => (/* reexport safe */ _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_71__.Z),
|
|
271944
|
+
/* harmony export */ "kucoin": () => (/* reexport safe */ _src_kucoin_js__WEBPACK_IMPORTED_MODULE_72__.Z),
|
|
271945
|
+
/* harmony export */ "kucoinfutures": () => (/* reexport safe */ _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_73__.Z),
|
|
271946
|
+
/* harmony export */ "kuna": () => (/* reexport safe */ _src_kuna_js__WEBPACK_IMPORTED_MODULE_74__.Z),
|
|
271947
|
+
/* harmony export */ "latoken": () => (/* reexport safe */ _src_latoken_js__WEBPACK_IMPORTED_MODULE_75__.Z),
|
|
271948
|
+
/* harmony export */ "lbank": () => (/* reexport safe */ _src_lbank_js__WEBPACK_IMPORTED_MODULE_76__.Z),
|
|
271949
|
+
/* harmony export */ "lbank2": () => (/* reexport safe */ _src_lbank2_js__WEBPACK_IMPORTED_MODULE_77__.Z),
|
|
271950
|
+
/* harmony export */ "luno": () => (/* reexport safe */ _src_luno_js__WEBPACK_IMPORTED_MODULE_78__.Z),
|
|
271951
|
+
/* harmony export */ "lykke": () => (/* reexport safe */ _src_lykke_js__WEBPACK_IMPORTED_MODULE_79__.Z),
|
|
271952
|
+
/* harmony export */ "mercado": () => (/* reexport safe */ _src_mercado_js__WEBPACK_IMPORTED_MODULE_80__.Z),
|
|
271953
|
+
/* harmony export */ "mexc": () => (/* reexport safe */ _src_mexc_js__WEBPACK_IMPORTED_MODULE_81__.Z),
|
|
271954
|
+
/* harmony export */ "mexc3": () => (/* reexport safe */ _src_mexc3_js__WEBPACK_IMPORTED_MODULE_82__.Z),
|
|
271955
|
+
/* harmony export */ "ndax": () => (/* reexport safe */ _src_ndax_js__WEBPACK_IMPORTED_MODULE_83__.Z),
|
|
271956
|
+
/* harmony export */ "novadax": () => (/* reexport safe */ _src_novadax_js__WEBPACK_IMPORTED_MODULE_84__.Z),
|
|
271957
|
+
/* harmony export */ "oceanex": () => (/* reexport safe */ _src_oceanex_js__WEBPACK_IMPORTED_MODULE_85__.Z),
|
|
271958
|
+
/* harmony export */ "okcoin": () => (/* reexport safe */ _src_okcoin_js__WEBPACK_IMPORTED_MODULE_86__.Z),
|
|
271959
|
+
/* harmony export */ "okex": () => (/* reexport safe */ _src_okex_js__WEBPACK_IMPORTED_MODULE_87__.Z),
|
|
271960
|
+
/* harmony export */ "okex5": () => (/* reexport safe */ _src_okex5_js__WEBPACK_IMPORTED_MODULE_88__.Z),
|
|
271961
|
+
/* harmony export */ "okx": () => (/* reexport safe */ _src_okx_js__WEBPACK_IMPORTED_MODULE_89__.Z),
|
|
271962
|
+
/* harmony export */ "paymium": () => (/* reexport safe */ _src_paymium_js__WEBPACK_IMPORTED_MODULE_90__.Z),
|
|
271963
|
+
/* harmony export */ "phemex": () => (/* reexport safe */ _src_phemex_js__WEBPACK_IMPORTED_MODULE_91__.Z),
|
|
271964
|
+
/* harmony export */ "poloniex": () => (/* reexport safe */ _src_poloniex_js__WEBPACK_IMPORTED_MODULE_92__.Z),
|
|
271965
|
+
/* harmony export */ "poloniexfutures": () => (/* reexport safe */ _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_93__.Z),
|
|
273557
271966
|
/* harmony export */ "pro": () => (/* binding */ pro),
|
|
273558
|
-
/* harmony export */ "probit": () => (/* reexport safe */
|
|
273559
|
-
/* harmony export */ "tidex": () => (/* reexport safe */
|
|
273560
|
-
/* harmony export */ "timex": () => (/* reexport safe */
|
|
273561
|
-
/* harmony export */ "tokocrypto": () => (/* reexport safe */
|
|
273562
|
-
/* harmony export */ "upbit": () => (/* reexport safe */
|
|
271967
|
+
/* harmony export */ "probit": () => (/* reexport safe */ _src_probit_js__WEBPACK_IMPORTED_MODULE_94__.Z),
|
|
271968
|
+
/* harmony export */ "tidex": () => (/* reexport safe */ _src_tidex_js__WEBPACK_IMPORTED_MODULE_95__.Z),
|
|
271969
|
+
/* harmony export */ "timex": () => (/* reexport safe */ _src_timex_js__WEBPACK_IMPORTED_MODULE_96__.Z),
|
|
271970
|
+
/* harmony export */ "tokocrypto": () => (/* reexport safe */ _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_97__.Z),
|
|
271971
|
+
/* harmony export */ "upbit": () => (/* reexport safe */ _src_upbit_js__WEBPACK_IMPORTED_MODULE_98__.Z),
|
|
273563
271972
|
/* harmony export */ "version": () => (/* binding */ version),
|
|
273564
|
-
/* harmony export */ "wavesexchange": () => (/* reexport safe */
|
|
273565
|
-
/* harmony export */ "wazirx": () => (/* reexport safe */
|
|
273566
|
-
/* harmony export */ "whitebit": () => (/* reexport safe */
|
|
273567
|
-
/* harmony export */ "woo": () => (/* reexport safe */
|
|
273568
|
-
/* harmony export */ "yobit": () => (/* reexport safe */
|
|
273569
|
-
/* harmony export */ "zaif": () => (/* reexport safe */
|
|
273570
|
-
/* harmony export */ "zonda": () => (/* reexport safe */
|
|
271973
|
+
/* harmony export */ "wavesexchange": () => (/* reexport safe */ _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_99__.Z),
|
|
271974
|
+
/* harmony export */ "wazirx": () => (/* reexport safe */ _src_wazirx_js__WEBPACK_IMPORTED_MODULE_100__.Z),
|
|
271975
|
+
/* harmony export */ "whitebit": () => (/* reexport safe */ _src_whitebit_js__WEBPACK_IMPORTED_MODULE_101__.Z),
|
|
271976
|
+
/* harmony export */ "woo": () => (/* reexport safe */ _src_woo_js__WEBPACK_IMPORTED_MODULE_102__.Z),
|
|
271977
|
+
/* harmony export */ "yobit": () => (/* reexport safe */ _src_yobit_js__WEBPACK_IMPORTED_MODULE_103__.Z),
|
|
271978
|
+
/* harmony export */ "zaif": () => (/* reexport safe */ _src_zaif_js__WEBPACK_IMPORTED_MODULE_104__.Z),
|
|
271979
|
+
/* harmony export */ "zonda": () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_105__.Z)
|
|
273571
271980
|
/* harmony export */ });
|
|
273572
271981
|
/* harmony import */ var _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
|
|
273573
|
-
/* harmony import */ var
|
|
273574
|
-
/* harmony import */ var
|
|
273575
|
-
/* harmony import */ var
|
|
271982
|
+
/* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(2194);
|
|
271983
|
+
/* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_166__ = __webpack_require__(7100);
|
|
271984
|
+
/* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__ = __webpack_require__(6689);
|
|
273576
271985
|
/* harmony import */ var _src_ace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9869);
|
|
273577
271986
|
/* harmony import */ var _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5660);
|
|
273578
271987
|
/* harmony import */ var _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9612);
|
|
@@ -273604,140 +272013,139 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
273604
272013
|
/* harmony import */ var _src_bitstamp1_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(1242);
|
|
273605
272014
|
/* harmony import */ var _src_bittrex_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(8963);
|
|
273606
272015
|
/* harmony import */ var _src_bitvavo_js__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(9943);
|
|
273607
|
-
/* harmony import */ var
|
|
273608
|
-
/* harmony import */ var
|
|
273609
|
-
/* harmony import */ var
|
|
273610
|
-
/* harmony import */ var
|
|
273611
|
-
/* harmony import */ var
|
|
273612
|
-
/* harmony import */ var
|
|
273613
|
-
/* harmony import */ var
|
|
273614
|
-
/* harmony import */ var
|
|
273615
|
-
/* harmony import */ var
|
|
273616
|
-
/* harmony import */ var
|
|
273617
|
-
/* harmony import */ var
|
|
273618
|
-
/* harmony import */ var
|
|
273619
|
-
/* harmony import */ var
|
|
273620
|
-
/* harmony import */ var
|
|
273621
|
-
/* harmony import */ var
|
|
273622
|
-
/* harmony import */ var
|
|
273623
|
-
/* harmony import */ var
|
|
273624
|
-
/* harmony import */ var
|
|
273625
|
-
/* harmony import */ var
|
|
273626
|
-
/* harmony import */ var
|
|
273627
|
-
/* harmony import */ var
|
|
273628
|
-
/* harmony import */ var
|
|
273629
|
-
/* harmony import */ var
|
|
273630
|
-
/* harmony import */ var
|
|
273631
|
-
/* harmony import */ var
|
|
273632
|
-
/* harmony import */ var
|
|
273633
|
-
/* harmony import */ var
|
|
273634
|
-
/* harmony import */ var
|
|
273635
|
-
/* harmony import */ var
|
|
273636
|
-
/* harmony import */ var
|
|
273637
|
-
/* harmony import */ var
|
|
273638
|
-
/* harmony import */ var
|
|
273639
|
-
/* harmony import */ var
|
|
273640
|
-
/* harmony import */ var
|
|
273641
|
-
/* harmony import */ var
|
|
273642
|
-
/* harmony import */ var
|
|
273643
|
-
/* harmony import */ var
|
|
273644
|
-
/* harmony import */ var
|
|
273645
|
-
/* harmony import */ var
|
|
273646
|
-
/* harmony import */ var
|
|
273647
|
-
/* harmony import */ var
|
|
273648
|
-
/* harmony import */ var
|
|
273649
|
-
/* harmony import */ var
|
|
273650
|
-
/* harmony import */ var
|
|
273651
|
-
/* harmony import */ var
|
|
273652
|
-
/* harmony import */ var
|
|
273653
|
-
/* harmony import */ var
|
|
273654
|
-
/* harmony import */ var
|
|
273655
|
-
/* harmony import */ var
|
|
273656
|
-
/* harmony import */ var
|
|
273657
|
-
/* harmony import */ var
|
|
273658
|
-
/* harmony import */ var
|
|
273659
|
-
/* harmony import */ var
|
|
273660
|
-
/* harmony import */ var
|
|
273661
|
-
/* harmony import */ var
|
|
273662
|
-
/* harmony import */ var
|
|
273663
|
-
/* harmony import */ var
|
|
273664
|
-
/* harmony import */ var
|
|
273665
|
-
/* harmony import */ var
|
|
273666
|
-
/* harmony import */ var
|
|
273667
|
-
/* harmony import */ var
|
|
273668
|
-
/* harmony import */ var
|
|
273669
|
-
/* harmony import */ var
|
|
273670
|
-
/* harmony import */ var
|
|
273671
|
-
/* harmony import */ var
|
|
273672
|
-
/* harmony import */ var
|
|
273673
|
-
/* harmony import */ var
|
|
273674
|
-
/* harmony import */ var
|
|
273675
|
-
/* harmony import */ var
|
|
273676
|
-
/* harmony import */ var
|
|
273677
|
-
/* harmony import */ var
|
|
273678
|
-
/* harmony import */ var
|
|
273679
|
-
/* harmony import */ var
|
|
273680
|
-
/* harmony import */ var
|
|
273681
|
-
/* harmony import */ var
|
|
273682
|
-
/* harmony import */ var
|
|
273683
|
-
/* harmony import */ var
|
|
273684
|
-
/* harmony import */ var
|
|
273685
|
-
/* harmony import */ var
|
|
273686
|
-
/* harmony import */ var
|
|
273687
|
-
/* harmony import */ var
|
|
273688
|
-
/* harmony import */ var
|
|
273689
|
-
/* harmony import */ var
|
|
273690
|
-
/* harmony import */ var
|
|
273691
|
-
/* harmony import */ var
|
|
273692
|
-
/* harmony import */ var
|
|
273693
|
-
/* harmony import */ var
|
|
273694
|
-
/* harmony import */ var
|
|
273695
|
-
/* harmony import */ var
|
|
273696
|
-
/* harmony import */ var
|
|
273697
|
-
/* harmony import */ var
|
|
273698
|
-
/* harmony import */ var
|
|
273699
|
-
/* harmony import */ var
|
|
273700
|
-
/* harmony import */ var
|
|
273701
|
-
/* harmony import */ var
|
|
273702
|
-
/* harmony import */ var
|
|
273703
|
-
/* harmony import */ var
|
|
273704
|
-
/* harmony import */ var
|
|
273705
|
-
/* harmony import */ var
|
|
273706
|
-
/* harmony import */ var
|
|
273707
|
-
/* harmony import */ var
|
|
273708
|
-
/* harmony import */ var
|
|
273709
|
-
/* harmony import */ var
|
|
273710
|
-
/* harmony import */ var
|
|
273711
|
-
/* harmony import */ var
|
|
273712
|
-
/* harmony import */ var
|
|
273713
|
-
/* harmony import */ var
|
|
273714
|
-
/* harmony import */ var
|
|
273715
|
-
/* harmony import */ var
|
|
273716
|
-
/* harmony import */ var
|
|
273717
|
-
/* harmony import */ var
|
|
273718
|
-
/* harmony import */ var
|
|
273719
|
-
/* harmony import */ var
|
|
273720
|
-
/* harmony import */ var
|
|
273721
|
-
/* harmony import */ var
|
|
273722
|
-
/* harmony import */ var
|
|
273723
|
-
/* harmony import */ var
|
|
273724
|
-
/* harmony import */ var
|
|
273725
|
-
/* harmony import */ var
|
|
273726
|
-
/* harmony import */ var
|
|
273727
|
-
/* harmony import */ var
|
|
273728
|
-
/* harmony import */ var
|
|
273729
|
-
/* harmony import */ var
|
|
273730
|
-
/* harmony import */ var
|
|
273731
|
-
/* harmony import */ var
|
|
273732
|
-
/* harmony import */ var
|
|
273733
|
-
/* harmony import */ var
|
|
273734
|
-
/* harmony import */ var
|
|
273735
|
-
/* harmony import */ var
|
|
273736
|
-
/* harmony import */ var
|
|
273737
|
-
/* harmony import */ var
|
|
273738
|
-
/* harmony import */ var
|
|
273739
|
-
/* harmony import */ var
|
|
273740
|
-
/* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_165__ = __webpack_require__(3910);
|
|
272016
|
+
/* harmony import */ var _src_bl3p_js__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(9476);
|
|
272017
|
+
/* harmony import */ var _src_blockchaincom_js__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(182);
|
|
272018
|
+
/* harmony import */ var _src_btcalpha_js__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(6246);
|
|
272019
|
+
/* harmony import */ var _src_btcbox_js__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(7796);
|
|
272020
|
+
/* harmony import */ var _src_btcmarkets_js__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(1776);
|
|
272021
|
+
/* harmony import */ var _src_btctradeua_js__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(8776);
|
|
272022
|
+
/* harmony import */ var _src_btcturk_js__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(6304);
|
|
272023
|
+
/* harmony import */ var _src_bybit_js__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(3527);
|
|
272024
|
+
/* harmony import */ var _src_cex_js__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(6445);
|
|
272025
|
+
/* harmony import */ var _src_coinbase_js__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(437);
|
|
272026
|
+
/* harmony import */ var _src_coinbaseprime_js__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(1741);
|
|
272027
|
+
/* harmony import */ var _src_coinbasepro_js__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(8856);
|
|
272028
|
+
/* harmony import */ var _src_coincheck_js__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(2117);
|
|
272029
|
+
/* harmony import */ var _src_coinex_js__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(332);
|
|
272030
|
+
/* harmony import */ var _src_coinfalcon_js__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(5585);
|
|
272031
|
+
/* harmony import */ var _src_coinmate_js__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(9816);
|
|
272032
|
+
/* harmony import */ var _src_coinone_js__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(7811);
|
|
272033
|
+
/* harmony import */ var _src_coinsph_js__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(5782);
|
|
272034
|
+
/* harmony import */ var _src_coinspot_js__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(7794);
|
|
272035
|
+
/* harmony import */ var _src_cryptocom_js__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(9129);
|
|
272036
|
+
/* harmony import */ var _src_currencycom_js__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(3214);
|
|
272037
|
+
/* harmony import */ var _src_delta_js__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(1753);
|
|
272038
|
+
/* harmony import */ var _src_deribit_js__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(24);
|
|
272039
|
+
/* harmony import */ var _src_digifinex_js__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(8846);
|
|
272040
|
+
/* harmony import */ var _src_exmo_js__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(1729);
|
|
272041
|
+
/* harmony import */ var _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(5788);
|
|
272042
|
+
/* harmony import */ var _src_gate_js__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(7290);
|
|
272043
|
+
/* harmony import */ var _src_gateio_js__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(7036);
|
|
272044
|
+
/* harmony import */ var _src_gemini_js__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(6743);
|
|
272045
|
+
/* harmony import */ var _src_hitbtc_js__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(4714);
|
|
272046
|
+
/* harmony import */ var _src_hitbtc3_js__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(4815);
|
|
272047
|
+
/* harmony import */ var _src_hollaex_js__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(8422);
|
|
272048
|
+
/* harmony import */ var _src_huobi_js__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(8146);
|
|
272049
|
+
/* harmony import */ var _src_huobijp_js__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(7034);
|
|
272050
|
+
/* harmony import */ var _src_huobipro_js__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(5547);
|
|
272051
|
+
/* harmony import */ var _src_idex_js__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(8232);
|
|
272052
|
+
/* harmony import */ var _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(9570);
|
|
272053
|
+
/* harmony import */ var _src_indodax_js__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(1605);
|
|
272054
|
+
/* harmony import */ var _src_kraken_js__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(9922);
|
|
272055
|
+
/* harmony import */ var _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(4470);
|
|
272056
|
+
/* harmony import */ var _src_kucoin_js__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(3583);
|
|
272057
|
+
/* harmony import */ var _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(1924);
|
|
272058
|
+
/* harmony import */ var _src_kuna_js__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(7732);
|
|
272059
|
+
/* harmony import */ var _src_latoken_js__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(2545);
|
|
272060
|
+
/* harmony import */ var _src_lbank_js__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(3944);
|
|
272061
|
+
/* harmony import */ var _src_lbank2_js__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(8601);
|
|
272062
|
+
/* harmony import */ var _src_luno_js__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(1758);
|
|
272063
|
+
/* harmony import */ var _src_lykke_js__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(3803);
|
|
272064
|
+
/* harmony import */ var _src_mercado_js__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(9013);
|
|
272065
|
+
/* harmony import */ var _src_mexc_js__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(6641);
|
|
272066
|
+
/* harmony import */ var _src_mexc3_js__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(2305);
|
|
272067
|
+
/* harmony import */ var _src_ndax_js__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(4531);
|
|
272068
|
+
/* harmony import */ var _src_novadax_js__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(2449);
|
|
272069
|
+
/* harmony import */ var _src_oceanex_js__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(6749);
|
|
272070
|
+
/* harmony import */ var _src_okcoin_js__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(3007);
|
|
272071
|
+
/* harmony import */ var _src_okex_js__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(5322);
|
|
272072
|
+
/* harmony import */ var _src_okex5_js__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(7826);
|
|
272073
|
+
/* harmony import */ var _src_okx_js__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(4042);
|
|
272074
|
+
/* harmony import */ var _src_paymium_js__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(7082);
|
|
272075
|
+
/* harmony import */ var _src_phemex_js__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(79);
|
|
272076
|
+
/* harmony import */ var _src_poloniex_js__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(8891);
|
|
272077
|
+
/* harmony import */ var _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(6877);
|
|
272078
|
+
/* harmony import */ var _src_probit_js__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(3657);
|
|
272079
|
+
/* harmony import */ var _src_tidex_js__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(4224);
|
|
272080
|
+
/* harmony import */ var _src_timex_js__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(1067);
|
|
272081
|
+
/* harmony import */ var _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(5261);
|
|
272082
|
+
/* harmony import */ var _src_upbit_js__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(7584);
|
|
272083
|
+
/* harmony import */ var _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(3853);
|
|
272084
|
+
/* harmony import */ var _src_wazirx_js__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(6536);
|
|
272085
|
+
/* harmony import */ var _src_whitebit_js__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(5467);
|
|
272086
|
+
/* harmony import */ var _src_woo_js__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(517);
|
|
272087
|
+
/* harmony import */ var _src_yobit_js__WEBPACK_IMPORTED_MODULE_103__ = __webpack_require__(3850);
|
|
272088
|
+
/* harmony import */ var _src_zaif_js__WEBPACK_IMPORTED_MODULE_104__ = __webpack_require__(5934);
|
|
272089
|
+
/* harmony import */ var _src_zonda_js__WEBPACK_IMPORTED_MODULE_105__ = __webpack_require__(5140);
|
|
272090
|
+
/* harmony import */ var _src_pro_alpaca_js__WEBPACK_IMPORTED_MODULE_106__ = __webpack_require__(2467);
|
|
272091
|
+
/* harmony import */ var _src_pro_ascendex_js__WEBPACK_IMPORTED_MODULE_107__ = __webpack_require__(2383);
|
|
272092
|
+
/* harmony import */ var _src_pro_bequant_js__WEBPACK_IMPORTED_MODULE_108__ = __webpack_require__(8848);
|
|
272093
|
+
/* harmony import */ var _src_pro_binance_js__WEBPACK_IMPORTED_MODULE_109__ = __webpack_require__(8764);
|
|
272094
|
+
/* harmony import */ var _src_pro_binancecoinm_js__WEBPACK_IMPORTED_MODULE_110__ = __webpack_require__(5078);
|
|
272095
|
+
/* harmony import */ var _src_pro_binanceus_js__WEBPACK_IMPORTED_MODULE_111__ = __webpack_require__(1326);
|
|
272096
|
+
/* harmony import */ var _src_pro_binanceusdm_js__WEBPACK_IMPORTED_MODULE_112__ = __webpack_require__(1230);
|
|
272097
|
+
/* harmony import */ var _src_pro_bitcoincom_js__WEBPACK_IMPORTED_MODULE_113__ = __webpack_require__(453);
|
|
272098
|
+
/* harmony import */ var _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_114__ = __webpack_require__(9772);
|
|
272099
|
+
/* harmony import */ var _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_115__ = __webpack_require__(588);
|
|
272100
|
+
/* harmony import */ var _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_116__ = __webpack_require__(1885);
|
|
272101
|
+
/* harmony import */ var _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_117__ = __webpack_require__(7504);
|
|
272102
|
+
/* harmony import */ var _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_118__ = __webpack_require__(2302);
|
|
272103
|
+
/* harmony import */ var _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_119__ = __webpack_require__(2191);
|
|
272104
|
+
/* harmony import */ var _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_120__ = __webpack_require__(1297);
|
|
272105
|
+
/* harmony import */ var _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_121__ = __webpack_require__(3005);
|
|
272106
|
+
/* harmony import */ var _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_122__ = __webpack_require__(3623);
|
|
272107
|
+
/* harmony import */ var _src_pro_bittrex_js__WEBPACK_IMPORTED_MODULE_123__ = __webpack_require__(2883);
|
|
272108
|
+
/* harmony import */ var _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_124__ = __webpack_require__(6977);
|
|
272109
|
+
/* harmony import */ var _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_125__ = __webpack_require__(2519);
|
|
272110
|
+
/* harmony import */ var _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_126__ = __webpack_require__(5030);
|
|
272111
|
+
/* harmony import */ var _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_127__ = __webpack_require__(5272);
|
|
272112
|
+
/* harmony import */ var _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_128__ = __webpack_require__(3414);
|
|
272113
|
+
/* harmony import */ var _src_pro_coinbaseprime_js__WEBPACK_IMPORTED_MODULE_129__ = __webpack_require__(3848);
|
|
272114
|
+
/* harmony import */ var _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_130__ = __webpack_require__(8368);
|
|
272115
|
+
/* harmony import */ var _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_131__ = __webpack_require__(204);
|
|
272116
|
+
/* harmony import */ var _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_132__ = __webpack_require__(6820);
|
|
272117
|
+
/* harmony import */ var _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_133__ = __webpack_require__(2952);
|
|
272118
|
+
/* harmony import */ var _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_134__ = __webpack_require__(1788);
|
|
272119
|
+
/* harmony import */ var _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_135__ = __webpack_require__(9004);
|
|
272120
|
+
/* harmony import */ var _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_136__ = __webpack_require__(8335);
|
|
272121
|
+
/* harmony import */ var _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_137__ = __webpack_require__(1465);
|
|
272122
|
+
/* harmony import */ var _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_138__ = __webpack_require__(9488);
|
|
272123
|
+
/* harmony import */ var _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_139__ = __webpack_require__(5189);
|
|
272124
|
+
/* harmony import */ var _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_140__ = __webpack_require__(8559);
|
|
272125
|
+
/* harmony import */ var _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_141__ = __webpack_require__(8384);
|
|
272126
|
+
/* harmony import */ var _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_142__ = __webpack_require__(9021);
|
|
272127
|
+
/* harmony import */ var _src_pro_huobipro_js__WEBPACK_IMPORTED_MODULE_143__ = __webpack_require__(4625);
|
|
272128
|
+
/* harmony import */ var _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_144__ = __webpack_require__(3484);
|
|
272129
|
+
/* harmony import */ var _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_145__ = __webpack_require__(1311);
|
|
272130
|
+
/* harmony import */ var _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_146__ = __webpack_require__(736);
|
|
272131
|
+
/* harmony import */ var _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_147__ = __webpack_require__(449);
|
|
272132
|
+
/* harmony import */ var _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_148__ = __webpack_require__(2387);
|
|
272133
|
+
/* harmony import */ var _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_149__ = __webpack_require__(7181);
|
|
272134
|
+
/* harmony import */ var _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(627);
|
|
272135
|
+
/* harmony import */ var _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(6484);
|
|
272136
|
+
/* harmony import */ var _src_pro_mexc3_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(5351);
|
|
272137
|
+
/* harmony import */ var _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(8080);
|
|
272138
|
+
/* harmony import */ var _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(7105);
|
|
272139
|
+
/* harmony import */ var _src_pro_okex_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(1530);
|
|
272140
|
+
/* harmony import */ var _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(2214);
|
|
272141
|
+
/* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(4360);
|
|
272142
|
+
/* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(7924);
|
|
272143
|
+
/* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(3541);
|
|
272144
|
+
/* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(9782);
|
|
272145
|
+
/* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(7614);
|
|
272146
|
+
/* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(4828);
|
|
272147
|
+
/* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(5630);
|
|
272148
|
+
/* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(3910);
|
|
273741
272149
|
/*
|
|
273742
272150
|
|
|
273743
272151
|
MIT License
|
|
@@ -273772,7 +272180,7 @@ SOFTWARE.
|
|
|
273772
272180
|
|
|
273773
272181
|
//-----------------------------------------------------------------------------
|
|
273774
272182
|
// this is updated by vss.js when building
|
|
273775
|
-
const version = '4.0.
|
|
272183
|
+
const version = '4.0.102';
|
|
273776
272184
|
_src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
|
|
273777
272185
|
//-----------------------------------------------------------------------------
|
|
273778
272186
|
|
|
@@ -273878,7 +272286,6 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e
|
|
|
273878
272286
|
|
|
273879
272287
|
|
|
273880
272288
|
|
|
273881
|
-
|
|
273882
272289
|
|
|
273883
272290
|
|
|
273884
272291
|
// pro exchanges
|
|
@@ -273973,142 +272380,141 @@ const exchanges = {
|
|
|
273973
272380
|
'bitstamp1': _src_bitstamp1_js__WEBPACK_IMPORTED_MODULE_29__/* ["default"] */ .Z,
|
|
273974
272381
|
'bittrex': _src_bittrex_js__WEBPACK_IMPORTED_MODULE_30__/* ["default"] */ .Z,
|
|
273975
272382
|
'bitvavo': _src_bitvavo_js__WEBPACK_IMPORTED_MODULE_31__/* ["default"] */ .Z,
|
|
273976
|
-
'
|
|
273977
|
-
'
|
|
273978
|
-
'
|
|
273979
|
-
'
|
|
273980
|
-
'
|
|
273981
|
-
'
|
|
273982
|
-
'
|
|
273983
|
-
'
|
|
273984
|
-
'
|
|
273985
|
-
'
|
|
273986
|
-
'
|
|
273987
|
-
'
|
|
273988
|
-
'
|
|
273989
|
-
'
|
|
273990
|
-
'
|
|
273991
|
-
'
|
|
273992
|
-
'
|
|
273993
|
-
'
|
|
273994
|
-
'
|
|
273995
|
-
'
|
|
273996
|
-
'
|
|
273997
|
-
'
|
|
273998
|
-
'
|
|
273999
|
-
'
|
|
274000
|
-
'
|
|
274001
|
-
'
|
|
274002
|
-
'
|
|
274003
|
-
'
|
|
274004
|
-
'
|
|
274005
|
-
'
|
|
274006
|
-
'
|
|
274007
|
-
'
|
|
274008
|
-
'
|
|
274009
|
-
'
|
|
274010
|
-
'
|
|
274011
|
-
'
|
|
274012
|
-
'
|
|
274013
|
-
'
|
|
274014
|
-
'
|
|
274015
|
-
'
|
|
274016
|
-
'
|
|
274017
|
-
'
|
|
274018
|
-
'
|
|
274019
|
-
'
|
|
274020
|
-
'
|
|
274021
|
-
'
|
|
274022
|
-
'
|
|
274023
|
-
'
|
|
274024
|
-
'
|
|
274025
|
-
'
|
|
274026
|
-
'
|
|
274027
|
-
'
|
|
274028
|
-
'
|
|
274029
|
-
'
|
|
274030
|
-
'
|
|
274031
|
-
'
|
|
274032
|
-
'
|
|
274033
|
-
'
|
|
274034
|
-
'
|
|
274035
|
-
'
|
|
274036
|
-
'
|
|
274037
|
-
'
|
|
274038
|
-
'
|
|
274039
|
-
'
|
|
274040
|
-
'
|
|
274041
|
-
'
|
|
274042
|
-
'
|
|
274043
|
-
'
|
|
274044
|
-
'
|
|
274045
|
-
'
|
|
274046
|
-
'
|
|
274047
|
-
'
|
|
274048
|
-
'
|
|
274049
|
-
'
|
|
274050
|
-
'zonda': _src_zonda_js__WEBPACK_IMPORTED_MODULE_106__/* ["default"] */ .Z,
|
|
272383
|
+
'bl3p': _src_bl3p_js__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .Z,
|
|
272384
|
+
'blockchaincom': _src_blockchaincom_js__WEBPACK_IMPORTED_MODULE_33__/* ["default"] */ .Z,
|
|
272385
|
+
'btcalpha': _src_btcalpha_js__WEBPACK_IMPORTED_MODULE_34__/* ["default"] */ .Z,
|
|
272386
|
+
'btcbox': _src_btcbox_js__WEBPACK_IMPORTED_MODULE_35__/* ["default"] */ .Z,
|
|
272387
|
+
'btcmarkets': _src_btcmarkets_js__WEBPACK_IMPORTED_MODULE_36__/* ["default"] */ .Z,
|
|
272388
|
+
'btctradeua': _src_btctradeua_js__WEBPACK_IMPORTED_MODULE_37__/* ["default"] */ .Z,
|
|
272389
|
+
'btcturk': _src_btcturk_js__WEBPACK_IMPORTED_MODULE_38__/* ["default"] */ .Z,
|
|
272390
|
+
'bybit': _src_bybit_js__WEBPACK_IMPORTED_MODULE_39__/* ["default"] */ .Z,
|
|
272391
|
+
'cex': _src_cex_js__WEBPACK_IMPORTED_MODULE_40__/* ["default"] */ .Z,
|
|
272392
|
+
'coinbase': _src_coinbase_js__WEBPACK_IMPORTED_MODULE_41__/* ["default"] */ .Z,
|
|
272393
|
+
'coinbaseprime': _src_coinbaseprime_js__WEBPACK_IMPORTED_MODULE_42__/* ["default"] */ .Z,
|
|
272394
|
+
'coinbasepro': _src_coinbasepro_js__WEBPACK_IMPORTED_MODULE_43__/* ["default"] */ .Z,
|
|
272395
|
+
'coincheck': _src_coincheck_js__WEBPACK_IMPORTED_MODULE_44__/* ["default"] */ .Z,
|
|
272396
|
+
'coinex': _src_coinex_js__WEBPACK_IMPORTED_MODULE_45__/* ["default"] */ .Z,
|
|
272397
|
+
'coinfalcon': _src_coinfalcon_js__WEBPACK_IMPORTED_MODULE_46__/* ["default"] */ .Z,
|
|
272398
|
+
'coinmate': _src_coinmate_js__WEBPACK_IMPORTED_MODULE_47__/* ["default"] */ .Z,
|
|
272399
|
+
'coinone': _src_coinone_js__WEBPACK_IMPORTED_MODULE_48__/* ["default"] */ .Z,
|
|
272400
|
+
'coinsph': _src_coinsph_js__WEBPACK_IMPORTED_MODULE_49__/* ["default"] */ .Z,
|
|
272401
|
+
'coinspot': _src_coinspot_js__WEBPACK_IMPORTED_MODULE_50__/* ["default"] */ .Z,
|
|
272402
|
+
'cryptocom': _src_cryptocom_js__WEBPACK_IMPORTED_MODULE_51__/* ["default"] */ .Z,
|
|
272403
|
+
'currencycom': _src_currencycom_js__WEBPACK_IMPORTED_MODULE_52__/* ["default"] */ .Z,
|
|
272404
|
+
'delta': _src_delta_js__WEBPACK_IMPORTED_MODULE_53__/* ["default"] */ .Z,
|
|
272405
|
+
'deribit': _src_deribit_js__WEBPACK_IMPORTED_MODULE_54__/* ["default"] */ .Z,
|
|
272406
|
+
'digifinex': _src_digifinex_js__WEBPACK_IMPORTED_MODULE_55__/* ["default"] */ .Z,
|
|
272407
|
+
'exmo': _src_exmo_js__WEBPACK_IMPORTED_MODULE_56__/* ["default"] */ .Z,
|
|
272408
|
+
'fmfwio': _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_57__/* ["default"] */ .Z,
|
|
272409
|
+
'gate': _src_gate_js__WEBPACK_IMPORTED_MODULE_58__/* ["default"] */ .Z,
|
|
272410
|
+
'gateio': _src_gateio_js__WEBPACK_IMPORTED_MODULE_59__/* ["default"] */ .Z,
|
|
272411
|
+
'gemini': _src_gemini_js__WEBPACK_IMPORTED_MODULE_60__/* ["default"] */ .Z,
|
|
272412
|
+
'hitbtc': _src_hitbtc_js__WEBPACK_IMPORTED_MODULE_61__/* ["default"] */ .Z,
|
|
272413
|
+
'hitbtc3': _src_hitbtc3_js__WEBPACK_IMPORTED_MODULE_62__/* ["default"] */ .Z,
|
|
272414
|
+
'hollaex': _src_hollaex_js__WEBPACK_IMPORTED_MODULE_63__/* ["default"] */ .Z,
|
|
272415
|
+
'huobi': _src_huobi_js__WEBPACK_IMPORTED_MODULE_64__/* ["default"] */ .Z,
|
|
272416
|
+
'huobijp': _src_huobijp_js__WEBPACK_IMPORTED_MODULE_65__/* ["default"] */ .Z,
|
|
272417
|
+
'huobipro': _src_huobipro_js__WEBPACK_IMPORTED_MODULE_66__/* ["default"] */ .Z,
|
|
272418
|
+
'idex': _src_idex_js__WEBPACK_IMPORTED_MODULE_67__/* ["default"] */ .Z,
|
|
272419
|
+
'independentreserve': _src_independentreserve_js__WEBPACK_IMPORTED_MODULE_68__/* ["default"] */ .Z,
|
|
272420
|
+
'indodax': _src_indodax_js__WEBPACK_IMPORTED_MODULE_69__/* ["default"] */ .Z,
|
|
272421
|
+
'kraken': _src_kraken_js__WEBPACK_IMPORTED_MODULE_70__/* ["default"] */ .Z,
|
|
272422
|
+
'krakenfutures': _src_krakenfutures_js__WEBPACK_IMPORTED_MODULE_71__/* ["default"] */ .Z,
|
|
272423
|
+
'kucoin': _src_kucoin_js__WEBPACK_IMPORTED_MODULE_72__/* ["default"] */ .Z,
|
|
272424
|
+
'kucoinfutures': _src_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_73__/* ["default"] */ .Z,
|
|
272425
|
+
'kuna': _src_kuna_js__WEBPACK_IMPORTED_MODULE_74__/* ["default"] */ .Z,
|
|
272426
|
+
'latoken': _src_latoken_js__WEBPACK_IMPORTED_MODULE_75__/* ["default"] */ .Z,
|
|
272427
|
+
'lbank': _src_lbank_js__WEBPACK_IMPORTED_MODULE_76__/* ["default"] */ .Z,
|
|
272428
|
+
'lbank2': _src_lbank2_js__WEBPACK_IMPORTED_MODULE_77__/* ["default"] */ .Z,
|
|
272429
|
+
'luno': _src_luno_js__WEBPACK_IMPORTED_MODULE_78__/* ["default"] */ .Z,
|
|
272430
|
+
'lykke': _src_lykke_js__WEBPACK_IMPORTED_MODULE_79__/* ["default"] */ .Z,
|
|
272431
|
+
'mercado': _src_mercado_js__WEBPACK_IMPORTED_MODULE_80__/* ["default"] */ .Z,
|
|
272432
|
+
'mexc': _src_mexc_js__WEBPACK_IMPORTED_MODULE_81__/* ["default"] */ .Z,
|
|
272433
|
+
'mexc3': _src_mexc3_js__WEBPACK_IMPORTED_MODULE_82__/* ["default"] */ .Z,
|
|
272434
|
+
'ndax': _src_ndax_js__WEBPACK_IMPORTED_MODULE_83__/* ["default"] */ .Z,
|
|
272435
|
+
'novadax': _src_novadax_js__WEBPACK_IMPORTED_MODULE_84__/* ["default"] */ .Z,
|
|
272436
|
+
'oceanex': _src_oceanex_js__WEBPACK_IMPORTED_MODULE_85__/* ["default"] */ .Z,
|
|
272437
|
+
'okcoin': _src_okcoin_js__WEBPACK_IMPORTED_MODULE_86__/* ["default"] */ .Z,
|
|
272438
|
+
'okex': _src_okex_js__WEBPACK_IMPORTED_MODULE_87__/* ["default"] */ .Z,
|
|
272439
|
+
'okex5': _src_okex5_js__WEBPACK_IMPORTED_MODULE_88__/* ["default"] */ .Z,
|
|
272440
|
+
'okx': _src_okx_js__WEBPACK_IMPORTED_MODULE_89__/* ["default"] */ .Z,
|
|
272441
|
+
'paymium': _src_paymium_js__WEBPACK_IMPORTED_MODULE_90__/* ["default"] */ .Z,
|
|
272442
|
+
'phemex': _src_phemex_js__WEBPACK_IMPORTED_MODULE_91__/* ["default"] */ .Z,
|
|
272443
|
+
'poloniex': _src_poloniex_js__WEBPACK_IMPORTED_MODULE_92__/* ["default"] */ .Z,
|
|
272444
|
+
'poloniexfutures': _src_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_93__/* ["default"] */ .Z,
|
|
272445
|
+
'probit': _src_probit_js__WEBPACK_IMPORTED_MODULE_94__/* ["default"] */ .Z,
|
|
272446
|
+
'tidex': _src_tidex_js__WEBPACK_IMPORTED_MODULE_95__/* ["default"] */ .Z,
|
|
272447
|
+
'timex': _src_timex_js__WEBPACK_IMPORTED_MODULE_96__/* ["default"] */ .Z,
|
|
272448
|
+
'tokocrypto': _src_tokocrypto_js__WEBPACK_IMPORTED_MODULE_97__/* ["default"] */ .Z,
|
|
272449
|
+
'upbit': _src_upbit_js__WEBPACK_IMPORTED_MODULE_98__/* ["default"] */ .Z,
|
|
272450
|
+
'wavesexchange': _src_wavesexchange_js__WEBPACK_IMPORTED_MODULE_99__/* ["default"] */ .Z,
|
|
272451
|
+
'wazirx': _src_wazirx_js__WEBPACK_IMPORTED_MODULE_100__/* ["default"] */ .Z,
|
|
272452
|
+
'whitebit': _src_whitebit_js__WEBPACK_IMPORTED_MODULE_101__/* ["default"] */ .Z,
|
|
272453
|
+
'woo': _src_woo_js__WEBPACK_IMPORTED_MODULE_102__/* ["default"] */ .Z,
|
|
272454
|
+
'yobit': _src_yobit_js__WEBPACK_IMPORTED_MODULE_103__/* ["default"] */ .Z,
|
|
272455
|
+
'zaif': _src_zaif_js__WEBPACK_IMPORTED_MODULE_104__/* ["default"] */ .Z,
|
|
272456
|
+
'zonda': _src_zonda_js__WEBPACK_IMPORTED_MODULE_105__/* ["default"] */ .Z,
|
|
274051
272457
|
};
|
|
274052
272458
|
const pro = {
|
|
274053
|
-
'alpaca':
|
|
274054
|
-
'ascendex':
|
|
274055
|
-
'bequant':
|
|
274056
|
-
'binance':
|
|
274057
|
-
'binancecoinm':
|
|
274058
|
-
'binanceus':
|
|
274059
|
-
'binanceusdm':
|
|
274060
|
-
'bitcoincom':
|
|
274061
|
-
'bitfinex':
|
|
274062
|
-
'bitfinex2':
|
|
274063
|
-
'bitget':
|
|
274064
|
-
'bitmart':
|
|
274065
|
-
'bitmex':
|
|
274066
|
-
'bitopro':
|
|
274067
|
-
'bitpanda':
|
|
274068
|
-
'bitrue':
|
|
274069
|
-
'bitstamp':
|
|
274070
|
-
'bittrex':
|
|
274071
|
-
'bitvavo':
|
|
274072
|
-
'blockchaincom':
|
|
274073
|
-
'bybit':
|
|
274074
|
-
'cex':
|
|
274075
|
-
'coinbase':
|
|
274076
|
-
'coinbaseprime':
|
|
274077
|
-
'coinbasepro':
|
|
274078
|
-
'coinex':
|
|
274079
|
-
'cryptocom':
|
|
274080
|
-
'currencycom':
|
|
274081
|
-
'deribit':
|
|
274082
|
-
'exmo':
|
|
274083
|
-
'gate':
|
|
274084
|
-
'gateio':
|
|
274085
|
-
'gemini':
|
|
274086
|
-
'hitbtc':
|
|
274087
|
-
'hollaex':
|
|
274088
|
-
'huobi':
|
|
274089
|
-
'huobijp':
|
|
274090
|
-
'huobipro':
|
|
274091
|
-
'idex':
|
|
274092
|
-
'independentreserve':
|
|
274093
|
-
'kraken':
|
|
274094
|
-
'krakenfutures':
|
|
274095
|
-
'kucoin':
|
|
274096
|
-
'kucoinfutures':
|
|
274097
|
-
'luno':
|
|
274098
|
-
'mexc':
|
|
274099
|
-
'mexc3':
|
|
274100
|
-
'ndax':
|
|
274101
|
-
'okcoin':
|
|
274102
|
-
'okex':
|
|
274103
|
-
'okx':
|
|
274104
|
-
'phemex':
|
|
274105
|
-
'poloniex':
|
|
274106
|
-
'poloniexfutures':
|
|
274107
|
-
'probit':
|
|
274108
|
-
'upbit':
|
|
274109
|
-
'wazirx':
|
|
274110
|
-
'whitebit':
|
|
274111
|
-
'woo':
|
|
272459
|
+
'alpaca': _src_pro_alpaca_js__WEBPACK_IMPORTED_MODULE_106__/* ["default"] */ .Z,
|
|
272460
|
+
'ascendex': _src_pro_ascendex_js__WEBPACK_IMPORTED_MODULE_107__/* ["default"] */ .Z,
|
|
272461
|
+
'bequant': _src_pro_bequant_js__WEBPACK_IMPORTED_MODULE_108__/* ["default"] */ .Z,
|
|
272462
|
+
'binance': _src_pro_binance_js__WEBPACK_IMPORTED_MODULE_109__/* ["default"] */ .Z,
|
|
272463
|
+
'binancecoinm': _src_pro_binancecoinm_js__WEBPACK_IMPORTED_MODULE_110__/* ["default"] */ .Z,
|
|
272464
|
+
'binanceus': _src_pro_binanceus_js__WEBPACK_IMPORTED_MODULE_111__/* ["default"] */ .Z,
|
|
272465
|
+
'binanceusdm': _src_pro_binanceusdm_js__WEBPACK_IMPORTED_MODULE_112__/* ["default"] */ .Z,
|
|
272466
|
+
'bitcoincom': _src_pro_bitcoincom_js__WEBPACK_IMPORTED_MODULE_113__/* ["default"] */ .Z,
|
|
272467
|
+
'bitfinex': _src_pro_bitfinex_js__WEBPACK_IMPORTED_MODULE_114__/* ["default"] */ .Z,
|
|
272468
|
+
'bitfinex2': _src_pro_bitfinex2_js__WEBPACK_IMPORTED_MODULE_115__/* ["default"] */ .Z,
|
|
272469
|
+
'bitget': _src_pro_bitget_js__WEBPACK_IMPORTED_MODULE_116__/* ["default"] */ .Z,
|
|
272470
|
+
'bitmart': _src_pro_bitmart_js__WEBPACK_IMPORTED_MODULE_117__/* ["default"] */ .Z,
|
|
272471
|
+
'bitmex': _src_pro_bitmex_js__WEBPACK_IMPORTED_MODULE_118__/* ["default"] */ .Z,
|
|
272472
|
+
'bitopro': _src_pro_bitopro_js__WEBPACK_IMPORTED_MODULE_119__/* ["default"] */ .Z,
|
|
272473
|
+
'bitpanda': _src_pro_bitpanda_js__WEBPACK_IMPORTED_MODULE_120__/* ["default"] */ .Z,
|
|
272474
|
+
'bitrue': _src_pro_bitrue_js__WEBPACK_IMPORTED_MODULE_121__/* ["default"] */ .Z,
|
|
272475
|
+
'bitstamp': _src_pro_bitstamp_js__WEBPACK_IMPORTED_MODULE_122__/* ["default"] */ .Z,
|
|
272476
|
+
'bittrex': _src_pro_bittrex_js__WEBPACK_IMPORTED_MODULE_123__/* ["default"] */ .Z,
|
|
272477
|
+
'bitvavo': _src_pro_bitvavo_js__WEBPACK_IMPORTED_MODULE_124__/* ["default"] */ .Z,
|
|
272478
|
+
'blockchaincom': _src_pro_blockchaincom_js__WEBPACK_IMPORTED_MODULE_125__/* ["default"] */ .Z,
|
|
272479
|
+
'bybit': _src_pro_bybit_js__WEBPACK_IMPORTED_MODULE_126__/* ["default"] */ .Z,
|
|
272480
|
+
'cex': _src_pro_cex_js__WEBPACK_IMPORTED_MODULE_127__/* ["default"] */ .Z,
|
|
272481
|
+
'coinbase': _src_pro_coinbase_js__WEBPACK_IMPORTED_MODULE_128__/* ["default"] */ .Z,
|
|
272482
|
+
'coinbaseprime': _src_pro_coinbaseprime_js__WEBPACK_IMPORTED_MODULE_129__/* ["default"] */ .Z,
|
|
272483
|
+
'coinbasepro': _src_pro_coinbasepro_js__WEBPACK_IMPORTED_MODULE_130__/* ["default"] */ .Z,
|
|
272484
|
+
'coinex': _src_pro_coinex_js__WEBPACK_IMPORTED_MODULE_131__/* ["default"] */ .Z,
|
|
272485
|
+
'cryptocom': _src_pro_cryptocom_js__WEBPACK_IMPORTED_MODULE_132__/* ["default"] */ .Z,
|
|
272486
|
+
'currencycom': _src_pro_currencycom_js__WEBPACK_IMPORTED_MODULE_133__/* ["default"] */ .Z,
|
|
272487
|
+
'deribit': _src_pro_deribit_js__WEBPACK_IMPORTED_MODULE_134__/* ["default"] */ .Z,
|
|
272488
|
+
'exmo': _src_pro_exmo_js__WEBPACK_IMPORTED_MODULE_135__/* ["default"] */ .Z,
|
|
272489
|
+
'gate': _src_pro_gate_js__WEBPACK_IMPORTED_MODULE_136__/* ["default"] */ .Z,
|
|
272490
|
+
'gateio': _src_pro_gateio_js__WEBPACK_IMPORTED_MODULE_137__/* ["default"] */ .Z,
|
|
272491
|
+
'gemini': _src_pro_gemini_js__WEBPACK_IMPORTED_MODULE_138__/* ["default"] */ .Z,
|
|
272492
|
+
'hitbtc': _src_pro_hitbtc_js__WEBPACK_IMPORTED_MODULE_139__/* ["default"] */ .Z,
|
|
272493
|
+
'hollaex': _src_pro_hollaex_js__WEBPACK_IMPORTED_MODULE_140__/* ["default"] */ .Z,
|
|
272494
|
+
'huobi': _src_pro_huobi_js__WEBPACK_IMPORTED_MODULE_141__/* ["default"] */ .Z,
|
|
272495
|
+
'huobijp': _src_pro_huobijp_js__WEBPACK_IMPORTED_MODULE_142__/* ["default"] */ .Z,
|
|
272496
|
+
'huobipro': _src_pro_huobipro_js__WEBPACK_IMPORTED_MODULE_143__/* ["default"] */ .Z,
|
|
272497
|
+
'idex': _src_pro_idex_js__WEBPACK_IMPORTED_MODULE_144__/* ["default"] */ .Z,
|
|
272498
|
+
'independentreserve': _src_pro_independentreserve_js__WEBPACK_IMPORTED_MODULE_145__/* ["default"] */ .Z,
|
|
272499
|
+
'kraken': _src_pro_kraken_js__WEBPACK_IMPORTED_MODULE_146__/* ["default"] */ .Z,
|
|
272500
|
+
'krakenfutures': _src_pro_krakenfutures_js__WEBPACK_IMPORTED_MODULE_147__/* ["default"] */ .Z,
|
|
272501
|
+
'kucoin': _src_pro_kucoin_js__WEBPACK_IMPORTED_MODULE_148__/* ["default"] */ .Z,
|
|
272502
|
+
'kucoinfutures': _src_pro_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_149__/* ["default"] */ .Z,
|
|
272503
|
+
'luno': _src_pro_luno_js__WEBPACK_IMPORTED_MODULE_150__/* ["default"] */ .Z,
|
|
272504
|
+
'mexc': _src_pro_mexc_js__WEBPACK_IMPORTED_MODULE_151__/* ["default"] */ .Z,
|
|
272505
|
+
'mexc3': _src_pro_mexc3_js__WEBPACK_IMPORTED_MODULE_152__/* ["default"] */ .Z,
|
|
272506
|
+
'ndax': _src_pro_ndax_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
|
|
272507
|
+
'okcoin': _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
|
|
272508
|
+
'okex': _src_pro_okex_js__WEBPACK_IMPORTED_MODULE_155__/* ["default"] */ .Z,
|
|
272509
|
+
'okx': _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_156__/* ["default"] */ .Z,
|
|
272510
|
+
'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_157__/* ["default"] */ .Z,
|
|
272511
|
+
'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_158__/* ["default"] */ .Z,
|
|
272512
|
+
'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_159__/* ["default"] */ .Z,
|
|
272513
|
+
'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_160__/* ["default"] */ .Z,
|
|
272514
|
+
'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_161__/* ["default"] */ .Z,
|
|
272515
|
+
'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_162__/* ["default"] */ .Z,
|
|
272516
|
+
'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_163__/* ["default"] */ .Z,
|
|
272517
|
+
'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_164__/* ["default"] */ .Z,
|
|
274112
272518
|
};
|
|
274113
272519
|
for (const exchange in pro) {
|
|
274114
272520
|
// const ccxtExchange = exchanges[exchange]
|
|
@@ -274121,7 +272527,7 @@ for (const exchange in pro) {
|
|
|
274121
272527
|
pro.exchanges = Object.keys(pro);
|
|
274122
272528
|
pro['Exchange'] = _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e; // now the same for rest and ts
|
|
274123
272529
|
//-----------------------------------------------------------------------------
|
|
274124
|
-
const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise:
|
|
272530
|
+
const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise: _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_165__/* .Precise */ .O, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, _src_base_functions_js__WEBPACK_IMPORTED_MODULE_166__, _src_base_errors_js__WEBPACK_IMPORTED_MODULE_167__);
|
|
274125
272531
|
|
|
274126
272532
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ccxt);
|
|
274127
272533
|
//-----------------------------------------------------------------------------
|