ccxt 4.5.55 → 4.5.56
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 +209 -5
- package/dist/ccxt.browser.min.js +3 -3
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/aftermath.js +10 -5
- package/dist/cjs/src/alpaca.js +2 -2
- package/dist/cjs/src/apex.js +25 -16
- package/dist/cjs/src/arkham.js +7 -4
- package/dist/cjs/src/ascendex.js +6 -3
- package/dist/cjs/src/base/Exchange.js +3 -3
- package/dist/cjs/src/bigone.js +7 -4
- package/dist/cjs/src/binance.js +4 -4
- package/dist/cjs/src/bingx.js +4 -4
- package/dist/cjs/src/bitflyer.js +2 -1
- package/dist/cjs/src/bitget.js +14 -3
- package/dist/cjs/src/bitmart.js +5 -4
- package/dist/cjs/src/bitmex.js +7 -4
- package/dist/cjs/src/bitopro.js +1 -1
- package/dist/cjs/src/bitrue.js +2 -1
- package/dist/cjs/src/bitso.js +6 -3
- package/dist/cjs/src/bitstamp.js +5 -3
- package/dist/cjs/src/bittrade.js +2 -1
- package/dist/cjs/src/blofin.js +2 -1
- package/dist/cjs/src/bybit.js +19 -17
- package/dist/cjs/src/bybiteu.js +1 -0
- package/dist/cjs/src/coinbaseexchange.js +2 -1
- package/dist/cjs/src/coinbaseinternational.js +15 -9
- package/dist/cjs/src/coinex.js +5 -3
- package/dist/cjs/src/coinsph.js +4 -4
- package/dist/cjs/src/cryptocom.js +6 -6
- package/dist/cjs/src/deepcoin.js +6 -3
- package/dist/cjs/src/delta.js +2 -1
- package/dist/cjs/src/deribit.js +4 -2
- package/dist/cjs/src/derive.js +5 -3
- package/dist/cjs/src/digifinex.js +2 -1
- package/dist/cjs/src/exmo.js +12 -39
- package/dist/cjs/src/foxbit.js +1 -1
- package/dist/cjs/src/gemini.js +4 -2
- package/dist/cjs/src/grvt.js +13 -7
- package/dist/cjs/src/hashkey.js +4 -4
- package/dist/cjs/src/hibachi.js +1 -1
- package/dist/cjs/src/hitbtc.js +2 -1
- package/dist/cjs/src/htx.js +9 -5
- package/dist/cjs/src/hyperliquid.js +19 -13
- package/dist/cjs/src/indodax.js +2 -1
- package/dist/cjs/src/kraken.js +14 -13
- package/dist/cjs/src/krakenfutures.js +2 -1
- package/dist/cjs/src/lbank.js +8 -4
- package/dist/cjs/src/lighter.js +1 -1
- package/dist/cjs/src/luno.js +1 -1
- package/dist/cjs/src/mercado.js +2 -1
- package/dist/cjs/src/mexc.js +24 -14
- package/dist/cjs/src/modetrade.js +1 -1
- package/dist/cjs/src/okx.js +6 -3
- package/dist/cjs/src/oxfun.js +5 -3
- package/dist/cjs/src/p2b.js +8 -4
- package/dist/cjs/src/paradex.js +3 -2
- package/dist/cjs/src/phemex.js +4 -2
- package/dist/cjs/src/poloniex.js +2 -1
- package/dist/cjs/src/pro/apex.js +10 -1
- package/dist/cjs/src/pro/aster.js +10 -9
- package/dist/cjs/src/pro/binance.js +3 -3
- package/dist/cjs/src/pro/bingx.js +7 -2
- package/dist/cjs/src/pro/bitmart.js +10 -0
- package/dist/cjs/src/pro/bitmex.js +1 -1
- package/dist/cjs/src/pro/grvt.js +8 -0
- package/dist/cjs/src/pro/htx.js +4 -4
- package/dist/cjs/src/pro/krakenfutures.js +16 -4
- package/dist/cjs/src/pro/modetrade.js +3 -3
- package/dist/cjs/src/pro/okx.js +4 -4
- package/dist/cjs/src/pro/oxfun.js +4 -4
- package/dist/cjs/src/pro/woo.js +4 -4
- package/dist/cjs/src/pro/woofipro.js +3 -3
- package/dist/cjs/src/pro/xt.js +1 -1
- package/dist/cjs/src/toobit.js +1 -1
- package/dist/cjs/src/woo.js +1 -1
- package/dist/cjs/src/woofipro.js +1 -1
- package/dist/cjs/src/xt.js +2 -1
- package/dist/cjs/src/yobit.js +4 -2
- package/dist/cjs/src/zebpay.js +3 -3
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/mexc.d.ts +1 -0
- package/js/src/aftermath.js +10 -5
- package/js/src/alpaca.js +2 -2
- package/js/src/apex.d.ts +1 -1
- package/js/src/apex.js +25 -16
- package/js/src/arkham.js +7 -4
- package/js/src/ascendex.js +6 -3
- package/js/src/base/Exchange.js +3 -3
- package/js/src/bigone.js +7 -4
- package/js/src/binance.js +4 -4
- package/js/src/bingx.js +4 -4
- package/js/src/bitflyer.js +2 -1
- package/js/src/bitget.js +14 -3
- package/js/src/bitmart.js +5 -4
- package/js/src/bitmex.js +7 -4
- package/js/src/bitopro.js +1 -1
- package/js/src/bitrue.js +2 -1
- package/js/src/bitso.js +6 -3
- package/js/src/bitstamp.js +5 -3
- package/js/src/bittrade.js +2 -1
- package/js/src/blofin.js +2 -1
- package/js/src/bybit.d.ts +1 -1
- package/js/src/bybit.js +19 -17
- package/js/src/bybiteu.js +1 -0
- package/js/src/coinbaseexchange.js +2 -1
- package/js/src/coinbaseinternational.d.ts +1 -1
- package/js/src/coinbaseinternational.js +15 -9
- package/js/src/coinex.d.ts +1 -1
- package/js/src/coinex.js +5 -3
- package/js/src/coinsph.js +4 -4
- package/js/src/cryptocom.js +6 -6
- package/js/src/deepcoin.js +6 -3
- package/js/src/delta.js +2 -1
- package/js/src/deribit.js +4 -2
- package/js/src/derive.js +5 -3
- package/js/src/digifinex.js +2 -1
- package/js/src/exmo.js +12 -39
- package/js/src/foxbit.js +1 -1
- package/js/src/gemini.js +4 -2
- package/js/src/grvt.d.ts +1 -1
- package/js/src/grvt.js +13 -7
- package/js/src/hashkey.js +4 -4
- package/js/src/hibachi.d.ts +1 -1
- package/js/src/hibachi.js +1 -1
- package/js/src/hitbtc.js +2 -1
- package/js/src/htx.js +9 -5
- package/js/src/hyperliquid.d.ts +4 -4
- package/js/src/hyperliquid.js +19 -13
- package/js/src/indodax.js +2 -1
- package/js/src/kraken.js +14 -13
- package/js/src/krakenfutures.js +2 -1
- package/js/src/lbank.js +8 -4
- package/js/src/lighter.d.ts +1 -1
- package/js/src/lighter.js +1 -1
- package/js/src/luno.js +1 -1
- package/js/src/mercado.js +2 -1
- package/js/src/mexc.d.ts +2 -2
- package/js/src/mexc.js +24 -14
- package/js/src/modetrade.js +1 -1
- package/js/src/okx.js +6 -3
- package/js/src/oxfun.js +5 -3
- package/js/src/p2b.js +8 -4
- package/js/src/paradex.js +3 -2
- package/js/src/phemex.js +4 -2
- package/js/src/poloniex.js +2 -1
- package/js/src/pro/apex.js +10 -1
- package/js/src/pro/aster.js +10 -9
- package/js/src/pro/binance.d.ts +1 -1
- package/js/src/pro/binance.js +3 -3
- package/js/src/pro/bingx.js +7 -2
- package/js/src/pro/bitmart.js +10 -0
- package/js/src/pro/bitmex.js +1 -1
- package/js/src/pro/grvt.js +8 -0
- package/js/src/pro/htx.d.ts +4 -4
- package/js/src/pro/htx.js +4 -4
- package/js/src/pro/krakenfutures.d.ts +4 -4
- package/js/src/pro/krakenfutures.js +16 -4
- package/js/src/pro/modetrade.d.ts +3 -3
- package/js/src/pro/modetrade.js +3 -3
- package/js/src/pro/okx.d.ts +4 -4
- package/js/src/pro/okx.js +4 -4
- package/js/src/pro/oxfun.d.ts +4 -4
- package/js/src/pro/oxfun.js +4 -4
- package/js/src/pro/woo.d.ts +4 -4
- package/js/src/pro/woo.js +4 -4
- package/js/src/pro/woofipro.d.ts +3 -3
- package/js/src/pro/woofipro.js +3 -3
- package/js/src/pro/xt.js +1 -1
- package/js/src/toobit.d.ts +1 -1
- package/js/src/toobit.js +1 -1
- package/js/src/woo.js +1 -1
- package/js/src/woofipro.js +1 -1
- package/js/src/xt.js +2 -1
- package/js/src/yobit.js +4 -2
- package/js/src/zebpay.js +3 -3
- package/package.json +21 -7
package/dist/cjs/src/bybit.js
CHANGED
|
@@ -1546,8 +1546,9 @@ class bybit extends bybit$1["default"] {
|
|
|
1546
1546
|
amountPrecision = this.parseNumber('1');
|
|
1547
1547
|
pricePrecision = this.parseNumber('0.01');
|
|
1548
1548
|
}
|
|
1549
|
+
const convertedExpireDate = this.convertExpireDateToMarketIdDate(expiry);
|
|
1549
1550
|
return {
|
|
1550
|
-
'id': base + '-' +
|
|
1551
|
+
'id': base + '-' + convertedExpireDate + '-' + strike + '-' + optionType,
|
|
1551
1552
|
'symbol': base + '/' + quote + ':' + settle + '-' + expiry + '-' + strike + '-' + optionType,
|
|
1552
1553
|
'base': base,
|
|
1553
1554
|
'quote': quote,
|
|
@@ -1954,8 +1955,8 @@ class bybit extends bybit$1["default"] {
|
|
|
1954
1955
|
}
|
|
1955
1956
|
return result;
|
|
1956
1957
|
}
|
|
1957
|
-
async fetchFutureMarkets(params) {
|
|
1958
|
-
params = this.extend(params);
|
|
1958
|
+
async fetchFutureMarkets(params = {}) {
|
|
1959
|
+
params = this.extend(params, {});
|
|
1959
1960
|
params['limit'] = 1000; // minimize number of requests
|
|
1960
1961
|
let preLaunchMarkets = [];
|
|
1961
1962
|
const usePrivateInstrumentsInfo = this.safeBool(this.options, 'usePrivateInstrumentsInfo', false);
|
|
@@ -2098,7 +2099,7 @@ class bybit extends bybit$1["default"] {
|
|
|
2098
2099
|
symbol = symbol + '-' + this.yymmdd(expiry);
|
|
2099
2100
|
}
|
|
2100
2101
|
const contractSize = inverse ? this.safeNumber2(lotSizeFilter, 'minTradingQty', 'minOrderQty') : this.parseNumber('1');
|
|
2101
|
-
|
|
2102
|
+
const parsedMarket = this.safeMarketStructure({
|
|
2102
2103
|
'id': id,
|
|
2103
2104
|
'symbol': symbol,
|
|
2104
2105
|
'base': base,
|
|
@@ -2148,7 +2149,8 @@ class bybit extends bybit$1["default"] {
|
|
|
2148
2149
|
},
|
|
2149
2150
|
'created': this.safeInteger(market, 'launchTime'),
|
|
2150
2151
|
'info': market,
|
|
2151
|
-
})
|
|
2152
|
+
});
|
|
2153
|
+
result.push(parsedMarket);
|
|
2152
2154
|
}
|
|
2153
2155
|
return result;
|
|
2154
2156
|
}
|
|
@@ -4954,7 +4956,7 @@ class bybit extends bybit$1["default"] {
|
|
|
4954
4956
|
//
|
|
4955
4957
|
const result = this.safeDict(response, 'result', {});
|
|
4956
4958
|
const row = this.safeList(result, 'list', []);
|
|
4957
|
-
return this.parseOrders(row
|
|
4959
|
+
return this.parseOrders(row);
|
|
4958
4960
|
}
|
|
4959
4961
|
/**
|
|
4960
4962
|
* @method
|
|
@@ -5791,7 +5793,7 @@ class bybit extends bybit$1["default"] {
|
|
|
5791
5793
|
*/
|
|
5792
5794
|
async fetchDepositAddressesByNetwork(code, params = {}) {
|
|
5793
5795
|
await this.loadMarkets();
|
|
5794
|
-
|
|
5796
|
+
const currency = this.currency(code);
|
|
5795
5797
|
const request = {
|
|
5796
5798
|
'coin': currency['id'],
|
|
5797
5799
|
};
|
|
@@ -5823,9 +5825,9 @@ class bybit extends bybit$1["default"] {
|
|
|
5823
5825
|
const result = this.safeDict(response, 'result', {});
|
|
5824
5826
|
const chains = this.safeList(result, 'chains', []);
|
|
5825
5827
|
const coin = this.safeString(result, 'coin');
|
|
5826
|
-
|
|
5827
|
-
const parsed = this.parseDepositAddresses(chains, [
|
|
5828
|
-
'currency':
|
|
5828
|
+
const currencyFromResponse = this.currency(coin);
|
|
5829
|
+
const parsed = this.parseDepositAddresses(chains, [currencyFromResponse['code']], false, {
|
|
5830
|
+
'currency': currencyFromResponse['code'],
|
|
5829
5831
|
});
|
|
5830
5832
|
return this.indexBy(parsed, 'network');
|
|
5831
5833
|
}
|
|
@@ -7099,7 +7101,7 @@ class bybit extends bybit$1["default"] {
|
|
|
7099
7101
|
}
|
|
7100
7102
|
async fetchDerivativesOpenInterestHistory(symbol, timeframe = '1h', since = undefined, limit = undefined, params = {}) {
|
|
7101
7103
|
await this.loadMarkets();
|
|
7102
|
-
|
|
7104
|
+
const market = this.market(symbol);
|
|
7103
7105
|
const subType = market['linear'] ? 'linear' : 'inverse';
|
|
7104
7106
|
const category = this.safeString(params, 'category', subType);
|
|
7105
7107
|
const intervals = this.safeDict(this.options, 'intervals');
|
|
@@ -7150,8 +7152,8 @@ class bybit extends bybit$1["default"] {
|
|
|
7150
7152
|
const result = this.safeDict(response, 'result', {});
|
|
7151
7153
|
const data = this.addPaginationCursorToResult(response);
|
|
7152
7154
|
const id = this.safeString(result, 'symbol');
|
|
7153
|
-
|
|
7154
|
-
return this.parseOpenInterestsHistory(data,
|
|
7155
|
+
const safeMarketObj = this.safeMarket(id, market, undefined, 'contract');
|
|
7156
|
+
return this.parseOpenInterestsHistory(data, safeMarketObj, since, limit);
|
|
7155
7157
|
}
|
|
7156
7158
|
/**
|
|
7157
7159
|
* @method
|
|
@@ -7166,7 +7168,7 @@ class bybit extends bybit$1["default"] {
|
|
|
7166
7168
|
*/
|
|
7167
7169
|
async fetchOpenInterest(symbol, params = {}) {
|
|
7168
7170
|
await this.loadMarkets();
|
|
7169
|
-
|
|
7171
|
+
const market = this.market(symbol);
|
|
7170
7172
|
if (!market['contract']) {
|
|
7171
7173
|
throw new errors.BadRequest(this.id + ' fetchOpenInterest() supports contract markets only');
|
|
7172
7174
|
}
|
|
@@ -7209,9 +7211,9 @@ class bybit extends bybit$1["default"] {
|
|
|
7209
7211
|
//
|
|
7210
7212
|
const result = this.safeDict(response, 'result', {});
|
|
7211
7213
|
const id = this.safeString(result, 'symbol');
|
|
7212
|
-
|
|
7214
|
+
const safeMarketObj = this.safeMarket(id, market, undefined, 'contract');
|
|
7213
7215
|
const data = this.addPaginationCursorToResult(response);
|
|
7214
|
-
return this.parseOpenInterest(data[0],
|
|
7216
|
+
return this.parseOpenInterest(data[0], safeMarketObj);
|
|
7215
7217
|
}
|
|
7216
7218
|
/**
|
|
7217
7219
|
* @method
|
|
@@ -7376,7 +7378,7 @@ class bybit extends bybit$1["default"] {
|
|
|
7376
7378
|
//
|
|
7377
7379
|
const data = this.safeDict(response, 'result', {});
|
|
7378
7380
|
const rows = this.safeList(data, 'loanAccountList', []);
|
|
7379
|
-
const interest = this.parseBorrowInterests(rows
|
|
7381
|
+
const interest = this.parseBorrowInterests(rows);
|
|
7380
7382
|
return this.filterByCurrencySinceLimit(interest, code, since, limit);
|
|
7381
7383
|
}
|
|
7382
7384
|
/**
|
package/dist/cjs/src/bybiteu.js
CHANGED
|
@@ -1034,13 +1034,14 @@ class coinbaseexchange extends coinbaseexchange$1["default"] {
|
|
|
1034
1034
|
}
|
|
1035
1035
|
const price = this.safeString(trade, 'price');
|
|
1036
1036
|
const amount = this.safeString(trade, 'size');
|
|
1037
|
+
const symbol = market['symbol'];
|
|
1037
1038
|
return this.safeTrade({
|
|
1038
1039
|
'id': id,
|
|
1039
1040
|
'order': orderId,
|
|
1040
1041
|
'info': trade,
|
|
1041
1042
|
'timestamp': timestamp,
|
|
1042
1043
|
'datetime': this.iso8601(timestamp),
|
|
1043
|
-
'symbol':
|
|
1044
|
+
'symbol': symbol,
|
|
1044
1045
|
'type': undefined,
|
|
1045
1046
|
'takerOrMaker': takerOrMaker,
|
|
1046
1047
|
'side': side,
|
|
@@ -351,7 +351,7 @@ class coinbaseinternational extends coinbaseinternational$1["default"] {
|
|
|
351
351
|
}
|
|
352
352
|
throw new errors.ArgumentsRequired(this.id + ' ' + methodName + '() requires a portfolio parameter or set the default portfolio with this.options["portfolio"]');
|
|
353
353
|
}
|
|
354
|
-
async handleNetworkIdAndParams(currencyCode, methodName, params) {
|
|
354
|
+
async handleNetworkIdAndParams(currencyCode, methodName, params = {}) {
|
|
355
355
|
let networkId = undefined;
|
|
356
356
|
[networkId, params] = this.handleOptionAndParams(params, methodName, 'network_arn_id');
|
|
357
357
|
if (networkId === undefined) {
|
|
@@ -527,9 +527,10 @@ class coinbaseinternational extends coinbaseinternational$1["default"] {
|
|
|
527
527
|
}
|
|
528
528
|
const market = this.market(symbol);
|
|
529
529
|
const page = this.safeInteger(params, pageKey, 1) - 1;
|
|
530
|
+
const offSet = this.safeInteger2(params, 'offset', 'result_offset', page * maxEntriesPerRequest);
|
|
530
531
|
const request = {
|
|
531
532
|
'instrument': market['id'],
|
|
532
|
-
'result_offset':
|
|
533
|
+
'result_offset': offSet,
|
|
533
534
|
};
|
|
534
535
|
if (limit !== undefined) {
|
|
535
536
|
request['result_limit'] = limit;
|
|
@@ -949,8 +950,9 @@ class coinbaseinternational extends coinbaseinternational$1["default"] {
|
|
|
949
950
|
return await this.fetchPaginatedCallIncremental('fetchDepositsWithdrawals', code, since, limit, params, pageKey, maxEntriesPerRequest);
|
|
950
951
|
}
|
|
951
952
|
const page = this.safeInteger(params, pageKey, 1) - 1;
|
|
953
|
+
const offSet = this.safeInteger2(params, 'offset', 'result_offset', page * maxEntriesPerRequest);
|
|
952
954
|
const request = {
|
|
953
|
-
'result_offset':
|
|
955
|
+
'result_offset': offSet,
|
|
954
956
|
};
|
|
955
957
|
if (since !== undefined) {
|
|
956
958
|
request['time_from'] = this.iso8601(since);
|
|
@@ -1385,16 +1387,18 @@ class coinbaseinternational extends coinbaseinternational$1["default"] {
|
|
|
1385
1387
|
settleId = quoteId;
|
|
1386
1388
|
symbol += ':' + quoteId;
|
|
1387
1389
|
}
|
|
1390
|
+
const isLinear = isSpot ? undefined : (settleId === quoteId);
|
|
1391
|
+
const isInverse = isSpot ? undefined : (settleId !== quoteId);
|
|
1388
1392
|
return {
|
|
1389
1393
|
'id': marketId,
|
|
1390
1394
|
'lowercaseId': marketId.toLowerCase(),
|
|
1391
1395
|
'symbol': symbol,
|
|
1392
1396
|
'base': baseId,
|
|
1393
1397
|
'quote': quoteId,
|
|
1394
|
-
'settle': settleId
|
|
1398
|
+
'settle': settleId,
|
|
1395
1399
|
'baseId': baseId,
|
|
1396
1400
|
'quoteId': quoteId,
|
|
1397
|
-
'settleId': settleId
|
|
1401
|
+
'settleId': settleId,
|
|
1398
1402
|
'type': isSpot ? 'spot' : 'swap',
|
|
1399
1403
|
'spot': isSpot,
|
|
1400
1404
|
'margin': false,
|
|
@@ -1403,8 +1407,8 @@ class coinbaseinternational extends coinbaseinternational$1["default"] {
|
|
|
1403
1407
|
'option': false,
|
|
1404
1408
|
'active': this.safeString(market, 'trading_state') === 'TRADING',
|
|
1405
1409
|
'contract': !isSpot,
|
|
1406
|
-
'linear':
|
|
1407
|
-
'inverse':
|
|
1410
|
+
'linear': isLinear,
|
|
1411
|
+
'inverse': isInverse,
|
|
1408
1412
|
'taker': fees['trading']['taker'],
|
|
1409
1413
|
'maker': fees['trading']['maker'],
|
|
1410
1414
|
'contractSize': isSpot ? undefined : 1,
|
|
@@ -2053,9 +2057,10 @@ class coinbaseinternational extends coinbaseinternational$1["default"] {
|
|
|
2053
2057
|
return await this.fetchPaginatedCallIncremental('fetchOpenOrders', symbol, since, limit, params, pageKey, maxEntriesPerRequest);
|
|
2054
2058
|
}
|
|
2055
2059
|
const page = this.safeInteger(params, pageKey, 1) - 1;
|
|
2060
|
+
const offSet = this.safeInteger2(params, 'offset', 'result_offset', page * maxEntriesPerRequest);
|
|
2056
2061
|
const request = {
|
|
2057
2062
|
'portfolio': portfolio,
|
|
2058
|
-
'result_offset':
|
|
2063
|
+
'result_offset': offSet,
|
|
2059
2064
|
};
|
|
2060
2065
|
let market = undefined;
|
|
2061
2066
|
if (symbol) {
|
|
@@ -2137,8 +2142,9 @@ class coinbaseinternational extends coinbaseinternational$1["default"] {
|
|
|
2137
2142
|
market = this.market(symbol);
|
|
2138
2143
|
}
|
|
2139
2144
|
const page = this.safeInteger(params, pageKey, 1) - 1;
|
|
2145
|
+
const offSet = this.safeInteger2(params, 'offset', 'result_offset', page * maxEntriesPerRequest);
|
|
2140
2146
|
const request = {
|
|
2141
|
-
'result_offset':
|
|
2147
|
+
'result_offset': offSet,
|
|
2142
2148
|
};
|
|
2143
2149
|
if (limit !== undefined) {
|
|
2144
2150
|
if (limit > 100) {
|
package/dist/cjs/src/coinex.js
CHANGED
|
@@ -4503,11 +4503,13 @@ class coinex extends coinex$1["default"] {
|
|
|
4503
4503
|
const marketId = this.safeString(info, 'market');
|
|
4504
4504
|
market = this.safeMarket(marketId, market, undefined, 'swap');
|
|
4505
4505
|
const maxNotional = this.safeNumber(tier, 'amount');
|
|
4506
|
+
const curr = market['linear'] ? market['base'] : market['quote'];
|
|
4507
|
+
const notional = minNotional;
|
|
4506
4508
|
tiers.push({
|
|
4507
4509
|
'tier': this.sum(i, 1),
|
|
4508
4510
|
'symbol': this.safeSymbol(marketId, market, undefined, 'swap'),
|
|
4509
|
-
'currency':
|
|
4510
|
-
'minNotional':
|
|
4511
|
+
'currency': curr,
|
|
4512
|
+
'minNotional': notional,
|
|
4511
4513
|
'maxNotional': maxNotional,
|
|
4512
4514
|
'maintenanceMarginRate': this.safeNumber(tier, 'maintenance_margin_rate'),
|
|
4513
4515
|
'maxLeverage': this.safeInteger(tier, 'leverage'),
|
|
@@ -5722,7 +5724,7 @@ class coinex extends coinex$1["default"] {
|
|
|
5722
5724
|
* @name coinex#fetchDepositWithdrawFees
|
|
5723
5725
|
* @description fetch the fees for deposits and withdrawals
|
|
5724
5726
|
* @see https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/list-all-deposit-withdrawal-config
|
|
5725
|
-
* @param codes
|
|
5727
|
+
* @param {string[]} [codes] list of unified currency codes
|
|
5726
5728
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
5727
5729
|
* @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/?id=fee-structure}
|
|
5728
5730
|
*/
|
package/dist/cjs/src/coinsph.js
CHANGED
|
@@ -1277,12 +1277,12 @@ class coinsph extends coinsph$1["default"] {
|
|
|
1277
1277
|
'currency': this.safeCurrencyCode(feeCurrencyId),
|
|
1278
1278
|
};
|
|
1279
1279
|
}
|
|
1280
|
-
const isBuyer = this.safeBool2(trade, 'isBuyer', 'isBuyerMaker'
|
|
1280
|
+
const isBuyer = this.safeBool2(trade, 'isBuyer', 'isBuyerMaker');
|
|
1281
1281
|
let side = undefined;
|
|
1282
1282
|
if (isBuyer !== undefined) {
|
|
1283
1283
|
side = (isBuyer === true) ? 'buy' : 'sell';
|
|
1284
1284
|
}
|
|
1285
|
-
const isMaker = this.
|
|
1285
|
+
const isMaker = this.safeString(trade, 'isMaker');
|
|
1286
1286
|
let takerOrMaker = undefined;
|
|
1287
1287
|
if (isMaker !== undefined) {
|
|
1288
1288
|
takerOrMaker = (isMaker === 'true') ? 'maker' : 'taker';
|
|
@@ -1677,7 +1677,7 @@ class coinsph extends coinsph$1["default"] {
|
|
|
1677
1677
|
const marketId = this.safeString(order, 'symbol');
|
|
1678
1678
|
market = this.safeMarket(marketId, market);
|
|
1679
1679
|
const timestamp = this.safeInteger2(order, 'time', 'transactTime');
|
|
1680
|
-
const trades = this.safeValue(order, 'fills'
|
|
1680
|
+
const trades = this.safeValue(order, 'fills');
|
|
1681
1681
|
let triggerPrice = this.safeString(order, 'stopPrice');
|
|
1682
1682
|
if (Precise["default"].stringEq(triggerPrice, '0')) {
|
|
1683
1683
|
triggerPrice = undefined;
|
|
@@ -2218,7 +2218,7 @@ class coinsph extends coinsph$1["default"] {
|
|
|
2218
2218
|
if (response === undefined) {
|
|
2219
2219
|
return undefined;
|
|
2220
2220
|
}
|
|
2221
|
-
const responseCode = this.safeString(response, 'code'
|
|
2221
|
+
const responseCode = this.safeString(response, 'code');
|
|
2222
2222
|
if ((responseCode !== undefined) && (responseCode !== '200') && (responseCode !== '0')) {
|
|
2223
2223
|
const feedback = this.id + ' ' + body;
|
|
2224
2224
|
this.throwBroadlyMatchedException(this.exceptions['broad'], body, feedback);
|
|
@@ -811,6 +811,8 @@ class cryptocom extends cryptocom$1["default"] {
|
|
|
811
811
|
symbol = symbol + ':' + quote + '-' + this.yymmdd(expiry) + '-' + strike + '-' + symbolOptionType;
|
|
812
812
|
contract = true;
|
|
813
813
|
}
|
|
814
|
+
const isLinear = (contract) ? true : undefined;
|
|
815
|
+
const isInverse = (contract) ? false : undefined;
|
|
814
816
|
result.push({
|
|
815
817
|
'id': this.safeString(market, 'symbol'),
|
|
816
818
|
'symbol': symbol,
|
|
@@ -828,8 +830,8 @@ class cryptocom extends cryptocom$1["default"] {
|
|
|
828
830
|
'option': option,
|
|
829
831
|
'active': this.safeBool(market, 'tradable'),
|
|
830
832
|
'contract': contract,
|
|
831
|
-
'linear':
|
|
832
|
-
'inverse':
|
|
833
|
+
'linear': isLinear,
|
|
834
|
+
'inverse': isInverse,
|
|
833
835
|
'contractSize': this.safeNumber(market, 'contract_size'),
|
|
834
836
|
'expiry': expiry,
|
|
835
837
|
'expiryDatetime': this.iso8601(expiry),
|
|
@@ -2120,10 +2122,8 @@ class cryptocom extends cryptocom$1["default"] {
|
|
|
2120
2122
|
if (network in depositAddresses) {
|
|
2121
2123
|
return depositAddresses[network];
|
|
2122
2124
|
}
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
return depositAddresses[keys[0]];
|
|
2126
|
-
}
|
|
2125
|
+
const keys = Object.keys(depositAddresses);
|
|
2126
|
+
return depositAddresses[keys[0]];
|
|
2127
2127
|
}
|
|
2128
2128
|
/**
|
|
2129
2129
|
* @method
|
package/dist/cjs/src/deepcoin.js
CHANGED
|
@@ -513,6 +513,8 @@ class deepcoin extends deepcoin$1["default"] {
|
|
|
513
513
|
const maxLimitSize = this.safeString(market, 'maxLmtSz');
|
|
514
514
|
const maxAmount = this.parseNumber(Precise["default"].stringMax(maxMarketSize, maxLimitSize));
|
|
515
515
|
const state = this.safeString(market, 'state');
|
|
516
|
+
const isMargin = spot && (Precise["default"].stringGt(maxLeverage, '1'));
|
|
517
|
+
const isInverse = swap ? (!isLinear) : undefined;
|
|
516
518
|
return this.extend(fees, {
|
|
517
519
|
'id': id,
|
|
518
520
|
'symbol': symbol,
|
|
@@ -524,14 +526,14 @@ class deepcoin extends deepcoin$1["default"] {
|
|
|
524
526
|
'settleId': settleId,
|
|
525
527
|
'type': type,
|
|
526
528
|
'spot': spot,
|
|
527
|
-
'margin':
|
|
529
|
+
'margin': isMargin,
|
|
528
530
|
'swap': swap,
|
|
529
531
|
'future': false,
|
|
530
532
|
'option': false,
|
|
531
533
|
'active': state === 'live',
|
|
532
534
|
'contract': swap,
|
|
533
535
|
'linear': isLinear,
|
|
534
|
-
'inverse':
|
|
536
|
+
'inverse': isInverse,
|
|
535
537
|
'contractSize': swap ? this.safeNumber(market, 'ctVal') : undefined,
|
|
536
538
|
'expiry': undefined,
|
|
537
539
|
'expiryDatetime': undefined,
|
|
@@ -2192,11 +2194,12 @@ class deepcoin extends deepcoin$1["default"] {
|
|
|
2192
2194
|
}
|
|
2193
2195
|
let merged = true;
|
|
2194
2196
|
[merged, params] = this.handleOptionAndParams(params, 'cancelAllOrders', 'merged', merged);
|
|
2197
|
+
const isMergedMode = merged ? 1 : 0;
|
|
2195
2198
|
const request = {
|
|
2196
2199
|
'InstrumentID': market['id'],
|
|
2197
2200
|
'ProductGroup': productGroup,
|
|
2198
2201
|
'IsCrossMargin': encodedMarginMode,
|
|
2199
|
-
'IsMergeMode':
|
|
2202
|
+
'IsMergeMode': isMergedMode,
|
|
2200
2203
|
};
|
|
2201
2204
|
const response = await this.privatePostDeepcoinTradeSwapCancelAll(this.extend(request, params));
|
|
2202
2205
|
const data = this.safeList(response, 'data', []);
|
package/dist/cjs/src/delta.js
CHANGED
|
@@ -365,6 +365,7 @@ class delta extends delta$1["default"] {
|
|
|
365
365
|
const strike = this.safeString(optionParts, 2);
|
|
366
366
|
const datetime = this.convertExpireDate(expiry);
|
|
367
367
|
const timestamp = this.parse8601(datetime);
|
|
368
|
+
const optionTypeUnified = (optionType === 'C') ? 'call' : 'put';
|
|
368
369
|
return {
|
|
369
370
|
'id': optionType + '-' + base + '-' + strike + '-' + expiry,
|
|
370
371
|
'symbol': base + '/' + quote + ':' + settle + '-' + expiry + '-' + strike + '-' + optionType,
|
|
@@ -387,7 +388,7 @@ class delta extends delta$1["default"] {
|
|
|
387
388
|
'contractSize': this.parseNumber('1'),
|
|
388
389
|
'expiry': timestamp,
|
|
389
390
|
'expiryDatetime': datetime,
|
|
390
|
-
'optionType':
|
|
391
|
+
'optionType': optionTypeUnified,
|
|
391
392
|
'strike': this.parseNumber(strike),
|
|
392
393
|
'precision': {
|
|
393
394
|
'amount': undefined,
|
package/dist/cjs/src/deribit.js
CHANGED
|
@@ -531,9 +531,11 @@ class deribit extends deribit$1["default"] {
|
|
|
531
531
|
const optionType = this.safeString(optionParts, 3);
|
|
532
532
|
const datetime = this.convertExpireDate(expiry);
|
|
533
533
|
const timestamp = this.parse8601(datetime);
|
|
534
|
+
const id = base + '-' + this.convertExpireDateToMarketIdDate(expiry) + '-' + strike + '-' + optionType;
|
|
535
|
+
const symbolExpired = splitBase + '/' + quote + ':' + settle + '-' + expiry + '-' + strike + '-' + optionType;
|
|
534
536
|
return {
|
|
535
|
-
'id':
|
|
536
|
-
'symbol':
|
|
537
|
+
'id': id,
|
|
538
|
+
'symbol': symbolExpired,
|
|
537
539
|
'base': base,
|
|
538
540
|
'quote': quote,
|
|
539
541
|
'settle': settle,
|
package/dist/cjs/src/derive.js
CHANGED
|
@@ -677,6 +677,8 @@ class derive extends derive$1["default"] {
|
|
|
677
677
|
linear = true;
|
|
678
678
|
inverse = false;
|
|
679
679
|
}
|
|
680
|
+
const contractSize = (spot) ? undefined : 1;
|
|
681
|
+
const isContract = (swap || option);
|
|
680
682
|
return this.safeMarketStructure({
|
|
681
683
|
'id': marketId,
|
|
682
684
|
'symbol': symbol,
|
|
@@ -693,10 +695,10 @@ class derive extends derive$1["default"] {
|
|
|
693
695
|
'future': false,
|
|
694
696
|
'option': option,
|
|
695
697
|
'active': this.safeBool(market, 'is_active'),
|
|
696
|
-
'contract':
|
|
698
|
+
'contract': isContract,
|
|
697
699
|
'linear': linear,
|
|
698
700
|
'inverse': inverse,
|
|
699
|
-
'contractSize':
|
|
701
|
+
'contractSize': contractSize,
|
|
700
702
|
'expiry': expiry,
|
|
701
703
|
'expiryDatetime': this.iso8601(expiry),
|
|
702
704
|
'taker': this.safeNumber(market, 'taker_fee_rate'),
|
|
@@ -1822,7 +1824,7 @@ class derive extends derive$1["default"] {
|
|
|
1822
1824
|
'gtc': 'GTC',
|
|
1823
1825
|
'post_only': 'PO',
|
|
1824
1826
|
};
|
|
1825
|
-
return this.safeString(timeInForces, timeInForce
|
|
1827
|
+
return this.safeString(timeInForces, timeInForce);
|
|
1826
1828
|
}
|
|
1827
1829
|
parseOrderStatus(status) {
|
|
1828
1830
|
if (status !== undefined) {
|
|
@@ -682,6 +682,7 @@ class digifinex extends digifinex$1["default"] {
|
|
|
682
682
|
isAllowed = 1;
|
|
683
683
|
}
|
|
684
684
|
}
|
|
685
|
+
const isActive = isAllowed ? true : false;
|
|
685
686
|
result.push({
|
|
686
687
|
'id': id,
|
|
687
688
|
'symbol': symbol,
|
|
@@ -697,7 +698,7 @@ class digifinex extends digifinex$1["default"] {
|
|
|
697
698
|
'swap': swap,
|
|
698
699
|
'future': false,
|
|
699
700
|
'option': false,
|
|
700
|
-
'active':
|
|
701
|
+
'active': isActive,
|
|
701
702
|
'contract': swap,
|
|
702
703
|
'linear': isLinear,
|
|
703
704
|
'inverse': isInverse,
|
package/dist/cjs/src/exmo.js
CHANGED
|
@@ -390,9 +390,7 @@ class exmo extends exmo$1["default"] {
|
|
|
390
390
|
if (method === 'fetchPrivateTradingFees') {
|
|
391
391
|
return await this.fetchPrivateTradingFees(params);
|
|
392
392
|
}
|
|
393
|
-
|
|
394
|
-
return await this.fetchPublicTradingFees(params);
|
|
395
|
-
}
|
|
393
|
+
return await this.fetchPublicTradingFees(params);
|
|
396
394
|
}
|
|
397
395
|
async fetchPrivateTradingFees(params = {}) {
|
|
398
396
|
await this.loadMarkets();
|
|
@@ -1145,7 +1143,8 @@ class exmo extends exmo$1["default"] {
|
|
|
1145
1143
|
await this.loadMarkets();
|
|
1146
1144
|
let ids = undefined;
|
|
1147
1145
|
if (symbols === undefined) {
|
|
1148
|
-
|
|
1146
|
+
const allIds = this.ids;
|
|
1147
|
+
ids = allIds.join(',');
|
|
1149
1148
|
// max URL length is 2083 symbols, including http schema, hostname, tld, etc...
|
|
1150
1149
|
if (ids.length > 2048) {
|
|
1151
1150
|
const numIds = this.ids.length;
|
|
@@ -2168,43 +2167,17 @@ class exmo extends exmo$1["default"] {
|
|
|
2168
2167
|
});
|
|
2169
2168
|
return this.parseOrders(response, market, since, limit, params);
|
|
2170
2169
|
}
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
// "event_type": "OrderCancelStarted",
|
|
2180
|
-
// "order_id": "692862104561289319",
|
|
2181
|
-
// "order_type": "stop_limit_sell",
|
|
2182
|
-
// "order_status": "cancel_started",
|
|
2183
|
-
// "trade_id": "0",
|
|
2184
|
-
// "trade_type":"",
|
|
2185
|
-
// "trade_quantity": "0",
|
|
2186
|
-
// "trade_price": "0",
|
|
2187
|
-
// "pair": "ADA_USDT",
|
|
2188
|
-
// "quantity": "12",
|
|
2189
|
-
// "price": "0.23",
|
|
2190
|
-
// "stop_price": "0.22",
|
|
2191
|
-
// "distance": "0"
|
|
2192
|
-
// }
|
|
2193
|
-
// ...
|
|
2194
|
-
// ]
|
|
2195
|
-
// }
|
|
2196
|
-
//
|
|
2197
|
-
const items = this.safeValue(responseSwap, 'items');
|
|
2198
|
-
const orders = this.parseOrders(items, market, since, limit, params);
|
|
2199
|
-
const result = [];
|
|
2200
|
-
for (let i = 0; i < orders.length; i++) {
|
|
2201
|
-
const order = orders[i];
|
|
2202
|
-
if (order['status'] === 'canceled') {
|
|
2203
|
-
result.push(order);
|
|
2204
|
-
}
|
|
2170
|
+
const responseSwap = await this.privatePostMarginUserOrderHistory(this.extend(request, params));
|
|
2171
|
+
const items = this.safeValue(responseSwap, 'items');
|
|
2172
|
+
const orders = this.parseOrders(items, market, since, limit, params);
|
|
2173
|
+
const result = [];
|
|
2174
|
+
for (let i = 0; i < orders.length; i++) {
|
|
2175
|
+
const order = orders[i];
|
|
2176
|
+
if (order['status'] === 'canceled') {
|
|
2177
|
+
result.push(order);
|
|
2205
2178
|
}
|
|
2206
|
-
return result;
|
|
2207
2179
|
}
|
|
2180
|
+
return result;
|
|
2208
2181
|
}
|
|
2209
2182
|
/**
|
|
2210
2183
|
* @method
|
package/dist/cjs/src/foxbit.js
CHANGED
|
@@ -1144,7 +1144,7 @@ class foxbit extends foxbit$1["default"] {
|
|
|
1144
1144
|
// "remark": "A remarkable note for the order.",
|
|
1145
1145
|
// "funds_received": "290.0"
|
|
1146
1146
|
// }
|
|
1147
|
-
return this.parseOrder(response
|
|
1147
|
+
return this.parseOrder(response);
|
|
1148
1148
|
}
|
|
1149
1149
|
/**
|
|
1150
1150
|
* @method
|
package/dist/cjs/src/gemini.js
CHANGED
|
@@ -825,6 +825,7 @@ class gemini extends gemini$1["default"] {
|
|
|
825
825
|
inverse = false;
|
|
826
826
|
}
|
|
827
827
|
const type = swap ? 'swap' : 'spot';
|
|
828
|
+
const isSpot = !swap;
|
|
828
829
|
return {
|
|
829
830
|
'id': marketId,
|
|
830
831
|
'symbol': symbol,
|
|
@@ -835,7 +836,7 @@ class gemini extends gemini$1["default"] {
|
|
|
835
836
|
'quoteId': quoteId,
|
|
836
837
|
'settleId': settleId,
|
|
837
838
|
'type': type,
|
|
838
|
-
'spot':
|
|
839
|
+
'spot': isSpot,
|
|
839
840
|
'margin': false,
|
|
840
841
|
'swap': swap,
|
|
841
842
|
'future': false,
|
|
@@ -1929,8 +1930,9 @@ class gemini extends gemini$1["default"] {
|
|
|
1929
1930
|
throw new errors.AuthenticationError(this.id + ' sign() requires an account-key, master-keys are not-supported');
|
|
1930
1931
|
}
|
|
1931
1932
|
const nonce = this.nonce().toString();
|
|
1933
|
+
const finalUrl = url;
|
|
1932
1934
|
const request = this.extend({
|
|
1933
|
-
'request':
|
|
1935
|
+
'request': finalUrl,
|
|
1934
1936
|
'nonce': nonce,
|
|
1935
1937
|
}, query);
|
|
1936
1938
|
let payload = this.json(request);
|
package/dist/cjs/src/grvt.js
CHANGED
|
@@ -1831,7 +1831,7 @@ class grvt extends grvt$1["default"] {
|
|
|
1831
1831
|
}
|
|
1832
1832
|
async loadAccountInfos() {
|
|
1833
1833
|
if (this.safeString(this.options, 'userMainAccountId') !== undefined) {
|
|
1834
|
-
return;
|
|
1834
|
+
return false;
|
|
1835
1835
|
}
|
|
1836
1836
|
const promises = [];
|
|
1837
1837
|
promises.push(this.privateTradingPostFullV1AggregatedAccountSummary());
|
|
@@ -1884,6 +1884,7 @@ class grvt extends grvt$1["default"] {
|
|
|
1884
1884
|
const subAccountId = this.safeString(subAccountIds, 0);
|
|
1885
1885
|
this.options['accountId'] = subAccountId;
|
|
1886
1886
|
}
|
|
1887
|
+
return true;
|
|
1887
1888
|
}
|
|
1888
1889
|
/**
|
|
1889
1890
|
* @method
|
|
@@ -1976,8 +1977,10 @@ class grvt extends grvt$1["default"] {
|
|
|
1976
1977
|
}
|
|
1977
1978
|
params = this.omit(params, ['clientOrderId']);
|
|
1978
1979
|
const isMarketOrder = (type === 'market');
|
|
1980
|
+
const subAccountId = this.getSubAccountId(params);
|
|
1981
|
+
const isReduceOnly = this.safeBool(params, 'reduceOnly', false);
|
|
1979
1982
|
const orderRequest = {
|
|
1980
|
-
'sub_account_id':
|
|
1983
|
+
'sub_account_id': subAccountId,
|
|
1981
1984
|
'time_in_force': undefined,
|
|
1982
1985
|
'legs': [orderLeg],
|
|
1983
1986
|
'signature': this.defaultSignature(),
|
|
@@ -1986,7 +1989,7 @@ class grvt extends grvt$1["default"] {
|
|
|
1986
1989
|
},
|
|
1987
1990
|
'is_market': isMarketOrder,
|
|
1988
1991
|
'post_only': false,
|
|
1989
|
-
'reduce_only':
|
|
1992
|
+
'reduce_only': isReduceOnly,
|
|
1990
1993
|
// 'order_id': null,
|
|
1991
1994
|
// 'state': null,
|
|
1992
1995
|
};
|
|
@@ -2619,8 +2622,9 @@ class grvt extends grvt$1["default"] {
|
|
|
2619
2622
|
*/
|
|
2620
2623
|
async fetchOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
2621
2624
|
await this.loadMarketsAndSignIn();
|
|
2625
|
+
const subAccountId = this.getSubAccountId(params);
|
|
2622
2626
|
let request = {
|
|
2623
|
-
'sub_account_id':
|
|
2627
|
+
'sub_account_id': subAccountId,
|
|
2624
2628
|
};
|
|
2625
2629
|
let market = undefined;
|
|
2626
2630
|
if (symbol !== undefined) {
|
|
@@ -2796,8 +2800,9 @@ class grvt extends grvt$1["default"] {
|
|
|
2796
2800
|
*/
|
|
2797
2801
|
async fetchOrder(id, symbol = undefined, params = {}) {
|
|
2798
2802
|
await this.loadMarketsAndSignIn();
|
|
2803
|
+
const subAccountId = this.getSubAccountId(params);
|
|
2799
2804
|
const request = {
|
|
2800
|
-
'sub_account_id':
|
|
2805
|
+
'sub_account_id': subAccountId,
|
|
2801
2806
|
};
|
|
2802
2807
|
const clientOrderId = this.safeString2(params, 'clientOrderId', 'client_order_id');
|
|
2803
2808
|
if (clientOrderId !== undefined) {
|
|
@@ -3060,7 +3065,7 @@ class grvt extends grvt$1["default"] {
|
|
|
3060
3065
|
// }
|
|
3061
3066
|
//
|
|
3062
3067
|
const result = this.safeDict(response, 'result', {});
|
|
3063
|
-
return this.parseOrders([result]
|
|
3068
|
+
return this.parseOrders([result]);
|
|
3064
3069
|
}
|
|
3065
3070
|
/**
|
|
3066
3071
|
* @method
|
|
@@ -3075,8 +3080,9 @@ class grvt extends grvt$1["default"] {
|
|
|
3075
3080
|
*/
|
|
3076
3081
|
async cancelOrder(id, symbol = undefined, params = {}) {
|
|
3077
3082
|
await this.loadMarketsAndSignIn();
|
|
3083
|
+
const subAccoubntId = this.getSubAccountId(params);
|
|
3078
3084
|
const request = {
|
|
3079
|
-
'sub_account_id':
|
|
3085
|
+
'sub_account_id': subAccoubntId,
|
|
3080
3086
|
};
|
|
3081
3087
|
const clientOrderId = this.safeString2(params, 'clientOrderId', 'client_order_id');
|
|
3082
3088
|
if (clientOrderId !== undefined) {
|