ccxt 4.2.19 → 4.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -98
- package/dist/ccxt.browser.js +67 -133
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +1 -1
- package/dist/cjs/src/base/Exchange.js +10 -0
- package/dist/cjs/src/binance.js +2 -1
- package/dist/cjs/src/binanceus.js +17 -0
- package/dist/cjs/src/bingx.js +2 -1
- package/dist/cjs/src/bitget.js +25 -31
- package/dist/cjs/src/bitteam.js +1 -1
- package/dist/cjs/src/bybit.js +0 -28
- package/dist/cjs/src/delta.js +0 -18
- package/dist/cjs/src/gate.js +0 -25
- package/dist/cjs/src/kucoinfutures.js +9 -9
- package/dist/cjs/src/okx.js +0 -18
- package/js/ccxt.d.ts +1 -1
- package/js/ccxt.js +1 -1
- package/js/src/abstract/binance.d.ts +1 -0
- package/js/src/abstract/binancecoinm.d.ts +1 -0
- package/js/src/abstract/binanceus.d.ts +1 -0
- package/js/src/abstract/binanceusdm.d.ts +1 -0
- package/js/src/abstract/bitpanda.js +11 -0
- package/js/src/base/Exchange.d.ts +3 -0
- package/js/src/base/Exchange.js +10 -0
- package/js/src/binance.js +2 -1
- package/js/src/binanceus.js +17 -0
- package/js/src/bingx.js +2 -1
- package/js/src/bitget.d.ts +1 -1
- package/js/src/bitget.js +25 -31
- package/js/src/bitteam.js +1 -1
- package/js/src/bybit.d.ts +0 -1
- package/js/src/bybit.js +1 -29
- package/js/src/delta.d.ts +0 -1
- package/js/src/delta.js +0 -18
- package/js/src/gate.d.ts +0 -1
- package/js/src/gate.js +0 -25
- package/js/src/kucoinfutures.d.ts +6 -6
- package/js/src/kucoinfutures.js +9 -9
- package/js/src/okx.d.ts +0 -1
- package/js/src/okx.js +0 -18
- package/package.json +1 -1
- package/skip-tests.json +2 -1
package/dist/cjs/ccxt.js
CHANGED
|
@@ -174,7 +174,7 @@ var woo$1 = require('./src/pro/woo.js');
|
|
|
174
174
|
|
|
175
175
|
//-----------------------------------------------------------------------------
|
|
176
176
|
// this is updated by vss.js when building
|
|
177
|
-
const version = '4.2.
|
|
177
|
+
const version = '4.2.20';
|
|
178
178
|
Exchange["default"].ccxtVersion = version;
|
|
179
179
|
const exchanges = {
|
|
180
180
|
'ace': ace,
|
|
@@ -394,6 +394,7 @@ class Exchange {
|
|
|
394
394
|
'fetchBorrowInterest': undefined,
|
|
395
395
|
'fetchBorrowRateHistory': undefined,
|
|
396
396
|
'fetchCanceledOrders': undefined,
|
|
397
|
+
'fetchCanceledAndClosedOrders': undefined,
|
|
397
398
|
'fetchClosedOrder': undefined,
|
|
398
399
|
'fetchClosedOrders': undefined,
|
|
399
400
|
'fetchCrossBorrowRate': undefined,
|
|
@@ -4084,6 +4085,9 @@ class Exchange {
|
|
|
4084
4085
|
}
|
|
4085
4086
|
throw new errors.NotSupported(this.id + ' fetchClosedOrders() is not supported yet');
|
|
4086
4087
|
}
|
|
4088
|
+
async fetchCanceledAndClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
4089
|
+
throw new errors.NotSupported(this.id + ' fetchCanceledAndClosedOrders() is not supported yet');
|
|
4090
|
+
}
|
|
4087
4091
|
async fetchClosedOrdersWs(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
4088
4092
|
if (this.has['fetchOrdersWs']) {
|
|
4089
4093
|
const orders = await this.fetchOrdersWs(symbol, since, limit, params);
|
|
@@ -4212,8 +4216,14 @@ class Exchange {
|
|
|
4212
4216
|
}
|
|
4213
4217
|
return markets[0];
|
|
4214
4218
|
}
|
|
4219
|
+
else if ((symbol.endsWith('-C')) || (symbol.endsWith('-P')) || (symbol.startsWith('C-')) || (symbol.startsWith('P-'))) {
|
|
4220
|
+
return this.createExpiredOptionMarket(symbol);
|
|
4221
|
+
}
|
|
4215
4222
|
throw new errors.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
4216
4223
|
}
|
|
4224
|
+
createExpiredOptionMarket(symbol) {
|
|
4225
|
+
throw new errors.NotSupported(this.id + ' createExpiredOptionMarket () is not supported yet');
|
|
4226
|
+
}
|
|
4217
4227
|
handleWithdrawTagAndParams(tag, params) {
|
|
4218
4228
|
if (typeof tag === 'object') {
|
|
4219
4229
|
params = this.extend(tag, params);
|
package/dist/cjs/src/binance.js
CHANGED
|
@@ -952,6 +952,7 @@ class binance extends binance$1 {
|
|
|
952
952
|
},
|
|
953
953
|
'papi': {
|
|
954
954
|
'get': {
|
|
955
|
+
'ping': 1,
|
|
955
956
|
'um/order': 1,
|
|
956
957
|
'um/openOrder': 1,
|
|
957
958
|
'um/openOrders': 1,
|
|
@@ -8697,7 +8698,7 @@ class binance extends binance$1 {
|
|
|
8697
8698
|
throw new errors.AuthenticationError(this.id + ' userDataStream endpoint requires `apiKey` credential');
|
|
8698
8699
|
}
|
|
8699
8700
|
}
|
|
8700
|
-
else if ((api === 'private') || (api === 'eapiPrivate') || (api === 'sapi' && path !== 'system/status') || (api === 'sapiV2') || (api === 'sapiV3') || (api === 'sapiV4') || (api === 'dapiPrivate') || (api === 'dapiPrivateV2') || (api === 'fapiPrivate') || (api === 'fapiPrivateV2') || (api === 'papi')) {
|
|
8701
|
+
else if ((api === 'private') || (api === 'eapiPrivate') || (api === 'sapi' && path !== 'system/status') || (api === 'sapiV2') || (api === 'sapiV3') || (api === 'sapiV4') || (api === 'dapiPrivate') || (api === 'dapiPrivateV2') || (api === 'fapiPrivate') || (api === 'fapiPrivateV2') || (api === 'papi' && path !== 'ping')) {
|
|
8701
8702
|
this.checkRequiredCredentials();
|
|
8702
8703
|
if (method === 'POST' && ((path === 'order') || (path === 'sor/order'))) {
|
|
8703
8704
|
// inject in implicit API calls
|
|
@@ -81,7 +81,24 @@ class binanceus extends binance {
|
|
|
81
81
|
'api': {
|
|
82
82
|
'public': {
|
|
83
83
|
'get': {
|
|
84
|
+
'exchangeInfo': 10,
|
|
85
|
+
'ping': 1,
|
|
86
|
+
'time': 1,
|
|
87
|
+
'depth': { 'cost': 1, 'byLimit': [[100, 1], [500, 5], [1000, 10], [5000, 50]] },
|
|
88
|
+
'trades': 1,
|
|
89
|
+
'aggTrades': 1,
|
|
90
|
+
'historicalTrades': 5,
|
|
91
|
+
'klines': 1,
|
|
84
92
|
'ticker/price': { 'cost': 1, 'noSymbol': 2 },
|
|
93
|
+
'avgPrice': 1,
|
|
94
|
+
'ticker/bookTicker': { 'cost': 1, 'noSymbol': 2 },
|
|
95
|
+
'ticker/24hr': { 'cost': 1, 'noSymbol': 40 },
|
|
96
|
+
'ticker': { 'cost': 2, 'noSymbol': 100 },
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
'private': {
|
|
100
|
+
'get': {
|
|
101
|
+
'status': 1,
|
|
85
102
|
},
|
|
86
103
|
},
|
|
87
104
|
},
|
package/dist/cjs/src/bingx.js
CHANGED
|
@@ -366,7 +366,8 @@ class bingx extends bingx$1 {
|
|
|
366
366
|
'80017': errors.OrderNotFound,
|
|
367
367
|
'100414': errors.AccountSuspended,
|
|
368
368
|
'100419': errors.PermissionDenied,
|
|
369
|
-
'100437': errors.BadRequest,
|
|
369
|
+
'100437': errors.BadRequest,
|
|
370
|
+
'101204': errors.InsufficientFunds, // bingx {"code":101204,"msg":"","data":{}}
|
|
370
371
|
},
|
|
371
372
|
'broad': {},
|
|
372
373
|
},
|
package/dist/cjs/src/bitget.js
CHANGED
|
@@ -55,6 +55,7 @@ class bitget extends bitget$1 {
|
|
|
55
55
|
'fetchBorrowRateHistories': false,
|
|
56
56
|
'fetchBorrowRateHistory': false,
|
|
57
57
|
'fetchCanceledOrders': true,
|
|
58
|
+
'fetchCanceledAndClosedOrders': true,
|
|
58
59
|
'fetchClosedOrders': true,
|
|
59
60
|
'fetchCrossBorrowRate': true,
|
|
60
61
|
'fetchCrossBorrowRates': false,
|
|
@@ -5394,20 +5395,8 @@ class bitget extends bitget$1 {
|
|
|
5394
5395
|
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
5395
5396
|
*/
|
|
5396
5397
|
await this.loadMarkets();
|
|
5397
|
-
|
|
5398
|
-
|
|
5399
|
-
market = this.market(symbol);
|
|
5400
|
-
}
|
|
5401
|
-
const response = await this.fetchCanceledAndClosedOrders(symbol, since, limit, params);
|
|
5402
|
-
const result = [];
|
|
5403
|
-
for (let i = 0; i < response.length; i++) {
|
|
5404
|
-
const entry = response[i];
|
|
5405
|
-
const status = this.parseOrderStatus(this.safeStringN(entry, ['state', 'status', 'planStatus']));
|
|
5406
|
-
if (status === 'closed') {
|
|
5407
|
-
result.push(entry);
|
|
5408
|
-
}
|
|
5409
|
-
}
|
|
5410
|
-
return this.parseOrders(result, market, since, limit);
|
|
5398
|
+
const orders = await this.fetchCanceledAndClosedOrders(symbol, since, limit, params);
|
|
5399
|
+
return this.filterBy(orders, 'status', 'closed');
|
|
5411
5400
|
}
|
|
5412
5401
|
async fetchCanceledOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
5413
5402
|
/**
|
|
@@ -5432,22 +5421,26 @@ class bitget extends bitget$1 {
|
|
|
5432
5421
|
* @returns {object} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
5433
5422
|
*/
|
|
5434
5423
|
await this.loadMarkets();
|
|
5435
|
-
|
|
5436
|
-
|
|
5437
|
-
market = this.market(symbol);
|
|
5438
|
-
}
|
|
5439
|
-
const response = await this.fetchCanceledAndClosedOrders(symbol, since, limit, params);
|
|
5440
|
-
const result = [];
|
|
5441
|
-
for (let i = 0; i < response.length; i++) {
|
|
5442
|
-
const entry = response[i];
|
|
5443
|
-
const status = this.parseOrderStatus(this.safeStringN(entry, ['state', 'status', 'planStatus']));
|
|
5444
|
-
if (status === 'canceled') {
|
|
5445
|
-
result.push(entry);
|
|
5446
|
-
}
|
|
5447
|
-
}
|
|
5448
|
-
return this.parseOrders(result, market, since, limit);
|
|
5424
|
+
const orders = await this.fetchCanceledAndClosedOrders(symbol, since, limit, params);
|
|
5425
|
+
return this.filterBy(orders, 'status', 'canceled');
|
|
5449
5426
|
}
|
|
5450
5427
|
async fetchCanceledAndClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
5428
|
+
/**
|
|
5429
|
+
* @method
|
|
5430
|
+
* @name bitget#fetchCanceledAndClosedOrders
|
|
5431
|
+
* @see https://www.bitget.com/api-doc/spot/trade/Get-History-Orders
|
|
5432
|
+
* @see https://www.bitget.com/api-doc/spot/plan/Get-History-Plan-Order
|
|
5433
|
+
* @see https://www.bitget.com/api-doc/contract/trade/Get-Orders-History
|
|
5434
|
+
* @see https://www.bitget.com/api-doc/contract/plan/orders-plan-history
|
|
5435
|
+
* @see https://www.bitget.com/api-doc/margin/cross/trade/Get-Cross-Order-History
|
|
5436
|
+
* @see https://www.bitget.com/api-doc/margin/isolated/trade/Get-Isolated-Order-History
|
|
5437
|
+
* @description fetches information on multiple canceled and closed orders made by the user
|
|
5438
|
+
* @param {string} symbol unified market symbol of the market orders were made in
|
|
5439
|
+
* @param {int} [since] the earliest time in ms to fetch orders for
|
|
5440
|
+
* @param {int} [limit] the maximum number of order structures to retrieve
|
|
5441
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
5442
|
+
* @returns {Order[]} a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
|
|
5443
|
+
*/
|
|
5451
5444
|
await this.loadMarkets();
|
|
5452
5445
|
const sandboxMode = this.safeValue(this.options, 'sandboxMode', false);
|
|
5453
5446
|
let market = undefined;
|
|
@@ -5732,16 +5725,17 @@ class bitget extends bitget$1 {
|
|
|
5732
5725
|
const data = this.safeValue(response, 'data', {});
|
|
5733
5726
|
if (marketType === 'spot') {
|
|
5734
5727
|
if ((marginMode !== undefined) || stop) {
|
|
5735
|
-
return this.safeValue(data, 'orderList', []);
|
|
5728
|
+
return this.parseOrders(this.safeValue(data, 'orderList', []), market, since, limit);
|
|
5736
5729
|
}
|
|
5737
5730
|
}
|
|
5738
5731
|
else {
|
|
5739
|
-
return this.safeValue(data, 'entrustedList', []);
|
|
5732
|
+
return this.parseOrders(this.safeValue(data, 'entrustedList', []), market, since, limit);
|
|
5740
5733
|
}
|
|
5741
5734
|
if (typeof response === 'string') {
|
|
5742
5735
|
response = JSON.parse(response);
|
|
5743
5736
|
}
|
|
5744
|
-
|
|
5737
|
+
const orders = this.safeValue(response, 'data', []);
|
|
5738
|
+
return this.parseOrders(orders, market, since, limit);
|
|
5745
5739
|
}
|
|
5746
5740
|
async fetchLedger(code = undefined, since = undefined, limit = undefined, params = {}) {
|
|
5747
5741
|
/**
|
package/dist/cjs/src/bitteam.js
CHANGED
|
@@ -124,7 +124,7 @@ class bitteam extends bitteam$1 {
|
|
|
124
124
|
'1d': '1D',
|
|
125
125
|
},
|
|
126
126
|
'urls': {
|
|
127
|
-
'logo': 'https://
|
|
127
|
+
'logo': 'https://github.com/ccxt/ccxt/assets/43336371/cf71fe3d-b8b4-40f2-a906-907661b28793',
|
|
128
128
|
'api': {
|
|
129
129
|
'history': 'https://history.bit.team',
|
|
130
130
|
'public': 'https://bit.team',
|
package/dist/cjs/src/bybit.js
CHANGED
|
@@ -1248,34 +1248,6 @@ class bybit extends bybit$1 {
|
|
|
1248
1248
|
'info': undefined,
|
|
1249
1249
|
};
|
|
1250
1250
|
}
|
|
1251
|
-
market(symbol) {
|
|
1252
|
-
if (this.markets === undefined) {
|
|
1253
|
-
throw new errors.ExchangeError(this.id + ' markets not loaded');
|
|
1254
|
-
}
|
|
1255
|
-
if (typeof symbol === 'string') {
|
|
1256
|
-
if (symbol in this.markets) {
|
|
1257
|
-
return this.markets[symbol];
|
|
1258
|
-
}
|
|
1259
|
-
else if (symbol in this.markets_by_id) {
|
|
1260
|
-
const markets = this.markets_by_id[symbol];
|
|
1261
|
-
let defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
|
|
1262
|
-
if (defaultType === 'future') {
|
|
1263
|
-
defaultType = 'contract';
|
|
1264
|
-
}
|
|
1265
|
-
for (let i = 0; i < markets.length; i++) {
|
|
1266
|
-
const market = markets[i];
|
|
1267
|
-
if (market[defaultType]) {
|
|
1268
|
-
return market;
|
|
1269
|
-
}
|
|
1270
|
-
}
|
|
1271
|
-
return markets[0];
|
|
1272
|
-
}
|
|
1273
|
-
else if ((symbol.indexOf('-C') > -1) || (symbol.indexOf('-P') > -1)) {
|
|
1274
|
-
return this.createExpiredOptionMarket(symbol);
|
|
1275
|
-
}
|
|
1276
|
-
}
|
|
1277
|
-
throw new errors.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
1278
|
-
}
|
|
1279
1251
|
safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
1280
1252
|
const isOption = (marketId !== undefined) && ((marketId.indexOf('-C') > -1) || (marketId.indexOf('-P') > -1));
|
|
1281
1253
|
if (isOption && !(marketId in this.markets_by_id)) {
|
package/dist/cjs/src/delta.js
CHANGED
|
@@ -315,24 +315,6 @@ class delta extends delta$1 {
|
|
|
315
315
|
'info': undefined,
|
|
316
316
|
};
|
|
317
317
|
}
|
|
318
|
-
market(symbol) {
|
|
319
|
-
if (this.markets === undefined) {
|
|
320
|
-
throw new errors.ExchangeError(this.id + ' markets not loaded');
|
|
321
|
-
}
|
|
322
|
-
if (typeof symbol === 'string') {
|
|
323
|
-
if (symbol in this.markets) {
|
|
324
|
-
return this.markets[symbol];
|
|
325
|
-
}
|
|
326
|
-
else if (symbol in this.markets_by_id) {
|
|
327
|
-
const markets = this.markets_by_id[symbol];
|
|
328
|
-
return markets[0];
|
|
329
|
-
}
|
|
330
|
-
else if ((symbol.endsWith('-C')) || (symbol.endsWith('-P')) || (symbol.startsWith('C-')) || (symbol.startsWith('P-'))) {
|
|
331
|
-
return this.createExpiredOptionMarket(symbol);
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
throw new errors.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
335
|
-
}
|
|
336
318
|
safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
337
319
|
const isOption = (marketId !== undefined) && ((marketId.endsWith('-C')) || (marketId.endsWith('-P')) || (marketId.startsWith('C-')) || (marketId.startsWith('P-')));
|
|
338
320
|
if (isOption && !(marketId in this.markets_by_id)) {
|
package/dist/cjs/src/gate.js
CHANGED
|
@@ -933,31 +933,6 @@ class gate extends gate$1 {
|
|
|
933
933
|
'info': undefined,
|
|
934
934
|
};
|
|
935
935
|
}
|
|
936
|
-
market(symbol) {
|
|
937
|
-
if (this.markets === undefined) {
|
|
938
|
-
throw new errors.ExchangeError(this.id + ' markets not loaded');
|
|
939
|
-
}
|
|
940
|
-
if (typeof symbol === 'string') {
|
|
941
|
-
if (symbol in this.markets) {
|
|
942
|
-
return this.markets[symbol];
|
|
943
|
-
}
|
|
944
|
-
else if (symbol in this.markets_by_id) {
|
|
945
|
-
const markets = this.markets_by_id[symbol];
|
|
946
|
-
const defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
|
|
947
|
-
for (let i = 0; i < markets.length; i++) {
|
|
948
|
-
const market = markets[i];
|
|
949
|
-
if (market[defaultType]) {
|
|
950
|
-
return market;
|
|
951
|
-
}
|
|
952
|
-
}
|
|
953
|
-
return markets[0];
|
|
954
|
-
}
|
|
955
|
-
else if ((symbol.indexOf('-C') > -1) || (symbol.indexOf('-P') > -1)) {
|
|
956
|
-
return this.createExpiredOptionMarket(symbol);
|
|
957
|
-
}
|
|
958
|
-
}
|
|
959
|
-
throw new errors.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
960
|
-
}
|
|
961
936
|
safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
962
937
|
const isOption = (marketId !== undefined) && ((marketId.indexOf('-C') > -1) || (marketId.indexOf('-P') > -1));
|
|
963
938
|
if (isOption && !(marketId in this.markets_by_id)) {
|
|
@@ -1831,7 +1831,7 @@ class kucoinfutures extends kucoinfutures$1 {
|
|
|
1831
1831
|
* @method
|
|
1832
1832
|
* @name kucoinfutures#fetchFundingRate
|
|
1833
1833
|
* @description fetch the current funding rate
|
|
1834
|
-
* @see https://www.kucoin.com/docs/rest/futures-trading/
|
|
1834
|
+
* @see https://www.kucoin.com/docs/rest/futures-trading/funding-fees/get-current-funding-rate
|
|
1835
1835
|
* @param {string} symbol unified market symbol
|
|
1836
1836
|
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
1837
1837
|
* @returns {object} a [funding rate structure]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
|
|
@@ -1855,7 +1855,7 @@ class kucoinfutures extends kucoinfutures$1 {
|
|
|
1855
1855
|
// }
|
|
1856
1856
|
//
|
|
1857
1857
|
const data = this.safeValue(response, 'data');
|
|
1858
|
-
const fundingTimestamp = this.
|
|
1858
|
+
const fundingTimestamp = this.safeInteger(data, 'timePoint');
|
|
1859
1859
|
// the website displayes the previous funding rate as "funding rate"
|
|
1860
1860
|
return {
|
|
1861
1861
|
'info': data,
|
|
@@ -1866,15 +1866,15 @@ class kucoinfutures extends kucoinfutures$1 {
|
|
|
1866
1866
|
'estimatedSettlePrice': undefined,
|
|
1867
1867
|
'timestamp': undefined,
|
|
1868
1868
|
'datetime': undefined,
|
|
1869
|
-
'fundingRate': this.safeNumber(data, '
|
|
1870
|
-
'fundingTimestamp':
|
|
1871
|
-
'fundingDatetime':
|
|
1872
|
-
'nextFundingRate':
|
|
1869
|
+
'fundingRate': this.safeNumber(data, 'value'),
|
|
1870
|
+
'fundingTimestamp': fundingTimestamp,
|
|
1871
|
+
'fundingDatetime': this.iso8601(fundingTimestamp),
|
|
1872
|
+
'nextFundingRate': this.safeNumber(data, 'predictedValue'),
|
|
1873
1873
|
'nextFundingTimestamp': undefined,
|
|
1874
1874
|
'nextFundingDatetime': undefined,
|
|
1875
|
-
'previousFundingRate':
|
|
1876
|
-
'previousFundingTimestamp':
|
|
1877
|
-
'previousFundingDatetime':
|
|
1875
|
+
'previousFundingRate': undefined,
|
|
1876
|
+
'previousFundingTimestamp': undefined,
|
|
1877
|
+
'previousFundingDatetime': undefined,
|
|
1878
1878
|
};
|
|
1879
1879
|
}
|
|
1880
1880
|
parseBalance(response) {
|
package/dist/cjs/src/okx.js
CHANGED
|
@@ -1152,24 +1152,6 @@ class okx extends okx$1 {
|
|
|
1152
1152
|
'info': undefined,
|
|
1153
1153
|
};
|
|
1154
1154
|
}
|
|
1155
|
-
market(symbol) {
|
|
1156
|
-
if (this.markets === undefined) {
|
|
1157
|
-
throw new errors.ExchangeError(this.id + ' markets not loaded');
|
|
1158
|
-
}
|
|
1159
|
-
if (typeof symbol === 'string') {
|
|
1160
|
-
if (symbol in this.markets) {
|
|
1161
|
-
return this.markets[symbol];
|
|
1162
|
-
}
|
|
1163
|
-
else if (symbol in this.markets_by_id) {
|
|
1164
|
-
const markets = this.markets_by_id[symbol];
|
|
1165
|
-
return markets[0];
|
|
1166
|
-
}
|
|
1167
|
-
else if ((symbol.indexOf('-C') > -1) || (symbol.indexOf('-P') > -1)) {
|
|
1168
|
-
return this.createExpiredOptionMarket(symbol);
|
|
1169
|
-
}
|
|
1170
|
-
}
|
|
1171
|
-
throw new errors.BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
1172
|
-
}
|
|
1173
1155
|
safeMarket(marketId = undefined, market = undefined, delimiter = undefined, marketType = undefined) {
|
|
1174
1156
|
const isOption = (marketId !== undefined) && ((marketId.indexOf('-C') > -1) || (marketId.indexOf('-P') > -1));
|
|
1175
1157
|
if (isOption && !(marketId in this.markets_by_id)) {
|
package/js/ccxt.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as functions from './src/base/functions.js';
|
|
|
4
4
|
import * as errors from './src/base/errors.js';
|
|
5
5
|
import type { Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax, Position, FundingRateHistory, Liquidation, FundingHistory, MarginMode, Greeks } from './src/base/types.js';
|
|
6
6
|
import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
|
|
7
|
-
declare const version = "4.2.
|
|
7
|
+
declare const version = "4.2.19";
|
|
8
8
|
import ace from './src/ace.js';
|
|
9
9
|
import alpaca from './src/alpaca.js';
|
|
10
10
|
import ascendex from './src/ascendex.js';
|
package/js/ccxt.js
CHANGED
|
@@ -38,7 +38,7 @@ import * as errors from './src/base/errors.js';
|
|
|
38
38
|
import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending, NoChange } from './src/base/errors.js';
|
|
39
39
|
//-----------------------------------------------------------------------------
|
|
40
40
|
// this is updated by vss.js when building
|
|
41
|
-
const version = '4.2.
|
|
41
|
+
const version = '4.2.20';
|
|
42
42
|
Exchange.ccxtVersion = version;
|
|
43
43
|
//-----------------------------------------------------------------------------
|
|
44
44
|
import ace from './src/ace.js';
|
|
@@ -600,6 +600,7 @@ interface Exchange {
|
|
|
600
600
|
privateDeleteOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
601
601
|
privateDeleteOrderList(params?: {}): Promise<implicitReturnType>;
|
|
602
602
|
privateDeleteOrder(params?: {}): Promise<implicitReturnType>;
|
|
603
|
+
papiGetPing(params?: {}): Promise<implicitReturnType>;
|
|
603
604
|
papiGetUmOrder(params?: {}): Promise<implicitReturnType>;
|
|
604
605
|
papiGetUmOpenOrder(params?: {}): Promise<implicitReturnType>;
|
|
605
606
|
papiGetUmOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
@@ -600,6 +600,7 @@ interface binance {
|
|
|
600
600
|
privateDeleteOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
601
601
|
privateDeleteOrderList(params?: {}): Promise<implicitReturnType>;
|
|
602
602
|
privateDeleteOrder(params?: {}): Promise<implicitReturnType>;
|
|
603
|
+
papiGetPing(params?: {}): Promise<implicitReturnType>;
|
|
603
604
|
papiGetUmOrder(params?: {}): Promise<implicitReturnType>;
|
|
604
605
|
papiGetUmOpenOrder(params?: {}): Promise<implicitReturnType>;
|
|
605
606
|
papiGetUmOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
@@ -600,6 +600,7 @@ interface binance {
|
|
|
600
600
|
privateDeleteOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
601
601
|
privateDeleteOrderList(params?: {}): Promise<implicitReturnType>;
|
|
602
602
|
privateDeleteOrder(params?: {}): Promise<implicitReturnType>;
|
|
603
|
+
papiGetPing(params?: {}): Promise<implicitReturnType>;
|
|
603
604
|
papiGetUmOrder(params?: {}): Promise<implicitReturnType>;
|
|
604
605
|
papiGetUmOpenOrder(params?: {}): Promise<implicitReturnType>;
|
|
605
606
|
papiGetUmOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
@@ -600,6 +600,7 @@ interface binance {
|
|
|
600
600
|
privateDeleteOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
601
601
|
privateDeleteOrderList(params?: {}): Promise<implicitReturnType>;
|
|
602
602
|
privateDeleteOrder(params?: {}): Promise<implicitReturnType>;
|
|
603
|
+
papiGetPing(params?: {}): Promise<implicitReturnType>;
|
|
603
604
|
papiGetUmOrder(params?: {}): Promise<implicitReturnType>;
|
|
604
605
|
papiGetUmOpenOrder(params?: {}): Promise<implicitReturnType>;
|
|
605
606
|
papiGetUmOpenOrders(params?: {}): Promise<implicitReturnType>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// ----------------------------------------------------------------------------
|
|
2
|
+
|
|
3
|
+
// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
|
|
4
|
+
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
|
|
5
|
+
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
|
|
6
|
+
|
|
7
|
+
// -------------------------------------------------------------------------------
|
|
8
|
+
import _onetrading from '../onetrading.js';
|
|
9
|
+
class onetrading extends _onetrading {
|
|
10
|
+
}
|
|
11
|
+
export default onetrading;
|
|
@@ -331,6 +331,7 @@ export default class Exchange {
|
|
|
331
331
|
fetchBorrowInterest: any;
|
|
332
332
|
fetchBorrowRateHistory: any;
|
|
333
333
|
fetchCanceledOrders: any;
|
|
334
|
+
fetchCanceledAndClosedOrders: any;
|
|
334
335
|
fetchClosedOrder: any;
|
|
335
336
|
fetchClosedOrders: any;
|
|
336
337
|
fetchCrossBorrowRate: any;
|
|
@@ -800,6 +801,7 @@ export default class Exchange {
|
|
|
800
801
|
fetchOpenOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
801
802
|
fetchOpenOrdersWs(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
802
803
|
fetchClosedOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
804
|
+
fetchCanceledAndClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
803
805
|
fetchClosedOrdersWs(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
804
806
|
fetchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
805
807
|
fetchMyLiquidations(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Liquidation[]>;
|
|
@@ -823,6 +825,7 @@ export default class Exchange {
|
|
|
823
825
|
commonCurrencyCode(currency: string): string;
|
|
824
826
|
currency(code: any): any;
|
|
825
827
|
market(symbol: string): MarketInterface;
|
|
828
|
+
createExpiredOptionMarket(symbol: string): MarketInterface;
|
|
826
829
|
handleWithdrawTagAndParams(tag: any, params: any): any;
|
|
827
830
|
createLimitOrder(symbol: string, side: OrderSide, amount: any, price: any, params?: {}): Promise<Order>;
|
|
828
831
|
createMarketOrder(symbol: string, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
|
package/js/src/base/Exchange.js
CHANGED
|
@@ -388,6 +388,7 @@ export default class Exchange {
|
|
|
388
388
|
'fetchBorrowInterest': undefined,
|
|
389
389
|
'fetchBorrowRateHistory': undefined,
|
|
390
390
|
'fetchCanceledOrders': undefined,
|
|
391
|
+
'fetchCanceledAndClosedOrders': undefined,
|
|
391
392
|
'fetchClosedOrder': undefined,
|
|
392
393
|
'fetchClosedOrders': undefined,
|
|
393
394
|
'fetchCrossBorrowRate': undefined,
|
|
@@ -4080,6 +4081,9 @@ export default class Exchange {
|
|
|
4080
4081
|
}
|
|
4081
4082
|
throw new NotSupported(this.id + ' fetchClosedOrders() is not supported yet');
|
|
4082
4083
|
}
|
|
4084
|
+
async fetchCanceledAndClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
4085
|
+
throw new NotSupported(this.id + ' fetchCanceledAndClosedOrders() is not supported yet');
|
|
4086
|
+
}
|
|
4083
4087
|
async fetchClosedOrdersWs(symbol = undefined, since = undefined, limit = undefined, params = {}) {
|
|
4084
4088
|
if (this.has['fetchOrdersWs']) {
|
|
4085
4089
|
const orders = await this.fetchOrdersWs(symbol, since, limit, params);
|
|
@@ -4208,8 +4212,14 @@ export default class Exchange {
|
|
|
4208
4212
|
}
|
|
4209
4213
|
return markets[0];
|
|
4210
4214
|
}
|
|
4215
|
+
else if ((symbol.endsWith('-C')) || (symbol.endsWith('-P')) || (symbol.startsWith('C-')) || (symbol.startsWith('P-'))) {
|
|
4216
|
+
return this.createExpiredOptionMarket(symbol);
|
|
4217
|
+
}
|
|
4211
4218
|
throw new BadSymbol(this.id + ' does not have market symbol ' + symbol);
|
|
4212
4219
|
}
|
|
4220
|
+
createExpiredOptionMarket(symbol) {
|
|
4221
|
+
throw new NotSupported(this.id + ' createExpiredOptionMarket () is not supported yet');
|
|
4222
|
+
}
|
|
4213
4223
|
handleWithdrawTagAndParams(tag, params) {
|
|
4214
4224
|
if (typeof tag === 'object') {
|
|
4215
4225
|
params = this.extend(tag, params);
|
package/js/src/binance.js
CHANGED
|
@@ -955,6 +955,7 @@ export default class binance extends Exchange {
|
|
|
955
955
|
},
|
|
956
956
|
'papi': {
|
|
957
957
|
'get': {
|
|
958
|
+
'ping': 1,
|
|
958
959
|
'um/order': 1,
|
|
959
960
|
'um/openOrder': 1,
|
|
960
961
|
'um/openOrders': 1,
|
|
@@ -8700,7 +8701,7 @@ export default class binance extends Exchange {
|
|
|
8700
8701
|
throw new AuthenticationError(this.id + ' userDataStream endpoint requires `apiKey` credential');
|
|
8701
8702
|
}
|
|
8702
8703
|
}
|
|
8703
|
-
else if ((api === 'private') || (api === 'eapiPrivate') || (api === 'sapi' && path !== 'system/status') || (api === 'sapiV2') || (api === 'sapiV3') || (api === 'sapiV4') || (api === 'dapiPrivate') || (api === 'dapiPrivateV2') || (api === 'fapiPrivate') || (api === 'fapiPrivateV2') || (api === 'papi')) {
|
|
8704
|
+
else if ((api === 'private') || (api === 'eapiPrivate') || (api === 'sapi' && path !== 'system/status') || (api === 'sapiV2') || (api === 'sapiV3') || (api === 'sapiV4') || (api === 'dapiPrivate') || (api === 'dapiPrivateV2') || (api === 'fapiPrivate') || (api === 'fapiPrivateV2') || (api === 'papi' && path !== 'ping')) {
|
|
8704
8705
|
this.checkRequiredCredentials();
|
|
8705
8706
|
if (method === 'POST' && ((path === 'order') || (path === 'sor/order'))) {
|
|
8706
8707
|
// inject in implicit API calls
|
package/js/src/binanceus.js
CHANGED
|
@@ -84,7 +84,24 @@ export default class binanceus extends binance {
|
|
|
84
84
|
'api': {
|
|
85
85
|
'public': {
|
|
86
86
|
'get': {
|
|
87
|
+
'exchangeInfo': 10,
|
|
88
|
+
'ping': 1,
|
|
89
|
+
'time': 1,
|
|
90
|
+
'depth': { 'cost': 1, 'byLimit': [[100, 1], [500, 5], [1000, 10], [5000, 50]] },
|
|
91
|
+
'trades': 1,
|
|
92
|
+
'aggTrades': 1,
|
|
93
|
+
'historicalTrades': 5,
|
|
94
|
+
'klines': 1,
|
|
87
95
|
'ticker/price': { 'cost': 1, 'noSymbol': 2 },
|
|
96
|
+
'avgPrice': 1,
|
|
97
|
+
'ticker/bookTicker': { 'cost': 1, 'noSymbol': 2 },
|
|
98
|
+
'ticker/24hr': { 'cost': 1, 'noSymbol': 40 },
|
|
99
|
+
'ticker': { 'cost': 2, 'noSymbol': 100 },
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
'private': {
|
|
103
|
+
'get': {
|
|
104
|
+
'status': 1,
|
|
88
105
|
},
|
|
89
106
|
},
|
|
90
107
|
},
|
package/js/src/bingx.js
CHANGED
|
@@ -369,7 +369,8 @@ export default class bingx extends Exchange {
|
|
|
369
369
|
'80017': OrderNotFound,
|
|
370
370
|
'100414': AccountSuspended,
|
|
371
371
|
'100419': PermissionDenied,
|
|
372
|
-
'100437': BadRequest,
|
|
372
|
+
'100437': BadRequest,
|
|
373
|
+
'101204': InsufficientFunds, // bingx {"code":101204,"msg":"","data":{}}
|
|
373
374
|
},
|
|
374
375
|
'broad': {},
|
|
375
376
|
},
|
package/js/src/bitget.d.ts
CHANGED
|
@@ -92,7 +92,7 @@ export default class bitget extends Exchange {
|
|
|
92
92
|
fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
93
93
|
fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
94
94
|
fetchCanceledOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
95
|
-
fetchCanceledAndClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<
|
|
95
|
+
fetchCanceledAndClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
|
|
96
96
|
fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
|
|
97
97
|
parseLedgerEntry(item: any, currency?: Currency): {
|
|
98
98
|
info: any;
|