ccxt 4.0.77 → 4.0.79
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/ccxt.browser.js +175 -168
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/base/Exchange.js +7 -1
- package/dist/cjs/src/binance.js +78 -67
- package/dist/cjs/src/bingx.js +24 -21
- package/dist/cjs/src/bithumb.js +1 -1
- package/dist/cjs/src/mexc.js +1 -0
- package/dist/cjs/src/okx.js +1 -0
- package/dist/cjs/src/phemex.js +8 -3
- package/dist/cjs/src/poloniex.js +54 -74
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/binance.d.ts +12 -1
- package/js/src/abstract/binancecoinm.d.ts +12 -1
- package/js/src/abstract/binanceus.d.ts +12 -1
- package/js/src/abstract/binanceusdm.d.ts +12 -1
- package/js/src/abstract/bingx.d.ts +1 -1
- package/js/src/abstract/mexc.d.ts +1 -0
- package/js/src/abstract/mexc3.d.ts +1 -0
- package/js/src/abstract/okex.d.ts +1 -0
- package/js/src/abstract/okex5.d.ts +1 -0
- package/js/src/abstract/okx.d.ts +1 -0
- package/js/src/base/Exchange.d.ts +1 -0
- package/js/src/base/Exchange.js +7 -1
- package/js/src/binance.js +78 -67
- package/js/src/bingx.d.ts +1 -1
- package/js/src/bingx.js +24 -21
- package/js/src/bithumb.js +1 -1
- package/js/src/mexc.js +1 -0
- package/js/src/okx.js +1 -0
- package/js/src/phemex.js +8 -3
- package/js/src/poloniex.js +54 -74
- package/package.json +1 -1
- package/skip-tests.json +0 -1
package/dist/cjs/ccxt.js
CHANGED
|
@@ -180,7 +180,7 @@ var woo$1 = require('./src/pro/woo.js');
|
|
|
180
180
|
|
|
181
181
|
//-----------------------------------------------------------------------------
|
|
182
182
|
// this is updated by vss.js when building
|
|
183
|
-
const version = '4.0.
|
|
183
|
+
const version = '4.0.79';
|
|
184
184
|
Exchange["default"].ccxtVersion = version;
|
|
185
185
|
const exchanges = {
|
|
186
186
|
'ace': ace,
|
|
@@ -3366,12 +3366,18 @@ class Exchange {
|
|
|
3366
3366
|
precision = this.safeValue(networkItem, 'precision', precision);
|
|
3367
3367
|
}
|
|
3368
3368
|
if (precision === undefined) {
|
|
3369
|
-
return fee;
|
|
3369
|
+
return this.forceString(fee);
|
|
3370
3370
|
}
|
|
3371
3371
|
else {
|
|
3372
3372
|
return this.decimalToPrecision(fee, ROUND, precision, this.precisionMode, this.paddingMode);
|
|
3373
3373
|
}
|
|
3374
3374
|
}
|
|
3375
|
+
forceString(value) {
|
|
3376
|
+
if (typeof value !== 'string') {
|
|
3377
|
+
return this.numberToString(value);
|
|
3378
|
+
}
|
|
3379
|
+
return value;
|
|
3380
|
+
}
|
|
3375
3381
|
isTickPrecision() {
|
|
3376
3382
|
return this.precisionMode === TICK_SIZE;
|
|
3377
3383
|
}
|
package/dist/cjs/src/binance.js
CHANGED
|
@@ -186,12 +186,11 @@ class binance extends binance$1 {
|
|
|
186
186
|
'api': {
|
|
187
187
|
// the API structure below will need 3-layer apidefs
|
|
188
188
|
'sapi': {
|
|
189
|
-
// IP (api) = 1200 per minute => (rateLimit = 50)
|
|
190
189
|
// IP (sapi) request rate limit of 12 000 per minute
|
|
191
|
-
// 1 IP (sapi) => cost = 0.1
|
|
190
|
+
// 1 IP (sapi) => cost = 0.1 => (1000 / (50 * 0.1)) * 60 = 12000
|
|
192
191
|
// 10 IP (sapi) => cost = 1
|
|
193
192
|
// UID (sapi) request rate limit of 180 000 per minute
|
|
194
|
-
// 1 UID (sapi) => cost =
|
|
193
|
+
// 1 UID (sapi) => cost = 0.006667 => (1000 / (50 * 0.006667)) * 60 = 180000
|
|
195
194
|
'get': {
|
|
196
195
|
'system/status': 0.1,
|
|
197
196
|
// these endpoints require this.apiKey
|
|
@@ -207,7 +206,7 @@ class binance extends binance$1 {
|
|
|
207
206
|
'asset/transfer': 0.1,
|
|
208
207
|
'asset/assetDetail': 0.1,
|
|
209
208
|
'asset/tradeFee': 0.1,
|
|
210
|
-
'asset/ledger-transfer/cloud-mining/queryByPage': 4,
|
|
209
|
+
'asset/ledger-transfer/cloud-mining/queryByPage': 4.0002,
|
|
211
210
|
'asset/convert-transfer/queryByPage': 0.033335,
|
|
212
211
|
'margin/loan': 1,
|
|
213
212
|
'margin/repay': 1,
|
|
@@ -236,15 +235,16 @@ class binance extends binance$1 {
|
|
|
236
235
|
'margin/isolatedMarginTier': 0.1,
|
|
237
236
|
'margin/rateLimit/order': 2,
|
|
238
237
|
'margin/dribblet': 0.1,
|
|
239
|
-
'margin/dust': 20,
|
|
238
|
+
'margin/dust': 20.001,
|
|
240
239
|
'margin/crossMarginCollateralRatio': 10,
|
|
241
240
|
'margin/exchange-small-liability': 0.6667,
|
|
242
241
|
'margin/exchange-small-liability-history': 0.6667,
|
|
243
242
|
'margin/next-hourly-interest-rate': 0.6667,
|
|
243
|
+
'margin/delist-schedule': 0.6667,
|
|
244
244
|
'loan/vip/loanable/data': 40,
|
|
245
245
|
'loan/vip/collateral/data': 40,
|
|
246
|
-
'loan/vip/request/data':
|
|
247
|
-
'loan/income': 40,
|
|
246
|
+
'loan/vip/request/data': 2.6668,
|
|
247
|
+
'loan/income': 40.002,
|
|
248
248
|
'loan/ongoing/orders': 40,
|
|
249
249
|
'loan/ltv/adjustment/history': 40,
|
|
250
250
|
'loan/borrow/history': 40,
|
|
@@ -263,7 +263,7 @@ class binance extends binance$1 {
|
|
|
263
263
|
'futures/loan/wallet': 1,
|
|
264
264
|
'futures/loan/adjustCollateral/history': 1,
|
|
265
265
|
'futures/loan/liquidationHistory': 1,
|
|
266
|
-
'rebate/taxQuery':
|
|
266
|
+
'rebate/taxQuery': 80.004,
|
|
267
267
|
// https://binance-docs.github.io/apidocs/spot/en/#withdraw-sapi
|
|
268
268
|
'capital/config/getall': 1,
|
|
269
269
|
'capital/deposit/address': 1,
|
|
@@ -272,7 +272,7 @@ class binance extends binance$1 {
|
|
|
272
272
|
'capital/deposit/subHisrec': 0.1,
|
|
273
273
|
'capital/withdraw/history': 0.1,
|
|
274
274
|
'capital/contract/convertible-coins': 4.0002,
|
|
275
|
-
'convert/tradeFlow': 20.
|
|
275
|
+
'convert/tradeFlow': 20.001,
|
|
276
276
|
'convert/exchangeInfo': 50,
|
|
277
277
|
'convert/assetInfo': 10,
|
|
278
278
|
'convert/orderStatus': 0.6667,
|
|
@@ -280,7 +280,6 @@ class binance extends binance$1 {
|
|
|
280
280
|
'account/apiTradingStatus': 0.1,
|
|
281
281
|
'account/apiRestrictions/ipRestriction': 0.1,
|
|
282
282
|
'bnbBurn': 0.1,
|
|
283
|
-
// 'sub-account/assets': 1, (v3 endpoint)
|
|
284
283
|
'sub-account/futures/account': 1,
|
|
285
284
|
'sub-account/futures/accountSummary': 0.1,
|
|
286
285
|
'sub-account/futures/positionRisk': 1,
|
|
@@ -294,15 +293,16 @@ class binance extends binance$1 {
|
|
|
294
293
|
'sub-account/transfer/subUserHistory': 0.1,
|
|
295
294
|
'sub-account/universalTransfer': 0.1,
|
|
296
295
|
'sub-account/apiRestrictions/ipRestriction/thirdPartyList': 1,
|
|
297
|
-
'sub-account/transaction-
|
|
296
|
+
'sub-account/transaction-statistics': 0.40002,
|
|
297
|
+
'sub-account/subAccountApi/ipRestriction': 20.001,
|
|
298
298
|
'managed-subaccount/asset': 0.1,
|
|
299
299
|
'managed-subaccount/accountSnapshot': 240,
|
|
300
300
|
'managed-subaccount/queryTransLogForInvestor': 0.1,
|
|
301
|
-
'managed-subaccount/queryTransLogForTradeParent': 0.
|
|
302
|
-
'managed-subaccount/fetch-future-asset': 0.
|
|
301
|
+
'managed-subaccount/queryTransLogForTradeParent': 0.40002,
|
|
302
|
+
'managed-subaccount/fetch-future-asset': 0.40002,
|
|
303
303
|
'managed-subaccount/marginAsset': 0.1,
|
|
304
|
-
'managed-subaccount/info': 0.
|
|
305
|
-
'managed-subaccount/deposit/address': 0.
|
|
304
|
+
'managed-subaccount/info': 0.40002,
|
|
305
|
+
'managed-subaccount/deposit/address': 0.006667,
|
|
306
306
|
'managed-subaccount/query-trans-log': 0.40002,
|
|
307
307
|
// lending endpoints
|
|
308
308
|
'lending/daily/product/list': 0.1,
|
|
@@ -380,6 +380,9 @@ class binance extends binance$1 {
|
|
|
380
380
|
'giftcard/verify': 0.1,
|
|
381
381
|
'giftcard/cryptography/rsa-public-key': 0.1,
|
|
382
382
|
'giftcard/buyCode/token-limit': 0.1,
|
|
383
|
+
'algo/spot/openOrders': 0.1,
|
|
384
|
+
'algo/spot/historicalOrders': 0.1,
|
|
385
|
+
'algo/spot/subOrders': 0.1,
|
|
383
386
|
'algo/futures/openOrders': 0.1,
|
|
384
387
|
'algo/futures/historicalOrders': 0.1,
|
|
385
388
|
'algo/futures/subOrders': 0.1,
|
|
@@ -421,9 +424,9 @@ class binance extends binance$1 {
|
|
|
421
424
|
'simple-earn/flexible/history/collateralRecord': 0.1,
|
|
422
425
|
},
|
|
423
426
|
'post': {
|
|
424
|
-
'asset/dust':
|
|
427
|
+
'asset/dust': 0.06667,
|
|
425
428
|
'asset/dust-btc': 0.1,
|
|
426
|
-
'asset/transfer':
|
|
429
|
+
'asset/transfer': 6.0003,
|
|
427
430
|
'asset/get-funding-asset': 0.1,
|
|
428
431
|
'asset/convert-transfer': 0.033335,
|
|
429
432
|
'account/disableFastWithdrawSwitch': 0.1,
|
|
@@ -433,12 +436,12 @@ class binance extends binance$1 {
|
|
|
433
436
|
'capital/withdraw/apply': 4.0002,
|
|
434
437
|
'capital/contract/convertible-coins': 4.0002,
|
|
435
438
|
'capital/deposit/credit-apply': 0.1,
|
|
436
|
-
'margin/transfer':
|
|
439
|
+
'margin/transfer': 4.0002,
|
|
437
440
|
'margin/loan': 20.001,
|
|
438
441
|
'margin/repay': 20.001,
|
|
439
442
|
'margin/order': 0.040002,
|
|
440
443
|
'margin/order/oco': 0.040002,
|
|
441
|
-
'margin/dust': 20,
|
|
444
|
+
'margin/dust': 20.001,
|
|
442
445
|
'margin/exchange-small-liability': 20.001,
|
|
443
446
|
// 'margin/isolated/create': 1, discontinued
|
|
444
447
|
'margin/isolated/transfer': 4.0002,
|
|
@@ -455,8 +458,6 @@ class binance extends binance$1 {
|
|
|
455
458
|
'sub-account/transfer/subToMaster': 0.1,
|
|
456
459
|
'sub-account/universalTransfer': 0.1,
|
|
457
460
|
'sub-account/options/enable': 0.1,
|
|
458
|
-
// v2 not supported yet
|
|
459
|
-
// 'sub-account/subAccountApi/ipRestriction': 20,
|
|
460
461
|
'managed-subaccount/deposit': 0.1,
|
|
461
462
|
'managed-subaccount/withdraw': 0.1,
|
|
462
463
|
'userDataStream': 0.1,
|
|
@@ -502,6 +503,7 @@ class binance extends binance$1 {
|
|
|
502
503
|
'giftcard/createCode': 0.1,
|
|
503
504
|
'giftcard/redeemCode': 0.1,
|
|
504
505
|
'giftcard/buyCode': 0.1,
|
|
506
|
+
'algo/spot/newOrderTwap': 20.001,
|
|
505
507
|
'algo/futures/newOrderVp': 20.001,
|
|
506
508
|
'algo/futures/newOrderTwap': 20.001,
|
|
507
509
|
// staking
|
|
@@ -509,14 +511,14 @@ class binance extends binance$1 {
|
|
|
509
511
|
'staking/redeem': 0.1,
|
|
510
512
|
'staking/setAutoStaking': 0.1,
|
|
511
513
|
'portfolio/repay': 20.001,
|
|
512
|
-
'loan/vip/renew': 40,
|
|
513
|
-
'loan/vip/borrow': 40,
|
|
514
|
-
'loan/borrow': 40,
|
|
515
|
-
'loan/repay': 40,
|
|
516
|
-
'loan/adjust/ltv': 40,
|
|
517
|
-
'loan/customize/margin_call': 40,
|
|
518
|
-
'loan/vip/repay': 40,
|
|
519
|
-
'convert/getQuote':
|
|
514
|
+
'loan/vip/renew': 40.002,
|
|
515
|
+
'loan/vip/borrow': 40.002,
|
|
516
|
+
'loan/borrow': 40.002,
|
|
517
|
+
'loan/repay': 40.002,
|
|
518
|
+
'loan/adjust/ltv': 40.002,
|
|
519
|
+
'loan/customize/margin_call': 40.002,
|
|
520
|
+
'loan/vip/repay': 40.002,
|
|
521
|
+
'convert/getQuote': 1.3334,
|
|
520
522
|
'convert/acceptQuote': 3.3335,
|
|
521
523
|
'portfolio/auto-collection': 150,
|
|
522
524
|
'portfolio/asset-collection': 6,
|
|
@@ -541,15 +543,17 @@ class binance extends binance$1 {
|
|
|
541
543
|
'delete': {
|
|
542
544
|
// 'account/apiRestrictions/ipRestriction/ipList': 1, discontinued
|
|
543
545
|
'margin/openOrders': 0.1,
|
|
544
|
-
'margin/order': 0.
|
|
545
|
-
'margin/orderList': 0.
|
|
546
|
+
'margin/order': 0.006667,
|
|
547
|
+
'margin/orderList': 0.006667,
|
|
546
548
|
'margin/isolated/account': 2.0001,
|
|
547
549
|
'userDataStream': 0.1,
|
|
548
550
|
'userDataStream/isolated': 0.1,
|
|
549
551
|
// brokerage API TODO NO MENTION OF RATELIMIT IN BROKERAGE DOCS
|
|
550
552
|
'broker/subAccountApi': 1,
|
|
551
553
|
'broker/subAccountApi/ipRestriction/ipList': 1,
|
|
554
|
+
'algo/spot/order': 0.1,
|
|
552
555
|
'algo/futures/order': 0.1,
|
|
556
|
+
'sub-account/subAccountApi/ipRestriction/ipList': 20.001, // Weight(UID): 3000 => cost = 0.006667 * 3000 = 20.001
|
|
553
557
|
},
|
|
554
558
|
},
|
|
555
559
|
'sapiV2': {
|
|
@@ -557,10 +561,13 @@ class binance extends binance$1 {
|
|
|
557
561
|
'sub-account/futures/account': 0.1,
|
|
558
562
|
'sub-account/futures/positionRisk': 0.1,
|
|
559
563
|
},
|
|
564
|
+
'post': {
|
|
565
|
+
'sub-account/subAccountApi/ipRestriction': 20.001, // Weight(UID): 3000 => cost = 0.006667 * 3000 = 20.001
|
|
566
|
+
},
|
|
560
567
|
},
|
|
561
568
|
'sapiV3': {
|
|
562
569
|
'get': {
|
|
563
|
-
'sub-account/assets':
|
|
570
|
+
'sub-account/assets': 0.40002, // Weight(UID): 60 => cost = 0.006667 * 60 = 0.40002
|
|
564
571
|
},
|
|
565
572
|
'post': {
|
|
566
573
|
'asset/getUserAsset': 0.5,
|
|
@@ -568,7 +575,7 @@ class binance extends binance$1 {
|
|
|
568
575
|
},
|
|
569
576
|
'sapiV4': {
|
|
570
577
|
'get': {
|
|
571
|
-
'sub-account/assets':
|
|
578
|
+
'sub-account/assets': 0.40002, // Weight(UID): 60 => cost = 0.006667 * 60 = 0.40002
|
|
572
579
|
},
|
|
573
580
|
},
|
|
574
581
|
// deprecated
|
|
@@ -823,55 +830,59 @@ class binance extends binance$1 {
|
|
|
823
830
|
},
|
|
824
831
|
},
|
|
825
832
|
'public': {
|
|
833
|
+
// IP (api) request rate limit of 6000 per minute
|
|
834
|
+
// 1 IP (api) => cost = 0.2 => (1000 / (50 * 0.2)) * 60 = 6000
|
|
826
835
|
'get': {
|
|
827
|
-
'ping':
|
|
828
|
-
'time':
|
|
829
|
-
'depth': { 'cost':
|
|
830
|
-
'trades':
|
|
831
|
-
'aggTrades':
|
|
832
|
-
'historicalTrades':
|
|
833
|
-
'klines':
|
|
834
|
-
'
|
|
835
|
-
'ticker/
|
|
836
|
-
'ticker/
|
|
837
|
-
'
|
|
836
|
+
'ping': 0.2,
|
|
837
|
+
'time': 0.2,
|
|
838
|
+
'depth': { 'cost': 0.4, 'byLimit': [[100, 0.4], [500, 2], [1000, 4], [5000, 20]] },
|
|
839
|
+
'trades': 0.4,
|
|
840
|
+
'aggTrades': 0.4,
|
|
841
|
+
'historicalTrades': 2,
|
|
842
|
+
'klines': 0.4,
|
|
843
|
+
'uiKlines': 0.4,
|
|
844
|
+
'ticker/24hr': { 'cost': 0.4, 'noSymbol': 16 },
|
|
845
|
+
'ticker/price': { 'cost': 0.4, 'noSymbol': 0.8 },
|
|
846
|
+
'ticker/bookTicker': { 'cost': 0.4, 'noSymbol': 0.8 },
|
|
847
|
+
'exchangeInfo': 4,
|
|
848
|
+
'avgPrice': 0.4,
|
|
838
849
|
},
|
|
839
850
|
'put': {
|
|
840
|
-
'userDataStream':
|
|
851
|
+
'userDataStream': 0.4,
|
|
841
852
|
},
|
|
842
853
|
'post': {
|
|
843
|
-
'userDataStream':
|
|
854
|
+
'userDataStream': 0.4,
|
|
844
855
|
},
|
|
845
856
|
'delete': {
|
|
846
|
-
'userDataStream':
|
|
857
|
+
'userDataStream': 0.4,
|
|
847
858
|
},
|
|
848
859
|
},
|
|
849
860
|
'private': {
|
|
850
861
|
'get': {
|
|
851
|
-
'allOrderList':
|
|
852
|
-
'openOrderList':
|
|
853
|
-
'orderList':
|
|
854
|
-
'order':
|
|
855
|
-
'openOrders': { 'cost':
|
|
856
|
-
'allOrders':
|
|
857
|
-
'account':
|
|
858
|
-
'myTrades':
|
|
859
|
-
'rateLimit/order':
|
|
860
|
-
'myPreventedMatches':
|
|
861
|
-
'myAllocations':
|
|
862
|
+
'allOrderList': 4,
|
|
863
|
+
'openOrderList': 1.2,
|
|
864
|
+
'orderList': 0.8,
|
|
865
|
+
'order': 0.8,
|
|
866
|
+
'openOrders': { 'cost': 1.2, 'noSymbol': 16 },
|
|
867
|
+
'allOrders': 4,
|
|
868
|
+
'account': 4,
|
|
869
|
+
'myTrades': 4,
|
|
870
|
+
'rateLimit/order': 8,
|
|
871
|
+
'myPreventedMatches': 4,
|
|
872
|
+
'myAllocations': 4,
|
|
862
873
|
},
|
|
863
874
|
'post': {
|
|
864
|
-
'order/oco':
|
|
865
|
-
'sor/order':
|
|
866
|
-
'sor/order/test':
|
|
867
|
-
'order':
|
|
868
|
-
'order/cancelReplace':
|
|
869
|
-
'order/test':
|
|
875
|
+
'order/oco': 0.2,
|
|
876
|
+
'sor/order': 0.2,
|
|
877
|
+
'sor/order/test': 0.2,
|
|
878
|
+
'order': 0.2,
|
|
879
|
+
'order/cancelReplace': 0.2,
|
|
880
|
+
'order/test': 0.2,
|
|
870
881
|
},
|
|
871
882
|
'delete': {
|
|
872
|
-
'openOrders':
|
|
873
|
-
'orderList':
|
|
874
|
-
'order':
|
|
883
|
+
'openOrders': 0.2,
|
|
884
|
+
'orderList': 0.2,
|
|
885
|
+
'order': 0.2,
|
|
875
886
|
},
|
|
876
887
|
},
|
|
877
888
|
'papi': {
|
package/dist/cjs/src/bingx.js
CHANGED
|
@@ -90,6 +90,7 @@ class bingx extends bingx$1 {
|
|
|
90
90
|
'market/trades': 3,
|
|
91
91
|
'market/depth': 3,
|
|
92
92
|
'market/kline': 3,
|
|
93
|
+
'ticker/24hr': 1,
|
|
93
94
|
},
|
|
94
95
|
},
|
|
95
96
|
'private': {
|
|
@@ -98,7 +99,6 @@ class bingx extends bingx$1 {
|
|
|
98
99
|
'trade/openOrders': 3,
|
|
99
100
|
'trade/historyOrders': 3,
|
|
100
101
|
'account/balance': 3,
|
|
101
|
-
'ticker/24hr': 1,
|
|
102
102
|
},
|
|
103
103
|
'post': {
|
|
104
104
|
'trade/order': 3,
|
|
@@ -255,6 +255,7 @@ class bingx extends bingx$1 {
|
|
|
255
255
|
'500': errors.ExchangeError,
|
|
256
256
|
'504': errors.ExchangeError,
|
|
257
257
|
'100001': errors.AuthenticationError,
|
|
258
|
+
'100412': errors.AuthenticationError,
|
|
258
259
|
'100202': errors.InsufficientFunds,
|
|
259
260
|
'100400': errors.BadRequest,
|
|
260
261
|
'100440': errors.ExchangeError,
|
|
@@ -1097,7 +1098,7 @@ class bingx extends bingx$1 {
|
|
|
1097
1098
|
};
|
|
1098
1099
|
let response = undefined;
|
|
1099
1100
|
if (market['spot']) {
|
|
1100
|
-
response = await this.
|
|
1101
|
+
response = await this.spotV1PublicGetTicker24hr(this.extend(request, params));
|
|
1101
1102
|
}
|
|
1102
1103
|
else {
|
|
1103
1104
|
response = await this.swapV2PublicGetQuoteTicker(this.extend(request, params));
|
|
@@ -1137,15 +1138,21 @@ class bingx extends bingx$1 {
|
|
|
1137
1138
|
* @returns {object} a dictionary of [ticker structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure}
|
|
1138
1139
|
*/
|
|
1139
1140
|
await this.loadMarkets();
|
|
1141
|
+
let market = undefined;
|
|
1140
1142
|
if (symbols !== undefined) {
|
|
1141
1143
|
symbols = this.marketSymbols(symbols);
|
|
1142
1144
|
const firstSymbol = this.safeString(symbols, 0);
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1145
|
+
market = this.market(firstSymbol);
|
|
1146
|
+
}
|
|
1147
|
+
let type = undefined;
|
|
1148
|
+
[type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
|
|
1149
|
+
let response = undefined;
|
|
1150
|
+
if (type === 'spot') {
|
|
1151
|
+
response = await this.spotV1PublicGetTicker24hr(params);
|
|
1152
|
+
}
|
|
1153
|
+
else {
|
|
1154
|
+
response = await this.swapV2PublicGetQuoteTicker(params);
|
|
1147
1155
|
}
|
|
1148
|
-
const response = await this.swapV2PublicGetQuoteTicker(params);
|
|
1149
1156
|
//
|
|
1150
1157
|
// {
|
|
1151
1158
|
// "code": 0,
|
|
@@ -2826,31 +2833,25 @@ class bingx extends bingx$1 {
|
|
|
2826
2833
|
this.parseTransaction(data);
|
|
2827
2834
|
}
|
|
2828
2835
|
parseParams(params) {
|
|
2829
|
-
let result = '';
|
|
2830
2836
|
const sortedParams = this.keysort(params);
|
|
2831
2837
|
const keys = Object.keys(sortedParams);
|
|
2832
2838
|
for (let i = 0; i < keys.length; i++) {
|
|
2833
2839
|
const key = keys[i];
|
|
2834
|
-
if (i > 0) {
|
|
2835
|
-
result += '&';
|
|
2836
|
-
}
|
|
2837
2840
|
const value = sortedParams[key];
|
|
2838
2841
|
if (Array.isArray(value)) {
|
|
2839
|
-
|
|
2842
|
+
let arrStr = '[';
|
|
2840
2843
|
for (let j = 0; j < value.length; j++) {
|
|
2841
2844
|
const arrayElement = value[j];
|
|
2842
2845
|
if (j > 0) {
|
|
2843
|
-
|
|
2846
|
+
arrStr += ',';
|
|
2844
2847
|
}
|
|
2845
|
-
|
|
2848
|
+
arrStr += arrayElement.toString();
|
|
2846
2849
|
}
|
|
2847
|
-
|
|
2848
|
-
|
|
2849
|
-
else {
|
|
2850
|
-
result += key + '=' + value.toString();
|
|
2850
|
+
arrStr += ']';
|
|
2851
|
+
sortedParams[key] = arrStr;
|
|
2851
2852
|
}
|
|
2852
2853
|
}
|
|
2853
|
-
return
|
|
2854
|
+
return sortedParams;
|
|
2854
2855
|
}
|
|
2855
2856
|
sign(path, section = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
|
|
2856
2857
|
const type = section[0];
|
|
@@ -2869,6 +2870,7 @@ class bingx extends bingx$1 {
|
|
|
2869
2870
|
params = this.omit(params, this.extractParams(path));
|
|
2870
2871
|
params = this.keysort(params);
|
|
2871
2872
|
if (access === 'public') {
|
|
2873
|
+
params['timestamp'] = this.nonce();
|
|
2872
2874
|
if (Object.keys(params).length) {
|
|
2873
2875
|
url += '?' + this.urlencode(params);
|
|
2874
2876
|
}
|
|
@@ -2876,8 +2878,9 @@ class bingx extends bingx$1 {
|
|
|
2876
2878
|
else if (access === 'private') {
|
|
2877
2879
|
this.checkRequiredCredentials();
|
|
2878
2880
|
params['timestamp'] = this.nonce();
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
+
const parsedParams = this.parseParams(params);
|
|
2882
|
+
let query = this.urlencode(parsedParams);
|
|
2883
|
+
const signature = this.hmac(this.encode(this.rawencode(parsedParams)), this.encode(this.secret), sha256.sha256);
|
|
2881
2884
|
if (Object.keys(params).length) {
|
|
2882
2885
|
query = '?' + query + '&';
|
|
2883
2886
|
}
|
package/dist/cjs/src/bithumb.js
CHANGED
|
@@ -633,7 +633,7 @@ class bithumb extends bithumb$1 {
|
|
|
633
633
|
await this.loadMarkets();
|
|
634
634
|
const market = this.market(symbol);
|
|
635
635
|
const request = {
|
|
636
|
-
'currency': market['base'],
|
|
636
|
+
'currency': market['base'] + '_' + market['quote'],
|
|
637
637
|
};
|
|
638
638
|
if (limit !== undefined) {
|
|
639
639
|
request['count'] = limit; // default 20, max 100
|
package/dist/cjs/src/mexc.js
CHANGED
package/dist/cjs/src/okx.js
CHANGED
|
@@ -221,6 +221,7 @@ class okx extends okx$1 {
|
|
|
221
221
|
'tradingBot/grid/ai-param': 1,
|
|
222
222
|
'tradingBot/grid/min-investment': 1,
|
|
223
223
|
'tradingBot/public/rsi-back-testing': 1,
|
|
224
|
+
'asset/exchange-list': 5 / 3,
|
|
224
225
|
'finance/savings/lending-rate-summary': 5 / 3,
|
|
225
226
|
'finance/savings/lending-rate-history': 5 / 3,
|
|
226
227
|
// public broker
|
package/dist/cjs/src/phemex.js
CHANGED
|
@@ -1607,8 +1607,13 @@ class phemex extends phemex$1 {
|
|
|
1607
1607
|
id = this.safeString2(trade, 'execId', 'execID');
|
|
1608
1608
|
orderId = this.safeString(trade, 'orderID');
|
|
1609
1609
|
if (market['settle'] === 'USDT') {
|
|
1610
|
-
const sideId = this.
|
|
1611
|
-
|
|
1610
|
+
const sideId = this.safeStringLower(trade, 'side');
|
|
1611
|
+
if ((sideId === 'buy') || (sideId === 'sell')) {
|
|
1612
|
+
side = sideId;
|
|
1613
|
+
}
|
|
1614
|
+
else if (sideId !== undefined) {
|
|
1615
|
+
side = (sideId === '1') ? 'buy' : 'sell';
|
|
1616
|
+
}
|
|
1612
1617
|
const ordType = this.safeString(trade, 'ordType');
|
|
1613
1618
|
if (ordType === '1') {
|
|
1614
1619
|
type = 'market';
|
|
@@ -1616,7 +1621,7 @@ class phemex extends phemex$1 {
|
|
|
1616
1621
|
else if (ordType === '2') {
|
|
1617
1622
|
type = 'limit';
|
|
1618
1623
|
}
|
|
1619
|
-
priceString = this.safeString(trade, '
|
|
1624
|
+
priceString = this.safeString(trade, 'execPriceRp');
|
|
1620
1625
|
amountString = this.safeString(trade, 'execQtyRq');
|
|
1621
1626
|
costString = this.safeString(trade, 'execValueRv');
|
|
1622
1627
|
feeCostString = this.safeString(trade, 'execFeeRv');
|