ccxt 4.4.53 → 4.4.57
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 +224 -142
- package/dist/ccxt.browser.min.js +8 -8
- package/dist/cjs/ccxt.js +1 -4
- package/dist/cjs/src/ace.js +3 -0
- package/dist/cjs/src/alpaca.js +5 -0
- package/dist/cjs/src/ascendex.js +2 -1
- package/dist/cjs/src/base/Exchange.js +114 -56
- package/dist/cjs/src/bigone.js +5 -0
- package/dist/cjs/src/binance.js +53 -53
- package/dist/cjs/src/bingx.js +27 -30
- package/dist/cjs/src/bit2c.js +3 -0
- package/dist/cjs/src/bitbank.js +3 -0
- package/dist/cjs/src/bitbns.js +3 -0
- package/dist/cjs/src/bitfinex.js +7 -2
- package/dist/cjs/src/bitflyer.js +5 -0
- package/dist/cjs/src/bitget.js +9 -5
- package/dist/cjs/src/bithumb.js +2 -0
- package/dist/cjs/src/bitmart.js +20 -8
- package/dist/cjs/src/bitmex.js +99 -93
- package/dist/cjs/src/bitopro.js +5 -0
- package/dist/cjs/src/bitrue.js +4 -0
- package/dist/cjs/src/bitso.js +3 -0
- package/dist/cjs/src/bitstamp.js +3 -0
- package/dist/cjs/src/bitteam.js +5 -0
- package/dist/cjs/src/bitvavo.js +4 -0
- package/dist/cjs/src/blockchaincom.js +5 -1
- package/dist/cjs/src/blofin.js +3 -0
- package/dist/cjs/src/btcalpha.js +5 -0
- package/dist/cjs/src/btcbox.js +3 -3
- package/dist/cjs/src/btcmarkets.js +5 -0
- package/dist/cjs/src/btcturk.js +3 -0
- package/dist/cjs/src/bybit.js +12 -2
- package/dist/cjs/src/cex.js +2 -0
- package/dist/cjs/src/coinbase.js +16 -8
- package/dist/cjs/src/coinbaseexchange.js +5 -0
- package/dist/cjs/src/coinbaseinternational.js +7 -3
- package/dist/cjs/src/coincatch.js +4 -1
- package/dist/cjs/src/coincheck.js +2 -0
- package/dist/cjs/src/coinex.js +5 -1
- package/dist/cjs/src/coinlist.js +5 -0
- package/dist/cjs/src/coinmate.js +5 -1
- package/dist/cjs/src/coinmetro.js +9 -5
- package/dist/cjs/src/coinone.js +4 -1
- package/dist/cjs/src/coinsph.js +5 -1
- package/dist/cjs/src/coinspot.js +2 -1
- package/dist/cjs/src/cryptocom.js +5 -0
- package/dist/cjs/src/currencycom.js +4 -1
- package/dist/cjs/src/defx.js +5 -0
- package/dist/cjs/src/delta.js +3 -0
- package/dist/cjs/src/deribit.js +14 -32
- package/dist/cjs/src/digifinex.js +10 -5
- package/dist/cjs/src/ellipx.js +9 -5
- package/dist/cjs/src/exmo.js +5 -2
- package/dist/cjs/src/gate.js +4 -0
- package/dist/cjs/src/gemini.js +3 -0
- package/dist/cjs/src/hashkey.js +5 -4
- package/dist/cjs/src/hitbtc.js +4 -0
- package/dist/cjs/src/hollaex.js +6 -1
- package/dist/cjs/src/htx.js +9 -1
- package/dist/cjs/src/huobijp.js +5 -0
- package/dist/cjs/src/hyperliquid.js +9 -4
- package/dist/cjs/src/idex.js +6 -2
- package/dist/cjs/src/independentreserve.js +4 -0
- package/dist/cjs/src/indodax.js +3 -0
- package/dist/cjs/src/kraken.js +7 -5
- package/dist/cjs/src/krakenfutures.js +5 -2
- package/dist/cjs/src/kucoin.js +15 -7
- package/dist/cjs/src/kucoinfutures.js +5 -1
- package/dist/cjs/src/kuna.js +3 -0
- package/dist/cjs/src/latoken.js +4 -0
- package/dist/cjs/src/lbank.js +6 -1
- package/dist/cjs/src/luno.js +7 -2
- package/dist/cjs/src/mercado.js +5 -1
- package/dist/cjs/src/mexc.js +10 -9
- package/dist/cjs/src/ndax.js +7 -2
- package/dist/cjs/src/novadax.js +6 -1
- package/dist/cjs/src/oceanex.js +4 -0
- package/dist/cjs/src/okcoin.js +6 -2
- package/dist/cjs/src/okx.js +18 -4
- package/dist/cjs/src/onetrading.js +5 -1
- package/dist/cjs/src/oxfun.js +3 -0
- package/dist/cjs/src/p2b.js +3 -0
- package/dist/cjs/src/paradex.js +9 -3
- package/dist/cjs/src/phemex.js +12 -5
- package/dist/cjs/src/poloniex.js +6 -3
- package/dist/cjs/src/poloniexfutures.js +5 -1
- package/dist/cjs/src/pro/binance.js +2 -2
- package/dist/cjs/src/pro/bitcoincom.js +1 -4
- package/dist/cjs/src/pro/bitget.js +3 -3
- package/dist/cjs/src/pro/bitopro.js +1 -1
- package/dist/cjs/src/pro/bybit.js +10 -2
- package/dist/cjs/src/pro/cex.js +1 -1
- package/dist/cjs/src/pro/coincatch.js +3 -3
- package/dist/cjs/src/pro/mexc.js +3 -3
- package/dist/cjs/src/pro/okx.js +1 -1
- package/dist/cjs/src/probit.js +5 -1
- package/dist/cjs/src/timex.js +5 -1
- package/dist/cjs/src/tokocrypto.js +6 -1
- package/dist/cjs/src/tradeogre.js +2 -0
- package/dist/cjs/src/upbit.js +3 -0
- package/dist/cjs/src/vertex.js +6 -2
- package/dist/cjs/src/wavesexchange.js +24 -4
- package/dist/cjs/src/wazirx.js +2 -0
- package/dist/cjs/src/whitebit.js +5 -4
- package/dist/cjs/src/woo.js +15 -5
- package/dist/cjs/src/woofipro.js +25 -9
- package/dist/cjs/src/xt.js +5 -0
- package/dist/cjs/src/yobit.js +4 -1
- package/dist/cjs/src/zaif.js +2 -0
- package/dist/cjs/src/zonda.js +3 -1
- package/js/ccxt.d.ts +3 -6
- package/js/ccxt.js +2 -4
- package/js/src/abstract/binance.d.ts +0 -1
- package/js/src/abstract/binancecoinm.d.ts +0 -1
- package/js/src/abstract/binanceus.d.ts +0 -1
- package/js/src/abstract/binanceusdm.d.ts +0 -1
- package/js/src/ace.js +3 -0
- package/js/src/alpaca.js +5 -0
- package/js/src/ascendex.js +2 -1
- package/js/src/base/Exchange.d.ts +7 -3
- package/js/src/base/Exchange.js +114 -56
- package/js/src/base/types.d.ts +2 -0
- package/js/src/bigone.d.ts +1 -1
- package/js/src/bigone.js +5 -0
- package/js/src/binance.d.ts +30 -32
- package/js/src/binance.js +53 -53
- package/js/src/bingx.d.ts +1 -1
- package/js/src/bingx.js +27 -30
- package/js/src/bit2c.js +3 -0
- package/js/src/bitbank.js +3 -0
- package/js/src/bitbns.js +3 -0
- package/js/src/bitfinex.js +7 -2
- package/js/src/bitflyer.js +5 -0
- package/js/src/bitget.js +9 -5
- package/js/src/bithumb.js +2 -0
- package/js/src/bitmart.d.ts +5 -5
- package/js/src/bitmart.js +20 -8
- package/js/src/bitmex.js +99 -93
- package/js/src/bitopro.d.ts +2 -2
- package/js/src/bitopro.js +5 -0
- package/js/src/bitrue.js +4 -0
- package/js/src/bitso.d.ts +2 -2
- package/js/src/bitso.js +3 -0
- package/js/src/bitstamp.js +3 -0
- package/js/src/bitteam.js +5 -0
- package/js/src/bitvavo.js +4 -0
- package/js/src/blockchaincom.js +5 -1
- package/js/src/blofin.js +3 -0
- package/js/src/btcalpha.js +5 -0
- package/js/src/btcbox.js +3 -3
- package/js/src/btcmarkets.js +5 -0
- package/js/src/btcturk.js +3 -0
- package/js/src/bybit.d.ts +3 -3
- package/js/src/bybit.js +12 -2
- package/js/src/cex.js +2 -0
- package/js/src/coinbase.d.ts +4 -4
- package/js/src/coinbase.js +16 -8
- package/js/src/coinbaseexchange.js +5 -0
- package/js/src/coinbaseinternational.d.ts +1 -1
- package/js/src/coinbaseinternational.js +7 -3
- package/js/src/coincatch.js +4 -1
- package/js/src/coincheck.js +2 -0
- package/js/src/coinex.d.ts +1 -1
- package/js/src/coinex.js +5 -1
- package/js/src/coinlist.js +5 -0
- package/js/src/coinmate.js +5 -1
- package/js/src/coinmetro.js +9 -5
- package/js/src/coinone.js +4 -1
- package/js/src/coinsph.js +5 -1
- package/js/src/coinspot.js +2 -1
- package/js/src/cryptocom.js +5 -0
- package/js/src/currencycom.js +4 -1
- package/js/src/defx.js +5 -0
- package/js/src/delta.js +3 -0
- package/js/src/deribit.d.ts +4 -2
- package/js/src/deribit.js +14 -32
- package/js/src/digifinex.js +10 -5
- package/js/src/ellipx.d.ts +1 -1
- package/js/src/ellipx.js +9 -5
- package/js/src/exmo.d.ts +3 -3
- package/js/src/exmo.js +5 -2
- package/js/src/gate.js +4 -0
- package/js/src/gemini.js +3 -0
- package/js/src/hashkey.js +5 -4
- package/js/src/hitbtc.d.ts +2 -2
- package/js/src/hitbtc.js +4 -0
- package/js/src/hollaex.d.ts +2 -2
- package/js/src/hollaex.js +6 -1
- package/js/src/htx.js +9 -1
- package/js/src/huobijp.js +5 -0
- package/js/src/hyperliquid.d.ts +1 -1
- package/js/src/hyperliquid.js +9 -4
- package/js/src/idex.d.ts +1 -1
- package/js/src/idex.js +6 -2
- package/js/src/independentreserve.js +4 -0
- package/js/src/indodax.js +3 -0
- package/js/src/kraken.js +7 -5
- package/js/src/krakenfutures.js +5 -2
- package/js/src/kucoin.d.ts +2 -1
- package/js/src/kucoin.js +15 -7
- package/js/src/kucoinfutures.d.ts +1 -1
- package/js/src/kucoinfutures.js +5 -1
- package/js/src/kuna.js +3 -0
- package/js/src/latoken.js +4 -0
- package/js/src/lbank.js +6 -1
- package/js/src/luno.d.ts +1 -1
- package/js/src/luno.js +7 -2
- package/js/src/mercado.js +5 -1
- package/js/src/mexc.js +10 -9
- package/js/src/ndax.js +7 -2
- package/js/src/novadax.js +6 -1
- package/js/src/oceanex.d.ts +2 -2
- package/js/src/oceanex.js +4 -0
- package/js/src/okcoin.js +6 -2
- package/js/src/okx.js +18 -4
- package/js/src/onetrading.js +5 -1
- package/js/src/oxfun.js +3 -0
- package/js/src/p2b.js +3 -0
- package/js/src/paradex.js +9 -3
- package/js/src/phemex.d.ts +1 -1
- package/js/src/phemex.js +12 -5
- package/js/src/poloniex.js +6 -3
- package/js/src/poloniexfutures.d.ts +1 -1
- package/js/src/poloniexfutures.js +5 -1
- package/js/src/pro/binance.js +2 -2
- package/js/src/pro/bitcoincom.js +1 -4
- package/js/src/pro/bitget.js +3 -3
- package/js/src/pro/bitopro.js +1 -1
- package/js/src/pro/bybit.js +10 -2
- package/js/src/pro/cex.js +1 -1
- package/js/src/pro/coincatch.js +3 -3
- package/js/src/pro/mexc.js +3 -3
- package/js/src/pro/okx.js +1 -1
- package/js/src/probit.js +5 -1
- package/js/src/static_dependencies/node-fetch/headers.d.ts +5 -0
- package/js/src/static_dependencies/proxies/agent-base/helpers.d.ts +1 -0
- package/js/src/static_dependencies/proxies/https-proxy-agent/parse-proxy-response.d.ts +1 -0
- package/js/src/timex.js +5 -1
- package/js/src/tokocrypto.js +6 -1
- package/js/src/tradeogre.js +2 -0
- package/js/src/upbit.d.ts +2 -2
- package/js/src/upbit.js +3 -0
- package/js/src/vertex.js +6 -2
- package/js/src/wavesexchange.d.ts +2 -1
- package/js/src/wavesexchange.js +24 -4
- package/js/src/wazirx.js +2 -0
- package/js/src/whitebit.js +5 -4
- package/js/src/woo.d.ts +1 -1
- package/js/src/woo.js +15 -5
- package/js/src/woofipro.d.ts +1 -1
- package/js/src/woofipro.js +25 -9
- package/js/src/xt.js +5 -0
- package/js/src/yobit.d.ts +2 -2
- package/js/src/yobit.js +4 -1
- package/js/src/zaif.js +2 -0
- package/js/src/zonda.js +3 -1
- package/package.json +25 -7
- package/dist/cjs/src/abstract/lykke.js +0 -9
- package/dist/cjs/src/lykke.js +0 -1401
- package/js/src/abstract/lykke.d.ts +0 -32
- package/js/src/abstract/lykke.js +0 -11
- package/js/src/lykke.d.ts +0 -212
- package/js/src/lykke.js +0 -1402
package/js/src/base/Exchange.js
CHANGED
|
@@ -802,7 +802,8 @@ export default class Exchange {
|
|
|
802
802
|
if (numberNormalized.indexOf('e-') > -1) {
|
|
803
803
|
return this.number(numberToString(parseFloat(numberNormalized)));
|
|
804
804
|
}
|
|
805
|
-
|
|
805
|
+
const result = this.number(numberNormalized);
|
|
806
|
+
return isNaN(result) ? d : result;
|
|
806
807
|
}
|
|
807
808
|
catch (e) {
|
|
808
809
|
return d;
|
|
@@ -1193,7 +1194,7 @@ export default class Exchange {
|
|
|
1193
1194
|
starknetEncodeStructuredData(domain, messageTypes, messageData, address) {
|
|
1194
1195
|
const types = Object.keys(messageTypes);
|
|
1195
1196
|
if (types.length > 1) {
|
|
1196
|
-
throw new NotSupported(this.id + 'starknetEncodeStructuredData only support single type');
|
|
1197
|
+
throw new NotSupported(this.id + ' starknetEncodeStructuredData only support single type');
|
|
1197
1198
|
}
|
|
1198
1199
|
const request = {
|
|
1199
1200
|
'domain': domain,
|
|
@@ -1895,10 +1896,22 @@ export default class Exchange {
|
|
|
1895
1896
|
if (limit > arrayLength) {
|
|
1896
1897
|
limit = arrayLength;
|
|
1897
1898
|
}
|
|
1898
|
-
array = ascending ? this.arraySlice(array, 0, limit) : this.arraySlice(array, -limit);
|
|
1899
|
+
// array = ascending ? this.arraySlice (array, 0, limit) : this.arraySlice (array, -limit);
|
|
1900
|
+
if (ascending) {
|
|
1901
|
+
array = this.arraySlice(array, 0, limit);
|
|
1902
|
+
}
|
|
1903
|
+
else {
|
|
1904
|
+
array = this.arraySlice(array, -limit);
|
|
1905
|
+
}
|
|
1899
1906
|
}
|
|
1900
1907
|
else {
|
|
1901
|
-
array = ascending ? this.arraySlice(array, -limit) : this.arraySlice(array, 0, limit);
|
|
1908
|
+
// array = ascending ? this.arraySlice (array, -limit) : this.arraySlice (array, 0, limit);
|
|
1909
|
+
if (ascending) {
|
|
1910
|
+
array = this.arraySlice(array, -limit);
|
|
1911
|
+
}
|
|
1912
|
+
else {
|
|
1913
|
+
array = this.arraySlice(array, 0, limit);
|
|
1914
|
+
}
|
|
1902
1915
|
}
|
|
1903
1916
|
}
|
|
1904
1917
|
}
|
|
@@ -2313,36 +2326,17 @@ export default class Exchange {
|
|
|
2313
2326
|
}
|
|
2314
2327
|
featuresGenerator() {
|
|
2315
2328
|
//
|
|
2316
|
-
// the exchange-specific features can be something like this, where we support 'string' aliases too:
|
|
2329
|
+
// in the exchange-specific features can be something like this, where we support 'string' aliases too:
|
|
2317
2330
|
//
|
|
2318
2331
|
// {
|
|
2319
|
-
// '
|
|
2332
|
+
// 'my' : {
|
|
2320
2333
|
// 'createOrder' : {...},
|
|
2321
|
-
// 'fetchOrders' : {...},
|
|
2322
2334
|
// },
|
|
2323
2335
|
// 'swap': {
|
|
2324
|
-
// 'linear':
|
|
2325
|
-
//
|
|
2326
|
-
//
|
|
2327
|
-
// 'future': {
|
|
2328
|
-
// 'linear': 'myItem',
|
|
2329
|
-
// 'inverse': 'myItem',
|
|
2330
|
-
// }
|
|
2331
|
-
// }
|
|
2332
|
-
//
|
|
2333
|
-
//
|
|
2334
|
-
//
|
|
2335
|
-
// this method would regenerate the blank features tree, eg:
|
|
2336
|
-
//
|
|
2337
|
-
// {
|
|
2338
|
-
// "spot": {
|
|
2339
|
-
// "createOrder": undefined,
|
|
2340
|
-
// "fetchBalance": undefined,
|
|
2341
|
-
// ...
|
|
2336
|
+
// 'linear': {
|
|
2337
|
+
// 'extends': my',
|
|
2338
|
+
// },
|
|
2342
2339
|
// },
|
|
2343
|
-
// "swap": {
|
|
2344
|
-
// ...
|
|
2345
|
-
// }
|
|
2346
2340
|
// }
|
|
2347
2341
|
//
|
|
2348
2342
|
if (this.features === undefined) {
|
|
@@ -2387,14 +2381,13 @@ export default class Exchange {
|
|
|
2387
2381
|
featuresObj = this.deepExtend(extendObj, featuresObj);
|
|
2388
2382
|
}
|
|
2389
2383
|
//
|
|
2390
|
-
// corrections
|
|
2384
|
+
// ### corrections ###
|
|
2391
2385
|
//
|
|
2386
|
+
// createOrder
|
|
2392
2387
|
if ('createOrder' in featuresObj) {
|
|
2393
2388
|
const value = this.safeDict(featuresObj['createOrder'], 'attachedStopLossTakeProfit');
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
featuresObj['createOrder']['takeProfit'] = value;
|
|
2397
|
-
}
|
|
2389
|
+
featuresObj['createOrder']['stopLoss'] = value;
|
|
2390
|
+
featuresObj['createOrder']['takeProfit'] = value;
|
|
2398
2391
|
if (marketType === 'spot') {
|
|
2399
2392
|
// default 'hedged': false
|
|
2400
2393
|
featuresObj['createOrder']['hedged'] = false;
|
|
@@ -2408,6 +2401,18 @@ export default class Exchange {
|
|
|
2408
2401
|
featuresObj['createOrder']['timeInForce']['GTC'] = true;
|
|
2409
2402
|
}
|
|
2410
2403
|
}
|
|
2404
|
+
// other methods
|
|
2405
|
+
const keys = Object.keys(featuresObj);
|
|
2406
|
+
for (let i = 0; i < keys.length; i++) {
|
|
2407
|
+
const key = keys[i];
|
|
2408
|
+
const featureBlock = featuresObj[key];
|
|
2409
|
+
if (!this.inArray(key, ['sandbox']) && featureBlock !== undefined) {
|
|
2410
|
+
// default "symbolRequired" to false to all methods (except `createOrder`)
|
|
2411
|
+
if (!('symbolRequired' in featureBlock)) {
|
|
2412
|
+
featureBlock['symbolRequired'] = this.inArray(key, ['createOrder', 'createOrders', 'fetchOHLCV']);
|
|
2413
|
+
}
|
|
2414
|
+
}
|
|
2415
|
+
}
|
|
2411
2416
|
return featuresObj;
|
|
2412
2417
|
}
|
|
2413
2418
|
orderbookChecksumMessage(symbol) {
|
|
@@ -2673,7 +2678,9 @@ export default class Exchange {
|
|
|
2673
2678
|
for (let i = 0; i < marketValues.length; i++) {
|
|
2674
2679
|
const value = marketValues[i];
|
|
2675
2680
|
if (value['id'] in this.markets_by_id) {
|
|
2676
|
-
this.markets_by_id[value['id']]
|
|
2681
|
+
const marketsByIdArray = this.markets_by_id[value['id']];
|
|
2682
|
+
marketsByIdArray.push(value);
|
|
2683
|
+
this.markets_by_id[value['id']] = marketsByIdArray;
|
|
2677
2684
|
}
|
|
2678
2685
|
else {
|
|
2679
2686
|
this.markets_by_id[value['id']] = [value];
|
|
@@ -3106,7 +3113,8 @@ export default class Exchange {
|
|
|
3106
3113
|
let results = [];
|
|
3107
3114
|
if (Array.isArray(orders)) {
|
|
3108
3115
|
for (let i = 0; i < orders.length; i++) {
|
|
3109
|
-
const
|
|
3116
|
+
const parsed = this.parseOrder(orders[i], market); // don't inline this call
|
|
3117
|
+
const order = this.extend(parsed, params);
|
|
3110
3118
|
results.push(order);
|
|
3111
3119
|
}
|
|
3112
3120
|
}
|
|
@@ -3114,7 +3122,9 @@ export default class Exchange {
|
|
|
3114
3122
|
const ids = Object.keys(orders);
|
|
3115
3123
|
for (let i = 0; i < ids.length; i++) {
|
|
3116
3124
|
const id = ids[i];
|
|
3117
|
-
const
|
|
3125
|
+
const idExtended = this.extend({ 'id': id }, orders[id]);
|
|
3126
|
+
const parsedOrder = this.parseOrder(idExtended, market); // don't inline these calls
|
|
3127
|
+
const order = this.extend(parsedOrder, params);
|
|
3118
3128
|
results.push(order);
|
|
3119
3129
|
}
|
|
3120
3130
|
}
|
|
@@ -3514,12 +3524,18 @@ export default class Exchange {
|
|
|
3514
3524
|
result[volume] = [];
|
|
3515
3525
|
for (let i = 0; i < ohlcvs.length; i++) {
|
|
3516
3526
|
const ts = ms ? ohlcvs[i][0] : this.parseToInt(ohlcvs[i][0] / 1000);
|
|
3517
|
-
result[timestamp]
|
|
3518
|
-
|
|
3519
|
-
result[
|
|
3520
|
-
|
|
3521
|
-
result[
|
|
3522
|
-
|
|
3527
|
+
const resultTimestamp = result[timestamp];
|
|
3528
|
+
resultTimestamp.push(ts);
|
|
3529
|
+
const resultOpen = result[open];
|
|
3530
|
+
resultOpen.push(ohlcvs[i][1]);
|
|
3531
|
+
const resultHigh = result[high];
|
|
3532
|
+
resultHigh.push(ohlcvs[i][2]);
|
|
3533
|
+
const resultLow = result[low];
|
|
3534
|
+
resultLow.push(ohlcvs[i][3]);
|
|
3535
|
+
const resultClose = result[close];
|
|
3536
|
+
resultClose.push(ohlcvs[i][4]);
|
|
3537
|
+
const resultVolume = result[volume];
|
|
3538
|
+
resultVolume.push(ohlcvs[i][5]);
|
|
3523
3539
|
}
|
|
3524
3540
|
return result;
|
|
3525
3541
|
}
|
|
@@ -3535,9 +3551,11 @@ export default class Exchange {
|
|
|
3535
3551
|
const maxRetries = this.safeValue(options, 'webApiRetries', 10);
|
|
3536
3552
|
let response = undefined;
|
|
3537
3553
|
let retry = 0;
|
|
3554
|
+
let shouldBreak = false;
|
|
3538
3555
|
while (retry < maxRetries) {
|
|
3539
3556
|
try {
|
|
3540
3557
|
response = await this[endpointMethod]({});
|
|
3558
|
+
shouldBreak = true;
|
|
3541
3559
|
break;
|
|
3542
3560
|
}
|
|
3543
3561
|
catch (e) {
|
|
@@ -3546,6 +3564,9 @@ export default class Exchange {
|
|
|
3546
3564
|
throw e;
|
|
3547
3565
|
}
|
|
3548
3566
|
}
|
|
3567
|
+
if (shouldBreak) {
|
|
3568
|
+
break; // this is needed because of GO
|
|
3569
|
+
}
|
|
3549
3570
|
}
|
|
3550
3571
|
let content = response;
|
|
3551
3572
|
if (startRegex !== undefined) {
|
|
@@ -4128,7 +4149,13 @@ export default class Exchange {
|
|
|
4128
4149
|
objects = this.toArray(objects);
|
|
4129
4150
|
// return all of them if no values were passed
|
|
4130
4151
|
if (values === undefined || !values) {
|
|
4131
|
-
return indexed ? this.indexBy(objects, key) : objects;
|
|
4152
|
+
// return indexed ? this.indexBy (objects, key) : objects;
|
|
4153
|
+
if (indexed) {
|
|
4154
|
+
return this.indexBy(objects, key);
|
|
4155
|
+
}
|
|
4156
|
+
else {
|
|
4157
|
+
return objects;
|
|
4158
|
+
}
|
|
4132
4159
|
}
|
|
4133
4160
|
const results = [];
|
|
4134
4161
|
for (let i = 0; i < objects.length; i++) {
|
|
@@ -4136,7 +4163,11 @@ export default class Exchange {
|
|
|
4136
4163
|
results.push(objects[i]);
|
|
4137
4164
|
}
|
|
4138
4165
|
}
|
|
4139
|
-
return indexed ? this.indexBy(results, key) : results;
|
|
4166
|
+
// return indexed ? this.indexBy (results, key) : results;
|
|
4167
|
+
if (indexed) {
|
|
4168
|
+
return this.indexBy(results, key);
|
|
4169
|
+
}
|
|
4170
|
+
return results;
|
|
4140
4171
|
}
|
|
4141
4172
|
async fetch2(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined, config = {}) {
|
|
4142
4173
|
if (this.enableRateLimit) {
|
|
@@ -4165,10 +4196,12 @@ export default class Exchange {
|
|
|
4165
4196
|
if ((retryDelay !== undefined) && (retryDelay !== 0)) {
|
|
4166
4197
|
await this.sleep(retryDelay);
|
|
4167
4198
|
}
|
|
4168
|
-
continue;
|
|
4199
|
+
// continue; //check this
|
|
4169
4200
|
}
|
|
4170
4201
|
}
|
|
4171
|
-
|
|
4202
|
+
if (i >= retries) {
|
|
4203
|
+
throw e;
|
|
4204
|
+
}
|
|
4172
4205
|
}
|
|
4173
4206
|
}
|
|
4174
4207
|
return undefined; // this line is never reached, but exists for c# value return requirement
|
|
@@ -4346,7 +4379,7 @@ export default class Exchange {
|
|
|
4346
4379
|
'precision': undefined,
|
|
4347
4380
|
});
|
|
4348
4381
|
}
|
|
4349
|
-
safeMarket(marketId, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
4382
|
+
safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
4350
4383
|
const result = this.safeMarketStructure({
|
|
4351
4384
|
'symbol': marketId,
|
|
4352
4385
|
'marketId': marketId,
|
|
@@ -4544,9 +4577,8 @@ export default class Exchange {
|
|
|
4544
4577
|
return [value2, params];
|
|
4545
4578
|
}
|
|
4546
4579
|
handleOption(methodName, optionName, defaultValue = undefined) {
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
return result;
|
|
4580
|
+
const res = this.handleOptionAndParams({}, methodName, optionName, defaultValue);
|
|
4581
|
+
return this.safeValue(res, 0);
|
|
4550
4582
|
}
|
|
4551
4583
|
handleMarketTypeAndParams(methodName, market = undefined, params = {}, defaultValue = undefined) {
|
|
4552
4584
|
/**
|
|
@@ -4747,6 +4779,18 @@ export default class Exchange {
|
|
|
4747
4779
|
async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
4748
4780
|
throw new NotSupported(this.id + ' createOrder() is not supported yet');
|
|
4749
4781
|
}
|
|
4782
|
+
async createConvertTrade(id, fromCode, toCode, amount = undefined, params = {}) {
|
|
4783
|
+
throw new NotSupported(this.id + ' createConvertTrade() is not supported yet');
|
|
4784
|
+
}
|
|
4785
|
+
async fetchConvertTrade(id, code = undefined, params = {}) {
|
|
4786
|
+
throw new NotSupported(this.id + ' fetchConvertTrade() is not supported yet');
|
|
4787
|
+
}
|
|
4788
|
+
async fetchConvertTradeHistory(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
4789
|
+
throw new NotSupported(this.id + ' fetchConvertTradeHistory() is not supported yet');
|
|
4790
|
+
}
|
|
4791
|
+
async fetchPositionMode(symbol = undefined, params = {}) {
|
|
4792
|
+
throw new NotSupported(this.id + ' fetchPositionMode() is not supported yet');
|
|
4793
|
+
}
|
|
4750
4794
|
async createTrailingAmountOrder(symbol, type, side, amount, price = undefined, trailingAmount = undefined, trailingTriggerPrice = undefined, params = {}) {
|
|
4751
4795
|
/**
|
|
4752
4796
|
* @method
|
|
@@ -5439,10 +5483,16 @@ export default class Exchange {
|
|
|
5439
5483
|
return await this.createOrderWs(symbol, 'market', 'sell', amount, undefined, params);
|
|
5440
5484
|
}
|
|
5441
5485
|
costToPrecision(symbol, cost) {
|
|
5486
|
+
if (cost === undefined) {
|
|
5487
|
+
return undefined;
|
|
5488
|
+
}
|
|
5442
5489
|
const market = this.market(symbol);
|
|
5443
5490
|
return this.decimalToPrecision(cost, TRUNCATE, market['precision']['price'], this.precisionMode, this.paddingMode);
|
|
5444
5491
|
}
|
|
5445
5492
|
priceToPrecision(symbol, price) {
|
|
5493
|
+
if (price === undefined) {
|
|
5494
|
+
return undefined;
|
|
5495
|
+
}
|
|
5446
5496
|
const market = this.market(symbol);
|
|
5447
5497
|
const result = this.decimalToPrecision(price, ROUND, market['precision']['price'], this.precisionMode, this.paddingMode);
|
|
5448
5498
|
if (result === '0') {
|
|
@@ -5451,6 +5501,9 @@ export default class Exchange {
|
|
|
5451
5501
|
return result;
|
|
5452
5502
|
}
|
|
5453
5503
|
amountToPrecision(symbol, amount) {
|
|
5504
|
+
if (amount === undefined) {
|
|
5505
|
+
return undefined;
|
|
5506
|
+
}
|
|
5454
5507
|
const market = this.market(symbol);
|
|
5455
5508
|
const result = this.decimalToPrecision(amount, TRUNCATE, market['precision']['amount'], this.precisionMode, this.paddingMode);
|
|
5456
5509
|
if (result === '0') {
|
|
@@ -5459,6 +5512,9 @@ export default class Exchange {
|
|
|
5459
5512
|
return result;
|
|
5460
5513
|
}
|
|
5461
5514
|
feeToPrecision(symbol, fee) {
|
|
5515
|
+
if (fee === undefined) {
|
|
5516
|
+
return undefined;
|
|
5517
|
+
}
|
|
5462
5518
|
const market = this.market(symbol);
|
|
5463
5519
|
return this.decimalToPrecision(fee, ROUND, market['precision']['price'], this.precisionMode, this.paddingMode);
|
|
5464
5520
|
}
|
|
@@ -5569,28 +5625,28 @@ export default class Exchange {
|
|
|
5569
5625
|
}
|
|
5570
5626
|
async createPostOnlyOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
5571
5627
|
if (!this.has['createPostOnlyOrder']) {
|
|
5572
|
-
throw new NotSupported(this.id + 'createPostOnlyOrder() is not supported yet');
|
|
5628
|
+
throw new NotSupported(this.id + ' createPostOnlyOrder() is not supported yet');
|
|
5573
5629
|
}
|
|
5574
5630
|
const query = this.extend(params, { 'postOnly': true });
|
|
5575
5631
|
return await this.createOrder(symbol, type, side, amount, price, query);
|
|
5576
5632
|
}
|
|
5577
5633
|
async createPostOnlyOrderWs(symbol, type, side, amount, price = undefined, params = {}) {
|
|
5578
5634
|
if (!this.has['createPostOnlyOrderWs']) {
|
|
5579
|
-
throw new NotSupported(this.id + 'createPostOnlyOrderWs() is not supported yet');
|
|
5635
|
+
throw new NotSupported(this.id + ' createPostOnlyOrderWs() is not supported yet');
|
|
5580
5636
|
}
|
|
5581
5637
|
const query = this.extend(params, { 'postOnly': true });
|
|
5582
5638
|
return await this.createOrderWs(symbol, type, side, amount, price, query);
|
|
5583
5639
|
}
|
|
5584
5640
|
async createReduceOnlyOrder(symbol, type, side, amount, price = undefined, params = {}) {
|
|
5585
5641
|
if (!this.has['createReduceOnlyOrder']) {
|
|
5586
|
-
throw new NotSupported(this.id + 'createReduceOnlyOrder() is not supported yet');
|
|
5642
|
+
throw new NotSupported(this.id + ' createReduceOnlyOrder() is not supported yet');
|
|
5587
5643
|
}
|
|
5588
5644
|
const query = this.extend(params, { 'reduceOnly': true });
|
|
5589
5645
|
return await this.createOrder(symbol, type, side, amount, price, query);
|
|
5590
5646
|
}
|
|
5591
5647
|
async createReduceOnlyOrderWs(symbol, type, side, amount, price = undefined, params = {}) {
|
|
5592
5648
|
if (!this.has['createReduceOnlyOrderWs']) {
|
|
5593
|
-
throw new NotSupported(this.id + 'createReduceOnlyOrderWs() is not supported yet');
|
|
5649
|
+
throw new NotSupported(this.id + ' createReduceOnlyOrderWs() is not supported yet');
|
|
5594
5650
|
}
|
|
5595
5651
|
const query = this.extend(params, { 'reduceOnly': true });
|
|
5596
5652
|
return await this.createOrderWs(symbol, type, side, amount, price, query);
|
|
@@ -5722,7 +5778,8 @@ export default class Exchange {
|
|
|
5722
5778
|
const results = [];
|
|
5723
5779
|
if (Array.isArray(tickers)) {
|
|
5724
5780
|
for (let i = 0; i < tickers.length; i++) {
|
|
5725
|
-
const
|
|
5781
|
+
const parsedTicker = this.parseTicker(tickers[i]);
|
|
5782
|
+
const ticker = this.extend(parsedTicker, params);
|
|
5726
5783
|
results.push(ticker);
|
|
5727
5784
|
}
|
|
5728
5785
|
}
|
|
@@ -5731,7 +5788,8 @@ export default class Exchange {
|
|
|
5731
5788
|
for (let i = 0; i < marketIds.length; i++) {
|
|
5732
5789
|
const marketId = marketIds[i];
|
|
5733
5790
|
const market = this.safeMarket(marketId);
|
|
5734
|
-
const
|
|
5791
|
+
const parsed = this.parseTicker(tickers[marketId], market);
|
|
5792
|
+
const ticker = this.extend(parsed, params);
|
|
5735
5793
|
results.push(ticker);
|
|
5736
5794
|
}
|
|
5737
5795
|
}
|
package/js/src/base/types.d.ts
CHANGED
package/js/src/bigone.d.ts
CHANGED
|
@@ -160,7 +160,7 @@ export default class bigone extends Exchange {
|
|
|
160
160
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
161
161
|
* @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
162
162
|
*/
|
|
163
|
-
cancelAllOrders(symbol?: Str, params?: {}): Promise<
|
|
163
|
+
cancelAllOrders(symbol?: Str, params?: {}): Promise<Order[]>;
|
|
164
164
|
/**
|
|
165
165
|
* @method
|
|
166
166
|
* @name bigone#fetchOrder
|
package/js/src/bigone.js
CHANGED
|
@@ -330,17 +330,20 @@ export default class bigone extends Exchange {
|
|
|
330
330
|
'limit': 200,
|
|
331
331
|
'daysBack': undefined,
|
|
332
332
|
'untilDays': undefined,
|
|
333
|
+
'symbolRequired': true,
|
|
333
334
|
},
|
|
334
335
|
'fetchOrder': {
|
|
335
336
|
'marginMode': false,
|
|
336
337
|
'trigger': false,
|
|
337
338
|
'trailing': false,
|
|
339
|
+
'symbolRequired': false,
|
|
338
340
|
},
|
|
339
341
|
'fetchOpenOrders': {
|
|
340
342
|
'marginMode': false,
|
|
341
343
|
'limit': 200,
|
|
342
344
|
'trigger': false,
|
|
343
345
|
'trailing': false,
|
|
346
|
+
'symbolRequired': true,
|
|
344
347
|
},
|
|
345
348
|
'fetchOrders': {
|
|
346
349
|
'marginMode': false,
|
|
@@ -349,6 +352,7 @@ export default class bigone extends Exchange {
|
|
|
349
352
|
'untilDays': undefined,
|
|
350
353
|
'trigger': false,
|
|
351
354
|
'trailing': false,
|
|
355
|
+
'symbolRequired': true,
|
|
352
356
|
},
|
|
353
357
|
'fetchClosedOrders': {
|
|
354
358
|
'marginMode': false,
|
|
@@ -358,6 +362,7 @@ export default class bigone extends Exchange {
|
|
|
358
362
|
'untilDays': undefined,
|
|
359
363
|
'trigger': false,
|
|
360
364
|
'trailing': false,
|
|
365
|
+
'symbolRequired': true,
|
|
361
366
|
},
|
|
362
367
|
'fetchOHLCV': {
|
|
363
368
|
'limit': 500,
|